@beyondwork/docx-react-component 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (560) hide show
  1. package/README.md +44 -104
  2. package/package.json +66 -15
  3. package/src/api/public-types.ts +1 -1
  4. package/src/compare/diff-engine.ts +530 -0
  5. package/src/compare/export-redlines.ts +162 -0
  6. package/src/compare/snapshot.ts +37 -0
  7. package/src/core/commands/index.ts +1 -1
  8. package/src/core/state/editor-state.ts +2 -2
  9. package/src/index.ts +45 -0
  10. package/src/legal/bookmarks.ts +196 -0
  11. package/src/legal/cross-references.ts +356 -0
  12. package/src/legal/defined-terms.ts +203 -0
  13. package/src/runtime/document-runtime.ts +3 -5
  14. package/src/runtime/table-commands.ts +4 -1
  15. package/src/runtime/table-schema.ts +17 -2
  16. package/src/runtime/virtualized-rendering.ts +258 -0
  17. package/src/ui/WordReviewEditor.tsx +256 -35
  18. package/src/ui-tailwind/editor-surface/tw-editor-surface.tsx +2 -2
  19. package/src/ui-tailwind/editor-surface/tw-table-node-view.tsx +16 -2
  20. package/.codex/config.toml +0 -5
  21. package/.corepack/v1/pnpm/10.30.3/.corepack +0 -1
  22. package/.corepack/v1/pnpm/10.30.3/LICENSE +0 -22
  23. package/.corepack/v1/pnpm/10.30.3/README.md +0 -240
  24. package/.corepack/v1/pnpm/10.30.3/dist/node-gyp-bin/node-gyp +0 -6
  25. package/.corepack/v1/pnpm/10.30.3/dist/node-gyp-bin/node-gyp.cmd +0 -5
  26. package/.corepack/v1/pnpm/10.30.3/dist/pnpm.cjs +0 -195400
  27. package/.corepack/v1/pnpm/10.30.3/dist/pnpmrc +0 -2
  28. package/.corepack/v1/pnpm/10.30.3/dist/reflink.darwin-arm64-2HJ4WGO6.node +0 -0
  29. package/.corepack/v1/pnpm/10.30.3/dist/reflink.darwin-x64-3G3H6IW4.node +0 -0
  30. package/.corepack/v1/pnpm/10.30.3/dist/reflink.win32-arm64-msvc-Q6BARPPB.node +0 -0
  31. package/.corepack/v1/pnpm/10.30.3/dist/reflink.win32-x64-msvc-J2TZHRQI.node +0 -0
  32. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.bash +0 -31
  33. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.fish +0 -22
  34. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.ps1 +0 -193
  35. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.zsh +0 -27
  36. package/.corepack/v1/pnpm/10.30.3/dist/vendor/fastlist-0.3.0-x64.exe +0 -0
  37. package/.corepack/v1/pnpm/10.30.3/dist/vendor/fastlist-0.3.0-x86.exe +0 -0
  38. package/.corepack/v1/pnpm/10.30.3/dist/worker.js +0 -10119
  39. package/.corepack/v1/pnpm/10.30.3/package.json +0 -192
  40. package/.cursor/mcp.json +0 -7
  41. package/.github/workflows/ci.yml +0 -35
  42. package/.mcp.json +0 -7
  43. package/.openclaw/workspace-state.json +0 -4
  44. package/.pnpmrc.json +0 -1
  45. package/.wave-launch.sh +0 -7
  46. package/.workspace-marker +0 -1
  47. package/AGENTS.md +0 -78
  48. package/CHANGELOG.md +0 -177
  49. package/DESIGN.md +0 -929
  50. package/HEARTBEAT.md +0 -7
  51. package/IDENTITY.md +0 -23
  52. package/SOUL.md +0 -36
  53. package/TOOLS.md +0 -40
  54. package/USER.md +0 -17
  55. package/docs/README.md +0 -107
  56. package/docs/agents/wave-cont-eval-role.md +0 -36
  57. package/docs/agents/wave-cont-qa-role.md +0 -52
  58. package/docs/agents/wave-deploy-verifier-role.md +0 -34
  59. package/docs/agents/wave-design-role.md +0 -47
  60. package/docs/agents/wave-documentation-role.md +0 -34
  61. package/docs/agents/wave-infra-role.md +0 -34
  62. package/docs/agents/wave-integration-role.md +0 -37
  63. package/docs/agents/wave-launcher-role.md +0 -41
  64. package/docs/agents/wave-orchestrator-role.md +0 -52
  65. package/docs/agents/wave-planner-role.md +0 -39
  66. package/docs/agents/wave-security-role.md +0 -40
  67. package/docs/architecture/docx/README.md +0 -10
  68. package/docs/architecture/future/README.md +0 -8
  69. package/docs/architecture/ooxml-upgrade-analysis.md +0 -134
  70. package/docs/architecture/platform/shared-openxml-editor-platform.md +0 -153
  71. package/docs/architecture/xlsx/canonical-workbook-model-and-commands.md +0 -187
  72. package/docs/architecture/xlsx/spreadsheet-editor-frontend-architecture.md +0 -150
  73. package/docs/comment-redline-overview.md +0 -350
  74. package/docs/concepts/context7-vs-skills.md +0 -118
  75. package/docs/concepts/operating-modes.md +0 -91
  76. package/docs/concepts/runtime-agnostic-orchestration.md +0 -111
  77. package/docs/concepts/what-is-a-wave.md +0 -217
  78. package/docs/context7/bundles.json +0 -222
  79. package/docs/context7/planner-agent/README.md +0 -28
  80. package/docs/context7/planner-agent/manifest.json +0 -83
  81. package/docs/context7/planner-agent/papers/cooperbench-why-coding-agents-cannot-be-your-teammates-yet.md +0 -3283
  82. package/docs/context7/planner-agent/papers/dova-deliberation-first-multi-agent-orchestration-for-autonomous-research-automation.md +0 -1699
  83. package/docs/context7/planner-agent/papers/dpbench-large-language-models-struggle-with-simultaneous-coordination.md +0 -2251
  84. package/docs/context7/planner-agent/papers/incremental-planning-to-control-a-blackboard-based-problem-solver.md +0 -1729
  85. package/docs/context7/planner-agent/papers/silo-bench-a-scalable-environment-for-evaluating-distributed-coordination-in-multi-agent-llm-systems.md +0 -3747
  86. package/docs/context7/planner-agent/papers/todoevolve-learning-to-architect-agent-planning-systems.md +0 -1675
  87. package/docs/context7/planner-agent/papers/verified-multi-agent-orchestration-a-plan-execute-verify-replan-framework-for-complex-query-resolution.md +0 -1173
  88. package/docs/context7/planner-agent/papers/why-do-multi-agent-llm-systems-fail.md +0 -5211
  89. package/docs/context7/planner-agent/topics/planning-and-orchestration.md +0 -24
  90. package/docs/evals/arm-templates/README.md +0 -13
  91. package/docs/evals/arm-templates/full-wave.json +0 -15
  92. package/docs/evals/arm-templates/single-agent.json +0 -15
  93. package/docs/evals/benchmark-catalog.json +0 -670
  94. package/docs/evals/cases/README.md +0 -47
  95. package/docs/evals/cases/wave-blackboard-inbox-targeting.json +0 -73
  96. package/docs/evals/cases/wave-contradiction-conflict.json +0 -104
  97. package/docs/evals/cases/wave-expert-routing-preservation.json +0 -69
  98. package/docs/evals/cases/wave-hidden-profile-private-evidence.json +0 -81
  99. package/docs/evals/cases/wave-premature-closure-guard.json +0 -71
  100. package/docs/evals/cases/wave-silo-cross-agent-state.json +0 -77
  101. package/docs/evals/cases/wave-simultaneous-lockstep.json +0 -92
  102. package/docs/evals/external-benchmarks.json +0 -85
  103. package/docs/evals/external-command-config.sample.json +0 -9
  104. package/docs/evals/external-command-config.swe-bench-pro.json +0 -8
  105. package/docs/evals/pilots/README.md +0 -47
  106. package/docs/evals/pilots/swe-bench-pro-public-full-wave-review-10.json +0 -64
  107. package/docs/evals/pilots/swe-bench-pro-public-pilot.json +0 -111
  108. package/docs/evals/wave-benchmark-program.md +0 -302
  109. package/docs/guides/planner.md +0 -220
  110. package/docs/guides/recommendations-0.8.9.md +0 -133
  111. package/docs/guides/signal-wrappers.md +0 -165
  112. package/docs/guides/terminal-surfaces.md +0 -96
  113. package/docs/image copy.png +0 -0
  114. package/docs/image.png +0 -0
  115. package/docs/images/image.png +0 -0
  116. package/docs/legal-feedback-architecture.md +0 -498
  117. package/docs/plans/component-cutover-matrix.json +0 -1072
  118. package/docs/plans/component-cutover-matrix.md +0 -307
  119. package/docs/plans/context7-wave-orchestrator.md +0 -155
  120. package/docs/plans/current-state.md +0 -198
  121. package/docs/plans/docx/README.md +0 -9
  122. package/docs/plans/examples/wave-benchmark-improvement.md +0 -108
  123. package/docs/plans/examples/wave-example-live-proof.md +0 -435
  124. package/docs/plans/master-plan.md +0 -224
  125. package/docs/plans/migration.md +0 -538
  126. package/docs/plans/operations/README.md +0 -7
  127. package/docs/plans/operations/wave-10-word-certification.md +0 -87
  128. package/docs/plans/operations/wave-8-railway-staging.md +0 -153
  129. package/docs/plans/operations/wave-9-manual-certification.md +0 -73
  130. package/docs/plans/platform/README.md +0 -9
  131. package/docs/plans/reference/legal-checklist-coverage.md +0 -258
  132. package/docs/plans/wave-orchestrator.md +0 -423
  133. package/docs/plans/waves/README.md +0 -75
  134. package/docs/plans/waves/completed/wave-0.md +0 -195
  135. package/docs/plans/waves/completed/wave-1.md +0 -379
  136. package/docs/plans/waves/completed/wave-10.md +0 -670
  137. package/docs/plans/waves/completed/wave-11.md +0 -335
  138. package/docs/plans/waves/completed/wave-12.md +0 -417
  139. package/docs/plans/waves/completed/wave-13.md +0 -316
  140. package/docs/plans/waves/completed/wave-14.md +0 -319
  141. package/docs/plans/waves/completed/wave-15.md +0 -321
  142. package/docs/plans/waves/completed/wave-16.md +0 -316
  143. package/docs/plans/waves/completed/wave-17.md +0 -331
  144. package/docs/plans/waves/completed/wave-18.md +0 -328
  145. package/docs/plans/waves/completed/wave-2.md +0 -438
  146. package/docs/plans/waves/completed/wave-3.md +0 -435
  147. package/docs/plans/waves/completed/wave-4.md +0 -430
  148. package/docs/plans/waves/completed/wave-5.md +0 -430
  149. package/docs/plans/waves/completed/wave-6.md +0 -430
  150. package/docs/plans/waves/completed/wave-7.md +0 -526
  151. package/docs/plans/waves/completed/wave-8.md +0 -596
  152. package/docs/plans/waves/completed/wave-9.md +0 -552
  153. package/docs/plans/waves/deferred/README.md +0 -14
  154. package/docs/plans/waves/deferred/encrypted-intake-contracts.md +0 -282
  155. package/docs/plans/waves/deferred/legal-feedback-wave-expansion.md +0 -308
  156. package/docs/plans/waves/deferred/wave-encrypted-intake.md +0 -451
  157. package/docs/plans/waves/design/README.md +0 -5
  158. package/docs/plans/waves/design/wave-1-a1.md +0 -309
  159. package/docs/plans/waves/reviews/README.md +0 -5
  160. package/docs/plans/waves/reviews/wave-0-cont-qa.md +0 -151
  161. package/docs/plans/waves/reviews/wave-1-cont-qa.md +0 -46
  162. package/docs/plans/waves/reviews/wave-10-accessibility-and-design.md +0 -51
  163. package/docs/plans/waves/reviews/wave-10-cont-qa.md +0 -24
  164. package/docs/plans/waves/reviews/wave-10-dashboard-proof.md +0 -46
  165. package/docs/plans/waves/reviews/wave-10-performance-signoff.md +0 -55
  166. package/docs/plans/waves/reviews/wave-10-regression-proof.md +0 -23
  167. package/docs/plans/waves/reviews/wave-10-release-audit.md +0 -31
  168. package/docs/plans/waves/reviews/wave-10-service-proof.md +0 -83
  169. package/docs/plans/waves/reviews/wave-10-word-certification.md +0 -31
  170. package/docs/plans/waves/reviews/wave-18-ai-contract-closure.md +0 -277
  171. package/docs/plans/waves/reviews/wave-18-cont-qa.md +0 -255
  172. package/docs/plans/waves/reviews/wave-18-parity-proof.md +0 -271
  173. package/docs/plans/waves/reviews/wave-19-cont-qa.md +0 -59
  174. package/docs/plans/waves/reviews/wave-2-cont-qa.md +0 -72
  175. package/docs/plans/waves/reviews/wave-20-cont-qa.md +0 -60
  176. package/docs/plans/waves/reviews/wave-25-cont-qa.md +0 -48
  177. package/docs/plans/waves/reviews/wave-28-cont-qa.md +0 -46
  178. package/docs/plans/waves/reviews/wave-29-cont-qa.md +0 -53
  179. package/docs/plans/waves/reviews/wave-3-cont-qa.md +0 -53
  180. package/docs/plans/waves/reviews/wave-3-core-proof.md +0 -77
  181. package/docs/plans/waves/reviews/wave-3-validator-proof.md +0 -73
  182. package/docs/plans/waves/reviews/wave-32-cont-qa.md +0 -43
  183. package/docs/plans/waves/reviews/wave-33-cont-qa.md +0 -526
  184. package/docs/plans/waves/reviews/wave-34-cont-qa.md +0 -100
  185. package/docs/plans/waves/reviews/wave-35-cont-qa.md +0 -145
  186. package/docs/plans/waves/reviews/wave-4-cont-qa.md +0 -47
  187. package/docs/plans/waves/reviews/wave-4-structure-proof.md +0 -69
  188. package/docs/plans/waves/reviews/wave-5-comment-proof.md +0 -158
  189. package/docs/plans/waves/reviews/wave-5-cont-qa.md +0 -68
  190. package/docs/plans/waves/reviews/wave-6-cont-qa.md +0 -416
  191. package/docs/plans/waves/reviews/wave-6-redline-proof.md +0 -130
  192. package/docs/plans/waves/reviews/wave-7-cont-qa.md +0 -82
  193. package/docs/plans/waves/reviews/wave-7-ooxml-compliance.md +0 -85
  194. package/docs/plans/waves/reviews/wave-7-preservation-proof.md +0 -119
  195. package/docs/plans/waves/reviews/wave-7-trust-ux.md +0 -87
  196. package/docs/plans/waves/reviews/wave-8-accessibility-and-design.md +0 -128
  197. package/docs/plans/waves/reviews/wave-8-cont-qa.md +0 -92
  198. package/docs/plans/waves/reviews/wave-8-live-proof.md +0 -140
  199. package/docs/plans/waves/reviews/wave-8-security.md +0 -47
  200. package/docs/plans/waves/reviews/wave-9-editor-embedding.md +0 -39
  201. package/docs/plans/waves/reviews/wave-9-fixture-runner.md +0 -56
  202. package/docs/plans/waves/reviews/wave-9-live-proof.md +0 -105
  203. package/docs/plans/waves/reviews/wave-9-usability-and-performance.md +0 -152
  204. package/docs/plans/waves/specs/README.md +0 -5
  205. package/docs/plans/waves/specs/wave-1-component-boundaries.md +0 -322
  206. package/docs/plans/waves/specs/wave-1-ooxml-contracts.md +0 -323
  207. package/docs/plans/waves/specs/wave-1-review-and-ui-contracts.md +0 -339
  208. package/docs/plans/waves/specs/wave-1-runtime-contracts.md +0 -509
  209. package/docs/plans/waves/wave-19.md +0 -341
  210. package/docs/plans/waves/wave-20.md +0 -308
  211. package/docs/plans/waves/wave-21.md +0 -289
  212. package/docs/plans/waves/wave-22.md +0 -221
  213. package/docs/plans/waves/wave-23.md +0 -295
  214. package/docs/plans/waves/wave-24.md +0 -286
  215. package/docs/plans/waves/wave-25.md +0 -313
  216. package/docs/plans/waves/wave-26.md +0 -300
  217. package/docs/plans/waves/wave-27.md +0 -299
  218. package/docs/plans/waves/wave-28.md +0 -368
  219. package/docs/plans/waves/wave-29.md +0 -303
  220. package/docs/plans/waves/wave-30.md +0 -307
  221. package/docs/plans/waves/wave-31.md +0 -231
  222. package/docs/plans/waves/wave-32.md +0 -152
  223. package/docs/plans/waves/wave-33.md +0 -147
  224. package/docs/plans/waves/wave-34.md +0 -148
  225. package/docs/plans/waves/wave-35.md +0 -141
  226. package/docs/plans/waves/wave-36.md +0 -146
  227. package/docs/plans/xlsx/README.md +0 -14
  228. package/docs/plans/xlsx/xlsx-fixture-corpus-and-certification-plan.md +0 -126
  229. package/docs/reference/cli-reference.md +0 -600
  230. package/docs/reference/coordination-and-closure.md +0 -487
  231. package/docs/reference/deep-research-report (15).md +0 -25
  232. package/docs/reference/docx/README.md +0 -10
  233. package/docs/reference/legal-checklist.md +0 -445
  234. package/docs/reference/live-proof-waves.md +0 -199
  235. package/docs/reference/ooxml-compliance.md +0 -129
  236. package/docs/reference/ooxml-feature-parity-matrix.md +0 -172
  237. package/docs/reference/platform/shared-ooxml-platform-guidance.md +0 -77
  238. package/docs/reference/prototype-agent-prompt-legal-fidelity.md +0 -155
  239. package/docs/reference/public-api.md +0 -456
  240. package/docs/reference/repository-guidance.md +0 -58
  241. package/docs/reference/runtime-config/README.md +0 -182
  242. package/docs/reference/runtime-config/claude.md +0 -110
  243. package/docs/reference/runtime-config/codex.md +0 -82
  244. package/docs/reference/runtime-config/opencode.md +0 -93
  245. package/docs/reference/sample-waves.md +0 -105
  246. package/docs/reference/skills.md +0 -237
  247. package/docs/reference/templates/AGENTS.md +0 -78
  248. package/docs/reference/templates/HEARTBEAT.md +0 -7
  249. package/docs/reference/templates/IDENTITY.md +0 -23
  250. package/docs/reference/templates/SOUL.md +0 -36
  251. package/docs/reference/templates/TOOLS.md +0 -40
  252. package/docs/reference/templates/USER.md +0 -17
  253. package/docs/reference/wave-control.md +0 -184
  254. package/docs/reference/wave-planning-lessons.md +0 -167
  255. package/docs/reference/word-review-editor-frontend-architecture.md +0 -479
  256. package/docs/reference/word-review-editor-ux-guide.md +0 -253
  257. package/docs/reference/xlsx/xlsx-ooxml-compliance.md +0 -137
  258. package/docs/research/agent-context-sources.md +0 -178
  259. package/docs/research/coordination-failure-review.md +0 -290
  260. package/docs/research/docx-react-component/Canonical Document Schema Specification for a React-based Word-compatible Editor.md +0 -2317
  261. package/docs/research/docx-react-component/Feature Compatibility Matrix for a React Word Compatible Legal Editor v1.md +0 -219
  262. package/docs/research/docx-react-component/React Component Architecture and Front-End Structure Specification for a Word-Compatible Legal Review Editor.md +0 -1112
  263. package/docs/research/docx-react-component/document_compatibility_and_testing_spec.md +0 -751
  264. package/docs/research/xlsx/raw/README.md +0 -13
  265. package/docs/roadmap.md +0 -174
  266. package/docs/superpowers/plans/2026-03-28-harness-control-bar.md +0 -677
  267. package/docs/superpowers/specs/2026-03-28-harness-control-bar-design.md +0 -274
  268. package/docs/xlsx-react/README.md +0 -38
  269. package/docs/xlsx-react/agent-llm-interaction-layer-docx-xlsx.md +0 -621
  270. package/docs/xlsx-react/canonical-workbook-model-and-commands.md +0 -948
  271. package/docs/xlsx-react/shared-openxml-editor-platform-docx-xlsx.md +0 -228
  272. package/docs/xlsx-react/spreadsheet-editor-component-architecture.md +0 -809
  273. package/docs/xlsx-react/spreadsheet-editor-frontend-architecture.md +0 -537
  274. package/docs/xlsx-react/spreadsheet-editor-ux-guide.md +0 -520
  275. package/docs/xlsx-react/xlsx-editor-research-pack.md +0 -871
  276. package/docs/xlsx-react/xlsx-fixture-corpus-and-certification-plan.md +0 -436
  277. package/docs/xlsx-react/xlsx-ooxml-compliance.md +0 -320
  278. package/examples/README.md +0 -16
  279. package/memory/MEMORY.md +0 -24
  280. package/pnpm-workspace.yaml +0 -4
  281. package/scripts/check-no-authored-js.sh +0 -13
  282. package/scripts/context7-api-check.sh +0 -65
  283. package/scripts/context7-export-env.sh +0 -42
  284. package/scripts/run-context7-mcp.sh +0 -8
  285. package/scripts/run-workspace-tests.sh +0 -15
  286. package/scripts/start-wave-10-local.sh +0 -189
  287. package/scripts/wave-agent-attach.sh +0 -47
  288. package/scripts/wave-auto-answer.sh +0 -118
  289. package/scripts/wave-dashboard-attach.sh +0 -13
  290. package/scripts/wave-launch.sh +0 -273
  291. package/scripts/wave-overnight-supervisor.sh +0 -145
  292. package/scripts/wave-status.sh +0 -379
  293. package/scripts/wave-watch.sh +0 -231
  294. package/services/README.md +0 -17
  295. package/services/openxml-validator/Dockerfile +0 -29
  296. package/services/openxml-validator/OpenXmlValidator.Api.csproj +0 -12
  297. package/services/openxml-validator/Program.cs +0 -436
  298. package/services/openxml-validator/README.md +0 -152
  299. package/services/openxml-validator/railway.json +0 -16
  300. package/services/react-word-editor/.tmp-a4/src/api/public-types.ts +0 -318
  301. package/services/react-word-editor/.tmp-a4/src/ui/WordReviewEditor.tsx +0 -1302
  302. package/services/react-word-editor/.tmp-a4/src/ui/editor-surface/editor-surface.tsx +0 -546
  303. package/services/react-word-editor/.tmp-a4/test/ui/word-review-editor.test.tsx +0 -146
  304. package/services/react-word-editor/.tmp-a4-build/src/api/public-types.js +0 -2
  305. package/services/react-word-editor/.tmp-a4-build/src/ui/WordReviewEditor.js +0 -818
  306. package/services/react-word-editor/.tmp-a4-build/src/ui/editor-surface/editor-surface.js +0 -229
  307. package/services/react-word-editor/.tmp-a4-build/test/ui/word-review-editor.test.js +0 -121
  308. package/services/react-word-editor/.tmp-wave-4-a3-tsconfig.json +0 -21
  309. package/services/react-word-editor/.tmp-wave-4-a3-tsconfig.tsbuildinfo +0 -1
  310. package/services/react-word-editor/Dockerfile +0 -26
  311. package/services/react-word-editor/README.md +0 -254
  312. package/services/react-word-editor/app/api/certification/route.ts +0 -79
  313. package/services/react-word-editor/app/api/demo-sessions/route.ts +0 -109
  314. package/services/react-word-editor/app/api/deploy-health/route.ts +0 -23
  315. package/services/react-word-editor/app/api/exports/[exportId]/route.ts +0 -34
  316. package/services/react-word-editor/app/api/exports/route.ts +0 -81
  317. package/services/react-word-editor/app/api/fixtures/[fixtureId]/run/route.ts +0 -100
  318. package/services/react-word-editor/app/api/health/route.ts +0 -70
  319. package/services/react-word-editor/app/api/runs/[runId]/route.ts +0 -36
  320. package/services/react-word-editor/app/api/scenarios/[scenarioId]/run/route.ts +0 -85
  321. package/services/react-word-editor/app/api/sessions/[sessionId]/route.ts +0 -199
  322. package/services/react-word-editor/app/api/sessions/[sessionId]/source/route.ts +0 -45
  323. package/services/react-word-editor/app/api/uploads/route.ts +0 -70
  324. package/services/react-word-editor/app/api/validate/route.ts +0 -310
  325. package/services/react-word-editor/app/certification/[runId]/page.tsx +0 -14
  326. package/services/react-word-editor/app/certification/page.tsx +0 -32
  327. package/services/react-word-editor/app/dashboard/page.tsx +0 -7
  328. package/services/react-word-editor/app/demo/page.tsx +0 -30
  329. package/services/react-word-editor/app/demo/prototype-client.tsx +0 -1080
  330. package/services/react-word-editor/app/editor/[sessionId]/page.tsx +0 -33
  331. package/services/react-word-editor/app/fixtures/page.tsx +0 -7
  332. package/services/react-word-editor/app/globals.css +0 -121
  333. package/services/react-word-editor/app/layout.tsx +0 -32
  334. package/services/react-word-editor/app/page.tsx +0 -30
  335. package/services/react-word-editor/app/runs/[runId]/page.tsx +0 -34
  336. package/services/react-word-editor/app/wave-10-word-review/page.tsx +0 -7
  337. package/services/react-word-editor/components/harness-control-bar.tsx +0 -289
  338. package/services/react-word-editor/components/harness-editor-session-client.tsx +0 -1214
  339. package/services/react-word-editor/components/harness-workspace-page.tsx +0 -715
  340. package/services/react-word-editor/components/reduced-motion-toggle.tsx +0 -79
  341. package/services/react-word-editor/components/workspace-certification-panel.tsx +0 -307
  342. package/services/react-word-editor/lib/certification-bundle.ts +0 -796
  343. package/services/react-word-editor/lib/certification-store.ts +0 -661
  344. package/services/react-word-editor/lib/demo-fixtures.test.mjs +0 -195
  345. package/services/react-word-editor/lib/demo-fixtures.ts +0 -1519
  346. package/services/react-word-editor/lib/editor-session-summary.test.mjs +0 -68
  347. package/services/react-word-editor/lib/editor-session-summary.ts +0 -14
  348. package/services/react-word-editor/lib/editor-session.ts +0 -228
  349. package/services/react-word-editor/lib/exports-route.test.mjs +0 -32
  350. package/services/react-word-editor/lib/harness-client.ts +0 -347
  351. package/services/react-word-editor/lib/harness-config.json +0 -30
  352. package/services/react-word-editor/lib/harness-config.test.mjs +0 -31
  353. package/services/react-word-editor/lib/harness-config.ts +0 -21
  354. package/services/react-word-editor/lib/harness-editor-datastore.test.mjs +0 -220
  355. package/services/react-word-editor/lib/harness-editor-datastore.ts +0 -161
  356. package/services/react-word-editor/lib/private-mode.test.mjs +0 -42
  357. package/services/react-word-editor/lib/private-mode.ts +0 -61
  358. package/services/react-word-editor/lib/regression-report.test.mjs +0 -352
  359. package/services/react-word-editor/lib/regression-report.ts +0 -896
  360. package/services/react-word-editor/lib/run-artifacts.ts +0 -934
  361. package/services/react-word-editor/lib/run-history.ts +0 -755
  362. package/services/react-word-editor/lib/scenario-artifacts.test.mjs +0 -41
  363. package/services/react-word-editor/lib/scenario-artifacts.ts +0 -44
  364. package/services/react-word-editor/lib/storage.ts +0 -953
  365. package/services/react-word-editor/lib/validator-client.test.mjs +0 -54
  366. package/services/react-word-editor/lib/validator-client.ts +0 -95
  367. package/services/react-word-editor/lib/workspace-navigation.ts +0 -79
  368. package/services/react-word-editor/middleware.ts +0 -35
  369. package/services/react-word-editor/next-env.d.ts +0 -6
  370. package/services/react-word-editor/next.config.mjs +0 -15
  371. package/services/react-word-editor/package.json +0 -38
  372. package/services/react-word-editor/postcss.config.mjs +0 -8
  373. package/services/react-word-editor/railway.json +0 -21
  374. package/services/react-word-editor/scripts/wave-10-certification.mjs +0 -101
  375. package/services/react-word-editor/scripts/wave-9-live-usability-pilot.mjs +0 -911
  376. package/services/react-word-editor/tsconfig.json +0 -39
  377. package/services/react-word-editor/tsconfig.tsbuildinfo +0 -1
  378. package/skills/README.md +0 -48
  379. package/skills/domain-docx-compatibility/SKILL.md +0 -44
  380. package/skills/domain-docx-compatibility/skill.json +0 -19
  381. package/skills/domain-editor-architecture/SKILL.md +0 -49
  382. package/skills/domain-editor-architecture/skill.json +0 -19
  383. package/skills/domain-legal-review/SKILL.md +0 -39
  384. package/skills/domain-legal-review/skill.json +0 -19
  385. package/skills/provider-aws/SKILL.md +0 -117
  386. package/skills/provider-aws/adapters/claude.md +0 -1
  387. package/skills/provider-aws/adapters/codex.md +0 -1
  388. package/skills/provider-aws/references/service-verification.md +0 -39
  389. package/skills/provider-aws/skill.json +0 -54
  390. package/skills/provider-custom-deploy/SKILL.md +0 -64
  391. package/skills/provider-custom-deploy/skill.json +0 -50
  392. package/skills/provider-docker-compose/SKILL.md +0 -96
  393. package/skills/provider-docker-compose/adapters/local.md +0 -1
  394. package/skills/provider-docker-compose/skill.json +0 -53
  395. package/skills/provider-github-release/SKILL.md +0 -121
  396. package/skills/provider-github-release/adapters/claude.md +0 -1
  397. package/skills/provider-github-release/adapters/codex.md +0 -1
  398. package/skills/provider-github-release/skill.json +0 -55
  399. package/skills/provider-kubernetes/SKILL.md +0 -143
  400. package/skills/provider-kubernetes/adapters/claude.md +0 -1
  401. package/skills/provider-kubernetes/adapters/codex.md +0 -1
  402. package/skills/provider-kubernetes/references/kubectl-patterns.md +0 -58
  403. package/skills/provider-kubernetes/skill.json +0 -52
  404. package/skills/provider-railway/SKILL.md +0 -123
  405. package/skills/provider-railway/adapters/claude.md +0 -1
  406. package/skills/provider-railway/adapters/codex.md +0 -1
  407. package/skills/provider-railway/adapters/local.md +0 -1
  408. package/skills/provider-railway/adapters/opencode.md +0 -1
  409. package/skills/provider-railway/references/verification-commands.md +0 -39
  410. package/skills/provider-railway/skill.json +0 -71
  411. package/skills/provider-ssh-manual/SKILL.md +0 -97
  412. package/skills/provider-ssh-manual/skill.json +0 -54
  413. package/skills/repo-coding-rules/SKILL.md +0 -55
  414. package/skills/repo-coding-rules/skill.json +0 -34
  415. package/skills/role-cont-eval/SKILL.md +0 -91
  416. package/skills/role-cont-eval/adapters/codex.md +0 -1
  417. package/skills/role-cont-eval/skill.json +0 -36
  418. package/skills/role-cont-qa/SKILL.md +0 -100
  419. package/skills/role-cont-qa/adapters/claude.md +0 -1
  420. package/skills/role-cont-qa/skill.json +0 -36
  421. package/skills/role-deploy/SKILL.md +0 -97
  422. package/skills/role-deploy/skill.json +0 -36
  423. package/skills/role-design/SKILL.md +0 -50
  424. package/skills/role-design/skill.json +0 -36
  425. package/skills/role-documentation/SKILL.md +0 -76
  426. package/skills/role-documentation/skill.json +0 -36
  427. package/skills/role-implementation/SKILL.md +0 -45
  428. package/skills/role-implementation/skill.json +0 -36
  429. package/skills/role-infra/SKILL.md +0 -81
  430. package/skills/role-infra/skill.json +0 -36
  431. package/skills/role-integration/SKILL.md +0 -91
  432. package/skills/role-integration/skill.json +0 -36
  433. package/skills/role-planner/SKILL.md +0 -39
  434. package/skills/role-planner/skill.json +0 -21
  435. package/skills/role-research/SKILL.md +0 -65
  436. package/skills/role-research/skill.json +0 -36
  437. package/skills/role-security/SKILL.md +0 -60
  438. package/skills/role-security/skill.json +0 -36
  439. package/skills/runtime-claude/SKILL.md +0 -66
  440. package/skills/runtime-claude/skill.json +0 -36
  441. package/skills/runtime-codex/SKILL.md +0 -58
  442. package/skills/runtime-codex/skill.json +0 -36
  443. package/skills/runtime-local/SKILL.md +0 -46
  444. package/skills/runtime-local/skill.json +0 -36
  445. package/skills/runtime-opencode/SKILL.md +0 -58
  446. package/skills/runtime-opencode/skill.json +0 -36
  447. package/skills/signal-hygiene/SKILL.md +0 -51
  448. package/skills/signal-hygiene/skill.json +0 -20
  449. package/skills/tui-design/SKILL.md +0 -77
  450. package/skills/tui-design/references/tui-design.md +0 -259
  451. package/skills/tui-design/skill.json +0 -36
  452. package/skills/wave-core/SKILL.md +0 -141
  453. package/skills/wave-core/references/marker-syntax.md +0 -70
  454. package/skills/wave-core/skill.json +0 -35
  455. package/test/README.md +0 -16
  456. package/test/core/formatting-commands.test.ts +0 -285
  457. package/test/core/image-commands.test.ts +0 -298
  458. package/test/core/mapping.test.ts +0 -186
  459. package/test/core/text-commands.test.ts +0 -176
  460. package/test/fixtures/docx/F01-basic-contract.docx +0 -0
  461. package/test/fixtures/docx/F01-basic-contract.md +0 -33
  462. package/test/fixtures/docx/F02-headings-styles.docx +0 -0
  463. package/test/fixtures/docx/F02-headings-styles.md +0 -33
  464. package/test/fixtures/docx/F03-legal-outline-numbering.docx +0 -0
  465. package/test/fixtures/docx/F03-legal-outline-numbering.md +0 -34
  466. package/test/fixtures/docx/F04-restart-numbering-schedules.docx +0 -0
  467. package/test/fixtures/docx/F04-restart-numbering-schedules.md +0 -33
  468. package/test/fixtures/docx/F05-table-heavy-agreement.docx +0 -0
  469. package/test/fixtures/docx/F05-table-heavy-agreement.md +0 -34
  470. package/test/fixtures/docx/F06-merged-cells-signature-table.docx +0 -0
  471. package/test/fixtures/docx/F06-merged-cells-signature-table.md +0 -34
  472. package/test/fixtures/docx/F07-inline-images-exhibit.docx +0 -0
  473. package/test/fixtures/docx/F07-inline-images-exhibit.md +0 -34
  474. package/test/fixtures/docx/F08-hyperlinks.docx +0 -0
  475. package/test/fixtures/docx/F08-hyperlinks.md +0 -33
  476. package/test/fixtures/docx/F09-comments-single-paragraph.docx +0 -0
  477. package/test/fixtures/docx/F09-comments-single-paragraph.md +0 -33
  478. package/test/fixtures/docx/F10-threaded-comments-resolve.docx +0 -0
  479. package/test/fixtures/docx/F10-threaded-comments-resolve.md +0 -33
  480. package/test/fixtures/docx/F11-redlines-basic.docx +0 -0
  481. package/test/fixtures/docx/F11-redlines-basic.md +0 -33
  482. package/test/fixtures/docx/F12-redlines-paragraph-joins-splits.docx +0 -0
  483. package/test/fixtures/docx/F12-redlines-paragraph-joins-splits.md +0 -33
  484. package/test/fixtures/docx/F13-comments-on-deleted-text.docx +0 -0
  485. package/test/fixtures/docx/F13-comments-on-deleted-text.md +0 -33
  486. package/test/fixtures/docx/F14-revisions-in-tables-and-lists.docx +0 -0
  487. package/test/fixtures/docx/F14-revisions-in-tables-and-lists.md +0 -33
  488. package/test/fixtures/docx/F15-sections-headers-footers.docx +0 -0
  489. package/test/fixtures/docx/F15-sections-headers-footers.md +0 -33
  490. package/test/fixtures/docx/F16-footnotes-endnotes.docx +0 -0
  491. package/test/fixtures/docx/F16-footnotes-endnotes.md +0 -33
  492. package/test/fixtures/docx/F17-fields-and-toc.docx +0 -0
  493. package/test/fixtures/docx/F17-fields-and-toc.md +0 -33
  494. package/test/fixtures/docx/F18-content-controls-template.docx +0 -0
  495. package/test/fixtures/docx/F18-content-controls-template.md +0 -33
  496. package/test/fixtures/docx/F19-custom-xml-doc-assembly.docx +0 -0
  497. package/test/fixtures/docx/F19-custom-xml-doc-assembly.md +0 -35
  498. package/test/fixtures/docx/F20-unknown-ooxml-and-alternatecontent.docx +0 -0
  499. package/test/fixtures/docx/F20-unknown-ooxml-and-alternatecontent.md +0 -33
  500. package/test/fixtures/docx/F21-malformed-broken-docx.docx +0 -0
  501. package/test/fixtures/docx/F21-malformed-broken-docx.md +0 -33
  502. package/test/fixtures/docx/README.md +0 -74
  503. package/test/fixtures/docx/certification-manifest.json +0 -104
  504. package/test/fixtures/docx/fixtures.manifest.json +0 -196
  505. package/test/fixtures/encrypted-docx/README.md +0 -27
  506. package/test/fixtures/encrypted-docx/certification-manifest.json +0 -9
  507. package/test/fixtures/encrypted-docx/fixtures.manifest.json +0 -47
  508. package/test/fixtures/scenarios/docx/README.md +0 -25
  509. package/test/fixtures/scenarios/docx/S01-sow-template.docx +0 -0
  510. package/test/fixtures/scenarios/docx/S01-sow-template.md +0 -30
  511. package/test/fixtures/scenarios/docx/S02-bw-partner-user-licence-agreement-redlines.docx +0 -0
  512. package/test/fixtures/scenarios/docx/S02-bw-partner-user-licence-agreement-redlines.md +0 -32
  513. package/test/fixtures/scenarios/docx/scenario-manifest.json +0 -53
  514. package/test/formats/xlsx/io/xlsx-import.test.ts +0 -766
  515. package/test/formats/xlsx/model/workbook.test.ts +0 -669
  516. package/test/helpers/dom-setup.ts +0 -124
  517. package/test/io/comment-roundtrip.test.ts +0 -272
  518. package/test/io/complex-content-roundtrip.test.ts +0 -632
  519. package/test/io/docx-compatibility-regression.test.ts +0 -199
  520. package/test/io/docx-session.test.ts +0 -1495
  521. package/test/io/footnotes-roundtrip.test.ts +0 -318
  522. package/test/io/headers-footers-roundtrip.test.ts +0 -547
  523. package/test/io/numbering-roundtrip.test.ts +0 -234
  524. package/test/io/package-reader.test.ts +0 -199
  525. package/test/io/paragraph-properties-roundtrip.test.ts +0 -129
  526. package/test/io/preserved-package-roundtrip.test.ts +0 -365
  527. package/test/io/property-completeness.test.ts +0 -292
  528. package/test/io/revision-roundtrip.test.ts +0 -347
  529. package/test/io/structural-blocks.test.ts +0 -202
  530. package/test/io/table-media-roundtrip.test.ts +0 -448
  531. package/test/io/table-properties-roundtrip.test.ts +0 -569
  532. package/test/io/table-roundtrip.test.ts +0 -302
  533. package/test/io/text-roundtrip.test.ts +0 -344
  534. package/test/model/canonical-document.test.ts +0 -285
  535. package/test/preservation/opaque-fragment-store.test.ts +0 -121
  536. package/test/preservation/package-preservation.test.ts +0 -395
  537. package/test/preservation/store.test.ts +0 -84
  538. package/test/review/comment-remapping.test.ts +0 -220
  539. package/test/review/comment-store.test.ts +0 -180
  540. package/test/review/move-revisions.test.ts +0 -143
  541. package/test/review/property-change-revisions.test.ts +0 -225
  542. package/test/review/revision-actions.test.ts +0 -330
  543. package/test/review/revision-store.test.ts +0 -193
  544. package/test/runtime/session-capabilities.test.ts +0 -260
  545. package/test/runtime/table-commands.test.ts +0 -356
  546. package/test/runtime/table-schema.test.ts +0 -221
  547. package/test/runtime/tracked-changes-toggle.test.ts +0 -107
  548. package/test/ui/comment-review-surface.test.tsx +0 -114
  549. package/test/ui/reduced-motion-toggle.test.tsx +0 -137
  550. package/test/ui/word-review-editor.imported-scenarios.test.tsx +0 -169
  551. package/test/ui/word-review-editor.interaction.test.tsx +0 -1198
  552. package/test/ui/word-review-editor.test.js +0 -188
  553. package/test/ui/word-review-editor.test.tsx +0 -280
  554. package/test/ui-tailwind/search-plugin.test.ts +0 -286
  555. package/test/validation/compatibility-engine.test.ts +0 -336
  556. package/test/validation/compatibility-report.test.ts +0 -189
  557. package/test/validation/low-priority-word-surfaces.test.ts +0 -282
  558. package/test/validation/malformed-doc.test.ts +0 -113
  559. package/test-results/.last-run.json +0 -4
  560. package/wave.config.json +0 -406
