openplanr 3.2.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/dist/cli/commands/spec.d.ts +2 -1
- package/dist/cli/commands/spec.d.ts.map +1 -1
- package/dist/cli/commands/spec.js +45 -5
- package/dist/cli/commands/spec.js.map +1 -1
- package/dist/dashboard/.vite/manifest.json +1 -1
- package/dist/dashboard/assets/index-B_96uzCl.js +572 -0
- package/dist/dashboard/assets/index-B_96uzCl.js.map +1 -0
- package/dist/dashboard/dashboard-manifest.json +10 -10
- package/dist/dashboard/index.html +1 -1
- package/dist/services/claude-plugin-service.d.ts +5 -0
- package/dist/services/claude-plugin-service.d.ts.map +1 -1
- package/dist/services/claude-plugin-service.js +18 -2
- package/dist/services/claude-plugin-service.js.map +1 -1
- package/dist/services/codex-plugin-service.d.ts.map +1 -1
- package/dist/services/codex-plugin-service.js +11 -3
- package/dist/services/codex-plugin-service.js.map +1 -1
- package/dist/services/runtime-manager/codex-discovery.d.ts +1 -3
- package/dist/services/runtime-manager/codex-discovery.d.ts.map +1 -1
- package/dist/services/runtime-manager/codex-discovery.js +3 -16
- package/dist/services/runtime-manager/codex-discovery.js.map +1 -1
- package/dist/services/runtime-manager/doctor.d.ts +25 -0
- package/dist/services/runtime-manager/doctor.d.ts.map +1 -1
- package/dist/services/runtime-manager/doctor.js +480 -0
- package/dist/services/runtime-manager/doctor.js.map +1 -1
- package/dist/services/runtime-manager/errors.d.ts +12 -0
- package/dist/services/runtime-manager/errors.d.ts.map +1 -0
- package/dist/services/runtime-manager/errors.js +14 -0
- package/dist/services/runtime-manager/errors.js.map +1 -0
- package/dist/services/runtime-manager/global-state.d.ts +7 -0
- package/dist/services/runtime-manager/global-state.d.ts.map +1 -1
- package/dist/services/runtime-manager/global-state.js +116 -0
- package/dist/services/runtime-manager/global-state.js.map +1 -1
- package/dist/services/runtime-manager/host-version-probe.d.ts +8 -0
- package/dist/services/runtime-manager/host-version-probe.d.ts.map +1 -0
- package/dist/services/runtime-manager/host-version-probe.js +14 -0
- package/dist/services/runtime-manager/host-version-probe.js.map +1 -0
- package/dist/services/runtime-manager/install-plan.d.ts +25 -0
- package/dist/services/runtime-manager/install-plan.d.ts.map +1 -1
- package/dist/services/runtime-manager/install-plan.js +305 -0
- package/dist/services/runtime-manager/install-plan.js.map +1 -1
- package/dist/services/runtime-manager/inventory.d.ts +6 -0
- package/dist/services/runtime-manager/inventory.d.ts.map +1 -1
- package/dist/services/runtime-manager/inventory.js +16 -1
- package/dist/services/runtime-manager/inventory.js.map +1 -1
- package/dist/services/runtime-manager/legacy-adapters.d.ts +9 -0
- package/dist/services/runtime-manager/legacy-adapters.d.ts.map +1 -0
- package/dist/services/runtime-manager/legacy-adapters.js +187 -0
- package/dist/services/runtime-manager/legacy-adapters.js.map +1 -0
- package/dist/services/runtime-manager/paths.d.ts +18 -0
- package/dist/services/runtime-manager/paths.d.ts.map +1 -0
- package/dist/services/runtime-manager/paths.js +83 -0
- package/dist/services/runtime-manager/paths.js.map +1 -0
- package/dist/services/runtime-manager/runtime-package.d.ts +21 -0
- package/dist/services/runtime-manager/runtime-package.d.ts.map +1 -1
- package/dist/services/runtime-manager/runtime-package.js +77 -0
- package/dist/services/runtime-manager/runtime-package.js.map +1 -1
- package/dist/services/runtime-manager/storage.d.ts +47 -0
- package/dist/services/runtime-manager/storage.d.ts.map +1 -0
- package/dist/services/runtime-manager/storage.js +604 -0
- package/dist/services/runtime-manager/storage.js.map +1 -0
- package/dist/services/runtime-manager-service.d.ts +7 -17
- package/dist/services/runtime-manager-service.d.ts.map +1 -1
- package/dist/services/runtime-manager-service.js +32 -1695
- package/dist/services/runtime-manager-service.js.map +1 -1
- package/dist/services/ship-checks/contract.d.ts +13 -1
- package/dist/services/ship-checks/contract.d.ts.map +1 -1
- package/dist/services/ship-checks/contract.js +1 -1
- package/dist/services/ship-checks/contract.js.map +1 -1
- package/dist/services/ship-checks/coverage.d.ts +4 -0
- package/dist/services/ship-checks/coverage.d.ts.map +1 -0
- package/dist/services/ship-checks/coverage.js +113 -0
- package/dist/services/ship-checks/coverage.js.map +1 -0
- package/dist/services/ship-checks/discover.d.ts.map +1 -1
- package/dist/services/ship-checks/discover.js +3 -0
- package/dist/services/ship-checks/discover.js.map +1 -1
- package/dist/services/spec-service.d.ts +18 -0
- package/dist/services/spec-service.d.ts.map +1 -1
- package/dist/services/spec-service.js +174 -9
- package/dist/services/spec-service.js.map +1 -1
- package/dist/templates/spec/spec-shaped.md.hbs +1 -1
- package/dist/templates/spec/spec.md.hbs +2 -2
- package/docs/CLI.md +49 -2
- package/lib/host-packages/adapter-registry.json +5 -5
- package/lib/host-packages/capability-map.json +3 -3
- package/lib/host-packages/claude/.claude-plugin/marketplace.json +2 -2
- package/lib/host-packages/claude/openplanr/.claude-plugin/plugin.json +1 -1
- package/lib/host-packages/claude/openplanr/.openplanr-content.json +50 -46
- package/lib/host-packages/claude/openplanr/README.md +1 -1
- package/lib/host-packages/claude/openplanr/agents/planr-qa.md +5 -3
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-document.mjs +87 -2
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-handoff.mjs +1 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-share.mjs +1 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs +102 -9
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs +130 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design.mjs +271 -28
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +32 -32
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +77 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +4 -4
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/package.json +4 -4
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +2 -2
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +5 -5
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-protocol-contracts.js +72 -2
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-design-review-experience.js +14 -7
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-canvas-engine.js +71 -34
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/21-design-studio.js +28 -14
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +12 -12
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +2 -2
- package/lib/host-packages/{cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.20.0 → claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0}/design-document.schema.json +131 -4
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0/design-review-bundle.schema.json +822 -0
- package/lib/host-packages/claude/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +78 -1
- package/lib/host-packages/claude/openplanr/runtime/plan/scripts/design.mjs +30 -2
- package/lib/host-packages/claude/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +2 -2
- package/lib/host-packages/claude/openplanr/skills/design/references/design-system.md +17 -2
- package/lib/host-packages/claude/openplanr/skills/design/references/generation.md +60 -2
- package/lib/host-packages/claude/openplanr/skills/design/references/utilities.md +11 -1
- package/lib/host-packages/claude/openplanr/skills/design/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/claude/openplanr/skills/design-loop/references/design-system.md +17 -2
- package/lib/host-packages/claude/openplanr/skills/design-loop/references/generation.md +60 -2
- package/lib/host-packages/claude/openplanr/skills/design-loop/references/utilities.md +11 -1
- package/lib/host-packages/claude/openplanr/skills/design-loop/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/claude/openplanr/skills/design-review/references/design-system.md +17 -2
- package/lib/host-packages/claude/openplanr/skills/design-review/references/generation.md +60 -2
- package/lib/host-packages/claude/openplanr/skills/design-review/references/utilities.md +11 -1
- package/lib/host-packages/claude/openplanr/skills/design-review/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/claude/openplanr/skills/investigate/SKILL.md +1 -1
- package/lib/host-packages/claude/openplanr/skills/plan/SKILL.md +21 -11
- package/lib/host-packages/claude/openplanr/skills/plan/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/claude/openplanr/skills/ship/SKILL.md +31 -10
- package/lib/host-packages/claude/openplanr/skills/spec/SKILL.md +6 -0
- package/lib/host-packages/claude/openplanr/skills/spec/references/specification-contract.md +3 -1
- package/lib/host-packages/cursor/openplanr/.openplanr-content.json +48 -44
- package/lib/host-packages/cursor/openplanr/manifest.json +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design/references/design-system.md +17 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-design/references/generation.md +60 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-design/references/utilities.md +11 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/design-system.md +17 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/generation.md +60 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/utilities.md +11 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/design-system.md +17 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/generation.md +60 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/utilities.md +11 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-investigate.mdc +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-plan/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-plan.mdc +21 -11
- package/lib/host-packages/cursor/openplanr/rules/planr-ship.mdc +31 -10
- package/lib/host-packages/cursor/openplanr/rules/planr-spec/references/specification-contract.md +3 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-spec.mdc +6 -0
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-document.mjs +87 -2
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-handoff.mjs +1 -1
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-share.mjs +1 -1
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs +102 -9
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs +130 -1
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design.mjs +271 -28
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +32 -32
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +77 -1
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +4 -4
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/package.json +4 -4
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +2 -2
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +5 -5
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-protocol-contracts.js +72 -2
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-design-review-experience.js +14 -7
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-canvas-engine.js +71 -34
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/21-design-studio.js +28 -14
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +12 -12
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +2 -2
- package/lib/host-packages/{openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.20.0 → cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0}/design-document.schema.json +131 -4
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0/design-review-bundle.schema.json +822 -0
- package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +78 -1
- package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/design.mjs +30 -2
- package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +2 -2
- package/lib/host-packages/openai/.claude-plugin/marketplace.json +2 -2
- package/lib/host-packages/openai/openplanr/.codex-plugin/plugin.json +1 -1
- package/lib/host-packages/openai/openplanr/.openplanr-content.json +54 -50
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-document.mjs +87 -2
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-handoff.mjs +1 -1
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-share.mjs +1 -1
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs +102 -9
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs +130 -1
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design.mjs +271 -28
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +32 -32
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +77 -1
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +4 -4
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/package.json +4 -4
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +2 -2
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +5 -5
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-protocol-contracts.js +72 -2
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-design-review-experience.js +14 -7
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-canvas-engine.js +71 -34
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/21-design-studio.js +28 -14
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +12 -12
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +2 -2
- package/lib/host-packages/{claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.20.0 → openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0}/design-document.schema.json +131 -4
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0/design-review-bundle.schema.json +822 -0
- package/lib/host-packages/openai/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +78 -1
- package/lib/host-packages/openai/openplanr/runtime/plan/scripts/design.mjs +30 -2
- package/lib/host-packages/openai/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +2 -2
- package/lib/host-packages/openai/openplanr/skills/design/references/design-system.md +17 -2
- package/lib/host-packages/openai/openplanr/skills/design/references/generation.md +60 -2
- package/lib/host-packages/openai/openplanr/skills/design/references/utilities.md +11 -1
- package/lib/host-packages/openai/openplanr/skills/design/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/openai/openplanr/skills/design-loop/references/design-system.md +17 -2
- package/lib/host-packages/openai/openplanr/skills/design-loop/references/generation.md +60 -2
- package/lib/host-packages/openai/openplanr/skills/design-loop/references/utilities.md +11 -1
- package/lib/host-packages/openai/openplanr/skills/design-loop/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/openai/openplanr/skills/design-review/references/design-system.md +17 -2
- package/lib/host-packages/openai/openplanr/skills/design-review/references/generation.md +60 -2
- package/lib/host-packages/openai/openplanr/skills/design-review/references/utilities.md +11 -1
- package/lib/host-packages/openai/openplanr/skills/design-review/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/openai/openplanr/skills/investigate/SKILL.md +1 -1
- package/lib/host-packages/openai/openplanr/skills/investigate/agents/openai.yaml +1 -1
- package/lib/host-packages/openai/openplanr/skills/investigate/openplanr.skill.json +1 -1
- package/lib/host-packages/openai/openplanr/skills/plan/SKILL.md +21 -11
- package/lib/host-packages/openai/openplanr/skills/plan/openplanr.skill.json +1 -1
- package/lib/host-packages/openai/openplanr/skills/plan/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/openai/openplanr/skills/ship/SKILL.md +31 -10
- package/lib/host-packages/openai/openplanr/skills/ship/agents/openai.yaml +1 -1
- package/lib/host-packages/openai/openplanr/skills/ship/openplanr.skill.json +1 -1
- package/lib/host-packages/openai/openplanr/skills/spec/SKILL.md +6 -0
- package/lib/host-packages/openai/openplanr/skills/spec/openplanr.skill.json +1 -1
- package/lib/host-packages/openai/openplanr/skills/spec/references/specification-contract.md +3 -1
- package/lib/json-schema.mjs +4 -0
- package/package.json +12 -12
- package/dist/dashboard/assets/index-L8qtwqv6.js +0 -572
- package/dist/dashboard/assets/index-L8qtwqv6.js.map +0 -1
- /package/lib/host-packages/claude/openplanr/runtime/design/scripts/{design-runtime-support-6774fd3d5d02.mjs → design-runtime-support-25485dbf1cb2.mjs} +0 -0
- /package/lib/host-packages/cursor/openplanr/runtime/design/scripts/{design-runtime-support-6774fd3d5d02.mjs → design-runtime-support-25485dbf1cb2.mjs} +0 -0
- /package/lib/host-packages/openai/openplanr/runtime/design/scripts/{design-runtime-support-6774fd3d5d02.mjs → design-runtime-support-25485dbf1cb2.mjs} +0 -0
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
14
|
"path": ".claude-plugin/plugin.json",
|
|
15
|
-
"digest": "sha256:
|
|
15
|
+
"digest": "sha256:abecdcb3905def14747392b41af4dda02e012506efa5cfc7f5122705b36fd39f"
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
"path": "agents/planr-backend.md",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
"path": "agents/planr-qa.md",
|
|
47
|
-
"digest": "sha256:
|
|
47
|
+
"digest": "sha256:d2f56a652c00aed41a6e0d3147ca336975487fc57c5eadc13581cbfe1a9c9739"
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
"path": "agents/planr-specification.md",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
62
|
"path": "README.md",
|
|
63
|
-
"digest": "sha256:
|
|
63
|
+
"digest": "sha256:18b9ce013805b09435f1da9f397f966e4b59401cec68f2c31540809c81b85964"
|
|
64
64
|
},
|
|
65
65
|
{
|
|
66
66
|
"path": "references/agents/shared/modes/default/backend.md",
|
|
@@ -180,7 +180,7 @@
|
|
|
180
180
|
},
|
|
181
181
|
{
|
|
182
182
|
"path": "runtime/design/scripts/design-document.mjs",
|
|
183
|
-
"digest": "sha256:
|
|
183
|
+
"digest": "sha256:265390be5971cb170bfa3bbe85073d95d3a03fdcad5ad2d6885863ed92636d7c"
|
|
184
184
|
},
|
|
185
185
|
{
|
|
186
186
|
"path": "runtime/design/scripts/design-encrypted-workspace-client.mjs",
|
|
@@ -192,7 +192,7 @@
|
|
|
192
192
|
},
|
|
193
193
|
{
|
|
194
194
|
"path": "runtime/design/scripts/design-handoff.mjs",
|
|
195
|
-
"digest": "sha256:
|
|
195
|
+
"digest": "sha256:1d24e4ebd3bff99f3dd5e2fa8cab17971bbc4acb10cc416a0e1a1e4af584f0ee"
|
|
196
196
|
},
|
|
197
197
|
{
|
|
198
198
|
"path": "runtime/design/scripts/design-loopback-server.mjs",
|
|
@@ -223,7 +223,7 @@
|
|
|
223
223
|
"digest": "sha256:c338765d9f5746bf375377bdd25e94490ac31985bab0b0335e49f9faadb5c08b"
|
|
224
224
|
},
|
|
225
225
|
{
|
|
226
|
-
"path": "runtime/design/scripts/design-runtime-support-
|
|
226
|
+
"path": "runtime/design/scripts/design-runtime-support-25485dbf1cb2.mjs",
|
|
227
227
|
"digest": "sha256:6fd1b789adf2cfcf742602f1faa6a0d0835f2bc5cc2afa6e153424be68892fa2"
|
|
228
228
|
},
|
|
229
229
|
{
|
|
@@ -232,11 +232,11 @@
|
|
|
232
232
|
},
|
|
233
233
|
{
|
|
234
234
|
"path": "runtime/design/scripts/design-share.mjs",
|
|
235
|
-
"digest": "sha256:
|
|
235
|
+
"digest": "sha256:9d859c41f2b7a049650f15bc67620a8e9e473dc1dfea57b6b6eae11a47bada6c"
|
|
236
236
|
},
|
|
237
237
|
{
|
|
238
238
|
"path": "runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs",
|
|
239
|
-
"digest": "sha256:
|
|
239
|
+
"digest": "sha256:f2e1cd55ff19cb6127d02f3b2cd86fdcc5737432b3f59420707b86181c6963f9"
|
|
240
240
|
},
|
|
241
241
|
{
|
|
242
242
|
"path": "runtime/design/scripts/design-shared-artifact-support-protocol-contracts-ea2cd15e.mjs",
|
|
@@ -248,7 +248,7 @@
|
|
|
248
248
|
},
|
|
249
249
|
{
|
|
250
250
|
"path": "runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs",
|
|
251
|
-
"digest": "sha256:
|
|
251
|
+
"digest": "sha256:93c1762353ebe32d886bbb2fef3f2a72cfbf8e139973eec88f4f6b8f10d8e503"
|
|
252
252
|
},
|
|
253
253
|
{
|
|
254
254
|
"path": "runtime/design/scripts/design-upload-spool.mjs",
|
|
@@ -256,11 +256,11 @@
|
|
|
256
256
|
},
|
|
257
257
|
{
|
|
258
258
|
"path": "runtime/design/scripts/design.mjs",
|
|
259
|
-
"digest": "sha256:
|
|
259
|
+
"digest": "sha256:6feea162e96236d2392162831e660a2fd5e908b2c67bf64bea89bbcb8dd41467"
|
|
260
260
|
},
|
|
261
261
|
{
|
|
262
262
|
"path": "runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt",
|
|
263
|
-
"digest": "sha256:
|
|
263
|
+
"digest": "sha256:c780d6f2609e544d086bc236c27f408fcd736d3a9ea91175c8ed674cfd0a4b0b"
|
|
264
264
|
},
|
|
265
265
|
{
|
|
266
266
|
"path": "runtime/design/scripts/runtime/packages/artifact/lib/artifact/ui/studio-shell.css",
|
|
@@ -268,7 +268,7 @@
|
|
|
268
268
|
},
|
|
269
269
|
{
|
|
270
270
|
"path": "runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json",
|
|
271
|
-
"digest": "sha256:
|
|
271
|
+
"digest": "sha256:d2b6a89cfd25803e4fb266a2747c373f701955519f50e90e0f441fc8c5b10876"
|
|
272
272
|
},
|
|
273
273
|
{
|
|
274
274
|
"path": "runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/01-module-runtime.js",
|
|
@@ -280,7 +280,7 @@
|
|
|
280
280
|
},
|
|
281
281
|
{
|
|
282
282
|
"path": "runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js",
|
|
283
|
-
"digest": "sha256:
|
|
283
|
+
"digest": "sha256:fbf069e668fecf9519cab318f88033b106b93933ea0788f2c4c8cf8374c35e38"
|
|
284
284
|
},
|
|
285
285
|
{
|
|
286
286
|
"path": "runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/04-compression.js",
|
|
@@ -304,7 +304,7 @@
|
|
|
304
304
|
},
|
|
305
305
|
{
|
|
306
306
|
"path": "runtime/design/scripts/runtime/packages/design/package.json",
|
|
307
|
-
"digest": "sha256:
|
|
307
|
+
"digest": "sha256:f7841eedc349c4011fad6eaa9d571b3508cf867d57d8c4917eee37da45f03715"
|
|
308
308
|
},
|
|
309
309
|
{
|
|
310
310
|
"path": "runtime/design/scripts/runtime/packages/design/templates/studio/enhancements.css",
|
|
@@ -328,7 +328,7 @@
|
|
|
328
328
|
},
|
|
329
329
|
{
|
|
330
330
|
"path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json",
|
|
331
|
-
"digest": "sha256:
|
|
331
|
+
"digest": "sha256:883c094162afc18637301227f2093c0582110a798006c5f0ec2884021fca249b"
|
|
332
332
|
},
|
|
333
333
|
{
|
|
334
334
|
"path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/01-module-runtime.js",
|
|
@@ -336,7 +336,7 @@
|
|
|
336
336
|
},
|
|
337
337
|
{
|
|
338
338
|
"path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js",
|
|
339
|
-
"digest": "sha256:
|
|
339
|
+
"digest": "sha256:a71e51391e9b730dd958c618d78eca7f08afdba44c6deaec659cc74407f60a62"
|
|
340
340
|
},
|
|
341
341
|
{
|
|
342
342
|
"path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/03-react-dom-client-fiber-foundations.js",
|
|
@@ -364,7 +364,7 @@
|
|
|
364
364
|
},
|
|
365
365
|
{
|
|
366
366
|
"path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js",
|
|
367
|
-
"digest": "sha256:
|
|
367
|
+
"digest": "sha256:7e5c20997dc0ec69609fa5983db9daf426ab2e4da798969be45bc037cb6285d6"
|
|
368
368
|
},
|
|
369
369
|
{
|
|
370
370
|
"path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/10-react.js",
|
|
@@ -376,11 +376,11 @@
|
|
|
376
376
|
},
|
|
377
377
|
{
|
|
378
378
|
"path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-protocol-contracts.js",
|
|
379
|
-
"digest": "sha256:
|
|
379
|
+
"digest": "sha256:b94ce32e28be39b4c0c524039f27302c38402ea16cbb37845d6fbda2e83350ce"
|
|
380
380
|
},
|
|
381
381
|
{
|
|
382
382
|
"path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-design-review-experience.js",
|
|
383
|
-
"digest": "sha256:
|
|
383
|
+
"digest": "sha256:84f4fe26fdd473a8858766a433986cc60e60639906da15a0f3244c4b5a5adc5f"
|
|
384
384
|
},
|
|
385
385
|
{
|
|
386
386
|
"path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-studio-shell.js",
|
|
@@ -388,7 +388,7 @@
|
|
|
388
388
|
},
|
|
389
389
|
{
|
|
390
390
|
"path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-canvas-engine.js",
|
|
391
|
-
"digest": "sha256:
|
|
391
|
+
"digest": "sha256:457b785e01410722ba42aa372ac2b1e82f73fdc134a6d1c4d068bd16cd83c230"
|
|
392
392
|
},
|
|
393
393
|
{
|
|
394
394
|
"path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/16-design-review-experience.js",
|
|
@@ -412,11 +412,11 @@
|
|
|
412
412
|
},
|
|
413
413
|
{
|
|
414
414
|
"path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/21-design-studio.js",
|
|
415
|
-
"digest": "sha256:
|
|
415
|
+
"digest": "sha256:672d0395a9d1016f511f3b8dd6b23c1015958a97e54a83e51af2f39b53222236"
|
|
416
416
|
},
|
|
417
417
|
{
|
|
418
418
|
"path": "runtime/design/scripts/runtime/packages/protocol/package.json",
|
|
419
|
-
"digest": "sha256:
|
|
419
|
+
"digest": "sha256:cdb21a973cfb6bcccded6c16893a777022ad3a12ac281f31dbb68f750edfc5e8"
|
|
420
420
|
},
|
|
421
421
|
{
|
|
422
422
|
"path": "runtime/design/scripts/runtime/packages/protocol/registries/artifact-theme.json",
|
|
@@ -483,8 +483,12 @@
|
|
|
483
483
|
"digest": "sha256:f5616731ad5bb0399514e1cd36f6ffbaf9adaa1b378107b677b857f6312dfa52"
|
|
484
484
|
},
|
|
485
485
|
{
|
|
486
|
-
"path": "runtime/design/scripts/runtime/packages/protocol/schemas/v1.
|
|
487
|
-
"digest": "sha256:
|
|
486
|
+
"path": "runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0/design-document.schema.json",
|
|
487
|
+
"digest": "sha256:33d74abce73ec6631ee1a4f5037bb49571f81cedaebac5bf37d77d91a170b507"
|
|
488
|
+
},
|
|
489
|
+
{
|
|
490
|
+
"path": "runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0/design-review-bundle.schema.json",
|
|
491
|
+
"digest": "sha256:92e42b05c54f7773f89e93de45fad1c6bfc4027160079d52dcabe59fc0612933"
|
|
488
492
|
},
|
|
489
493
|
{
|
|
490
494
|
"path": "runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-review-bundle.schema.json",
|
|
@@ -524,11 +528,11 @@
|
|
|
524
528
|
},
|
|
525
529
|
{
|
|
526
530
|
"path": "runtime/plan/scripts/design-protocol-contracts.mjs",
|
|
527
|
-
"digest": "sha256:
|
|
531
|
+
"digest": "sha256:464568c1e8ab14b139812192519b303f06db5c1ccbcc1e8ad5c0d65ceca98f76"
|
|
528
532
|
},
|
|
529
533
|
{
|
|
530
534
|
"path": "runtime/plan/scripts/design.mjs",
|
|
531
|
-
"digest": "sha256:
|
|
535
|
+
"digest": "sha256:6f91123bee5568d9e2ede49e5f90fb7919fddfd8e9f108db8c941a86311890dd"
|
|
532
536
|
},
|
|
533
537
|
{
|
|
534
538
|
"path": "runtime/plan/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt",
|
|
@@ -536,7 +540,7 @@
|
|
|
536
540
|
},
|
|
537
541
|
{
|
|
538
542
|
"path": "runtime/plan/scripts/runtime/packages/protocol/package.json",
|
|
539
|
-
"digest": "sha256:
|
|
543
|
+
"digest": "sha256:cdb21a973cfb6bcccded6c16893a777022ad3a12ac281f31dbb68f750edfc5e8"
|
|
540
544
|
},
|
|
541
545
|
{
|
|
542
546
|
"path": "runtime/plan/scripts/runtime/packages/protocol/schemas/v1.1.0/artifact-review.schema.json",
|
|
@@ -784,7 +788,7 @@
|
|
|
784
788
|
},
|
|
785
789
|
{
|
|
786
790
|
"path": "skills/design-loop/references/design-system.md",
|
|
787
|
-
"digest": "sha256:
|
|
791
|
+
"digest": "sha256:558a165a070b31bba66b81c77eeb86b935a09dcbad9939f37fc580e3f301a1a6"
|
|
788
792
|
},
|
|
789
793
|
{
|
|
790
794
|
"path": "skills/design-loop/references/discovery.md",
|
|
@@ -792,7 +796,7 @@
|
|
|
792
796
|
},
|
|
793
797
|
{
|
|
794
798
|
"path": "skills/design-loop/references/generation.md",
|
|
795
|
-
"digest": "sha256:
|
|
799
|
+
"digest": "sha256:ad4c1fc6589e4566a8b6ecdf86dd3f0c87db7d663c480d6c6a77d61502975094"
|
|
796
800
|
},
|
|
797
801
|
{
|
|
798
802
|
"path": "skills/design-loop/references/handoff.md",
|
|
@@ -808,11 +812,11 @@
|
|
|
808
812
|
},
|
|
809
813
|
{
|
|
810
814
|
"path": "skills/design-loop/references/utilities.md",
|
|
811
|
-
"digest": "sha256:
|
|
815
|
+
"digest": "sha256:6f5d0067a9fe75d30994c4bbddec91135d93f3dacb70f43add3b2ad17f1144ad"
|
|
812
816
|
},
|
|
813
817
|
{
|
|
814
818
|
"path": "skills/design-loop/schemas/design-document.schema.json",
|
|
815
|
-
"digest": "sha256:
|
|
819
|
+
"digest": "sha256:33d74abce73ec6631ee1a4f5037bb49571f81cedaebac5bf37d77d91a170b507"
|
|
816
820
|
},
|
|
817
821
|
{
|
|
818
822
|
"path": "skills/design-loop/schemas/design-review-context.schema.json",
|
|
@@ -840,7 +844,7 @@
|
|
|
840
844
|
},
|
|
841
845
|
{
|
|
842
846
|
"path": "skills/design-review/references/design-system.md",
|
|
843
|
-
"digest": "sha256:
|
|
847
|
+
"digest": "sha256:558a165a070b31bba66b81c77eeb86b935a09dcbad9939f37fc580e3f301a1a6"
|
|
844
848
|
},
|
|
845
849
|
{
|
|
846
850
|
"path": "skills/design-review/references/discovery.md",
|
|
@@ -848,7 +852,7 @@
|
|
|
848
852
|
},
|
|
849
853
|
{
|
|
850
854
|
"path": "skills/design-review/references/generation.md",
|
|
851
|
-
"digest": "sha256:
|
|
855
|
+
"digest": "sha256:ad4c1fc6589e4566a8b6ecdf86dd3f0c87db7d663c480d6c6a77d61502975094"
|
|
852
856
|
},
|
|
853
857
|
{
|
|
854
858
|
"path": "skills/design-review/references/handoff.md",
|
|
@@ -864,11 +868,11 @@
|
|
|
864
868
|
},
|
|
865
869
|
{
|
|
866
870
|
"path": "skills/design-review/references/utilities.md",
|
|
867
|
-
"digest": "sha256:
|
|
871
|
+
"digest": "sha256:6f5d0067a9fe75d30994c4bbddec91135d93f3dacb70f43add3b2ad17f1144ad"
|
|
868
872
|
},
|
|
869
873
|
{
|
|
870
874
|
"path": "skills/design-review/schemas/design-document.schema.json",
|
|
871
|
-
"digest": "sha256:
|
|
875
|
+
"digest": "sha256:33d74abce73ec6631ee1a4f5037bb49571f81cedaebac5bf37d77d91a170b507"
|
|
872
876
|
},
|
|
873
877
|
{
|
|
874
878
|
"path": "skills/design-review/schemas/design-review-context.schema.json",
|
|
@@ -896,7 +900,7 @@
|
|
|
896
900
|
},
|
|
897
901
|
{
|
|
898
902
|
"path": "skills/design/references/design-system.md",
|
|
899
|
-
"digest": "sha256:
|
|
903
|
+
"digest": "sha256:558a165a070b31bba66b81c77eeb86b935a09dcbad9939f37fc580e3f301a1a6"
|
|
900
904
|
},
|
|
901
905
|
{
|
|
902
906
|
"path": "skills/design/references/discovery.md",
|
|
@@ -904,7 +908,7 @@
|
|
|
904
908
|
},
|
|
905
909
|
{
|
|
906
910
|
"path": "skills/design/references/generation.md",
|
|
907
|
-
"digest": "sha256:
|
|
911
|
+
"digest": "sha256:ad4c1fc6589e4566a8b6ecdf86dd3f0c87db7d663c480d6c6a77d61502975094"
|
|
908
912
|
},
|
|
909
913
|
{
|
|
910
914
|
"path": "skills/design/references/handoff.md",
|
|
@@ -924,11 +928,11 @@
|
|
|
924
928
|
},
|
|
925
929
|
{
|
|
926
930
|
"path": "skills/design/references/utilities.md",
|
|
927
|
-
"digest": "sha256:
|
|
931
|
+
"digest": "sha256:6f5d0067a9fe75d30994c4bbddec91135d93f3dacb70f43add3b2ad17f1144ad"
|
|
928
932
|
},
|
|
929
933
|
{
|
|
930
934
|
"path": "skills/design/schemas/design-document.schema.json",
|
|
931
|
-
"digest": "sha256:
|
|
935
|
+
"digest": "sha256:33d74abce73ec6631ee1a4f5037bb49571f81cedaebac5bf37d77d91a170b507"
|
|
932
936
|
},
|
|
933
937
|
{
|
|
934
938
|
"path": "skills/design/schemas/design-review-context.schema.json",
|
|
@@ -984,7 +988,7 @@
|
|
|
984
988
|
},
|
|
985
989
|
{
|
|
986
990
|
"path": "skills/investigate/SKILL.md",
|
|
987
|
-
"digest": "sha256:
|
|
991
|
+
"digest": "sha256:2f3426737579e889e35d4d7c03ca112a268f550ed1290ffa9b6d947f94522b4a"
|
|
988
992
|
},
|
|
989
993
|
{
|
|
990
994
|
"path": "skills/land/SKILL.md",
|
|
@@ -1016,7 +1020,7 @@
|
|
|
1016
1020
|
},
|
|
1017
1021
|
{
|
|
1018
1022
|
"path": "skills/plan/schemas/design-document.schema.json",
|
|
1019
|
-
"digest": "sha256:
|
|
1023
|
+
"digest": "sha256:33d74abce73ec6631ee1a4f5037bb49571f81cedaebac5bf37d77d91a170b507"
|
|
1020
1024
|
},
|
|
1021
1025
|
{
|
|
1022
1026
|
"path": "skills/plan/schemas/design-review-context.schema.json",
|
|
@@ -1036,7 +1040,7 @@
|
|
|
1036
1040
|
},
|
|
1037
1041
|
{
|
|
1038
1042
|
"path": "skills/plan/SKILL.md",
|
|
1039
|
-
"digest": "sha256:
|
|
1043
|
+
"digest": "sha256:64cb23d5e4e7fdd131d1284e18927a8d1dd2fbc34732c797b49ae0ab288bff19"
|
|
1040
1044
|
},
|
|
1041
1045
|
{
|
|
1042
1046
|
"path": "skills/release/assets/changelog-template.md",
|
|
@@ -1096,15 +1100,15 @@
|
|
|
1096
1100
|
},
|
|
1097
1101
|
{
|
|
1098
1102
|
"path": "skills/ship/SKILL.md",
|
|
1099
|
-
"digest": "sha256:
|
|
1103
|
+
"digest": "sha256:e5fa1282a415e26c1463ed73c5d88ec69512080395d7fb385463d0bdff0a73ec"
|
|
1100
1104
|
},
|
|
1101
1105
|
{
|
|
1102
1106
|
"path": "skills/spec/references/specification-contract.md",
|
|
1103
|
-
"digest": "sha256:
|
|
1107
|
+
"digest": "sha256:eaaf58e5d2e5cf788856c8d0e156a1ff49111d3578556bfb7c8fe2466df15b15"
|
|
1104
1108
|
},
|
|
1105
1109
|
{
|
|
1106
1110
|
"path": "skills/spec/SKILL.md",
|
|
1107
|
-
"digest": "sha256:
|
|
1111
|
+
"digest": "sha256:8da00648b861c64b675384fc0524f1c8b48cf5e245e23eb416e35519a44c9eba"
|
|
1108
1112
|
},
|
|
1109
1113
|
{
|
|
1110
1114
|
"path": "skills/sprint/references/connectors.md",
|
|
@@ -1163,5 +1167,5 @@
|
|
|
1163
1167
|
"digest": "sha256:79cb62f3f8b0c36ef55c9424ca694a37448f90170183d13d0654d500613da414"
|
|
1164
1168
|
}
|
|
1165
1169
|
],
|
|
1166
|
-
"contentDigest": "sha256:
|
|
1170
|
+
"contentDigest": "sha256:946a491afa3ce8a60b1ceb10e5fc9edf1b0cf9c576357c7207d8de2ce264301a"
|
|
1167
1171
|
}
|
|
@@ -17,7 +17,7 @@ Follow with `/planr:plan` to decompose the specification into stories and tasks,
|
|
|
17
17
|
## Install the CLI
|
|
18
18
|
|
|
19
19
|
Several skills call the deterministic `openplanr` CLI from the `openplanr` npm package, which ships
|
|
20
|
-
this plugin at the same version (3.
|
|
20
|
+
this plugin at the same version (3.3.0):
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
23
|
npm install -g openplanr
|
|
@@ -7,9 +7,11 @@ disallowedTools: Edit, Write, NotebookEdit
|
|
|
7
7
|
# QA Agent
|
|
8
8
|
|
|
9
9
|
Review the implementation the user placed in scope. Source and planning files are
|
|
10
|
-
read-only
|
|
11
|
-
and
|
|
12
|
-
|
|
10
|
+
read-only by role policy. The host removes the file-editing tools, but inherited
|
|
11
|
+
shell and connector tools can still write; this is not complete technical write
|
|
12
|
+
isolation. Run verification under the session's permissions without editing source
|
|
13
|
+
or planning files, and use only read-only checks outside disposable test outputs.
|
|
14
|
+
The default outcome is useful engineering feedback, not
|
|
13
15
|
workflow bookkeeping. A machine-readable response is used only when an explicit
|
|
14
16
|
release-certification runtime invokes the compatibility path below.
|
|
15
17
|
|
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
currentDesign,
|
|
19
19
|
designSpecPath,
|
|
20
20
|
hash,
|
|
21
|
+
inspectLocalDocumentBody,
|
|
21
22
|
json,
|
|
22
23
|
loadReviewContext,
|
|
23
24
|
parse,
|
|
@@ -44,7 +45,8 @@ import {
|
|
|
44
45
|
import {
|
|
45
46
|
DESIGN_DOCUMENT_SCHEMA,
|
|
46
47
|
assertDesignDocument,
|
|
47
|
-
initialFrameHeight
|
|
48
|
+
initialFrameHeight,
|
|
49
|
+
validateDesignProps
|
|
48
50
|
} from "./design-shared-protocol-contracts-b5f28f94.mjs";
|
|
49
51
|
|
|
50
52
|
// packages/design/lib/design/frame-size.mjs
|
|
@@ -1620,6 +1622,15 @@ function lintDesign(html, opts = {}) {
|
|
|
1620
1622
|
const { designSystem = null } = opts;
|
|
1621
1623
|
const errors = [];
|
|
1622
1624
|
const warnings = [];
|
|
1625
|
+
if (opts.screen) {
|
|
1626
|
+
const values = Object.hasOwn(opts.variant?.props ?? {}, opts.screen.id) ? opts.variant.props[opts.screen.id] : {};
|
|
1627
|
+
errors.push(
|
|
1628
|
+
...validateDesignProps({
|
|
1629
|
+
screens: [opts.screen],
|
|
1630
|
+
variants: [{ props: { [opts.screen.id]: values } }]
|
|
1631
|
+
}).map((message) => ({ rule: "invalid-instance-prop", level: "error", message }))
|
|
1632
|
+
);
|
|
1633
|
+
}
|
|
1623
1634
|
const decls = [...styleBlockDecls(html), ...inlineStyleDecls(html)];
|
|
1624
1635
|
for (const d of decls) {
|
|
1625
1636
|
if (SPACING_PROP.test(d.prop)) {
|
|
@@ -1693,6 +1704,57 @@ function lintDesign(html, opts = {}) {
|
|
|
1693
1704
|
summary: `${errors.length} error(s), ${warnings.length} warning(s)`
|
|
1694
1705
|
};
|
|
1695
1706
|
}
|
|
1707
|
+
function withoutRootTheme(html) {
|
|
1708
|
+
if (!/theme-(?:light|dark)|data-theme/iu.test(html)) return null;
|
|
1709
|
+
const body = inspectLocalDocumentBody(html);
|
|
1710
|
+
if (!body) return null;
|
|
1711
|
+
const edits = [];
|
|
1712
|
+
for (const { name, value } of body.attrs) {
|
|
1713
|
+
const location = body.location.attrs?.[name];
|
|
1714
|
+
if (!location) continue;
|
|
1715
|
+
let replacement;
|
|
1716
|
+
if (name === "data-theme" && ["light", "dark"].includes(value)) replacement = "";
|
|
1717
|
+
if (name === "class") {
|
|
1718
|
+
const raw = html.slice(location.startOffset, location.endOffset);
|
|
1719
|
+
const quoted = /^(class\s*=\s*)(["'])([\s\S]*)\2$/iu.exec(raw);
|
|
1720
|
+
if (quoted) {
|
|
1721
|
+
const kept = quoted[3].replace(/(^|\s)theme-(?:light|dark)(?=\s|$)/gu, "$1");
|
|
1722
|
+
if (kept !== quoted[3]) replacement = `${quoted[1]}${quoted[2]}${kept}${quoted[2]}`;
|
|
1723
|
+
} else if (/^class\s*=\s*theme-(?:light|dark)$/iu.test(raw)) replacement = "";
|
|
1724
|
+
}
|
|
1725
|
+
if (replacement !== void 0) edits.push({ ...location, replacement });
|
|
1726
|
+
}
|
|
1727
|
+
if (!edits.length) return null;
|
|
1728
|
+
let normalized = html;
|
|
1729
|
+
for (const { startOffset, endOffset, replacement } of edits.sort(
|
|
1730
|
+
(a, b) => b.startOffset - a.startOffset
|
|
1731
|
+
))
|
|
1732
|
+
normalized = normalized.slice(0, startOffset) + replacement + normalized.slice(endOffset);
|
|
1733
|
+
return normalized;
|
|
1734
|
+
}
|
|
1735
|
+
function lintThemeOnlySources(sources) {
|
|
1736
|
+
const warnings = [];
|
|
1737
|
+
const seen = /* @__PURE__ */ new Map();
|
|
1738
|
+
for (const { screenId, source, html } of sources) {
|
|
1739
|
+
const normalized = withoutRootTheme(html);
|
|
1740
|
+
if (normalized === null) continue;
|
|
1741
|
+
const key = JSON.stringify({
|
|
1742
|
+
html: normalized,
|
|
1743
|
+
styles: source.styles ?? [],
|
|
1744
|
+
scripts: source.scripts ?? []
|
|
1745
|
+
});
|
|
1746
|
+
const previous = seen.get(key);
|
|
1747
|
+
if (previous && previous.screenId !== screenId && previous.source !== source.html && previous.html !== html)
|
|
1748
|
+
warnings.push({
|
|
1749
|
+
rule: "theme-only-source",
|
|
1750
|
+
level: "warn",
|
|
1751
|
+
screenId,
|
|
1752
|
+
message: `Screens ${previous.screenId} (${previous.source}) and ${screenId} (${source.html}) differ only by a root theme marker; declare a theme prop and share one source.`
|
|
1753
|
+
});
|
|
1754
|
+
else seen.set(key, { screenId, source: source.html, html });
|
|
1755
|
+
}
|
|
1756
|
+
return warnings;
|
|
1757
|
+
}
|
|
1696
1758
|
function lintCanvasData(data, { frames } = {}) {
|
|
1697
1759
|
const errors = [];
|
|
1698
1760
|
for (const section of data?.sections || []) {
|
|
@@ -2434,8 +2496,19 @@ function prepareDesignDocument(file, { readSource, passive = false, maxBytes } =
|
|
|
2434
2496
|
])
|
|
2435
2497
|
);
|
|
2436
2498
|
for (const variant of document2.variants.filter((item) => item.status === "ready")) {
|
|
2499
|
+
const themeWarnings = lintThemeOnlySources(
|
|
2500
|
+
document2.screens.map((screen) => {
|
|
2501
|
+
const source = variant.sources?.[screen.id] ?? screen.source;
|
|
2502
|
+
return {
|
|
2503
|
+
screenId: screen.id,
|
|
2504
|
+
source,
|
|
2505
|
+
html: sourceContents.get(source.html).toString("utf8")
|
|
2506
|
+
};
|
|
2507
|
+
})
|
|
2508
|
+
);
|
|
2437
2509
|
for (const screenId of document2.screenOrder) {
|
|
2438
2510
|
const screen = document2.screens.find((item) => item.id === screenId);
|
|
2511
|
+
const values = Object.hasOwn(variant.props ?? {}, screenId) ? variant.props[screenId] : {};
|
|
2439
2512
|
const bundled = bundleLocalDocument({
|
|
2440
2513
|
root,
|
|
2441
2514
|
source: variant.sources?.[screenId] ?? screen.source,
|
|
@@ -2443,6 +2516,14 @@ function prepareDesignDocument(file, { readSource, passive = false, maxBytes } =
|
|
|
2443
2516
|
screenId,
|
|
2444
2517
|
readSource,
|
|
2445
2518
|
passive,
|
|
2519
|
+
...screen.props ? {
|
|
2520
|
+
screenProps: Object.fromEntries(
|
|
2521
|
+
Object.entries(screen.props).map(([name, declaration]) => [
|
|
2522
|
+
name,
|
|
2523
|
+
Object.hasOwn(values, name) ? values[name] : declaration.default
|
|
2524
|
+
])
|
|
2525
|
+
)
|
|
2526
|
+
} : {},
|
|
2446
2527
|
...maxBytes === void 0 ? {} : { maxBytes }
|
|
2447
2528
|
});
|
|
2448
2529
|
if (document2.frames.some(({ height }) => height === "auto"))
|
|
@@ -2465,8 +2546,12 @@ function prepareDesignDocument(file, { readSource, passive = false, maxBytes } =
|
|
|
2465
2546
|
);
|
|
2466
2547
|
}
|
|
2467
2548
|
const report = lintDesign(bundled.html, {
|
|
2468
|
-
designSystem: document2.designSystem
|
|
2549
|
+
designSystem: document2.designSystem,
|
|
2550
|
+
screen,
|
|
2551
|
+
variant
|
|
2469
2552
|
});
|
|
2553
|
+
report.warnings.push(...themeWarnings.filter((item) => item.screenId === screenId));
|
|
2554
|
+
report.summary = `${report.errors.length} error(s), ${report.warnings.length} warning(s)`;
|
|
2470
2555
|
lint.push({ variantId: variant.id, screenId, ...report });
|
|
2471
2556
|
for (const anchor of screen.anchors ?? []) {
|
|
2472
2557
|
if (!bundled.html.includes(`data-planr-id="${anchor}"`) && !bundled.html.includes(`id="${anchor}"`))
|
|
@@ -654,7 +654,7 @@ function compileDesignHandoffReadiness(input) {
|
|
|
654
654
|
if (input === null || input === void 0) return designHandoffReadinessAbsence();
|
|
655
655
|
const source = plainClone(input);
|
|
656
656
|
const document = source.document;
|
|
657
|
-
if (!document || document.kind !== "openplanr-design-document" ||
|
|
657
|
+
if (!document || document.kind !== "openplanr-design-document" || !["1.0.0", "1.1.0"].includes(document.schemaVersion) || typeof document.id !== "string" || !document.id)
|
|
658
658
|
throw new TypeError("Readiness requires one supported design document.");
|
|
659
659
|
const revision = source.sourceRevision === null || source.sourceRevision === void 0 ? null : normalizeDigest(source.sourceRevision, "design revision");
|
|
660
660
|
const direction = selectedDirection(document, source.studioState);
|
|
@@ -1807,7 +1807,7 @@ async function importDesignShareRecovery(file, { input, ...options } = {}) {
|
|
|
1807
1807
|
const pending = custody.pendingCreate ?? custody.pendingMutation.body;
|
|
1808
1808
|
const destination = join3(root, "uploads", custody.id, pending.operationId);
|
|
1809
1809
|
if (existsSync4(destination)) {
|
|
1810
|
-
const { spoolChunkReader: spoolChunkReader2 } = await import("./design-runtime-support-
|
|
1810
|
+
const { spoolChunkReader: spoolChunkReader2 } = await import("./design-runtime-support-25485dbf1cb2.mjs");
|
|
1811
1811
|
const reader = spoolChunkReader2(destination, pending);
|
|
1812
1812
|
for (const part of pending.manifest.chunks) await reader(part.index);
|
|
1813
1813
|
} else await copyUploadSpool(custody, destination);
|