@beyondwork/docx-react-component 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (560) hide show
  1. package/README.md +44 -104
  2. package/package.json +66 -15
  3. package/src/api/public-types.ts +1 -1
  4. package/src/compare/diff-engine.ts +530 -0
  5. package/src/compare/export-redlines.ts +162 -0
  6. package/src/compare/snapshot.ts +37 -0
  7. package/src/core/commands/index.ts +1 -1
  8. package/src/core/state/editor-state.ts +2 -2
  9. package/src/index.ts +45 -0
  10. package/src/legal/bookmarks.ts +196 -0
  11. package/src/legal/cross-references.ts +356 -0
  12. package/src/legal/defined-terms.ts +203 -0
  13. package/src/runtime/document-runtime.ts +3 -5
  14. package/src/runtime/table-commands.ts +4 -1
  15. package/src/runtime/table-schema.ts +17 -2
  16. package/src/runtime/virtualized-rendering.ts +258 -0
  17. package/src/ui/WordReviewEditor.tsx +256 -35
  18. package/src/ui-tailwind/editor-surface/tw-editor-surface.tsx +2 -2
  19. package/src/ui-tailwind/editor-surface/tw-table-node-view.tsx +16 -2
  20. package/.codex/config.toml +0 -5
  21. package/.corepack/v1/pnpm/10.30.3/.corepack +0 -1
  22. package/.corepack/v1/pnpm/10.30.3/LICENSE +0 -22
  23. package/.corepack/v1/pnpm/10.30.3/README.md +0 -240
  24. package/.corepack/v1/pnpm/10.30.3/dist/node-gyp-bin/node-gyp +0 -6
  25. package/.corepack/v1/pnpm/10.30.3/dist/node-gyp-bin/node-gyp.cmd +0 -5
  26. package/.corepack/v1/pnpm/10.30.3/dist/pnpm.cjs +0 -195400
  27. package/.corepack/v1/pnpm/10.30.3/dist/pnpmrc +0 -2
  28. package/.corepack/v1/pnpm/10.30.3/dist/reflink.darwin-arm64-2HJ4WGO6.node +0 -0
  29. package/.corepack/v1/pnpm/10.30.3/dist/reflink.darwin-x64-3G3H6IW4.node +0 -0
  30. package/.corepack/v1/pnpm/10.30.3/dist/reflink.win32-arm64-msvc-Q6BARPPB.node +0 -0
  31. package/.corepack/v1/pnpm/10.30.3/dist/reflink.win32-x64-msvc-J2TZHRQI.node +0 -0
  32. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.bash +0 -31
  33. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.fish +0 -22
  34. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.ps1 +0 -193
  35. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.zsh +0 -27
  36. package/.corepack/v1/pnpm/10.30.3/dist/vendor/fastlist-0.3.0-x64.exe +0 -0
  37. package/.corepack/v1/pnpm/10.30.3/dist/vendor/fastlist-0.3.0-x86.exe +0 -0
  38. package/.corepack/v1/pnpm/10.30.3/dist/worker.js +0 -10119
  39. package/.corepack/v1/pnpm/10.30.3/package.json +0 -192
  40. package/.cursor/mcp.json +0 -7
  41. package/.github/workflows/ci.yml +0 -35
  42. package/.mcp.json +0 -7
  43. package/.openclaw/workspace-state.json +0 -4
  44. package/.pnpmrc.json +0 -1
  45. package/.wave-launch.sh +0 -7
  46. package/.workspace-marker +0 -1
  47. package/AGENTS.md +0 -78
  48. package/CHANGELOG.md +0 -177
  49. package/DESIGN.md +0 -929
  50. package/HEARTBEAT.md +0 -7
  51. package/IDENTITY.md +0 -23
  52. package/SOUL.md +0 -36
  53. package/TOOLS.md +0 -40
  54. package/USER.md +0 -17
  55. package/docs/README.md +0 -107
  56. package/docs/agents/wave-cont-eval-role.md +0 -36
  57. package/docs/agents/wave-cont-qa-role.md +0 -52
  58. package/docs/agents/wave-deploy-verifier-role.md +0 -34
  59. package/docs/agents/wave-design-role.md +0 -47
  60. package/docs/agents/wave-documentation-role.md +0 -34
  61. package/docs/agents/wave-infra-role.md +0 -34
  62. package/docs/agents/wave-integration-role.md +0 -37
  63. package/docs/agents/wave-launcher-role.md +0 -41
  64. package/docs/agents/wave-orchestrator-role.md +0 -52
  65. package/docs/agents/wave-planner-role.md +0 -39
  66. package/docs/agents/wave-security-role.md +0 -40
  67. package/docs/architecture/docx/README.md +0 -10
  68. package/docs/architecture/future/README.md +0 -8
  69. package/docs/architecture/ooxml-upgrade-analysis.md +0 -134
  70. package/docs/architecture/platform/shared-openxml-editor-platform.md +0 -153
  71. package/docs/architecture/xlsx/canonical-workbook-model-and-commands.md +0 -187
  72. package/docs/architecture/xlsx/spreadsheet-editor-frontend-architecture.md +0 -150
  73. package/docs/comment-redline-overview.md +0 -350
  74. package/docs/concepts/context7-vs-skills.md +0 -118
  75. package/docs/concepts/operating-modes.md +0 -91
  76. package/docs/concepts/runtime-agnostic-orchestration.md +0 -111
  77. package/docs/concepts/what-is-a-wave.md +0 -217
  78. package/docs/context7/bundles.json +0 -222
  79. package/docs/context7/planner-agent/README.md +0 -28
  80. package/docs/context7/planner-agent/manifest.json +0 -83
  81. package/docs/context7/planner-agent/papers/cooperbench-why-coding-agents-cannot-be-your-teammates-yet.md +0 -3283
  82. package/docs/context7/planner-agent/papers/dova-deliberation-first-multi-agent-orchestration-for-autonomous-research-automation.md +0 -1699
  83. package/docs/context7/planner-agent/papers/dpbench-large-language-models-struggle-with-simultaneous-coordination.md +0 -2251
  84. package/docs/context7/planner-agent/papers/incremental-planning-to-control-a-blackboard-based-problem-solver.md +0 -1729
  85. package/docs/context7/planner-agent/papers/silo-bench-a-scalable-environment-for-evaluating-distributed-coordination-in-multi-agent-llm-systems.md +0 -3747
  86. package/docs/context7/planner-agent/papers/todoevolve-learning-to-architect-agent-planning-systems.md +0 -1675
  87. package/docs/context7/planner-agent/papers/verified-multi-agent-orchestration-a-plan-execute-verify-replan-framework-for-complex-query-resolution.md +0 -1173
  88. package/docs/context7/planner-agent/papers/why-do-multi-agent-llm-systems-fail.md +0 -5211
  89. package/docs/context7/planner-agent/topics/planning-and-orchestration.md +0 -24
  90. package/docs/evals/arm-templates/README.md +0 -13
  91. package/docs/evals/arm-templates/full-wave.json +0 -15
  92. package/docs/evals/arm-templates/single-agent.json +0 -15
  93. package/docs/evals/benchmark-catalog.json +0 -670
  94. package/docs/evals/cases/README.md +0 -47
  95. package/docs/evals/cases/wave-blackboard-inbox-targeting.json +0 -73
  96. package/docs/evals/cases/wave-contradiction-conflict.json +0 -104
  97. package/docs/evals/cases/wave-expert-routing-preservation.json +0 -69
  98. package/docs/evals/cases/wave-hidden-profile-private-evidence.json +0 -81
  99. package/docs/evals/cases/wave-premature-closure-guard.json +0 -71
  100. package/docs/evals/cases/wave-silo-cross-agent-state.json +0 -77
  101. package/docs/evals/cases/wave-simultaneous-lockstep.json +0 -92
  102. package/docs/evals/external-benchmarks.json +0 -85
  103. package/docs/evals/external-command-config.sample.json +0 -9
  104. package/docs/evals/external-command-config.swe-bench-pro.json +0 -8
  105. package/docs/evals/pilots/README.md +0 -47
  106. package/docs/evals/pilots/swe-bench-pro-public-full-wave-review-10.json +0 -64
  107. package/docs/evals/pilots/swe-bench-pro-public-pilot.json +0 -111
  108. package/docs/evals/wave-benchmark-program.md +0 -302
  109. package/docs/guides/planner.md +0 -220
  110. package/docs/guides/recommendations-0.8.9.md +0 -133
  111. package/docs/guides/signal-wrappers.md +0 -165
  112. package/docs/guides/terminal-surfaces.md +0 -96
  113. package/docs/image copy.png +0 -0
  114. package/docs/image.png +0 -0
  115. package/docs/images/image.png +0 -0
  116. package/docs/legal-feedback-architecture.md +0 -498
  117. package/docs/plans/component-cutover-matrix.json +0 -1072
  118. package/docs/plans/component-cutover-matrix.md +0 -307
  119. package/docs/plans/context7-wave-orchestrator.md +0 -155
  120. package/docs/plans/current-state.md +0 -198
  121. package/docs/plans/docx/README.md +0 -9
  122. package/docs/plans/examples/wave-benchmark-improvement.md +0 -108
  123. package/docs/plans/examples/wave-example-live-proof.md +0 -435
  124. package/docs/plans/master-plan.md +0 -224
  125. package/docs/plans/migration.md +0 -538
  126. package/docs/plans/operations/README.md +0 -7
  127. package/docs/plans/operations/wave-10-word-certification.md +0 -87
  128. package/docs/plans/operations/wave-8-railway-staging.md +0 -153
  129. package/docs/plans/operations/wave-9-manual-certification.md +0 -73
  130. package/docs/plans/platform/README.md +0 -9
  131. package/docs/plans/reference/legal-checklist-coverage.md +0 -258
  132. package/docs/plans/wave-orchestrator.md +0 -423
  133. package/docs/plans/waves/README.md +0 -75
  134. package/docs/plans/waves/completed/wave-0.md +0 -195
  135. package/docs/plans/waves/completed/wave-1.md +0 -379
  136. package/docs/plans/waves/completed/wave-10.md +0 -670
  137. package/docs/plans/waves/completed/wave-11.md +0 -335
  138. package/docs/plans/waves/completed/wave-12.md +0 -417
  139. package/docs/plans/waves/completed/wave-13.md +0 -316
  140. package/docs/plans/waves/completed/wave-14.md +0 -319
  141. package/docs/plans/waves/completed/wave-15.md +0 -321
  142. package/docs/plans/waves/completed/wave-16.md +0 -316
  143. package/docs/plans/waves/completed/wave-17.md +0 -331
  144. package/docs/plans/waves/completed/wave-18.md +0 -328
  145. package/docs/plans/waves/completed/wave-2.md +0 -438
  146. package/docs/plans/waves/completed/wave-3.md +0 -435
  147. package/docs/plans/waves/completed/wave-4.md +0 -430
  148. package/docs/plans/waves/completed/wave-5.md +0 -430
  149. package/docs/plans/waves/completed/wave-6.md +0 -430
  150. package/docs/plans/waves/completed/wave-7.md +0 -526
  151. package/docs/plans/waves/completed/wave-8.md +0 -596
  152. package/docs/plans/waves/completed/wave-9.md +0 -552
  153. package/docs/plans/waves/deferred/README.md +0 -14
  154. package/docs/plans/waves/deferred/encrypted-intake-contracts.md +0 -282
  155. package/docs/plans/waves/deferred/legal-feedback-wave-expansion.md +0 -308
  156. package/docs/plans/waves/deferred/wave-encrypted-intake.md +0 -451
  157. package/docs/plans/waves/design/README.md +0 -5
  158. package/docs/plans/waves/design/wave-1-a1.md +0 -309
  159. package/docs/plans/waves/reviews/README.md +0 -5
  160. package/docs/plans/waves/reviews/wave-0-cont-qa.md +0 -151
  161. package/docs/plans/waves/reviews/wave-1-cont-qa.md +0 -46
  162. package/docs/plans/waves/reviews/wave-10-accessibility-and-design.md +0 -51
  163. package/docs/plans/waves/reviews/wave-10-cont-qa.md +0 -24
  164. package/docs/plans/waves/reviews/wave-10-dashboard-proof.md +0 -46
  165. package/docs/plans/waves/reviews/wave-10-performance-signoff.md +0 -55
  166. package/docs/plans/waves/reviews/wave-10-regression-proof.md +0 -23
  167. package/docs/plans/waves/reviews/wave-10-release-audit.md +0 -31
  168. package/docs/plans/waves/reviews/wave-10-service-proof.md +0 -83
  169. package/docs/plans/waves/reviews/wave-10-word-certification.md +0 -31
  170. package/docs/plans/waves/reviews/wave-18-ai-contract-closure.md +0 -277
  171. package/docs/plans/waves/reviews/wave-18-cont-qa.md +0 -255
  172. package/docs/plans/waves/reviews/wave-18-parity-proof.md +0 -271
  173. package/docs/plans/waves/reviews/wave-19-cont-qa.md +0 -59
  174. package/docs/plans/waves/reviews/wave-2-cont-qa.md +0 -72
  175. package/docs/plans/waves/reviews/wave-20-cont-qa.md +0 -60
  176. package/docs/plans/waves/reviews/wave-25-cont-qa.md +0 -48
  177. package/docs/plans/waves/reviews/wave-28-cont-qa.md +0 -46
  178. package/docs/plans/waves/reviews/wave-29-cont-qa.md +0 -53
  179. package/docs/plans/waves/reviews/wave-3-cont-qa.md +0 -53
  180. package/docs/plans/waves/reviews/wave-3-core-proof.md +0 -77
  181. package/docs/plans/waves/reviews/wave-3-validator-proof.md +0 -73
  182. package/docs/plans/waves/reviews/wave-32-cont-qa.md +0 -43
  183. package/docs/plans/waves/reviews/wave-33-cont-qa.md +0 -526
  184. package/docs/plans/waves/reviews/wave-34-cont-qa.md +0 -100
  185. package/docs/plans/waves/reviews/wave-35-cont-qa.md +0 -145
  186. package/docs/plans/waves/reviews/wave-4-cont-qa.md +0 -47
  187. package/docs/plans/waves/reviews/wave-4-structure-proof.md +0 -69
  188. package/docs/plans/waves/reviews/wave-5-comment-proof.md +0 -158
  189. package/docs/plans/waves/reviews/wave-5-cont-qa.md +0 -68
  190. package/docs/plans/waves/reviews/wave-6-cont-qa.md +0 -416
  191. package/docs/plans/waves/reviews/wave-6-redline-proof.md +0 -130
  192. package/docs/plans/waves/reviews/wave-7-cont-qa.md +0 -82
  193. package/docs/plans/waves/reviews/wave-7-ooxml-compliance.md +0 -85
  194. package/docs/plans/waves/reviews/wave-7-preservation-proof.md +0 -119
  195. package/docs/plans/waves/reviews/wave-7-trust-ux.md +0 -87
  196. package/docs/plans/waves/reviews/wave-8-accessibility-and-design.md +0 -128
  197. package/docs/plans/waves/reviews/wave-8-cont-qa.md +0 -92
  198. package/docs/plans/waves/reviews/wave-8-live-proof.md +0 -140
  199. package/docs/plans/waves/reviews/wave-8-security.md +0 -47
  200. package/docs/plans/waves/reviews/wave-9-editor-embedding.md +0 -39
  201. package/docs/plans/waves/reviews/wave-9-fixture-runner.md +0 -56
  202. package/docs/plans/waves/reviews/wave-9-live-proof.md +0 -105
  203. package/docs/plans/waves/reviews/wave-9-usability-and-performance.md +0 -152
  204. package/docs/plans/waves/specs/README.md +0 -5
  205. package/docs/plans/waves/specs/wave-1-component-boundaries.md +0 -322
  206. package/docs/plans/waves/specs/wave-1-ooxml-contracts.md +0 -323
  207. package/docs/plans/waves/specs/wave-1-review-and-ui-contracts.md +0 -339
  208. package/docs/plans/waves/specs/wave-1-runtime-contracts.md +0 -509
  209. package/docs/plans/waves/wave-19.md +0 -341
  210. package/docs/plans/waves/wave-20.md +0 -308
  211. package/docs/plans/waves/wave-21.md +0 -289
  212. package/docs/plans/waves/wave-22.md +0 -221
  213. package/docs/plans/waves/wave-23.md +0 -295
  214. package/docs/plans/waves/wave-24.md +0 -286
  215. package/docs/plans/waves/wave-25.md +0 -313
  216. package/docs/plans/waves/wave-26.md +0 -300
  217. package/docs/plans/waves/wave-27.md +0 -299
  218. package/docs/plans/waves/wave-28.md +0 -368
  219. package/docs/plans/waves/wave-29.md +0 -303
  220. package/docs/plans/waves/wave-30.md +0 -307
  221. package/docs/plans/waves/wave-31.md +0 -231
  222. package/docs/plans/waves/wave-32.md +0 -152
  223. package/docs/plans/waves/wave-33.md +0 -147
  224. package/docs/plans/waves/wave-34.md +0 -148
  225. package/docs/plans/waves/wave-35.md +0 -141
  226. package/docs/plans/waves/wave-36.md +0 -146
  227. package/docs/plans/xlsx/README.md +0 -14
  228. package/docs/plans/xlsx/xlsx-fixture-corpus-and-certification-plan.md +0 -126
  229. package/docs/reference/cli-reference.md +0 -600
  230. package/docs/reference/coordination-and-closure.md +0 -487
  231. package/docs/reference/deep-research-report (15).md +0 -25
  232. package/docs/reference/docx/README.md +0 -10
  233. package/docs/reference/legal-checklist.md +0 -445
  234. package/docs/reference/live-proof-waves.md +0 -199
  235. package/docs/reference/ooxml-compliance.md +0 -129
  236. package/docs/reference/ooxml-feature-parity-matrix.md +0 -172
  237. package/docs/reference/platform/shared-ooxml-platform-guidance.md +0 -77
  238. package/docs/reference/prototype-agent-prompt-legal-fidelity.md +0 -155
  239. package/docs/reference/public-api.md +0 -456
  240. package/docs/reference/repository-guidance.md +0 -58
  241. package/docs/reference/runtime-config/README.md +0 -182
  242. package/docs/reference/runtime-config/claude.md +0 -110
  243. package/docs/reference/runtime-config/codex.md +0 -82
  244. package/docs/reference/runtime-config/opencode.md +0 -93
  245. package/docs/reference/sample-waves.md +0 -105
  246. package/docs/reference/skills.md +0 -237
  247. package/docs/reference/templates/AGENTS.md +0 -78
  248. package/docs/reference/templates/HEARTBEAT.md +0 -7
  249. package/docs/reference/templates/IDENTITY.md +0 -23
  250. package/docs/reference/templates/SOUL.md +0 -36
  251. package/docs/reference/templates/TOOLS.md +0 -40
  252. package/docs/reference/templates/USER.md +0 -17
  253. package/docs/reference/wave-control.md +0 -184
  254. package/docs/reference/wave-planning-lessons.md +0 -167
  255. package/docs/reference/word-review-editor-frontend-architecture.md +0 -479
  256. package/docs/reference/word-review-editor-ux-guide.md +0 -253
  257. package/docs/reference/xlsx/xlsx-ooxml-compliance.md +0 -137
  258. package/docs/research/agent-context-sources.md +0 -178
  259. package/docs/research/coordination-failure-review.md +0 -290
  260. package/docs/research/docx-react-component/Canonical Document Schema Specification for a React-based Word-compatible Editor.md +0 -2317
  261. package/docs/research/docx-react-component/Feature Compatibility Matrix for a React Word Compatible Legal Editor v1.md +0 -219
  262. package/docs/research/docx-react-component/React Component Architecture and Front-End Structure Specification for a Word-Compatible Legal Review Editor.md +0 -1112
  263. package/docs/research/docx-react-component/document_compatibility_and_testing_spec.md +0 -751
  264. package/docs/research/xlsx/raw/README.md +0 -13
  265. package/docs/roadmap.md +0 -174
  266. package/docs/superpowers/plans/2026-03-28-harness-control-bar.md +0 -677
  267. package/docs/superpowers/specs/2026-03-28-harness-control-bar-design.md +0 -274
  268. package/docs/xlsx-react/README.md +0 -38
  269. package/docs/xlsx-react/agent-llm-interaction-layer-docx-xlsx.md +0 -621
  270. package/docs/xlsx-react/canonical-workbook-model-and-commands.md +0 -948
  271. package/docs/xlsx-react/shared-openxml-editor-platform-docx-xlsx.md +0 -228
  272. package/docs/xlsx-react/spreadsheet-editor-component-architecture.md +0 -809
  273. package/docs/xlsx-react/spreadsheet-editor-frontend-architecture.md +0 -537
  274. package/docs/xlsx-react/spreadsheet-editor-ux-guide.md +0 -520
  275. package/docs/xlsx-react/xlsx-editor-research-pack.md +0 -871
  276. package/docs/xlsx-react/xlsx-fixture-corpus-and-certification-plan.md +0 -436
  277. package/docs/xlsx-react/xlsx-ooxml-compliance.md +0 -320
  278. package/examples/README.md +0 -16
  279. package/memory/MEMORY.md +0 -24
  280. package/pnpm-workspace.yaml +0 -4
  281. package/scripts/check-no-authored-js.sh +0 -13
  282. package/scripts/context7-api-check.sh +0 -65
  283. package/scripts/context7-export-env.sh +0 -42
  284. package/scripts/run-context7-mcp.sh +0 -8
  285. package/scripts/run-workspace-tests.sh +0 -15
  286. package/scripts/start-wave-10-local.sh +0 -189
  287. package/scripts/wave-agent-attach.sh +0 -47
  288. package/scripts/wave-auto-answer.sh +0 -118
  289. package/scripts/wave-dashboard-attach.sh +0 -13
  290. package/scripts/wave-launch.sh +0 -273
  291. package/scripts/wave-overnight-supervisor.sh +0 -145
  292. package/scripts/wave-status.sh +0 -379
  293. package/scripts/wave-watch.sh +0 -231
  294. package/services/README.md +0 -17
  295. package/services/openxml-validator/Dockerfile +0 -29
  296. package/services/openxml-validator/OpenXmlValidator.Api.csproj +0 -12
  297. package/services/openxml-validator/Program.cs +0 -436
  298. package/services/openxml-validator/README.md +0 -152
  299. package/services/openxml-validator/railway.json +0 -16
  300. package/services/react-word-editor/.tmp-a4/src/api/public-types.ts +0 -318
  301. package/services/react-word-editor/.tmp-a4/src/ui/WordReviewEditor.tsx +0 -1302
  302. package/services/react-word-editor/.tmp-a4/src/ui/editor-surface/editor-surface.tsx +0 -546
  303. package/services/react-word-editor/.tmp-a4/test/ui/word-review-editor.test.tsx +0 -146
  304. package/services/react-word-editor/.tmp-a4-build/src/api/public-types.js +0 -2
  305. package/services/react-word-editor/.tmp-a4-build/src/ui/WordReviewEditor.js +0 -818
  306. package/services/react-word-editor/.tmp-a4-build/src/ui/editor-surface/editor-surface.js +0 -229
  307. package/services/react-word-editor/.tmp-a4-build/test/ui/word-review-editor.test.js +0 -121
  308. package/services/react-word-editor/.tmp-wave-4-a3-tsconfig.json +0 -21
  309. package/services/react-word-editor/.tmp-wave-4-a3-tsconfig.tsbuildinfo +0 -1
  310. package/services/react-word-editor/Dockerfile +0 -26
  311. package/services/react-word-editor/README.md +0 -254
  312. package/services/react-word-editor/app/api/certification/route.ts +0 -79
  313. package/services/react-word-editor/app/api/demo-sessions/route.ts +0 -109
  314. package/services/react-word-editor/app/api/deploy-health/route.ts +0 -23
  315. package/services/react-word-editor/app/api/exports/[exportId]/route.ts +0 -34
  316. package/services/react-word-editor/app/api/exports/route.ts +0 -81
  317. package/services/react-word-editor/app/api/fixtures/[fixtureId]/run/route.ts +0 -100
  318. package/services/react-word-editor/app/api/health/route.ts +0 -70
  319. package/services/react-word-editor/app/api/runs/[runId]/route.ts +0 -36
  320. package/services/react-word-editor/app/api/scenarios/[scenarioId]/run/route.ts +0 -85
  321. package/services/react-word-editor/app/api/sessions/[sessionId]/route.ts +0 -199
  322. package/services/react-word-editor/app/api/sessions/[sessionId]/source/route.ts +0 -45
  323. package/services/react-word-editor/app/api/uploads/route.ts +0 -70
  324. package/services/react-word-editor/app/api/validate/route.ts +0 -310
  325. package/services/react-word-editor/app/certification/[runId]/page.tsx +0 -14
  326. package/services/react-word-editor/app/certification/page.tsx +0 -32
  327. package/services/react-word-editor/app/dashboard/page.tsx +0 -7
  328. package/services/react-word-editor/app/demo/page.tsx +0 -30
  329. package/services/react-word-editor/app/demo/prototype-client.tsx +0 -1080
  330. package/services/react-word-editor/app/editor/[sessionId]/page.tsx +0 -33
  331. package/services/react-word-editor/app/fixtures/page.tsx +0 -7
  332. package/services/react-word-editor/app/globals.css +0 -121
  333. package/services/react-word-editor/app/layout.tsx +0 -32
  334. package/services/react-word-editor/app/page.tsx +0 -30
  335. package/services/react-word-editor/app/runs/[runId]/page.tsx +0 -34
  336. package/services/react-word-editor/app/wave-10-word-review/page.tsx +0 -7
  337. package/services/react-word-editor/components/harness-control-bar.tsx +0 -289
  338. package/services/react-word-editor/components/harness-editor-session-client.tsx +0 -1214
  339. package/services/react-word-editor/components/harness-workspace-page.tsx +0 -715
  340. package/services/react-word-editor/components/reduced-motion-toggle.tsx +0 -79
  341. package/services/react-word-editor/components/workspace-certification-panel.tsx +0 -307
  342. package/services/react-word-editor/lib/certification-bundle.ts +0 -796
  343. package/services/react-word-editor/lib/certification-store.ts +0 -661
  344. package/services/react-word-editor/lib/demo-fixtures.test.mjs +0 -195
  345. package/services/react-word-editor/lib/demo-fixtures.ts +0 -1519
  346. package/services/react-word-editor/lib/editor-session-summary.test.mjs +0 -68
  347. package/services/react-word-editor/lib/editor-session-summary.ts +0 -14
  348. package/services/react-word-editor/lib/editor-session.ts +0 -228
  349. package/services/react-word-editor/lib/exports-route.test.mjs +0 -32
  350. package/services/react-word-editor/lib/harness-client.ts +0 -347
  351. package/services/react-word-editor/lib/harness-config.json +0 -30
  352. package/services/react-word-editor/lib/harness-config.test.mjs +0 -31
  353. package/services/react-word-editor/lib/harness-config.ts +0 -21
  354. package/services/react-word-editor/lib/harness-editor-datastore.test.mjs +0 -220
  355. package/services/react-word-editor/lib/harness-editor-datastore.ts +0 -161
  356. package/services/react-word-editor/lib/private-mode.test.mjs +0 -42
  357. package/services/react-word-editor/lib/private-mode.ts +0 -61
  358. package/services/react-word-editor/lib/regression-report.test.mjs +0 -352
  359. package/services/react-word-editor/lib/regression-report.ts +0 -896
  360. package/services/react-word-editor/lib/run-artifacts.ts +0 -934
  361. package/services/react-word-editor/lib/run-history.ts +0 -755
  362. package/services/react-word-editor/lib/scenario-artifacts.test.mjs +0 -41
  363. package/services/react-word-editor/lib/scenario-artifacts.ts +0 -44
  364. package/services/react-word-editor/lib/storage.ts +0 -953
  365. package/services/react-word-editor/lib/validator-client.test.mjs +0 -54
  366. package/services/react-word-editor/lib/validator-client.ts +0 -95
  367. package/services/react-word-editor/lib/workspace-navigation.ts +0 -79
  368. package/services/react-word-editor/middleware.ts +0 -35
  369. package/services/react-word-editor/next-env.d.ts +0 -6
  370. package/services/react-word-editor/next.config.mjs +0 -15
  371. package/services/react-word-editor/package.json +0 -38
  372. package/services/react-word-editor/postcss.config.mjs +0 -8
  373. package/services/react-word-editor/railway.json +0 -21
  374. package/services/react-word-editor/scripts/wave-10-certification.mjs +0 -101
  375. package/services/react-word-editor/scripts/wave-9-live-usability-pilot.mjs +0 -911
  376. package/services/react-word-editor/tsconfig.json +0 -39
  377. package/services/react-word-editor/tsconfig.tsbuildinfo +0 -1
  378. package/skills/README.md +0 -48
  379. package/skills/domain-docx-compatibility/SKILL.md +0 -44
  380. package/skills/domain-docx-compatibility/skill.json +0 -19
  381. package/skills/domain-editor-architecture/SKILL.md +0 -49
  382. package/skills/domain-editor-architecture/skill.json +0 -19
  383. package/skills/domain-legal-review/SKILL.md +0 -39
  384. package/skills/domain-legal-review/skill.json +0 -19
  385. package/skills/provider-aws/SKILL.md +0 -117
  386. package/skills/provider-aws/adapters/claude.md +0 -1
  387. package/skills/provider-aws/adapters/codex.md +0 -1
  388. package/skills/provider-aws/references/service-verification.md +0 -39
  389. package/skills/provider-aws/skill.json +0 -54
  390. package/skills/provider-custom-deploy/SKILL.md +0 -64
  391. package/skills/provider-custom-deploy/skill.json +0 -50
  392. package/skills/provider-docker-compose/SKILL.md +0 -96
  393. package/skills/provider-docker-compose/adapters/local.md +0 -1
  394. package/skills/provider-docker-compose/skill.json +0 -53
  395. package/skills/provider-github-release/SKILL.md +0 -121
  396. package/skills/provider-github-release/adapters/claude.md +0 -1
  397. package/skills/provider-github-release/adapters/codex.md +0 -1
  398. package/skills/provider-github-release/skill.json +0 -55
  399. package/skills/provider-kubernetes/SKILL.md +0 -143
  400. package/skills/provider-kubernetes/adapters/claude.md +0 -1
  401. package/skills/provider-kubernetes/adapters/codex.md +0 -1
  402. package/skills/provider-kubernetes/references/kubectl-patterns.md +0 -58
  403. package/skills/provider-kubernetes/skill.json +0 -52
  404. package/skills/provider-railway/SKILL.md +0 -123
  405. package/skills/provider-railway/adapters/claude.md +0 -1
  406. package/skills/provider-railway/adapters/codex.md +0 -1
  407. package/skills/provider-railway/adapters/local.md +0 -1
  408. package/skills/provider-railway/adapters/opencode.md +0 -1
  409. package/skills/provider-railway/references/verification-commands.md +0 -39
  410. package/skills/provider-railway/skill.json +0 -71
  411. package/skills/provider-ssh-manual/SKILL.md +0 -97
  412. package/skills/provider-ssh-manual/skill.json +0 -54
  413. package/skills/repo-coding-rules/SKILL.md +0 -55
  414. package/skills/repo-coding-rules/skill.json +0 -34
  415. package/skills/role-cont-eval/SKILL.md +0 -91
  416. package/skills/role-cont-eval/adapters/codex.md +0 -1
  417. package/skills/role-cont-eval/skill.json +0 -36
  418. package/skills/role-cont-qa/SKILL.md +0 -100
  419. package/skills/role-cont-qa/adapters/claude.md +0 -1
  420. package/skills/role-cont-qa/skill.json +0 -36
  421. package/skills/role-deploy/SKILL.md +0 -97
  422. package/skills/role-deploy/skill.json +0 -36
  423. package/skills/role-design/SKILL.md +0 -50
  424. package/skills/role-design/skill.json +0 -36
  425. package/skills/role-documentation/SKILL.md +0 -76
  426. package/skills/role-documentation/skill.json +0 -36
  427. package/skills/role-implementation/SKILL.md +0 -45
  428. package/skills/role-implementation/skill.json +0 -36
  429. package/skills/role-infra/SKILL.md +0 -81
  430. package/skills/role-infra/skill.json +0 -36
  431. package/skills/role-integration/SKILL.md +0 -91
  432. package/skills/role-integration/skill.json +0 -36
  433. package/skills/role-planner/SKILL.md +0 -39
  434. package/skills/role-planner/skill.json +0 -21
  435. package/skills/role-research/SKILL.md +0 -65
  436. package/skills/role-research/skill.json +0 -36
  437. package/skills/role-security/SKILL.md +0 -60
  438. package/skills/role-security/skill.json +0 -36
  439. package/skills/runtime-claude/SKILL.md +0 -66
  440. package/skills/runtime-claude/skill.json +0 -36
  441. package/skills/runtime-codex/SKILL.md +0 -58
  442. package/skills/runtime-codex/skill.json +0 -36
  443. package/skills/runtime-local/SKILL.md +0 -46
  444. package/skills/runtime-local/skill.json +0 -36
  445. package/skills/runtime-opencode/SKILL.md +0 -58
  446. package/skills/runtime-opencode/skill.json +0 -36
  447. package/skills/signal-hygiene/SKILL.md +0 -51
  448. package/skills/signal-hygiene/skill.json +0 -20
  449. package/skills/tui-design/SKILL.md +0 -77
  450. package/skills/tui-design/references/tui-design.md +0 -259
  451. package/skills/tui-design/skill.json +0 -36
  452. package/skills/wave-core/SKILL.md +0 -141
  453. package/skills/wave-core/references/marker-syntax.md +0 -70
  454. package/skills/wave-core/skill.json +0 -35
  455. package/test/README.md +0 -16
  456. package/test/core/formatting-commands.test.ts +0 -285
  457. package/test/core/image-commands.test.ts +0 -298
  458. package/test/core/mapping.test.ts +0 -186
  459. package/test/core/text-commands.test.ts +0 -176
  460. package/test/fixtures/docx/F01-basic-contract.docx +0 -0
  461. package/test/fixtures/docx/F01-basic-contract.md +0 -33
  462. package/test/fixtures/docx/F02-headings-styles.docx +0 -0
  463. package/test/fixtures/docx/F02-headings-styles.md +0 -33
  464. package/test/fixtures/docx/F03-legal-outline-numbering.docx +0 -0
  465. package/test/fixtures/docx/F03-legal-outline-numbering.md +0 -34
  466. package/test/fixtures/docx/F04-restart-numbering-schedules.docx +0 -0
  467. package/test/fixtures/docx/F04-restart-numbering-schedules.md +0 -33
  468. package/test/fixtures/docx/F05-table-heavy-agreement.docx +0 -0
  469. package/test/fixtures/docx/F05-table-heavy-agreement.md +0 -34
  470. package/test/fixtures/docx/F06-merged-cells-signature-table.docx +0 -0
  471. package/test/fixtures/docx/F06-merged-cells-signature-table.md +0 -34
  472. package/test/fixtures/docx/F07-inline-images-exhibit.docx +0 -0
  473. package/test/fixtures/docx/F07-inline-images-exhibit.md +0 -34
  474. package/test/fixtures/docx/F08-hyperlinks.docx +0 -0
  475. package/test/fixtures/docx/F08-hyperlinks.md +0 -33
  476. package/test/fixtures/docx/F09-comments-single-paragraph.docx +0 -0
  477. package/test/fixtures/docx/F09-comments-single-paragraph.md +0 -33
  478. package/test/fixtures/docx/F10-threaded-comments-resolve.docx +0 -0
  479. package/test/fixtures/docx/F10-threaded-comments-resolve.md +0 -33
  480. package/test/fixtures/docx/F11-redlines-basic.docx +0 -0
  481. package/test/fixtures/docx/F11-redlines-basic.md +0 -33
  482. package/test/fixtures/docx/F12-redlines-paragraph-joins-splits.docx +0 -0
  483. package/test/fixtures/docx/F12-redlines-paragraph-joins-splits.md +0 -33
  484. package/test/fixtures/docx/F13-comments-on-deleted-text.docx +0 -0
  485. package/test/fixtures/docx/F13-comments-on-deleted-text.md +0 -33
  486. package/test/fixtures/docx/F14-revisions-in-tables-and-lists.docx +0 -0
  487. package/test/fixtures/docx/F14-revisions-in-tables-and-lists.md +0 -33
  488. package/test/fixtures/docx/F15-sections-headers-footers.docx +0 -0
  489. package/test/fixtures/docx/F15-sections-headers-footers.md +0 -33
  490. package/test/fixtures/docx/F16-footnotes-endnotes.docx +0 -0
  491. package/test/fixtures/docx/F16-footnotes-endnotes.md +0 -33
  492. package/test/fixtures/docx/F17-fields-and-toc.docx +0 -0
  493. package/test/fixtures/docx/F17-fields-and-toc.md +0 -33
  494. package/test/fixtures/docx/F18-content-controls-template.docx +0 -0
  495. package/test/fixtures/docx/F18-content-controls-template.md +0 -33
  496. package/test/fixtures/docx/F19-custom-xml-doc-assembly.docx +0 -0
  497. package/test/fixtures/docx/F19-custom-xml-doc-assembly.md +0 -35
  498. package/test/fixtures/docx/F20-unknown-ooxml-and-alternatecontent.docx +0 -0
  499. package/test/fixtures/docx/F20-unknown-ooxml-and-alternatecontent.md +0 -33
  500. package/test/fixtures/docx/F21-malformed-broken-docx.docx +0 -0
  501. package/test/fixtures/docx/F21-malformed-broken-docx.md +0 -33
  502. package/test/fixtures/docx/README.md +0 -74
  503. package/test/fixtures/docx/certification-manifest.json +0 -104
  504. package/test/fixtures/docx/fixtures.manifest.json +0 -196
  505. package/test/fixtures/encrypted-docx/README.md +0 -27
  506. package/test/fixtures/encrypted-docx/certification-manifest.json +0 -9
  507. package/test/fixtures/encrypted-docx/fixtures.manifest.json +0 -47
  508. package/test/fixtures/scenarios/docx/README.md +0 -25
  509. package/test/fixtures/scenarios/docx/S01-sow-template.docx +0 -0
  510. package/test/fixtures/scenarios/docx/S01-sow-template.md +0 -30
  511. package/test/fixtures/scenarios/docx/S02-bw-partner-user-licence-agreement-redlines.docx +0 -0
  512. package/test/fixtures/scenarios/docx/S02-bw-partner-user-licence-agreement-redlines.md +0 -32
  513. package/test/fixtures/scenarios/docx/scenario-manifest.json +0 -53
  514. package/test/formats/xlsx/io/xlsx-import.test.ts +0 -766
  515. package/test/formats/xlsx/model/workbook.test.ts +0 -669
  516. package/test/helpers/dom-setup.ts +0 -124
  517. package/test/io/comment-roundtrip.test.ts +0 -272
  518. package/test/io/complex-content-roundtrip.test.ts +0 -632
  519. package/test/io/docx-compatibility-regression.test.ts +0 -199
  520. package/test/io/docx-session.test.ts +0 -1495
  521. package/test/io/footnotes-roundtrip.test.ts +0 -318
  522. package/test/io/headers-footers-roundtrip.test.ts +0 -547
  523. package/test/io/numbering-roundtrip.test.ts +0 -234
  524. package/test/io/package-reader.test.ts +0 -199
  525. package/test/io/paragraph-properties-roundtrip.test.ts +0 -129
  526. package/test/io/preserved-package-roundtrip.test.ts +0 -365
  527. package/test/io/property-completeness.test.ts +0 -292
  528. package/test/io/revision-roundtrip.test.ts +0 -347
  529. package/test/io/structural-blocks.test.ts +0 -202
  530. package/test/io/table-media-roundtrip.test.ts +0 -448
  531. package/test/io/table-properties-roundtrip.test.ts +0 -569
  532. package/test/io/table-roundtrip.test.ts +0 -302
  533. package/test/io/text-roundtrip.test.ts +0 -344
  534. package/test/model/canonical-document.test.ts +0 -285
  535. package/test/preservation/opaque-fragment-store.test.ts +0 -121
  536. package/test/preservation/package-preservation.test.ts +0 -395
  537. package/test/preservation/store.test.ts +0 -84
  538. package/test/review/comment-remapping.test.ts +0 -220
  539. package/test/review/comment-store.test.ts +0 -180
  540. package/test/review/move-revisions.test.ts +0 -143
  541. package/test/review/property-change-revisions.test.ts +0 -225
  542. package/test/review/revision-actions.test.ts +0 -330
  543. package/test/review/revision-store.test.ts +0 -193
  544. package/test/runtime/session-capabilities.test.ts +0 -260
  545. package/test/runtime/table-commands.test.ts +0 -356
  546. package/test/runtime/table-schema.test.ts +0 -221
  547. package/test/runtime/tracked-changes-toggle.test.ts +0 -107
  548. package/test/ui/comment-review-surface.test.tsx +0 -114
  549. package/test/ui/reduced-motion-toggle.test.tsx +0 -137
  550. package/test/ui/word-review-editor.imported-scenarios.test.tsx +0 -169
  551. package/test/ui/word-review-editor.interaction.test.tsx +0 -1198
  552. package/test/ui/word-review-editor.test.js +0 -188
  553. package/test/ui/word-review-editor.test.tsx +0 -280
  554. package/test/ui-tailwind/search-plugin.test.ts +0 -286
  555. package/test/validation/compatibility-engine.test.ts +0 -336
  556. package/test/validation/compatibility-report.test.ts +0 -189
  557. package/test/validation/low-priority-word-surfaces.test.ts +0 -282
  558. package/test/validation/malformed-doc.test.ts +0 -113
  559. package/test-results/.last-run.json +0 -4
  560. package/wave.config.json +0 -406
