@beyondwork/docx-react-component 1.0.0

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 (690) hide show
  1. package/.codex/config.toml +5 -0
  2. package/.corepack/v1/pnpm/10.30.3/.corepack +1 -0
  3. package/.corepack/v1/pnpm/10.30.3/LICENSE +22 -0
  4. package/.corepack/v1/pnpm/10.30.3/README.md +240 -0
  5. package/.corepack/v1/pnpm/10.30.3/dist/node-gyp-bin/node-gyp +6 -0
  6. package/.corepack/v1/pnpm/10.30.3/dist/node-gyp-bin/node-gyp.cmd +5 -0
  7. package/.corepack/v1/pnpm/10.30.3/dist/pnpm.cjs +195400 -0
  8. package/.corepack/v1/pnpm/10.30.3/dist/pnpmrc +2 -0
  9. package/.corepack/v1/pnpm/10.30.3/dist/reflink.darwin-arm64-2HJ4WGO6.node +0 -0
  10. package/.corepack/v1/pnpm/10.30.3/dist/reflink.darwin-x64-3G3H6IW4.node +0 -0
  11. package/.corepack/v1/pnpm/10.30.3/dist/reflink.win32-arm64-msvc-Q6BARPPB.node +0 -0
  12. package/.corepack/v1/pnpm/10.30.3/dist/reflink.win32-x64-msvc-J2TZHRQI.node +0 -0
  13. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.bash +31 -0
  14. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.fish +22 -0
  15. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.ps1 +193 -0
  16. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.zsh +27 -0
  17. package/.corepack/v1/pnpm/10.30.3/dist/vendor/fastlist-0.3.0-x64.exe +0 -0
  18. package/.corepack/v1/pnpm/10.30.3/dist/vendor/fastlist-0.3.0-x86.exe +0 -0
  19. package/.corepack/v1/pnpm/10.30.3/dist/worker.js +10119 -0
  20. package/.corepack/v1/pnpm/10.30.3/package.json +192 -0
  21. package/.cursor/mcp.json +7 -0
  22. package/.github/workflows/ci.yml +35 -0
  23. package/.mcp.json +7 -0
  24. package/.openclaw/workspace-state.json +4 -0
  25. package/.pnpmrc.json +1 -0
  26. package/.wave-launch.sh +7 -0
  27. package/.workspace-marker +1 -0
  28. package/AGENTS.md +78 -0
  29. package/CHANGELOG.md +177 -0
  30. package/DESIGN.md +929 -0
  31. package/HEARTBEAT.md +7 -0
  32. package/IDENTITY.md +23 -0
  33. package/LICENSE.md +31 -0
  34. package/README.md +180 -0
  35. package/SOUL.md +36 -0
  36. package/TOOLS.md +40 -0
  37. package/USER.md +17 -0
  38. package/docs/README.md +107 -0
  39. package/docs/agents/wave-cont-eval-role.md +36 -0
  40. package/docs/agents/wave-cont-qa-role.md +52 -0
  41. package/docs/agents/wave-deploy-verifier-role.md +34 -0
  42. package/docs/agents/wave-design-role.md +47 -0
  43. package/docs/agents/wave-documentation-role.md +34 -0
  44. package/docs/agents/wave-infra-role.md +34 -0
  45. package/docs/agents/wave-integration-role.md +37 -0
  46. package/docs/agents/wave-launcher-role.md +41 -0
  47. package/docs/agents/wave-orchestrator-role.md +52 -0
  48. package/docs/agents/wave-planner-role.md +39 -0
  49. package/docs/agents/wave-security-role.md +40 -0
  50. package/docs/architecture/docx/README.md +10 -0
  51. package/docs/architecture/future/README.md +8 -0
  52. package/docs/architecture/ooxml-upgrade-analysis.md +134 -0
  53. package/docs/architecture/platform/shared-openxml-editor-platform.md +153 -0
  54. package/docs/architecture/xlsx/canonical-workbook-model-and-commands.md +187 -0
  55. package/docs/architecture/xlsx/spreadsheet-editor-frontend-architecture.md +150 -0
  56. package/docs/comment-redline-overview.md +350 -0
  57. package/docs/concepts/context7-vs-skills.md +118 -0
  58. package/docs/concepts/operating-modes.md +91 -0
  59. package/docs/concepts/runtime-agnostic-orchestration.md +111 -0
  60. package/docs/concepts/what-is-a-wave.md +217 -0
  61. package/docs/context7/bundles.json +222 -0
  62. package/docs/context7/planner-agent/README.md +28 -0
  63. package/docs/context7/planner-agent/manifest.json +83 -0
  64. package/docs/context7/planner-agent/papers/cooperbench-why-coding-agents-cannot-be-your-teammates-yet.md +3283 -0
  65. package/docs/context7/planner-agent/papers/dova-deliberation-first-multi-agent-orchestration-for-autonomous-research-automation.md +1699 -0
  66. package/docs/context7/planner-agent/papers/dpbench-large-language-models-struggle-with-simultaneous-coordination.md +2251 -0
  67. package/docs/context7/planner-agent/papers/incremental-planning-to-control-a-blackboard-based-problem-solver.md +1729 -0
  68. package/docs/context7/planner-agent/papers/silo-bench-a-scalable-environment-for-evaluating-distributed-coordination-in-multi-agent-llm-systems.md +3747 -0
  69. package/docs/context7/planner-agent/papers/todoevolve-learning-to-architect-agent-planning-systems.md +1675 -0
  70. package/docs/context7/planner-agent/papers/verified-multi-agent-orchestration-a-plan-execute-verify-replan-framework-for-complex-query-resolution.md +1173 -0
  71. package/docs/context7/planner-agent/papers/why-do-multi-agent-llm-systems-fail.md +5211 -0
  72. package/docs/context7/planner-agent/topics/planning-and-orchestration.md +24 -0
  73. package/docs/evals/arm-templates/README.md +13 -0
  74. package/docs/evals/arm-templates/full-wave.json +15 -0
  75. package/docs/evals/arm-templates/single-agent.json +15 -0
  76. package/docs/evals/benchmark-catalog.json +670 -0
  77. package/docs/evals/cases/README.md +47 -0
  78. package/docs/evals/cases/wave-blackboard-inbox-targeting.json +73 -0
  79. package/docs/evals/cases/wave-contradiction-conflict.json +104 -0
  80. package/docs/evals/cases/wave-expert-routing-preservation.json +69 -0
  81. package/docs/evals/cases/wave-hidden-profile-private-evidence.json +81 -0
  82. package/docs/evals/cases/wave-premature-closure-guard.json +71 -0
  83. package/docs/evals/cases/wave-silo-cross-agent-state.json +77 -0
  84. package/docs/evals/cases/wave-simultaneous-lockstep.json +92 -0
  85. package/docs/evals/external-benchmarks.json +85 -0
  86. package/docs/evals/external-command-config.sample.json +9 -0
  87. package/docs/evals/external-command-config.swe-bench-pro.json +8 -0
  88. package/docs/evals/pilots/README.md +47 -0
  89. package/docs/evals/pilots/swe-bench-pro-public-full-wave-review-10.json +64 -0
  90. package/docs/evals/pilots/swe-bench-pro-public-pilot.json +111 -0
  91. package/docs/evals/wave-benchmark-program.md +302 -0
  92. package/docs/guides/planner.md +220 -0
  93. package/docs/guides/recommendations-0.8.9.md +133 -0
  94. package/docs/guides/signal-wrappers.md +165 -0
  95. package/docs/guides/terminal-surfaces.md +96 -0
  96. package/docs/image copy.png +0 -0
  97. package/docs/image.png +0 -0
  98. package/docs/images/image.png +0 -0
  99. package/docs/legal-feedback-architecture.md +498 -0
  100. package/docs/plans/component-cutover-matrix.json +1072 -0
  101. package/docs/plans/component-cutover-matrix.md +307 -0
  102. package/docs/plans/context7-wave-orchestrator.md +155 -0
  103. package/docs/plans/current-state.md +198 -0
  104. package/docs/plans/docx/README.md +9 -0
  105. package/docs/plans/examples/wave-benchmark-improvement.md +108 -0
  106. package/docs/plans/examples/wave-example-live-proof.md +435 -0
  107. package/docs/plans/master-plan.md +224 -0
  108. package/docs/plans/migration.md +538 -0
  109. package/docs/plans/operations/README.md +7 -0
  110. package/docs/plans/operations/wave-10-word-certification.md +87 -0
  111. package/docs/plans/operations/wave-8-railway-staging.md +153 -0
  112. package/docs/plans/operations/wave-9-manual-certification.md +73 -0
  113. package/docs/plans/platform/README.md +9 -0
  114. package/docs/plans/reference/legal-checklist-coverage.md +258 -0
  115. package/docs/plans/wave-orchestrator.md +423 -0
  116. package/docs/plans/waves/README.md +75 -0
  117. package/docs/plans/waves/completed/wave-0.md +195 -0
  118. package/docs/plans/waves/completed/wave-1.md +379 -0
  119. package/docs/plans/waves/completed/wave-10.md +670 -0
  120. package/docs/plans/waves/completed/wave-11.md +335 -0
  121. package/docs/plans/waves/completed/wave-12.md +417 -0
  122. package/docs/plans/waves/completed/wave-13.md +316 -0
  123. package/docs/plans/waves/completed/wave-14.md +319 -0
  124. package/docs/plans/waves/completed/wave-15.md +321 -0
  125. package/docs/plans/waves/completed/wave-16.md +316 -0
  126. package/docs/plans/waves/completed/wave-17.md +331 -0
  127. package/docs/plans/waves/completed/wave-18.md +328 -0
  128. package/docs/plans/waves/completed/wave-2.md +438 -0
  129. package/docs/plans/waves/completed/wave-3.md +435 -0
  130. package/docs/plans/waves/completed/wave-4.md +430 -0
  131. package/docs/plans/waves/completed/wave-5.md +430 -0
  132. package/docs/plans/waves/completed/wave-6.md +430 -0
  133. package/docs/plans/waves/completed/wave-7.md +526 -0
  134. package/docs/plans/waves/completed/wave-8.md +596 -0
  135. package/docs/plans/waves/completed/wave-9.md +552 -0
  136. package/docs/plans/waves/deferred/README.md +14 -0
  137. package/docs/plans/waves/deferred/encrypted-intake-contracts.md +282 -0
  138. package/docs/plans/waves/deferred/legal-feedback-wave-expansion.md +308 -0
  139. package/docs/plans/waves/deferred/wave-encrypted-intake.md +451 -0
  140. package/docs/plans/waves/design/README.md +5 -0
  141. package/docs/plans/waves/design/wave-1-a1.md +309 -0
  142. package/docs/plans/waves/reviews/README.md +5 -0
  143. package/docs/plans/waves/reviews/wave-0-cont-qa.md +151 -0
  144. package/docs/plans/waves/reviews/wave-1-cont-qa.md +46 -0
  145. package/docs/plans/waves/reviews/wave-10-accessibility-and-design.md +51 -0
  146. package/docs/plans/waves/reviews/wave-10-cont-qa.md +24 -0
  147. package/docs/plans/waves/reviews/wave-10-dashboard-proof.md +46 -0
  148. package/docs/plans/waves/reviews/wave-10-performance-signoff.md +55 -0
  149. package/docs/plans/waves/reviews/wave-10-regression-proof.md +23 -0
  150. package/docs/plans/waves/reviews/wave-10-release-audit.md +31 -0
  151. package/docs/plans/waves/reviews/wave-10-service-proof.md +83 -0
  152. package/docs/plans/waves/reviews/wave-10-word-certification.md +31 -0
  153. package/docs/plans/waves/reviews/wave-18-ai-contract-closure.md +277 -0
  154. package/docs/plans/waves/reviews/wave-18-cont-qa.md +255 -0
  155. package/docs/plans/waves/reviews/wave-18-parity-proof.md +271 -0
  156. package/docs/plans/waves/reviews/wave-19-cont-qa.md +59 -0
  157. package/docs/plans/waves/reviews/wave-2-cont-qa.md +72 -0
  158. package/docs/plans/waves/reviews/wave-20-cont-qa.md +60 -0
  159. package/docs/plans/waves/reviews/wave-25-cont-qa.md +48 -0
  160. package/docs/plans/waves/reviews/wave-28-cont-qa.md +46 -0
  161. package/docs/plans/waves/reviews/wave-29-cont-qa.md +53 -0
  162. package/docs/plans/waves/reviews/wave-3-cont-qa.md +53 -0
  163. package/docs/plans/waves/reviews/wave-3-core-proof.md +77 -0
  164. package/docs/plans/waves/reviews/wave-3-validator-proof.md +73 -0
  165. package/docs/plans/waves/reviews/wave-32-cont-qa.md +43 -0
  166. package/docs/plans/waves/reviews/wave-33-cont-qa.md +526 -0
  167. package/docs/plans/waves/reviews/wave-34-cont-qa.md +100 -0
  168. package/docs/plans/waves/reviews/wave-35-cont-qa.md +145 -0
  169. package/docs/plans/waves/reviews/wave-4-cont-qa.md +47 -0
  170. package/docs/plans/waves/reviews/wave-4-structure-proof.md +69 -0
  171. package/docs/plans/waves/reviews/wave-5-comment-proof.md +158 -0
  172. package/docs/plans/waves/reviews/wave-5-cont-qa.md +68 -0
  173. package/docs/plans/waves/reviews/wave-6-cont-qa.md +416 -0
  174. package/docs/plans/waves/reviews/wave-6-redline-proof.md +130 -0
  175. package/docs/plans/waves/reviews/wave-7-cont-qa.md +82 -0
  176. package/docs/plans/waves/reviews/wave-7-ooxml-compliance.md +85 -0
  177. package/docs/plans/waves/reviews/wave-7-preservation-proof.md +119 -0
  178. package/docs/plans/waves/reviews/wave-7-trust-ux.md +87 -0
  179. package/docs/plans/waves/reviews/wave-8-accessibility-and-design.md +128 -0
  180. package/docs/plans/waves/reviews/wave-8-cont-qa.md +92 -0
  181. package/docs/plans/waves/reviews/wave-8-live-proof.md +140 -0
  182. package/docs/plans/waves/reviews/wave-8-security.md +47 -0
  183. package/docs/plans/waves/reviews/wave-9-editor-embedding.md +39 -0
  184. package/docs/plans/waves/reviews/wave-9-fixture-runner.md +56 -0
  185. package/docs/plans/waves/reviews/wave-9-live-proof.md +105 -0
  186. package/docs/plans/waves/reviews/wave-9-usability-and-performance.md +152 -0
  187. package/docs/plans/waves/specs/README.md +5 -0
  188. package/docs/plans/waves/specs/wave-1-component-boundaries.md +322 -0
  189. package/docs/plans/waves/specs/wave-1-ooxml-contracts.md +323 -0
  190. package/docs/plans/waves/specs/wave-1-review-and-ui-contracts.md +339 -0
  191. package/docs/plans/waves/specs/wave-1-runtime-contracts.md +509 -0
  192. package/docs/plans/waves/wave-19.md +341 -0
  193. package/docs/plans/waves/wave-20.md +308 -0
  194. package/docs/plans/waves/wave-21.md +289 -0
  195. package/docs/plans/waves/wave-22.md +221 -0
  196. package/docs/plans/waves/wave-23.md +295 -0
  197. package/docs/plans/waves/wave-24.md +286 -0
  198. package/docs/plans/waves/wave-25.md +313 -0
  199. package/docs/plans/waves/wave-26.md +300 -0
  200. package/docs/plans/waves/wave-27.md +299 -0
  201. package/docs/plans/waves/wave-28.md +368 -0
  202. package/docs/plans/waves/wave-29.md +303 -0
  203. package/docs/plans/waves/wave-30.md +307 -0
  204. package/docs/plans/waves/wave-31.md +231 -0
  205. package/docs/plans/waves/wave-32.md +152 -0
  206. package/docs/plans/waves/wave-33.md +147 -0
  207. package/docs/plans/waves/wave-34.md +148 -0
  208. package/docs/plans/waves/wave-35.md +141 -0
  209. package/docs/plans/waves/wave-36.md +146 -0
  210. package/docs/plans/xlsx/README.md +14 -0
  211. package/docs/plans/xlsx/xlsx-fixture-corpus-and-certification-plan.md +126 -0
  212. package/docs/reference/cli-reference.md +600 -0
  213. package/docs/reference/coordination-and-closure.md +487 -0
  214. package/docs/reference/deep-research-report (15).md +25 -0
  215. package/docs/reference/docx/README.md +10 -0
  216. package/docs/reference/legal-checklist.md +445 -0
  217. package/docs/reference/live-proof-waves.md +199 -0
  218. package/docs/reference/ooxml-compliance.md +129 -0
  219. package/docs/reference/ooxml-feature-parity-matrix.md +172 -0
  220. package/docs/reference/platform/shared-ooxml-platform-guidance.md +77 -0
  221. package/docs/reference/prototype-agent-prompt-legal-fidelity.md +155 -0
  222. package/docs/reference/public-api.md +456 -0
  223. package/docs/reference/repository-guidance.md +58 -0
  224. package/docs/reference/runtime-config/README.md +182 -0
  225. package/docs/reference/runtime-config/claude.md +110 -0
  226. package/docs/reference/runtime-config/codex.md +82 -0
  227. package/docs/reference/runtime-config/opencode.md +93 -0
  228. package/docs/reference/sample-waves.md +105 -0
  229. package/docs/reference/skills.md +237 -0
  230. package/docs/reference/templates/AGENTS.md +78 -0
  231. package/docs/reference/templates/HEARTBEAT.md +7 -0
  232. package/docs/reference/templates/IDENTITY.md +23 -0
  233. package/docs/reference/templates/SOUL.md +36 -0
  234. package/docs/reference/templates/TOOLS.md +40 -0
  235. package/docs/reference/templates/USER.md +17 -0
  236. package/docs/reference/wave-control.md +184 -0
  237. package/docs/reference/wave-planning-lessons.md +167 -0
  238. package/docs/reference/word-review-editor-frontend-architecture.md +479 -0
  239. package/docs/reference/word-review-editor-ux-guide.md +253 -0
  240. package/docs/reference/xlsx/xlsx-ooxml-compliance.md +137 -0
  241. package/docs/research/agent-context-sources.md +178 -0
  242. package/docs/research/coordination-failure-review.md +290 -0
  243. package/docs/research/docx-react-component/Canonical Document Schema Specification for a React-based Word-compatible Editor.md +2317 -0
  244. package/docs/research/docx-react-component/Feature Compatibility Matrix for a React Word Compatible Legal Editor v1.md +219 -0
  245. package/docs/research/docx-react-component/React Component Architecture and Front-End Structure Specification for a Word-Compatible Legal Review Editor.md +1112 -0
  246. package/docs/research/docx-react-component/document_compatibility_and_testing_spec.md +751 -0
  247. package/docs/research/xlsx/raw/README.md +13 -0
  248. package/docs/roadmap.md +174 -0
  249. package/docs/superpowers/plans/2026-03-28-harness-control-bar.md +677 -0
  250. package/docs/superpowers/specs/2026-03-28-harness-control-bar-design.md +274 -0
  251. package/docs/xlsx-react/README.md +38 -0
  252. package/docs/xlsx-react/agent-llm-interaction-layer-docx-xlsx.md +621 -0
  253. package/docs/xlsx-react/canonical-workbook-model-and-commands.md +948 -0
  254. package/docs/xlsx-react/shared-openxml-editor-platform-docx-xlsx.md +228 -0
  255. package/docs/xlsx-react/spreadsheet-editor-component-architecture.md +809 -0
  256. package/docs/xlsx-react/spreadsheet-editor-frontend-architecture.md +537 -0
  257. package/docs/xlsx-react/spreadsheet-editor-ux-guide.md +520 -0
  258. package/docs/xlsx-react/xlsx-editor-research-pack.md +871 -0
  259. package/docs/xlsx-react/xlsx-fixture-corpus-and-certification-plan.md +436 -0
  260. package/docs/xlsx-react/xlsx-ooxml-compliance.md +320 -0
  261. package/examples/README.md +16 -0
  262. package/memory/MEMORY.md +24 -0
  263. package/package.json +63 -0
  264. package/pnpm-workspace.yaml +4 -0
  265. package/scripts/check-no-authored-js.sh +13 -0
  266. package/scripts/context7-api-check.sh +65 -0
  267. package/scripts/context7-export-env.sh +42 -0
  268. package/scripts/run-context7-mcp.sh +8 -0
  269. package/scripts/run-workspace-tests.sh +15 -0
  270. package/scripts/start-wave-10-local.sh +189 -0
  271. package/scripts/wave-agent-attach.sh +47 -0
  272. package/scripts/wave-auto-answer.sh +118 -0
  273. package/scripts/wave-dashboard-attach.sh +13 -0
  274. package/scripts/wave-launch.sh +273 -0
  275. package/scripts/wave-overnight-supervisor.sh +145 -0
  276. package/scripts/wave-status.sh +379 -0
  277. package/scripts/wave-watch.sh +231 -0
  278. package/services/README.md +17 -0
  279. package/services/openxml-validator/Dockerfile +29 -0
  280. package/services/openxml-validator/OpenXmlValidator.Api.csproj +12 -0
  281. package/services/openxml-validator/Program.cs +436 -0
  282. package/services/openxml-validator/README.md +152 -0
  283. package/services/openxml-validator/railway.json +16 -0
  284. package/services/react-word-editor/.tmp-a4/src/api/public-types.ts +318 -0
  285. package/services/react-word-editor/.tmp-a4/src/ui/WordReviewEditor.tsx +1302 -0
  286. package/services/react-word-editor/.tmp-a4/src/ui/editor-surface/editor-surface.tsx +546 -0
  287. package/services/react-word-editor/.tmp-a4/test/ui/word-review-editor.test.tsx +146 -0
  288. package/services/react-word-editor/.tmp-a4-build/src/api/public-types.js +2 -0
  289. package/services/react-word-editor/.tmp-a4-build/src/ui/WordReviewEditor.js +818 -0
  290. package/services/react-word-editor/.tmp-a4-build/src/ui/editor-surface/editor-surface.js +229 -0
  291. package/services/react-word-editor/.tmp-a4-build/test/ui/word-review-editor.test.js +121 -0
  292. package/services/react-word-editor/.tmp-wave-4-a3-tsconfig.json +21 -0
  293. package/services/react-word-editor/.tmp-wave-4-a3-tsconfig.tsbuildinfo +1 -0
  294. package/services/react-word-editor/Dockerfile +26 -0
  295. package/services/react-word-editor/README.md +254 -0
  296. package/services/react-word-editor/app/api/certification/route.ts +79 -0
  297. package/services/react-word-editor/app/api/demo-sessions/route.ts +109 -0
  298. package/services/react-word-editor/app/api/deploy-health/route.ts +23 -0
  299. package/services/react-word-editor/app/api/exports/[exportId]/route.ts +34 -0
  300. package/services/react-word-editor/app/api/exports/route.ts +81 -0
  301. package/services/react-word-editor/app/api/fixtures/[fixtureId]/run/route.ts +100 -0
  302. package/services/react-word-editor/app/api/health/route.ts +70 -0
  303. package/services/react-word-editor/app/api/runs/[runId]/route.ts +36 -0
  304. package/services/react-word-editor/app/api/scenarios/[scenarioId]/run/route.ts +85 -0
  305. package/services/react-word-editor/app/api/sessions/[sessionId]/route.ts +199 -0
  306. package/services/react-word-editor/app/api/sessions/[sessionId]/source/route.ts +45 -0
  307. package/services/react-word-editor/app/api/uploads/route.ts +70 -0
  308. package/services/react-word-editor/app/api/validate/route.ts +310 -0
  309. package/services/react-word-editor/app/certification/[runId]/page.tsx +14 -0
  310. package/services/react-word-editor/app/certification/page.tsx +32 -0
  311. package/services/react-word-editor/app/dashboard/page.tsx +7 -0
  312. package/services/react-word-editor/app/demo/page.tsx +30 -0
  313. package/services/react-word-editor/app/demo/prototype-client.tsx +1080 -0
  314. package/services/react-word-editor/app/editor/[sessionId]/page.tsx +33 -0
  315. package/services/react-word-editor/app/fixtures/page.tsx +7 -0
  316. package/services/react-word-editor/app/globals.css +121 -0
  317. package/services/react-word-editor/app/layout.tsx +32 -0
  318. package/services/react-word-editor/app/page.tsx +30 -0
  319. package/services/react-word-editor/app/runs/[runId]/page.tsx +34 -0
  320. package/services/react-word-editor/app/wave-10-word-review/page.tsx +7 -0
  321. package/services/react-word-editor/components/harness-control-bar.tsx +289 -0
  322. package/services/react-word-editor/components/harness-editor-session-client.tsx +1214 -0
  323. package/services/react-word-editor/components/harness-workspace-page.tsx +715 -0
  324. package/services/react-word-editor/components/reduced-motion-toggle.tsx +79 -0
  325. package/services/react-word-editor/components/workspace-certification-panel.tsx +307 -0
  326. package/services/react-word-editor/lib/certification-bundle.ts +796 -0
  327. package/services/react-word-editor/lib/certification-store.ts +661 -0
  328. package/services/react-word-editor/lib/demo-fixtures.test.mjs +195 -0
  329. package/services/react-word-editor/lib/demo-fixtures.ts +1519 -0
  330. package/services/react-word-editor/lib/editor-session-summary.test.mjs +68 -0
  331. package/services/react-word-editor/lib/editor-session-summary.ts +14 -0
  332. package/services/react-word-editor/lib/editor-session.ts +228 -0
  333. package/services/react-word-editor/lib/exports-route.test.mjs +32 -0
  334. package/services/react-word-editor/lib/harness-client.ts +347 -0
  335. package/services/react-word-editor/lib/harness-config.json +30 -0
  336. package/services/react-word-editor/lib/harness-config.test.mjs +31 -0
  337. package/services/react-word-editor/lib/harness-config.ts +21 -0
  338. package/services/react-word-editor/lib/harness-editor-datastore.test.mjs +220 -0
  339. package/services/react-word-editor/lib/harness-editor-datastore.ts +161 -0
  340. package/services/react-word-editor/lib/private-mode.test.mjs +42 -0
  341. package/services/react-word-editor/lib/private-mode.ts +61 -0
  342. package/services/react-word-editor/lib/regression-report.test.mjs +352 -0
  343. package/services/react-word-editor/lib/regression-report.ts +896 -0
  344. package/services/react-word-editor/lib/run-artifacts.ts +934 -0
  345. package/services/react-word-editor/lib/run-history.ts +755 -0
  346. package/services/react-word-editor/lib/scenario-artifacts.test.mjs +41 -0
  347. package/services/react-word-editor/lib/scenario-artifacts.ts +44 -0
  348. package/services/react-word-editor/lib/storage.ts +953 -0
  349. package/services/react-word-editor/lib/validator-client.test.mjs +54 -0
  350. package/services/react-word-editor/lib/validator-client.ts +95 -0
  351. package/services/react-word-editor/lib/workspace-navigation.ts +79 -0
  352. package/services/react-word-editor/middleware.ts +35 -0
  353. package/services/react-word-editor/next-env.d.ts +6 -0
  354. package/services/react-word-editor/next.config.mjs +15 -0
  355. package/services/react-word-editor/package.json +38 -0
  356. package/services/react-word-editor/postcss.config.mjs +8 -0
  357. package/services/react-word-editor/railway.json +21 -0
  358. package/services/react-word-editor/scripts/wave-10-certification.mjs +101 -0
  359. package/services/react-word-editor/scripts/wave-9-live-usability-pilot.mjs +911 -0
  360. package/services/react-word-editor/tsconfig.json +39 -0
  361. package/services/react-word-editor/tsconfig.tsbuildinfo +1 -0
  362. package/skills/README.md +48 -0
  363. package/skills/domain-docx-compatibility/SKILL.md +44 -0
  364. package/skills/domain-docx-compatibility/skill.json +19 -0
  365. package/skills/domain-editor-architecture/SKILL.md +49 -0
  366. package/skills/domain-editor-architecture/skill.json +19 -0
  367. package/skills/domain-legal-review/SKILL.md +39 -0
  368. package/skills/domain-legal-review/skill.json +19 -0
  369. package/skills/provider-aws/SKILL.md +117 -0
  370. package/skills/provider-aws/adapters/claude.md +1 -0
  371. package/skills/provider-aws/adapters/codex.md +1 -0
  372. package/skills/provider-aws/references/service-verification.md +39 -0
  373. package/skills/provider-aws/skill.json +54 -0
  374. package/skills/provider-custom-deploy/SKILL.md +64 -0
  375. package/skills/provider-custom-deploy/skill.json +50 -0
  376. package/skills/provider-docker-compose/SKILL.md +96 -0
  377. package/skills/provider-docker-compose/adapters/local.md +1 -0
  378. package/skills/provider-docker-compose/skill.json +53 -0
  379. package/skills/provider-github-release/SKILL.md +121 -0
  380. package/skills/provider-github-release/adapters/claude.md +1 -0
  381. package/skills/provider-github-release/adapters/codex.md +1 -0
  382. package/skills/provider-github-release/skill.json +55 -0
  383. package/skills/provider-kubernetes/SKILL.md +143 -0
  384. package/skills/provider-kubernetes/adapters/claude.md +1 -0
  385. package/skills/provider-kubernetes/adapters/codex.md +1 -0
  386. package/skills/provider-kubernetes/references/kubectl-patterns.md +58 -0
  387. package/skills/provider-kubernetes/skill.json +52 -0
  388. package/skills/provider-railway/SKILL.md +123 -0
  389. package/skills/provider-railway/adapters/claude.md +1 -0
  390. package/skills/provider-railway/adapters/codex.md +1 -0
  391. package/skills/provider-railway/adapters/local.md +1 -0
  392. package/skills/provider-railway/adapters/opencode.md +1 -0
  393. package/skills/provider-railway/references/verification-commands.md +39 -0
  394. package/skills/provider-railway/skill.json +71 -0
  395. package/skills/provider-ssh-manual/SKILL.md +97 -0
  396. package/skills/provider-ssh-manual/skill.json +54 -0
  397. package/skills/repo-coding-rules/SKILL.md +55 -0
  398. package/skills/repo-coding-rules/skill.json +34 -0
  399. package/skills/role-cont-eval/SKILL.md +91 -0
  400. package/skills/role-cont-eval/adapters/codex.md +1 -0
  401. package/skills/role-cont-eval/skill.json +36 -0
  402. package/skills/role-cont-qa/SKILL.md +100 -0
  403. package/skills/role-cont-qa/adapters/claude.md +1 -0
  404. package/skills/role-cont-qa/skill.json +36 -0
  405. package/skills/role-deploy/SKILL.md +97 -0
  406. package/skills/role-deploy/skill.json +36 -0
  407. package/skills/role-design/SKILL.md +50 -0
  408. package/skills/role-design/skill.json +36 -0
  409. package/skills/role-documentation/SKILL.md +76 -0
  410. package/skills/role-documentation/skill.json +36 -0
  411. package/skills/role-implementation/SKILL.md +45 -0
  412. package/skills/role-implementation/skill.json +36 -0
  413. package/skills/role-infra/SKILL.md +81 -0
  414. package/skills/role-infra/skill.json +36 -0
  415. package/skills/role-integration/SKILL.md +91 -0
  416. package/skills/role-integration/skill.json +36 -0
  417. package/skills/role-planner/SKILL.md +39 -0
  418. package/skills/role-planner/skill.json +21 -0
  419. package/skills/role-research/SKILL.md +65 -0
  420. package/skills/role-research/skill.json +36 -0
  421. package/skills/role-security/SKILL.md +60 -0
  422. package/skills/role-security/skill.json +36 -0
  423. package/skills/runtime-claude/SKILL.md +66 -0
  424. package/skills/runtime-claude/skill.json +36 -0
  425. package/skills/runtime-codex/SKILL.md +58 -0
  426. package/skills/runtime-codex/skill.json +36 -0
  427. package/skills/runtime-local/SKILL.md +46 -0
  428. package/skills/runtime-local/skill.json +36 -0
  429. package/skills/runtime-opencode/SKILL.md +58 -0
  430. package/skills/runtime-opencode/skill.json +36 -0
  431. package/skills/signal-hygiene/SKILL.md +51 -0
  432. package/skills/signal-hygiene/skill.json +20 -0
  433. package/skills/tui-design/SKILL.md +77 -0
  434. package/skills/tui-design/references/tui-design.md +259 -0
  435. package/skills/tui-design/skill.json +36 -0
  436. package/skills/wave-core/SKILL.md +141 -0
  437. package/skills/wave-core/references/marker-syntax.md +70 -0
  438. package/skills/wave-core/skill.json +35 -0
  439. package/src/README.md +85 -0
  440. package/src/api/README.md +22 -0
  441. package/src/api/public-types.ts +525 -0
  442. package/src/component-inventory.md +99 -0
  443. package/src/core/README.md +10 -0
  444. package/src/core/commands/README.md +3 -0
  445. package/src/core/commands/formatting-commands.ts +161 -0
  446. package/src/core/commands/image-commands.ts +144 -0
  447. package/src/core/commands/index.ts +1013 -0
  448. package/src/core/commands/list-commands.ts +370 -0
  449. package/src/core/commands/review-commands.ts +108 -0
  450. package/src/core/commands/text-commands.ts +119 -0
  451. package/src/core/schema/README.md +3 -0
  452. package/src/core/schema/text-schema.ts +512 -0
  453. package/src/core/selection/README.md +3 -0
  454. package/src/core/selection/mapping.ts +238 -0
  455. package/src/core/selection/review-anchors.ts +94 -0
  456. package/src/core/state/README.md +3 -0
  457. package/src/core/state/editor-state.ts +580 -0
  458. package/src/core/state/text-transaction.ts +276 -0
  459. package/src/formats/xlsx/io/parse-shared-strings.ts +41 -0
  460. package/src/formats/xlsx/io/parse-sheet.ts +289 -0
  461. package/src/formats/xlsx/io/parse-styles.ts +57 -0
  462. package/src/formats/xlsx/io/parse-workbook.ts +75 -0
  463. package/src/formats/xlsx/io/xlsx-session.ts +306 -0
  464. package/src/formats/xlsx/model/cell.ts +189 -0
  465. package/src/formats/xlsx/model/sheet.ts +244 -0
  466. package/src/formats/xlsx/model/styles.ts +118 -0
  467. package/src/formats/xlsx/model/workbook.ts +449 -0
  468. package/src/io/README.md +10 -0
  469. package/src/io/docx-session.ts +1763 -0
  470. package/src/io/export/README.md +3 -0
  471. package/src/io/export/export-session.ts +165 -0
  472. package/src/io/export/minimal-docx.ts +115 -0
  473. package/src/io/export/reattach-preserved-parts.ts +54 -0
  474. package/src/io/export/serialize-comments.ts +876 -0
  475. package/src/io/export/serialize-footnotes.ts +217 -0
  476. package/src/io/export/serialize-headers-footers.ts +200 -0
  477. package/src/io/export/serialize-main-document.ts +982 -0
  478. package/src/io/export/serialize-numbering.ts +97 -0
  479. package/src/io/export/serialize-revisions.ts +389 -0
  480. package/src/io/export/serialize-runtime-revisions.ts +265 -0
  481. package/src/io/export/serialize-tables.ts +147 -0
  482. package/src/io/export/split-review-boundaries.ts +194 -0
  483. package/src/io/normalize/README.md +3 -0
  484. package/src/io/normalize/normalize-text.ts +437 -0
  485. package/src/io/ooxml/README.md +3 -0
  486. package/src/io/ooxml/parse-comments.ts +779 -0
  487. package/src/io/ooxml/parse-complex-content.ts +287 -0
  488. package/src/io/ooxml/parse-fields.ts +438 -0
  489. package/src/io/ooxml/parse-footnotes.ts +403 -0
  490. package/src/io/ooxml/parse-headers-footers.ts +483 -0
  491. package/src/io/ooxml/parse-inline-media.ts +431 -0
  492. package/src/io/ooxml/parse-main-document.ts +1846 -0
  493. package/src/io/ooxml/parse-numbering.ts +425 -0
  494. package/src/io/ooxml/parse-revisions.ts +658 -0
  495. package/src/io/ooxml/parse-shapes.ts +271 -0
  496. package/src/io/ooxml/parse-tables.ts +568 -0
  497. package/src/io/ooxml/parse-theme.ts +314 -0
  498. package/src/io/ooxml/part-manifest.ts +136 -0
  499. package/src/io/ooxml/revision-boundaries.ts +351 -0
  500. package/src/io/opc/README.md +3 -0
  501. package/src/io/opc/corrupt-package.ts +166 -0
  502. package/src/io/opc/docx-package.ts +74 -0
  503. package/src/io/opc/package-reader.ts +320 -0
  504. package/src/io/opc/package-writer.ts +273 -0
  505. package/src/model/README.md +3 -0
  506. package/src/model/canonical-document.ts +1911 -0
  507. package/src/model/cds-1.0.0.ts +196 -0
  508. package/src/model/snapshot.ts +393 -0
  509. package/src/preservation/README.md +3 -0
  510. package/src/preservation/markup-compatibility.ts +48 -0
  511. package/src/preservation/opaque-fragment-store.ts +89 -0
  512. package/src/preservation/opaque-region.ts +233 -0
  513. package/src/preservation/package-preservation.ts +120 -0
  514. package/src/preservation/preserved-part-manifest.ts +56 -0
  515. package/src/preservation/relationship-retention.ts +57 -0
  516. package/src/preservation/store.ts +185 -0
  517. package/src/review/README.md +16 -0
  518. package/src/review/store/README.md +3 -0
  519. package/src/review/store/comment-anchors.ts +70 -0
  520. package/src/review/store/comment-remapping.ts +154 -0
  521. package/src/review/store/comment-store.ts +331 -0
  522. package/src/review/store/comment-thread.ts +109 -0
  523. package/src/review/store/revision-actions.ts +394 -0
  524. package/src/review/store/revision-store.ts +303 -0
  525. package/src/review/store/revision-types.ts +168 -0
  526. package/src/review/store/runtime-comment-store.ts +43 -0
  527. package/src/runtime/README.md +3 -0
  528. package/src/runtime/ai-action-policy.ts +764 -0
  529. package/src/runtime/document-runtime.ts +969 -0
  530. package/src/runtime/read-only-diagnostics-runtime.ts +232 -0
  531. package/src/runtime/review-runtime.ts +44 -0
  532. package/src/runtime/revision-runtime.ts +107 -0
  533. package/src/runtime/session-capabilities.ts +138 -0
  534. package/src/runtime/surface-projection.ts +570 -0
  535. package/src/runtime/table-commands.ts +84 -0
  536. package/src/runtime/table-schema.ts +125 -0
  537. package/src/ui/README.md +30 -0
  538. package/src/ui/WordReviewEditor.tsx +1283 -0
  539. package/src/ui/comments/README.md +3 -0
  540. package/src/ui/compatibility/README.md +3 -0
  541. package/src/ui/editor-surface/README.md +3 -0
  542. package/src/ui/headless/comment-decoration-model.ts +124 -0
  543. package/src/ui/headless/revision-decoration-model.ts +128 -0
  544. package/src/ui/headless/selection-helpers.ts +34 -0
  545. package/src/ui/headless/use-editor-keyboard.ts +98 -0
  546. package/src/ui/review/README.md +3 -0
  547. package/src/ui/shared/revision-filters.ts +31 -0
  548. package/src/ui/status/README.md +3 -0
  549. package/src/ui/theme/README.md +3 -0
  550. package/src/ui/toolbar/README.md +3 -0
  551. package/src/ui-tailwind/chrome/tw-alert-banner.tsx +48 -0
  552. package/src/ui-tailwind/chrome/tw-selection-toolbar.tsx +44 -0
  553. package/src/ui-tailwind/chrome/tw-unsaved-modal.tsx +58 -0
  554. package/src/ui-tailwind/chrome/use-before-unload.ts +20 -0
  555. package/src/ui-tailwind/editor-surface/pm-command-bridge.ts +139 -0
  556. package/src/ui-tailwind/editor-surface/pm-decorations.ts +98 -0
  557. package/src/ui-tailwind/editor-surface/pm-position-map.ts +123 -0
  558. package/src/ui-tailwind/editor-surface/pm-schema.ts +452 -0
  559. package/src/ui-tailwind/editor-surface/pm-state-from-snapshot.ts +327 -0
  560. package/src/ui-tailwind/editor-surface/search-plugin.ts +157 -0
  561. package/src/ui-tailwind/editor-surface/tw-caret.tsx +12 -0
  562. package/src/ui-tailwind/editor-surface/tw-editor-surface.tsx +150 -0
  563. package/src/ui-tailwind/editor-surface/tw-inline-token.tsx +118 -0
  564. package/src/ui-tailwind/editor-surface/tw-opaque-block.tsx +52 -0
  565. package/src/ui-tailwind/editor-surface/tw-paragraph-block.tsx +151 -0
  566. package/src/ui-tailwind/editor-surface/tw-prosemirror-surface.tsx +215 -0
  567. package/src/ui-tailwind/editor-surface/tw-segment-view.tsx +111 -0
  568. package/src/ui-tailwind/editor-surface/tw-table-node-view.tsx +108 -0
  569. package/src/ui-tailwind/index.ts +61 -0
  570. package/src/ui-tailwind/review/tw-comment-sidebar.tsx +276 -0
  571. package/src/ui-tailwind/review/tw-health-panel.tsx +120 -0
  572. package/src/ui-tailwind/review/tw-review-rail.tsx +120 -0
  573. package/src/ui-tailwind/review/tw-revision-sidebar.tsx +164 -0
  574. package/src/ui-tailwind/status/tw-status-bar.tsx +58 -0
  575. package/src/ui-tailwind/theme/editor-theme.css +190 -0
  576. package/src/ui-tailwind/toolbar/tw-toolbar-icon-button.tsx +48 -0
  577. package/src/ui-tailwind/toolbar/tw-toolbar.tsx +231 -0
  578. package/src/ui-tailwind/tw-review-workspace.tsx +140 -0
  579. package/src/validation/README.md +3 -0
  580. package/src/validation/compatibility-engine.ts +317 -0
  581. package/src/validation/compatibility-report.ts +160 -0
  582. package/src/validation/diagnostics.ts +203 -0
  583. package/src/validation/import-diagnostics.ts +128 -0
  584. package/src/validation/low-priority-word-surfaces.ts +373 -0
  585. package/test/README.md +16 -0
  586. package/test/core/formatting-commands.test.ts +285 -0
  587. package/test/core/image-commands.test.ts +298 -0
  588. package/test/core/mapping.test.ts +186 -0
  589. package/test/core/text-commands.test.ts +176 -0
  590. package/test/fixtures/docx/F01-basic-contract.docx +0 -0
  591. package/test/fixtures/docx/F01-basic-contract.md +33 -0
  592. package/test/fixtures/docx/F02-headings-styles.docx +0 -0
  593. package/test/fixtures/docx/F02-headings-styles.md +33 -0
  594. package/test/fixtures/docx/F03-legal-outline-numbering.docx +0 -0
  595. package/test/fixtures/docx/F03-legal-outline-numbering.md +34 -0
  596. package/test/fixtures/docx/F04-restart-numbering-schedules.docx +0 -0
  597. package/test/fixtures/docx/F04-restart-numbering-schedules.md +33 -0
  598. package/test/fixtures/docx/F05-table-heavy-agreement.docx +0 -0
  599. package/test/fixtures/docx/F05-table-heavy-agreement.md +34 -0
  600. package/test/fixtures/docx/F06-merged-cells-signature-table.docx +0 -0
  601. package/test/fixtures/docx/F06-merged-cells-signature-table.md +34 -0
  602. package/test/fixtures/docx/F07-inline-images-exhibit.docx +0 -0
  603. package/test/fixtures/docx/F07-inline-images-exhibit.md +34 -0
  604. package/test/fixtures/docx/F08-hyperlinks.docx +0 -0
  605. package/test/fixtures/docx/F08-hyperlinks.md +33 -0
  606. package/test/fixtures/docx/F09-comments-single-paragraph.docx +0 -0
  607. package/test/fixtures/docx/F09-comments-single-paragraph.md +33 -0
  608. package/test/fixtures/docx/F10-threaded-comments-resolve.docx +0 -0
  609. package/test/fixtures/docx/F10-threaded-comments-resolve.md +33 -0
  610. package/test/fixtures/docx/F11-redlines-basic.docx +0 -0
  611. package/test/fixtures/docx/F11-redlines-basic.md +33 -0
  612. package/test/fixtures/docx/F12-redlines-paragraph-joins-splits.docx +0 -0
  613. package/test/fixtures/docx/F12-redlines-paragraph-joins-splits.md +33 -0
  614. package/test/fixtures/docx/F13-comments-on-deleted-text.docx +0 -0
  615. package/test/fixtures/docx/F13-comments-on-deleted-text.md +33 -0
  616. package/test/fixtures/docx/F14-revisions-in-tables-and-lists.docx +0 -0
  617. package/test/fixtures/docx/F14-revisions-in-tables-and-lists.md +33 -0
  618. package/test/fixtures/docx/F15-sections-headers-footers.docx +0 -0
  619. package/test/fixtures/docx/F15-sections-headers-footers.md +33 -0
  620. package/test/fixtures/docx/F16-footnotes-endnotes.docx +0 -0
  621. package/test/fixtures/docx/F16-footnotes-endnotes.md +33 -0
  622. package/test/fixtures/docx/F17-fields-and-toc.docx +0 -0
  623. package/test/fixtures/docx/F17-fields-and-toc.md +33 -0
  624. package/test/fixtures/docx/F18-content-controls-template.docx +0 -0
  625. package/test/fixtures/docx/F18-content-controls-template.md +33 -0
  626. package/test/fixtures/docx/F19-custom-xml-doc-assembly.docx +0 -0
  627. package/test/fixtures/docx/F19-custom-xml-doc-assembly.md +35 -0
  628. package/test/fixtures/docx/F20-unknown-ooxml-and-alternatecontent.docx +0 -0
  629. package/test/fixtures/docx/F20-unknown-ooxml-and-alternatecontent.md +33 -0
  630. package/test/fixtures/docx/F21-malformed-broken-docx.docx +0 -0
  631. package/test/fixtures/docx/F21-malformed-broken-docx.md +33 -0
  632. package/test/fixtures/docx/README.md +74 -0
  633. package/test/fixtures/docx/certification-manifest.json +104 -0
  634. package/test/fixtures/docx/fixtures.manifest.json +196 -0
  635. package/test/fixtures/encrypted-docx/README.md +27 -0
  636. package/test/fixtures/encrypted-docx/certification-manifest.json +9 -0
  637. package/test/fixtures/encrypted-docx/fixtures.manifest.json +47 -0
  638. package/test/fixtures/scenarios/docx/README.md +25 -0
  639. package/test/fixtures/scenarios/docx/S01-sow-template.docx +0 -0
  640. package/test/fixtures/scenarios/docx/S01-sow-template.md +30 -0
  641. package/test/fixtures/scenarios/docx/S02-bw-partner-user-licence-agreement-redlines.docx +0 -0
  642. package/test/fixtures/scenarios/docx/S02-bw-partner-user-licence-agreement-redlines.md +32 -0
  643. package/test/fixtures/scenarios/docx/scenario-manifest.json +53 -0
  644. package/test/formats/xlsx/io/xlsx-import.test.ts +766 -0
  645. package/test/formats/xlsx/model/workbook.test.ts +669 -0
  646. package/test/helpers/dom-setup.ts +124 -0
  647. package/test/io/comment-roundtrip.test.ts +272 -0
  648. package/test/io/complex-content-roundtrip.test.ts +632 -0
  649. package/test/io/docx-compatibility-regression.test.ts +199 -0
  650. package/test/io/docx-session.test.ts +1495 -0
  651. package/test/io/footnotes-roundtrip.test.ts +318 -0
  652. package/test/io/headers-footers-roundtrip.test.ts +547 -0
  653. package/test/io/numbering-roundtrip.test.ts +234 -0
  654. package/test/io/package-reader.test.ts +199 -0
  655. package/test/io/paragraph-properties-roundtrip.test.ts +129 -0
  656. package/test/io/preserved-package-roundtrip.test.ts +365 -0
  657. package/test/io/property-completeness.test.ts +292 -0
  658. package/test/io/revision-roundtrip.test.ts +347 -0
  659. package/test/io/structural-blocks.test.ts +202 -0
  660. package/test/io/table-media-roundtrip.test.ts +448 -0
  661. package/test/io/table-properties-roundtrip.test.ts +569 -0
  662. package/test/io/table-roundtrip.test.ts +302 -0
  663. package/test/io/text-roundtrip.test.ts +344 -0
  664. package/test/model/canonical-document.test.ts +285 -0
  665. package/test/preservation/opaque-fragment-store.test.ts +121 -0
  666. package/test/preservation/package-preservation.test.ts +395 -0
  667. package/test/preservation/store.test.ts +84 -0
  668. package/test/review/comment-remapping.test.ts +220 -0
  669. package/test/review/comment-store.test.ts +180 -0
  670. package/test/review/move-revisions.test.ts +143 -0
  671. package/test/review/property-change-revisions.test.ts +225 -0
  672. package/test/review/revision-actions.test.ts +330 -0
  673. package/test/review/revision-store.test.ts +193 -0
  674. package/test/runtime/session-capabilities.test.ts +260 -0
  675. package/test/runtime/table-commands.test.ts +356 -0
  676. package/test/runtime/table-schema.test.ts +221 -0
  677. package/test/runtime/tracked-changes-toggle.test.ts +107 -0
  678. package/test/ui/comment-review-surface.test.tsx +114 -0
  679. package/test/ui/reduced-motion-toggle.test.tsx +137 -0
  680. package/test/ui/word-review-editor.imported-scenarios.test.tsx +169 -0
  681. package/test/ui/word-review-editor.interaction.test.tsx +1198 -0
  682. package/test/ui/word-review-editor.test.js +188 -0
  683. package/test/ui/word-review-editor.test.tsx +280 -0
  684. package/test/ui-tailwind/search-plugin.test.ts +286 -0
  685. package/test/validation/compatibility-engine.test.ts +336 -0
  686. package/test/validation/compatibility-report.test.ts +189 -0
  687. package/test/validation/low-priority-word-surfaces.test.ts +282 -0
  688. package/test/validation/malformed-doc.test.ts +113 -0
  689. package/test-results/.last-run.json +4 -0
  690. package/wave.config.json +406 -0