@@ -1,282 +0,0 @@
1
- # Deferred Wave - Encrypted Intake Contracts
2
-
3
- ## Purpose
4
-
5
- This packet preserves the previously proposed component-owned encrypted-intake contract as a deferred option.
6
-
7
- It is not part of the active Wave 8 through Wave 10 plan because encrypted handling is currently upstream-owned.
8
-
9
- It does not replace the Wave 1 contract set. It extends it with a narrow later-wave packet because password-to-open `.docx` handling introduces:
10
-
11
- - pre-import container routing
12
- - sensitive password handling
13
- - runtime-owned challenge state
14
- - explicit export warnings for decrypted sessions
15
-
16
- ## Governing Inputs
17
-
18
- - [README.md](/home/coder/docx-react-component/README.md)
19
- - [docs/reference/repository-guidance.md](/home/coder/docx-react-component/docs/reference/repository-guidance.md)
20
- - [docs/reference/public-api.md](/home/coder/docx-react-component/docs/reference/public-api.md)
21
- - [docs/reference/ooxml-compliance.md](/home/coder/docx-react-component/docs/reference/ooxml-compliance.md)
22
- - [docs/plans/master-plan.md](/home/coder/docx-react-component/docs/plans/master-plan.md)
23
- - [docs/reference/deep-research-report (15).md](/home/coder/docx-react-component/docs/reference/deep-research-report%20%2815%29.md)
24
-
25
- ## Contract Scope
26
-
27
- This packet governs only password-to-open OOXML intake.
28
-
29
- It covers:
30
-
31
- - encrypted-container detection before OOXML parse
32
- - decrypt-to-OPC routing for supported ECMA-376 Office encryption
33
- - runtime-owned password challenge state and UI projection
34
- - export posture for documents opened through decrypt
35
- - dedicated encrypted-fixture proof requirements
36
-
37
- It does not change the core OOXML feature taxonomy. After a successful decrypt, the existing import, preservation, review, export, and validation contracts apply unchanged.
38
-
39
- ## Terminology
40
-
41
- - `password-to-open` means an encrypted Office container that must be decrypted before any OOXML part can be read.
42
- - `document protection` or `restrict editing` remains in-package OOXML policy markup and is not part of this intake contract.
43
- - `IRM` and policy-bound encryption remain out of scope for v1.
44
-
45
- ## Non-Negotiable Rules
46
-
47
- - Encrypted detection happens before any normal OPC or OOXML importer logic.
48
- - The normal OOXML importer must never receive encrypted bytes.
49
- - Decrypt must complete before canonical import begins.
50
- - Passwords, derived keys, and decrypted raw package bytes must never enter canonical state, persisted snapshots, datastore adapters, or host-visible diagnostics.
51
- - Unsupported encryption must fail explicitly; do not downgrade to empty or partial import.
52
- - Export after decrypt must not silently imply re-encryption.
53
-
54
- ## Public Surface Contract
55
-
56
- The repo keeps one public component surface: `WordReviewEditor`.
57
-
58
- The encrypted-input contract is:
59
-
60
- - `initialDocx` and `externalDocSource.kind = "docx"` may contain either:
61
- - normal OPC `.docx` bytes
62
- - supported password-to-open OOXML Office containers
63
- - no standalone `importDocument()` API is added in v1
64
- - no host-supplied password callback is required in the baseline Wave 8 surface
65
-
66
- Wave 8 baseline uses component-managed password UX inside the editor shell.
67
-
68
- Future host-managed continuation is allowed only through an explicit public-API revision after pilot evidence proves the need.
69
-
70
- ## Internal Ownership
71
-
72
- ### `src/io`
73
-
74
- Owns:
75
-
76
- - source-byte normalization helpers used by the decrypt route
77
- - container sniffing
78
- - encrypted-container detection
79
- - decrypt-to-OPC routing
80
- - MS-OFFCRYPTO parsing and decrypt helpers
81
-
82
- Must not:
83
-
84
- - mutate canonical state directly
85
- - render UI
86
-
87
- ### `src/runtime`
88
-
89
- Owns:
90
-
91
- - import state machine
92
- - source-replacement lifecycle
93
- - redacted status and warning projection
94
- - import cancellation and cleanup orchestration
95
-
96
- Must not:
97
-
98
- - persist password state
99
- - bypass the `src/io` decrypt route
100
-
101
- ### `src/ui`
102
-
103
- Owns:
104
-
105
- - password prompt UI
106
- - import progress UI
107
- - export warning interstitial for decrypted sessions
108
-
109
- Must not:
110
-
111
- - parse encrypted containers
112
- - hold authoritative password state in React-owned snapshots
113
-
114
- ### `src/validation`
115
-
116
- Owns:
117
-
118
- - compatibility and export-risk reporting after canonical import
119
- - sensitive-error redaction helpers for surfaced diagnostics
120
-
121
- Must not:
122
-
123
- - become the primary decrypt or package transformation engine
124
-
125
- ## Container Routing Contract
126
-
127
- The intake order is frozen:
128
-
129
- 1. normalize source bytes
130
- 2. enforce source-size limits
131
- 3. sniff container kind
132
- 4. route:
133
- - `opc_zip` -> normal OOXML import
134
- - `encrypted_office` -> password challenge then decrypt
135
- - anything else -> fail safely
136
- 5. if decrypt succeeds, validate decrypted bytes as OPC
137
- 6. only then run the existing OOXML importer
138
-
139
- Required route outcomes:
140
-
141
- - `opc_zip`
142
- - `encrypted_office`
143
- - `unsupported_file_type`
144
- - `invalid_container`
145
-
146
- ## Supported Encryption Scope
147
-
148
- Wave 8 v1 support is limited to:
149
-
150
- - ECMA-376 Standard encryption
151
- - ECMA-376 Agile encryption
152
-
153
- Wave 8 v1 explicitly excludes:
154
-
155
- - legacy RC4 Office encryption
156
- - extensible providers
157
- - IRM or policy-bound encryption
158
- - binary `.doc`
159
- - re-encrypt-on-export
160
-
161
- Unsupported schemes must fail with explicit user-facing and machine-readable error codes.
162
-
163
- ## Runtime State Contract
164
-
165
- The import state machine is runtime-owned and redacted before React sees it.
166
-
167
- Minimum states:
168
-
169
- - `idle`
170
- - `reading_source`
171
- - `sniffing_container`
172
- - `password_required`
173
- - `decrypting`
174
- - `importing_ooxml`
175
- - `ready`
176
- - `failed`
177
- - `cancelled`
178
-
179
- Rules:
180
-
181
- - React may render a projection of this state, not own the authoritative password flow
182
- - starting a new source load aborts the in-flight import job and clears transient secrets
183
- - failure and cancel paths clear transient decrypted buffers and password references
184
-
185
- ## Security And Cleanup Contract
186
-
187
- - Passwords must not be stored in canonical state, persisted snapshots, local storage, or logs.
188
- - Passwords must not be emitted through telemetry, `EditorError.details`, or exported diagnostics.
189
- - Decrypted buffers are transient and should be actively cleared when practical after import or failure.
190
- - Progress and failure reporting must stay secret-free.
191
- - Wave 8 must prove that encrypted bytes do not reach the normal OOXML importer.
192
-
193
- ## Export Contract For Decrypted Sessions
194
-
195
- Wave 8 freezes this v1 behavior:
196
-
197
- - documents opened through decrypt export as normal unencrypted `.docx`
198
- - the first export per session must warn explicitly that the output will not be encrypted
199
- - cancelling the warning must cancel export
200
- - automatic re-encryption is not part of v1
201
-
202
- If a future host post-process hook is added, it must be explicit and documented as a host-side responsibility rather than editor-owned encryption.
203
-
204
- ## Error Contract
205
-
206
- The encrypted-intake slice adds or clarifies these error codes:
207
-
208
- - `password_required`
209
- - `wrong_password`
210
- - `unsupported_encryption`
211
- - `malformed_encrypted_container`
212
- - `decrypt_engine_failure`
213
- - `invalid_decrypted_payload`
214
- - `unsupported_file_type`
215
- - `invalid_container`
216
- - `file_too_large`
217
- - `cancelled`
218
-
219
- Rules:
220
-
221
- - wrong password is retryable
222
- - unsupported encryption is fatal
223
- - malformed encrypted container is fatal
224
- - decrypted bytes that are not valid OPC fail before canonical import
225
-
226
- ## Fixture Program
227
-
228
- Encrypted intake uses a separate durable corpus under `test/fixtures/encrypted-docx/`.
229
-
230
- Frozen fixture IDs:
231
-
232
- - `E01` Agile encrypted basic contract
233
- - `E02` Standard encrypted basic contract
234
- - `E03` Wrong-password retry contract
235
- - `E04` Unsupported legacy encryption
236
- - `E05` Malformed encrypted container
237
- - `E06` Encrypted comments-and-redlines contract
238
- - `E07` Encrypted preserve-only package contract
239
- - `E08` Source-size and decrypt-limit stress contract
240
-
241
- This corpus supplements `F01` through `F21`; it does not renumber them.
242
-
243
- ## Proof Program By Wave
244
-
245
- ### Wave 8
246
-
247
- - baseline-prove local encrypted intake
248
- - prove sniff -> decrypt -> import routing on `E01` through `E08`
249
- - prove the export warning for decrypted sessions
250
- - prove cleanup, redaction, and wrong-password retry handling
251
-
252
- ### Wave 9
253
-
254
- - keep the harness baseline honest about encrypted uploads and secret handling
255
- - do not overclaim pilot-live encrypted editor behavior yet
256
-
257
- ### Wave 10
258
-
259
- - pilot the encrypted editor loop on Railway with selected encrypted fixtures
260
- - capture live artifacts for at least one Agile and one Standard encrypted fixture
261
-
262
- ### Wave 11
263
-
264
- - include encrypted fixtures in the final QA bundle
265
- - capture final Word reopen notes for exported decrypted sessions
266
-
267
- ## Interface Impacts
268
-
269
- | Surface | Owner | Contract impact |
270
- | --- | --- | --- |
271
- | `docs/reference/public-api.md` | A9 | Keep encrypted intake on the existing component load surface; do not introduce a standalone import API in v1. |
272
- | `docs/reference/ooxml-compliance.md` | A9 | Clarify that encrypted files are an intake mode, not an OOXML feature-class row. |
273
- | `test/fixtures/encrypted-docx/README.md` | A5 | Freeze the encrypted-fixture registry and wave ownership. |
274
- | `docs/plans/component-cutover-matrix.*` | A9 | Track the new encrypted-intake component separately from normal OOXML feature breadth. |
275
-
276
- ## Frozen Non-Goals
277
-
278
- - re-encrypt-on-export in v1
279
- - IRM or enterprise key-management integration
280
- - background decrypt via Web Workers
281
- - partial open without full decrypt
282
- - bypassing document-protection policy markup
@@ -1,308 +0,0 @@
1
- # Deferred Wave - Legal Fidelity Expansion
2
-
3
- Historical note: this packet was later promoted into [docs/plans/waves/wave-12.md](/home/coder/docx-react-component/docs/plans/waves/wave-12.md). Keep this file as the precursor rationale and gap inventory; the authored Wave 12 doc is now the active plan.
4
-
5
- **Commit message**: `Build: add post-v1 legal fidelity expansion packet`
6
-
7
- ## Component promotions
8
-
9
- - canonical-document-model: baseline-proved
10
- - command-and-transaction-runtime: baseline-proved
11
- - comments-and-anchor-mapping: baseline-proved
12
- - tracked-changes-and-review-actions: baseline-proved
13
- - docx-import-and-normalization: baseline-proved
14
- - docx-export-and-serialization: baseline-proved
15
- - unsupported-ooxml-preservation: baseline-proved
16
- - compatibility-and-word-validation: baseline-proved
17
- - react-editor-ui: baseline-proved
18
-
19
- ## Scope note
20
-
21
- This packet is not part of the active numbered wave sequence. It is the historical pre-promotion packet that fed the authored Wave 12 plan.
22
-
23
- It preserves a post-v1 architecture expansion driven by legal-review feedback and
24
- should only be promoted after Wave 11 closes and the current v1 surface is stable.
25
-
26
- This packet owns:
27
-
28
- - first-class canonical table nodes
29
- - table-aware selection and command routing
30
- - table-aware comment and revision mapping for the supported slice
31
- - curated approximate web-font rendering for browser readability
32
- - explicit font-substitution diagnostics
33
- - proof expansion for table semantics and browser-font approximation
34
-
35
- This packet does not own:
36
-
37
- - exact Word pagination parity
38
- - exact native-font parity with Word on user machines
39
- - full structural tracked revisions for rows, columns, merges, or splits
40
- - full Word style-definition editing
41
- - editable headers, footers, notes, fields, or section layout as part of the same wave
42
- - OLE, macros, or advanced Word automation
43
-
44
- ## Why This Must Not Fold Into Waves 8 Through 11
45
-
46
- Waves 8 through 11 are already proof-first closure waves for the declared v1
47
- surface:
48
-
49
- - Wave 8: harness and validator baseline
50
- - Wave 9: pilot-live editor loop
51
- - Wave 10: QA certification
52
- - Wave 11: fleet-ready package and demo story
53
-
54
- Folding this packet into those waves would:
55
-
56
- - widen the certified support boundary mid-closure
57
- - mix new architecture work into proof and release waves
58
- - weaken the honesty of current `baseline-proved`, `qa-proved`, and `fleet-ready`
59
- claims
60
- - force docs and proof bundles to overclaim support that the current runtime does
61
- not yet own
62
-
63
- This expansion was later promoted as `wave-12` after the v1 closure line was separated from the post-v1 legal-fidelity scope.
64
-
65
- ## Governing Inputs
66
-
67
- - `README.md`
68
- - `docs/legal-feedback-architecture.md`
69
- - `docs/reference/public-api.md`
70
- - `docs/reference/ooxml-compliance.md`
71
- - `docs/plans/master-plan.md`
72
- - `docs/plans/current-state.md`
73
- - `docs/plans/waves/README.md`
74
- - `src/model/canonical-document.ts`
75
- - `src/io/ooxml/parse-main-document.ts`
76
- - `src/runtime/surface-projection.ts`
77
- - `src/api/public-types.ts`
78
-
79
- ## Entry criteria
80
-
81
- - Wave 11 closure is complete or explicitly frozen enough that the active v1
82
- support boundary will not change during this packet.
83
- - README, public API docs, compliance docs, and current-state notes all align on
84
- the existing v1 claims.
85
- - The repo still treats exact pagination and native Word rendering parity as
86
- non-goals.
87
- - There is explicit agreement that table architecture and browser-font
88
- approximation are post-v1 expansion work rather than quiet v1 widening.
89
-
90
- ## Promotion target
91
-
92
- If promoted into the numbered sequence, this packet should target:
93
-
94
- - `repo-landed` for new canonical and runtime surfaces
95
- - `baseline-proved` for table import or export or UI or validator proof on the
96
- supported slice
97
-
98
- It should not target `pilot-live`, `qa-proved`, or `fleet-ready` in the same
99
- wave. Those belong to later proof and release waves after the new support slice
100
- is landed and bounded.
101
-
102
- ## Promotion conditions
103
-
104
- - canonical content has first-class typed table nodes rather than treating all
105
- body-level `w:tbl` content as opaque blocks
106
- - runtime selection and command flows support in-cell editing on the supported
107
- slice
108
- - table import and export remain package-safe and preserve unsupported table
109
- descendants honestly
110
- - browser typography uses curated approximation rather than false Word parity
111
- - font substitution is surfaced through explicit runtime warnings
112
- - mounted-shell proof exists for the new supported table slice
113
- - validator and Word reopen evidence remain explicit and bounded
114
-
115
- ## Context7 defaults
116
-
117
- - bundle: word-editor-runtime
118
- - query: "first-class table schema, table-aware selection and mapping, curated browser-font approximation, and legal-review-safe proof expansion"
119
-
120
- ## Deliverables By Subsystem
121
-
122
- ### `src/model`
123
-
124
- Own:
125
-
126
- - typed canonical table nodes
127
- - stable table, row, and cell identity
128
- - supported cell content ownership
129
- - preserved unsupported table property attachments
130
-
131
- Expected deliverables:
132
-
133
- - canonical table subtree definitions
134
- - updated document validation rules
135
- - snapshot compatibility for table-bearing documents
136
-
137
- ### `src/core`
138
-
139
- Own:
140
-
141
- - table-aware selection primitives
142
- - cell-local text routing
143
- - table structural commands
144
- - anchor remapping rules for comments and revisions within supported table edits
145
-
146
- Expected deliverables:
147
-
148
- - selection model extensions
149
- - table command handlers
150
- - transaction safety around structural edits
151
-
152
- ### `src/io`
153
-
154
- Own:
155
-
156
- - `w:tbl` import into typed canonical content
157
- - supported table export back to `w:tbl`
158
- - preserved unsupported descendants and properties
159
- - source-backed font intent retention where possible
160
-
161
- Expected deliverables:
162
-
163
- - main-document importer integration for typed tables
164
- - table serializer integration on the main export path
165
- - explicit browser-font approximation notes that do not change OOXML export
166
- guarantees silently
167
-
168
- ### `src/runtime`
169
-
170
- Own:
171
-
172
- - runtime snapshots for typed table blocks
173
- - table-aware selection state
174
- - comment and revision projection for cell-local supported edits
175
- - warning emission for font substitution or degraded browser typography states
176
-
177
- Expected deliverables:
178
-
179
- - runtime projection additions for tables
180
- - warning plumbing for `font_substitution`
181
- - export posture rules that keep browser approximation non-destructive
182
-
183
- ### `src/ui`
184
-
185
- Own:
186
-
187
- - runtime-backed table surface rendering
188
- - cell focus and selection affordances
189
- - comment and revision cues inside cells
190
- - curated browser typography application and substitution messaging
191
-
192
- Expected deliverables:
193
-
194
- - mounted table surface in the shipped `WordReviewEditor` path
195
- - explicit preserve-only or degraded badges for unsupported table behaviors
196
- - calm substitution and compatibility cues for approximate font rendering
197
-
198
- ### `services/react-word-editor`
199
-
200
- Own:
201
-
202
- - prototype and harness convergence toward the real table and font posture
203
- - sample sessions that demonstrate supported tables and font approximation honestly
204
-
205
- Expected deliverables:
206
-
207
- - updated internal demo sessions
208
- - non-production messaging that remains explicit
209
- - no prototype-only behavior that overclaims runtime support
210
-
211
- ## Required Fixture Additions
212
-
213
- The existing `F01` through `F21` corpus remains frozen as the v1 minimum.
214
-
215
- If this packet is promoted, add a later-wave extension corpus or clearly named
216
- new fixtures rather than rewriting the meaning of the existing minimum corpus.
217
-
218
- Recommended additions:
219
-
220
- - table fixture for typed import and in-cell edit proof
221
- - merged-cell fixture that survives supported edits without opaque fallback
222
- - table-comments fixture with cell-anchored comment proof
223
- - table-redline fixture for supported in-cell insert and delete behavior
224
- - mixed-font fixture with representative legal-document font variation
225
- - missing-font substitution fixture for browser approximation warning proof
226
-
227
- Scenario additions:
228
-
229
- - table-heavy scenario artifact with realistic legal schedules
230
- - typography-variant scenario artifact where browser approximation is visible but
231
- Word reopen remains intact
232
-
233
- ## Required Proof Artifacts
234
-
235
- If this packet is promoted, closure should require durable artifacts under a new
236
- wave-specific directory such as `.tmp/wave-12-legal-fidelity/`.
237
-
238
- Minimum proof artifacts:
239
-
240
- - `table-runtime-roundtrip-report.json`
241
- - `table-session-edit-report.json`
242
- - `table-ui-interaction-report.json`
243
- - `table-compatibility-report.json`
244
- - `font-substitution-report.json`
245
- - `font-package-preservation-report.json`
246
- - `word-reopen-notes.md`
247
-
248
- ## Required Test Expansion
249
-
250
- The proof program should extend existing repo conventions rather than inventing a
251
- new style.
252
-
253
- Required layers:
254
-
255
- - synthetic XML tests for narrow table and font semantics
256
- - package-backed session tests for real fixture truth
257
- - mounted `WordReviewEditor` interaction tests
258
- - compatibility taxonomy tests
259
- - wave review docs with fixture-by-fixture evidence
260
-
261
- Concrete gaps this packet must close:
262
-
263
- - no first-class table nodes in canonical content today
264
- - main-document import currently downgrades non-paragraph body children to
265
- `opaque_block`
266
- - table prototype support is `_prototypeOnly` today
267
- - `font_substitution` exists as a warning type but is not yet an active proved
268
- runtime behavior
269
-
270
- ## Shared-Doc Sync Required If Promoted
271
-
272
- If this packet is accepted into a numbered wave, the promoting change must also
273
- sync the shared planning and reference set:
274
-
275
- - `docs/plans/master-plan.md`
276
- - `docs/plans/current-state.md`
277
- - `docs/roadmap.md`
278
- - `docs/plans/component-cutover-matrix.md`
279
- - `docs/plans/component-cutover-matrix.json`
280
- - `docs/reference/public-api.md` if runtime or host contracts change
281
- - `docs/reference/ooxml-compliance.md`
282
- - fixture registry docs under `test/fixtures/`
283
-
284
- The promotion must keep bounded claims bounded. No doc may imply native Word
285
- visual parity or support for broader OOXML surfaces unless proof exists.
286
-
287
- ## Frozen Non-Goals
288
-
289
- - exact Word pagination and page-break parity
290
- - exact native-font rendering parity in browser environments
291
- - unrestricted Word-style font pickers
292
- - tracked structural revisions for rows, columns, merge, and split in the first
293
- expansion slice
294
- - broadening preserve-only package parts into editable surfaces by convenience
295
- - OLE, macros, advanced automation, or enterprise Word edge cases
296
-
297
- ## Bottom Line
298
-
299
- This packet is a good post-v1 expansion because it deepens legal-review
300
- credibility in places the product actually needs:
301
-
302
- - tables as meaningful legal objects
303
- - browser typography that is more legible and predictable
304
- - trust cues around approximation rather than false parity
305
-
306
- It should remain deferred until the active Wave 8 through Wave 11 closure path is
307
- finished, then promoted as a new bounded architecture wave rather than smuggled
308
- into the current certification sequence.