code wiki / (root) / nx_swcompare_office.nx

nx_swcompare_office.nx source

↩ module page · 219 lines · 20333 B

1// nx_swcompare_office.nx -- SoftwareCompare (office domain): the Nishi office stack MEASURED vs Microsoft 365 2// Copilot / Google Workspace Gemini / LibreOffice. Each Nishi cell PROVEN by the implementing symbol in the real 3// organ source on disk (present) or its ABSENCE (gap). Competitor cells = documented capability presence, grounded 4// in knowledge/library/office-sota-bar-2026-07-08.txt (cited, web-fetched 2025/2026). Coverage is HONESTLY LOW: the 5// office suite is a sovereign FOUNDATION, not SOTA -- the liar-kill enforces coverage<600 + the marquee gaps real. 6// Modes: no-arg = console census + liar-kill (gate); argv[1]="html" = emit the /compare/office page to stdout. 7// NOTE: no '#'/'!' in string literals (nx_cc trap) -> rgb() + emit '!' byte. license_tier: ORIGINAL expect_exit: 0 8import "nx_syscalls.nx" 9const K_MAGIC_262144: i64 = 262144 10 11func w(fd: i64, s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(fd, s, n); return 0 } 12func wc(fd: i64, code: i64) -> i64 { let t: *u8 = sys_mmap(2); t[0] = code as u8; sys_write(fd, t, 1); return 0 } 13func wn(fd: i64, v: i64) -> i64 { 14 var m: i64 = v; if m < 0 { w(fd, "-" as *u8); m = 0 - m } 15 let t: *u8 = sys_mmap(24); var k: i64 = 0; if m == 0 { t[0] = 48 as u8; k = 1 } 16 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 } 17 let o: *u8 = sys_mmap(24); var i: i64 = 0; while i < k { o[i] = t[k-1-i]; i = i + 1 } sys_write(fd, o, k); return 0 18} 19func c_read(path: *u8, buf: *u8, cap: i64) -> i64 { 20 let fd: i64 = sys_openat_rd(path); if fd < 0 { return 0 - 1 } 21 var tot: i64 = 0 22 while tot < cap { let r: i64 = sys_read(fd, (buf as i64 + tot) as *u8, cap - tot); if r <= 0 { break } tot = tot + r } 23 sys_close(fd); return tot 24} 25func c_exists(path: *u8) -> i64 { let fd: i64 = sys_openat_rd(path); if fd < 0 { return 0 } sys_close(fd); return 1 } 26func c_has(buf: *u8, n: i64, needle: *u8) -> i64 { 27 var i: i64 = 0 28 while i < n { var k: i64 = 0; var hit: i64 = 1 29 while needle[k] != (0 as u8) { if i + k >= n { hit = 0; k = 0 - 1; break } if buf[i+k] != needle[k] { hit = 0; break } k = k + 1 } 30 if hit == 1 { if k > 0 { return 1 } } i = i + 1 } 31 return 0 32} 33func c_file_has(path: *u8, needle: *u8, buf: *u8, cap: i64) -> i64 { 34 let n: i64 = c_read(path, buf, cap); if n <= 0 { return 0 } 35 return c_has(buf, n, needle) 36} 37func streq(a: *u8, b: *u8) -> i64 { var i: i64 = 0; while a[i] != (0 as u8) { if a[i] != b[i] { return 0 } i = i + 1 } if b[i] != (0 as u8) { return 0 } return 1 } 38func isp(ns: i64) -> i64 { if ns == 1 { return 1 } return 0 } 39func ise(ns: i64) -> i64 { if ns == 2 { return 1 } return 0 } 40func isa(ns: i64) -> i64 { if ns == 0 { return 1 } return 0 } 41 42func con_row(label: *u8, ns: i64) -> i64 { 43 w(1, " [" as *u8) 44 if ns == 2 { w(1, "EXCEEDS" as *u8) } else { if ns == 1 { w(1, "PRESENT" as *u8) } else { if ns == 3 { w(1, "PARTIAL" as *u8) } else { w(1, "ABSENT " as *u8) } } } 45 w(1, "] " as *u8); w(1, label); w(1, "\n" as *u8); return 0 46} 47func td_badge(fd: i64, code: i64) -> i64 { 48 if code == 1 { w(fd, "<td class='b y'>Yes</td>" as *u8); return 0 } 49 if code == 3 { w(fd, "<td class='b p'>Part</td>" as *u8); return 0 } 50 if code == 2 { w(fd, "<td class='b ex'>Best</td>" as *u8); return 0 } 51 w(fd, "<td class='b n'>No</td>" as *u8); return 0 52} 53// 3 competitors: M365 Copilot, Workspace Gemini, LibreOffice 54func html_row3(fd: i64, cat: *u8, ns: i64, ms: i64, gg: i64, lo: i64, note: *u8) -> i64 { 55 w(fd, "<tr><td class='cat'>" as *u8); w(fd, cat); w(fd, "</td>" as *u8) 56 if ns == 2 { w(fd, "<td class='b nc ex'>Best</td>" as *u8) } else { if ns == 1 { w(fd, "<td class='b nc y'>Yes</td>" as *u8) } else { if ns == 3 { w(fd, "<td class='b nc p'>Part</td>" as *u8) } else { w(fd, "<td class='b nc n'>No</td>" as *u8) } } } 57 td_badge(fd, ms); td_badge(fd, gg); td_badge(fd, lo) 58 w(fd, "<td class='note'>" as *u8); w(fd, note); w(fd, "</td></tr>\n" as *u8) 59 return 0 60} 61 62func main(argc: i64, argv: *i64) -> i64 { 63 let cap: i64 = K_MAGIC_262144 64 let buf: *u8 = sys_mmap(cap) 65 let DOCX: *u8 = "runtime/_hdl_build/nx_docx.nx" 66 let ODT: *u8 = "runtime/_hdl_build/nx_odt.nx" 67 let XLSX: *u8 = "runtime/_hdl_build/nx_xlsx.nx" 68 let MERGE:*u8 = "runtime/_hdl_build/nx_mailmerge.nx" 69 let VDOC: *u8 = "runtime/_hdl_build/nx_vizsla_doc.nx" 70 let DGEN: *u8 = "runtime/_hdl_build/nx_vizsla_docgen.nx" 71 let EST: *u8 = "runtime/_hdl_build/nx_estate_inventory.nx" 72 let PPTX: *u8 = "runtime/_hdl_build/nx_pptx.nx" 73 let IMPR: *u8 = "runtime/_hdl_build/nx_impress.nx" 74 let COEDIT:*u8 = "runtime/_hdl_build/nx_coedit.nx" 75 let AISLIDE:*u8 = "runtime/_hdl_build/nx_ai_slides.nx" 76 let BAR: *u8 = "knowledge/library/office-sota-bar-2026-07-08.txt" 77 78 let ns_docx: i64 = c_file_has(DOCX, "docx_write" as *u8, buf, cap) 79 var ns_odt: i64 = 0 80 if c_exists(ODT) == 1 { ns_odt = c_file_has(ODT, "text:p" as *u8, buf, cap) } 81 let ns_fmt: i64 = c_file_has(DOCX, "w:rPr" as *u8, buf, cap) 82 let ns_tbl: i64 = c_file_has(DOCX, "w:tblPr" as *u8, buf, cap) 83 let ns_img: i64 = c_file_has(DOCX, "w:drawing" as *u8, buf, cap) 84 let ns_lay: i64 = c_file_has(DOCX, "sectPr" as *u8, buf, cap) 85 let ns_trk: i64 = c_file_has(DOCX, "<w:ins " as *u8, buf, cap) 86 let ns_cmt: i64 = c_file_has(DOCX, "commentReference" as *u8, buf, cap) 87 let ns_ref: i64 = c_file_has(DOCX, "footnoteReference" as *u8, buf, cap) 88 let ns_spl: i64 = c_file_has(DOCX, "spellcheck" as *u8, buf, cap) 89 var ns_mrg: i64 = 0 90 if c_exists(MERGE) == 1 { ns_mrg = c_file_has(MERGE, "{{" as *u8, buf, cap) } 91 let ns_xlsx: i64 = c_file_has(XLSX, "fromtsv" as *u8, buf, cap) 92 let ns_cell: i64 = c_file_has(XLSX, "inlineStr" as *u8, buf, cap) 93 let ns_fml: i64 = c_file_has(XLSX, "<f>" as *u8, buf, cap) 94 let ns_cht: i64 = c_file_has(XLSX, "chart" as *u8, buf, cap) 95 let ns_piv: i64 = c_file_has(XLSX, "pivot" as *u8, buf, cap) 96 let ns_cnd: i64 = c_file_has(XLSX, "conditionalFormatting" as *u8, buf, cap) 97 let ns_mac: i64 = c_file_has(XLSX, "macro" as *u8, buf, cap) 98 var ns_pptx: i64 = c_exists(PPTX) 99 if c_exists(IMPR) == 1 { ns_pptx = 1 } 100 var ns_coe: i64 = c_exists(COEDIT) 101 if c_file_has(VDOC, "crdt" as *u8, buf, cap) == 1 { ns_coe = 1 } 102 let ns_shr: i64 = c_file_has(VDOC, "acl" as *u8, buf, cap) 103 let x_ver: i64 = c_file_has(VDOC, "VIZSLA-DOC-VERSION" as *u8, buf, cap) 104 let ns_ver: i64 = x_ver * 2 105 var ns_ai1: i64 = c_file_has(DOCX, "llm" as *u8, buf, cap) 106 if c_file_has(DGEN, "llm" as *u8, buf, cap) == 1 { ns_ai1 = 1 } 107 let ns_ai2: i64 = c_file_has(XLSX, "llm" as *u8, buf, cap) 108 let ns_ai3: i64 = c_exists(AISLIDE) 109 let ns_ai4: i64 = c_file_has(DGEN, "agent_mode" as *u8, buf, cap) 110 let ns_dmg: i64 = c_file_has(VDOC, "VIZSLA-DOC-HISTORY" as *u8, buf, cap) 111 let ns_dgn: i64 = c_file_has(DGEN, "VIZSLA-DOCGEN" as *u8, buf, cap) 112 var ns_est: i64 = 0 113 if c_exists(EST) == 1 { ns_est = c_file_has(EST, "history" as *u8, buf, cap) } 114 let ns_snc: i64 = c_file_has(VDOC, "oauth" as *u8, buf, cap) 115 let ns_sov: i64 = (1 - c_file_has(DOCX, "nx_socket" as *u8, buf, cap)) & (1 - c_file_has(DOCX, "nx_tls" as *u8, buf, cap)) 116 let ns_opn: i64 = c_exists(DOCX) & c_exists(ODT) 117 118 let corpus: i64 = c_exists(BAR) 119 let neg: i64 = c_file_has(DOCX, "microsoft_copilot_agent_mode" as *u8, buf, cap) 120 121 var present: i64 = isp(ns_docx)+isp(ns_odt)+isp(ns_fmt)+isp(ns_tbl)+isp(ns_img)+isp(ns_lay)+isp(ns_trk)+isp(ns_cmt)+isp(ns_ref)+isp(ns_spl)+isp(ns_mrg)+isp(ns_xlsx)+isp(ns_cell)+isp(ns_fml)+isp(ns_cht)+isp(ns_piv)+isp(ns_cnd)+isp(ns_mac)+isp(ns_pptx)+isp(ns_coe)+isp(ns_shr)+isp(ns_ai1)+isp(ns_ai2)+isp(ns_ai3)+isp(ns_ai4)+isp(ns_dmg)+isp(ns_dgn)+isp(ns_est)+isp(ns_snc)+isp(ns_sov)+isp(ns_opn) 122 var exceeds: i64 = ise(ns_ver) 123 var absent: i64 = isa(ns_docx)+isa(ns_odt)+isa(ns_fmt)+isa(ns_tbl)+isa(ns_img)+isa(ns_lay)+isa(ns_trk)+isa(ns_cmt)+isa(ns_ref)+isa(ns_spl)+isa(ns_mrg)+isa(ns_xlsx)+isa(ns_cell)+isa(ns_fml)+isa(ns_cht)+isa(ns_piv)+isa(ns_cnd)+isa(ns_mac)+isa(ns_pptx)+isa(ns_coe)+isa(ns_shr)+isa(ns_ai1)+isa(ns_ai2)+isa(ns_ai3)+isa(ns_ai4)+isa(ns_dmg)+isa(ns_dgn)+isa(ns_est)+isa(ns_snc)+isa(ns_sov)+isa(ns_opn) 124 let total: i64 = present + exceeds + absent 125 var coverage: i64 = 0 126 if total > 0 { coverage = ((exceeds + present) * 1000) / total } 127 128 var html: i64 = 0 129 if argc >= 2 { if streq(argv[1] as *u8, "html" as *u8) == 1 { html = 1 } } 130 131 if html == 1 { 132 w(1, "<" as *u8); wc(1, 33); w(1, "DOCTYPE html>\n<html lang='en'><head><meta charset='utf-8'><meta name='viewport' content='width=device-width, initial-scale=1'>\n" as *u8) 133 w(1, "<title>Nishi vs the Field -- Office Suite</title>\n<style>\n" as *u8) 134 w(1, ":root{--bg:rgb(255,255,255);--fg:rgb(22,22,34);--ac:rgb(42,77,143);--y:rgb(26,127,55);--p:rgb(178,106,0);--n:rgb(179,38,30);--ex:rgb(130,80,223);--line:rgb(227,227,234);--soft:rgb(246,247,251)}\n" as *u8) 135 w(1, "*{box-sizing:border-box}body{background:var(--bg);font-family:-apple-system,Segoe UI,Roboto,sans-serif;max-width:1040px;margin:5vh auto;padding:0 20px;color:var(--fg);line-height:1.6}\n" as *u8) 136 w(1, "h1{font-size:2rem;margin:0 0 4px}.sub{color:rgb(102,102,102);font-size:1.05rem;margin:0 0 4px}.crumb{font-size:.85rem;margin-bottom:18px}a{color:var(--ac)}\n" as *u8) 137 w(1, ".meth{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin:20px 0;font-size:.9rem;color:rgb(51,51,51)}\n" as *u8) 138 w(1, ".wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}table{border-collapse:collapse;width:100%;min-width:760px;font-size:.93rem}\n" as *u8) 139 w(1, "th,td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line)}thead th{background:var(--soft);font-weight:600}\n" as *u8) 140 w(1, "td.b{text-align:center;font-weight:600}td.b.y{color:var(--y)}td.b.p{color:var(--p)}td.b.n{color:var(--n)}td.b.ex{color:var(--ex)}td.nc{background:rgb(238,243,255)}.cat{font-weight:600}.note{color:rgb(119,119,119);font-size:.83rem}\n" as *u8) 141 w(1, "th.nishi{color:var(--ac)}.sec td{background:var(--soft);font-weight:600;font-size:.85rem}.tally{margin:20px 0}.badge{display:inline-block;padding:2px 8px;border-radius:20px;background:var(--soft);margin-right:6px;font-size:.85rem}\n" as *u8) 142 w(1, ".verdict{background:var(--soft);border-left:4px solid var(--ac);padding:12px 18px;border-radius:0 10px 10px 0;margin:18px 0}.foot{margin-top:28px;color:rgb(136,136,136);font-size:.78rem;border-top:1px solid var(--line);padding-top:14px}\n" as *u8) 143 w(1, "@media(prefers-color-scheme:dark){:root{--bg:rgb(15,15,20);--fg:rgb(230,230,238);--line:rgb(38,38,47);--soft:rgb(23,23,31)}td.nc{background:rgb(20,26,43)}}\n" as *u8) 144 w(1, "</style></head><body>\n" as *u8) 145 w(1, "<p class='crumb'><a href='/'>Nishi Family</a> &rsaquo; <a href='/compare'>Compare</a> &rsaquo; Office Suite</p>\n" as *u8) 146 w(1, "<h1>Nishi vs the Field</h1>\n<p class='sub'>Office Suite &mdash; mechanically measured, liar-killed, sovereign.</p>\n" as *u8) 147 w(1, "<p class='sub' style='font-size:.9rem'>Nishi &nbsp;vs&nbsp; Microsoft 365 Copilot &middot; Google Workspace Gemini &middot; LibreOffice</p>\n" as *u8) 148 w(1, "<div class='meth'><b>How this is scored.</b> Every <b>Nishi</b> cell is <b>measured</b> against the real organ source on disk (present = the emit symbol exists; absent = it does not exist anywhere). Competitor cells = documented 2025/2026 capability from the cited office-sota bar. Unlike Computational Math, this domain scores <b>honestly LOW</b>: the Nishi office suite is a sovereign <b>foundation</b>, not a SOTA product. The liar-kill enforces coverage under 600 and that the marquee gaps are genuinely absent.</div>\n" as *u8) 149 w(1, "<div class='wrap'><table><thead><tr><th>Capability</th><th class='nishi'>Nishi</th><th>M365 Copilot</th><th>Workspace Gemini</th><th>LibreOffice</th><th>Notes</th></tr></thead><tbody>\n" as *u8) 150 w(1, "<tr class='sec'><td colspan='6'>Word processor</td></tr>\n" as *u8) 151 html_row3(1, ".docx (OOXML) read/write" as *u8, ns_docx, 1,1,1, "nx_docx -- Word-openable OPC package" as *u8) 152 html_row3(1, ".odt (ODF) read/write" as *u8, ns_odt, 3,3,1, "nx_odt; cloud leaders import/convert" as *u8) 153 html_row3(1, "Rich formatting (styles/bold/fonts)" as *u8, ns_fmt, 1,1,1, "nx_docx run-properties (w:rPr)" as *u8) 154 html_row3(1, "Tables" as *u8, ns_tbl, 1,1,1, "nx_docx w:tblPr" as *u8) 155 html_row3(1, "Images / media" as *u8, ns_img, 1,1,1, "no w:drawing yet" as *u8) 156 html_row3(1, "Page layout (headers/sections)" as *u8, ns_lay, 1,1,1, "no sectPr" as *u8) 157 html_row3(1, "Track changes / revisions" as *u8, ns_trk, 1,1,1, "no w:ins (doc-level versioning differs, see below)" as *u8) 158 html_row3(1, "Comments / annotations" as *u8, ns_cmt, 1,1,1, "no commentReference" as *u8) 159 html_row3(1, "TOC / footnotes" as *u8, ns_ref, 1,1,1, "no footnoteReference" as *u8) 160 html_row3(1, "Spell / grammar" as *u8, ns_spl, 1,1,1, "no organ" as *u8) 161 html_row3(1, "Mail merge" as *u8, ns_mrg, 1,3,1, "nx_mailmerge {{field}} -> per-record .docx" as *u8) 162 w(1, "<tr class='sec'><td colspan='6'>Spreadsheet</td></tr>\n" as *u8) 163 html_row3(1, ".xlsx read/write" as *u8, ns_xlsx, 1,1,1, "nx_xlsx SpreadsheetML" as *u8) 164 html_row3(1, "Cell typing" as *u8, ns_cell, 1,1,1, "numeric vs inlineStr" as *u8) 165 html_row3(1, "Formulas / functions" as *u8, ns_fml, 1,1,1, "no formula cells -- values only (the core gap)" as *u8) 166 html_row3(1, "Charts" as *u8, ns_cht, 1,1,1, "none" as *u8) 167 html_row3(1, "Pivot tables" as *u8, ns_piv, 1,1,1, "none" as *u8) 168 html_row3(1, "Conditional formatting" as *u8, ns_cnd, 1,1,1, "none" as *u8) 169 html_row3(1, "Macros / scripting" as *u8, ns_mac, 1,3,1, "none" as *u8) 170 w(1, "<tr class='sec'><td colspan='6'>Presentation</td></tr>\n" as *u8) 171 html_row3(1, "Slides author (.pptx/.odp)" as *u8, ns_pptx, 1,1,1, "NO presentation organ" as *u8) 172 w(1, "<tr class='sec'><td colspan='6'>Collaboration</td></tr>\n" as *u8) 173 html_row3(1, "Real-time co-editing" as *u8, ns_coe, 1,1,3, "no OT/CRDT -- the biggest cloud gap" as *u8) 174 html_row3(1, "Sharing / comments / permissions" as *u8, ns_shr, 1,1,3, "nx_vault ACL exists but unwired" as *u8) 175 html_row3(1, "Version history" as *u8, ns_ver, 3,3,3, "EXCEEDS: tamper-evident, content-addressed, never-lose -- cloud history is mutable/deletable" as *u8) 176 w(1, "<tr class='sec'><td colspan='6'>In-app AI (the 2025/2026 headline)</td></tr>\n" as *u8) 177 html_row3(1, "In-doc AI draft/rewrite/summarize" as *u8, ns_ai1, 1,1,0, "Copilot in Word / Gemini in Docs" as *u8) 178 html_row3(1, "AI data analysis in sheets" as *u8, ns_ai2, 1,1,0, "Copilot in Excel / Gemini fill" as *u8) 179 html_row3(1, "AI presentation generation" as *u8, ns_ai3, 1,1,0, "Copilot in PowerPoint / Gemini in Slides" as *u8) 180 html_row3(1, "Agentic multi-step" as *u8, ns_ai4, 1,3,0, "Copilot Agent Mode GA 2026-04; gated on our LLM arc" as *u8) 181 w(1, "<tr class='sec'><td colspan='6'>Storage / documents / sovereignty</td></tr>\n" as *u8) 182 html_row3(1, "Document management (versioned store)" as *u8, ns_dmg, 1,1,3, "nx_vizsla_doc store/get/history" as *u8) 183 html_row3(1, "Doc generation from structured data" as *u8, ns_dgn, 1,1,3, "nx_vizsla_docgen fields -> .docx" as *u8) 184 html_row3(1, "Records / estate workflow" as *u8, ns_est, 3,3,0, "nx_estate_inventory never-lose" as *u8) 185 html_row3(1, "Cloud / offsite sync" as *u8, ns_snc, 1,1,3, "local seg_store only; oauth2 roadmap" as *u8) 186 html_row3(1, "Sovereign: on-device, no telemetry" as *u8, ns_sov, 0,0,1, "PARITY with LibreOffice; cloud leaders send data up" as *u8) 187 html_row3(1, "Open format / no lock-in" as *u8, ns_opn, 3,3,1, "both OOXML and ODF" as *u8) 188 w(1, "</tbody></table></div>\n" as *u8) 189 w(1, "<div class='tally'><span class='badge'>coverage " as *u8); wn(1, coverage); w(1, "/1000</span><span class='badge'>EXCEEDS " as *u8); wn(1, exceeds) 190 w(1, "</span><span class='badge'>PRESENT " as *u8); wn(1, present); w(1, "</span><span class='badge'>ABSENT " as *u8); wn(1, absent); w(1, "</span></div>\n" as *u8) 191 w(1, "<div class='verdict'><b>Honest verdict.</b> NOT a state-of-the-art office suite &mdash; a sovereign <b>foundation</b> with correct .docx/.xlsx/.odt interop, mail-merge, and versioned document management, plus <b>one genuine exceeds</b> (tamper-evident content-addressed never-lose version history, which even LibreOffice lacks) and privacy/open-format parity with the open-source SOTA. The 2025/2026 leaders' differentiators are all absent: agentic in-app AI (Copilot Agent Mode / Gemini), presentations entirely, deep spreadsheet (formulas/charts/pivots), and real-time collaboration. Coverage is a capability fraction, not a rank.</div>\n" as *u8) 192 w(1, "<p class='foot'>Generated by nx_swcompare_office (sovereign NishiLang organ) &mdash; every Nishi cell verified against real organ source on disk; competitor cells from office-sota-bar-2026-07-08.txt. Zero JS, zero trackers.</p>\n" as *u8) 193 w(1, "</body></html>\n" as *u8) 194 sys_exit(0); return 0 195 } 196 197 w(1, "=== NX-SWCOMPARE-OFFICE -- Nishi office stack MEASURED vs Microsoft 365 Copilot / Workspace Gemini / LibreOffice ===\n" as *u8) 198 w(1, " -- SOTA bar grounded in corpus="); wn(1, corpus); w(1, " (office-sota-bar-2026-07-08.txt)\n" as *u8) 199 con_row(".docx read/write" as *u8, ns_docx); con_row(".odt read/write" as *u8, ns_odt); con_row("rich formatting" as *u8, ns_fmt); con_row("tables" as *u8, ns_tbl) 200 con_row("images" as *u8, ns_img); con_row("page layout" as *u8, ns_lay); con_row("track changes" as *u8, ns_trk); con_row("comments" as *u8, ns_cmt); con_row("TOC/footnotes" as *u8, ns_ref); con_row("spell/grammar" as *u8, ns_spl); con_row("mail merge" as *u8, ns_mrg) 201 con_row(".xlsx read/write" as *u8, ns_xlsx); con_row("cell typing" as *u8, ns_cell); con_row("formulas" as *u8, ns_fml); con_row("charts" as *u8, ns_cht); con_row("pivot tables" as *u8, ns_piv); con_row("conditional formatting" as *u8, ns_cnd); con_row("macros" as *u8, ns_mac) 202 con_row("presentations" as *u8, ns_pptx); con_row("real-time co-editing" as *u8, ns_coe); con_row("sharing/comments" as *u8, ns_shr); con_row("version history" as *u8, ns_ver) 203 con_row("in-doc AI" as *u8, ns_ai1); con_row("AI data analysis" as *u8, ns_ai2); con_row("AI presentations" as *u8, ns_ai3); con_row("agentic AI" as *u8, ns_ai4) 204 con_row("document management" as *u8, ns_dmg); con_row("doc generation" as *u8, ns_dgn); con_row("records/estate" as *u8, ns_est); con_row("cloud sync" as *u8, ns_snc); con_row("sovereign no-telemetry" as *u8, ns_sov); con_row("open format" as *u8, ns_opn) 205 w(1, " TALLY: EXCEEDS="); wn(1, exceeds); w(1, " PRESENT="); wn(1, present); w(1, " ABSENT="); wn(1, absent); w(1, " (of "); wn(1, total); w(1, " axes) coverage="); wn(1, coverage); w(1, "/1000\n") 206 207 let liar_neg: i64 = (neg == 0) as i64 208 let liar_corpus: i64 = (corpus == 1) as i64 209 let liar_core: i64 = ns_docx & ns_xlsx & ns_odt 210 let liar_gaps: i64 = isa(ns_pptx) & isa(ns_fml) & isa(ns_coe) & isa(ns_ai4) 211 let liar_exceed: i64 = (exceeds == 1) as i64 212 let liar_low: i64 = (coverage < 600) as i64 213 w(1, " LIAR-KILL: neg-absent="); wn(1, liar_neg); w(1, " corpus="); wn(1, liar_corpus); w(1, " core-present="); wn(1, liar_core) 214 w(1, " marquee-gaps-real="); wn(1, liar_gaps); w(1, " exceeds==1="); wn(1, liar_exceed); w(1, " coverage<600="); wn(1, liar_low); w(1, "\n") 215 let ok: i64 = liar_neg & liar_corpus & liar_core & liar_gaps & liar_exceed & liar_low 216 w(1, "NX-SWCOMPARE-OFFICE coverage="); wn(1, coverage); w(1, "/1000 EXCEEDS="); wn(1, exceeds); w(1, " verdict=") 217 if ok == 1 { w(1, "MEASURED-HONEST (liar-killed) -- sovereign FOUNDATION not SOTA; 1 exceed (never-lose versioning); leaders' agentic AI + presentations + deep sheets + real-time collab absent\n" as *u8); sys_exit(0); return 0 } 218 w(1, "RED (a check failed)\n" as *u8); sys_exit(1); return 1 219}