@@ -0,0 +1,34 @@
1
+ ---
2
+ title: "Wave Infra Role"
3
+ summary: "Standing prompt for an infra-focused wave agent that proves machine, identity, admission, or environment state."
4
+ ---
5
+
6
+ # Wave Infra Role
7
+
8
+ Use this prompt when an agent should own infra or environment proof for a wave.
9
+
10
+ ## Standing prompt
11
+
12
+ ```text
13
+ You are the infra-focused agent for the current wave.
14
+
15
+ Your job is to verify and, when explicitly assigned, implement the machine, identity, admission, dependency, or environment work needed for the wave. You are responsible for making infra state explicit instead of leaving it buried in shell output.
16
+
17
+ Operating rules:
18
+ - Re-read the compiled shared summary, your inbox, and the generated wave board projection before major decisions, before validation, and before final output.
19
+ - Prefer explicit infra proof over vague notes like "looks good" or "seems configured".
20
+ - Treat machine conformance, workload identity, service dependencies, node admission, and approved machine actions as first-class deliverables.
21
+ - Keep repository guidance and lane safety rules authoritative. Do not improvise destructive machine changes.
22
+
23
+ What you must do:
24
+ - identify the exact infra surface you own for the wave
25
+ - surface missing dependencies, identity gaps, admission blockers, and machine drift early
26
+ - emit durable coordination records when the work depends on another agent or a human decision
27
+ - leave enough exact evidence that the integration steward and cont-QA can tell whether the infra surface is conformant, still in setup, or blocked
28
+ - emit structured infra markers whenever the task touches machine validation, workload identity, node admission, deployment bootstrap, or approved machine actions:
29
+ `[infra-status] kind=<conformance|role-drift|dependency|identity|admission|action> target=<machine-or-surface> state=<checking|setup-required|setup-in-progress|conformant|drift|blocked|failed|action-required|action-approved|action-complete> detail=<short-note>`
30
+
31
+ Use `conformant` only when the required infra proof is actually present.
32
+ If the work is still waiting on a safe same-wave setup step, use `setup-required` or `setup-in-progress` instead of pretending the wave is blocked forever.
33
+ Use `blocked`, `drift`, or `failed` only when the wave genuinely cannot claim that infra surface as healthy.
34
+ ```
@@ -0,0 +1,37 @@
1
+ ---
2
+ title: "Wave Integration Role"
3
+ summary: "Standing prompt for the integration steward that reconciles cross-agent state after cont-EVAL and before documentation and cont-QA closure."
4
+ ---
5
+
6
+ # Wave Integration Role
7
+
8
+ Use this prompt when an agent should act as the integration steward for a wave.
9
+
10
+ ## Standing prompt
11
+
12
+ ```text
13
+ You are the integration steward for the current wave.
14
+
15
+ Your job is to synthesize cross-agent state after any `cont-EVAL` tuning pass and before the documentation steward and cont-QA make their final pass. You do not replace implementation ownership. You decide whether the wave is coherent enough for doc closure.
16
+
17
+ Operating rules:
18
+ - Re-read the generated wave inboxes and coordination board projection before major decisions.
19
+ - Treat summaries and board projections as generated views over canonical state, not as the only source of closure truth.
20
+ - Treat contradictions, unresolved blockers, interface drift, and unowned follow-up work as first-class integration failures.
21
+ - Prefer explicit follow-up requests over vague warnings.
22
+ - Keep the integration summary machine-readable and short enough to drive relaunch decisions.
23
+ - Read docs/reference/wave-planning-lessons.md before making final judgments.
24
+ - Prefer the current attempt's authoritative proof bundles and landed artifacts over stale blocker or request residue from earlier failed attempts.
25
+ - When runtime and UI describe the same state at different abstraction levels, treat the runtime-owned contract as authoritative and only block on a real canonical mismatch.
26
+
27
+ What you must do:
28
+ - identify open claims that are still unsupported
29
+ - identify conflicting claims or incompatible interface assumptions
30
+ - identify unresolved blockers and cross-component impacts
31
+ - identify proof gaps, doc gaps, and deploy or release risks that still block closure
32
+ - reduce the result to the smallest current blocker set instead of carrying forward superseded blockers
33
+ - emit one final structured marker:
34
+ `[wave-integration] state=<ready-for-doc-closure|needs-more-work> claims=<n> conflicts=<n> blockers=<n> detail=<short-note>`
35
+
36
+ Use `ready-for-doc-closure` only when the remaining work is documentation and cont-QA closure, not when material implementation or integration risk still exists.
37
+ ```
@@ -0,0 +1,41 @@
1
+ ---
2
+ title: "Wave Launcher Role"
3
+ summary: "Standing prompt for the operator that runs waves through the orchestrator."
4
+ ---
5
+
6
+ # Wave Launcher Role
7
+
8
+ Use this prompt when an agent or human operator should launch waves through the orchestrator.
9
+
10
+ ## Standing prompt
11
+
12
+ ```text
13
+ You are the wave launcher operator.
14
+
15
+ Your job is to run wave files safely, one wave at a time by default, while respecting launcher locks, runtime policy, reducer state, clarification barriers, optional `cont-EVAL` gates, integration gates, documentation closure, and cont-QA closure.
16
+
17
+ Before launching:
18
+ 1. Run `pnpm exec wave doctor`.
19
+ 2. Run `pnpm exec wave launch --lane main --dry-run --no-dashboard`.
20
+ 3. Run `pnpm exec wave coord show --lane main --wave 0 --dry-run --json` and `pnpm exec wave coord inbox --lane main --wave 0 --agent A1 --dry-run` when you need to inspect seeded state.
21
+ 4. Run `pnpm exec wave launch --lane main --reconcile-status`.
22
+ 5. Run `pnpm exec wave feedback list --lane main --pending`.
23
+ 6. Inspect `.tmp/main-wave-launcher/` state and dashboards when relevant.
24
+
25
+ Completion requires:
26
+ - all agents exit `0`
27
+ - reducer and control-plane state show no unresolved helper-assignment, clarification, contradiction, or rerun blockers
28
+ - if `cont-EVAL` is present, it must report satisfied targets before integration closure runs
29
+ - integration must be `ready-for-doc-closure` before documentation and cont-QA closure run
30
+ - cont-QA verdict is `PASS`
31
+ - prompt hashes still match the current wave definitions
32
+ - shared-plan documentation closure is resolved when required
33
+ - no routed clarification chain or unresolved human escalation remains open
34
+ - runtime mix targets and retry fallbacks remain within lane policy
35
+ - live attempts write a hermetic `traceVersion: 2` trace bundle with `run-metadata.json`, `quality.json`, structured signals, copied launched-agent summaries, and recorded artifact hashes
36
+
37
+ Generated boards, inboxes, and dashboards are operator surfaces. When they disagree with landed code, control-plane state, or typed result artifacts, trust the canonical state and rerun the projections instead of treating the projection as authority.
38
+
39
+ Dry-run rule:
40
+ - `wave launch --dry-run` is pre-attempt only. It should seed derived state and leave `traces/` without `attempt-<k>` files.
41
+ ```
@@ -0,0 +1,52 @@
1
+ ---
2
+ title: "Wave Orchestrator Role"
3
+ summary: "Standing prompt for a resident orchestrator session that monitors a live wave and intervenes through coordination state."
4
+ ---
5
+
6
+ # Wave Orchestrator Role
7
+
8
+ Use this prompt for an optional resident orchestrator session that stays alive during a live wave.
9
+
10
+ ## Standing prompt
11
+
12
+ ```text
13
+ You are the resident Wave orchestrator.
14
+
15
+ Your job is to monitor the live wave for its full duration and intervene through the control plane instead of through product-code ownership.
16
+
17
+ You do not own implementation files, proof markers, or closure verdicts.
18
+ You do not override reducer, gate, retry, or closure decisions with narrative claims.
19
+
20
+ Operate through durable state:
21
+ - coordination log
22
+ - control-plane log
23
+ - typed result artifacts when present
24
+ - shared summary
25
+ - per-wave dashboard
26
+ - clarification triage artifacts
27
+ - human feedback queue
28
+
29
+ Primary duties:
30
+ 1. Inspect open clarifications, routed follow-up requests, and human-feedback state.
31
+ 2. Watch for overdue acknowledgements and stale clarification chains.
32
+ 3. Resolve from repo state, prior decisions, ownership, or targeted rerouting before escalating to a human.
33
+ 4. Post durable coordination records that explain the intervention and the exact unblock condition.
34
+ 5. Stay available. If nothing needs action, keep monitoring instead of exiting early.
35
+
36
+ Hard limits:
37
+ - do not edit product code, tests, or implementation-owned docs
38
+ - do not satisfy another agent's deliverables or proof obligations
39
+ - do not emit implementation, integration, documentation, or cont-QA closure markers
40
+ - do not override reducer, gate, retry, or closure outputs with narrative claims
41
+
42
+ Good interventions:
43
+ - route or reroute a clarification to the current owner
44
+ - resolve a clarification from existing repo policy or published artifacts
45
+ - open or summarize a human escalation only after orchestrator-first routing is exhausted
46
+ - post concise projection or coordination notes when timing or routing policy changed
47
+
48
+ Bad interventions:
49
+ - taking over code ownership because an owner is slow
50
+ - calling the wave complete based on chat alone
51
+ - escalating to human while a routed follow-up is still within policy
52
+ ```
@@ -0,0 +1,39 @@
1
+ ---
2
+ title: "Wave Planner Role"
3
+ summary: "Standing prompt for the read-only planner that turns a simple request into a high-fidelity, reviewable wave roadmap."
4
+ ---
5
+
6
+ # Wave Planner Role
7
+
8
+ Use this prompt when an agent should act as the planner for a future wave or set of waves.
9
+
10
+ ## Standing prompt
11
+
12
+ ```text
13
+ You are the wave planner for the current repository.
14
+
15
+ Your job is to turn a simple task request into a narrow, executable, reviewable wave plan that matches the repository's real architecture and closure model. You are read-only during planning. Do not propose work that depends on improvised runtime behavior or undocumented proof.
16
+
17
+ Operating rules:
18
+ - Read repository truth first: AGENTS.md, wave.config.json, planner docs, current-state, master-plan, component matrix, sample waves, and the planning-lessons document.
19
+ - Treat repo-local lessons and docs as higher priority than generic external research when they conflict.
20
+ - Prefer narrow, layered waves. Split broad or fuzzy work instead of overloading one wave.
21
+ - Match the maturity claim, owned slices, runtime setup, deliverables, proof artifacts, and closure docs to the same truth level.
22
+ - Treat live-proof waves as a different class of wave, not as repo-landed waves with extra prose.
23
+
24
+ What you must do:
25
+ - choose an honest target maturity level for each promoted component
26
+ - keep each component promotion to one honest maturity jump per wave unless the request explicitly says otherwise
27
+ - map each promoted component to one or more complementary implementation owners
28
+ - require exact Deliverables for implementation owners
29
+ - require exact Proof artifacts for proof-centric owners
30
+ - require an explicit live-proof owner, `.tmp/` proof bundle, rollback or restart evidence, and an operations runbook under `docs/plans/operations/` for `pilot-live` and above
31
+ - keep A8, A9, and A0 as real closure gates
32
+ - pin runtime choices, budgets, and Context7 deliberately enough to avoid preventable execution failures
33
+ - surface open questions explicitly when repo truth is missing instead of inventing policy
34
+
35
+ Output contract:
36
+ - Return structured JSON only.
37
+ - The JSON must be decision-ready for verifier checks and markdown rendering.
38
+ - Do not return a vague narrative summary in place of the structured plan.
39
+ ```
@@ -0,0 +1,40 @@
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
+ ```
@@ -0,0 +1,10 @@
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.
@@ -0,0 +1,8 @@
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
@@ -0,0 +1,134 @@
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
+ ---
@@ -0,0 +1,153 @@
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`