@beyondwork/docx-react-component 1.0.0 → 1.0.1

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 (704) hide show
  1. package/dist/chunk-32W6IVQE.js +7725 -0
  2. package/dist/chunk-32W6IVQE.js.map +1 -0
  3. package/dist/index.cjs +23722 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.cts +7 -0
  6. package/dist/index.d.ts +7 -0
  7. package/dist/index.js +16011 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/public-types-DqCURAz8.d.cts +1152 -0
  10. package/dist/public-types-DqCURAz8.d.ts +1152 -0
  11. package/dist/tailwind.cjs +8295 -0
  12. package/dist/tailwind.cjs.map +1 -0
  13. package/dist/tailwind.d.cts +323 -0
  14. package/dist/tailwind.d.ts +323 -0
  15. package/dist/tailwind.js +553 -0
  16. package/dist/tailwind.js.map +1 -0
  17. package/package.json +52 -31
  18. package/.codex/config.toml +0 -5
  19. package/.corepack/v1/pnpm/10.30.3/.corepack +0 -1
  20. package/.corepack/v1/pnpm/10.30.3/LICENSE +0 -22
  21. package/.corepack/v1/pnpm/10.30.3/README.md +0 -240
  22. package/.corepack/v1/pnpm/10.30.3/dist/node-gyp-bin/node-gyp +0 -6
  23. package/.corepack/v1/pnpm/10.30.3/dist/node-gyp-bin/node-gyp.cmd +0 -5
  24. package/.corepack/v1/pnpm/10.30.3/dist/pnpm.cjs +0 -195400
  25. package/.corepack/v1/pnpm/10.30.3/dist/pnpmrc +0 -2
  26. package/.corepack/v1/pnpm/10.30.3/dist/reflink.darwin-arm64-2HJ4WGO6.node +0 -0
  27. package/.corepack/v1/pnpm/10.30.3/dist/reflink.darwin-x64-3G3H6IW4.node +0 -0
  28. package/.corepack/v1/pnpm/10.30.3/dist/reflink.win32-arm64-msvc-Q6BARPPB.node +0 -0
  29. package/.corepack/v1/pnpm/10.30.3/dist/reflink.win32-x64-msvc-J2TZHRQI.node +0 -0
  30. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.bash +0 -31
  31. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.fish +0 -22
  32. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.ps1 +0 -193
  33. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.zsh +0 -27
  34. package/.corepack/v1/pnpm/10.30.3/dist/vendor/fastlist-0.3.0-x64.exe +0 -0
  35. package/.corepack/v1/pnpm/10.30.3/dist/vendor/fastlist-0.3.0-x86.exe +0 -0
  36. package/.corepack/v1/pnpm/10.30.3/dist/worker.js +0 -10119
  37. package/.corepack/v1/pnpm/10.30.3/package.json +0 -192
  38. package/.cursor/mcp.json +0 -7
  39. package/.github/workflows/ci.yml +0 -35
  40. package/.mcp.json +0 -7
  41. package/.openclaw/workspace-state.json +0 -4
  42. package/.pnpmrc.json +0 -1
  43. package/.wave-launch.sh +0 -7
  44. package/.workspace-marker +0 -1
  45. package/AGENTS.md +0 -78
  46. package/CHANGELOG.md +0 -177
  47. package/DESIGN.md +0 -929
  48. package/HEARTBEAT.md +0 -7
  49. package/IDENTITY.md +0 -23
  50. package/SOUL.md +0 -36
  51. package/TOOLS.md +0 -40
  52. package/USER.md +0 -17
  53. package/docs/README.md +0 -107
  54. package/docs/agents/wave-cont-eval-role.md +0 -36
  55. package/docs/agents/wave-cont-qa-role.md +0 -52
  56. package/docs/agents/wave-deploy-verifier-role.md +0 -34
  57. package/docs/agents/wave-design-role.md +0 -47
  58. package/docs/agents/wave-documentation-role.md +0 -34
  59. package/docs/agents/wave-infra-role.md +0 -34
  60. package/docs/agents/wave-integration-role.md +0 -37
  61. package/docs/agents/wave-launcher-role.md +0 -41
  62. package/docs/agents/wave-orchestrator-role.md +0 -52
  63. package/docs/agents/wave-planner-role.md +0 -39
  64. package/docs/agents/wave-security-role.md +0 -40
  65. package/docs/architecture/docx/README.md +0 -10
  66. package/docs/architecture/future/README.md +0 -8
  67. package/docs/architecture/ooxml-upgrade-analysis.md +0 -134
  68. package/docs/architecture/platform/shared-openxml-editor-platform.md +0 -153
  69. package/docs/architecture/xlsx/canonical-workbook-model-and-commands.md +0 -187
  70. package/docs/architecture/xlsx/spreadsheet-editor-frontend-architecture.md +0 -150
  71. package/docs/comment-redline-overview.md +0 -350
  72. package/docs/concepts/context7-vs-skills.md +0 -118
  73. package/docs/concepts/operating-modes.md +0 -91
  74. package/docs/concepts/runtime-agnostic-orchestration.md +0 -111
  75. package/docs/concepts/what-is-a-wave.md +0 -217
  76. package/docs/context7/bundles.json +0 -222
  77. package/docs/context7/planner-agent/README.md +0 -28
  78. package/docs/context7/planner-agent/manifest.json +0 -83
  79. package/docs/context7/planner-agent/papers/cooperbench-why-coding-agents-cannot-be-your-teammates-yet.md +0 -3283
  80. package/docs/context7/planner-agent/papers/dova-deliberation-first-multi-agent-orchestration-for-autonomous-research-automation.md +0 -1699
  81. package/docs/context7/planner-agent/papers/dpbench-large-language-models-struggle-with-simultaneous-coordination.md +0 -2251
  82. package/docs/context7/planner-agent/papers/incremental-planning-to-control-a-blackboard-based-problem-solver.md +0 -1729
  83. package/docs/context7/planner-agent/papers/silo-bench-a-scalable-environment-for-evaluating-distributed-coordination-in-multi-agent-llm-systems.md +0 -3747
  84. package/docs/context7/planner-agent/papers/todoevolve-learning-to-architect-agent-planning-systems.md +0 -1675
  85. package/docs/context7/planner-agent/papers/verified-multi-agent-orchestration-a-plan-execute-verify-replan-framework-for-complex-query-resolution.md +0 -1173
  86. package/docs/context7/planner-agent/papers/why-do-multi-agent-llm-systems-fail.md +0 -5211
  87. package/docs/context7/planner-agent/topics/planning-and-orchestration.md +0 -24
  88. package/docs/evals/arm-templates/README.md +0 -13
  89. package/docs/evals/arm-templates/full-wave.json +0 -15
  90. package/docs/evals/arm-templates/single-agent.json +0 -15
  91. package/docs/evals/benchmark-catalog.json +0 -670
  92. package/docs/evals/cases/README.md +0 -47
  93. package/docs/evals/cases/wave-blackboard-inbox-targeting.json +0 -73
  94. package/docs/evals/cases/wave-contradiction-conflict.json +0 -104
  95. package/docs/evals/cases/wave-expert-routing-preservation.json +0 -69
  96. package/docs/evals/cases/wave-hidden-profile-private-evidence.json +0 -81
  97. package/docs/evals/cases/wave-premature-closure-guard.json +0 -71
  98. package/docs/evals/cases/wave-silo-cross-agent-state.json +0 -77
  99. package/docs/evals/cases/wave-simultaneous-lockstep.json +0 -92
  100. package/docs/evals/external-benchmarks.json +0 -85
  101. package/docs/evals/external-command-config.sample.json +0 -9
  102. package/docs/evals/external-command-config.swe-bench-pro.json +0 -8
  103. package/docs/evals/pilots/README.md +0 -47
  104. package/docs/evals/pilots/swe-bench-pro-public-full-wave-review-10.json +0 -64
  105. package/docs/evals/pilots/swe-bench-pro-public-pilot.json +0 -111
  106. package/docs/evals/wave-benchmark-program.md +0 -302
  107. package/docs/guides/planner.md +0 -220
  108. package/docs/guides/recommendations-0.8.9.md +0 -133
  109. package/docs/guides/signal-wrappers.md +0 -165
  110. package/docs/guides/terminal-surfaces.md +0 -96
  111. package/docs/image copy.png +0 -0
  112. package/docs/image.png +0 -0
  113. package/docs/images/image.png +0 -0
  114. package/docs/legal-feedback-architecture.md +0 -498
  115. package/docs/plans/component-cutover-matrix.json +0 -1072
  116. package/docs/plans/component-cutover-matrix.md +0 -307
  117. package/docs/plans/context7-wave-orchestrator.md +0 -155
  118. package/docs/plans/current-state.md +0 -198
  119. package/docs/plans/docx/README.md +0 -9
  120. package/docs/plans/examples/wave-benchmark-improvement.md +0 -108
  121. package/docs/plans/examples/wave-example-live-proof.md +0 -435
  122. package/docs/plans/master-plan.md +0 -224
  123. package/docs/plans/migration.md +0 -538
  124. package/docs/plans/operations/README.md +0 -7
  125. package/docs/plans/operations/wave-10-word-certification.md +0 -87
  126. package/docs/plans/operations/wave-8-railway-staging.md +0 -153
  127. package/docs/plans/operations/wave-9-manual-certification.md +0 -73
  128. package/docs/plans/platform/README.md +0 -9
  129. package/docs/plans/reference/legal-checklist-coverage.md +0 -258
  130. package/docs/plans/wave-orchestrator.md +0 -423
  131. package/docs/plans/waves/README.md +0 -75
  132. package/docs/plans/waves/completed/wave-0.md +0 -195
  133. package/docs/plans/waves/completed/wave-1.md +0 -379
  134. package/docs/plans/waves/completed/wave-10.md +0 -670
  135. package/docs/plans/waves/completed/wave-11.md +0 -335
  136. package/docs/plans/waves/completed/wave-12.md +0 -417
  137. package/docs/plans/waves/completed/wave-13.md +0 -316
  138. package/docs/plans/waves/completed/wave-14.md +0 -319
  139. package/docs/plans/waves/completed/wave-15.md +0 -321
  140. package/docs/plans/waves/completed/wave-16.md +0 -316
  141. package/docs/plans/waves/completed/wave-17.md +0 -331
  142. package/docs/plans/waves/completed/wave-18.md +0 -328
  143. package/docs/plans/waves/completed/wave-2.md +0 -438
  144. package/docs/plans/waves/completed/wave-3.md +0 -435
  145. package/docs/plans/waves/completed/wave-4.md +0 -430
  146. package/docs/plans/waves/completed/wave-5.md +0 -430
  147. package/docs/plans/waves/completed/wave-6.md +0 -430
  148. package/docs/plans/waves/completed/wave-7.md +0 -526
  149. package/docs/plans/waves/completed/wave-8.md +0 -596
  150. package/docs/plans/waves/completed/wave-9.md +0 -552
  151. package/docs/plans/waves/deferred/README.md +0 -14
  152. package/docs/plans/waves/deferred/encrypted-intake-contracts.md +0 -282
  153. package/docs/plans/waves/deferred/legal-feedback-wave-expansion.md +0 -308
  154. package/docs/plans/waves/deferred/wave-encrypted-intake.md +0 -451
  155. package/docs/plans/waves/design/README.md +0 -5
  156. package/docs/plans/waves/design/wave-1-a1.md +0 -309
  157. package/docs/plans/waves/reviews/README.md +0 -5
  158. package/docs/plans/waves/reviews/wave-0-cont-qa.md +0 -151
  159. package/docs/plans/waves/reviews/wave-1-cont-qa.md +0 -46
  160. package/docs/plans/waves/reviews/wave-10-accessibility-and-design.md +0 -51
  161. package/docs/plans/waves/reviews/wave-10-cont-qa.md +0 -24
  162. package/docs/plans/waves/reviews/wave-10-dashboard-proof.md +0 -46
  163. package/docs/plans/waves/reviews/wave-10-performance-signoff.md +0 -55
  164. package/docs/plans/waves/reviews/wave-10-regression-proof.md +0 -23
  165. package/docs/plans/waves/reviews/wave-10-release-audit.md +0 -31
  166. package/docs/plans/waves/reviews/wave-10-service-proof.md +0 -83
  167. package/docs/plans/waves/reviews/wave-10-word-certification.md +0 -31
  168. package/docs/plans/waves/reviews/wave-18-ai-contract-closure.md +0 -277
  169. package/docs/plans/waves/reviews/wave-18-cont-qa.md +0 -255
  170. package/docs/plans/waves/reviews/wave-18-parity-proof.md +0 -271
  171. package/docs/plans/waves/reviews/wave-19-cont-qa.md +0 -59
  172. package/docs/plans/waves/reviews/wave-2-cont-qa.md +0 -72
  173. package/docs/plans/waves/reviews/wave-20-cont-qa.md +0 -60
  174. package/docs/plans/waves/reviews/wave-25-cont-qa.md +0 -48
  175. package/docs/plans/waves/reviews/wave-28-cont-qa.md +0 -46
  176. package/docs/plans/waves/reviews/wave-29-cont-qa.md +0 -53
  177. package/docs/plans/waves/reviews/wave-3-cont-qa.md +0 -53
  178. package/docs/plans/waves/reviews/wave-3-core-proof.md +0 -77
  179. package/docs/plans/waves/reviews/wave-3-validator-proof.md +0 -73
  180. package/docs/plans/waves/reviews/wave-32-cont-qa.md +0 -43
  181. package/docs/plans/waves/reviews/wave-33-cont-qa.md +0 -526
  182. package/docs/plans/waves/reviews/wave-34-cont-qa.md +0 -100
  183. package/docs/plans/waves/reviews/wave-35-cont-qa.md +0 -145
  184. package/docs/plans/waves/reviews/wave-4-cont-qa.md +0 -47
  185. package/docs/plans/waves/reviews/wave-4-structure-proof.md +0 -69
  186. package/docs/plans/waves/reviews/wave-5-comment-proof.md +0 -158
  187. package/docs/plans/waves/reviews/wave-5-cont-qa.md +0 -68
  188. package/docs/plans/waves/reviews/wave-6-cont-qa.md +0 -416
  189. package/docs/plans/waves/reviews/wave-6-redline-proof.md +0 -130
  190. package/docs/plans/waves/reviews/wave-7-cont-qa.md +0 -82
  191. package/docs/plans/waves/reviews/wave-7-ooxml-compliance.md +0 -85
  192. package/docs/plans/waves/reviews/wave-7-preservation-proof.md +0 -119
  193. package/docs/plans/waves/reviews/wave-7-trust-ux.md +0 -87
  194. package/docs/plans/waves/reviews/wave-8-accessibility-and-design.md +0 -128
  195. package/docs/plans/waves/reviews/wave-8-cont-qa.md +0 -92
  196. package/docs/plans/waves/reviews/wave-8-live-proof.md +0 -140
  197. package/docs/plans/waves/reviews/wave-8-security.md +0 -47
  198. package/docs/plans/waves/reviews/wave-9-editor-embedding.md +0 -39
  199. package/docs/plans/waves/reviews/wave-9-fixture-runner.md +0 -56
  200. package/docs/plans/waves/reviews/wave-9-live-proof.md +0 -105
  201. package/docs/plans/waves/reviews/wave-9-usability-and-performance.md +0 -152
  202. package/docs/plans/waves/specs/README.md +0 -5
  203. package/docs/plans/waves/specs/wave-1-component-boundaries.md +0 -322
  204. package/docs/plans/waves/specs/wave-1-ooxml-contracts.md +0 -323
  205. package/docs/plans/waves/specs/wave-1-review-and-ui-contracts.md +0 -339
  206. package/docs/plans/waves/specs/wave-1-runtime-contracts.md +0 -509
  207. package/docs/plans/waves/wave-19.md +0 -341
  208. package/docs/plans/waves/wave-20.md +0 -308
  209. package/docs/plans/waves/wave-21.md +0 -289
  210. package/docs/plans/waves/wave-22.md +0 -221
  211. package/docs/plans/waves/wave-23.md +0 -295
  212. package/docs/plans/waves/wave-24.md +0 -286
  213. package/docs/plans/waves/wave-25.md +0 -313
  214. package/docs/plans/waves/wave-26.md +0 -300
  215. package/docs/plans/waves/wave-27.md +0 -299
  216. package/docs/plans/waves/wave-28.md +0 -368
  217. package/docs/plans/waves/wave-29.md +0 -303
  218. package/docs/plans/waves/wave-30.md +0 -307
  219. package/docs/plans/waves/wave-31.md +0 -231
  220. package/docs/plans/waves/wave-32.md +0 -152
  221. package/docs/plans/waves/wave-33.md +0 -147
  222. package/docs/plans/waves/wave-34.md +0 -148
  223. package/docs/plans/waves/wave-35.md +0 -141
  224. package/docs/plans/waves/wave-36.md +0 -146
  225. package/docs/plans/xlsx/README.md +0 -14
  226. package/docs/plans/xlsx/xlsx-fixture-corpus-and-certification-plan.md +0 -126
  227. package/docs/reference/cli-reference.md +0 -600
  228. package/docs/reference/coordination-and-closure.md +0 -487
  229. package/docs/reference/deep-research-report (15).md +0 -25
  230. package/docs/reference/docx/README.md +0 -10
  231. package/docs/reference/legal-checklist.md +0 -445
  232. package/docs/reference/live-proof-waves.md +0 -199
  233. package/docs/reference/ooxml-compliance.md +0 -129
  234. package/docs/reference/ooxml-feature-parity-matrix.md +0 -172
  235. package/docs/reference/platform/shared-ooxml-platform-guidance.md +0 -77
  236. package/docs/reference/prototype-agent-prompt-legal-fidelity.md +0 -155
  237. package/docs/reference/public-api.md +0 -456
  238. package/docs/reference/repository-guidance.md +0 -58
  239. package/docs/reference/runtime-config/README.md +0 -182
  240. package/docs/reference/runtime-config/claude.md +0 -110
  241. package/docs/reference/runtime-config/codex.md +0 -82
  242. package/docs/reference/runtime-config/opencode.md +0 -93
  243. package/docs/reference/sample-waves.md +0 -105
  244. package/docs/reference/skills.md +0 -237
  245. package/docs/reference/templates/AGENTS.md +0 -78
  246. package/docs/reference/templates/HEARTBEAT.md +0 -7
  247. package/docs/reference/templates/IDENTITY.md +0 -23
  248. package/docs/reference/templates/SOUL.md +0 -36
  249. package/docs/reference/templates/TOOLS.md +0 -40
  250. package/docs/reference/templates/USER.md +0 -17
  251. package/docs/reference/wave-control.md +0 -184
  252. package/docs/reference/wave-planning-lessons.md +0 -167
  253. package/docs/reference/word-review-editor-frontend-architecture.md +0 -479
  254. package/docs/reference/word-review-editor-ux-guide.md +0 -253
  255. package/docs/reference/xlsx/xlsx-ooxml-compliance.md +0 -137
  256. package/docs/research/agent-context-sources.md +0 -178
  257. package/docs/research/coordination-failure-review.md +0 -290
  258. package/docs/research/docx-react-component/Canonical Document Schema Specification for a React-based Word-compatible Editor.md +0 -2317
  259. package/docs/research/docx-react-component/Feature Compatibility Matrix for a React Word Compatible Legal Editor v1.md +0 -219
  260. package/docs/research/docx-react-component/React Component Architecture and Front-End Structure Specification for a Word-Compatible Legal Review Editor.md +0 -1112
  261. package/docs/research/docx-react-component/document_compatibility_and_testing_spec.md +0 -751
  262. package/docs/research/xlsx/raw/README.md +0 -13
  263. package/docs/roadmap.md +0 -174
  264. package/docs/superpowers/plans/2026-03-28-harness-control-bar.md +0 -677
  265. package/docs/superpowers/specs/2026-03-28-harness-control-bar-design.md +0 -274
  266. package/docs/xlsx-react/README.md +0 -38
  267. package/docs/xlsx-react/agent-llm-interaction-layer-docx-xlsx.md +0 -621
  268. package/docs/xlsx-react/canonical-workbook-model-and-commands.md +0 -948
  269. package/docs/xlsx-react/shared-openxml-editor-platform-docx-xlsx.md +0 -228
  270. package/docs/xlsx-react/spreadsheet-editor-component-architecture.md +0 -809
  271. package/docs/xlsx-react/spreadsheet-editor-frontend-architecture.md +0 -537
  272. package/docs/xlsx-react/spreadsheet-editor-ux-guide.md +0 -520
  273. package/docs/xlsx-react/xlsx-editor-research-pack.md +0 -871
  274. package/docs/xlsx-react/xlsx-fixture-corpus-and-certification-plan.md +0 -436
  275. package/docs/xlsx-react/xlsx-ooxml-compliance.md +0 -320
  276. package/examples/README.md +0 -16
  277. package/memory/MEMORY.md +0 -24
  278. package/pnpm-workspace.yaml +0 -4
  279. package/scripts/check-no-authored-js.sh +0 -13
  280. package/scripts/context7-api-check.sh +0 -65
  281. package/scripts/context7-export-env.sh +0 -42
  282. package/scripts/run-context7-mcp.sh +0 -8
  283. package/scripts/run-workspace-tests.sh +0 -15
  284. package/scripts/start-wave-10-local.sh +0 -189
  285. package/scripts/wave-agent-attach.sh +0 -47
  286. package/scripts/wave-auto-answer.sh +0 -118
  287. package/scripts/wave-dashboard-attach.sh +0 -13
  288. package/scripts/wave-launch.sh +0 -273
  289. package/scripts/wave-overnight-supervisor.sh +0 -145
  290. package/scripts/wave-status.sh +0 -379
  291. package/scripts/wave-watch.sh +0 -231
  292. package/services/README.md +0 -17
  293. package/services/openxml-validator/Dockerfile +0 -29
  294. package/services/openxml-validator/OpenXmlValidator.Api.csproj +0 -12
  295. package/services/openxml-validator/Program.cs +0 -436
  296. package/services/openxml-validator/README.md +0 -152
  297. package/services/openxml-validator/railway.json +0 -16
  298. package/services/react-word-editor/.tmp-a4/src/api/public-types.ts +0 -318
  299. package/services/react-word-editor/.tmp-a4/src/ui/WordReviewEditor.tsx +0 -1302
  300. package/services/react-word-editor/.tmp-a4/src/ui/editor-surface/editor-surface.tsx +0 -546
  301. package/services/react-word-editor/.tmp-a4/test/ui/word-review-editor.test.tsx +0 -146
  302. package/services/react-word-editor/.tmp-a4-build/src/api/public-types.js +0 -2
  303. package/services/react-word-editor/.tmp-a4-build/src/ui/WordReviewEditor.js +0 -818
  304. package/services/react-word-editor/.tmp-a4-build/src/ui/editor-surface/editor-surface.js +0 -229
  305. package/services/react-word-editor/.tmp-a4-build/test/ui/word-review-editor.test.js +0 -121
  306. package/services/react-word-editor/.tmp-wave-4-a3-tsconfig.json +0 -21
  307. package/services/react-word-editor/.tmp-wave-4-a3-tsconfig.tsbuildinfo +0 -1
  308. package/services/react-word-editor/Dockerfile +0 -26
  309. package/services/react-word-editor/README.md +0 -254
  310. package/services/react-word-editor/app/api/certification/route.ts +0 -79
  311. package/services/react-word-editor/app/api/demo-sessions/route.ts +0 -109
  312. package/services/react-word-editor/app/api/deploy-health/route.ts +0 -23
  313. package/services/react-word-editor/app/api/exports/[exportId]/route.ts +0 -34
  314. package/services/react-word-editor/app/api/exports/route.ts +0 -81
  315. package/services/react-word-editor/app/api/fixtures/[fixtureId]/run/route.ts +0 -100
  316. package/services/react-word-editor/app/api/health/route.ts +0 -70
  317. package/services/react-word-editor/app/api/runs/[runId]/route.ts +0 -36
  318. package/services/react-word-editor/app/api/scenarios/[scenarioId]/run/route.ts +0 -85
  319. package/services/react-word-editor/app/api/sessions/[sessionId]/route.ts +0 -199
  320. package/services/react-word-editor/app/api/sessions/[sessionId]/source/route.ts +0 -45
  321. package/services/react-word-editor/app/api/uploads/route.ts +0 -70
  322. package/services/react-word-editor/app/api/validate/route.ts +0 -310
  323. package/services/react-word-editor/app/certification/[runId]/page.tsx +0 -14
  324. package/services/react-word-editor/app/certification/page.tsx +0 -32
  325. package/services/react-word-editor/app/dashboard/page.tsx +0 -7
  326. package/services/react-word-editor/app/demo/page.tsx +0 -30
  327. package/services/react-word-editor/app/demo/prototype-client.tsx +0 -1080
  328. package/services/react-word-editor/app/editor/[sessionId]/page.tsx +0 -33
  329. package/services/react-word-editor/app/fixtures/page.tsx +0 -7
  330. package/services/react-word-editor/app/globals.css +0 -121
  331. package/services/react-word-editor/app/layout.tsx +0 -32
  332. package/services/react-word-editor/app/page.tsx +0 -30
  333. package/services/react-word-editor/app/runs/[runId]/page.tsx +0 -34
  334. package/services/react-word-editor/app/wave-10-word-review/page.tsx +0 -7
  335. package/services/react-word-editor/components/harness-control-bar.tsx +0 -289
  336. package/services/react-word-editor/components/harness-editor-session-client.tsx +0 -1214
  337. package/services/react-word-editor/components/harness-workspace-page.tsx +0 -715
  338. package/services/react-word-editor/components/reduced-motion-toggle.tsx +0 -79
  339. package/services/react-word-editor/components/workspace-certification-panel.tsx +0 -307
  340. package/services/react-word-editor/lib/certification-bundle.ts +0 -796
  341. package/services/react-word-editor/lib/certification-store.ts +0 -661
  342. package/services/react-word-editor/lib/demo-fixtures.test.mjs +0 -195
  343. package/services/react-word-editor/lib/demo-fixtures.ts +0 -1519
  344. package/services/react-word-editor/lib/editor-session-summary.test.mjs +0 -68
  345. package/services/react-word-editor/lib/editor-session-summary.ts +0 -14
  346. package/services/react-word-editor/lib/editor-session.ts +0 -228
  347. package/services/react-word-editor/lib/exports-route.test.mjs +0 -32
  348. package/services/react-word-editor/lib/harness-client.ts +0 -347
  349. package/services/react-word-editor/lib/harness-config.json +0 -30
  350. package/services/react-word-editor/lib/harness-config.test.mjs +0 -31
  351. package/services/react-word-editor/lib/harness-config.ts +0 -21
  352. package/services/react-word-editor/lib/harness-editor-datastore.test.mjs +0 -220
  353. package/services/react-word-editor/lib/harness-editor-datastore.ts +0 -161
  354. package/services/react-word-editor/lib/private-mode.test.mjs +0 -42
  355. package/services/react-word-editor/lib/private-mode.ts +0 -61
  356. package/services/react-word-editor/lib/regression-report.test.mjs +0 -352
  357. package/services/react-word-editor/lib/regression-report.ts +0 -896
  358. package/services/react-word-editor/lib/run-artifacts.ts +0 -934
  359. package/services/react-word-editor/lib/run-history.ts +0 -755
  360. package/services/react-word-editor/lib/scenario-artifacts.test.mjs +0 -41
  361. package/services/react-word-editor/lib/scenario-artifacts.ts +0 -44
  362. package/services/react-word-editor/lib/storage.ts +0 -953
  363. package/services/react-word-editor/lib/validator-client.test.mjs +0 -54
  364. package/services/react-word-editor/lib/validator-client.ts +0 -95
  365. package/services/react-word-editor/lib/workspace-navigation.ts +0 -79
  366. package/services/react-word-editor/middleware.ts +0 -35
  367. package/services/react-word-editor/next-env.d.ts +0 -6
  368. package/services/react-word-editor/next.config.mjs +0 -15
  369. package/services/react-word-editor/package.json +0 -38
  370. package/services/react-word-editor/postcss.config.mjs +0 -8
  371. package/services/react-word-editor/railway.json +0 -21
  372. package/services/react-word-editor/scripts/wave-10-certification.mjs +0 -101
  373. package/services/react-word-editor/scripts/wave-9-live-usability-pilot.mjs +0 -911
  374. package/services/react-word-editor/tsconfig.json +0 -39
  375. package/services/react-word-editor/tsconfig.tsbuildinfo +0 -1
  376. package/skills/README.md +0 -48
  377. package/skills/domain-docx-compatibility/SKILL.md +0 -44
  378. package/skills/domain-docx-compatibility/skill.json +0 -19
  379. package/skills/domain-editor-architecture/SKILL.md +0 -49
  380. package/skills/domain-editor-architecture/skill.json +0 -19
  381. package/skills/domain-legal-review/SKILL.md +0 -39
  382. package/skills/domain-legal-review/skill.json +0 -19
  383. package/skills/provider-aws/SKILL.md +0 -117
  384. package/skills/provider-aws/adapters/claude.md +0 -1
  385. package/skills/provider-aws/adapters/codex.md +0 -1
  386. package/skills/provider-aws/references/service-verification.md +0 -39
  387. package/skills/provider-aws/skill.json +0 -54
  388. package/skills/provider-custom-deploy/SKILL.md +0 -64
  389. package/skills/provider-custom-deploy/skill.json +0 -50
  390. package/skills/provider-docker-compose/SKILL.md +0 -96
  391. package/skills/provider-docker-compose/adapters/local.md +0 -1
  392. package/skills/provider-docker-compose/skill.json +0 -53
  393. package/skills/provider-github-release/SKILL.md +0 -121
  394. package/skills/provider-github-release/adapters/claude.md +0 -1
  395. package/skills/provider-github-release/adapters/codex.md +0 -1
  396. package/skills/provider-github-release/skill.json +0 -55
  397. package/skills/provider-kubernetes/SKILL.md +0 -143
  398. package/skills/provider-kubernetes/adapters/claude.md +0 -1
  399. package/skills/provider-kubernetes/adapters/codex.md +0 -1
  400. package/skills/provider-kubernetes/references/kubectl-patterns.md +0 -58
  401. package/skills/provider-kubernetes/skill.json +0 -52
  402. package/skills/provider-railway/SKILL.md +0 -123
  403. package/skills/provider-railway/adapters/claude.md +0 -1
  404. package/skills/provider-railway/adapters/codex.md +0 -1
  405. package/skills/provider-railway/adapters/local.md +0 -1
  406. package/skills/provider-railway/adapters/opencode.md +0 -1
  407. package/skills/provider-railway/references/verification-commands.md +0 -39
  408. package/skills/provider-railway/skill.json +0 -71
  409. package/skills/provider-ssh-manual/SKILL.md +0 -97
  410. package/skills/provider-ssh-manual/skill.json +0 -54
  411. package/skills/repo-coding-rules/SKILL.md +0 -55
  412. package/skills/repo-coding-rules/skill.json +0 -34
  413. package/skills/role-cont-eval/SKILL.md +0 -91
  414. package/skills/role-cont-eval/adapters/codex.md +0 -1
  415. package/skills/role-cont-eval/skill.json +0 -36
  416. package/skills/role-cont-qa/SKILL.md +0 -100
  417. package/skills/role-cont-qa/adapters/claude.md +0 -1
  418. package/skills/role-cont-qa/skill.json +0 -36
  419. package/skills/role-deploy/SKILL.md +0 -97
  420. package/skills/role-deploy/skill.json +0 -36
  421. package/skills/role-design/SKILL.md +0 -50
  422. package/skills/role-design/skill.json +0 -36
  423. package/skills/role-documentation/SKILL.md +0 -76
  424. package/skills/role-documentation/skill.json +0 -36
  425. package/skills/role-implementation/SKILL.md +0 -45
  426. package/skills/role-implementation/skill.json +0 -36
  427. package/skills/role-infra/SKILL.md +0 -81
  428. package/skills/role-infra/skill.json +0 -36
  429. package/skills/role-integration/SKILL.md +0 -91
  430. package/skills/role-integration/skill.json +0 -36
  431. package/skills/role-planner/SKILL.md +0 -39
  432. package/skills/role-planner/skill.json +0 -21
  433. package/skills/role-research/SKILL.md +0 -65
  434. package/skills/role-research/skill.json +0 -36
  435. package/skills/role-security/SKILL.md +0 -60
  436. package/skills/role-security/skill.json +0 -36
  437. package/skills/runtime-claude/SKILL.md +0 -66
  438. package/skills/runtime-claude/skill.json +0 -36
  439. package/skills/runtime-codex/SKILL.md +0 -58
  440. package/skills/runtime-codex/skill.json +0 -36
  441. package/skills/runtime-local/SKILL.md +0 -46
  442. package/skills/runtime-local/skill.json +0 -36
  443. package/skills/runtime-opencode/SKILL.md +0 -58
  444. package/skills/runtime-opencode/skill.json +0 -36
  445. package/skills/signal-hygiene/SKILL.md +0 -51
  446. package/skills/signal-hygiene/skill.json +0 -20
  447. package/skills/tui-design/SKILL.md +0 -77
  448. package/skills/tui-design/references/tui-design.md +0 -259
  449. package/skills/tui-design/skill.json +0 -36
  450. package/skills/wave-core/SKILL.md +0 -141
  451. package/skills/wave-core/references/marker-syntax.md +0 -70
  452. package/skills/wave-core/skill.json +0 -35
  453. package/src/README.md +0 -85
  454. package/src/api/README.md +0 -22
  455. package/src/api/public-types.ts +0 -525
  456. package/src/component-inventory.md +0 -99
  457. package/src/core/README.md +0 -10
  458. package/src/core/commands/README.md +0 -3
  459. package/src/core/commands/formatting-commands.ts +0 -161
  460. package/src/core/commands/image-commands.ts +0 -144
  461. package/src/core/commands/index.ts +0 -1013
  462. package/src/core/commands/list-commands.ts +0 -370
  463. package/src/core/commands/review-commands.ts +0 -108
  464. package/src/core/commands/text-commands.ts +0 -119
  465. package/src/core/schema/README.md +0 -3
  466. package/src/core/schema/text-schema.ts +0 -512
  467. package/src/core/selection/README.md +0 -3
  468. package/src/core/selection/mapping.ts +0 -238
  469. package/src/core/selection/review-anchors.ts +0 -94
  470. package/src/core/state/README.md +0 -3
  471. package/src/core/state/editor-state.ts +0 -580
  472. package/src/core/state/text-transaction.ts +0 -276
  473. package/src/formats/xlsx/io/parse-shared-strings.ts +0 -41
  474. package/src/formats/xlsx/io/parse-sheet.ts +0 -289
  475. package/src/formats/xlsx/io/parse-styles.ts +0 -57
  476. package/src/formats/xlsx/io/parse-workbook.ts +0 -75
  477. package/src/formats/xlsx/io/xlsx-session.ts +0 -306
  478. package/src/formats/xlsx/model/cell.ts +0 -189
  479. package/src/formats/xlsx/model/sheet.ts +0 -244
  480. package/src/formats/xlsx/model/styles.ts +0 -118
  481. package/src/formats/xlsx/model/workbook.ts +0 -449
  482. package/src/io/README.md +0 -10
  483. package/src/io/docx-session.ts +0 -1763
  484. package/src/io/export/README.md +0 -3
  485. package/src/io/export/export-session.ts +0 -165
  486. package/src/io/export/minimal-docx.ts +0 -115
  487. package/src/io/export/reattach-preserved-parts.ts +0 -54
  488. package/src/io/export/serialize-comments.ts +0 -876
  489. package/src/io/export/serialize-footnotes.ts +0 -217
  490. package/src/io/export/serialize-headers-footers.ts +0 -200
  491. package/src/io/export/serialize-main-document.ts +0 -982
  492. package/src/io/export/serialize-numbering.ts +0 -97
  493. package/src/io/export/serialize-revisions.ts +0 -389
  494. package/src/io/export/serialize-runtime-revisions.ts +0 -265
  495. package/src/io/export/serialize-tables.ts +0 -147
  496. package/src/io/export/split-review-boundaries.ts +0 -194
  497. package/src/io/normalize/README.md +0 -3
  498. package/src/io/normalize/normalize-text.ts +0 -437
  499. package/src/io/ooxml/README.md +0 -3
  500. package/src/io/ooxml/parse-comments.ts +0 -779
  501. package/src/io/ooxml/parse-complex-content.ts +0 -287
  502. package/src/io/ooxml/parse-fields.ts +0 -438
  503. package/src/io/ooxml/parse-footnotes.ts +0 -403
  504. package/src/io/ooxml/parse-headers-footers.ts +0 -483
  505. package/src/io/ooxml/parse-inline-media.ts +0 -431
  506. package/src/io/ooxml/parse-main-document.ts +0 -1846
  507. package/src/io/ooxml/parse-numbering.ts +0 -425
  508. package/src/io/ooxml/parse-revisions.ts +0 -658
  509. package/src/io/ooxml/parse-shapes.ts +0 -271
  510. package/src/io/ooxml/parse-tables.ts +0 -568
  511. package/src/io/ooxml/parse-theme.ts +0 -314
  512. package/src/io/ooxml/part-manifest.ts +0 -136
  513. package/src/io/ooxml/revision-boundaries.ts +0 -351
  514. package/src/io/opc/README.md +0 -3
  515. package/src/io/opc/corrupt-package.ts +0 -166
  516. package/src/io/opc/docx-package.ts +0 -74
  517. package/src/io/opc/package-reader.ts +0 -320
  518. package/src/io/opc/package-writer.ts +0 -273
  519. package/src/model/README.md +0 -3
  520. package/src/model/canonical-document.ts +0 -1911
  521. package/src/model/cds-1.0.0.ts +0 -196
  522. package/src/model/snapshot.ts +0 -393
  523. package/src/preservation/README.md +0 -3
  524. package/src/preservation/markup-compatibility.ts +0 -48
  525. package/src/preservation/opaque-fragment-store.ts +0 -89
  526. package/src/preservation/opaque-region.ts +0 -233
  527. package/src/preservation/package-preservation.ts +0 -120
  528. package/src/preservation/preserved-part-manifest.ts +0 -56
  529. package/src/preservation/relationship-retention.ts +0 -57
  530. package/src/preservation/store.ts +0 -185
  531. package/src/review/README.md +0 -16
  532. package/src/review/store/README.md +0 -3
  533. package/src/review/store/comment-anchors.ts +0 -70
  534. package/src/review/store/comment-remapping.ts +0 -154
  535. package/src/review/store/comment-store.ts +0 -331
  536. package/src/review/store/comment-thread.ts +0 -109
  537. package/src/review/store/revision-actions.ts +0 -394
  538. package/src/review/store/revision-store.ts +0 -303
  539. package/src/review/store/revision-types.ts +0 -168
  540. package/src/review/store/runtime-comment-store.ts +0 -43
  541. package/src/runtime/README.md +0 -3
  542. package/src/runtime/ai-action-policy.ts +0 -764
  543. package/src/runtime/document-runtime.ts +0 -969
  544. package/src/runtime/read-only-diagnostics-runtime.ts +0 -232
  545. package/src/runtime/review-runtime.ts +0 -44
  546. package/src/runtime/revision-runtime.ts +0 -107
  547. package/src/runtime/session-capabilities.ts +0 -138
  548. package/src/runtime/surface-projection.ts +0 -570
  549. package/src/runtime/table-commands.ts +0 -84
  550. package/src/runtime/table-schema.ts +0 -125
  551. package/src/ui/README.md +0 -30
  552. package/src/ui/WordReviewEditor.tsx +0 -1283
  553. package/src/ui/comments/README.md +0 -3
  554. package/src/ui/compatibility/README.md +0 -3
  555. package/src/ui/editor-surface/README.md +0 -3
  556. package/src/ui/headless/comment-decoration-model.ts +0 -124
  557. package/src/ui/headless/revision-decoration-model.ts +0 -128
  558. package/src/ui/headless/selection-helpers.ts +0 -34
  559. package/src/ui/headless/use-editor-keyboard.ts +0 -98
  560. package/src/ui/review/README.md +0 -3
  561. package/src/ui/shared/revision-filters.ts +0 -31
  562. package/src/ui/status/README.md +0 -3
  563. package/src/ui/theme/README.md +0 -3
  564. package/src/ui/toolbar/README.md +0 -3
  565. package/src/ui-tailwind/chrome/tw-alert-banner.tsx +0 -48
  566. package/src/ui-tailwind/chrome/tw-selection-toolbar.tsx +0 -44
  567. package/src/ui-tailwind/chrome/tw-unsaved-modal.tsx +0 -58
  568. package/src/ui-tailwind/chrome/use-before-unload.ts +0 -20
  569. package/src/ui-tailwind/editor-surface/pm-command-bridge.ts +0 -139
  570. package/src/ui-tailwind/editor-surface/pm-decorations.ts +0 -98
  571. package/src/ui-tailwind/editor-surface/pm-position-map.ts +0 -123
  572. package/src/ui-tailwind/editor-surface/pm-schema.ts +0 -452
  573. package/src/ui-tailwind/editor-surface/pm-state-from-snapshot.ts +0 -327
  574. package/src/ui-tailwind/editor-surface/search-plugin.ts +0 -157
  575. package/src/ui-tailwind/editor-surface/tw-caret.tsx +0 -12
  576. package/src/ui-tailwind/editor-surface/tw-editor-surface.tsx +0 -150
  577. package/src/ui-tailwind/editor-surface/tw-inline-token.tsx +0 -118
  578. package/src/ui-tailwind/editor-surface/tw-opaque-block.tsx +0 -52
  579. package/src/ui-tailwind/editor-surface/tw-paragraph-block.tsx +0 -151
  580. package/src/ui-tailwind/editor-surface/tw-prosemirror-surface.tsx +0 -215
  581. package/src/ui-tailwind/editor-surface/tw-segment-view.tsx +0 -111
  582. package/src/ui-tailwind/editor-surface/tw-table-node-view.tsx +0 -108
  583. package/src/ui-tailwind/index.ts +0 -61
  584. package/src/ui-tailwind/review/tw-comment-sidebar.tsx +0 -276
  585. package/src/ui-tailwind/review/tw-health-panel.tsx +0 -120
  586. package/src/ui-tailwind/review/tw-review-rail.tsx +0 -120
  587. package/src/ui-tailwind/review/tw-revision-sidebar.tsx +0 -164
  588. package/src/ui-tailwind/status/tw-status-bar.tsx +0 -58
  589. package/src/ui-tailwind/theme/editor-theme.css +0 -190
  590. package/src/ui-tailwind/toolbar/tw-toolbar-icon-button.tsx +0 -48
  591. package/src/ui-tailwind/toolbar/tw-toolbar.tsx +0 -231
  592. package/src/ui-tailwind/tw-review-workspace.tsx +0 -140
  593. package/src/validation/README.md +0 -3
  594. package/src/validation/compatibility-engine.ts +0 -317
  595. package/src/validation/compatibility-report.ts +0 -160
  596. package/src/validation/diagnostics.ts +0 -203
  597. package/src/validation/import-diagnostics.ts +0 -128
  598. package/src/validation/low-priority-word-surfaces.ts +0 -373
  599. package/test/README.md +0 -16
  600. package/test/core/formatting-commands.test.ts +0 -285
  601. package/test/core/image-commands.test.ts +0 -298
  602. package/test/core/mapping.test.ts +0 -186
  603. package/test/core/text-commands.test.ts +0 -176
  604. package/test/fixtures/docx/F01-basic-contract.docx +0 -0
  605. package/test/fixtures/docx/F01-basic-contract.md +0 -33
  606. package/test/fixtures/docx/F02-headings-styles.docx +0 -0
  607. package/test/fixtures/docx/F02-headings-styles.md +0 -33
  608. package/test/fixtures/docx/F03-legal-outline-numbering.docx +0 -0
  609. package/test/fixtures/docx/F03-legal-outline-numbering.md +0 -34
  610. package/test/fixtures/docx/F04-restart-numbering-schedules.docx +0 -0
  611. package/test/fixtures/docx/F04-restart-numbering-schedules.md +0 -33
  612. package/test/fixtures/docx/F05-table-heavy-agreement.docx +0 -0
  613. package/test/fixtures/docx/F05-table-heavy-agreement.md +0 -34
  614. package/test/fixtures/docx/F06-merged-cells-signature-table.docx +0 -0
  615. package/test/fixtures/docx/F06-merged-cells-signature-table.md +0 -34
  616. package/test/fixtures/docx/F07-inline-images-exhibit.docx +0 -0
  617. package/test/fixtures/docx/F07-inline-images-exhibit.md +0 -34
  618. package/test/fixtures/docx/F08-hyperlinks.docx +0 -0
  619. package/test/fixtures/docx/F08-hyperlinks.md +0 -33
  620. package/test/fixtures/docx/F09-comments-single-paragraph.docx +0 -0
  621. package/test/fixtures/docx/F09-comments-single-paragraph.md +0 -33
  622. package/test/fixtures/docx/F10-threaded-comments-resolve.docx +0 -0
  623. package/test/fixtures/docx/F10-threaded-comments-resolve.md +0 -33
  624. package/test/fixtures/docx/F11-redlines-basic.docx +0 -0
  625. package/test/fixtures/docx/F11-redlines-basic.md +0 -33
  626. package/test/fixtures/docx/F12-redlines-paragraph-joins-splits.docx +0 -0
  627. package/test/fixtures/docx/F12-redlines-paragraph-joins-splits.md +0 -33
  628. package/test/fixtures/docx/F13-comments-on-deleted-text.docx +0 -0
  629. package/test/fixtures/docx/F13-comments-on-deleted-text.md +0 -33
  630. package/test/fixtures/docx/F14-revisions-in-tables-and-lists.docx +0 -0
  631. package/test/fixtures/docx/F14-revisions-in-tables-and-lists.md +0 -33
  632. package/test/fixtures/docx/F15-sections-headers-footers.docx +0 -0
  633. package/test/fixtures/docx/F15-sections-headers-footers.md +0 -33
  634. package/test/fixtures/docx/F16-footnotes-endnotes.docx +0 -0
  635. package/test/fixtures/docx/F16-footnotes-endnotes.md +0 -33
  636. package/test/fixtures/docx/F17-fields-and-toc.docx +0 -0
  637. package/test/fixtures/docx/F17-fields-and-toc.md +0 -33
  638. package/test/fixtures/docx/F18-content-controls-template.docx +0 -0
  639. package/test/fixtures/docx/F18-content-controls-template.md +0 -33
  640. package/test/fixtures/docx/F19-custom-xml-doc-assembly.docx +0 -0
  641. package/test/fixtures/docx/F19-custom-xml-doc-assembly.md +0 -35
  642. package/test/fixtures/docx/F20-unknown-ooxml-and-alternatecontent.docx +0 -0
  643. package/test/fixtures/docx/F20-unknown-ooxml-and-alternatecontent.md +0 -33
  644. package/test/fixtures/docx/F21-malformed-broken-docx.docx +0 -0
  645. package/test/fixtures/docx/F21-malformed-broken-docx.md +0 -33
  646. package/test/fixtures/docx/README.md +0 -74
  647. package/test/fixtures/docx/certification-manifest.json +0 -104
  648. package/test/fixtures/docx/fixtures.manifest.json +0 -196
  649. package/test/fixtures/encrypted-docx/README.md +0 -27
  650. package/test/fixtures/encrypted-docx/certification-manifest.json +0 -9
  651. package/test/fixtures/encrypted-docx/fixtures.manifest.json +0 -47
  652. package/test/fixtures/scenarios/docx/README.md +0 -25
  653. package/test/fixtures/scenarios/docx/S01-sow-template.docx +0 -0
  654. package/test/fixtures/scenarios/docx/S01-sow-template.md +0 -30
  655. package/test/fixtures/scenarios/docx/S02-bw-partner-user-licence-agreement-redlines.docx +0 -0
  656. package/test/fixtures/scenarios/docx/S02-bw-partner-user-licence-agreement-redlines.md +0 -32
  657. package/test/fixtures/scenarios/docx/scenario-manifest.json +0 -53
  658. package/test/formats/xlsx/io/xlsx-import.test.ts +0 -766
  659. package/test/formats/xlsx/model/workbook.test.ts +0 -669
  660. package/test/helpers/dom-setup.ts +0 -124
  661. package/test/io/comment-roundtrip.test.ts +0 -272
  662. package/test/io/complex-content-roundtrip.test.ts +0 -632
  663. package/test/io/docx-compatibility-regression.test.ts +0 -199
  664. package/test/io/docx-session.test.ts +0 -1495
  665. package/test/io/footnotes-roundtrip.test.ts +0 -318
  666. package/test/io/headers-footers-roundtrip.test.ts +0 -547
  667. package/test/io/numbering-roundtrip.test.ts +0 -234
  668. package/test/io/package-reader.test.ts +0 -199
  669. package/test/io/paragraph-properties-roundtrip.test.ts +0 -129
  670. package/test/io/preserved-package-roundtrip.test.ts +0 -365
  671. package/test/io/property-completeness.test.ts +0 -292
  672. package/test/io/revision-roundtrip.test.ts +0 -347
  673. package/test/io/structural-blocks.test.ts +0 -202
  674. package/test/io/table-media-roundtrip.test.ts +0 -448
  675. package/test/io/table-properties-roundtrip.test.ts +0 -569
  676. package/test/io/table-roundtrip.test.ts +0 -302
  677. package/test/io/text-roundtrip.test.ts +0 -344
  678. package/test/model/canonical-document.test.ts +0 -285
  679. package/test/preservation/opaque-fragment-store.test.ts +0 -121
  680. package/test/preservation/package-preservation.test.ts +0 -395
  681. package/test/preservation/store.test.ts +0 -84
  682. package/test/review/comment-remapping.test.ts +0 -220
  683. package/test/review/comment-store.test.ts +0 -180
  684. package/test/review/move-revisions.test.ts +0 -143
  685. package/test/review/property-change-revisions.test.ts +0 -225
  686. package/test/review/revision-actions.test.ts +0 -330
  687. package/test/review/revision-store.test.ts +0 -193
  688. package/test/runtime/session-capabilities.test.ts +0 -260
  689. package/test/runtime/table-commands.test.ts +0 -356
  690. package/test/runtime/table-schema.test.ts +0 -221
  691. package/test/runtime/tracked-changes-toggle.test.ts +0 -107
  692. package/test/ui/comment-review-surface.test.tsx +0 -114
  693. package/test/ui/reduced-motion-toggle.test.tsx +0 -137
  694. package/test/ui/word-review-editor.imported-scenarios.test.tsx +0 -169
  695. package/test/ui/word-review-editor.interaction.test.tsx +0 -1198
  696. package/test/ui/word-review-editor.test.js +0 -188
  697. package/test/ui/word-review-editor.test.tsx +0 -280
  698. package/test/ui-tailwind/search-plugin.test.ts +0 -286
  699. package/test/validation/compatibility-engine.test.ts +0 -336
  700. package/test/validation/compatibility-report.test.ts +0 -189
  701. package/test/validation/low-priority-word-surfaces.test.ts +0 -282
  702. package/test/validation/malformed-doc.test.ts +0 -113
  703. package/test-results/.last-run.json +0 -4
  704. package/wave.config.json +0 -406
