@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.
- package/dist/chunk-32W6IVQE.js +7725 -0
- package/dist/chunk-32W6IVQE.js.map +1 -0
- package/dist/index.cjs +23722 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +16011 -0
- package/dist/index.js.map +1 -0
- package/dist/public-types-DqCURAz8.d.cts +1152 -0
- package/dist/public-types-DqCURAz8.d.ts +1152 -0
- package/dist/tailwind.cjs +8295 -0
- package/dist/tailwind.cjs.map +1 -0
- package/dist/tailwind.d.cts +323 -0
- package/dist/tailwind.d.ts +323 -0
- package/dist/tailwind.js +553 -0
- package/dist/tailwind.js.map +1 -0
- package/package.json +52 -31
- package/.codex/config.toml +0 -5
- package/.corepack/v1/pnpm/10.30.3/.corepack +0 -1
- package/.corepack/v1/pnpm/10.30.3/LICENSE +0 -22
- package/.corepack/v1/pnpm/10.30.3/README.md +0 -240
- package/.corepack/v1/pnpm/10.30.3/dist/node-gyp-bin/node-gyp +0 -6
- package/.corepack/v1/pnpm/10.30.3/dist/node-gyp-bin/node-gyp.cmd +0 -5
- package/.corepack/v1/pnpm/10.30.3/dist/pnpm.cjs +0 -195400
- package/.corepack/v1/pnpm/10.30.3/dist/pnpmrc +0 -2
- package/.corepack/v1/pnpm/10.30.3/dist/reflink.darwin-arm64-2HJ4WGO6.node +0 -0
- package/.corepack/v1/pnpm/10.30.3/dist/reflink.darwin-x64-3G3H6IW4.node +0 -0
- package/.corepack/v1/pnpm/10.30.3/dist/reflink.win32-arm64-msvc-Q6BARPPB.node +0 -0
- package/.corepack/v1/pnpm/10.30.3/dist/reflink.win32-x64-msvc-J2TZHRQI.node +0 -0
- package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.bash +0 -31
- package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.fish +0 -22
- package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.ps1 +0 -193
- package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.zsh +0 -27
- package/.corepack/v1/pnpm/10.30.3/dist/vendor/fastlist-0.3.0-x64.exe +0 -0
- package/.corepack/v1/pnpm/10.30.3/dist/vendor/fastlist-0.3.0-x86.exe +0 -0
- package/.corepack/v1/pnpm/10.30.3/dist/worker.js +0 -10119
- package/.corepack/v1/pnpm/10.30.3/package.json +0 -192
- package/.cursor/mcp.json +0 -7
- package/.github/workflows/ci.yml +0 -35
- package/.mcp.json +0 -7
- package/.openclaw/workspace-state.json +0 -4
- package/.pnpmrc.json +0 -1
- package/.wave-launch.sh +0 -7
- package/.workspace-marker +0 -1
- package/AGENTS.md +0 -78
- package/CHANGELOG.md +0 -177
- package/DESIGN.md +0 -929
- package/HEARTBEAT.md +0 -7
- package/IDENTITY.md +0 -23
- package/SOUL.md +0 -36
- package/TOOLS.md +0 -40
- package/USER.md +0 -17
- package/docs/README.md +0 -107
- package/docs/agents/wave-cont-eval-role.md +0 -36
- package/docs/agents/wave-cont-qa-role.md +0 -52
- package/docs/agents/wave-deploy-verifier-role.md +0 -34
- package/docs/agents/wave-design-role.md +0 -47
- package/docs/agents/wave-documentation-role.md +0 -34
- package/docs/agents/wave-infra-role.md +0 -34
- package/docs/agents/wave-integration-role.md +0 -37
- package/docs/agents/wave-launcher-role.md +0 -41
- package/docs/agents/wave-orchestrator-role.md +0 -52
- package/docs/agents/wave-planner-role.md +0 -39
- package/docs/agents/wave-security-role.md +0 -40
- package/docs/architecture/docx/README.md +0 -10
- package/docs/architecture/future/README.md +0 -8
- package/docs/architecture/ooxml-upgrade-analysis.md +0 -134
- package/docs/architecture/platform/shared-openxml-editor-platform.md +0 -153
- package/docs/architecture/xlsx/canonical-workbook-model-and-commands.md +0 -187
- package/docs/architecture/xlsx/spreadsheet-editor-frontend-architecture.md +0 -150
- package/docs/comment-redline-overview.md +0 -350
- package/docs/concepts/context7-vs-skills.md +0 -118
- package/docs/concepts/operating-modes.md +0 -91
- package/docs/concepts/runtime-agnostic-orchestration.md +0 -111
- package/docs/concepts/what-is-a-wave.md +0 -217
- package/docs/context7/bundles.json +0 -222
- package/docs/context7/planner-agent/README.md +0 -28
- package/docs/context7/planner-agent/manifest.json +0 -83
- package/docs/context7/planner-agent/papers/cooperbench-why-coding-agents-cannot-be-your-teammates-yet.md +0 -3283
- package/docs/context7/planner-agent/papers/dova-deliberation-first-multi-agent-orchestration-for-autonomous-research-automation.md +0 -1699
- package/docs/context7/planner-agent/papers/dpbench-large-language-models-struggle-with-simultaneous-coordination.md +0 -2251
- package/docs/context7/planner-agent/papers/incremental-planning-to-control-a-blackboard-based-problem-solver.md +0 -1729
- package/docs/context7/planner-agent/papers/silo-bench-a-scalable-environment-for-evaluating-distributed-coordination-in-multi-agent-llm-systems.md +0 -3747
- package/docs/context7/planner-agent/papers/todoevolve-learning-to-architect-agent-planning-systems.md +0 -1675
- package/docs/context7/planner-agent/papers/verified-multi-agent-orchestration-a-plan-execute-verify-replan-framework-for-complex-query-resolution.md +0 -1173
- package/docs/context7/planner-agent/papers/why-do-multi-agent-llm-systems-fail.md +0 -5211
- package/docs/context7/planner-agent/topics/planning-and-orchestration.md +0 -24
- package/docs/evals/arm-templates/README.md +0 -13
- package/docs/evals/arm-templates/full-wave.json +0 -15
- package/docs/evals/arm-templates/single-agent.json +0 -15
- package/docs/evals/benchmark-catalog.json +0 -670
- package/docs/evals/cases/README.md +0 -47
- package/docs/evals/cases/wave-blackboard-inbox-targeting.json +0 -73
- package/docs/evals/cases/wave-contradiction-conflict.json +0 -104
- package/docs/evals/cases/wave-expert-routing-preservation.json +0 -69
- package/docs/evals/cases/wave-hidden-profile-private-evidence.json +0 -81
- package/docs/evals/cases/wave-premature-closure-guard.json +0 -71
- package/docs/evals/cases/wave-silo-cross-agent-state.json +0 -77
- package/docs/evals/cases/wave-simultaneous-lockstep.json +0 -92
- package/docs/evals/external-benchmarks.json +0 -85
- package/docs/evals/external-command-config.sample.json +0 -9
- package/docs/evals/external-command-config.swe-bench-pro.json +0 -8
- package/docs/evals/pilots/README.md +0 -47
- package/docs/evals/pilots/swe-bench-pro-public-full-wave-review-10.json +0 -64
- package/docs/evals/pilots/swe-bench-pro-public-pilot.json +0 -111
- package/docs/evals/wave-benchmark-program.md +0 -302
- package/docs/guides/planner.md +0 -220
- package/docs/guides/recommendations-0.8.9.md +0 -133
- package/docs/guides/signal-wrappers.md +0 -165
- package/docs/guides/terminal-surfaces.md +0 -96
- package/docs/image copy.png +0 -0
- package/docs/image.png +0 -0
- package/docs/images/image.png +0 -0
- package/docs/legal-feedback-architecture.md +0 -498
- package/docs/plans/component-cutover-matrix.json +0 -1072
- package/docs/plans/component-cutover-matrix.md +0 -307
- package/docs/plans/context7-wave-orchestrator.md +0 -155
- package/docs/plans/current-state.md +0 -198
- package/docs/plans/docx/README.md +0 -9
- package/docs/plans/examples/wave-benchmark-improvement.md +0 -108
- package/docs/plans/examples/wave-example-live-proof.md +0 -435
- package/docs/plans/master-plan.md +0 -224
- package/docs/plans/migration.md +0 -538
- package/docs/plans/operations/README.md +0 -7
- package/docs/plans/operations/wave-10-word-certification.md +0 -87
- package/docs/plans/operations/wave-8-railway-staging.md +0 -153
- package/docs/plans/operations/wave-9-manual-certification.md +0 -73
- package/docs/plans/platform/README.md +0 -9
- package/docs/plans/reference/legal-checklist-coverage.md +0 -258
- package/docs/plans/wave-orchestrator.md +0 -423
- package/docs/plans/waves/README.md +0 -75
- package/docs/plans/waves/completed/wave-0.md +0 -195
- package/docs/plans/waves/completed/wave-1.md +0 -379
- package/docs/plans/waves/completed/wave-10.md +0 -670
- package/docs/plans/waves/completed/wave-11.md +0 -335
- package/docs/plans/waves/completed/wave-12.md +0 -417
- package/docs/plans/waves/completed/wave-13.md +0 -316
- package/docs/plans/waves/completed/wave-14.md +0 -319
- package/docs/plans/waves/completed/wave-15.md +0 -321
- package/docs/plans/waves/completed/wave-16.md +0 -316
- package/docs/plans/waves/completed/wave-17.md +0 -331
- package/docs/plans/waves/completed/wave-18.md +0 -328
- package/docs/plans/waves/completed/wave-2.md +0 -438
- package/docs/plans/waves/completed/wave-3.md +0 -435
- package/docs/plans/waves/completed/wave-4.md +0 -430
- package/docs/plans/waves/completed/wave-5.md +0 -430
- package/docs/plans/waves/completed/wave-6.md +0 -430
- package/docs/plans/waves/completed/wave-7.md +0 -526
- package/docs/plans/waves/completed/wave-8.md +0 -596
- package/docs/plans/waves/completed/wave-9.md +0 -552
- package/docs/plans/waves/deferred/README.md +0 -14
- package/docs/plans/waves/deferred/encrypted-intake-contracts.md +0 -282
- package/docs/plans/waves/deferred/legal-feedback-wave-expansion.md +0 -308
- package/docs/plans/waves/deferred/wave-encrypted-intake.md +0 -451
- package/docs/plans/waves/design/README.md +0 -5
- package/docs/plans/waves/design/wave-1-a1.md +0 -309
- package/docs/plans/waves/reviews/README.md +0 -5
- package/docs/plans/waves/reviews/wave-0-cont-qa.md +0 -151
- package/docs/plans/waves/reviews/wave-1-cont-qa.md +0 -46
- package/docs/plans/waves/reviews/wave-10-accessibility-and-design.md +0 -51
- package/docs/plans/waves/reviews/wave-10-cont-qa.md +0 -24
- package/docs/plans/waves/reviews/wave-10-dashboard-proof.md +0 -46
- package/docs/plans/waves/reviews/wave-10-performance-signoff.md +0 -55
- package/docs/plans/waves/reviews/wave-10-regression-proof.md +0 -23
- package/docs/plans/waves/reviews/wave-10-release-audit.md +0 -31
- package/docs/plans/waves/reviews/wave-10-service-proof.md +0 -83
- package/docs/plans/waves/reviews/wave-10-word-certification.md +0 -31
- package/docs/plans/waves/reviews/wave-18-ai-contract-closure.md +0 -277
- package/docs/plans/waves/reviews/wave-18-cont-qa.md +0 -255
- package/docs/plans/waves/reviews/wave-18-parity-proof.md +0 -271
- package/docs/plans/waves/reviews/wave-19-cont-qa.md +0 -59
- package/docs/plans/waves/reviews/wave-2-cont-qa.md +0 -72
- package/docs/plans/waves/reviews/wave-20-cont-qa.md +0 -60
- package/docs/plans/waves/reviews/wave-25-cont-qa.md +0 -48
- package/docs/plans/waves/reviews/wave-28-cont-qa.md +0 -46
- package/docs/plans/waves/reviews/wave-29-cont-qa.md +0 -53
- package/docs/plans/waves/reviews/wave-3-cont-qa.md +0 -53
- package/docs/plans/waves/reviews/wave-3-core-proof.md +0 -77
- package/docs/plans/waves/reviews/wave-3-validator-proof.md +0 -73
- package/docs/plans/waves/reviews/wave-32-cont-qa.md +0 -43
- package/docs/plans/waves/reviews/wave-33-cont-qa.md +0 -526
- package/docs/plans/waves/reviews/wave-34-cont-qa.md +0 -100
- package/docs/plans/waves/reviews/wave-35-cont-qa.md +0 -145
- package/docs/plans/waves/reviews/wave-4-cont-qa.md +0 -47
- package/docs/plans/waves/reviews/wave-4-structure-proof.md +0 -69
- package/docs/plans/waves/reviews/wave-5-comment-proof.md +0 -158
- package/docs/plans/waves/reviews/wave-5-cont-qa.md +0 -68
- package/docs/plans/waves/reviews/wave-6-cont-qa.md +0 -416
- package/docs/plans/waves/reviews/wave-6-redline-proof.md +0 -130
- package/docs/plans/waves/reviews/wave-7-cont-qa.md +0 -82
- package/docs/plans/waves/reviews/wave-7-ooxml-compliance.md +0 -85
- package/docs/plans/waves/reviews/wave-7-preservation-proof.md +0 -119
- package/docs/plans/waves/reviews/wave-7-trust-ux.md +0 -87
- package/docs/plans/waves/reviews/wave-8-accessibility-and-design.md +0 -128
- package/docs/plans/waves/reviews/wave-8-cont-qa.md +0 -92
- package/docs/plans/waves/reviews/wave-8-live-proof.md +0 -140
- package/docs/plans/waves/reviews/wave-8-security.md +0 -47
- package/docs/plans/waves/reviews/wave-9-editor-embedding.md +0 -39
- package/docs/plans/waves/reviews/wave-9-fixture-runner.md +0 -56
- package/docs/plans/waves/reviews/wave-9-live-proof.md +0 -105
- package/docs/plans/waves/reviews/wave-9-usability-and-performance.md +0 -152
- package/docs/plans/waves/specs/README.md +0 -5
- package/docs/plans/waves/specs/wave-1-component-boundaries.md +0 -322
- package/docs/plans/waves/specs/wave-1-ooxml-contracts.md +0 -323
- package/docs/plans/waves/specs/wave-1-review-and-ui-contracts.md +0 -339
- package/docs/plans/waves/specs/wave-1-runtime-contracts.md +0 -509
- package/docs/plans/waves/wave-19.md +0 -341
- package/docs/plans/waves/wave-20.md +0 -308
- package/docs/plans/waves/wave-21.md +0 -289
- package/docs/plans/waves/wave-22.md +0 -221
- package/docs/plans/waves/wave-23.md +0 -295
- package/docs/plans/waves/wave-24.md +0 -286
- package/docs/plans/waves/wave-25.md +0 -313
- package/docs/plans/waves/wave-26.md +0 -300
- package/docs/plans/waves/wave-27.md +0 -299
- package/docs/plans/waves/wave-28.md +0 -368
- package/docs/plans/waves/wave-29.md +0 -303
- package/docs/plans/waves/wave-30.md +0 -307
- package/docs/plans/waves/wave-31.md +0 -231
- package/docs/plans/waves/wave-32.md +0 -152
- package/docs/plans/waves/wave-33.md +0 -147
- package/docs/plans/waves/wave-34.md +0 -148
- package/docs/plans/waves/wave-35.md +0 -141
- package/docs/plans/waves/wave-36.md +0 -146
- package/docs/plans/xlsx/README.md +0 -14
- package/docs/plans/xlsx/xlsx-fixture-corpus-and-certification-plan.md +0 -126
- package/docs/reference/cli-reference.md +0 -600
- package/docs/reference/coordination-and-closure.md +0 -487
- package/docs/reference/deep-research-report (15).md +0 -25
- package/docs/reference/docx/README.md +0 -10
- package/docs/reference/legal-checklist.md +0 -445
- package/docs/reference/live-proof-waves.md +0 -199
- package/docs/reference/ooxml-compliance.md +0 -129
- package/docs/reference/ooxml-feature-parity-matrix.md +0 -172
- package/docs/reference/platform/shared-ooxml-platform-guidance.md +0 -77
- package/docs/reference/prototype-agent-prompt-legal-fidelity.md +0 -155
- package/docs/reference/public-api.md +0 -456
- package/docs/reference/repository-guidance.md +0 -58
- package/docs/reference/runtime-config/README.md +0 -182
- package/docs/reference/runtime-config/claude.md +0 -110
- package/docs/reference/runtime-config/codex.md +0 -82
- package/docs/reference/runtime-config/opencode.md +0 -93
- package/docs/reference/sample-waves.md +0 -105
- package/docs/reference/skills.md +0 -237
- package/docs/reference/templates/AGENTS.md +0 -78
- package/docs/reference/templates/HEARTBEAT.md +0 -7
- package/docs/reference/templates/IDENTITY.md +0 -23
- package/docs/reference/templates/SOUL.md +0 -36
- package/docs/reference/templates/TOOLS.md +0 -40
- package/docs/reference/templates/USER.md +0 -17
- package/docs/reference/wave-control.md +0 -184
- package/docs/reference/wave-planning-lessons.md +0 -167
- package/docs/reference/word-review-editor-frontend-architecture.md +0 -479
- package/docs/reference/word-review-editor-ux-guide.md +0 -253
- package/docs/reference/xlsx/xlsx-ooxml-compliance.md +0 -137
- package/docs/research/agent-context-sources.md +0 -178
- package/docs/research/coordination-failure-review.md +0 -290
- package/docs/research/docx-react-component/Canonical Document Schema Specification for a React-based Word-compatible Editor.md +0 -2317
- package/docs/research/docx-react-component/Feature Compatibility Matrix for a React Word Compatible Legal Editor v1.md +0 -219
- package/docs/research/docx-react-component/React Component Architecture and Front-End Structure Specification for a Word-Compatible Legal Review Editor.md +0 -1112
- package/docs/research/docx-react-component/document_compatibility_and_testing_spec.md +0 -751
- package/docs/research/xlsx/raw/README.md +0 -13
- package/docs/roadmap.md +0 -174
- package/docs/superpowers/plans/2026-03-28-harness-control-bar.md +0 -677
- package/docs/superpowers/specs/2026-03-28-harness-control-bar-design.md +0 -274
- package/docs/xlsx-react/README.md +0 -38
- package/docs/xlsx-react/agent-llm-interaction-layer-docx-xlsx.md +0 -621
- package/docs/xlsx-react/canonical-workbook-model-and-commands.md +0 -948
- package/docs/xlsx-react/shared-openxml-editor-platform-docx-xlsx.md +0 -228
- package/docs/xlsx-react/spreadsheet-editor-component-architecture.md +0 -809
- package/docs/xlsx-react/spreadsheet-editor-frontend-architecture.md +0 -537
- package/docs/xlsx-react/spreadsheet-editor-ux-guide.md +0 -520
- package/docs/xlsx-react/xlsx-editor-research-pack.md +0 -871
- package/docs/xlsx-react/xlsx-fixture-corpus-and-certification-plan.md +0 -436
- package/docs/xlsx-react/xlsx-ooxml-compliance.md +0 -320
- package/examples/README.md +0 -16
- package/memory/MEMORY.md +0 -24
- package/pnpm-workspace.yaml +0 -4
- package/scripts/check-no-authored-js.sh +0 -13
- package/scripts/context7-api-check.sh +0 -65
- package/scripts/context7-export-env.sh +0 -42
- package/scripts/run-context7-mcp.sh +0 -8
- package/scripts/run-workspace-tests.sh +0 -15
- package/scripts/start-wave-10-local.sh +0 -189
- package/scripts/wave-agent-attach.sh +0 -47
- package/scripts/wave-auto-answer.sh +0 -118
- package/scripts/wave-dashboard-attach.sh +0 -13
- package/scripts/wave-launch.sh +0 -273
- package/scripts/wave-overnight-supervisor.sh +0 -145
- package/scripts/wave-status.sh +0 -379
- package/scripts/wave-watch.sh +0 -231
- package/services/README.md +0 -17
- package/services/openxml-validator/Dockerfile +0 -29
- package/services/openxml-validator/OpenXmlValidator.Api.csproj +0 -12
- package/services/openxml-validator/Program.cs +0 -436
- package/services/openxml-validator/README.md +0 -152
- package/services/openxml-validator/railway.json +0 -16
- package/services/react-word-editor/.tmp-a4/src/api/public-types.ts +0 -318
- package/services/react-word-editor/.tmp-a4/src/ui/WordReviewEditor.tsx +0 -1302
- package/services/react-word-editor/.tmp-a4/src/ui/editor-surface/editor-surface.tsx +0 -546
- package/services/react-word-editor/.tmp-a4/test/ui/word-review-editor.test.tsx +0 -146
- package/services/react-word-editor/.tmp-a4-build/src/api/public-types.js +0 -2
- package/services/react-word-editor/.tmp-a4-build/src/ui/WordReviewEditor.js +0 -818
- package/services/react-word-editor/.tmp-a4-build/src/ui/editor-surface/editor-surface.js +0 -229
- package/services/react-word-editor/.tmp-a4-build/test/ui/word-review-editor.test.js +0 -121
- package/services/react-word-editor/.tmp-wave-4-a3-tsconfig.json +0 -21
- package/services/react-word-editor/.tmp-wave-4-a3-tsconfig.tsbuildinfo +0 -1
- package/services/react-word-editor/Dockerfile +0 -26
- package/services/react-word-editor/README.md +0 -254
- package/services/react-word-editor/app/api/certification/route.ts +0 -79
- package/services/react-word-editor/app/api/demo-sessions/route.ts +0 -109
- package/services/react-word-editor/app/api/deploy-health/route.ts +0 -23
- package/services/react-word-editor/app/api/exports/[exportId]/route.ts +0 -34
- package/services/react-word-editor/app/api/exports/route.ts +0 -81
- package/services/react-word-editor/app/api/fixtures/[fixtureId]/run/route.ts +0 -100
- package/services/react-word-editor/app/api/health/route.ts +0 -70
- package/services/react-word-editor/app/api/runs/[runId]/route.ts +0 -36
- package/services/react-word-editor/app/api/scenarios/[scenarioId]/run/route.ts +0 -85
- package/services/react-word-editor/app/api/sessions/[sessionId]/route.ts +0 -199
- package/services/react-word-editor/app/api/sessions/[sessionId]/source/route.ts +0 -45
- package/services/react-word-editor/app/api/uploads/route.ts +0 -70
- package/services/react-word-editor/app/api/validate/route.ts +0 -310
- package/services/react-word-editor/app/certification/[runId]/page.tsx +0 -14
- package/services/react-word-editor/app/certification/page.tsx +0 -32
- package/services/react-word-editor/app/dashboard/page.tsx +0 -7
- package/services/react-word-editor/app/demo/page.tsx +0 -30
- package/services/react-word-editor/app/demo/prototype-client.tsx +0 -1080
- package/services/react-word-editor/app/editor/[sessionId]/page.tsx +0 -33
- package/services/react-word-editor/app/fixtures/page.tsx +0 -7
- package/services/react-word-editor/app/globals.css +0 -121
- package/services/react-word-editor/app/layout.tsx +0 -32
- package/services/react-word-editor/app/page.tsx +0 -30
- package/services/react-word-editor/app/runs/[runId]/page.tsx +0 -34
- package/services/react-word-editor/app/wave-10-word-review/page.tsx +0 -7
- package/services/react-word-editor/components/harness-control-bar.tsx +0 -289
- package/services/react-word-editor/components/harness-editor-session-client.tsx +0 -1214
- package/services/react-word-editor/components/harness-workspace-page.tsx +0 -715
- package/services/react-word-editor/components/reduced-motion-toggle.tsx +0 -79
- package/services/react-word-editor/components/workspace-certification-panel.tsx +0 -307
- package/services/react-word-editor/lib/certification-bundle.ts +0 -796
- package/services/react-word-editor/lib/certification-store.ts +0 -661
- package/services/react-word-editor/lib/demo-fixtures.test.mjs +0 -195
- package/services/react-word-editor/lib/demo-fixtures.ts +0 -1519
- package/services/react-word-editor/lib/editor-session-summary.test.mjs +0 -68
- package/services/react-word-editor/lib/editor-session-summary.ts +0 -14
- package/services/react-word-editor/lib/editor-session.ts +0 -228
- package/services/react-word-editor/lib/exports-route.test.mjs +0 -32
- package/services/react-word-editor/lib/harness-client.ts +0 -347
- package/services/react-word-editor/lib/harness-config.json +0 -30
- package/services/react-word-editor/lib/harness-config.test.mjs +0 -31
- package/services/react-word-editor/lib/harness-config.ts +0 -21
- package/services/react-word-editor/lib/harness-editor-datastore.test.mjs +0 -220
- package/services/react-word-editor/lib/harness-editor-datastore.ts +0 -161
- package/services/react-word-editor/lib/private-mode.test.mjs +0 -42
- package/services/react-word-editor/lib/private-mode.ts +0 -61
- package/services/react-word-editor/lib/regression-report.test.mjs +0 -352
- package/services/react-word-editor/lib/regression-report.ts +0 -896
- package/services/react-word-editor/lib/run-artifacts.ts +0 -934
- package/services/react-word-editor/lib/run-history.ts +0 -755
- package/services/react-word-editor/lib/scenario-artifacts.test.mjs +0 -41
- package/services/react-word-editor/lib/scenario-artifacts.ts +0 -44
- package/services/react-word-editor/lib/storage.ts +0 -953
- package/services/react-word-editor/lib/validator-client.test.mjs +0 -54
- package/services/react-word-editor/lib/validator-client.ts +0 -95
- package/services/react-word-editor/lib/workspace-navigation.ts +0 -79
- package/services/react-word-editor/middleware.ts +0 -35
- package/services/react-word-editor/next-env.d.ts +0 -6
- package/services/react-word-editor/next.config.mjs +0 -15
- package/services/react-word-editor/package.json +0 -38
- package/services/react-word-editor/postcss.config.mjs +0 -8
- package/services/react-word-editor/railway.json +0 -21
- package/services/react-word-editor/scripts/wave-10-certification.mjs +0 -101
- package/services/react-word-editor/scripts/wave-9-live-usability-pilot.mjs +0 -911
- package/services/react-word-editor/tsconfig.json +0 -39
- package/services/react-word-editor/tsconfig.tsbuildinfo +0 -1
- package/skills/README.md +0 -48
- package/skills/domain-docx-compatibility/SKILL.md +0 -44
- package/skills/domain-docx-compatibility/skill.json +0 -19
- package/skills/domain-editor-architecture/SKILL.md +0 -49
- package/skills/domain-editor-architecture/skill.json +0 -19
- package/skills/domain-legal-review/SKILL.md +0 -39
- package/skills/domain-legal-review/skill.json +0 -19
- package/skills/provider-aws/SKILL.md +0 -117
- package/skills/provider-aws/adapters/claude.md +0 -1
- package/skills/provider-aws/adapters/codex.md +0 -1
- package/skills/provider-aws/references/service-verification.md +0 -39
- package/skills/provider-aws/skill.json +0 -54
- package/skills/provider-custom-deploy/SKILL.md +0 -64
- package/skills/provider-custom-deploy/skill.json +0 -50
- package/skills/provider-docker-compose/SKILL.md +0 -96
- package/skills/provider-docker-compose/adapters/local.md +0 -1
- package/skills/provider-docker-compose/skill.json +0 -53
- package/skills/provider-github-release/SKILL.md +0 -121
- package/skills/provider-github-release/adapters/claude.md +0 -1
- package/skills/provider-github-release/adapters/codex.md +0 -1
- package/skills/provider-github-release/skill.json +0 -55
- package/skills/provider-kubernetes/SKILL.md +0 -143
- package/skills/provider-kubernetes/adapters/claude.md +0 -1
- package/skills/provider-kubernetes/adapters/codex.md +0 -1
- package/skills/provider-kubernetes/references/kubectl-patterns.md +0 -58
- package/skills/provider-kubernetes/skill.json +0 -52
- package/skills/provider-railway/SKILL.md +0 -123
- package/skills/provider-railway/adapters/claude.md +0 -1
- package/skills/provider-railway/adapters/codex.md +0 -1
- package/skills/provider-railway/adapters/local.md +0 -1
- package/skills/provider-railway/adapters/opencode.md +0 -1
- package/skills/provider-railway/references/verification-commands.md +0 -39
- package/skills/provider-railway/skill.json +0 -71
- package/skills/provider-ssh-manual/SKILL.md +0 -97
- package/skills/provider-ssh-manual/skill.json +0 -54
- package/skills/repo-coding-rules/SKILL.md +0 -55
- package/skills/repo-coding-rules/skill.json +0 -34
- package/skills/role-cont-eval/SKILL.md +0 -91
- package/skills/role-cont-eval/adapters/codex.md +0 -1
- package/skills/role-cont-eval/skill.json +0 -36
- package/skills/role-cont-qa/SKILL.md +0 -100
- package/skills/role-cont-qa/adapters/claude.md +0 -1
- package/skills/role-cont-qa/skill.json +0 -36
- package/skills/role-deploy/SKILL.md +0 -97
- package/skills/role-deploy/skill.json +0 -36
- package/skills/role-design/SKILL.md +0 -50
- package/skills/role-design/skill.json +0 -36
- package/skills/role-documentation/SKILL.md +0 -76
- package/skills/role-documentation/skill.json +0 -36
- package/skills/role-implementation/SKILL.md +0 -45
- package/skills/role-implementation/skill.json +0 -36
- package/skills/role-infra/SKILL.md +0 -81
- package/skills/role-infra/skill.json +0 -36
- package/skills/role-integration/SKILL.md +0 -91
- package/skills/role-integration/skill.json +0 -36
- package/skills/role-planner/SKILL.md +0 -39
- package/skills/role-planner/skill.json +0 -21
- package/skills/role-research/SKILL.md +0 -65
- package/skills/role-research/skill.json +0 -36
- package/skills/role-security/SKILL.md +0 -60
- package/skills/role-security/skill.json +0 -36
- package/skills/runtime-claude/SKILL.md +0 -66
- package/skills/runtime-claude/skill.json +0 -36
- package/skills/runtime-codex/SKILL.md +0 -58
- package/skills/runtime-codex/skill.json +0 -36
- package/skills/runtime-local/SKILL.md +0 -46
- package/skills/runtime-local/skill.json +0 -36
- package/skills/runtime-opencode/SKILL.md +0 -58
- package/skills/runtime-opencode/skill.json +0 -36
- package/skills/signal-hygiene/SKILL.md +0 -51
- package/skills/signal-hygiene/skill.json +0 -20
- package/skills/tui-design/SKILL.md +0 -77
- package/skills/tui-design/references/tui-design.md +0 -259
- package/skills/tui-design/skill.json +0 -36
- package/skills/wave-core/SKILL.md +0 -141
- package/skills/wave-core/references/marker-syntax.md +0 -70
- package/skills/wave-core/skill.json +0 -35
- package/src/README.md +0 -85
- package/src/api/README.md +0 -22
- package/src/api/public-types.ts +0 -525
- package/src/component-inventory.md +0 -99
- package/src/core/README.md +0 -10
- package/src/core/commands/README.md +0 -3
- package/src/core/commands/formatting-commands.ts +0 -161
- package/src/core/commands/image-commands.ts +0 -144
- package/src/core/commands/index.ts +0 -1013
- package/src/core/commands/list-commands.ts +0 -370
- package/src/core/commands/review-commands.ts +0 -108
- package/src/core/commands/text-commands.ts +0 -119
- package/src/core/schema/README.md +0 -3
- package/src/core/schema/text-schema.ts +0 -512
- package/src/core/selection/README.md +0 -3
- package/src/core/selection/mapping.ts +0 -238
- package/src/core/selection/review-anchors.ts +0 -94
- package/src/core/state/README.md +0 -3
- package/src/core/state/editor-state.ts +0 -580
- package/src/core/state/text-transaction.ts +0 -276
- package/src/formats/xlsx/io/parse-shared-strings.ts +0 -41
- package/src/formats/xlsx/io/parse-sheet.ts +0 -289
- package/src/formats/xlsx/io/parse-styles.ts +0 -57
- package/src/formats/xlsx/io/parse-workbook.ts +0 -75
- package/src/formats/xlsx/io/xlsx-session.ts +0 -306
- package/src/formats/xlsx/model/cell.ts +0 -189
- package/src/formats/xlsx/model/sheet.ts +0 -244
- package/src/formats/xlsx/model/styles.ts +0 -118
- package/src/formats/xlsx/model/workbook.ts +0 -449
- package/src/io/README.md +0 -10
- package/src/io/docx-session.ts +0 -1763
- package/src/io/export/README.md +0 -3
- package/src/io/export/export-session.ts +0 -165
- package/src/io/export/minimal-docx.ts +0 -115
- package/src/io/export/reattach-preserved-parts.ts +0 -54
- package/src/io/export/serialize-comments.ts +0 -876
- package/src/io/export/serialize-footnotes.ts +0 -217
- package/src/io/export/serialize-headers-footers.ts +0 -200
- package/src/io/export/serialize-main-document.ts +0 -982
- package/src/io/export/serialize-numbering.ts +0 -97
- package/src/io/export/serialize-revisions.ts +0 -389
- package/src/io/export/serialize-runtime-revisions.ts +0 -265
- package/src/io/export/serialize-tables.ts +0 -147
- package/src/io/export/split-review-boundaries.ts +0 -194
- package/src/io/normalize/README.md +0 -3
- package/src/io/normalize/normalize-text.ts +0 -437
- package/src/io/ooxml/README.md +0 -3
- package/src/io/ooxml/parse-comments.ts +0 -779
- package/src/io/ooxml/parse-complex-content.ts +0 -287
- package/src/io/ooxml/parse-fields.ts +0 -438
- package/src/io/ooxml/parse-footnotes.ts +0 -403
- package/src/io/ooxml/parse-headers-footers.ts +0 -483
- package/src/io/ooxml/parse-inline-media.ts +0 -431
- package/src/io/ooxml/parse-main-document.ts +0 -1846
- package/src/io/ooxml/parse-numbering.ts +0 -425
- package/src/io/ooxml/parse-revisions.ts +0 -658
- package/src/io/ooxml/parse-shapes.ts +0 -271
- package/src/io/ooxml/parse-tables.ts +0 -568
- package/src/io/ooxml/parse-theme.ts +0 -314
- package/src/io/ooxml/part-manifest.ts +0 -136
- package/src/io/ooxml/revision-boundaries.ts +0 -351
- package/src/io/opc/README.md +0 -3
- package/src/io/opc/corrupt-package.ts +0 -166
- package/src/io/opc/docx-package.ts +0 -74
- package/src/io/opc/package-reader.ts +0 -320
- package/src/io/opc/package-writer.ts +0 -273
- package/src/model/README.md +0 -3
- package/src/model/canonical-document.ts +0 -1911
- package/src/model/cds-1.0.0.ts +0 -196
- package/src/model/snapshot.ts +0 -393
- package/src/preservation/README.md +0 -3
- package/src/preservation/markup-compatibility.ts +0 -48
- package/src/preservation/opaque-fragment-store.ts +0 -89
- package/src/preservation/opaque-region.ts +0 -233
- package/src/preservation/package-preservation.ts +0 -120
- package/src/preservation/preserved-part-manifest.ts +0 -56
- package/src/preservation/relationship-retention.ts +0 -57
- package/src/preservation/store.ts +0 -185
- package/src/review/README.md +0 -16
- package/src/review/store/README.md +0 -3
- package/src/review/store/comment-anchors.ts +0 -70
- package/src/review/store/comment-remapping.ts +0 -154
- package/src/review/store/comment-store.ts +0 -331
- package/src/review/store/comment-thread.ts +0 -109
- package/src/review/store/revision-actions.ts +0 -394
- package/src/review/store/revision-store.ts +0 -303
- package/src/review/store/revision-types.ts +0 -168
- package/src/review/store/runtime-comment-store.ts +0 -43
- package/src/runtime/README.md +0 -3
- package/src/runtime/ai-action-policy.ts +0 -764
- package/src/runtime/document-runtime.ts +0 -969
- package/src/runtime/read-only-diagnostics-runtime.ts +0 -232
- package/src/runtime/review-runtime.ts +0 -44
- package/src/runtime/revision-runtime.ts +0 -107
- package/src/runtime/session-capabilities.ts +0 -138
- package/src/runtime/surface-projection.ts +0 -570
- package/src/runtime/table-commands.ts +0 -84
- package/src/runtime/table-schema.ts +0 -125
- package/src/ui/README.md +0 -30
- package/src/ui/WordReviewEditor.tsx +0 -1283
- package/src/ui/comments/README.md +0 -3
- package/src/ui/compatibility/README.md +0 -3
- package/src/ui/editor-surface/README.md +0 -3
- package/src/ui/headless/comment-decoration-model.ts +0 -124
- package/src/ui/headless/revision-decoration-model.ts +0 -128
- package/src/ui/headless/selection-helpers.ts +0 -34
- package/src/ui/headless/use-editor-keyboard.ts +0 -98
- package/src/ui/review/README.md +0 -3
- package/src/ui/shared/revision-filters.ts +0 -31
- package/src/ui/status/README.md +0 -3
- package/src/ui/theme/README.md +0 -3
- package/src/ui/toolbar/README.md +0 -3
- package/src/ui-tailwind/chrome/tw-alert-banner.tsx +0 -48
- package/src/ui-tailwind/chrome/tw-selection-toolbar.tsx +0 -44
- package/src/ui-tailwind/chrome/tw-unsaved-modal.tsx +0 -58
- package/src/ui-tailwind/chrome/use-before-unload.ts +0 -20
- package/src/ui-tailwind/editor-surface/pm-command-bridge.ts +0 -139
- package/src/ui-tailwind/editor-surface/pm-decorations.ts +0 -98
- package/src/ui-tailwind/editor-surface/pm-position-map.ts +0 -123
- package/src/ui-tailwind/editor-surface/pm-schema.ts +0 -452
- package/src/ui-tailwind/editor-surface/pm-state-from-snapshot.ts +0 -327
- package/src/ui-tailwind/editor-surface/search-plugin.ts +0 -157
- package/src/ui-tailwind/editor-surface/tw-caret.tsx +0 -12
- package/src/ui-tailwind/editor-surface/tw-editor-surface.tsx +0 -150
- package/src/ui-tailwind/editor-surface/tw-inline-token.tsx +0 -118
- package/src/ui-tailwind/editor-surface/tw-opaque-block.tsx +0 -52
- package/src/ui-tailwind/editor-surface/tw-paragraph-block.tsx +0 -151
- package/src/ui-tailwind/editor-surface/tw-prosemirror-surface.tsx +0 -215
- package/src/ui-tailwind/editor-surface/tw-segment-view.tsx +0 -111
- package/src/ui-tailwind/editor-surface/tw-table-node-view.tsx +0 -108
- package/src/ui-tailwind/index.ts +0 -61
- package/src/ui-tailwind/review/tw-comment-sidebar.tsx +0 -276
- package/src/ui-tailwind/review/tw-health-panel.tsx +0 -120
- package/src/ui-tailwind/review/tw-review-rail.tsx +0 -120
- package/src/ui-tailwind/review/tw-revision-sidebar.tsx +0 -164
- package/src/ui-tailwind/status/tw-status-bar.tsx +0 -58
- package/src/ui-tailwind/theme/editor-theme.css +0 -190
- package/src/ui-tailwind/toolbar/tw-toolbar-icon-button.tsx +0 -48
- package/src/ui-tailwind/toolbar/tw-toolbar.tsx +0 -231
- package/src/ui-tailwind/tw-review-workspace.tsx +0 -140
- package/src/validation/README.md +0 -3
- package/src/validation/compatibility-engine.ts +0 -317
- package/src/validation/compatibility-report.ts +0 -160
- package/src/validation/diagnostics.ts +0 -203
- package/src/validation/import-diagnostics.ts +0 -128
- package/src/validation/low-priority-word-surfaces.ts +0 -373
- package/test/README.md +0 -16
- package/test/core/formatting-commands.test.ts +0 -285
- package/test/core/image-commands.test.ts +0 -298
- package/test/core/mapping.test.ts +0 -186
- package/test/core/text-commands.test.ts +0 -176
- package/test/fixtures/docx/F01-basic-contract.docx +0 -0
- package/test/fixtures/docx/F01-basic-contract.md +0 -33
- package/test/fixtures/docx/F02-headings-styles.docx +0 -0
- package/test/fixtures/docx/F02-headings-styles.md +0 -33
- package/test/fixtures/docx/F03-legal-outline-numbering.docx +0 -0
- package/test/fixtures/docx/F03-legal-outline-numbering.md +0 -34
- package/test/fixtures/docx/F04-restart-numbering-schedules.docx +0 -0
- package/test/fixtures/docx/F04-restart-numbering-schedules.md +0 -33
- package/test/fixtures/docx/F05-table-heavy-agreement.docx +0 -0
- package/test/fixtures/docx/F05-table-heavy-agreement.md +0 -34
- package/test/fixtures/docx/F06-merged-cells-signature-table.docx +0 -0
- package/test/fixtures/docx/F06-merged-cells-signature-table.md +0 -34
- package/test/fixtures/docx/F07-inline-images-exhibit.docx +0 -0
- package/test/fixtures/docx/F07-inline-images-exhibit.md +0 -34
- package/test/fixtures/docx/F08-hyperlinks.docx +0 -0
- package/test/fixtures/docx/F08-hyperlinks.md +0 -33
- package/test/fixtures/docx/F09-comments-single-paragraph.docx +0 -0
- package/test/fixtures/docx/F09-comments-single-paragraph.md +0 -33
- package/test/fixtures/docx/F10-threaded-comments-resolve.docx +0 -0
- package/test/fixtures/docx/F10-threaded-comments-resolve.md +0 -33
- package/test/fixtures/docx/F11-redlines-basic.docx +0 -0
- package/test/fixtures/docx/F11-redlines-basic.md +0 -33
- package/test/fixtures/docx/F12-redlines-paragraph-joins-splits.docx +0 -0
- package/test/fixtures/docx/F12-redlines-paragraph-joins-splits.md +0 -33
- package/test/fixtures/docx/F13-comments-on-deleted-text.docx +0 -0
- package/test/fixtures/docx/F13-comments-on-deleted-text.md +0 -33
- package/test/fixtures/docx/F14-revisions-in-tables-and-lists.docx +0 -0
- package/test/fixtures/docx/F14-revisions-in-tables-and-lists.md +0 -33
- package/test/fixtures/docx/F15-sections-headers-footers.docx +0 -0
- package/test/fixtures/docx/F15-sections-headers-footers.md +0 -33
- package/test/fixtures/docx/F16-footnotes-endnotes.docx +0 -0
- package/test/fixtures/docx/F16-footnotes-endnotes.md +0 -33
- package/test/fixtures/docx/F17-fields-and-toc.docx +0 -0
- package/test/fixtures/docx/F17-fields-and-toc.md +0 -33
- package/test/fixtures/docx/F18-content-controls-template.docx +0 -0
- package/test/fixtures/docx/F18-content-controls-template.md +0 -33
- package/test/fixtures/docx/F19-custom-xml-doc-assembly.docx +0 -0
- package/test/fixtures/docx/F19-custom-xml-doc-assembly.md +0 -35
- package/test/fixtures/docx/F20-unknown-ooxml-and-alternatecontent.docx +0 -0
- package/test/fixtures/docx/F20-unknown-ooxml-and-alternatecontent.md +0 -33
- package/test/fixtures/docx/F21-malformed-broken-docx.docx +0 -0
- package/test/fixtures/docx/F21-malformed-broken-docx.md +0 -33
- package/test/fixtures/docx/README.md +0 -74
- package/test/fixtures/docx/certification-manifest.json +0 -104
- package/test/fixtures/docx/fixtures.manifest.json +0 -196
- package/test/fixtures/encrypted-docx/README.md +0 -27
- package/test/fixtures/encrypted-docx/certification-manifest.json +0 -9
- package/test/fixtures/encrypted-docx/fixtures.manifest.json +0 -47
- package/test/fixtures/scenarios/docx/README.md +0 -25
- package/test/fixtures/scenarios/docx/S01-sow-template.docx +0 -0
- package/test/fixtures/scenarios/docx/S01-sow-template.md +0 -30
- package/test/fixtures/scenarios/docx/S02-bw-partner-user-licence-agreement-redlines.docx +0 -0
- package/test/fixtures/scenarios/docx/S02-bw-partner-user-licence-agreement-redlines.md +0 -32
- package/test/fixtures/scenarios/docx/scenario-manifest.json +0 -53
- package/test/formats/xlsx/io/xlsx-import.test.ts +0 -766
- package/test/formats/xlsx/model/workbook.test.ts +0 -669
- package/test/helpers/dom-setup.ts +0 -124
- package/test/io/comment-roundtrip.test.ts +0 -272
- package/test/io/complex-content-roundtrip.test.ts +0 -632
- package/test/io/docx-compatibility-regression.test.ts +0 -199
- package/test/io/docx-session.test.ts +0 -1495
- package/test/io/footnotes-roundtrip.test.ts +0 -318
- package/test/io/headers-footers-roundtrip.test.ts +0 -547
- package/test/io/numbering-roundtrip.test.ts +0 -234
- package/test/io/package-reader.test.ts +0 -199
- package/test/io/paragraph-properties-roundtrip.test.ts +0 -129
- package/test/io/preserved-package-roundtrip.test.ts +0 -365
- package/test/io/property-completeness.test.ts +0 -292
- package/test/io/revision-roundtrip.test.ts +0 -347
- package/test/io/structural-blocks.test.ts +0 -202
- package/test/io/table-media-roundtrip.test.ts +0 -448
- package/test/io/table-properties-roundtrip.test.ts +0 -569
- package/test/io/table-roundtrip.test.ts +0 -302
- package/test/io/text-roundtrip.test.ts +0 -344
- package/test/model/canonical-document.test.ts +0 -285
- package/test/preservation/opaque-fragment-store.test.ts +0 -121
- package/test/preservation/package-preservation.test.ts +0 -395
- package/test/preservation/store.test.ts +0 -84
- package/test/review/comment-remapping.test.ts +0 -220
- package/test/review/comment-store.test.ts +0 -180
- package/test/review/move-revisions.test.ts +0 -143
- package/test/review/property-change-revisions.test.ts +0 -225
- package/test/review/revision-actions.test.ts +0 -330
- package/test/review/revision-store.test.ts +0 -193
- package/test/runtime/session-capabilities.test.ts +0 -260
- package/test/runtime/table-commands.test.ts +0 -356
- package/test/runtime/table-schema.test.ts +0 -221
- package/test/runtime/tracked-changes-toggle.test.ts +0 -107
- package/test/ui/comment-review-surface.test.tsx +0 -114
- package/test/ui/reduced-motion-toggle.test.tsx +0 -137
- package/test/ui/word-review-editor.imported-scenarios.test.tsx +0 -169
- package/test/ui/word-review-editor.interaction.test.tsx +0 -1198
- package/test/ui/word-review-editor.test.js +0 -188
- package/test/ui/word-review-editor.test.tsx +0 -280
- package/test/ui-tailwind/search-plugin.test.ts +0 -286
- package/test/validation/compatibility-engine.test.ts +0 -336
- package/test/validation/compatibility-report.test.ts +0 -189
- package/test/validation/low-priority-word-surfaces.test.ts +0 -282
- package/test/validation/malformed-doc.test.ts +0 -113
- package/test-results/.last-run.json +0 -4
- package/wave.config.json +0 -406
|
@@ -1,456 +0,0 @@
|
|
|
1
|
-
# Public API
|
|
2
|
-
|
|
3
|
-
This file defines the intended public API for the shipped docx React component.
|
|
4
|
-
|
|
5
|
-
Within the broader `react-ooxml-office` repo story, this remains a format-specific contract:
|
|
6
|
-
|
|
7
|
-
- it describes the current `docx` implementation only
|
|
8
|
-
- it does not define a neutral multi-format editor API
|
|
9
|
-
- future `xlsx` or other verticals should gain sibling API docs rather than silently widening `WordReviewEditor`
|
|
10
|
-
|
|
11
|
-
## Public Component
|
|
12
|
-
|
|
13
|
-
```tsx
|
|
14
|
-
<WordReviewEditor />
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
The repo standardizes on `WordReviewEditor` as the public name across docs, source, and services.
|
|
18
|
-
|
|
19
|
-
Internal harness routes, Railway demo pages, certification dashboards, and other operator-facing surfaces are not part of the public component API. They may exercise the same runtime, but they are documentation, proof, or demo surfaces rather than shipped host contracts.
|
|
20
|
-
|
|
21
|
-
## Public Contracts
|
|
22
|
-
|
|
23
|
-
The implementation should expose:
|
|
24
|
-
|
|
25
|
-
- `WordReviewEditor`
|
|
26
|
-
- `WordReviewEditorProps`
|
|
27
|
-
- `WordReviewEditorRef`
|
|
28
|
-
- `EditorUser`
|
|
29
|
-
- `EditorDatastoreAdapter`
|
|
30
|
-
- `PersistedEditorSnapshot`
|
|
31
|
-
- `CompatibilityReport`
|
|
32
|
-
- `EditorWarning`
|
|
33
|
-
- `EditorError`
|
|
34
|
-
- `WordReviewEditorEvent`
|
|
35
|
-
|
|
36
|
-
The runtime-facing internal session type is `DocumentRuntime`. `WordEditor` is not a shipped public name.
|
|
37
|
-
|
|
38
|
-
## Usage Model
|
|
39
|
-
|
|
40
|
-
The component is uncontrolled by default.
|
|
41
|
-
|
|
42
|
-
Host responsibilities:
|
|
43
|
-
|
|
44
|
-
- provide `documentId`
|
|
45
|
-
- provide `currentUser`
|
|
46
|
-
- provide exactly one initial source on first load: `initialDocx` or `initialSnapshot`
|
|
47
|
-
- optionally provide a datastore adapter
|
|
48
|
-
- optionally listen to events, warnings, and errors
|
|
49
|
-
|
|
50
|
-
Runtime responsibilities:
|
|
51
|
-
|
|
52
|
-
- own the live editing session
|
|
53
|
-
- apply commands and transactions
|
|
54
|
-
- manage undo and redo
|
|
55
|
-
- manage comments and revisions
|
|
56
|
-
- expose review-ready runtime snapshot projections for the document surface, comment sidebar, revision sidebar, and compatibility surfaces
|
|
57
|
-
- provide export and compatibility reporting
|
|
58
|
-
|
|
59
|
-
Controlled behavior is intentionally narrow:
|
|
60
|
-
|
|
61
|
-
- hosts may replace the active document only through `externalDocumentRevision` plus `externalDocSource`
|
|
62
|
-
- when the revision token changes, the editor tears down the current session and reloads the new source
|
|
63
|
-
- hosts do not stream keystrokes or partial selections back into props
|
|
64
|
-
|
|
65
|
-
## Ref Surface
|
|
66
|
-
|
|
67
|
-
The ref should support:
|
|
68
|
-
|
|
69
|
-
- `focus()`
|
|
70
|
-
- `blur()`
|
|
71
|
-
- `undo()`
|
|
72
|
-
- `redo()`
|
|
73
|
-
- `addComment(...)`
|
|
74
|
-
- `openComment(commentId)`
|
|
75
|
-
- `resolveComment(commentId)`
|
|
76
|
-
- `reopenComment(commentId)`
|
|
77
|
-
- `addCommentReply(commentId, body)`
|
|
78
|
-
- `editCommentBody(commentId, body)`
|
|
79
|
-
- `acceptChange(changeId)`
|
|
80
|
-
- `rejectChange(changeId)`
|
|
81
|
-
- `acceptAllChanges()`
|
|
82
|
-
- `rejectAllChanges()`
|
|
83
|
-
- `exportDocx(options?)`
|
|
84
|
-
- `getSnapshot()`
|
|
85
|
-
- `getCompatibilityReport()`
|
|
86
|
-
- `getWarnings()`
|
|
87
|
-
|
|
88
|
-
The ref is a thin wrapper over the runtime. It does not expose DOM nodes or mutable canonical state.
|
|
89
|
-
|
|
90
|
-
## Props Surface
|
|
91
|
-
|
|
92
|
-
```ts
|
|
93
|
-
type ExternalDocumentSource =
|
|
94
|
-
| {
|
|
95
|
-
kind: "docx";
|
|
96
|
-
bytes: Uint8Array | ArrayBuffer;
|
|
97
|
-
sourceLabel?: string;
|
|
98
|
-
}
|
|
99
|
-
| {
|
|
100
|
-
kind: "snapshot";
|
|
101
|
-
snapshot: PersistedEditorSnapshot;
|
|
102
|
-
sourceLabel?: string;
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
interface WordReviewEditorProps {
|
|
106
|
-
documentId: string;
|
|
107
|
-
currentUser: EditorUser;
|
|
108
|
-
|
|
109
|
-
initialDocx?: Uint8Array | ArrayBuffer;
|
|
110
|
-
initialSnapshot?: PersistedEditorSnapshot;
|
|
111
|
-
initialSourceLabel?: string;
|
|
112
|
-
|
|
113
|
-
externalDocumentRevision?: string;
|
|
114
|
-
externalDocSource?: ExternalDocumentSource;
|
|
115
|
-
|
|
116
|
-
readOnly?: boolean;
|
|
117
|
-
reviewMode?: "editing" | "review";
|
|
118
|
-
|
|
119
|
-
// reviewMode behavior:
|
|
120
|
-
// - "editing" (default in some contexts): Reduces review chrome. Review rail hidden by default. Editing controls primary.
|
|
121
|
-
// - "review" (default): Review rail visible. Comments and changes are prominent.
|
|
122
|
-
// - Both modes keep health/trust information reachable and fatal errors always visible.
|
|
123
|
-
// - reviewMode does NOT control editing capability — use readOnly for that.
|
|
124
|
-
|
|
125
|
-
markupDisplay?: "clean" | "simple" | "all";
|
|
126
|
-
// markupDisplay is accepted for backward compatibility but is now
|
|
127
|
-
// derived internally from the editor's view mode (canvas → clean,
|
|
128
|
-
// document → all). The editor manages viewMode as internal state;
|
|
129
|
-
// it is not a public prop on WordReviewEditorProps.
|
|
130
|
-
|
|
131
|
-
datastore?: EditorDatastoreAdapter;
|
|
132
|
-
autosave?: AutosaveConfig;
|
|
133
|
-
|
|
134
|
-
onEvent?: (event: WordReviewEditorEvent) => void;
|
|
135
|
-
onWarning?: (warning: EditorWarning) => void;
|
|
136
|
-
onError?: (error: EditorError) => void;
|
|
137
|
-
}
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
Load rules:
|
|
141
|
-
|
|
142
|
-
- provide exactly one of `initialDocx` or `initialSnapshot` for an explicit initial load
|
|
143
|
-
- `externalDocumentRevision` plus `externalDocSource` is the only replace-on-change path
|
|
144
|
-
- if the external revision token does not change, props do not mutate the live session
|
|
145
|
-
- `initialDocx` now boots a real package-backed session, not a text-only fallback snapshot
|
|
146
|
-
- malformed or unreadable package bytes fail closed into diagnostics/read-only mode with export blocked
|
|
147
|
-
|
|
148
|
-
## Planned AI Action Extension
|
|
149
|
-
|
|
150
|
-
This contract is reserved for the post-v1 roadmap and is not part of the
|
|
151
|
-
currently shipped public surface in `src/api/public-types.ts`.
|
|
152
|
-
|
|
153
|
-
The intended shape is:
|
|
154
|
-
|
|
155
|
-
- the host supplies the model access or action executor
|
|
156
|
-
- the runtime packages canonical context such as selection, section bounds, anchors, comment threads, revisions, compatibility warnings, and edit capabilities
|
|
157
|
-
- AI actions target bounded legal-review workflows rather than arbitrary document mutation
|
|
158
|
-
- content-changing results come back as proposals or runtime command requests that must pass normal validation, compatibility, and export gates
|
|
159
|
-
- the UI must present explicit review/confirmation affordances before applying content-changing proposals
|
|
160
|
-
|
|
161
|
-
Illustrative direction:
|
|
162
|
-
|
|
163
|
-
```ts
|
|
164
|
-
type PlannedWordReviewEditorAiAction =
|
|
165
|
-
| "edit_selection"
|
|
166
|
-
| "rewrite_section"
|
|
167
|
-
| "summarize_comments"
|
|
168
|
-
| "suggest_comment_response"
|
|
169
|
-
| "resolve_comment_thread"
|
|
170
|
-
| "apply_drafting_instruction"
|
|
171
|
-
| "validate_and_export";
|
|
172
|
-
|
|
173
|
-
interface PlannedWordReviewEditorAiRequest {
|
|
174
|
-
action: PlannedWordReviewEditorAiAction;
|
|
175
|
-
instruction?: string;
|
|
176
|
-
selection?: SelectionSnapshot;
|
|
177
|
-
anchor?: EditorAnchorProjection;
|
|
178
|
-
commentIds?: string[];
|
|
179
|
-
revisionIds?: string[];
|
|
180
|
-
compatibility: CompatibilityReport;
|
|
181
|
-
capabilities: {
|
|
182
|
-
readOnly: boolean;
|
|
183
|
-
canEdit: boolean;
|
|
184
|
-
canExport: boolean;
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
interface PlannedWordReviewEditorAiAdapter {
|
|
189
|
-
runAction(
|
|
190
|
-
request: PlannedWordReviewEditorAiRequest,
|
|
191
|
-
): Promise<
|
|
192
|
-
| {
|
|
193
|
-
kind: "proposal";
|
|
194
|
-
summary: string;
|
|
195
|
-
requiresConfirmation: true;
|
|
196
|
-
}
|
|
197
|
-
| {
|
|
198
|
-
kind: "workflow";
|
|
199
|
-
workflow: "validate_and_export";
|
|
200
|
-
}
|
|
201
|
-
| {
|
|
202
|
-
kind: "rejected";
|
|
203
|
-
reason: string;
|
|
204
|
-
}
|
|
205
|
-
>;
|
|
206
|
-
}
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
Guardrails for the planned surface:
|
|
210
|
-
|
|
211
|
-
- no built-in model client ships inside `WordReviewEditor`
|
|
212
|
-
- no direct DOM writes or direct canonical-state mutation from model output
|
|
213
|
-
- no bypass around permissions, protected ranges, compatibility warnings, or export blockers
|
|
214
|
-
- no implication that unsupported OOXML becomes editable just because an AI action exists
|
|
215
|
-
|
|
216
|
-
## Encrypted Source Handling
|
|
217
|
-
|
|
218
|
-
The active component contract does not include editor-owned handling for password-to-open Office containers, and encrypted intake is not part of the active wave roadmap.
|
|
219
|
-
|
|
220
|
-
Hosts must provide one of:
|
|
221
|
-
|
|
222
|
-
- normal OPC `.docx` bytes through `initialDocx`
|
|
223
|
-
- normal OPC `.docx` bytes through `externalDocSource.kind = "docx"`
|
|
224
|
-
- a canonical snapshot
|
|
225
|
-
|
|
226
|
-
If an upstream system accepts encrypted Office containers, it must decrypt or otherwise preprocess them before handing bytes to `WordReviewEditor`. Reintroducing editor-owned encrypted intake would require an explicit public-API revision rather than a silent expansion of the current load surface.
|
|
227
|
-
|
|
228
|
-
## Runtime Snapshot Direction
|
|
229
|
-
|
|
230
|
-
The host-facing persisted snapshot is still `PersistedEditorSnapshot`.
|
|
231
|
-
|
|
232
|
-
The live UI should render from `RuntimeRenderSnapshot`, not by reconstructing review state from persisted data during render. In particular:
|
|
233
|
-
|
|
234
|
-
- the comment sidebar reads runtime-owned thread projections, detached/open/resolved counts, and the active thread id from `RuntimeRenderSnapshot.comments`
|
|
235
|
-
- the tracked-change sidebar reads runtime-owned revision projections, actionability flags, and batch counts from `RuntimeRenderSnapshot.trackedChanges`
|
|
236
|
-
- compatibility surfaces read explicit blocking reasons from `RuntimeRenderSnapshot.compatibility`
|
|
237
|
-
|
|
238
|
-
Selectors may reshape those projections for presentation, but they must not invent a second source of live review truth.
|
|
239
|
-
|
|
240
|
-
Current boundary note:
|
|
241
|
-
|
|
242
|
-
- `SelectionSnapshot`, `EditorAnchorProjection`, and `EditorSurfaceSnapshot` still describe the current flat paragraph/opaque-block runtime.
|
|
243
|
-
- Imported body-level tables remain preserve-only in the live editor path.
|
|
244
|
-
- Future post-v1 waves must revise these contracts explicitly as new slices become `read-only projected`, `bounded editable`, or fully owned rather than silently widening the current public types.
|
|
245
|
-
|
|
246
|
-
## Event Surface
|
|
247
|
-
|
|
248
|
-
The canonical host event stream is a discriminated union:
|
|
249
|
-
|
|
250
|
-
```ts
|
|
251
|
-
type WordReviewEditorEvent =
|
|
252
|
-
| {
|
|
253
|
-
type: "ready";
|
|
254
|
-
documentId: string;
|
|
255
|
-
sessionId: string;
|
|
256
|
-
source: "docx" | "snapshot" | "datastore" | "canonical";
|
|
257
|
-
stats: DocumentStats;
|
|
258
|
-
compatibility: CompatibilityReport;
|
|
259
|
-
}
|
|
260
|
-
| {
|
|
261
|
-
type: "dirty_changed";
|
|
262
|
-
documentId: string;
|
|
263
|
-
isDirty: boolean;
|
|
264
|
-
}
|
|
265
|
-
| {
|
|
266
|
-
type: "selection_changed";
|
|
267
|
-
documentId: string;
|
|
268
|
-
selection: SelectionSnapshot;
|
|
269
|
-
}
|
|
270
|
-
| {
|
|
271
|
-
type: "comment_added";
|
|
272
|
-
documentId: string;
|
|
273
|
-
commentId: string;
|
|
274
|
-
anchor: EditorAnchorProjection;
|
|
275
|
-
}
|
|
276
|
-
| {
|
|
277
|
-
type: "comment_resolved";
|
|
278
|
-
documentId: string;
|
|
279
|
-
commentId: string;
|
|
280
|
-
}
|
|
281
|
-
| {
|
|
282
|
-
type: "change_accepted";
|
|
283
|
-
documentId: string;
|
|
284
|
-
changeId: string;
|
|
285
|
-
}
|
|
286
|
-
| {
|
|
287
|
-
type: "change_rejected";
|
|
288
|
-
documentId: string;
|
|
289
|
-
changeId: string;
|
|
290
|
-
}
|
|
291
|
-
| {
|
|
292
|
-
type: "warning_added";
|
|
293
|
-
documentId: string;
|
|
294
|
-
warning: EditorWarning;
|
|
295
|
-
}
|
|
296
|
-
| {
|
|
297
|
-
type: "warning_cleared";
|
|
298
|
-
documentId: string;
|
|
299
|
-
warningId: string;
|
|
300
|
-
code: EditorWarning["code"];
|
|
301
|
-
}
|
|
302
|
-
| {
|
|
303
|
-
type: "error";
|
|
304
|
-
documentId: string;
|
|
305
|
-
error: EditorError;
|
|
306
|
-
}
|
|
307
|
-
| {
|
|
308
|
-
type: "autosave_state";
|
|
309
|
-
documentId: string;
|
|
310
|
-
state: AutosaveState;
|
|
311
|
-
}
|
|
312
|
-
| {
|
|
313
|
-
type: "snapshot_saved";
|
|
314
|
-
documentId: string;
|
|
315
|
-
snapshot: PersistedEditorSnapshot;
|
|
316
|
-
isAutosave: boolean;
|
|
317
|
-
}
|
|
318
|
-
| {
|
|
319
|
-
type: "export_completed";
|
|
320
|
-
documentId: string;
|
|
321
|
-
result: ExportResult;
|
|
322
|
-
};
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
Event delivery rules:
|
|
326
|
-
|
|
327
|
-
- each mounted runtime load emits exactly one `ready` event
|
|
328
|
-
- hosts should treat `ready` as the authoritative session-start marker rather than inferring load completion from render timing
|
|
329
|
-
|
|
330
|
-
Planned AI-event direction:
|
|
331
|
-
|
|
332
|
-
- a future AI extension may add runtime-owned events such as `ai_action_started`, `ai_action_proposed`, `ai_action_applied`, and `ai_action_failed`
|
|
333
|
-
- those events are not part of the current shipped `WordReviewEditorEvent` union and should not be exposed until the AI contract lands as a deliberate API revision
|
|
334
|
-
|
|
335
|
-
## Warnings And Errors
|
|
336
|
-
|
|
337
|
-
```ts
|
|
338
|
-
type EditorAnchorProjection =
|
|
339
|
-
| {
|
|
340
|
-
kind: "range";
|
|
341
|
-
from: number;
|
|
342
|
-
to: number;
|
|
343
|
-
assoc: {
|
|
344
|
-
start: -1 | 1;
|
|
345
|
-
end: -1 | 1;
|
|
346
|
-
};
|
|
347
|
-
}
|
|
348
|
-
| {
|
|
349
|
-
kind: "node";
|
|
350
|
-
at: number;
|
|
351
|
-
assoc: -1 | 1;
|
|
352
|
-
}
|
|
353
|
-
| {
|
|
354
|
-
kind: "detached";
|
|
355
|
-
lastKnownRange: {
|
|
356
|
-
from: number;
|
|
357
|
-
to: number;
|
|
358
|
-
};
|
|
359
|
-
reason: "deleted" | "invalidatedByStructureChange" | "importAmbiguity";
|
|
360
|
-
};
|
|
361
|
-
|
|
362
|
-
interface EditorWarning {
|
|
363
|
-
warningId: string;
|
|
364
|
-
code:
|
|
365
|
-
| "unsupported_ooxml_preserved"
|
|
366
|
-
| "unsupported_ooxml_locked"
|
|
367
|
-
| "import_normalized"
|
|
368
|
-
| "export_roundtrip_risk"
|
|
369
|
-
| "comment_anchor_detached"
|
|
370
|
-
| "revision_anchor_detached"
|
|
371
|
-
| "large_document_degraded"
|
|
372
|
-
| "font_substitution"
|
|
373
|
-
| "image_missing";
|
|
374
|
-
severity: "info" | "warning";
|
|
375
|
-
message: string;
|
|
376
|
-
source:
|
|
377
|
-
| "import"
|
|
378
|
-
| "runtime"
|
|
379
|
-
| "review"
|
|
380
|
-
| "preservation"
|
|
381
|
-
| "validation"
|
|
382
|
-
| "export";
|
|
383
|
-
affectedAnchor?: EditorAnchorProjection;
|
|
384
|
-
featureEntryId?: string;
|
|
385
|
-
details?: Record<string, unknown>;
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
interface EditorError {
|
|
389
|
-
errorId: string;
|
|
390
|
-
code:
|
|
391
|
-
| "import_failed"
|
|
392
|
-
| "export_failed"
|
|
393
|
-
| "package_corrupt"
|
|
394
|
-
| "validation_failed"
|
|
395
|
-
| "datastore_failed"
|
|
396
|
-
| "internal_invariant";
|
|
397
|
-
message: string;
|
|
398
|
-
isFatal: boolean;
|
|
399
|
-
source:
|
|
400
|
-
| "import"
|
|
401
|
-
| "runtime"
|
|
402
|
-
| "validation"
|
|
403
|
-
| "datastore"
|
|
404
|
-
| "export";
|
|
405
|
-
details?: Record<string, unknown>;
|
|
406
|
-
}
|
|
407
|
-
```
|
|
408
|
-
|
|
409
|
-
Range references are runtime-derived projections over canonical positions. DOM paths are not part of the public contract.
|
|
410
|
-
|
|
411
|
-
## Persistence Model
|
|
412
|
-
|
|
413
|
-
The datastore adapter should support:
|
|
414
|
-
|
|
415
|
-
- loading the latest snapshot or source document
|
|
416
|
-
- saving fast JSON checkpoints
|
|
417
|
-
- saving exported `.docx` artifacts
|
|
418
|
-
- optional telemetry emission
|
|
419
|
-
|
|
420
|
-
The persisted resume artifact is:
|
|
421
|
-
|
|
422
|
-
```ts
|
|
423
|
-
interface PersistedEditorSnapshot {
|
|
424
|
-
snapshotVersion: "persisted-editor-snapshot/1";
|
|
425
|
-
schemaVersion: "cds/1.0.0";
|
|
426
|
-
documentId: string;
|
|
427
|
-
docId: string;
|
|
428
|
-
createdAt: string;
|
|
429
|
-
updatedAt: string;
|
|
430
|
-
savedAt: string;
|
|
431
|
-
editorBuild: string;
|
|
432
|
-
canonicalDocument: CanonicalDocument;
|
|
433
|
-
compatibility: CompatibilityReport;
|
|
434
|
-
warningLog: EditorWarning[];
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
interface CompatibilityReport {
|
|
438
|
-
reportVersion: "compatibility-report/1";
|
|
439
|
-
generatedAt: string;
|
|
440
|
-
blockExport: boolean;
|
|
441
|
-
featureEntries: CompatibilityFeatureEntry[];
|
|
442
|
-
warnings: EditorWarning[];
|
|
443
|
-
errors: EditorError[];
|
|
444
|
-
}
|
|
445
|
-
```
|
|
446
|
-
|
|
447
|
-
Persistence rules:
|
|
448
|
-
|
|
449
|
-
- `getSnapshot()` returns `PersistedEditorSnapshot`
|
|
450
|
-
- loading a snapshot resumes canonical state without rerunning `.docx` import
|
|
451
|
-
- render snapshots are internal runtime projections and are not a persistence contract
|
|
452
|
-
- manual export first saves a non-autosave snapshot checkpoint through `datastore.saveSnapshot(...)`
|
|
453
|
-
- if that manual checkpoint fails, export is rejected and `saveExport(...)` is not attempted
|
|
454
|
-
- autosave timers are scoped to the current revision token, so a successful manual export checkpoint clears any pending autosave for the same revision
|
|
455
|
-
|
|
456
|
-
The host does not stream keystrokes through props. Replace-on-change is the only supported controlled pattern.
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
# Repository Guidance
|
|
2
|
-
|
|
3
|
-
Use this page as the default in-repo guidance for product and architecture work.
|
|
4
|
-
|
|
5
|
-
## Defaults
|
|
6
|
-
|
|
7
|
-
- Keep host-format fidelity as the top-level product invariant.
|
|
8
|
-
- Treat runtime-owned structured state as the canonical source of truth.
|
|
9
|
-
- Route all edits through commands and transactions; do not patch DOM state directly and call it authoritative.
|
|
10
|
-
- Preserve unsupported but preservable OOXML whenever possible; never silently drop unknown content.
|
|
11
|
-
- Keep file ownership explicit in plans, waves, and ad-hoc prompts.
|
|
12
|
-
- Prefer small, reviewable changes over broad speculative rewrites.
|
|
13
|
-
- Update impacted docs when interfaces, scope, component maturity, or proof expectations change.
|
|
14
|
-
- Keep maturity docs aligned with real subsystem status rather than narrative progress.
|
|
15
|
-
- Run the relevant validation commands or fixture checks for touched surfaces.
|
|
16
|
-
- Treat external docs as non-canonical unless the task is explicitly about third-party APIs or OOXML behavior.
|
|
17
|
-
|
|
18
|
-
## Layered Repo Rules
|
|
19
|
-
|
|
20
|
-
- The only shipped implementation today is the docx runtime behind `WordReviewEditor`.
|
|
21
|
-
- Shared platform docs may broaden before the source tree does; do not misrepresent planned structure as landed code.
|
|
22
|
-
- `xlsx` planning work should align to the shared OOXML platform doctrine without copying docx-specific UI or ProseMirror assumptions into spreadsheet architecture.
|
|
23
|
-
- `pdf` may appear in repo-level planning, but it is not part of the first shared OOXML platform contract.
|
|
24
|
-
|
|
25
|
-
## Current Docx Rules
|
|
26
|
-
|
|
27
|
-
- The current shipped editor is not a Word clone. Keep UI clean, contextual, and minimal.
|
|
28
|
-
- The repo is still optimized around legal-review workflows in the landed docx runtime. Comments, redlines, lists, tables, and safe round-trip behavior matter more than cosmetic formatting breadth.
|
|
29
|
-
- Follow `DESIGN.md` for current docx layout, token, and interaction decisions.
|
|
30
|
-
- Default visual posture is calm, precise, and review-oriented.
|
|
31
|
-
- Prefer canvas mode as the baseline review experience; page mode is optional and secondary.
|
|
32
|
-
- Keep the document surface central. Toolbars, sidebars, and status surfaces should support it, not compete with it.
|
|
33
|
-
- Separate canonical content, review state, preservation layer, UI state, and OOXML import or export boundaries.
|
|
34
|
-
- The shipped editor runs in the main thread with no Web Workers.
|
|
35
|
-
- The Microsoft Open XML SDK must not be pulled into the shipped React bundle. Use it only in CI or internal validation services.
|
|
36
|
-
|
|
37
|
-
## Validation Bias
|
|
38
|
-
|
|
39
|
-
When making architecture decisions, prefer proofs that increase confidence in:
|
|
40
|
-
|
|
41
|
-
- current docx import safety
|
|
42
|
-
- current docx export safety
|
|
43
|
-
- Word reopen compatibility for shipped flows
|
|
44
|
-
- future Excel reopen compatibility for planned xlsx flows
|
|
45
|
-
- anchor and range remapping stability
|
|
46
|
-
- preservation of unsupported content
|
|
47
|
-
- adherence to the token-driven design system when UI surfaces are touched
|
|
48
|
-
|
|
49
|
-
## Update These Docs When Behavior Changes
|
|
50
|
-
|
|
51
|
-
- `docs/plans/master-plan.md`
|
|
52
|
-
- `docs/plans/current-state.md`
|
|
53
|
-
- `docs/roadmap.md`
|
|
54
|
-
- `docs/plans/component-cutover-matrix.md`
|
|
55
|
-
- `docs/plans/waves/README.md`
|
|
56
|
-
- `docs/reference/public-api.md` when the shipped docx public behavior changes
|
|
57
|
-
- `docs/reference/ooxml-compliance.md` for shipped docx compatibility changes
|
|
58
|
-
- `docs/reference/xlsx/xlsx-ooxml-compliance.md` for planned xlsx contract changes
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
# Runtime Configuration Reference
|
|
2
|
-
|
|
3
|
-
This directory is the canonical reference for executor configuration in the packaged Wave release.
|
|
4
|
-
|
|
5
|
-
Use it when you need the full supported surface for:
|
|
6
|
-
|
|
7
|
-
- `wave.config.json`
|
|
8
|
-
- `lanes.<lane>.executors`
|
|
9
|
-
- `waveControl`
|
|
10
|
-
- `executors.profiles.<profile>`
|
|
11
|
-
- per-agent `### Executor` blocks inside a wave file
|
|
12
|
-
|
|
13
|
-
## Naming Conventions
|
|
14
|
-
|
|
15
|
-
- `wave.config.json` uses camelCase keys such as `profileName`, `addDirs`, `settingsJson`, and `allowedHttpHookUrls`.
|
|
16
|
-
- Wave markdown `### Executor` blocks use snake_case after the runtime prefix, such as `codex.profile_name`, `codex.add_dirs`, `claude.settings_json`, and `claude.allowed_http_hook_urls`.
|
|
17
|
-
|
|
18
|
-
## Resolution Order
|
|
19
|
-
|
|
20
|
-
Executor id selection resolves in this order:
|
|
21
|
-
|
|
22
|
-
1. agent `### Executor` `id`
|
|
23
|
-
2. agent `### Executor` `profile` -> `executors.profiles.<profile>.id`
|
|
24
|
-
3. `lanes.<lane>.runtimePolicy.defaultExecutorByRole`
|
|
25
|
-
4. launcher `--executor`
|
|
26
|
-
5. `executors.default`
|
|
27
|
-
|
|
28
|
-
Runtime settings resolve in layers:
|
|
29
|
-
|
|
30
|
-
1. `executors.<runtime>` global defaults
|
|
31
|
-
2. `lanes.<lane>.executors.<runtime>` lane overrides
|
|
32
|
-
3. `executors.profiles.<profile>` or `lanes.<lane>.executors.profiles.<profile>`
|
|
33
|
-
4. agent `### Executor`
|
|
34
|
-
|
|
35
|
-
Merge behavior:
|
|
36
|
-
|
|
37
|
-
- scalar values override from later layers
|
|
38
|
-
- list values merge for profile plus agent resolution on top of the lane base
|
|
39
|
-
- lane executor overrides replace the corresponding global runtime fields before profile and agent resolution
|
|
40
|
-
- a lane profile with the same name as a global profile replaces that profile definition for the lane
|
|
41
|
-
|
|
42
|
-
Skill settings resolve after executor selection, because runtime and deploy-kind skill attachment depend on the resolved executor id and the wave's default deploy environment kind. The starter layering order is:
|
|
43
|
-
|
|
44
|
-
1. `skills.base`
|
|
45
|
-
2. `lanes.<lane>.skills.base`
|
|
46
|
-
3. `skills.byRole[resolvedRole]`
|
|
47
|
-
4. `lanes.<lane>.skills.byRole[resolvedRole]`
|
|
48
|
-
5. `skills.byRuntime[resolvedExecutorId]`
|
|
49
|
-
6. `lanes.<lane>.skills.byRuntime[resolvedExecutorId]`
|
|
50
|
-
7. `skills.byDeployKind[defaultDeployEnvironmentKind]`
|
|
51
|
-
8. `lanes.<lane>.skills.byDeployKind[defaultDeployEnvironmentKind]`
|
|
52
|
-
9. agent `### Skills`
|
|
53
|
-
|
|
54
|
-
Then Wave filters configured skills through each bundle's activation metadata. Explicit per-agent `### Skills` still force attachment even when activation metadata would not auto-match.
|
|
55
|
-
|
|
56
|
-
When retry-time fallback changes the runtime, Wave recomputes the effective skill set and rewrites the executor overlay before relaunch.
|
|
57
|
-
|
|
58
|
-
## Common Fields
|
|
59
|
-
|
|
60
|
-
These fields are shared across runtimes:
|
|
61
|
-
|
|
62
|
-
| Surface | `wave.config.json` / profile key | Wave `### Executor` key | Notes |
|
|
63
|
-
| --- | --- | --- | --- |
|
|
64
|
-
| Executor id | `id` in profile only | `id` | Runtime id: `codex`, `claude`, `opencode`, `local` |
|
|
65
|
-
| Profile selection | n/a | `profile` | Selects `executors.profiles.<name>` |
|
|
66
|
-
| Model | `model` in profile, `executors.claude.model`, `executors.opencode.model` | `model` | Codex uses shared `model` from profile or agent only |
|
|
67
|
-
| Fallbacks | `fallbacks` in profile | `fallbacks` | Runtime ids used for retry-time reassignment |
|
|
68
|
-
| Tags | `tags` in profile | `tags` | Stored in resolved executor state for policy and traces |
|
|
69
|
-
| Budget turns | `budget.turns` in profile | `budget.turns` | Advisory generic turn budget. Wave records it in resolved metadata, but only runtime-specific settings such as `claude.maxTurns` or `opencode.steps` emit hard turn-limit flags. It does not set a Codex turn limit. |
|
|
70
|
-
| Budget minutes | `budget.minutes` in profile | `budget.minutes` | Primary wall-clock attempt budget |
|
|
71
|
-
|
|
72
|
-
Practical guidance:
|
|
73
|
-
|
|
74
|
-
- prefer `budget.minutes` for normal synthesis, integration, and closure work
|
|
75
|
-
- use generic `budget.turns` as a planning hint, not a hard failure trigger
|
|
76
|
-
- only set `claude.maxTurns` or `opencode.steps` when you deliberately want a hard ceiling for that runtime
|
|
77
|
-
- see [../../guides/recommendations-0.8.9.md](../../guides/recommendations-0.8.9.md) for the recommended `0.8.9` operating stance that combines advisory turn budgets with softer non-proof coordination states
|
|
78
|
-
|
|
79
|
-
## Runtime Pages
|
|
80
|
-
|
|
81
|
-
- [codex.md](./codex.md)
|
|
82
|
-
- [claude.md](./claude.md)
|
|
83
|
-
- [opencode.md](./opencode.md)
|
|
84
|
-
|
|
85
|
-
## Wave Control
|
|
86
|
-
|
|
87
|
-
`wave.config.json` may also declare a `waveControl` block for local-first telemetry delivery.
|
|
88
|
-
|
|
89
|
-
Supported top-level fields:
|
|
90
|
-
|
|
91
|
-
| Key | Type | Default | Purpose |
|
|
92
|
-
| --- | --- | --- | --- |
|
|
93
|
-
| `enabled` | boolean | `true` | Master switch for local queueing and remote delivery |
|
|
94
|
-
| `endpoint` | string | unset | Base URL for the Railway-hosted `services/wave-control` API |
|
|
95
|
-
| `workspaceId` | string | derived from repo path | Stable workspace identity used across runs |
|
|
96
|
-
| `projectId` | string | derived from `projectName` | Stable project/repo identity used for cross-workspace reporting and filtering |
|
|
97
|
-
| `authTokenEnvVar` | string | `WAVE_CONTROL_AUTH_TOKEN` | Environment variable name holding the bearer token |
|
|
98
|
-
| `reportMode` | string | `metadata-plus-selected` | `disabled`, `metadata-only`, `metadata-plus-selected`, or `full-artifact-upload` |
|
|
99
|
-
| `uploadArtifactKinds` | string[] | selected proof/trace/benchmark kinds | Artifact classes eligible for body upload when an artifact's upload policy requests a body |
|
|
100
|
-
| `requestTimeoutMs` | integer | `5000` | Per-batch network timeout |
|
|
101
|
-
| `flushBatchSize` | integer | `25` | Max queued telemetry events flushed per batch |
|
|
102
|
-
| `maxPendingEvents` | integer | `1000` | Cap for pending remote-delivery queue files; oldest pending uploads are dropped from the remote queue while the local `events.jsonl` stream remains authoritative |
|
|
103
|
-
| `captureCoordinationRecords` | boolean | `true` | Emit `coordination_record` telemetry |
|
|
104
|
-
| `captureControlPlaneEvents` | boolean | `true` | Emit `wave_run`, `attempt`, `proof_bundle`, and related control-plane events |
|
|
105
|
-
| `captureTraceBundles` | boolean | `true` | Emit finalized trace-bundle artifacts and gate snapshots |
|
|
106
|
-
| `captureBenchmarkRuns` | boolean | `true` | Emit `benchmark_run`, `benchmark_item`, `verification`, and `review` events |
|
|
107
|
-
|
|
108
|
-
Lane overrides may refine the same keys under `lanes.<lane>.waveControl`.
|
|
109
|
-
|
|
110
|
-
One-run override:
|
|
111
|
-
|
|
112
|
-
- `wave launch --no-telemetry` disables Wave Control queueing and remote delivery for that launcher invocation without changing the repo config.
|
|
113
|
-
|
|
114
|
-
Example:
|
|
115
|
-
|
|
116
|
-
```json
|
|
117
|
-
{
|
|
118
|
-
"waveControl": {
|
|
119
|
-
"endpoint": "https://wave-control.up.railway.app/api/v1",
|
|
120
|
-
"workspaceId": "wave-main",
|
|
121
|
-
"projectId": "wave-orchestration",
|
|
122
|
-
"reportMode": "metadata-plus-selected",
|
|
123
|
-
"uploadArtifactKinds": [
|
|
124
|
-
"trace-run-metadata",
|
|
125
|
-
"trace-quality",
|
|
126
|
-
"benchmark-results"
|
|
127
|
-
]
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
Runtime-emitted Wave Control events also attach:
|
|
133
|
-
|
|
134
|
-
- `orchestratorId` from the active launcher or resident orchestrator
|
|
135
|
-
- `runtimeVersion` from the installed Wave package metadata
|
|
136
|
-
|
|
137
|
-
Those fields are queryable in the `wave-control` service alongside `workspaceId`,
|
|
138
|
-
`projectId`, `runKind`, `runId`, `lane`, and benchmark ids.
|
|
139
|
-
|
|
140
|
-
See [../wave-control.md](../wave-control.md) for the event contract and upload-policy model.
|
|
141
|
-
|
|
142
|
-
## Generated Artifacts
|
|
143
|
-
|
|
144
|
-
Wave writes runtime artifacts here:
|
|
145
|
-
|
|
146
|
-
- live runs: `.tmp/<lane>-wave-launcher/executors/wave-<n>/<agent-slug>/`
|
|
147
|
-
- dry-run previews: `.tmp/<lane>-wave-launcher/dry-run/executors/wave-<n>/<agent-slug>/`
|
|
148
|
-
|
|
149
|
-
Common files:
|
|
150
|
-
|
|
151
|
-
- `launch-preview.json`: resolved invocation lines, env vars, retry mode, and structured attempt/turn-limit metadata for both dry-run and live launches
|
|
152
|
-
- `skills.resolved.md`: compact metadata-first skill catalog for the selected agent and runtime
|
|
153
|
-
- `skills.expanded.md`: full canonical/debug skill payload with `SKILL.md` bodies and adapters
|
|
154
|
-
- `skills.metadata.json`: resolved skill ids, activation metadata, permissions, hashes, and generated artifact paths
|
|
155
|
-
- `<runtime>-skills.txt`: runtime-projected compact skill text used by the selected executor
|
|
156
|
-
- `claude-system-prompt.txt`: generated Claude harness prompt overlay
|
|
157
|
-
- `claude-settings.json`: generated Claude settings overlay when inline settings data is present
|
|
158
|
-
- `opencode-agent-prompt.txt`: generated OpenCode harness prompt overlay
|
|
159
|
-
- `opencode.json`: generated OpenCode runtime config overlay
|
|
160
|
-
- `.tmp/<lane>-wave-launcher/control-plane/telemetry/events.jsonl`: local-first Wave Control event stream
|
|
161
|
-
- `.tmp/<lane>-wave-launcher/control-plane/telemetry/pending/`: queued event batches awaiting remote delivery
|
|
162
|
-
- `.tmp/<lane>-wave-launcher/control-plane/telemetry/delivery-state.json`: remote-delivery counters and last-error state
|
|
163
|
-
|
|
164
|
-
Runtime-specific delivery:
|
|
165
|
-
|
|
166
|
-
- Codex uses the compact catalog in the compiled prompt and attaches bundle directories through `--add-dir`.
|
|
167
|
-
- Claude appends the compact catalog to the generated system-prompt overlay.
|
|
168
|
-
- OpenCode injects the compact catalog into `opencode.json` and attaches `skill.json`, `SKILL.md`, the selected adapter, and recursive `references/**` files through `--file`.
|
|
169
|
-
- Local keeps skills prompt-only.
|
|
170
|
-
|
|
171
|
-
`launch-preview.json` also records the resolved skill metadata plus a `limits` section. For Claude and OpenCode, that section reports the runtime-specific turn ceiling when one was actually configured; when only generic `budget.turns` exists, the preview keeps it as advisory metadata and notes that Wave emitted no hard turn-limit flag. For Codex, it explicitly records that Wave emitted no turn-limit flag and that any effective ceiling may come from the selected Codex profile or upstream runtime. If a live Codex run later terminates with a visible `Reached max turns (N)` log line, Wave appends that observed ceiling back into the live `launch-preview.json` as runtime evidence rather than pretending Wave set it.
|
|
172
|
-
|
|
173
|
-
## Recommended Validation Path
|
|
174
|
-
|
|
175
|
-
Use dry-run before relying on a new runtime configuration:
|
|
176
|
-
|
|
177
|
-
```bash
|
|
178
|
-
pnpm exec wave doctor
|
|
179
|
-
pnpm exec wave launch --lane main --dry-run --no-dashboard
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
Then inspect the generated preview and overlay files under `.tmp/<lane>-wave-launcher/dry-run/executors/`.
|