@@ -1,40 +0,0 @@
1
- ---
2
- title: "Wave Security Role"
3
- summary: "Standing prompt for the security reviewer that performs a threat-model-first review before integration closure."
4
- ---
5
-
6
- # Wave Security Role
7
-
8
- Use this prompt when an agent should act as the security reviewer for a wave.
9
-
10
- ## Standing prompt
11
-
12
- ```text
13
- You are the wave security reviewer for the current wave.
14
-
15
- Your job is to review the landed change set before integration closure, identify security-sensitive risks, and route exact fixes or approvals while the wave is still active. You are report-only by default. Do not replace implementation ownership.
16
-
17
- Operating rules:
18
- - Re-read the compiled shared summary, your inbox, the generated wave board projection, and the owned reports before major decisions.
19
- - Do a threat-model pass before finalizing conclusions. Identify trust boundaries, attacker-controlled inputs, sensitive assets, approval-sensitive operations, and any external execution or data access paths touched by the wave.
20
- - Prefer exact findings and exact requested fixes over vague warnings.
21
- - Route fixes to the owning agent when the required change is outside your report path.
22
- - Keep the final output short enough to drive relaunch decisions and closure gates.
23
-
24
- What you must do:
25
- - leave a security review report with these sections in order:
26
- `Threat Model`
27
- `Risky Surfaces`
28
- `Findings`
29
- `Required Approvals`
30
- `Requested Fixes`
31
- `Final Disposition`
32
- - record each finding with severity, concrete file or surface, exploit or failure mode, and the owner expected to fix it
33
- - record each approval-sensitive action explicitly, even if the wave can proceed without blocking
34
- - emit one final structured marker:
35
- `[wave-security] state=<clear|concerns|blocked> findings=<n> approvals=<n> detail=<short-note>`
36
-
37
- Use `clear` only when no unresolved findings or approvals remain.
38
- Use `concerns` when findings remain advisory for this wave and do not automatically block progression.
39
- Use `blocked` only when the wave must stop before integration until a finding or approval is resolved.
40
- ```
@@ -1,10 +0,0 @@
1
- # Docx Architecture
2
-
3
- This directory is reserved for docx-specific architecture material as the broader `react-ooxml-office` docs hierarchy fills out.
4
-
5
- Current docx architecture contracts still live in the legacy reference paths:
6
-
7
- - `docs/reference/word-review-editor-frontend-architecture.md`
8
- - `docs/reference/word-review-editor-ux-guide.md`
9
-
10
- Those remain the canonical shipped docx architecture docs today.
@@ -1,8 +0,0 @@
1
- # Future Architecture
2
-
3
- This directory is reserved for future architecture work that sits outside the current shipped docx runtime and outside the first shared OOXML sibling set.
4
-
5
- For now, that mainly means:
6
-
7
- - future pdf exploration
8
- - later cross-vertical capabilities that should not be implied by current shipped contracts
@@ -1,134 +0,0 @@
1
- # Architectural Analysis: Preserve-Only → Supported Upgrade Path
2
-
3
- ## Architecture Summary
4
-
5
- Our codebase has 4 layers for handling OOXML features:
6
-
7
- 1. **OPC Layer** (src/io/opc/) — ZIP package read/write, part discovery, relationship tracking
8
- 2. **Preservation Layer** (src/preservation/) — opaque fragment store, package part retention, MC handling
9
- 3. **Canonical Model** (src/model/) — typed document nodes, style catalog, media catalog
10
- 4. **Surface Projection** (src/runtime/) → **PM Schema** (src/ui-tailwind/) → rendered editor
11
-
12
- ### How features graduate from preserve-only to supported:
13
-
14
- ```
15
- PRESERVE-ONLY: SUPPORTED:
16
- OPC part bytes → opaque fragment → OPC part bytes → parser → canonical node
17
- opaque block in surface → typed block in surface
18
- locked in PM (no editing) → editable in PM schema
19
- reattach original bytes on export → serialize from canonical on export
20
- ```
21
-
22
- The key insight: our preservation system already handles ALL unknown content safely.
23
- Graduating a feature means: add a parser, add a canonical type, add surface projection,
24
- add PM rendering, and add a serializer. The preservation system handles the fallback.
25
-
26
- ### Validation strategy per tier:
27
-
28
- - **Tier 1 (parse + pass-through)**: Unit test parse/serialize. Fixture round-trip.
29
- - **Tier 2 (read-only projected)**: Above + surface projection test. No editing.
30
- - **Tier 3 (fully editable)**: Above + PM schema + command tests + edit round-trip.
31
-
32
- ---
33
-
34
- ## Feature Groups by Architectural Pattern
35
-
36
- ### Group A: Simple Property Parsing (13 features, ~14h)
37
- Pattern: Add field to existing canonical node type, parse from XML attr, serialize back.
38
- No new PM nodes, no new surface blocks. Properties affect rendering CSS only.
39
-
40
- Features: widowControl, pBdr, pShd, bidi, charSpacing, kerning, emboss/shadow,
41
- columnBreaks, symbols, suppressLineNumbers, cnfStyle, tblLook, latentStyles.
42
-
43
- Architecture:
44
- - Extend ParagraphNode/TextMark interfaces in canonical-document.ts
45
- - Parse in parse-main-document.ts (add cases to existing paragraph/run property loops)
46
- - Serialize in serialize-main-document.ts (add cases to existing property serializers)
47
- - Surface projection: carry properties through for CSS rendering
48
- - PM schema: add attrs to paragraph/text nodes for styling
49
- - Tests: parse + serialize round-trip per property
50
-
51
- ### Group B: Document Sub-Parts (9 features, ~42h)
52
- Pattern: Parse a separate XML part (headerN.xml, footnotes.xml, etc.), create a sub-document
53
- model, link from body references, render in dedicated UI zones.
54
-
55
- Features: headers (3 types), footers (3 types), footnotes, endnotes, theme.
56
-
57
- Architecture:
58
- - Add new canonical types: HeaderDocument, FooterDocument, FootnoteCollection, ThemeDefinition
59
- - New parsers: parse-headers.ts, parse-footnotes.ts, parse-theme.ts
60
- - New serializers: serialize-headers.ts, serialize-footnotes.ts
61
- - DocxSession: add owned paths for these parts, parse them alongside main document
62
- - Surface projection: add footer/header/footnote zones to EditorSurfaceSnapshot
63
- - PM schema: render in separate PM editors or as read-only zones
64
- - Export: serialize owned header/footer/footnote parts, reattach the rest
65
- - Theme resolution: resolve theme colors/fonts in style inheritance
66
-
67
- ### Group C: Structural Block Types (4 features, ~19h)
68
- Pattern: New block-level canonical node, parser, surface block, PM node.
69
-
70
- Features: SDT (content controls), customXml, altChunk, nestedTables.
71
-
72
- Architecture:
73
- - SDT: Parse w:sdt as a wrapper node containing block/inline children.
74
- Canonical type: SdtNode { type, properties, children }. PM: contentEditable container.
75
- Challenge: Many SDT subtypes (richText, date, dropdown, checkbox) with different editing UX.
76
- - customXml: Parse as wrapper node, treat inner content as editable.
77
- Simpler than SDT — just structural container.
78
- - altChunk: Import embedded HTML/RTF by resolving the relationship.
79
- Complex: would need an HTML/RTF → canonical converter.
80
- Pragmatic: parse as read-only projected block showing content preview.
81
- - nestedTables: Recursive table parsing. PM: prosemirror-tables supports nesting.
82
- Main work: surface-projection recursion for table-in-cell.
83
-
84
- ### Group D: Inline Content Types (4 features, ~22h)
85
- Pattern: New inline canonical node, parser, PM inline atom, serializer.
86
-
87
- Features: floatingImages, footnoteRefs, ruby, OLE objects.
88
-
89
- Architecture:
90
- - Floating images: Parse wp:anchor DrawingML. Canonical: FloatingImageNode with position/wrap props.
91
- PM: Positioned absolute/relative node (complex — needs position map outside text flow).
92
- Pragmatic: Render as inline with "floating" badge, preserve position on export.
93
- - Footnote refs: Parse w:footnoteReference. Canonical: FootnoteRefNode { noteId }.
94
- PM: Inline atom with superscript number. Click → navigate to footnote zone.
95
- Requires Group B footnote parsing.
96
- - Ruby: Parse w:ruby (base + annotation). Canonical: RubyNode { base, annotation }.
97
- PM: Inline with ruby annotation rendering (CSS ruby-position).
98
- - OLE objects: Parse w:object. Canonical: OleObjectNode { progId, fallbackImage }.
99
- PM: Inline atom showing fallback image or icon. No editing.
100
-
101
- ### Group E: Track Change Extensions (4 features, ~16h)
102
- Pattern: Extend revision model and store.
103
-
104
- Features: pPrChange, sectPrChange, tblPrChange, moveTo/moveFrom.
105
-
106
- Architecture:
107
- - Property changes: Parse old/new property pairs from w:*Change elements.
108
- Store in revision record as PropertyChangeRevision { before, after }.
109
- Surface: Show diff indicator on paragraph/section/table.
110
- Accept: Apply "after" properties. Reject: Restore "before" properties.
111
- - Move tracking: Parse w:moveFrom/moveTo with matching IDs.
112
- Store as MoveRevision { moveId, direction, range }.
113
- Surface: Render as deletion at source + insertion at destination with linking indicator.
114
- Accept: Keep destination. Reject: Restore source.
115
-
116
- ### Group F: Complex Rendering (5 features, ~83h)
117
- Pattern: Full subsystem — parser, model, renderer.
118
-
119
- Features: charts, SmartArt, shapes, WordArt, VML.
120
-
121
- Architecture:
122
- - Charts: ChartML parser → chart model → Canvas/SVG renderer.
123
- Full charting library. Huge scope. Consider: read-only SVG preview from XML.
124
- - SmartArt: DiagramML → layout algorithm → SVG rendering.
125
- Extremely complex layout engine. Consider: fallback to EMF/PNG preview image.
126
- - Shapes/WordArt/VML: Parse geometry, text, fills, effects.
127
- Consider: Read-only SVG rendering for shapes, skip editing.
128
- VML is legacy — render as fallback for pre-2007 content.
129
-
130
- ### Group G: Security (2 features, intentionally excluded)
131
- - Digital signatures: Full XMLDSIG. Out of scope.
132
- - Password encryption: Upstream concern. Out of scope.
133
-
134
- ---
@@ -1,153 +0,0 @@
1
- # Shared OOXML Editor Platform
2
-
3
- ## Status
4
-
5
- - This is the canonical umbrella architecture doc for the broader `react-ooxml-office` repo story.
6
- - The only shipped runtime in source today is the `docx` implementation behind `WordReviewEditor`.
7
- - `xlsx` is planned and documented here as the next OOXML sibling, not as a shipped runtime.
8
- - `pdf` is a future vertical and is intentionally outside this first shared OOXML platform contract.
9
-
10
- ## Purpose
11
-
12
- This repository is evolving from a docx-only product narrative into a broader office-document platform with three distinct layers:
13
-
14
- 1. shared platform capabilities
15
- 2. format-specific runtimes
16
- 3. host-facing editor surfaces
17
-
18
- The goal is to broaden the docs without pretending the codebase is already neutral. The shared platform should capture what is genuinely common across OOXML siblings such as `docx` and `xlsx`, while each format keeps its own canonical model, editing semantics, and UX.
19
-
20
- ## Core Platform Principles
21
-
22
- - Treat OOXML files as OPC packages first, not as isolated XML files.
23
- - Keep runtime-owned structured state as the only source of truth.
24
- - Route every mutation through commands and transactions.
25
- - Preserve unsupported but preservable content instead of silently discarding it.
26
- - Keep compatibility posture explicit through typed warnings, errors, and export blockers.
27
- - Use host application behavior as the final fidelity gate.
28
- - Keep shipped runtimes main-thread only unless an explicit architecture change is made.
29
-
30
- ## Layered Architecture
31
-
32
- ```text
33
- Host App
34
- |
35
- v
36
- Embeddable Editor Surface
37
- |
38
- v
39
- Format Runtime
40
- |
41
- v
42
- Shared OOXML Platform
43
- |
44
- v
45
- OPC package, preservation, diagnostics, validation
46
- ```
47
-
48
- ### Shared Platform Responsibilities
49
-
50
- The shared OOXML platform is responsible for concerns that remain honest across multiple OOXML formats:
51
-
52
- - OPC package reading and writing
53
- - part manifests, content types, and relationship integrity
54
- - preservation of unknown or unsupported but preservable parts
55
- - compatibility reporting vocabulary and export blocking
56
- - host persistence and snapshot doctrine
57
- - validation integration with the internal Open XML SDK service
58
- - shared runtime-to-UI doctrine: runtime owns truth, UI renders projections
59
- - future shared AI or agent mediation boundaries above format runtimes
60
-
61
- These concerns are intentionally narrower than a full editor runtime. The platform should not pretend that Word paragraphs and spreadsheet cells share one canonical model.
62
-
63
- ### Format Runtime Responsibilities
64
-
65
- Each format runtime owns its own domain model, editing rules, and projections:
66
-
67
- - `docx`: paragraphs, runs, comments, revisions, review anchors, and the current `WordReviewEditor` surface
68
- - `xlsx`: workbook, sheets, ranges, formulas, merges, spreadsheet annotations, and a grid-first editor surface
69
- - `pdf`: future non-OOXML work; outside the first shared platform contract
70
-
71
- Format runtimes may reuse platform services, but they must not be flattened into a lowest-common-denominator editor abstraction.
72
-
73
- ## Current State In This Repo
74
-
75
- Today the source tree is still organized around the active `docx` implementation:
76
-
77
- ```text
78
- src/
79
- api/
80
- model/
81
- core/
82
- review/
83
- io/
84
- preservation/
85
- validation/
86
- runtime/
87
- ui/
88
- services/
89
- react-word-editor/
90
- openxml-validator/
91
- ```
92
-
93
- That remains the truthful description of the landed code.
94
-
95
- The broader target architecture for future work is:
96
-
97
- ```text
98
- src/
99
- platform/
100
- formats/
101
- docx/
102
- xlsx/
103
- pdf/
104
- services/
105
- office-harness/
106
- openxml-validator/
107
- ```
108
-
109
- This target layout is a documentation and planning direction, not a claim that the source has already been moved.
110
-
111
- ## Current Format Status
112
-
113
- ### `docx`
114
-
115
- - implemented in source
116
- - shipped public component name: `WordReviewEditor`
117
- - current public API contract remains under `docs/reference/public-api.md`
118
- - current compliance contract remains under `docs/reference/ooxml-compliance.md`
119
-
120
- ### `xlsx`
121
-
122
- - not implemented in source
123
- - promoted from raw research into planned canonical docs
124
- - intended to reuse shared platform capabilities while keeping spreadsheet-native runtime and UX boundaries
125
-
126
- ### `pdf`
127
-
128
- - future exploration only
129
- - should not be forced into the OOXML platform contract unless a later architecture intentionally broadens the platform beyond OOXML
130
-
131
- ## Future Shared Capability: Agent Layer
132
-
133
- The agent or LLM interaction layer belongs above the shared platform and format runtimes, not inside the current shipped `WordReviewEditor` contract.
134
-
135
- That future layer should:
136
-
137
- - request structured context from format runtimes
138
- - propose typed commands instead of mutating state directly
139
- - respect compatibility and export blockers
140
- - remain reviewable and auditable
141
-
142
- It is a roadmap capability, not a current public API guarantee.
143
-
144
- ## Doc Map
145
-
146
- - Repo overview: `README.md`
147
- - Docs navigation: `docs/README.md`
148
- - Current docx implementation contracts: `docs/reference/public-api.md`, `docs/reference/ooxml-compliance.md`, `docs/reference/word-review-editor-frontend-architecture.md`
149
- - Planned xlsx architecture: `docs/architecture/xlsx/spreadsheet-editor-frontend-architecture.md`
150
- - Planned xlsx canonical model: `docs/architecture/xlsx/canonical-workbook-model-and-commands.md`
151
- - Planned xlsx compliance: `docs/reference/xlsx/xlsx-ooxml-compliance.md`
152
- - Planned xlsx fixture and certification program: `docs/plans/xlsx/xlsx-fixture-corpus-and-certification-plan.md`
153
- - Research intake: `docs/xlsx-react/README.md`
@@ -1,187 +0,0 @@
1
- # Canonical Workbook Model And Commands
2
-
3
- ## Status
4
-
5
- - Planned canonical model for the future `xlsx` runtime.
6
- - Not implemented in source today.
7
- - Intended to align the xlsx planning work with the current repo's runtime-first, command-driven architecture.
8
-
9
- ## Purpose
10
-
11
- This document defines what should remain canonical in a spreadsheet runtime and what should remain derived.
12
-
13
- The goal is to keep the workbook model:
14
-
15
- - sparse and serializable
16
- - safe for import and export
17
- - compatible with command and transaction boundaries
18
- - honest about preserve-only content
19
-
20
- ## Core Rules
21
-
22
- - The workbook runtime owns the only canonical state.
23
- - React renders runtime projections and never mutates canonical workbook state directly.
24
- - Commands produce transactions, mappings, effects, and history boundaries.
25
- - Structural edits must remap anchors, ranges, comments, merges, and references.
26
- - Unsupported but preservable workbook content must stay in preservation state, not be flattened into "best effort" workbook data.
27
-
28
- ## Canonical Stores
29
-
30
- The planned xlsx runtime should keep the same broad separation of concerns as the current docx runtime:
31
-
32
- - content model
33
- - review or annotation model
34
- - preservation model
35
- - diagnostics and compatibility state
36
-
37
- ### Content Model
38
-
39
- The content model should own:
40
-
41
- - workbook metadata
42
- - sheet registry and ordering
43
- - sparse cell storage
44
- - formulas and cached values
45
- - row and column properties
46
- - merges
47
- - workbook-level named items
48
- - style references and workbook-wide style registries
49
-
50
- ### Annotation Model
51
-
52
- The annotation model should own:
53
-
54
- - notes or legacy comments if supported
55
- - future threaded comment preservation data
56
- - cell or range anchors for annotations
57
-
58
- ### Preservation Model
59
-
60
- The preservation model should own:
61
-
62
- - unknown parts and relationships
63
- - preserve-only workbook features
64
- - extension markup and compatibility payloads
65
- - locked-region metadata required to explain blocked edits
66
-
67
- ## Sparse Workbook Shape
68
-
69
- The canonical workbook should be sparse by default.
70
-
71
- That means:
72
-
73
- - empty cells are omitted from canonical storage
74
- - non-default row and column metadata is stored sparsely
75
- - merges, notes, hyperlinks, and other anchored objects are stored as separate collections
76
-
77
- This avoids pretending a spreadsheet is a dense DOM-shaped tree.
78
-
79
- ## Cell Value Strategy
80
-
81
- Canonical cell state should preserve semantic type without coercing everything into a single JavaScript value shape.
82
-
83
- Minimum value families:
84
-
85
- - empty
86
- - text
87
- - number
88
- - boolean
89
- - error
90
- - formula
91
- - rich or formatted text if supported later, otherwise preserve-only
92
-
93
- The runtime may maintain derived caches for display or performance, but canonical state must remain export-safe.
94
-
95
- ## Formula Strategy
96
-
97
- Formulas should be first-class runtime entities even if the editor does not ship a full Excel-compatible calculation engine.
98
-
99
- The canonical model should retain:
100
-
101
- - formula text
102
- - reference tokens needed for remapping
103
- - cached value when present
104
- - enough structure to support safe row, column, and range edits
105
-
106
- If a formula family cannot be remapped safely, the relevant structural edit should warn, block, or remain preserve-only.
107
-
108
- ## Selection And Anchor Strategy
109
-
110
- Selection should be grid-native, not text-editor-shaped.
111
-
112
- Minimum runtime selection surfaces:
113
-
114
- - active sheet
115
- - active cell
116
- - primary range
117
- - optional multi-range support
118
- - selection mode for cells, rows, columns, or full-sheet operations
119
-
120
- Mapped anchors should also support:
121
-
122
- - notes or comments
123
- - hyperlinks
124
- - preserve-only object references
125
- - future named ranges and table surfaces
126
-
127
- ## Command And Transaction Model
128
-
129
- Every mutation should flow through typed spreadsheet commands.
130
-
131
- Representative command families:
132
-
133
- - set cell value
134
- - set formula
135
- - apply styles
136
- - insert or delete rows
137
- - insert or delete columns
138
- - merge or unmerge cells
139
- - add, rename, reorder, or delete sheets
140
- - freeze or clear panes
141
- - add or edit supported note surfaces
142
-
143
- Each transaction should produce:
144
-
145
- - next workbook state
146
- - mapping data for remapping selections and anchored objects
147
- - effects for UI or host notifications
148
- - history boundary metadata
149
-
150
- ## Preserve-Only Boundary
151
-
152
- The canonical model must not over-claim ownership.
153
-
154
- Examples of likely preserve-only workbook surfaces in early xlsx work:
155
-
156
- - threaded comments
157
- - pivot caches and pivot tables
158
- - charts and complex drawing graphs
159
- - advanced extension lists
160
- - rich value families
161
- - features that require rewriting unknown extension parts
162
-
163
- Those surfaces should stay in preservation state until they have package-backed proof and Excel reopen evidence.
164
-
165
- ## Relationship To The Shared Platform
166
-
167
- This doc intentionally stops at workbook semantics.
168
-
169
- The following concerns belong to the shared platform instead:
170
-
171
- - OPC package reading and writing
172
- - preserved part reattachment
173
- - compatibility taxonomy and export blockers
174
- - validator service integration
175
- - snapshot and persistence doctrine
176
-
177
- See `docs/architecture/platform/shared-openxml-editor-platform.md` for that shared layer.
178
-
179
- ## Source Research Mapping
180
-
181
- This canonical doc is derived from research in:
182
-
183
- - `docs/xlsx-react/canonical-workbook-model-and-commands.md`
184
- - `docs/xlsx-react/spreadsheet-editor-component-architecture.md`
185
- - `docs/xlsx-react/spreadsheet-editor-frontend-architecture.md`
186
-
187
- The research sources remain useful design rationale, but this file is the repo-aligned planned canonical model reference.
@@ -1,150 +0,0 @@
1
- # Spreadsheet Editor Frontend Architecture
2
-
3
- ## Status
4
-
5
- - Planned canonical architecture for the future `xlsx` runtime.
6
- - No `SpreadsheetEditor` implementation is shipped in this repo today.
7
- - This doc translates the strongest `docs/xlsx-react` research into a repo-aligned architecture that matches the current runtime-first philosophy without pretending the source already exists.
8
-
9
- ## Role In The Repo
10
-
11
- This document is the `xlsx` sibling to the current docx frontend architecture.
12
-
13
- Use it together with:
14
-
15
- - `docs/architecture/platform/shared-openxml-editor-platform.md`
16
- - `docs/architecture/xlsx/canonical-workbook-model-and-commands.md`
17
- - `docs/reference/xlsx/xlsx-ooxml-compliance.md`
18
- - `docs/plans/xlsx/xlsx-fixture-corpus-and-certification-plan.md`
19
-
20
- ## Frontend Doctrine
21
-
22
- - The workbook runtime owns canonical truth.
23
- - React renders runtime projections and dispatches commands.
24
- - The grid surface is spreadsheet-native and performance-driven.
25
- - UI state remains presentation-only: tabs, panel visibility, theme, and transient edit buffers.
26
- - Export safety and preserve-only states are visible in the UI instead of being hidden behind implicit behavior.
27
-
28
- ## Editor Shape
29
-
30
- The target public surface is a single embeddable component:
31
-
32
- ```tsx
33
- <SpreadsheetEditor />
34
- ```
35
-
36
- That component should remain uncontrolled by default, matching the current `WordReviewEditor` philosophy:
37
-
38
- - host provides initial source or snapshot
39
- - runtime owns the live session
40
- - host receives typed events, warnings, errors, snapshots, and exports
41
-
42
- ## Rendering Stack
43
-
44
- The spreadsheet editor should keep the same broad discipline as the docx runtime while using spreadsheet-appropriate rendering:
45
-
46
- - React shell for layout, panels, and tool surfaces
47
- - imperative or headless grid surface controller for scrolling, hit-testing, and keyboard flow
48
- - runtime-owned render snapshot consumed through `useSyncExternalStore`
49
- - token-driven theme system rather than one-off inline styling
50
-
51
- ## High-Level Component Hierarchy
52
-
53
- ```text
54
- SpreadsheetEditor
55
- └── SpreadsheetWorkspace
56
- ├── TopBar
57
- │ ├── NameBox
58
- │ ├── FormulaBar
59
- │ └── Toolbar
60
- ├── GridViewport
61
- │ ├── GridSurfaceHost
62
- │ └── GridOverlays
63
- ├── RightRail
64
- │ ├── CommentsOrNotes
65
- │ └── HealthPanel
66
- ├── SheetTabs
67
- └── StatusBar
68
- ```
69
-
70
- ## Runtime And UI Boundary
71
-
72
- The boundary should match the current repo's strongest invariant:
73
-
74
- ```text
75
- UI -> Command -> Transaction -> State Update -> Render
76
- ```
77
-
78
- Rules:
79
-
80
- - React never owns workbook truth.
81
- - The grid surface never bypasses the runtime.
82
- - Formula edits, range edits, merge edits, and structural sheet edits all flow through typed commands.
83
- - Render snapshots may be denormalized for visible regions, but persisted snapshots stay separate.
84
-
85
- ## Module Boundaries
86
-
87
- Target source ownership for the `xlsx` frontend should stay explicit:
88
-
89
- ```text
90
- src/formats/xlsx/
91
- api/
92
- model/
93
- core/
94
- commands/
95
- selection/
96
- formulas/
97
- grid-math/
98
- io/
99
- preservation/
100
- validation/
101
- runtime/
102
- ui/
103
- headless/
104
- grid-surface/
105
- react/
106
- ```
107
-
108
- This is a target-state layout, not a claim that these directories already exist.
109
-
110
- ## Capability Model
111
-
112
- The editor should derive session capabilities from runtime state rather than local UI guesses.
113
-
114
- Minimum capability surfaces:
115
-
116
- - `canEdit`
117
- - `canUndo`
118
- - `canRedo`
119
- - `canExport`
120
- - `exportBlocked`
121
- - `preserveOnlyCount`
122
- - `unsupportedFatalCount`
123
- - `canEditFormulas`
124
-
125
- ## UX Honesty Rules
126
-
127
- - Spreadsheet features are either `supported-roundtrip`, `preserve-only`, or `unsupported-fatal`.
128
- - Preserve-only content must remain visible and explainable.
129
- - Locked or blocked regions must surface through the health rail and status bar.
130
- - Unsupported structures must not be rewritten optimistically.
131
-
132
- ## Current Scope Boundary
133
-
134
- This architecture is intentionally for the future `xlsx` runtime only.
135
-
136
- It does not change:
137
-
138
- - the current `WordReviewEditor` public API
139
- - the docx-specific ProseMirror editing surface
140
- - the current docx wave maturity line
141
-
142
- ## Source Research Mapping
143
-
144
- This canonical doc is derived from research in:
145
-
146
- - `docs/xlsx-react/spreadsheet-editor-frontend-architecture.md`
147
- - `docs/xlsx-react/spreadsheet-editor-component-architecture.md`
148
- - `docs/xlsx-react/canonical-workbook-model-and-commands.md`
149
-
150
- The research papers remain useful source material, but this file is the repo-aligned planned architecture reference.