@@ -1,322 +0,0 @@
1
- # Wave 1 - Component Boundaries Spec
2
-
3
- **Agent:** A1 (Architecture Design Packet)
4
- **Date:** 2026-03-25
5
- **Status:** frozen for Wave 2 implementation
6
-
7
- This spec freezes ownership, import directions, contract seams, and proof handoff for the Wave 1 promoted components.
8
-
9
- ## 1. Component Map
10
-
11
- ```text
12
- src/
13
- api/ public contract types only
14
- model/ canonical-document-model
15
- core/ canonical-document-model, command-and-transaction-runtime
16
- review/ comments-and-anchor-mapping, tracked-changes-and-review-actions
17
- io/ docx-import-and-normalization, docx-export-and-serialization
18
- preservation/ unsupported-ooxml-preservation
19
- validation/ compatibility-and-word-validation
20
- runtime/ command-and-transaction-runtime
21
- ui/ react-editor-ui
22
- ```
23
-
24
- ## 2. Ownership Table
25
-
26
- | Component | Source owner | Wave 1 role | Repo-land wave | Baseline-proof wave |
27
- | --- | --- | --- | --- | --- |
28
- | canonical-document-model | `src/model`, `src/core` type wrappers, `src/api` public type exports | A1 design -> A2 contract and impl | Wave 2 | Wave 3 |
29
- | command-and-transaction-runtime | `src/core`, `src/runtime` | A1 design -> A2 contract and impl | Wave 2 | Wave 3 |
30
- | comments-and-anchor-mapping | `src/review` | A1 cross-boundary design -> A4 contract and impl | Wave 4 | Wave 5 |
31
- | tracked-changes-and-review-actions | `src/review` | A1 cross-boundary design -> A4 contract and impl | Wave 5 | Wave 6 |
32
- | docx-import-and-normalization | `src/io` reader or normalizer or canonicalizer | A1 design -> A3 contract and impl | Wave 2 | Wave 3 |
33
- | docx-export-and-serialization | `src/io` serializer or package writer | A1 design -> A3 contract and impl | Wave 2 | Wave 3 |
34
- | unsupported-ooxml-preservation | `src/preservation` | A1 design -> A3 contract and impl | Wave 6 | Wave 7 |
35
- | compatibility-and-word-validation | `src/validation` | A1 design -> A3 contract and impl | Wave 3 | Wave 4 |
36
- | react-editor-ui | `src/ui` | A1 design -> A4 contract and impl | Wave 2 | Wave 3 |
37
-
38
- ## 3. Import Direction Rules
39
-
40
- Allowed high-level dependency directions:
41
-
42
- ```text
43
- src/api <- nothing in src/
44
- src/model <- src/api
45
- src/core <- src/model, src/api
46
- src/review <- src/model, src/core
47
- src/preservation <- src/model, src/core
48
- src/validation <- src/model, src/core, src/api
49
- src/io <- src/model, src/core, src/preservation, src/validation
50
- src/runtime <- src/model, src/core, src/review, src/io, src/preservation, src/validation, src/api
51
- src/ui <- src/runtime, src/api, src/core view adapters only
52
- ```
53
-
54
- Forbidden directions:
55
-
56
- - `src/api` must not import from any `src/*` runtime module.
57
- - `src/model` must not import from `src/core`, `src/review`, `src/io`, `src/preservation`, `src/validation`, `src/runtime`, or `src/ui`.
58
- - `src/ui` must not import from `src/io`, `src/preservation`, or `src/validation`.
59
- - `src/ui` must not mutate review or preservation state directly.
60
- - `src/io` must not import from `src/runtime` or `src/ui`.
61
- - `src/review` and `src/preservation` must not import from `src/runtime` or `src/ui`.
62
-
63
- ## 4. Canonical Envelope Boundary
64
-
65
- `src/model` owns the canonical document envelope and the scalar types needed to serialize it.
66
-
67
- Frozen top-level keys:
68
-
69
- - `schemaVersion`
70
- - `docId`
71
- - `createdAt`
72
- - `updatedAt`
73
- - `metadata`
74
- - `styles`
75
- - `numbering`
76
- - `media`
77
- - `content`
78
- - `review`
79
- - `preservation`
80
- - `diagnostics`
81
-
82
- Frozen domain rule:
83
-
84
- - `content`, `review`, and `preservation` are the mutable editing domains.
85
- - `styles`, `numbering`, `media`, `metadata`, and `diagnostics` are still schema-owned first-class data and must not be recreated as ad hoc runtime-only caches.
86
-
87
- Serialization rule:
88
-
89
- - Canonical state must remain JSON-serializable and deterministic.
90
- - Use plain object or array shapes for persisted stores rather than runtime-only `Map` containers.
91
-
92
- ## 5. Runtime And UI Boundary
93
-
94
- `src/runtime` owns the live editing session. `src/ui` is a projection and command-dispatch layer only.
95
-
96
- Frozen runtime responsibilities:
97
-
98
- - load from `.docx` bytes or `PersistedEditorSnapshot`
99
- - expose an external-store subscription pair plus a render snapshot getter for React rendering
100
- - own command dispatch, transaction commit, undo, redo, and remapping
101
- - emit warnings, events, and compatibility data
102
- - provide `getPersistedSnapshot()` separately from the render snapshot and provide `.docx` export
103
-
104
- Frozen UI responsibilities:
105
-
106
- - subscribe to runtime state
107
- - render toolbar, editor surface, comments or review panels, compatibility surfaces, and status surfaces
108
- - translate gestures into runtime commands
109
- - expose the host ref surface through thin runtime wrappers
110
-
111
- Frozen prohibitions:
112
-
113
- - React must not own editable canonical truth.
114
- - React must not call IO or preservation modules directly.
115
- - Runtime must not render UI or depend on React.
116
-
117
- ## 6. Position, Range, And Anchor Contract
118
-
119
- Frozen shared types:
120
-
121
- ```ts
122
- type Position = number;
123
-
124
- interface DocRange {
125
- from: Position;
126
- to: Position;
127
- }
128
-
129
- interface BoundaryAssoc {
130
- start: -1 | 1;
131
- end: -1 | 1;
132
- }
133
- ```
134
-
135
- Frozen size rules:
136
-
137
- - text node size = Unicode code point count
138
- - atomic inline leaf size = `1`
139
- - atomic block leaf size = `1`
140
- - container size = `2 + sum(childSizes)`
141
- - the document root token is not counted; position `0` is before the first child of the editable story
142
- - the shared position space applies to the editable main story plus atomic placeholders inside it, not to out-of-band preserved stories or package parts
143
-
144
- Frozen anchor states:
145
-
146
- ```ts
147
- type RangeAnchor = {
148
- kind: "range";
149
- range: DocRange;
150
- assoc: BoundaryAssoc;
151
- };
152
-
153
- type NodeAnchor = {
154
- kind: "node";
155
- at: Position;
156
- assoc: -1 | 1;
157
- };
158
-
159
- type DetachedAnchor = {
160
- kind: "detached";
161
- lastKnownRange: DocRange;
162
- reason: "deleted" | "invalidatedByStructureChange" | "importAmbiguity";
163
- };
164
- ```
165
-
166
- Frozen remap rule:
167
-
168
- - After every committed transaction, the runtime remaps selection, review anchors, and preservation bindings before subscribers are notified.
169
- - Invalid anchors become `detached`; they are not silently removed.
170
-
171
- ## 7. Review Boundary
172
-
173
- `src/review` owns comments, revisions, and remap helpers, but it does not own position arithmetic or command dispatch.
174
-
175
- Frozen review-store shape:
176
-
177
- ```ts
178
- type ReviewStore = {
179
- comments: Record<string, CommentThread>;
180
- revisions: Record<string, RevisionRecord>;
181
- };
182
- ```
183
-
184
- Frozen v1 authoring scope:
185
-
186
- - editable single-paragraph comment ranges and threads
187
- - tracked insertions
188
- - tracked deletions
189
- - accept or reject for the above
190
-
191
- Frozen preserve-only review scope:
192
-
193
- - multi-paragraph editable comment ranges
194
- - tracked moves
195
- - tracked formatting changes
196
- - structural table or list revisions beyond the supported authoring envelope
197
-
198
- ## 8. Preservation Boundary
199
-
200
- `src/preservation` owns the opaque fragment registry and preserved package-part manifest.
201
-
202
- Frozen opaque placeholder contract:
203
-
204
- ```ts
205
- type OpaqueInlineNode = {
206
- type: "opaque_inline";
207
- fragmentId: string;
208
- warningId: string;
209
- };
210
-
211
- type OpaqueBlockNode = {
212
- type: "opaque_block";
213
- fragmentId: string;
214
- warningId: string;
215
- };
216
-
217
- type OpaqueFragmentRecord = {
218
- fragmentId: string;
219
- payloadKind: "xml-subtree" | "package-part";
220
- payloadKey: string;
221
- featureClass: "preserve-only";
222
- lastKnownRange: DocRange;
223
- packagePartName?: string;
224
- relationshipId?: string;
225
- };
226
- ```
227
-
228
- Frozen preservation rule:
229
-
230
- - opaque placeholders are atomic leaf nodes in the canonical content tree
231
- - the actual XML or bytes live in preservation records, not inline in canonical content
232
- - the preserved package-part manifest records content type and relationship metadata keyed by `fragmentId` or package part name
233
- - partial edits inside opaque regions are forbidden
234
- - whole-node deletion requires an explicit destructive path and warning
235
-
236
- ## 9. Compatibility Boundary
237
-
238
- `src/validation` owns feature classification and compatibility reporting.
239
-
240
- Frozen taxonomy:
241
-
242
- - `supported-roundtrip`
243
- - `preserve-only`
244
- - `unsupported-fatal`
245
-
246
- Frozen report minimums:
247
-
248
- ```ts
249
- type CompatibilityReport = {
250
- reportVersion: number;
251
- featureEntries: FeatureEntry[];
252
- warnings: EditorWarning[];
253
- errors: EditorError[];
254
- blockExport: boolean;
255
- };
256
- ```
257
-
258
- Where:
259
-
260
- - `featureEntries` carry stable ids for classified features or regions
261
- - `warnings` and `errors` are host-visible projections
262
- - `blockExport` is the single export gate summary bit
263
-
264
- ## 10. IO Boundary
265
-
266
- `src/io` owns the package-first pipeline and is the only subsystem that translates between `.docx` and canonical state.
267
-
268
- Frozen internal modules:
269
-
270
- - `opc-reader`
271
- - `normalizer`
272
- - `canonicalizer`
273
- - `serializer`
274
- - `opc-writer`
275
-
276
- Frozen public boundary toward runtime:
277
-
278
- - import accepts `.docx` bytes and returns canonical state plus compatibility data
279
- - export accepts canonical state plus preservation data and returns `.docx` bytes
280
-
281
- Frozen prohibitions:
282
-
283
- - no HTML intermediary contract
284
- - no direct React participation in import or export
285
- - no runtime-to-UI back edge
286
-
287
- ## 11. Proof Surface Assignments By Wave
288
-
289
- | Component | Wave | Proof surface | Owner |
290
- | --- | --- | --- | --- |
291
- | canonical-document-model | Wave 2 | repo-land schema and serialization tests, position arithmetic tests, deterministic snapshot checks | A2 |
292
- | command-and-transaction-runtime | Wave 2 | repo-land command-dispatch tests, transaction remap tests, and runtime subscription tests | A2 |
293
- | react-editor-ui | Wave 2 | repo-land shell load or focus or ready smoke over the runtime external-store boundary | A4 |
294
- | canonical-document-model | Wave 3 | F01-F02 canonical snapshot stability and position remap checks through real text edits | A2 |
295
- | command-and-transaction-runtime | Wave 3 | F01-F02 undo or redo, remap, and selection consistency through committed transactions | A2 |
296
- | docx-import-and-normalization | Wave 3 | F01-F02 import fixtures for text, headings, whitespace, tabs, and hard breaks | A3 |
297
- | docx-export-and-serialization | Wave 3 | F01-F02 export or round-trip fixtures plus package integrity checks | A3 |
298
- | compatibility-and-word-validation | Wave 3 | repo-land compatibility-report skeleton tests and validator-contract smoke on F01-F02 | A3 |
299
- | react-editor-ui | Wave 3 | runtime-driven editing smoke tests and imperative-ref smoke tests on F01-F02 | A4 |
300
- | docx-import-and-normalization | Wave 4 | F03-F04/F07-F08 live supported lists, numbering, inline images, and hyperlinks plus preserve-only truth on F05-F06 tables | A3 |
301
- | compatibility-and-word-validation | Wave 4 | structural compatibility suite, feature-class assertions, and export-risk gating for F03-F08 | A3 |
302
- | comments-and-anchor-mapping | Wave 5 | F09-F10 comment fixtures and anchor-remap tests | A4 |
303
- | tracked-changes-and-review-actions | Wave 6 | F11-F14 revision fixtures and accept or reject tests | A4 |
304
- | unsupported-ooxml-preservation | Wave 7 | F15-F21 preservation fixtures, opaque-fragment survival tests, malformed-doc export-block checks | A3 |
305
-
306
- ## 12. Service Boundary
307
-
308
- | Service | Role | Frozen boundary |
309
- | --- | --- | --- |
310
- | `services/react-word-editor` | Internal Railway harness | Hosts `WordReviewEditor`; does not bypass the runtime by importing editor internals directly for mutation flows. |
311
- | `services/openxml-validator` | Internal validator service | Accepts `.docx` bytes and returns structured diagnostics; never becomes the primary transformation engine and never ships in the browser bundle. |
312
-
313
- ## 13. Change Control
314
-
315
- The following changes require a new explicit Wave decision before implementation agents act on them:
316
-
317
- - the global position model or size rules
318
- - the mutable-domain split of `content`, `review`, and `preservation`
319
- - the runtime or UI boundary that keeps React as a subscriber only
320
- - the three-class compatibility taxonomy
321
- - the opaque placeholder node kinds
322
- - the later-wave proof ownership table
@@ -1,323 +0,0 @@
1
- # Wave 1 OOXML, Preservation, And Fixture Contracts
2
-
3
- **Agent:** A3
4
- **Date:** 2026-03-25
5
- **Status:** ready-for-implementation
6
-
7
- ## Purpose
8
-
9
- This packet freezes the Wave 1 contract for:
10
-
11
- - `docx-import-and-normalization`
12
- - `docx-export-and-serialization`
13
- - `unsupported-ooxml-preservation`
14
- - `compatibility-and-word-validation`
15
-
16
- It converts the repo-wide compatibility promises into implementation-facing rules that later waves must satisfy with fixture-backed proof.
17
-
18
- ## Governing inputs
19
-
20
- This contract is downstream of:
21
-
22
- - [README.md](/home/coder/docx-react-component/README.md)
23
- - [docs/reference/repository-guidance.md](/home/coder/docx-react-component/docs/reference/repository-guidance.md)
24
- - [docs/plans/waves/design/wave-1-a1.md](/home/coder/docx-react-component/docs/plans/waves/design/wave-1-a1.md)
25
- - [docs/reference/ooxml-compliance.md](/home/coder/docx-react-component/docs/reference/ooxml-compliance.md)
26
- - [test/fixtures/docx/README.md](/home/coder/docx-react-component/test/fixtures/docx/README.md)
27
-
28
- If a later doc conflicts with A1 decisions D7-D12, this packet inherits A1.
29
-
30
- ## Non-negotiable contract
31
-
32
- - `.docx` is treated as an OPC package, not as `word/document.xml` alone.
33
- - Import and export stay package-first and unidirectional.
34
- - Supported editing is only for features that satisfy `supported-roundtrip`.
35
- - Unsupported but preservable content is preserved, never silently discarded.
36
- - Opaque preserved content is represented as atomic placeholders in canonical content.
37
- - The Microsoft Open XML SDK is validation-only and never the runtime transformation engine.
38
- - Word reopen behavior is the final compatibility standard. SDK validation is necessary but insufficient.
39
-
40
- ## Feature classes
41
-
42
- Wave 1 freezes exactly three feature classes:
43
-
44
- - `supported-roundtrip`
45
- - `preserve-only`
46
- - `unsupported-fatal`
47
-
48
- `supported-import-only` and `supported-export-only` are not valid v1 classes. If a feature cannot safely survive import, supported editing, export, and Word reopen, it must be classified as `preserve-only` or `unsupported-fatal`.
49
-
50
- ## Package-preservation model
51
-
52
- ### Owned package surfaces
53
-
54
- The editor may regenerate only parts and relationships it explicitly owns for the active supported feature set, including where applicable:
55
-
56
- - `word/document.xml`
57
- - editor-owned supporting parts such as comments, numbering, styles, and media relationships when the editor materially changes those surfaces
58
- - package metadata entries that must be updated to keep the package valid after owned changes
59
-
60
- ### Preserved package surfaces
61
-
62
- The editor must preserve and reattach unchanged package data for any non-owned or not-yet-canonicalized surface, including:
63
-
64
- - unknown parts
65
- - unknown relationships
66
- - unknown content types
67
- - headers and footers
68
- - footnotes and endnotes
69
- - fields
70
- - SDTs
71
- - custom XML wrappers and custom XML parts
72
- - `mc:AlternateContent`
73
- - ignorable namespaces and unknown markup extensions
74
- - embedded objects and unsupported drawings
75
-
76
- ### Opaque fragment contract
77
-
78
- Unsupported inline or block content that remains preservable must become:
79
-
80
- - an `opaque_inline` or `opaque_block` placeholder in canonical content
81
- - a preservation record keyed by `fragmentId`
82
- - a warning-bearing binding to the last known canonical range
83
-
84
- The preservation record must retain enough original material to reattach the feature on export, such as:
85
-
86
- - original XML subtree
87
- - original package bytes
88
- - source part path and relationship context
89
- - feature classification
90
- - `lastKnownRange`
91
-
92
- Wave 1 freezes the rule that opaque placeholders are atomic. Later waves may not partially edit, split, or normalize inside them.
93
-
94
- ## Import contract
95
-
96
- Import must follow:
97
-
98
- `.docx bytes -> OPC reader -> OOXML normalizer -> canonicalizer -> runtime load`
99
-
100
- ### Import obligations
101
-
102
- - Read the package graph, including content types and relationships, before canonicalization decisions.
103
- - Normalize supported OOXML into canonical content, review, and preservation surfaces without routing through HTML.
104
- - Preserve unsupported but intact OOXML as package-level records or opaque fragments.
105
- - Emit stable diagnostics for every preserve-only and unsupported-fatal condition.
106
- - Fail safely on malformed packages that the editor cannot preserve or reason about safely.
107
-
108
- ### Import outcomes by class
109
-
110
- For `supported-roundtrip`, import must:
111
-
112
- - parse the feature semantically
113
- - materialize it into canonical state
114
- - preserve enough source metadata to serialize back safely
115
-
116
- For `preserve-only`, import must:
117
-
118
- - retain the source XML or bytes
119
- - bind the preserved unit to either package manifest state or an atomic placeholder
120
- - mark the feature locked for direct editing
121
- - emit any warning needed to explain downstream risk
122
-
123
- For `unsupported-fatal`, import must:
124
-
125
- - emit an error with export-block semantics
126
- - prevent the runtime from presenting the document as normally editable
127
- - avoid repair guesses that could hide corruption
128
-
129
- ## Export contract
130
-
131
- Export must follow:
132
-
133
- `canonical state -> serializer -> OPC writer -> .docx bytes`
134
-
135
- ### Export obligations
136
-
137
- - Serialize only from canonical state plus preservation records.
138
- - Regenerate only editor-owned parts.
139
- - Reattach preserved parts, relationships, markup-compatibility structures, and opaque fragments.
140
- - Maintain package integrity for `[Content_Types].xml`, relationship graphs, and referenced part targets.
141
- - Surface export-block conditions before producing a document that would violate the compatibility contract.
142
-
143
- ### Export outcomes by class
144
-
145
- For `supported-roundtrip`, export must:
146
-
147
- - serialize the feature back as valid OOXML
148
- - keep relationships and identifiers coherent
149
- - support Word reopen without repair prompts for the proven fixture set
150
-
151
- For `preserve-only`, export must:
152
-
153
- - re-emit preserved material without semantically rewriting it
154
- - keep the feature locked or outside editable scope in the runtime
155
- - warn before destructive actions that would delete or invalidate the preserved unit
156
-
157
- For `unsupported-fatal`, export must:
158
-
159
- - block export rather than emit a guessed or flattened representation
160
- - return actionable diagnostics
161
-
162
- ## Preserve, lock, warn, block, fail matrix
163
-
164
- Wave 1 freezes the editor response model below.
165
-
166
- | Condition | Required behavior |
167
- | --- | --- |
168
- | Feature is `supported-roundtrip` and inside proven editing scope | Import semantically, allow editing, serialize natively, validate through fixture proof. |
169
- | Feature is `preserve-only` and does not intersect edits | Preserve and reattach without user-visible mutation of the preserved payload. |
170
- | Feature is `preserve-only` and is represented in the canonical story | Lock direct editing inside the feature; expose it only as an atomic placeholder. |
171
- | User action would delete a preserve-only opaque unit | Warn explicitly and require destructive confirmation; never treat as a silent delete. |
172
- | User action would require semantic rewriting of preserve-only content | Block the action or keep the document read-only for that region. |
173
- | Package or OOXML is malformed but still diagnosable | Fail safely with diagnostics and export blocked. |
174
- | Package or OOXML prevents trustworthy preservation | Fail import into read-only diagnostics mode or reject load; do not continue as editable. |
175
-
176
- ## Compatibility and validation contract
177
-
178
- `CompatibilityReport` is a repo-owned TypeScript surface, not an SDK mirror. Wave 1 freezes the following obligations:
179
-
180
- - stable feature entries for supported and preserve-only findings
181
- - warnings for detachments, destructive-risk edits, and preserve-only constraints
182
- - errors for malformed packages, invalid relationships, and export blockers
183
- - `blockExport` as the authoritative export gate
184
-
185
- Validation layers remain:
186
-
187
- 1. repo-owned structural and semantic checks in TypeScript
188
- 2. Open XML SDK validation in CI and internal services
189
- 3. manual Word reopen certification for representative fixtures
190
-
191
- The SDK may validate the package, parts, or elements, but it does not decide runtime transformations and does not ship in the browser bundle.
192
-
193
- ## Feature-class baseline for v1
194
-
195
- ### `supported-roundtrip`
196
-
197
- - paragraphs, runs, and text containers
198
- - significant whitespace, tabs, and hard line breaks
199
- - paragraph styles and heading style references
200
- - nested lists and restart numbering
201
- - inline images
202
- - hyperlinks
203
- - single-paragraph comments and threads within supported authoring scope
204
- - tracked insertions and deletions with accept or reject flows
205
-
206
- ### `preserve-only`
207
-
208
- - body-level tables and merged-cell tables on the current live runtime path
209
- - multi-paragraph comment ranges
210
- - tracked moves
211
- - formatting revisions
212
- - structural table or list revisions
213
- - sections and section properties
214
- - headers and footers
215
- - footnotes and endnotes
216
- - fields
217
- - SDTs
218
- - custom XML wrappers and custom XML parts
219
- - `altChunk`
220
- - embedded objects
221
- - floating or unsupported drawings
222
- - `mc:AlternateContent`
223
- - unknown OOXML in document parts
224
- - unknown package parts and relationships
225
-
226
- ### `unsupported-fatal`
227
-
228
- - malformed XML the importer cannot preserve safely
229
- - broken package graphs that prevent trustworthy reattachment
230
- - other package states the editor cannot validate or preserve without guesswork
231
-
232
- ## Fixture proof program
233
-
234
- Wave 1 freezes F01-F21 as the minimum compatibility corpus.
235
-
236
- | Fixture | Primary contract target | Feature class focus | Proof-bearing wave(s) |
237
- | --- | --- | --- | --- |
238
- | F01 | Basic contract skeleton | `supported-roundtrip` text and whitespace baseline | Wave 3, Wave 10 |
239
- | F02 | Headings and styles contract | `supported-roundtrip` styles and headings baseline | Wave 3, Wave 10 |
240
- | F03 | Legal outline numbering | `supported-roundtrip` nested numbering | Wave 5, Wave 10 |
241
- | F04 | Restart numbering schedules | `supported-roundtrip` numbering restart and overrides | Wave 5, Wave 10 |
242
- | F05 | Table-heavy agreement | `preserve-only` table/package survival until first-class tables land | Wave 10, Wave 12 if promoted |
243
- | F06 | Merged-cells signature table | `preserve-only` merged-cell/package survival until first-class tables land | Wave 10, Wave 12 if promoted |
244
- | F07 | Inline images exhibit | `supported-roundtrip` media relationships | Wave 5, Wave 10 |
245
- | F08 | Hyperlinks exhibit list | `supported-roundtrip` hyperlinks and rel integrity | Wave 3, Wave 10 |
246
- | F09 | Comments anchored single paragraph | `supported-roundtrip` comment anchors | Wave 5, Wave 10 |
247
- | F10 | Threaded comments and resolve | `supported-roundtrip` comment threads and resolution metadata | Wave 5, Wave 10 |
248
- | F11 | Redlines basic | `supported-roundtrip` tracked insertions and deletions | Wave 6, Wave 10 |
249
- | F12 | Redlines paragraph joins/splits | `supported-roundtrip` revision boundary behavior | Wave 6, Wave 10 |
250
- | F13 | Comments on deleted text | supported behavior plus review-edge diagnostics | Wave 6, Wave 10 |
251
- | F14 | Revisions in tables and lists | `preserve-only` structural revisions | Wave 6, Wave 10 |
252
- | F15 | Sections + headers/footers | `preserve-only` out-of-band story survival | Wave 7, Wave 10 |
253
- | F16 | Footnotes and endnotes | `preserve-only` notes survival | Wave 7, Wave 10 |
254
- | F17 | Fields and TOC | `preserve-only` fields survival | Wave 7, Wave 10 |
255
- | F18 | Content controls template | `preserve-only` SDT survival and locking | Wave 7, Wave 10 |
256
- | F19 | Custom XML doc assembly | `preserve-only` custom XML survival and blocking rules | Wave 7, Wave 10 |
257
- | F20 | Unknown OOXML and AlternateContent | `preserve-only` opaque OOXML and markup compatibility preservation | Wave 7, Wave 10 |
258
- | F21 | Malformed/broken docx | `unsupported-fatal` fail-safe import and export blocking | Wave 7, Wave 10 |
259
-
260
- ## Later-wave obligations frozen by this packet
261
-
262
- ### Wave 3
263
-
264
- - Prove F01-F02 through fixture-backed import or export checks.
265
- - Land the first `CompatibilityReport` contract implementation.
266
- - Demonstrate package validation handoff to the validator service without pulling the SDK into runtime code.
267
-
268
- ### Wave 4
269
-
270
- - Land the live shell and compatibility substrate without overclaiming structural baseline proof.
271
-
272
- ### Wave 5
273
-
274
- - Prove F03-F04, F07-F10, and keep F05-F06 explicit as preserve-only table/package fixtures.
275
- - Show structural compatibility checks for supported-roundtrip list, image, hyperlink, and supported comment surfaces without overclaiming first-class table support.
276
-
277
- ### Deferred Wave 12
278
-
279
- - Promote tables only after package-backed `import -> runtime edit -> export -> reload` proof exists on `F05` and `F06`.
280
- - Require mounted editor interaction proof, compatibility taxonomy proof, and linked Word reopen notes before tables re-enter `supported-roundtrip`.
281
-
282
- ### Wave 6
283
-
284
- - Prove F11-F14.
285
- - Confirm that supported revision flows and preserve-only structural revisions do not drift across taxonomy boundaries.
286
-
287
- ### Wave 7
288
-
289
- - Prove F15-F21.
290
- - Include survival checks for preserve-only package parts and explicit export blocking for malformed packages.
291
-
292
- ### Wave 8
293
-
294
- - Prove the internal harness upload and validation path without widening the frozen F01-F21 taxonomy.
295
-
296
- ### Wave 9
297
-
298
- - Prove selected end-to-end fixture and scenario runs on Railway against the same OOXML taxonomy and validator rules.
299
-
300
- ### Wave 10
301
-
302
- - Re-run the full F01-F21 regression and Word certification bundle as the authoritative v1 closure proof.
303
-
304
- ## Interface impacts
305
-
306
- | Surface | Owner | Exact impact |
307
- | --- | --- | --- |
308
- | `src/io/*` | A3 | Keep import and export package-first with no HTML intermediary and no UI dependency. |
309
- | `src/preservation/store.ts` | A3 | Preserve fragment records with `fragmentId`, source payload, `lastKnownRange`, and feature-class metadata. |
310
- | `src/validation/compatibility-report.ts` | A3 | Expose stable feature entries, warnings, errors, and `blockExport`. |
311
- | `docs/reference/ooxml-compliance.md` | A3 | Reflect the 3-class taxonomy and validation-only SDK policy. |
312
- | `test/fixtures/docx/README.md` | A3 | Freeze fixture IDs F01-F21, their class focus, and proof-bearing waves. |
313
-
314
- ## Proof expectations for this wave
315
-
316
- Wave 1 only freezes the contract. It does not claim runtime implementation of import, export, preservation, or validation logic.
317
-
318
- Durable proof for A3 in Wave 1 is:
319
-
320
- - landed owned docs
321
- - exact fixture-to-wave proof mapping
322
- - exact preserve/lock/warn/block/fail rules
323
- - explicit SDK policy and package-first boundaries