openplanr 3.1.1 → 3.2.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 +48 -0
- package/dist/cli/commands/groups/delivery.d.ts.map +1 -1
- package/dist/cli/commands/groups/delivery.js +2 -0
- package/dist/cli/commands/groups/delivery.js.map +1 -1
- package/dist/cli/commands/planning-artifacts.d.ts.map +1 -1
- package/dist/cli/commands/planning-artifacts.js +22 -12
- package/dist/cli/commands/planning-artifacts.js.map +1 -1
- package/dist/cli/commands/ship.d.ts +3 -0
- package/dist/cli/commands/ship.d.ts.map +1 -0
- package/dist/cli/commands/ship.js +65 -0
- package/dist/cli/commands/ship.js.map +1 -0
- package/dist/dashboard/.vite/manifest.json +1 -1
- package/dist/dashboard/assets/{index-G7ygVDGg.js → index-L8qtwqv6.js} +2 -2
- package/dist/dashboard/assets/{index-G7ygVDGg.js.map → index-L8qtwqv6.js.map} +1 -1
- package/dist/dashboard/dashboard-manifest.json +8 -8
- package/dist/dashboard/index.html +1 -1
- package/dist/models/schema.d.ts +39 -23
- package/dist/models/schema.d.ts.map +1 -1
- package/dist/models/schema.js +19 -12
- package/dist/models/schema.js.map +1 -1
- package/dist/models/types.d.ts +6 -0
- package/dist/models/types.d.ts.map +1 -1
- package/dist/services/id-service.d.ts +1 -5
- package/dist/services/id-service.d.ts.map +1 -1
- package/dist/services/id-service.js +1 -34
- package/dist/services/id-service.js.map +1 -1
- package/dist/services/ship-checks/changes.d.ts +24 -0
- package/dist/services/ship-checks/changes.d.ts.map +1 -0
- package/dist/services/ship-checks/changes.js +135 -0
- package/dist/services/ship-checks/changes.js.map +1 -0
- package/dist/services/ship-checks/contract.d.ts +81 -0
- package/dist/services/ship-checks/contract.d.ts.map +1 -0
- package/dist/services/ship-checks/contract.js +7 -0
- package/dist/services/ship-checks/contract.js.map +1 -0
- package/dist/services/ship-checks/discover.d.ts +10 -0
- package/dist/services/ship-checks/discover.d.ts.map +1 -0
- package/dist/services/ship-checks/discover.js +250 -0
- package/dist/services/ship-checks/discover.js.map +1 -0
- package/dist/services/ship-checks/glob.d.ts +5 -0
- package/dist/services/ship-checks/glob.d.ts.map +1 -0
- package/dist/services/ship-checks/glob.js +39 -0
- package/dist/services/ship-checks/glob.js.map +1 -0
- package/dist/services/ship-checks/hooks.d.ts +7 -0
- package/dist/services/ship-checks/hooks.d.ts.map +1 -0
- package/dist/services/ship-checks/hooks.js +65 -0
- package/dist/services/ship-checks/hooks.js.map +1 -0
- package/dist/services/ship-checks/packages.d.ts +29 -0
- package/dist/services/ship-checks/packages.d.ts.map +1 -0
- package/dist/services/ship-checks/packages.js +197 -0
- package/dist/services/ship-checks/packages.js.map +1 -0
- package/dist/services/ship-checks/related-tests.d.ts +13 -0
- package/dist/services/ship-checks/related-tests.d.ts.map +1 -0
- package/dist/services/ship-checks/related-tests.js +73 -0
- package/dist/services/ship-checks/related-tests.js.map +1 -0
- package/dist/services/ship-checks/scope.d.ts +8 -0
- package/dist/services/ship-checks/scope.d.ts.map +1 -0
- package/dist/services/ship-checks/scope.js +66 -0
- package/dist/services/ship-checks/scope.js.map +1 -0
- package/dist/services/ship-checks/task-requirements.d.ts +14 -0
- package/dist/services/ship-checks/task-requirements.d.ts.map +1 -0
- package/dist/services/ship-checks/task-requirements.js +145 -0
- package/dist/services/ship-checks/task-requirements.js.map +1 -0
- package/dist/services/ship-checks/workflows.d.ts +21 -0
- package/dist/services/ship-checks/workflows.d.ts.map +1 -0
- package/dist/services/ship-checks/workflows.js +208 -0
- package/dist/services/ship-checks/workflows.js.map +1 -0
- package/dist/services/template-service.d.ts +2 -0
- package/dist/services/template-service.d.ts.map +1 -1
- package/dist/services/template-service.js +4 -0
- package/dist/services/template-service.js.map +1 -1
- package/dist/utils/slugify.d.ts +1 -8
- package/dist/utils/slugify.d.ts.map +1 -1
- package/dist/utils/slugify.js +1 -25
- package/dist/utils/slugify.js.map +1 -1
- package/docs/CLI.md +48 -1
- package/lib/backlog-item.d.mts +49 -0
- package/lib/backlog-item.mjs +339 -0
- package/lib/host-packages/adapter-registry.json +5 -5
- package/lib/host-packages/capability-map.json +1 -1
- 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 +126 -90
- package/lib/host-packages/claude/openplanr/CONNECTORS.md +4 -6
- package/lib/host-packages/claude/openplanr/README.md +1 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-artifact-shell.mjs +1 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-chunked-workspace-client.mjs +1 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-document.mjs +385 -79
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-handoff.mjs +1 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-resource-pack.mjs +1 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-review.mjs +45 -4
- package/lib/host-packages/{cursor/openplanr/runtime/design/scripts/design-runtime-support-e34c388a8e59.mjs → claude/openplanr/runtime/design/scripts/design-runtime-support-6774fd3d5d02.mjs} +1 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-share.mjs +8 -5
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs +40 -7
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-shared-artifact-support-protocol-contracts-ea2cd15e.mjs +1 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/{design-shared-protocol-contracts-31a760fc.mjs → design-shared-protocol-contracts-b5f28f94.mjs} +284 -45
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-upload-spool.mjs +1 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design.mjs +215 -55
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/02-artifact-review-ui.js +23 -23
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +246 -45
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/06-artifact-review-ui.js +12 -12
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/08-artifact-review-ui.js +47 -14
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +11 -10
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/package.json +4 -3
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.css +16 -11
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/01-module-runtime.js +7 -11
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +163 -274
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/03-react-dom-client-fiber-foundations.js +494 -967
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/04-react-dom-client-reconciliation-hooks.js +346 -678
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/05-react-dom-client-render-phases.js +382 -810
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/06-react-dom-client-commit-effects.js +406 -730
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/07-react-dom-client-work-loop-scheduling.js +259 -522
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/08-react-dom-client-dom-events-properties-hydration.js +585 -937
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +115 -240
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/10-react.js +7 -17
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/11-artifact-review-ui.js +3 -4
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-protocol-contracts.js +215 -0
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-design-review-experience.js +2766 -0
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-studio-shell.js +134 -0
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-canvas-engine.js +2170 -0
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/16-design-review-experience.js +16 -0
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/17-studio-shell.js +8 -0
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/18-interface-primitives.js +3883 -0
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/19-interface-primitives.js +966 -0
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/{16-studio-shell.js → 20-studio-shell.js} +122 -227
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/21-design-studio.js +1583 -0
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +101 -47
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/{openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0 → claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.20.0}/design-document.schema.json +78 -5
- package/lib/host-packages/claude/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +247 -45
- package/lib/host-packages/claude/openplanr/runtime/plan/scripts/design.mjs +45 -12
- package/lib/host-packages/claude/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/claude/openplanr/skills/connect/references/connectors.md +4 -6
- package/lib/host-packages/claude/openplanr/skills/design/SKILL.md +12 -0
- package/lib/host-packages/claude/openplanr/skills/design/references/craft.md +14 -3
- package/lib/host-packages/claude/openplanr/skills/design/references/design-system.md +33 -1
- package/lib/host-packages/claude/openplanr/skills/design/references/discovery.md +18 -4
- package/lib/host-packages/claude/openplanr/skills/design/references/generation.md +74 -1
- package/lib/host-packages/claude/openplanr/skills/design/references/hosted-canvas.md +62 -0
- package/lib/host-packages/claude/openplanr/skills/design/references/review.md +46 -1
- package/lib/host-packages/claude/openplanr/skills/design/references/utilities.md +6 -0
- package/lib/host-packages/claude/openplanr/skills/design/schemas/design-document.schema.json +78 -5
- package/lib/host-packages/claude/openplanr/skills/design-loop/references/craft.md +14 -3
- package/lib/host-packages/claude/openplanr/skills/design-loop/references/design-system.md +33 -1
- package/lib/host-packages/claude/openplanr/skills/design-loop/references/discovery.md +18 -4
- package/lib/host-packages/claude/openplanr/skills/design-loop/references/generation.md +74 -1
- package/lib/host-packages/claude/openplanr/skills/design-loop/references/review.md +46 -1
- package/lib/host-packages/claude/openplanr/skills/design-loop/references/utilities.md +6 -0
- package/lib/host-packages/claude/openplanr/skills/design-loop/schemas/design-document.schema.json +78 -5
- package/lib/host-packages/claude/openplanr/skills/design-review/references/craft.md +14 -3
- package/lib/host-packages/claude/openplanr/skills/design-review/references/design-system.md +33 -1
- package/lib/host-packages/claude/openplanr/skills/design-review/references/discovery.md +18 -4
- package/lib/host-packages/claude/openplanr/skills/design-review/references/generation.md +74 -1
- package/lib/host-packages/claude/openplanr/skills/design-review/references/review.md +46 -1
- package/lib/host-packages/claude/openplanr/skills/design-review/references/utilities.md +6 -0
- package/lib/host-packages/claude/openplanr/skills/design-review/schemas/design-document.schema.json +78 -5
- package/lib/host-packages/claude/openplanr/skills/investigate/SKILL.md +10 -1
- package/lib/host-packages/claude/openplanr/skills/investigate/references/findings.md +92 -0
- package/lib/host-packages/claude/openplanr/skills/investigate/scripts/backlog-item.mjs +339 -0
- package/lib/host-packages/claude/openplanr/skills/plan/SKILL.md +3 -0
- package/lib/host-packages/claude/openplanr/skills/plan/schemas/design-document.schema.json +78 -5
- package/lib/host-packages/claude/openplanr/skills/share/references/connectors.md +4 -6
- package/lib/host-packages/claude/openplanr/skills/ship/SKILL.md +15 -4
- package/lib/host-packages/claude/openplanr/skills/ship/references/findings.md +92 -0
- package/lib/host-packages/claude/openplanr/skills/ship/references/result-contract.md +3 -1
- package/lib/host-packages/claude/openplanr/skills/ship/scripts/backlog-item.mjs +339 -0
- package/lib/host-packages/claude/openplanr/skills/sprint/references/connectors.md +4 -6
- package/lib/host-packages/claude/openplanr/skills/status/references/connectors.md +4 -6
- package/lib/host-packages/claude/openplanr/skills/sync/references/connectors.md +4 -6
- package/lib/host-packages/cursor/openplanr/.openplanr-content.json +125 -89
- package/lib/host-packages/cursor/openplanr/CONNECTORS.md +4 -6
- package/lib/host-packages/cursor/openplanr/manifest.json +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-connect/references/connectors.md +4 -6
- package/lib/host-packages/cursor/openplanr/rules/planr-design/references/craft.md +14 -3
- package/lib/host-packages/cursor/openplanr/rules/planr-design/references/design-system.md +33 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design/references/discovery.md +18 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-design/references/generation.md +74 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design/references/hosted-canvas.md +62 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-design/references/review.md +46 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design/references/utilities.md +6 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-design/schemas/design-document.schema.json +78 -5
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/craft.md +14 -3
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/design-system.md +33 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/discovery.md +18 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/generation.md +74 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/review.md +46 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/utilities.md +6 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/schemas/design-document.schema.json +78 -5
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/craft.md +14 -3
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/design-system.md +33 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/discovery.md +18 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/generation.md +74 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/review.md +46 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/utilities.md +6 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/schemas/design-document.schema.json +78 -5
- package/lib/host-packages/cursor/openplanr/rules/planr-design.mdc +12 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-investigate/references/findings.md +92 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-investigate/scripts/backlog-item.mjs +339 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-investigate.mdc +10 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-plan/schemas/design-document.schema.json +78 -5
- package/lib/host-packages/cursor/openplanr/rules/planr-plan.mdc +3 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-share/references/connectors.md +4 -6
- package/lib/host-packages/cursor/openplanr/rules/planr-ship/references/findings.md +92 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-ship/references/result-contract.md +3 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-ship/scripts/backlog-item.mjs +339 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-ship.mdc +15 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-sprint/references/connectors.md +4 -6
- package/lib/host-packages/cursor/openplanr/rules/planr-status/references/connectors.md +4 -6
- package/lib/host-packages/cursor/openplanr/rules/planr-sync/references/connectors.md +4 -6
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-artifact-shell.mjs +1 -1
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-chunked-workspace-client.mjs +1 -1
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-document.mjs +385 -79
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-handoff.mjs +1 -1
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-resource-pack.mjs +1 -1
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-review.mjs +45 -4
- package/lib/host-packages/{openai/openplanr/runtime/design/scripts/design-runtime-support-e34c388a8e59.mjs → cursor/openplanr/runtime/design/scripts/design-runtime-support-6774fd3d5d02.mjs} +1 -1
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-share.mjs +8 -5
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs +40 -7
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-shared-artifact-support-protocol-contracts-ea2cd15e.mjs +1 -1
- package/lib/host-packages/{openai/openplanr/runtime/design/scripts/design-shared-protocol-contracts-31a760fc.mjs → cursor/openplanr/runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs} +284 -45
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-upload-spool.mjs +1 -1
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design.mjs +215 -55
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/02-artifact-review-ui.js +23 -23
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +246 -45
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/06-artifact-review-ui.js +12 -12
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/08-artifact-review-ui.js +47 -14
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +11 -10
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/package.json +4 -3
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.css +16 -11
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/01-module-runtime.js +7 -11
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +163 -274
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/03-react-dom-client-fiber-foundations.js +494 -967
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/04-react-dom-client-reconciliation-hooks.js +346 -678
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/05-react-dom-client-render-phases.js +382 -810
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/06-react-dom-client-commit-effects.js +406 -730
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/07-react-dom-client-work-loop-scheduling.js +259 -522
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/08-react-dom-client-dom-events-properties-hydration.js +585 -937
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +115 -240
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/10-react.js +7 -17
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/11-artifact-review-ui.js +3 -4
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-protocol-contracts.js +215 -0
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-design-review-experience.js +2766 -0
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-studio-shell.js +134 -0
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-canvas-engine.js +2170 -0
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/16-design-review-experience.js +16 -0
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/17-studio-shell.js +8 -0
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/18-interface-primitives.js +3883 -0
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/19-interface-primitives.js +966 -0
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/{16-studio-shell.js → 20-studio-shell.js} +122 -227
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/21-design-studio.js +1583 -0
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +101 -47
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/{claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0 → cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.20.0}/design-document.schema.json +78 -5
- package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +247 -45
- package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/design.mjs +45 -12
- package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +5 -1
- 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 +128 -92
- package/lib/host-packages/openai/openplanr/CONNECTORS.md +4 -6
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-artifact-shell.mjs +1 -1
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-chunked-workspace-client.mjs +1 -1
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-document.mjs +385 -79
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-handoff.mjs +1 -1
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-resource-pack.mjs +1 -1
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-review.mjs +45 -4
- package/lib/host-packages/{claude/openplanr/runtime/design/scripts/design-runtime-support-e34c388a8e59.mjs → openai/openplanr/runtime/design/scripts/design-runtime-support-6774fd3d5d02.mjs} +1 -1
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-share.mjs +8 -5
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs +40 -7
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-shared-artifact-support-protocol-contracts-ea2cd15e.mjs +1 -1
- package/lib/host-packages/{cursor/openplanr/runtime/design/scripts/design-shared-protocol-contracts-31a760fc.mjs → openai/openplanr/runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs} +284 -45
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-upload-spool.mjs +1 -1
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design.mjs +215 -55
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/02-artifact-review-ui.js +23 -23
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +246 -45
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/06-artifact-review-ui.js +12 -12
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/08-artifact-review-ui.js +47 -14
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +11 -10
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/package.json +4 -3
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.css +16 -11
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/01-module-runtime.js +7 -11
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +163 -274
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/03-react-dom-client-fiber-foundations.js +494 -967
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/04-react-dom-client-reconciliation-hooks.js +346 -678
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/05-react-dom-client-render-phases.js +382 -810
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/06-react-dom-client-commit-effects.js +406 -730
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/07-react-dom-client-work-loop-scheduling.js +259 -522
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/08-react-dom-client-dom-events-properties-hydration.js +585 -937
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +115 -240
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/10-react.js +7 -17
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/11-artifact-review-ui.js +3 -4
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-protocol-contracts.js +215 -0
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-design-review-experience.js +2766 -0
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-studio-shell.js +134 -0
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-canvas-engine.js +2170 -0
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/16-design-review-experience.js +16 -0
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/17-studio-shell.js +8 -0
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/18-interface-primitives.js +3883 -0
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/19-interface-primitives.js +966 -0
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/{16-studio-shell.js → 20-studio-shell.js} +122 -227
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/21-design-studio.js +1583 -0
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +101 -47
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/{cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0 → openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.20.0}/design-document.schema.json +78 -5
- package/lib/host-packages/openai/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +247 -45
- package/lib/host-packages/openai/openplanr/runtime/plan/scripts/design.mjs +45 -12
- package/lib/host-packages/openai/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +5 -1
- package/lib/host-packages/openai/openplanr/skills/connect/references/connectors.md +4 -6
- package/lib/host-packages/openai/openplanr/skills/design/SKILL.md +12 -0
- package/lib/host-packages/openai/openplanr/skills/design/openplanr.skill.json +11 -0
- package/lib/host-packages/openai/openplanr/skills/design/references/craft.md +14 -3
- package/lib/host-packages/openai/openplanr/skills/design/references/design-system.md +33 -1
- package/lib/host-packages/openai/openplanr/skills/design/references/discovery.md +18 -4
- package/lib/host-packages/openai/openplanr/skills/design/references/generation.md +74 -1
- package/lib/host-packages/openai/openplanr/skills/design/references/hosted-canvas.md +62 -0
- package/lib/host-packages/openai/openplanr/skills/design/references/review.md +46 -1
- package/lib/host-packages/openai/openplanr/skills/design/references/utilities.md +6 -0
- package/lib/host-packages/openai/openplanr/skills/design/schemas/design-document.schema.json +78 -5
- package/lib/host-packages/openai/openplanr/skills/design-loop/references/craft.md +14 -3
- package/lib/host-packages/openai/openplanr/skills/design-loop/references/design-system.md +33 -1
- package/lib/host-packages/openai/openplanr/skills/design-loop/references/discovery.md +18 -4
- package/lib/host-packages/openai/openplanr/skills/design-loop/references/generation.md +74 -1
- package/lib/host-packages/openai/openplanr/skills/design-loop/references/review.md +46 -1
- package/lib/host-packages/openai/openplanr/skills/design-loop/references/utilities.md +6 -0
- package/lib/host-packages/openai/openplanr/skills/design-loop/schemas/design-document.schema.json +78 -5
- package/lib/host-packages/openai/openplanr/skills/design-review/references/craft.md +14 -3
- package/lib/host-packages/openai/openplanr/skills/design-review/references/design-system.md +33 -1
- package/lib/host-packages/openai/openplanr/skills/design-review/references/discovery.md +18 -4
- package/lib/host-packages/openai/openplanr/skills/design-review/references/generation.md +74 -1
- package/lib/host-packages/openai/openplanr/skills/design-review/references/review.md +46 -1
- package/lib/host-packages/openai/openplanr/skills/design-review/references/utilities.md +6 -0
- package/lib/host-packages/openai/openplanr/skills/design-review/schemas/design-document.schema.json +78 -5
- package/lib/host-packages/openai/openplanr/skills/investigate/SKILL.md +10 -1
- package/lib/host-packages/openai/openplanr/skills/investigate/openplanr.skill.json +22 -0
- package/lib/host-packages/openai/openplanr/skills/investigate/references/findings.md +92 -0
- package/lib/host-packages/openai/openplanr/skills/investigate/scripts/backlog-item.mjs +339 -0
- package/lib/host-packages/openai/openplanr/skills/plan/SKILL.md +3 -0
- package/lib/host-packages/openai/openplanr/skills/plan/schemas/design-document.schema.json +78 -5
- package/lib/host-packages/openai/openplanr/skills/share/references/connectors.md +4 -6
- package/lib/host-packages/openai/openplanr/skills/ship/SKILL.md +15 -4
- package/lib/host-packages/openai/openplanr/skills/ship/openplanr.skill.json +22 -0
- package/lib/host-packages/openai/openplanr/skills/ship/references/findings.md +92 -0
- package/lib/host-packages/openai/openplanr/skills/ship/references/result-contract.md +3 -1
- package/lib/host-packages/openai/openplanr/skills/ship/scripts/backlog-item.mjs +339 -0
- package/lib/host-packages/openai/openplanr/skills/sprint/references/connectors.md +4 -6
- package/lib/host-packages/openai/openplanr/skills/status/references/connectors.md +4 -6
- package/lib/host-packages/openai/openplanr/skills/sync/references/connectors.md +4 -6
- package/package.json +3 -3
- package/dist/templates/backlog/backlog-item.md.hbs +0 -40
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-design-review-experience.js +0 -3589
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-studio-shell.js +0 -184
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-interface-primitives.js +0 -5229
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-interface-primitives.js +0 -1733
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/17-design-studio.js +0 -1844
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-design-review-experience.js +0 -3589
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-studio-shell.js +0 -184
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-interface-primitives.js +0 -5229
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-interface-primitives.js +0 -1733
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/17-design-studio.js +0 -1844
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-design-review-experience.js +0 -3589
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-studio-shell.js +0 -184
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-interface-primitives.js +0 -5229
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-interface-primitives.js +0 -1733
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/17-design-studio.js +0 -1844
|
@@ -4626,7 +4626,22 @@
|
|
|
4626
4626
|
}
|
|
4627
4627
|
return value;
|
|
4628
4628
|
};
|
|
4629
|
-
var
|
|
4629
|
+
var FRAME_SCHEMA = {
|
|
4630
|
+
type: "array",
|
|
4631
|
+
minItems: 1,
|
|
4632
|
+
items: {
|
|
4633
|
+
type: "object",
|
|
4634
|
+
additionalProperties: false,
|
|
4635
|
+
required: ["id", "label", "width", "height"],
|
|
4636
|
+
properties: {
|
|
4637
|
+
id: { $ref: "#/$defs/id" },
|
|
4638
|
+
label: { $ref: "#/$defs/text" },
|
|
4639
|
+
width: { type: "integer", minimum: 1, maximum: 16384 },
|
|
4640
|
+
height: { type: "integer", minimum: 1, maximum: 16384 }
|
|
4641
|
+
}
|
|
4642
|
+
}
|
|
4643
|
+
};
|
|
4644
|
+
var DESIGN_DOCUMENT_V1_SCHEMA = freeze({
|
|
4630
4645
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
4631
4646
|
$id: "https://openplanr.dev/schemas/v1.9.0/design-document.schema.json",
|
|
4632
4647
|
"x-openplanr-contract": { id: "design-document", version: "1.9.0" },
|
|
@@ -4677,21 +4692,7 @@
|
|
|
4677
4692
|
}
|
|
4678
4693
|
},
|
|
4679
4694
|
assets: { $ref: "#/$defs/paths" },
|
|
4680
|
-
frames:
|
|
4681
|
-
type: "array",
|
|
4682
|
-
minItems: 1,
|
|
4683
|
-
items: {
|
|
4684
|
-
type: "object",
|
|
4685
|
-
additionalProperties: false,
|
|
4686
|
-
required: ["id", "label", "width", "height"],
|
|
4687
|
-
properties: {
|
|
4688
|
-
id: { $ref: "#/$defs/id" },
|
|
4689
|
-
label: { $ref: "#/$defs/text" },
|
|
4690
|
-
width: { type: "integer", minimum: 1, maximum: 16384 },
|
|
4691
|
-
height: { type: "integer", minimum: 1, maximum: 16384 }
|
|
4692
|
-
}
|
|
4693
|
-
}
|
|
4694
|
-
},
|
|
4695
|
+
frames: FRAME_SCHEMA,
|
|
4695
4696
|
screens: {
|
|
4696
4697
|
type: "array",
|
|
4697
4698
|
minItems: 1,
|
|
@@ -4767,6 +4768,65 @@
|
|
|
4767
4768
|
}
|
|
4768
4769
|
}
|
|
4769
4770
|
});
|
|
4771
|
+
var DESIGN_DOCUMENT_SCHEMA = freeze({
|
|
4772
|
+
...DESIGN_DOCUMENT_V1_SCHEMA,
|
|
4773
|
+
$id: "https://openplanr.dev/schemas/v1.20.0/design-document.schema.json",
|
|
4774
|
+
"x-openplanr-contract": { id: "design-document", version: "1.20.0" },
|
|
4775
|
+
properties: {
|
|
4776
|
+
.../** @type {Record<string, unknown>} */
|
|
4777
|
+
DESIGN_DOCUMENT_V1_SCHEMA.properties,
|
|
4778
|
+
frames: {
|
|
4779
|
+
...FRAME_SCHEMA,
|
|
4780
|
+
items: {
|
|
4781
|
+
...FRAME_SCHEMA.items,
|
|
4782
|
+
properties: {
|
|
4783
|
+
...FRAME_SCHEMA.items.properties,
|
|
4784
|
+
height: { anyOf: [{ type: "integer", minimum: 1, maximum: 16384 }, { const: "auto" }] }
|
|
4785
|
+
}
|
|
4786
|
+
}
|
|
4787
|
+
},
|
|
4788
|
+
layout: {
|
|
4789
|
+
type: "object",
|
|
4790
|
+
additionalProperties: false,
|
|
4791
|
+
properties: {
|
|
4792
|
+
boards: {
|
|
4793
|
+
type: "object",
|
|
4794
|
+
description: "Keys are screenId, screenId/frameId or screenId/frameId/variantId; each ID must exist in the document.",
|
|
4795
|
+
additionalProperties: {
|
|
4796
|
+
type: "object",
|
|
4797
|
+
additionalProperties: false,
|
|
4798
|
+
required: ["x", "y"],
|
|
4799
|
+
properties: {
|
|
4800
|
+
x: { $ref: "#/$defs/coordinate" },
|
|
4801
|
+
y: { $ref: "#/$defs/coordinate" },
|
|
4802
|
+
title: { $ref: "#/$defs/text" }
|
|
4803
|
+
}
|
|
4804
|
+
}
|
|
4805
|
+
},
|
|
4806
|
+
sections: {
|
|
4807
|
+
type: "array",
|
|
4808
|
+
items: {
|
|
4809
|
+
type: "object",
|
|
4810
|
+
additionalProperties: false,
|
|
4811
|
+
required: ["id", "x", "y", "text"],
|
|
4812
|
+
properties: {
|
|
4813
|
+
id: { $ref: "#/$defs/id" },
|
|
4814
|
+
x: { $ref: "#/$defs/coordinate" },
|
|
4815
|
+
y: { $ref: "#/$defs/coordinate" },
|
|
4816
|
+
text: { $ref: "#/$defs/text" },
|
|
4817
|
+
maxW: { type: "integer", minimum: 1, maximum: 16384 }
|
|
4818
|
+
}
|
|
4819
|
+
}
|
|
4820
|
+
}
|
|
4821
|
+
}
|
|
4822
|
+
}
|
|
4823
|
+
},
|
|
4824
|
+
$defs: {
|
|
4825
|
+
.../** @type {Record<string, unknown>} */
|
|
4826
|
+
DESIGN_DOCUMENT_V1_SCHEMA.$defs,
|
|
4827
|
+
coordinate: { type: "number", minimum: -1e7, maximum: 1e7 }
|
|
4828
|
+
}
|
|
4829
|
+
});
|
|
4770
4830
|
|
|
4771
4831
|
// ../protocol/src/workspace-contracts.mjs
|
|
4772
4832
|
var DESIGN_WORKSPACE_VERSION = "1.0.0";
|
|
@@ -4851,7 +4911,7 @@
|
|
|
4851
4911
|
});
|
|
4852
4912
|
var designProperties = (
|
|
4853
4913
|
/** @type {Record<string, { items: { properties: Record<string, unknown>; required: string[] } }>} */
|
|
4854
|
-
structuredClone(
|
|
4914
|
+
structuredClone(DESIGN_DOCUMENT_V1_SCHEMA.properties)
|
|
4855
4915
|
);
|
|
4856
4916
|
for (const key of ["kind", "schemaVersion", "brief", "assets", "designSystem"])
|
|
4857
4917
|
delete designProperties[key];
|
|
@@ -4923,7 +4983,7 @@
|
|
|
4923
4983
|
},
|
|
4924
4984
|
["kind", "schemaVersion", "design", "envelope", "entries", "revision"]
|
|
4925
4985
|
),
|
|
4926
|
-
$defs: structuredClone(
|
|
4986
|
+
$defs: structuredClone(DESIGN_DOCUMENT_V1_SCHEMA.$defs)
|
|
4927
4987
|
};
|
|
4928
4988
|
var DESIGN_WORKSPACE_SCHEMAS = Object.freeze({
|
|
4929
4989
|
"design-review-workspace": DESIGN_WORKSPACE_SCHEMA,
|
|
@@ -5037,6 +5097,86 @@
|
|
|
5037
5097
|
"diagram-workspace-event": DIAGRAM_WORKSPACE_EVENT_SCHEMA
|
|
5038
5098
|
});
|
|
5039
5099
|
|
|
5100
|
+
// ../protocol/src/shape-library-contracts.mjs
|
|
5101
|
+
var closed5 = (properties) => ({
|
|
5102
|
+
type: "object",
|
|
5103
|
+
additionalProperties: false,
|
|
5104
|
+
required: Object.keys(properties),
|
|
5105
|
+
properties
|
|
5106
|
+
});
|
|
5107
|
+
var unit = { type: "number", minimum: 0, maximum: 1 };
|
|
5108
|
+
var extent = { type: "number", exclusiveMinimum: 0, maximum: 1 };
|
|
5109
|
+
var point2 = closed5({ x: unit, y: unit });
|
|
5110
|
+
var identifier = { type: "string", pattern: "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$", maxLength: 128 };
|
|
5111
|
+
var version = { type: "string", pattern: "^[0-9]+\\.[0-9]+\\.[0-9]+$", maxLength: 32 };
|
|
5112
|
+
var digest6 = { type: "string", pattern: "^sha256:[a-f0-9]{64}$" };
|
|
5113
|
+
var rect = {
|
|
5114
|
+
type: { const: "rect" },
|
|
5115
|
+
x: unit,
|
|
5116
|
+
y: unit,
|
|
5117
|
+
width: extent,
|
|
5118
|
+
height: extent,
|
|
5119
|
+
radius: unit
|
|
5120
|
+
};
|
|
5121
|
+
var ellipse = { type: { const: "ellipse" }, cx: unit, cy: unit, rx: extent, ry: extent };
|
|
5122
|
+
var polygon = {
|
|
5123
|
+
type: { const: "polygon" },
|
|
5124
|
+
points: { type: "array", minItems: 3, maxItems: 32, items: point2 }
|
|
5125
|
+
};
|
|
5126
|
+
var paint = { fill: { enum: ["fill", "none"] }, stroke: { enum: ["stroke", "none"] } };
|
|
5127
|
+
var pixels = { type: "number", minimum: 1, maximum: 1e4 };
|
|
5128
|
+
var SHAPE_REFERENCE_SCHEMA = closed5({
|
|
5129
|
+
packId: identifier,
|
|
5130
|
+
packVersion: version,
|
|
5131
|
+
shapeId: identifier,
|
|
5132
|
+
definitionDigest: digest6
|
|
5133
|
+
});
|
|
5134
|
+
var SHAPE_DEFINITION_SCHEMA = {
|
|
5135
|
+
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
5136
|
+
$id: "https://openplanr.dev/schemas/v1.21.0/diagram-shape-definition.schema.json",
|
|
5137
|
+
"x-openplanr-contract": { id: "diagram-shape-definition", version: "1.21.0" },
|
|
5138
|
+
...closed5({
|
|
5139
|
+
...SHAPE_REFERENCE_SCHEMA.properties,
|
|
5140
|
+
name: { type: "string", minLength: 1, maxLength: 128 },
|
|
5141
|
+
description: { type: "string", maxLength: 1024 },
|
|
5142
|
+
tags: {
|
|
5143
|
+
type: "array",
|
|
5144
|
+
maxItems: 16,
|
|
5145
|
+
uniqueItems: true,
|
|
5146
|
+
items: { type: "string", minLength: 1, maxLength: 64 }
|
|
5147
|
+
},
|
|
5148
|
+
primitives: {
|
|
5149
|
+
type: "array",
|
|
5150
|
+
minItems: 1,
|
|
5151
|
+
maxItems: 32,
|
|
5152
|
+
items: {
|
|
5153
|
+
oneOf: [
|
|
5154
|
+
closed5({ ...rect, ...paint }),
|
|
5155
|
+
closed5({ ...ellipse, ...paint }),
|
|
5156
|
+
closed5({ ...polygon, ...paint }),
|
|
5157
|
+
closed5({
|
|
5158
|
+
type: { const: "line" },
|
|
5159
|
+
x1: unit,
|
|
5160
|
+
y1: unit,
|
|
5161
|
+
x2: unit,
|
|
5162
|
+
y2: unit,
|
|
5163
|
+
stroke: paint.stroke
|
|
5164
|
+
})
|
|
5165
|
+
]
|
|
5166
|
+
}
|
|
5167
|
+
},
|
|
5168
|
+
attachment: { oneOf: [closed5(rect), closed5(ellipse), closed5(polygon)] },
|
|
5169
|
+
textRegion: closed5({ x: unit, y: unit, width: extent, height: extent }),
|
|
5170
|
+
sizing: closed5({ width: pixels, height: pixels, minWidth: pixels, minHeight: pixels })
|
|
5171
|
+
})
|
|
5172
|
+
};
|
|
5173
|
+
var SHAPE_LIBRARY_SCHEMA = {
|
|
5174
|
+
type: "array",
|
|
5175
|
+
maxItems: 512,
|
|
5176
|
+
items: SHAPE_DEFINITION_SCHEMA
|
|
5177
|
+
};
|
|
5178
|
+
var GEOMETRY_ROUNDOFF = Number.EPSILON * 32;
|
|
5179
|
+
|
|
5040
5180
|
// ../protocol/src/studio-presentation-contracts.mjs
|
|
5041
5181
|
var DIAGRAM_PRESENTATION_SCHEMA = {
|
|
5042
5182
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
@@ -5101,6 +5241,67 @@
|
|
|
5101
5241
|
DIAGRAM_AUTHORING_BUNDLE_V11_SCHEMA
|
|
5102
5242
|
]
|
|
5103
5243
|
};
|
|
5244
|
+
function withShapeReferences(schema6) {
|
|
5245
|
+
const copy = structuredClone(schema6);
|
|
5246
|
+
function visit(value) {
|
|
5247
|
+
if (!value || typeof value !== "object") return;
|
|
5248
|
+
if (value.properties?.shape && value.properties?.strokeWidth && value.properties?.fontSize)
|
|
5249
|
+
value.properties.shapeRef = SHAPE_REFERENCE_SCHEMA;
|
|
5250
|
+
for (const child of Object.values(value)) visit(child);
|
|
5251
|
+
}
|
|
5252
|
+
visit(copy);
|
|
5253
|
+
return copy;
|
|
5254
|
+
}
|
|
5255
|
+
function versionSchema(schema6, name) {
|
|
5256
|
+
return {
|
|
5257
|
+
...schema6,
|
|
5258
|
+
$id: `https://openplanr.dev/schemas/v1.21.0/${name}.schema.json`,
|
|
5259
|
+
"x-openplanr-contract": { id: name, version: "1.21.0" }
|
|
5260
|
+
};
|
|
5261
|
+
}
|
|
5262
|
+
var DIAGRAM_AUTHORING_BUNDLE_V12_SCHEMA = versionSchema(
|
|
5263
|
+
withShapeReferences(DIAGRAM_AUTHORING_BUNDLE_V11_SCHEMA),
|
|
5264
|
+
"diagram-authoring-bundle"
|
|
5265
|
+
);
|
|
5266
|
+
Object.assign(DIAGRAM_AUTHORING_BUNDLE_V12_SCHEMA.properties, {
|
|
5267
|
+
schemaVersion: { const: "1.2.0" },
|
|
5268
|
+
protocolVersion: { const: "1.21.0" },
|
|
5269
|
+
shapeLibrary: SHAPE_LIBRARY_SCHEMA
|
|
5270
|
+
});
|
|
5271
|
+
DIAGRAM_AUTHORING_BUNDLE_V12_SCHEMA.required = DIAGRAM_AUTHORING_BUNDLE_V12_SCHEMA.required.filter((key) => key !== "studioPresentation").concat("shapeLibrary");
|
|
5272
|
+
var DIAGRAM_EDIT_TRANSACTION_V12_SCHEMA = versionSchema(
|
|
5273
|
+
withShapeReferences(DIAGRAM_EDIT_TRANSACTION_V11_SCHEMA),
|
|
5274
|
+
"diagram-edit-transaction"
|
|
5275
|
+
);
|
|
5276
|
+
Object.assign(DIAGRAM_EDIT_TRANSACTION_V12_SCHEMA.properties, {
|
|
5277
|
+
schemaVersion: { const: "1.2.0" },
|
|
5278
|
+
protocolVersion: { const: "1.21.0" }
|
|
5279
|
+
});
|
|
5280
|
+
DIAGRAM_EDIT_TRANSACTION_V12_SCHEMA.properties.operations.items.oneOf.push({
|
|
5281
|
+
type: "object",
|
|
5282
|
+
additionalProperties: false,
|
|
5283
|
+
required: ["type", "before", "after"],
|
|
5284
|
+
properties: {
|
|
5285
|
+
type: { const: "set-shape-library" },
|
|
5286
|
+
before: { anyOf: [SHAPE_LIBRARY_SCHEMA, { type: "null" }] },
|
|
5287
|
+
after: { anyOf: [SHAPE_LIBRARY_SCHEMA, { type: "null" }] }
|
|
5288
|
+
}
|
|
5289
|
+
});
|
|
5290
|
+
var DIAGRAM_REVIEW_BUNDLE_V12_SCHEMA = versionSchema(
|
|
5291
|
+
structuredClone(DIAGRAM_REVIEW_BUNDLE_SCHEMA),
|
|
5292
|
+
"diagram-review-bundle"
|
|
5293
|
+
);
|
|
5294
|
+
Object.assign(DIAGRAM_REVIEW_BUNDLE_V12_SCHEMA.properties, {
|
|
5295
|
+
schemaVersion: { const: "1.2.0" },
|
|
5296
|
+
presentation: DIAGRAM_PRESENTATION_SCHEMA,
|
|
5297
|
+
authored: {
|
|
5298
|
+
oneOf: [
|
|
5299
|
+
DIAGRAM_AUTHORING_SCHEMAS["diagram-authoring-bundle"],
|
|
5300
|
+
DIAGRAM_AUTHORING_BUNDLE_V11_SCHEMA,
|
|
5301
|
+
DIAGRAM_AUTHORING_BUNDLE_V12_SCHEMA
|
|
5302
|
+
]
|
|
5303
|
+
}
|
|
5304
|
+
});
|
|
5104
5305
|
|
|
5105
5306
|
// ../protocol/src/large-object-limits.mjs
|
|
5106
5307
|
var LARGE_OBJECT_LIMITS = Object.freeze({
|
|
@@ -5124,10 +5325,10 @@
|
|
|
5124
5325
|
var LARGE_OBJECT_VERSION = "2.0.0";
|
|
5125
5326
|
var RESOURCE_HTML_SEGMENT_ENCODING = "openplanr.html-segments.utf8-v1";
|
|
5126
5327
|
var id6 = { type: "string", pattern: "^[A-Za-z0-9_-]{22,64}$" };
|
|
5127
|
-
var
|
|
5328
|
+
var digest7 = { type: "string", pattern: "^[a-f0-9]{64}$" };
|
|
5128
5329
|
var signature3 = { type: "string", pattern: "^[A-Za-z0-9_-]{86}$" };
|
|
5129
5330
|
var integer2 = (max, min = 0) => ({ type: "integer", minimum: min, maximum: max });
|
|
5130
|
-
var
|
|
5331
|
+
var closed6 = (properties, required = Object.keys(properties)) => ({
|
|
5131
5332
|
type: "object",
|
|
5132
5333
|
additionalProperties: false,
|
|
5133
5334
|
properties,
|
|
@@ -5135,23 +5336,23 @@
|
|
|
5135
5336
|
});
|
|
5136
5337
|
var iso2 = { type: "string", format: "date-time", maxLength: 40 };
|
|
5137
5338
|
var codec = { enum: ["identity", "deflate-raw"] };
|
|
5138
|
-
var publicKey2 =
|
|
5339
|
+
var publicKey2 = closed6({
|
|
5139
5340
|
kty: { const: "EC" },
|
|
5140
5341
|
crv: { const: "P-256" },
|
|
5141
5342
|
x: { type: "string", pattern: "^[A-Za-z0-9_-]{43}$" },
|
|
5142
5343
|
y: { type: "string", pattern: "^[A-Za-z0-9_-]{43}$" }
|
|
5143
5344
|
});
|
|
5144
|
-
var keyring =
|
|
5345
|
+
var keyring = closed6({
|
|
5145
5346
|
iv: { type: "string", pattern: "^[A-Za-z0-9_-]{16}$" },
|
|
5146
5347
|
ciphertext: { type: "string", pattern: "^[A-Za-z0-9_-]+$", maxLength: 65536 }
|
|
5147
5348
|
});
|
|
5148
|
-
var chunk =
|
|
5349
|
+
var chunk = closed6({
|
|
5149
5350
|
index: integer2(128),
|
|
5150
5351
|
byteLength: integer2(LARGE_OBJECT_LIMITS.chunkBytes, 17),
|
|
5151
5352
|
iv: { type: "string", pattern: "^[A-Za-z0-9_-]{16}$" },
|
|
5152
|
-
sha256:
|
|
5353
|
+
sha256: digest7
|
|
5153
5354
|
});
|
|
5154
|
-
var catalogSpan =
|
|
5355
|
+
var catalogSpan = closed6({
|
|
5155
5356
|
offset: integer2(LARGE_OBJECT_LIMITS.decodedBytes),
|
|
5156
5357
|
encodedBytes: integer2(LARGE_OBJECT_LIMITS.catalogBytes, 1),
|
|
5157
5358
|
decodedBytes: integer2(LARGE_OBJECT_LIMITS.catalogBytes, 1),
|
|
@@ -5161,7 +5362,7 @@
|
|
|
5161
5362
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
5162
5363
|
$id: `https://openplanr.dev/schemas/v1.17.0/${name}.schema.json`,
|
|
5163
5364
|
"x-openplanr-contract": { id: name, version: "1.17.0" },
|
|
5164
|
-
...
|
|
5365
|
+
...closed6(properties, required)
|
|
5165
5366
|
});
|
|
5166
5367
|
var ENCRYPTED_RESOURCE_MANIFEST_SCHEMA = schema5("encrypted-resource-manifest", {
|
|
5167
5368
|
schemaVersion: { const: LARGE_OBJECT_VERSION },
|
|
@@ -5183,8 +5384,8 @@
|
|
|
5183
5384
|
expectedVersion: integer2(Number.MAX_SAFE_INTEGER),
|
|
5184
5385
|
epoch: integer2(Number.MAX_SAFE_INTEGER, 1),
|
|
5185
5386
|
ownerPublicKey: publicKey2,
|
|
5186
|
-
ownerAuthHash:
|
|
5187
|
-
reviewerAuthHash:
|
|
5387
|
+
ownerAuthHash: digest7,
|
|
5388
|
+
reviewerAuthHash: digest7,
|
|
5188
5389
|
keyring,
|
|
5189
5390
|
manifest: ENCRYPTED_RESOURCE_MANIFEST_SCHEMA,
|
|
5190
5391
|
signature: signature3
|
|
@@ -5193,7 +5394,7 @@
|
|
|
5193
5394
|
schemaVersion: { const: LARGE_OBJECT_VERSION },
|
|
5194
5395
|
workspaceId: id6,
|
|
5195
5396
|
operationId: id6,
|
|
5196
|
-
manifestSha256:
|
|
5397
|
+
manifestSha256: digest7,
|
|
5197
5398
|
signature: signature3
|
|
5198
5399
|
});
|
|
5199
5400
|
var ENCRYPTED_UPLOAD_RECEIPT_SCHEMA = schema5("encrypted-upload-receipt", {
|
|
@@ -5201,7 +5402,7 @@
|
|
|
5201
5402
|
workspaceId: id6,
|
|
5202
5403
|
operationId: id6,
|
|
5203
5404
|
revisionId: id6,
|
|
5204
|
-
manifestSha256:
|
|
5405
|
+
manifestSha256: digest7,
|
|
5205
5406
|
status: { const: "committed" },
|
|
5206
5407
|
version: integer2(Number.MAX_SAFE_INTEGER, 1),
|
|
5207
5408
|
committedAt: iso2
|
|
@@ -5213,14 +5414,14 @@
|
|
|
5213
5414
|
workspaceId: id6,
|
|
5214
5415
|
operationId: id6,
|
|
5215
5416
|
revisionId: id6,
|
|
5216
|
-
manifestSha256:
|
|
5417
|
+
manifestSha256: digest7,
|
|
5217
5418
|
status: { enum: ["prepared", "committed"] },
|
|
5218
5419
|
receivedChunks: {
|
|
5219
5420
|
type: "array",
|
|
5220
5421
|
maxItems: LARGE_OBJECT_LIMITS.chunks,
|
|
5221
|
-
items:
|
|
5422
|
+
items: closed6({
|
|
5222
5423
|
index: integer2(128),
|
|
5223
|
-
sha256:
|
|
5424
|
+
sha256: digest7,
|
|
5224
5425
|
byteLength: integer2(LARGE_OBJECT_LIMITS.chunkBytes, 17)
|
|
5225
5426
|
})
|
|
5226
5427
|
},
|
|
@@ -5260,14 +5461,14 @@
|
|
|
5260
5461
|
authorPublicKey: publicKey2,
|
|
5261
5462
|
signature: signature3
|
|
5262
5463
|
});
|
|
5263
|
-
var resource =
|
|
5464
|
+
var resource = closed6({
|
|
5264
5465
|
id: { type: "string", pattern: "^r[0-9]{1,4}$" },
|
|
5265
5466
|
type: { enum: ["html-segments", "shared-block", "asset"] },
|
|
5266
5467
|
offset: integer2(LARGE_OBJECT_LIMITS.decodedBytes),
|
|
5267
5468
|
encodedBytes: integer2(LARGE_OBJECT_LIMITS.decodedBytes, 1),
|
|
5268
5469
|
decodedBytes: integer2(LARGE_OBJECT_LIMITS.decodedBytes, 1),
|
|
5269
5470
|
codec,
|
|
5270
|
-
sha256:
|
|
5471
|
+
sha256: digest7
|
|
5271
5472
|
});
|
|
5272
5473
|
var RESOURCE_CATALOG_SCHEMA = schema5("resource-catalog", {
|
|
5273
5474
|
schemaVersion: { const: "1.0.0" },
|
|
@@ -5285,11 +5486,11 @@
|
|
|
5285
5486
|
type: "array",
|
|
5286
5487
|
minItems: 1,
|
|
5287
5488
|
maxItems: LARGE_OBJECT_LIMITS.sources,
|
|
5288
|
-
items:
|
|
5489
|
+
items: closed6({
|
|
5289
5490
|
id: { type: "string", minLength: 1, maxLength: 128 },
|
|
5290
5491
|
resourceId: resource.properties.id,
|
|
5291
5492
|
htmlBytes: integer2(LARGE_OBJECT_LIMITS.uniqueHtmlBytes, 1),
|
|
5292
|
-
sha256:
|
|
5493
|
+
sha256: digest7
|
|
5293
5494
|
})
|
|
5294
5495
|
},
|
|
5295
5496
|
viewSources: {
|
|
@@ -5298,7 +5499,7 @@
|
|
|
5298
5499
|
additionalProperties: { type: "string", minLength: 1, maxLength: 128 }
|
|
5299
5500
|
}
|
|
5300
5501
|
});
|
|
5301
|
-
RESOURCE_CATALOG_SCHEMA.properties.reviewOf =
|
|
5502
|
+
RESOURCE_CATALOG_SCHEMA.properties.reviewOf = digest7;
|
|
5302
5503
|
var companyId = { type: "string", pattern: "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$" };
|
|
5303
5504
|
var companyScope = { organizationId: companyId, projectId: companyId, artifactId: companyId };
|
|
5304
5505
|
var COMPANY_RESOURCE_MANIFEST_SCHEMA = schema5("company-resource-manifest", {
|
|
@@ -5315,10 +5516,10 @@
|
|
|
5315
5516
|
type: "array",
|
|
5316
5517
|
minItems: 1,
|
|
5317
5518
|
maxItems: 128,
|
|
5318
|
-
items:
|
|
5519
|
+
items: closed6({
|
|
5319
5520
|
index: integer2(127),
|
|
5320
5521
|
byteLength: integer2(LARGE_OBJECT_LIMITS.chunkBytes, 1),
|
|
5321
|
-
sha256:
|
|
5522
|
+
sha256: digest7
|
|
5322
5523
|
})
|
|
5323
5524
|
}
|
|
5324
5525
|
});
|
|
@@ -5333,7 +5534,7 @@
|
|
|
5333
5534
|
...companyScope,
|
|
5334
5535
|
operationId: id6,
|
|
5335
5536
|
revisionId: id6,
|
|
5336
|
-
manifestSha256:
|
|
5537
|
+
manifestSha256: digest7,
|
|
5337
5538
|
contentDigest: { type: "string", pattern: "^sha256:[a-f0-9]{64}$" },
|
|
5338
5539
|
status: { const: "committed" },
|
|
5339
5540
|
committedAt: iso2
|
|
@@ -5347,9 +5548,9 @@
|
|
|
5347
5548
|
receivedChunks: {
|
|
5348
5549
|
type: "array",
|
|
5349
5550
|
maxItems: 128,
|
|
5350
|
-
items:
|
|
5551
|
+
items: closed6({
|
|
5351
5552
|
index: integer2(127),
|
|
5352
|
-
sha256:
|
|
5553
|
+
sha256: digest7,
|
|
5353
5554
|
byteLength: integer2(LARGE_OBJECT_LIMITS.chunkBytes, 1)
|
|
5354
5555
|
})
|
|
5355
5556
|
},
|
|
@@ -5373,7 +5574,7 @@
|
|
|
5373
5574
|
protocolVersion: { const: "1.17.0" },
|
|
5374
5575
|
contentDigest: { type: "string", pattern: "^sha256:[a-f0-9]{64}$" },
|
|
5375
5576
|
byteLength: integer2(LARGE_OBJECT_LIMITS.decodedBytes, 1),
|
|
5376
|
-
contentReference:
|
|
5577
|
+
contentReference: closed6({ transport: { const: "resources-v2" }, manifestSha256: digest7 })
|
|
5377
5578
|
});
|
|
5378
5579
|
ENTERPRISE_ARTIFACT_REVISION_V11_SCHEMA.required.push("contentReference", "protocolVersion");
|
|
5379
5580
|
var WORKSPACE_MANAGEMENT_V2_SCHEMA = schema5("workspace-management-v2", {
|
|
@@ -5387,7 +5588,7 @@
|
|
|
5387
5588
|
operationId: id6,
|
|
5388
5589
|
expectedVersion: integer2(Number.MAX_SAFE_INTEGER, 1),
|
|
5389
5590
|
epoch: integer2(Number.MAX_SAFE_INTEGER, 2),
|
|
5390
|
-
reviewerAuthHash:
|
|
5591
|
+
reviewerAuthHash: digest7,
|
|
5391
5592
|
keyring,
|
|
5392
5593
|
signature: signature3
|
|
5393
5594
|
});
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
throw new TypeError("A review operation needs a stable identity.");
|
|
21
21
|
return JSON.stringify([scopeKey, id7]);
|
|
22
22
|
};
|
|
23
|
-
let
|
|
23
|
+
let closed7 = false, draining = null;
|
|
24
24
|
const listeners = /* @__PURE__ */ new Set();
|
|
25
25
|
const heartbeats = /* @__PURE__ */ new Set();
|
|
26
26
|
const channel = typeof globalThis.BroadcastChannel === "function" ? new globalThis.BroadcastChannel(databaseName) : null;
|
|
@@ -56,14 +56,14 @@
|
|
|
56
56
|
request.onsuccess = () => {
|
|
57
57
|
const db = request.result;
|
|
58
58
|
db.onversionchange = () => db.close();
|
|
59
|
-
if (
|
|
59
|
+
if (closed7) db.close();
|
|
60
60
|
resolve(db);
|
|
61
61
|
};
|
|
62
62
|
});
|
|
63
63
|
void database.catch(() => {
|
|
64
64
|
});
|
|
65
65
|
async function transaction(mode, work) {
|
|
66
|
-
if (
|
|
66
|
+
if (closed7) throw new Error("Review custody has closed.");
|
|
67
67
|
const db = await database;
|
|
68
68
|
return new Promise((resolve, reject) => {
|
|
69
69
|
const tx = db.transaction("operations", mode), store = tx.objectStore("operations");
|
|
@@ -278,7 +278,7 @@
|
|
|
278
278
|
if (draining) return draining;
|
|
279
279
|
const owner = globalThis.crypto.randomUUID();
|
|
280
280
|
draining = (async () => {
|
|
281
|
-
while (!
|
|
281
|
+
while (!closed7) {
|
|
282
282
|
const entry = await claim(owner);
|
|
283
283
|
if (!entry) return;
|
|
284
284
|
const heartbeat = globalThis.setInterval(
|
|
@@ -334,7 +334,7 @@
|
|
|
334
334
|
return () => listeners.delete(listener);
|
|
335
335
|
},
|
|
336
336
|
close() {
|
|
337
|
-
|
|
337
|
+
closed7 = true;
|
|
338
338
|
for (const heartbeat of heartbeats) globalThis.clearInterval(heartbeat);
|
|
339
339
|
heartbeats.clear();
|
|
340
340
|
channel?.close();
|
|
@@ -605,14 +605,14 @@
|
|
|
605
605
|
if (x >= 0 && y >= 0 && w >= 0 && h >= 0 && x + w <= 1 && y + h <= 1) {
|
|
606
606
|
return { x, y, w, h };
|
|
607
607
|
}
|
|
608
|
-
const
|
|
609
|
-
const boundedX =
|
|
610
|
-
const boundedY =
|
|
608
|
+
const unit2 = (value) => Math.round(Math.min(1, Math.max(0, value)) * 1e6) / 1e6;
|
|
609
|
+
const boundedX = unit2(x);
|
|
610
|
+
const boundedY = unit2(y);
|
|
611
611
|
return {
|
|
612
612
|
x: boundedX,
|
|
613
613
|
y: boundedY,
|
|
614
|
-
w: Math.round(Math.min(
|
|
615
|
-
h: Math.round(Math.min(
|
|
614
|
+
w: Math.round(Math.min(unit2(w), 1 - boundedX) * 1e6) / 1e6,
|
|
615
|
+
h: Math.round(Math.min(unit2(h), 1 - boundedY) * 1e6) / 1e6
|
|
616
616
|
};
|
|
617
617
|
}
|
|
618
618
|
function normalizeViewport(viewport) {
|
|
@@ -1700,8 +1700,8 @@
|
|
|
1700
1700
|
snapshotDrafts,
|
|
1701
1701
|
getReviewOf: () => controller.getReview()?.reviewOf ?? reviewOf,
|
|
1702
1702
|
restoreDrafts(snapshot2) {
|
|
1703
|
-
const
|
|
1704
|
-
if (!snapshot2 || snapshot2.reviewOf !==
|
|
1703
|
+
const digest8 = controller.getReview()?.reviewOf ?? reviewOf;
|
|
1704
|
+
if (!snapshot2 || snapshot2.reviewOf !== digest8) return false;
|
|
1705
1705
|
if (typeof snapshot2.identity === "string") {
|
|
1706
1706
|
const name = snapshot2.identity.slice(0, ARTIFACT_REVIEW_LIMITS.authorName);
|
|
1707
1707
|
controller.setIdentity(name.trim() ? { ...controller.getIdentity(), name } : null);
|
|
@@ -1648,23 +1648,23 @@
|
|
|
1648
1648
|
}
|
|
1649
1649
|
return Object.freeze([state.activeArtifactId]);
|
|
1650
1650
|
}
|
|
1651
|
-
function assertRect2(
|
|
1652
|
-
if (!
|
|
1651
|
+
function assertRect2(rect2) {
|
|
1652
|
+
if (!rect2 || !Number.isFinite(rect2.left) || !Number.isFinite(rect2.top) || !Number.isFinite(rect2.width) || !Number.isFinite(rect2.height) || rect2.width <= 0 || rect2.height <= 0) {
|
|
1653
1653
|
throw new RangeError("Artifact bounds must have positive finite dimensions.");
|
|
1654
1654
|
}
|
|
1655
1655
|
}
|
|
1656
|
-
function clientPointToNormalized(
|
|
1657
|
-
assertRect2(
|
|
1656
|
+
function clientPointToNormalized(rect2, point3) {
|
|
1657
|
+
assertRect2(rect2);
|
|
1658
1658
|
return Object.freeze({
|
|
1659
|
-
x: normalized2((finite2(
|
|
1660
|
-
y: normalized2((finite2(
|
|
1659
|
+
x: normalized2((finite2(point3?.x ?? point3?.clientX) - rect2.left) / rect2.width),
|
|
1660
|
+
y: normalized2((finite2(point3?.y ?? point3?.clientY) - rect2.top) / rect2.height)
|
|
1661
1661
|
});
|
|
1662
1662
|
}
|
|
1663
|
-
function normalizedPointToClient(
|
|
1664
|
-
assertRect2(
|
|
1663
|
+
function normalizedPointToClient(rect2, point3) {
|
|
1664
|
+
assertRect2(rect2);
|
|
1665
1665
|
return Object.freeze({
|
|
1666
|
-
x:
|
|
1667
|
-
y:
|
|
1666
|
+
x: rect2.left + normalized2(point3?.x) * rect2.width,
|
|
1667
|
+
y: rect2.top + normalized2(point3?.y) * rect2.height
|
|
1668
1668
|
});
|
|
1669
1669
|
}
|
|
1670
1670
|
function parseDataScript(document2, id7) {
|
|
@@ -1786,6 +1786,8 @@
|
|
|
1786
1786
|
}
|
|
1787
1787
|
const frameDiagnostics = /* @__PURE__ */ new Map();
|
|
1788
1788
|
const frameLoads = /* @__PURE__ */ new Map();
|
|
1789
|
+
const frameHolds = /* @__PURE__ */ new Map();
|
|
1790
|
+
const frameHoldWaiters = /* @__PURE__ */ new Set();
|
|
1789
1791
|
const frameSlots = /* @__PURE__ */ new Map();
|
|
1790
1792
|
if (frameBudget !== null) {
|
|
1791
1793
|
for (const [id7, frame] of frames) {
|
|
@@ -2184,12 +2186,14 @@
|
|
|
2184
2186
|
function disposeStage() {
|
|
2185
2187
|
if (disposed) return true;
|
|
2186
2188
|
disposed = true;
|
|
2189
|
+
wakeFrameDemand();
|
|
2187
2190
|
for (const id7 of [...frameLoads.keys()]) releaseFrame(id7);
|
|
2188
2191
|
for (const remove of cleanup.splice(0)) remove();
|
|
2189
2192
|
return true;
|
|
2190
2193
|
}
|
|
2191
2194
|
const controller = Object.freeze({
|
|
2192
2195
|
frameBudget,
|
|
2196
|
+
holdFrames,
|
|
2193
2197
|
ensureFrames,
|
|
2194
2198
|
retryFrames,
|
|
2195
2199
|
getFrameDiagnostics: () => [...frameDiagnostics.values()],
|
|
@@ -2311,6 +2315,7 @@
|
|
|
2311
2315
|
const record2 = frameLoads.get(artifactId);
|
|
2312
2316
|
if (!record2) return;
|
|
2313
2317
|
frameLoads.delete(artifactId);
|
|
2318
|
+
wakeFrameDemand();
|
|
2314
2319
|
record2.cancelled = true;
|
|
2315
2320
|
record2.abort.abort();
|
|
2316
2321
|
record2.unlisten?.();
|
|
@@ -2482,6 +2487,29 @@
|
|
|
2482
2487
|
})().catch(fail);
|
|
2483
2488
|
return record2.promise;
|
|
2484
2489
|
}
|
|
2490
|
+
function wakeFrameDemand() {
|
|
2491
|
+
for (const resolve of frameHoldWaiters) resolve();
|
|
2492
|
+
frameHoldWaiters.clear();
|
|
2493
|
+
}
|
|
2494
|
+
function holdFrames(artifactIds) {
|
|
2495
|
+
if (disposed) throw cancelledFrame();
|
|
2496
|
+
if (!Array.isArray(artifactIds) || artifactIds.some((id7) => !frames.has(id7))) {
|
|
2497
|
+
throw new TypeError("Requested artifact frames must be known artifact IDs.");
|
|
2498
|
+
}
|
|
2499
|
+
const ids2 = [...new Set(artifactIds)];
|
|
2500
|
+
for (const id7 of ids2) frameHolds.set(id7, (frameHolds.get(id7) ?? 0) + 1);
|
|
2501
|
+
let released = false;
|
|
2502
|
+
return () => {
|
|
2503
|
+
if (released) return;
|
|
2504
|
+
released = true;
|
|
2505
|
+
for (const id7 of ids2) {
|
|
2506
|
+
const count2 = frameHolds.get(id7) ?? 0;
|
|
2507
|
+
if (count2 > 1) frameHolds.set(id7, count2 - 1);
|
|
2508
|
+
else frameHolds.delete(id7);
|
|
2509
|
+
}
|
|
2510
|
+
wakeFrameDemand();
|
|
2511
|
+
};
|
|
2512
|
+
}
|
|
2485
2513
|
function ensureFrames(artifactIds, isCurrent = () => true) {
|
|
2486
2514
|
if (disposed || !isCurrent()) return Promise.reject(cancelledFrame());
|
|
2487
2515
|
if (!Array.isArray(artifactIds) || artifactIds.some((id7) => typeof id7 !== "string" || !frames.has(id7))) {
|
|
@@ -2493,7 +2521,7 @@
|
|
|
2493
2521
|
new RangeError(`At most ${frameBudget} artifact frames may be requested together.`)
|
|
2494
2522
|
);
|
|
2495
2523
|
}
|
|
2496
|
-
if (frameBudget === null)
|
|
2524
|
+
if (frameBudget === null || requested.every((id7) => frameLoads.has(id7)))
|
|
2497
2525
|
return Promise.all(requested.map((id7) => assignArtifactSource(stageArtifactById(state, id7))));
|
|
2498
2526
|
const run = async () => {
|
|
2499
2527
|
if (disposed || !isCurrent()) throw cancelledFrame();
|
|
@@ -2501,8 +2529,13 @@
|
|
|
2501
2529
|
if (disposed || !isCurrent()) throw cancelledFrame();
|
|
2502
2530
|
if (!frameLoads.has(id7)) {
|
|
2503
2531
|
while (frameLoads.size >= frameBudget) {
|
|
2504
|
-
const candidates = [...frameLoads].filter(([loadedId]) => !requested.includes(loadedId)).sort((a, b) => a[1].used - b[1].used);
|
|
2505
|
-
if (!candidates.length)
|
|
2532
|
+
const candidates = [...frameLoads].filter(([loadedId]) => !requested.includes(loadedId) && !frameHolds.has(loadedId)).sort((a, b) => a[1].used - b[1].used);
|
|
2533
|
+
if (!candidates.length) {
|
|
2534
|
+
if (!frameHolds.size) throw new Error("The artifact frame budget is exhausted.");
|
|
2535
|
+
await new Promise((resolve) => frameHoldWaiters.add(resolve));
|
|
2536
|
+
if (disposed || !isCurrent()) throw cancelledFrame();
|
|
2537
|
+
continue;
|
|
2538
|
+
}
|
|
2506
2539
|
releaseFrame(candidates[0][0]);
|
|
2507
2540
|
}
|
|
2508
2541
|
}
|
|
@@ -2527,7 +2560,7 @@
|
|
|
2527
2560
|
}
|
|
2528
2561
|
function cancelInactiveLoads(ids2) {
|
|
2529
2562
|
for (const [id7, record2] of frameLoads) {
|
|
2530
|
-
if (record2.status === "loading" && !ids2.includes(id7)) releaseFrame(id7);
|
|
2563
|
+
if (record2.status === "loading" && !ids2.includes(id7) && !frameHolds.has(id7)) releaseFrame(id7);
|
|
2531
2564
|
}
|
|
2532
2565
|
}
|
|
2533
2566
|
async function activateVisibleFrames() {
|