create-agdf 0.14.5 → 0.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +496 -19
- package/bin/create-agdf.js +2 -1
- package/generated/.agdf/control/README.md +29 -2
- package/generated/.agdf/control/templates/MASTER_BACKLOG.md +4 -2
- package/generated/.agdf/control/templates/RUN_STATE.md +1 -0
- package/generated/.agdf/control/templates/artefacts/BROWNFIELD_REVIEW.md +31 -0
- package/generated/.agdf/control/templates/artefacts/PRD.md +44 -5
- package/generated/.agdf/control/templates/artefacts/QA_REPORT.md +6 -0
- package/generated/.agdf/control/templates/artefacts/SD.md +31 -3
- package/generated/.agdf/control/templates/artefacts/TP.md +43 -8
- package/generated/.agdf/control/templates/artefacts/UR.md +17 -0
- package/generated/.agdf/control/templates/artefacts/UX_INTENT_DEFINITION.md +10 -0
- package/generated/.opencode/AGDF.md +17 -121
- package/generated/.opencode/README.md +7 -2
- package/generated/.opencode/agdf-agent-router.md +174 -0
- package/generated/.opencode/agdf-interaction-locales.json +2682 -495
- package/generated/.opencode/agdf-runtime-contract.md +17 -9
- package/generated/.opencode/contracts/closeout.md +7 -3
- package/generated/.opencode/contracts/control-scaffold.md +19 -6
- package/generated/.opencode/contracts/gate-artifact-preparation.md +132 -0
- package/generated/.opencode/contracts/gate-transition.md +56 -12
- package/generated/.opencode/contracts/interaction.md +331 -41
- package/generated/.opencode/contracts/modes.md +23 -11
- package/generated/.opencode/contracts/prd-definition.md +130 -0
- package/generated/.opencode/contracts/quality.md +85 -14
- package/generated/.opencode/contracts/request-activation.md +252 -0
- package/generated/.opencode/contracts/sd-definition.md +69 -0
- package/generated/.opencode/contracts/task-target-resolution.md +63 -9
- package/generated/.opencode/contracts/tp-definition.md +81 -0
- package/generated/.opencode/contracts/ur-definition.md +94 -0
- package/generated/.opencode/skills/agdf-brownfield-analysis/SKILL.md +70 -8
- package/generated/.opencode/skills/agdf-clean-implementation-review/SKILL.md +35 -3
- package/generated/.opencode/skills/agdf-code-review/SKILL.md +36 -2
- package/generated/.opencode/skills/agdf-delivery-closeout/SKILL.md +36 -4
- package/generated/.opencode/skills/agdf-delivery-path-search/SKILL.md +36 -4
- package/generated/.opencode/skills/agdf-gate-check/SKILL.md +68 -222
- package/generated/.opencode/skills/agdf-prd-definition/SKILL.md +51 -0
- package/generated/.opencode/skills/agdf-qa-gate/SKILL.md +78 -10
- package/generated/.opencode/skills/agdf-release-or/SKILL.md +44 -11
- package/generated/.opencode/skills/agdf-sd-definition/SKILL.md +51 -0
- package/generated/.opencode/skills/agdf-task-plan-review/SKILL.md +35 -3
- package/generated/.opencode/skills/agdf-tp-definition/SKILL.md +51 -0
- package/generated/.opencode/skills/agdf-ur-definition/SKILL.md +54 -0
- package/generated/.opencode/skills/agdf-ux-intent-definition/SKILL.md +100 -6
- package/generated/plugins/agdf/.claude-plugin/plugin.json +3 -2
- package/generated/plugins/agdf/.codex-plugin/plugin.json +3 -1
- package/generated/plugins/agdf/control/README.md +29 -2
- package/generated/plugins/agdf/control/templates/MASTER_BACKLOG.md +4 -2
- package/generated/plugins/agdf/control/templates/RUN_STATE.md +1 -0
- package/generated/plugins/agdf/control/templates/artefacts/BROWNFIELD_REVIEW.md +31 -0
- package/generated/plugins/agdf/control/templates/artefacts/PRD.md +44 -5
- package/generated/plugins/agdf/control/templates/artefacts/QA_REPORT.md +6 -0
- package/generated/plugins/agdf/control/templates/artefacts/SD.md +31 -3
- package/generated/plugins/agdf/control/templates/artefacts/TP.md +43 -8
- package/generated/plugins/agdf/control/templates/artefacts/UR.md +17 -0
- package/generated/plugins/agdf/control/templates/artefacts/UX_INTENT_DEFINITION.md +10 -0
- package/generated/plugins/agdf/hooks/hooks.json +2 -2
- package/generated/plugins/agdf/hooks/session-start.sh +5 -70
- package/generated/plugins/agdf/mcp/agdf-mcp-launch.js +7 -0
- package/generated/plugins/agdf/mcp/claude.mcp.json +11 -0
- package/generated/plugins/agdf/mcp/sdk/expected-sdk.json +21 -0
- package/generated/plugins/agdf/mcp/sdk/package-lock.json +47 -0
- package/generated/plugins/agdf/mcp/sdk/package.json +7 -0
- package/generated/plugins/agdf/mcp/server/NOTICE +10 -0
- package/generated/plugins/agdf/mcp/server/README.md +136 -0
- package/generated/plugins/agdf/mcp/server/bin/agdf-mcp.js +24 -0
- package/generated/plugins/agdf/mcp/server/package.json +59 -0
- package/generated/plugins/agdf/mcp/server/src/cockpit-resource.js +20 -0
- package/generated/plugins/agdf/mcp/server/src/generation-entry.js +86 -0
- package/generated/plugins/agdf/mcp/server/src/generation-protocol.js +44 -0
- package/generated/plugins/agdf/mcp/server/src/generation.js +211 -0
- package/generated/plugins/agdf/mcp/server/src/main.js +56 -0
- package/generated/plugins/agdf/mcp/server/src/server.js +187 -0
- package/generated/plugins/agdf/mcp/server/src/ui-capability.js +17 -0
- package/generated/plugins/agdf/mcp/server/src/worker-entry.js +39 -0
- package/generated/plugins/agdf/mcp/server/src/worker.js +134 -0
- package/generated/plugins/agdf/mcp/server/ui/cockpit.html +109 -0
- package/generated/plugins/agdf/mcp/server/ui/decision-manifest.json +8 -0
- package/generated/plugins/agdf/mcp/server/ui/decision.html +108 -0
- package/generated/plugins/agdf/mcp/server/ui/manifest.json +8 -0
- package/generated/plugins/agdf/mcp.json +28 -0
- package/generated/plugins/agdf/meta/agdf-agent-router.md +50 -8
- package/generated/plugins/agdf/meta/agdf-interaction-locales.json +2682 -495
- package/generated/plugins/agdf/meta/agdf-mcp-capability.json +158 -0
- package/generated/plugins/agdf/meta/agdf-plugin.definition.json +354 -17
- package/generated/plugins/agdf/meta/agdf-runtime-contract.md +17 -9
- package/generated/plugins/agdf/meta/contracts/closeout.md +6 -2
- package/generated/plugins/agdf/meta/contracts/control-scaffold.md +17 -4
- package/generated/plugins/agdf/meta/contracts/gate-artifact-preparation.md +132 -0
- package/generated/plugins/agdf/meta/contracts/gate-transition.md +48 -4
- package/generated/plugins/agdf/meta/contracts/interaction.md +328 -38
- package/generated/plugins/agdf/meta/contracts/modes.md +23 -11
- package/generated/plugins/agdf/meta/contracts/prd-definition.md +130 -0
- package/generated/plugins/agdf/meta/contracts/quality.md +77 -6
- package/generated/plugins/agdf/meta/contracts/request-activation.md +252 -0
- package/generated/plugins/agdf/meta/contracts/sd-definition.md +69 -0
- package/generated/plugins/agdf/meta/contracts/task-target-resolution.md +63 -9
- package/generated/plugins/agdf/meta/contracts/tp-definition.md +81 -0
- package/generated/plugins/agdf/meta/contracts/ur-definition.md +94 -0
- package/generated/plugins/agdf/meta/copilot-payload-baseline.json +3 -3
- package/generated/plugins/agdf/meta/distribution-profile-history.json +14 -0
- package/generated/plugins/agdf/meta/schemas/agent-plugins/1.0.0/mcp.schema.json +120 -0
- package/generated/plugins/agdf/meta/schemas/agent-plugins/1.0.0/plugin.schema.json +65 -0
- package/generated/plugins/agdf/meta/schemas/agent-plugins/1.0.0/provenance.json +19 -0
- package/generated/plugins/agdf/runtime/agdf-local.js +5 -4
- package/generated/plugins/agdf/runtime/agdf-session-check.js +127 -50
- package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-interaction-locales.json +2682 -495
- package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-plugin.definition.json +354 -17
- package/generated/plugins/{copilot/agdf/copilot-skills → agdf/runtime/create-agdf/generated/plugins/agdf/meta}/contracts/closeout.md +7 -3
- package/generated/plugins/{copilot/agdf/copilot-skills → agdf/runtime/create-agdf/generated/plugins/agdf/meta}/contracts/control-scaffold.md +19 -6
- package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/gate-artifact-preparation.md +132 -0
- package/generated/plugins/{copilot/agdf/copilot-skills → agdf/runtime/create-agdf/generated/plugins/agdf/meta}/contracts/gate-transition.md +56 -12
- package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/interaction.md +777 -0
- package/generated/plugins/{copilot/agdf/copilot-skills → agdf/runtime/create-agdf/generated/plugins/agdf/meta}/contracts/modes.md +23 -11
- package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/prd-definition.md +130 -0
- package/generated/plugins/{copilot/agdf/copilot-skills → agdf/runtime/create-agdf/generated/plugins/agdf/meta}/contracts/quality.md +85 -14
- package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/request-activation.md +252 -0
- package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/sd-definition.md +69 -0
- package/generated/plugins/{copilot/agdf/copilot-skills → agdf/runtime/create-agdf/generated/plugins/agdf/meta}/contracts/task-target-resolution.md +63 -9
- package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/tp-definition.md +81 -0
- package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/ur-definition.md +94 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/cli/command-registry.js +251 -16
- package/generated/plugins/agdf/runtime/create-agdf/lib/cli/contract-command.js +24 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/cli/control-maintenance-command.js +44 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/cli/delivery-path-search-command.js +11 -11
- package/generated/plugins/agdf/runtime/create-agdf/lib/cli/parse-args.js +254 -5
- package/generated/plugins/agdf/runtime/create-agdf/lib/cli/runtime-context.js +14 -37
- package/generated/plugins/agdf/runtime/create-agdf/lib/cli/validation-handlers.js +205 -7
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-command.js +4 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-evaluation/git-observation.js +22 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-maintenance/interaction.js +28 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-maintenance/repair.js +4 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-maintenance/service.js +3 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-maintenance/startup.js +25 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-state/run-recovery.js +5 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/evaluators/claude.js +3 -3
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/evaluators/codex.js +3 -3
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/evaluators/opencode.js +4 -4
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/evaluators/protocol.js +1 -1
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/generators/claude.js +3 -3
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/generators/codex.js +3 -3
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/generators/protocol.js +1 -1
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/surfaces/capabilities.js +1 -1
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/transports/read-only-guard.js +2 -1
- package/generated/plugins/agdf/runtime/create-agdf/lib/host-adapters/claude/session-command.js +2 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/host-adapters/codex/session-command.js +7 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/host-adapters/copilot/session-command.js +1 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/host-adapters/opencode/session-command.js +1 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/host-adapters/session-command.js +11 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/host-command.js +112 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-dispatch-runtime.js +360 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-entry.js +26 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-owner-entry.js +34 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/package.js +527 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/plugin-runtime.js +420 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/npm-invocation.js +27 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/repository-context.js +87 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/control-command-service.js +12 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/control-context.js +11 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/git-history.js +7 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/git-originals.js +36 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/local-validator.js +39 -5
- package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/plugin-provenance.js +1 -298
- package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/runtime-probe.js +61 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/validator-application.js +3 -3
- package/generated/plugins/agdf/runtime/create-agdf/lib/runtime-check-consent/contract.js +9 -8
- package/generated/plugins/agdf/runtime/create-agdf/lib/skill-dispatch/binding.js +9 -0
- package/generated/plugins/agdf/runtime/create-agdf/package.json +6 -2
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/acceptance-criteria.js +61 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/backlog-vocabulary.d.ts +3 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/backlog-vocabulary.js +15 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/closeout-readiness.js +103 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/decision-content-readiness.js +131 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/definition-sources.js +46 -0
- package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-evaluation/delivery-map.js +31 -37
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/delivery-relationships.js +21 -0
- package/{lib → generated/plugins/agdf/runtime/create-agdf/runtime/core/lib}/control-evaluation/doctor.js +85 -17
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-check.js +827 -0
- package/generated/plugins/{copilot/agdf/runtime/create-agdf → agdf/runtime/create-agdf/runtime/core}/lib/control-evaluation/gate-policy.js +141 -10
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/markdown-table.js +40 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/next-action.js +32 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/normalized-gaps.js +105 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/prd-readiness.js +51 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/qa-follow-up.js +83 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/report-decision.js +237 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-state-policy.js +51 -0
- package/{lib → generated/plugins/agdf/runtime/create-agdf/runtime/core/lib}/control-evaluation/run-state.js +108 -74
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-step-policy.js +20 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-work-summary.js +109 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/sd-readiness.js +56 -0
- package/generated/plugins/{copilot/agdf/runtime/create-agdf → agdf/runtime/create-agdf/runtime/core}/lib/control-evaluation/shared.js +5 -2
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/tp-planning.js +118 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/traceability-readiness.js +212 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/ur-readiness.js +47 -0
- package/{lib → generated/plugins/agdf/runtime/create-agdf/runtime/core/lib}/control-evaluation/verified-change.js +10 -30
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/artifact-readiness.js +122 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-backlog.js +135 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-context.js +97 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-contract.js +86 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-list.d.ts +17 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-list.js +45 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-session.js +217 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit.js +388 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/contract.js +299 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/decision-session.js +243 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/selection.js +35 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/service.js +319 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/compatibility.js +149 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/contract.js +41 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/interaction.js +57 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/migration.js +85 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/presentation.js +122 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/repair.js +226 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/service.js +38 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/cockpit-pool.js +105 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/cockpit-worker.js +33 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/control-changes.js +33 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/fs.js +55 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/snapshot.js +378 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read-boundary.js +22 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-command-contract.js +73 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-command.js +137 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-operations.js +95 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/artefact-binding-proof.js +90 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/artefact-bindings.js +94 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary-shape.d.ts +4 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary-shape.js +40 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary.js +67 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/contained-file.js +56 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/control-configuration.js +19 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/decision-action-contract.js +32 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/decision-action-service.js +55 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/decision-material-contract.js +12 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/evidence-bindings.js +132 -0
- package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-state/index.js +2 -0
- package/generated/plugins/{copilot/agdf/runtime/create-agdf → agdf/runtime/create-agdf/runtime/core}/lib/control-state/legacy-migration.js +5 -31
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/legacy-projection-reader.js +38 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/presentation-decision.js +138 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-render.js +130 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-review.js +136 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-snapshot.js +108 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/qa-deviation-acceptance.js +82 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/recording-formats.js +29 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-artefact-recording.js +81 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-backlog-writer.js +80 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-backlog.js +90 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-contract.js +143 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-service.js +174 -0
- package/{lib → generated/plugins/agdf/runtime/create-agdf/runtime/core/lib}/control-state/run-identity.js +1 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-identity.js +31 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-proof.js +103 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-status.js +59 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operations.js +80 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-owned-outputs.js +59 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-envelope.js +36 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-render.js +443 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation.js +348 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-recording.js +273 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-recovery.js +296 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-relationship-correction.js +74 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision-boundary.js +44 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision-history.js +184 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision.js +458 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-seal-compute.js +141 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-seal.js +26 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-source-revisions.js +221 -0
- package/generated/plugins/{copilot/agdf/runtime/create-agdf/lib/control-state/run-state-parser.js → agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-document.js} +17 -47
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-edits.js +170 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-parser.js +106 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-reader.js +57 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-repository.js +201 -0
- package/generated/plugins/{copilot/agdf/runtime/create-agdf → agdf/runtime/create-agdf/runtime/core}/lib/control-state/run-state-resolver.js +1 -1
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-writer.js +484 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-step-pending.js +15 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-step-transaction.js +359 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-steps.js +571 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-store-inspection.js +65 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-text.js +8 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/delivery-continuation/service.js +67 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/index.js +14 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/interaction-catalog-validation.js +26 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/interaction-catalog.d.ts +2 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/interaction-catalog.js +98 -0
- package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/interaction-presentation.js +437 -33
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/mcp-resource-contract.js +4 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/mcp-tool-errors.js +176 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/repository-context-reader.js +87 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/resources/artefact-templates.js +72 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/resources/binding.js +26 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/resources/context.js +70 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/resources/contracts.js +23 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/runtime/host-installation.js +200 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/runtime/plugin-provenance.js +496 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/binding.js +66 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/compact-continuation.js +76 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/contract.js +430 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/delivery-intake.js +80 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/delivery-run-assignment.js +74 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/prd-definition.js +39 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/sd-definition.js +39 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/service.js +833 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/tp-definition.js +41 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/task-target-resolution.js +202 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/LICENSE +11 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/decode.js +3 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/decode.js +511 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/encode.js +73 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/escape.js +121 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/generated/decode-data-html.js +10 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +10 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/generated/encode-html.js +13 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/index.js +131 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/package.json +3 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/decode-codepoint.js +72 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/decode.js +497 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/encode.js +69 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/escape.js +117 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/generated/decode-data-html.js +7 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/generated/decode-data-xml.js +7 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/generated/encode-html.js +10 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/index.js +107 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/package.json +3 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/escape.js +3 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/package.json +118 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/entities/src/generated/.eslintrc.json +10 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/LICENSE +20 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/index.browser.cjs +43 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/index.browser.js +43 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/index.cjs +47 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/index.js +47 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/index.native.js +38 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/package.json +12 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/bin/nanoid.cjs +55 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/index.browser.cjs +45 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/index.browser.js +45 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/index.cjs +63 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/index.js +63 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/nanoid.js +1 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/non-secure/index.cjs +24 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/non-secure/index.js +24 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/non-secure/package.json +6 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/package.json +89 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/url-alphabet/index.cjs +4 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/url-alphabet/index.js +4 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/url-alphabet/package.json +6 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/LICENSE +19 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/doctype.js +118 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/error-codes.js +66 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/foreign-content.js +237 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/html.js +528 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/token.js +24 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/unicode.js +70 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/index.js +54 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/package.json +1 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/parser/formatting-element-list.js +114 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/parser/index.js +3240 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/parser/open-element-stack.js +328 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/serializer/index.js +172 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/tokenizer/index.js +2714 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/tokenizer/preprocessor.js +200 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/tree-adapters/default.js +176 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/tree-adapters/interface.js +2 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/doctype.js +114 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/error-codes.js +63 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/foreign-content.js +228 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/html.js +523 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/token.js +20 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/unicode.js +62 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/index.js +42 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/parser/formatting-element-list.js +110 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/parser/index.js +3245 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/parser/open-element-stack.js +324 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/serializer/index.js +168 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/tokenizer/index.js +2710 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/tokenizer/preprocessor.js +196 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/tree-adapters/default.js +173 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/tree-adapters/interface.js +1 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/package.json +50 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/picocolors/LICENSE +15 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/picocolors/package.json +25 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/picocolors/picocolors.browser.js +4 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/picocolors/picocolors.js +75 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/LICENSE +20 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/at-rule.js +25 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/comment.js +13 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/container.js +494 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/css-syntax-error.js +133 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/declaration.js +24 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/document.js +33 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/fromJSON.js +107 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/input.js +282 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/lazy-result.js +626 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/list.js +79 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/map-generator.js +383 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/no-work-result.js +137 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/node.js +494 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/parse.js +42 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/parser.js +626 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/postcss.js +101 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/postcss.mjs +30 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/previous-map.js +176 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/processor.js +67 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/result.js +42 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/root.js +76 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/rule.js +27 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/stringifier.js +457 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/stringify.js +69 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/symbols.js +5 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/terminal-highlight.js +70 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/tokenize.js +270 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/warn-once.js +13 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/warning.js +47 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/package.json +88 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/LICENSE +28 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/array-set.js +121 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/base64-vlq.js +140 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/base64.js +67 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/binary-search.js +111 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/mapping-list.js +79 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/quick-sort.js +141 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/source-map-consumer.js +1236 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/source-map-generator.js +446 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/source-node.js +420 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/util.js +594 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/package.json +71 -0
- package/generated/plugins/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/source-map.js +8 -0
- package/generated/plugins/agdf/runtime/runtime-manifest.json +2 -2
- package/generated/plugins/agdf/scripts/agent-skills-conformance.mjs +9 -5
- package/generated/plugins/agdf/scripts/check-runtime-integrity.mjs +1123 -182
- package/generated/plugins/agdf/scripts/instruction-footprint.mjs +945 -0
- package/generated/plugins/agdf/skills/brownfield-analysis/SKILL.md +67 -5
- package/generated/plugins/agdf/skills/clean-implementation-review/SKILL.md +34 -2
- package/generated/plugins/agdf/skills/code-review/SKILL.md +36 -2
- package/generated/plugins/agdf/skills/delivery-closeout/SKILL.md +34 -2
- package/generated/plugins/agdf/skills/delivery-path-search/SKILL.md +34 -2
- package/generated/plugins/agdf/skills/gate-check/SKILL.md +68 -222
- package/generated/plugins/agdf/skills/prd-definition/SKILL.md +51 -0
- package/generated/plugins/agdf/skills/prd-definition/help.md +23 -0
- package/generated/plugins/agdf/skills/qa-gate/SKILL.md +73 -5
- package/generated/plugins/agdf/skills/release-or/SKILL.md +36 -3
- package/generated/plugins/agdf/skills/sd-definition/SKILL.md +51 -0
- package/generated/plugins/agdf/skills/sd-definition/help.md +17 -0
- package/generated/plugins/agdf/skills/task-plan-review/SKILL.md +34 -2
- package/generated/plugins/agdf/skills/tp-definition/SKILL.md +51 -0
- package/generated/plugins/agdf/skills/tp-definition/help.md +17 -0
- package/generated/plugins/agdf/skills/ur-definition/SKILL.md +54 -0
- package/generated/plugins/agdf/skills/ur-definition/help.md +19 -0
- package/generated/plugins/agdf/skills/ux-intent-definition/SKILL.md +100 -6
- package/generated/plugins/agdf/skills/ux-intent-definition/help.md +3 -0
- package/generated/plugins/agdf/submission/openai/availability.md +1 -1
- package/generated/plugins/agdf/submission/openai/capability-matrix.json +1 -1
- package/generated/plugins/agdf/submission/openai/release-notes.md +1 -1
- package/generated/plugins/agdf/submission/openai/reviewer-cases.json +1 -1
- package/generated/plugins/copilot/agdf/.agdf-payload-inventory.json +3314 -409
- package/generated/plugins/copilot/agdf/control/README.md +125 -0
- package/generated/plugins/copilot/agdf/control/templates/AGDF_RUN.md +139 -0
- package/generated/plugins/copilot/agdf/control/templates/AGENT_QUALITY_CONTRACTS.json +126 -0
- package/generated/plugins/copilot/agdf/control/templates/CONTEXT_GRAPH.md +51 -0
- package/generated/plugins/copilot/agdf/control/templates/MASTER_BACKLOG.md +39 -0
- package/generated/plugins/copilot/agdf/control/templates/RUN_STATE.md +93 -0
- package/generated/plugins/copilot/agdf/control/templates/SOT_REGISTRY.md +25 -0
- package/generated/plugins/copilot/agdf/control/templates/artefacts/BROWNFIELD_REVIEW.md +135 -0
- package/generated/plugins/copilot/agdf/control/templates/artefacts/OR.md +125 -0
- package/generated/plugins/copilot/agdf/control/templates/artefacts/PRD.md +113 -0
- package/generated/plugins/copilot/agdf/control/templates/artefacts/QA_REPORT.md +44 -0
- package/generated/plugins/copilot/agdf/control/templates/artefacts/SD.md +70 -0
- package/generated/plugins/copilot/agdf/control/templates/artefacts/TP.md +71 -0
- package/generated/plugins/copilot/agdf/control/templates/artefacts/UR.md +58 -0
- package/generated/plugins/copilot/agdf/control/templates/artefacts/UX_INTENT_DEFINITION.md +61 -0
- package/generated/plugins/copilot/agdf/control/templates/artefacts/VERIFIED_CHANGE.md +58 -0
- package/generated/plugins/copilot/agdf/mcp/agdf-mcp-launch.js +7 -0
- package/generated/plugins/copilot/agdf/mcp/sdk/expected-sdk.json +21 -0
- package/generated/plugins/copilot/agdf/mcp/sdk/package-lock.json +47 -0
- package/generated/plugins/copilot/agdf/mcp/sdk/package.json +7 -0
- package/generated/plugins/copilot/agdf/mcp/server/NOTICE +10 -0
- package/generated/plugins/copilot/agdf/mcp/server/README.md +136 -0
- package/generated/plugins/copilot/agdf/mcp/server/bin/agdf-mcp.js +24 -0
- package/generated/plugins/copilot/agdf/mcp/server/package.json +59 -0
- package/generated/plugins/copilot/agdf/mcp/server/src/cockpit-resource.js +20 -0
- package/generated/plugins/copilot/agdf/mcp/server/src/generation-entry.js +86 -0
- package/generated/plugins/copilot/agdf/mcp/server/src/generation-protocol.js +44 -0
- package/generated/plugins/copilot/agdf/mcp/server/src/generation.js +211 -0
- package/generated/plugins/copilot/agdf/mcp/server/src/main.js +56 -0
- package/generated/plugins/copilot/agdf/mcp/server/src/server.js +187 -0
- package/generated/plugins/copilot/agdf/mcp/server/src/ui-capability.js +17 -0
- package/generated/plugins/copilot/agdf/mcp/server/src/worker-entry.js +39 -0
- package/generated/plugins/copilot/agdf/mcp/server/src/worker.js +134 -0
- package/generated/plugins/copilot/agdf/mcp.json +16 -0
- package/generated/plugins/copilot/agdf/meta/agdf-agent-router.md +50 -8
- package/generated/plugins/copilot/agdf/meta/agdf-plugin.definition.json +354 -17
- package/generated/plugins/copilot/agdf/meta/agdf-runtime-contract.md +17 -9
- package/generated/plugins/copilot/agdf/meta/distribution-profile-history.json +14 -0
- package/generated/plugins/copilot/agdf/plugin.json +3 -5
- package/generated/plugins/copilot/agdf/runtime/agdf-local.js +5 -4
- package/generated/plugins/copilot/agdf/runtime/agdf-session-check.js +110 -47
- package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-interaction-locales.json +2682 -495
- package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-plugin.definition.json +354 -17
- package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/closeout.md +82 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/context-graph.md +48 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/control-scaffold.md +145 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/gate-artifact-preparation.md +132 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/gate-transition.md +209 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/interaction.md +777 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/modes.md +195 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/prd-definition.md +130 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/quality.md +228 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/request-activation.md +252 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/sd-definition.md +69 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/task-target-resolution.md +156 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/tp-definition.md +81 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/ur-definition.md +94 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/command-registry.js +251 -16
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/contract-command.js +24 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/control-maintenance-command.js +44 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/delivery-path-search-command.js +11 -11
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/parse-args.js +254 -5
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/runtime-context.js +14 -37
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/validation-handlers.js +205 -7
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-command.js +4 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-evaluation/git-observation.js +22 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-maintenance/interaction.js +28 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-maintenance/repair.js +4 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-maintenance/service.js +3 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-maintenance/startup.js +25 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-state/run-recovery.js +5 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/evaluators/claude.js +3 -3
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/evaluators/codex.js +3 -3
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/evaluators/opencode.js +4 -4
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/evaluators/protocol.js +1 -1
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/generators/claude.js +3 -3
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/generators/codex.js +3 -3
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/generators/protocol.js +1 -1
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/surfaces/capabilities.js +1 -1
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/transports/read-only-guard.js +2 -1
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/host-adapters/claude/session-command.js +2 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/host-adapters/codex/session-command.js +7 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/host-adapters/copilot/session-command.js +1 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/host-adapters/opencode/session-command.js +1 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/host-adapters/session-command.js +11 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/host-command.js +112 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-dispatch-runtime.js +360 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-entry.js +26 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-owner-entry.js +34 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/package.js +527 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/plugin-runtime.js +420 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/npm-invocation.js +27 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/repository-context.js +87 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/control-command-service.js +12 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/control-context.js +11 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/git-history.js +7 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/git-originals.js +36 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/local-validator.js +39 -5
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/plugin-provenance.js +1 -298
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/runtime-probe.js +61 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/validator-application.js +3 -3
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime-check-consent/contract.js +9 -8
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/skill-dispatch/binding.js +9 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/package.json +6 -2
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/acceptance-criteria.js +61 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/backlog-vocabulary.d.ts +3 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/backlog-vocabulary.js +15 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/closeout-readiness.js +103 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/decision-content-readiness.js +131 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/definition-sources.js +46 -0
- package/{lib → generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib}/control-evaluation/delivery-map.js +31 -37
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/delivery-relationships.js +21 -0
- package/generated/plugins/{agdf/runtime/create-agdf → copilot/agdf/runtime/create-agdf/runtime/core}/lib/control-evaluation/doctor.js +85 -17
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-check.js +827 -0
- package/{lib → generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib}/control-evaluation/gate-policy.js +141 -10
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/markdown-table.js +40 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/next-action.js +32 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/normalized-gaps.js +105 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/prd-readiness.js +51 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/qa-follow-up.js +83 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/report-decision.js +237 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-state-policy.js +51 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-evaluation/run-state.js +108 -74
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-step-policy.js +20 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-work-summary.js +109 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/sd-readiness.js +56 -0
- package/{lib → generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib}/control-evaluation/shared.js +5 -2
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/tp-planning.js +118 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/traceability-readiness.js +212 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/ur-readiness.js +47 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-evaluation/verified-change.js +10 -30
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/artifact-readiness.js +122 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/contract.js +299 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/selection.js +35 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/service.js +319 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/compatibility.js +149 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/contract.js +41 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/interaction.js +57 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/migration.js +85 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/presentation.js +122 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/repair.js +226 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/service.js +38 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-read/fs.js +55 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-read/snapshot.js +378 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-read-boundary.js +22 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-command-contract.js +73 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-command.js +137 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-operations.js +95 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/artefact-binding-proof.js +90 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/artefact-bindings.js +94 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary-shape.d.ts +4 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary-shape.js +40 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary.js +67 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/contained-file.js +56 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/control-configuration.js +19 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/decision-material-contract.js +12 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/evidence-bindings.js +132 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-state/index.js +2 -0
- package/generated/plugins/{agdf/runtime/create-agdf → copilot/agdf/runtime/create-agdf/runtime/core}/lib/control-state/legacy-migration.js +5 -31
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/legacy-projection-reader.js +38 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/presentation-decision.js +138 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-render.js +130 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-review.js +136 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-snapshot.js +108 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/qa-deviation-acceptance.js +82 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/recording-formats.js +29 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-artefact-recording.js +81 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-backlog-writer.js +80 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-backlog.js +90 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-contract.js +143 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-service.js +174 -0
- package/generated/plugins/{agdf/runtime/create-agdf → copilot/agdf/runtime/create-agdf/runtime/core}/lib/control-state/run-identity.js +1 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-identity.js +31 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-proof.js +103 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-status.js +59 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operations.js +80 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-owned-outputs.js +59 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-envelope.js +36 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-render.js +443 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation.js +348 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-recording.js +273 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-recovery.js +296 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-relationship-correction.js +74 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision-boundary.js +44 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision-history.js +184 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision.js +458 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-seal-compute.js +141 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-seal.js +26 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-source-revisions.js +221 -0
- package/{lib/control-state/run-state-parser.js → generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-document.js} +17 -47
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-edits.js +170 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-parser.js +106 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-reader.js +57 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-repository.js +201 -0
- package/generated/plugins/{agdf/runtime/create-agdf → copilot/agdf/runtime/create-agdf/runtime/core}/lib/control-state/run-state-resolver.js +1 -1
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-writer.js +484 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-step-pending.js +15 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-step-transaction.js +359 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-steps.js +571 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-store-inspection.js +65 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-text.js +8 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/delivery-continuation/service.js +67 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/fs-swap.js +26 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/index.js +14 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/interaction-catalog-validation.js +26 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/interaction-catalog.js +98 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/interaction-presentation.js +437 -33
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/mcp-resource-contract.js +4 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/mcp-tool-errors.js +176 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/repository-context-reader.js +87 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/resources/artefact-templates.js +72 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/resources/binding.js +27 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/resources/context.js +70 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/resources/contracts.js +23 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/runtime/distribution-profile-history.js +173 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/runtime/plugin-provenance.js +496 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/binding.js +66 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/compact-continuation.js +76 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/contract.js +430 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/delivery-intake.js +80 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/delivery-run-assignment.js +74 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/prd-definition.js +39 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/sd-definition.js +39 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/service.js +833 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/tp-definition.js +41 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/task-target-resolution.js +202 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/LICENSE +11 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/decode.js +3 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/decode.js +511 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/encode.js +73 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/escape.js +121 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/generated/decode-data-html.js +10 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +10 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/generated/encode-html.js +13 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/index.js +131 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/commonjs/package.json +3 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/decode-codepoint.js +72 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/decode.js +497 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/encode.js +69 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/escape.js +117 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/generated/decode-data-html.js +7 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/generated/decode-data-xml.js +7 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/generated/encode-html.js +10 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/index.js +107 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/dist/esm/package.json +3 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/escape.js +3 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/package.json +118 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/entities/src/generated/.eslintrc.json +10 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/LICENSE +20 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/index.browser.cjs +43 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/index.browser.js +43 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/index.cjs +47 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/index.js +47 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/index.native.js +38 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/async/package.json +12 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/bin/nanoid.cjs +55 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/index.browser.cjs +45 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/index.browser.js +45 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/index.cjs +63 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/index.js +63 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/nanoid.js +1 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/non-secure/index.cjs +24 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/non-secure/index.js +24 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/non-secure/package.json +6 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/package.json +89 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/url-alphabet/index.cjs +4 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/url-alphabet/index.js +4 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/nanoid/url-alphabet/package.json +6 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/LICENSE +19 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/doctype.js +118 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/error-codes.js +66 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/foreign-content.js +237 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/html.js +528 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/token.js +24 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/common/unicode.js +70 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/index.js +54 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/package.json +1 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/parser/formatting-element-list.js +114 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/parser/index.js +3240 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/parser/open-element-stack.js +328 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/serializer/index.js +172 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/tokenizer/index.js +2714 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/tokenizer/preprocessor.js +200 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/tree-adapters/default.js +176 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/cjs/tree-adapters/interface.js +2 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/doctype.js +114 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/error-codes.js +63 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/foreign-content.js +228 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/html.js +523 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/token.js +20 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/common/unicode.js +62 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/index.js +42 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/parser/formatting-element-list.js +110 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/parser/index.js +3245 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/parser/open-element-stack.js +324 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/serializer/index.js +168 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/tokenizer/index.js +2710 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/tokenizer/preprocessor.js +196 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/tree-adapters/default.js +173 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/dist/tree-adapters/interface.js +1 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/parse5/package.json +50 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/picocolors/LICENSE +15 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/picocolors/package.json +25 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/picocolors/picocolors.browser.js +4 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/picocolors/picocolors.js +75 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/LICENSE +20 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/at-rule.js +25 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/comment.js +13 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/container.js +494 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/css-syntax-error.js +133 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/declaration.js +24 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/document.js +33 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/fromJSON.js +107 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/input.js +282 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/lazy-result.js +626 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/list.js +79 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/map-generator.js +383 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/no-work-result.js +137 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/node.js +494 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/parse.js +42 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/parser.js +626 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/postcss.js +101 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/postcss.mjs +30 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/previous-map.js +176 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/processor.js +67 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/result.js +42 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/root.js +76 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/rule.js +27 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/stringifier.js +457 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/stringify.js +69 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/symbols.js +5 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/terminal-highlight.js +70 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/tokenize.js +270 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/warn-once.js +13 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/lib/warning.js +47 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/postcss/package.json +88 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/LICENSE +28 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/array-set.js +121 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/base64-vlq.js +140 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/base64.js +67 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/binary-search.js +111 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/mapping-list.js +79 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/quick-sort.js +141 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/source-map-consumer.js +1236 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/source-map-generator.js +446 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/source-node.js +420 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/lib/util.js +594 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/package.json +71 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/node_modules/source-map-js/source-map.js +8 -0
- package/generated/plugins/copilot/agdf/runtime/runtime-manifest.json +2 -2
- package/generated/plugins/copilot/agdf/{copilot-skills → skills}/agdf-brownfield-analysis/SKILL.md +70 -8
- package/generated/plugins/copilot/agdf/{copilot-skills → skills}/agdf-clean-implementation-review/SKILL.md +35 -3
- package/generated/plugins/copilot/agdf/{copilot-skills → skills}/agdf-code-review/SKILL.md +36 -2
- package/generated/plugins/copilot/agdf/{copilot-skills → skills}/agdf-delivery-closeout/SKILL.md +36 -4
- package/generated/plugins/copilot/agdf/{copilot-skills → skills}/agdf-delivery-path-search/SKILL.md +36 -4
- package/generated/plugins/copilot/agdf/skills/agdf-gate-check/SKILL.md +86 -0
- package/generated/plugins/copilot/agdf/skills/agdf-interaction-locales.json +1 -0
- package/generated/plugins/copilot/agdf/skills/agdf-prd-definition/SKILL.md +51 -0
- package/generated/plugins/copilot/agdf/skills/agdf-qa-gate/SKILL.md +205 -0
- package/generated/plugins/copilot/agdf/{copilot-skills → skills}/agdf-release-or/SKILL.md +44 -11
- package/generated/plugins/copilot/agdf/skills/agdf-runtime-contract.md +24 -0
- package/generated/plugins/copilot/agdf/skills/agdf-sd-definition/SKILL.md +51 -0
- package/generated/plugins/copilot/agdf/{copilot-skills → skills}/agdf-task-plan-review/SKILL.md +35 -3
- package/generated/plugins/copilot/agdf/skills/agdf-tp-definition/SKILL.md +51 -0
- package/generated/plugins/copilot/agdf/skills/agdf-ur-definition/SKILL.md +54 -0
- package/generated/plugins/copilot/agdf/skills/agdf-ux-intent-definition/SKILL.md +188 -0
- package/generated/plugins/copilot/agdf/skills/contracts/closeout.md +82 -0
- package/generated/plugins/copilot/agdf/skills/contracts/context-graph.md +48 -0
- package/generated/plugins/copilot/agdf/skills/contracts/control-scaffold.md +145 -0
- package/generated/plugins/copilot/agdf/skills/contracts/gate-artifact-preparation.md +132 -0
- package/generated/plugins/copilot/agdf/skills/contracts/gate-transition.md +209 -0
- package/generated/plugins/copilot/agdf/skills/contracts/interaction.md +777 -0
- package/generated/plugins/copilot/agdf/skills/contracts/modes.md +195 -0
- package/generated/plugins/copilot/agdf/skills/contracts/prd-definition.md +130 -0
- package/generated/plugins/copilot/agdf/skills/contracts/quality.md +228 -0
- package/generated/plugins/copilot/agdf/skills/contracts/request-activation.md +252 -0
- package/generated/plugins/copilot/agdf/skills/contracts/sd-definition.md +69 -0
- package/generated/plugins/copilot/agdf/skills/contracts/task-target-resolution.md +156 -0
- package/generated/plugins/copilot/agdf/skills/contracts/tp-definition.md +81 -0
- package/generated/plugins/copilot/agdf/skills/contracts/ur-definition.md +94 -0
- package/generated/submissions/openai/agdf/.codex-plugin/plugin.json +1 -1
- package/generated/submissions/openai/agdf/meta/agdf-agent-router.md +50 -8
- package/generated/submissions/openai/agdf/meta/agdf-interaction-locales.json +2682 -495
- package/generated/submissions/openai/agdf/meta/agdf-plugin.definition.json +354 -17
- package/generated/submissions/openai/agdf/meta/agdf-runtime-contract.md +17 -9
- package/generated/submissions/openai/agdf/meta/contracts/closeout.md +6 -2
- package/generated/submissions/openai/agdf/meta/contracts/control-scaffold.md +17 -4
- package/generated/submissions/openai/agdf/meta/contracts/gate-artifact-preparation.md +132 -0
- package/generated/submissions/openai/agdf/meta/contracts/gate-transition.md +48 -4
- package/generated/submissions/openai/agdf/meta/contracts/interaction.md +328 -38
- package/generated/submissions/openai/agdf/meta/contracts/modes.md +23 -11
- package/generated/submissions/openai/agdf/meta/contracts/prd-definition.md +130 -0
- package/generated/submissions/openai/agdf/meta/contracts/quality.md +77 -6
- package/generated/submissions/openai/agdf/meta/contracts/request-activation.md +252 -0
- package/generated/submissions/openai/agdf/meta/contracts/sd-definition.md +69 -0
- package/generated/submissions/openai/agdf/meta/contracts/task-target-resolution.md +63 -9
- package/generated/submissions/openai/agdf/meta/contracts/tp-definition.md +81 -0
- package/generated/submissions/openai/agdf/meta/contracts/ur-definition.md +94 -0
- package/generated/submissions/openai/agdf/meta/copilot-payload-baseline.json +3 -3
- package/generated/submissions/openai/agdf/meta/distribution-profile-history.json +14 -0
- package/generated/submissions/openai/agdf/meta/schemas/agent-plugins/1.0.0/mcp.schema.json +120 -0
- package/generated/submissions/openai/agdf/meta/schemas/agent-plugins/1.0.0/plugin.schema.json +65 -0
- package/generated/submissions/openai/agdf/meta/schemas/agent-plugins/1.0.0/provenance.json +19 -0
- package/generated/submissions/openai/agdf/plugin.json +47 -0
- package/generated/submissions/openai/agdf/skills/brownfield-analysis/SKILL.md +67 -5
- package/generated/submissions/openai/agdf/skills/clean-implementation-review/SKILL.md +34 -2
- package/generated/submissions/openai/agdf/skills/code-review/SKILL.md +36 -2
- package/generated/submissions/openai/agdf/skills/delivery-closeout/SKILL.md +34 -2
- package/generated/submissions/openai/agdf/skills/delivery-path-search/SKILL.md +34 -2
- package/generated/submissions/openai/agdf/skills/gate-check/SKILL.md +68 -222
- package/generated/submissions/openai/agdf/skills/prd-definition/SKILL.md +51 -0
- package/generated/submissions/openai/agdf/skills/prd-definition/help.md +23 -0
- package/generated/submissions/openai/agdf/skills/qa-gate/SKILL.md +73 -5
- package/generated/submissions/openai/agdf/skills/release-or/SKILL.md +36 -3
- package/generated/submissions/openai/agdf/skills/sd-definition/SKILL.md +51 -0
- package/generated/submissions/openai/agdf/skills/sd-definition/help.md +17 -0
- package/generated/submissions/openai/agdf/skills/task-plan-review/SKILL.md +34 -2
- package/generated/submissions/openai/agdf/skills/tp-definition/SKILL.md +51 -0
- package/generated/submissions/openai/agdf/skills/tp-definition/help.md +17 -0
- package/generated/submissions/openai/agdf/skills/ur-definition/SKILL.md +54 -0
- package/generated/submissions/openai/agdf/skills/ur-definition/help.md +19 -0
- package/generated/submissions/openai/agdf/skills/ux-intent-definition/SKILL.md +100 -6
- package/generated/submissions/openai/agdf/skills/ux-intent-definition/help.md +3 -0
- package/generated/submissions/openai/agdf/submission/openai/availability.md +1 -1
- package/generated/submissions/openai/agdf/submission/openai/capability-matrix.json +1 -1
- package/generated/submissions/openai/agdf/submission/openai/inventory.json +104 -32
- package/generated/submissions/openai/agdf/submission/openai/listing.json +1 -1
- package/generated/submissions/openai/agdf/submission/openai/readiness.json +2 -2
- package/generated/submissions/openai/agdf/submission/openai/readiness.md +2 -2
- package/generated/submissions/openai/agdf/submission/openai/release-notes.md +1 -1
- package/generated/submissions/openai/agdf/submission/openai/reviewer-cases.json +1 -1
- package/lib/cli/application.js +726 -271
- package/lib/cli/command-registry.js +251 -16
- package/lib/cli/contract-command.js +24 -0
- package/lib/cli/control-maintenance-command.js +44 -0
- package/lib/cli/delivery-path-search-command.js +11 -11
- package/lib/cli/parse-args.js +254 -5
- package/lib/cli/runtime-context.js +14 -37
- package/lib/cli/validation-handlers.js +205 -7
- package/lib/control-command.js +4 -0
- package/lib/control-evaluation/git-observation.js +22 -0
- package/lib/control-maintenance/interaction.js +28 -0
- package/lib/control-maintenance/repair.js +4 -0
- package/lib/control-maintenance/service.js +3 -0
- package/lib/control-maintenance/startup.js +25 -0
- package/lib/control-state/run-recovery.js +5 -0
- package/lib/delivery-path-search/evaluators/claude.js +3 -3
- package/lib/delivery-path-search/evaluators/codex.js +3 -3
- package/lib/delivery-path-search/evaluators/opencode.js +4 -4
- package/lib/delivery-path-search/evaluators/protocol.js +1 -1
- package/lib/delivery-path-search/generators/claude.js +3 -3
- package/lib/delivery-path-search/generators/codex.js +3 -3
- package/lib/delivery-path-search/generators/protocol.js +1 -1
- package/lib/delivery-path-search/surfaces/capabilities.js +1 -1
- package/lib/delivery-path-search/transports/read-only-guard.js +2 -1
- package/lib/host-adapters/claude/loaded-sessions.js +45 -0
- package/lib/host-adapters/claude/marketplace.js +2 -0
- package/lib/host-adapters/claude/permission-rules.js +20 -0
- package/lib/host-adapters/claude/plugin-mcp.js +40 -0
- package/lib/host-adapters/claude/plugin.js +285 -0
- package/lib/host-adapters/claude/runtime-check.js +39 -0
- package/lib/host-adapters/claude/session-command.js +2 -0
- package/lib/host-adapters/claude/uninstall.js +80 -0
- package/lib/host-adapters/codex/config-source.js +48 -0
- package/lib/host-adapters/codex/identity.js +19 -0
- package/lib/host-adapters/codex/mcp-startup.js +14 -0
- package/lib/host-adapters/codex/plugin-mcp.js +39 -0
- package/lib/host-adapters/codex/plugin.js +243 -0
- package/lib/host-adapters/codex/runtime-check.js +27 -0
- package/lib/host-adapters/codex/session-command.js +7 -0
- package/lib/host-adapters/copilot/plugin.js +220 -0
- package/lib/host-adapters/copilot/session-command.js +1 -0
- package/lib/host-adapters/opencode/runtime-check.js +39 -0
- package/lib/host-adapters/opencode/session-command.js +1 -0
- package/lib/host-adapters/opencode/status.js +43 -0
- package/lib/host-adapters/session-command.js +11 -0
- package/lib/host-command.js +112 -0
- package/lib/install-setup/contract.js +319 -0
- package/lib/install-setup/control-migration.js +10 -0
- package/lib/install-setup/control-repair.js +1 -0
- package/lib/install-setup/interaction.js +157 -0
- package/lib/install-setup/presentation.js +337 -0
- package/lib/install-setup/service.js +441 -0
- package/lib/installers/copilot-marketplace-transport.js +74 -0
- package/lib/installers/copilot-settings.js +34 -3
- package/lib/installers/copilot-skill-discovery.js +27 -0
- package/lib/installers/local-development.js +107 -11
- package/lib/installers/local-marketplace.js +313 -37
- package/lib/installers/npm-invocation.js +2 -0
- package/lib/installers/opencode-activation.js +5 -31
- package/lib/installers/opencode.js +286 -89
- package/lib/installers/packaged-app-marketplace.js +67 -0
- package/lib/installers/plugin-command.js +115 -0
- package/lib/installers/plugin-installers.js +21 -521
- package/lib/lifecycle/operations.js +78 -137
- package/lib/lifecycle/owned-mutation.js +64 -0
- package/lib/lifecycle/presentation.js +47 -4
- package/lib/lifecycle/result.js +183 -2
- package/lib/lifecycle/status.js +150 -66
- package/lib/mcp-dispatch-runtime.js +360 -0
- package/lib/mcp-lifecycle/adapter-contract.js +54 -0
- package/lib/mcp-lifecycle/adapters/claude.js +123 -0
- package/lib/mcp-lifecycle/adapters/codex-origin-probe.js +87 -0
- package/lib/mcp-lifecycle/adapters/codex.js +513 -0
- package/lib/mcp-lifecycle/adapters/copilot.js +106 -0
- package/lib/mcp-lifecycle/adapters/file-utils.js +90 -0
- package/lib/mcp-lifecycle/adapters/opencode.js +148 -0
- package/lib/mcp-lifecycle/evidence.js +122 -0
- package/lib/mcp-lifecycle/facade-entry.js +26 -0
- package/lib/mcp-lifecycle/facade-owner-entry.js +34 -0
- package/lib/mcp-lifecycle/host-config.js +60 -0
- package/lib/mcp-lifecycle/package.js +527 -0
- package/lib/mcp-lifecycle/plugin-runtime.js +420 -0
- package/lib/mcp-lifecycle/presentation.js +61 -0
- package/lib/mcp-lifecycle/profile-context.js +11 -0
- package/lib/mcp-lifecycle/profile.js +63 -0
- package/lib/mcp-lifecycle/result.js +92 -0
- package/lib/mcp-lifecycle/service.js +533 -0
- package/lib/npm-invocation.js +27 -0
- package/lib/repository-context.js +87 -0
- package/lib/runtime/control-command-service.js +12 -0
- package/lib/runtime/control-context.js +11 -0
- package/lib/runtime/git-history.js +7 -0
- package/lib/runtime/git-originals.js +36 -0
- package/lib/runtime/local-validator.js +39 -5
- package/lib/runtime/plugin-provenance.js +1 -298
- package/lib/runtime/runtime-probe.js +61 -0
- package/lib/runtime/validator-application.js +3 -3
- package/lib/runtime-check-consent/adapters.js +3 -42
- package/lib/runtime-check-consent/claude-settings.js +2 -23
- package/lib/runtime-check-consent/codex-hooks.js +96 -0
- package/lib/runtime-check-consent/codex-plugin-consent.js +118 -0
- package/lib/runtime-check-consent/contract.js +9 -8
- package/lib/runtime-check-consent/coordinator.js +3 -3
- package/lib/runtime-check-consent/service.js +29 -53
- package/lib/runtime-check-consent/state.js +1 -1
- package/lib/scaffold/canonical-init.js +691 -0
- package/lib/scaffold/plan.js +8 -14
- package/lib/scaffold/presentation.js +53 -3
- package/lib/skill-dispatch/binding.js +9 -0
- package/opencode-plugin.js +99 -26
- package/package.json +22 -51
- package/runtime/core/lib/control-evaluation/acceptance-criteria.js +61 -0
- package/runtime/core/lib/control-evaluation/backlog-vocabulary.d.ts +3 -0
- package/runtime/core/lib/control-evaluation/backlog-vocabulary.js +15 -0
- package/runtime/core/lib/control-evaluation/closeout-readiness.js +103 -0
- package/runtime/core/lib/control-evaluation/decision-content-readiness.js +131 -0
- package/runtime/core/lib/control-evaluation/definition-sources.js +46 -0
- package/{generated/plugins/copilot/agdf/runtime/create-agdf → runtime/core}/lib/control-evaluation/delivery-map.js +31 -37
- package/runtime/core/lib/control-evaluation/delivery-relationships.js +21 -0
- package/{generated/plugins/copilot/agdf/runtime/create-agdf → runtime/core}/lib/control-evaluation/doctor.js +85 -17
- package/runtime/core/lib/control-evaluation/gate-check.js +827 -0
- package/{generated/plugins/agdf/runtime/create-agdf → runtime/core}/lib/control-evaluation/gate-policy.js +141 -10
- package/runtime/core/lib/control-evaluation/markdown-table.js +40 -0
- package/runtime/core/lib/control-evaluation/next-action.js +32 -0
- package/runtime/core/lib/control-evaluation/normalized-gaps.js +105 -0
- package/runtime/core/lib/control-evaluation/prd-readiness.js +51 -0
- package/runtime/core/lib/control-evaluation/qa-follow-up.js +83 -0
- package/runtime/core/lib/control-evaluation/report-decision.js +237 -0
- package/runtime/core/lib/control-evaluation/run-state-policy.js +51 -0
- package/{generated/plugins/agdf/runtime/create-agdf → runtime/core}/lib/control-evaluation/run-state.js +108 -74
- package/runtime/core/lib/control-evaluation/run-step-policy.js +20 -0
- package/runtime/core/lib/control-evaluation/run-work-summary.js +109 -0
- package/runtime/core/lib/control-evaluation/sd-readiness.js +56 -0
- package/{generated/plugins/agdf/runtime/create-agdf → runtime/core}/lib/control-evaluation/shared.js +5 -2
- package/runtime/core/lib/control-evaluation/tp-planning.js +118 -0
- package/runtime/core/lib/control-evaluation/traceability-readiness.js +212 -0
- package/runtime/core/lib/control-evaluation/ur-readiness.js +47 -0
- package/{generated/plugins/agdf/runtime/create-agdf → runtime/core}/lib/control-evaluation/verified-change.js +10 -30
- package/runtime/core/lib/control-inspect/artifact-readiness.js +122 -0
- package/runtime/core/lib/control-inspect/cockpit-backlog.js +135 -0
- package/runtime/core/lib/control-inspect/cockpit-context.js +97 -0
- package/runtime/core/lib/control-inspect/cockpit-contract.js +86 -0
- package/runtime/core/lib/control-inspect/cockpit-list.d.ts +17 -0
- package/runtime/core/lib/control-inspect/cockpit-list.js +45 -0
- package/runtime/core/lib/control-inspect/cockpit-session.js +217 -0
- package/runtime/core/lib/control-inspect/cockpit.js +388 -0
- package/runtime/core/lib/control-inspect/contract.js +299 -0
- package/runtime/core/lib/control-inspect/decision-session.js +243 -0
- package/runtime/core/lib/control-inspect/selection.js +35 -0
- package/runtime/core/lib/control-inspect/service.js +319 -0
- package/runtime/core/lib/control-maintenance/compatibility.js +149 -0
- package/runtime/core/lib/control-maintenance/contract.js +41 -0
- package/runtime/core/lib/control-maintenance/interaction.js +57 -0
- package/runtime/core/lib/control-maintenance/migration.js +85 -0
- package/runtime/core/lib/control-maintenance/presentation.js +122 -0
- package/runtime/core/lib/control-maintenance/repair.js +226 -0
- package/runtime/core/lib/control-maintenance/service.js +38 -0
- package/runtime/core/lib/control-read/cockpit-pool.js +105 -0
- package/runtime/core/lib/control-read/cockpit-worker.js +33 -0
- package/runtime/core/lib/control-read/control-changes.js +33 -0
- package/runtime/core/lib/control-read/fs.js +55 -0
- package/runtime/core/lib/control-read/snapshot.js +378 -0
- package/runtime/core/lib/control-read-boundary.js +22 -0
- package/runtime/core/lib/control-state/approval-command-contract.js +73 -0
- package/runtime/core/lib/control-state/approval-command.js +137 -0
- package/runtime/core/lib/control-state/approval-operations.js +95 -0
- package/runtime/core/lib/control-state/artefact-binding-proof.js +90 -0
- package/runtime/core/lib/control-state/artefact-bindings.js +94 -0
- package/runtime/core/lib/control-state/backlog-summary-shape.d.ts +4 -0
- package/runtime/core/lib/control-state/backlog-summary-shape.js +40 -0
- package/runtime/core/lib/control-state/backlog-summary.js +67 -0
- package/runtime/core/lib/control-state/contained-file.js +56 -0
- package/runtime/core/lib/control-state/control-configuration.js +19 -0
- package/runtime/core/lib/control-state/decision-action-contract.js +32 -0
- package/runtime/core/lib/control-state/decision-action-service.js +55 -0
- package/runtime/core/lib/control-state/decision-material-contract.js +12 -0
- package/runtime/core/lib/control-state/evidence-bindings.js +132 -0
- package/{lib → runtime/core/lib}/control-state/index.js +2 -0
- package/{lib → runtime/core/lib}/control-state/legacy-migration.js +5 -31
- package/runtime/core/lib/control-state/legacy-projection-reader.js +38 -0
- package/runtime/core/lib/control-state/presentation-decision.js +138 -0
- package/runtime/core/lib/control-state/preview-render.js +130 -0
- package/runtime/core/lib/control-state/preview-review.js +136 -0
- package/runtime/core/lib/control-state/preview-snapshot.js +108 -0
- package/runtime/core/lib/control-state/qa-deviation-acceptance.js +82 -0
- package/runtime/core/lib/control-state/recording-formats.js +29 -0
- package/runtime/core/lib/control-state/run-artefact-recording.js +81 -0
- package/runtime/core/lib/control-state/run-backlog-writer.js +80 -0
- package/runtime/core/lib/control-state/run-backlog.js +90 -0
- package/runtime/core/lib/control-state/run-command-contract.js +143 -0
- package/runtime/core/lib/control-state/run-command-service.js +174 -0
- package/{generated/plugins/copilot/agdf/runtime/create-agdf → runtime/core}/lib/control-state/run-identity.js +1 -0
- package/runtime/core/lib/control-state/run-operation-identity.js +31 -0
- package/runtime/core/lib/control-state/run-operation-proof.js +103 -0
- package/runtime/core/lib/control-state/run-operation-status.js +59 -0
- package/runtime/core/lib/control-state/run-operations.js +80 -0
- package/runtime/core/lib/control-state/run-owned-outputs.js +59 -0
- package/runtime/core/lib/control-state/run-presentation-envelope.js +36 -0
- package/runtime/core/lib/control-state/run-presentation-render.js +443 -0
- package/runtime/core/lib/control-state/run-presentation.js +348 -0
- package/runtime/core/lib/control-state/run-recording.js +273 -0
- package/runtime/core/lib/control-state/run-recovery.js +296 -0
- package/runtime/core/lib/control-state/run-relationship-correction.js +74 -0
- package/runtime/core/lib/control-state/run-revision-boundary.js +44 -0
- package/runtime/core/lib/control-state/run-revision-history.js +184 -0
- package/runtime/core/lib/control-state/run-revision.js +458 -0
- package/runtime/core/lib/control-state/run-seal-compute.js +141 -0
- package/runtime/core/lib/control-state/run-seal.js +26 -0
- package/runtime/core/lib/control-state/run-source-revisions.js +221 -0
- package/{generated/plugins/agdf/runtime/create-agdf/lib/control-state/run-state-parser.js → runtime/core/lib/control-state/run-state-document.js} +17 -47
- package/runtime/core/lib/control-state/run-state-edits.js +170 -0
- package/runtime/core/lib/control-state/run-state-parser.js +106 -0
- package/runtime/core/lib/control-state/run-state-reader.js +57 -0
- package/runtime/core/lib/control-state/run-state-repository.js +201 -0
- package/{lib → runtime/core/lib}/control-state/run-state-resolver.js +1 -1
- package/runtime/core/lib/control-state/run-state-writer.js +484 -0
- package/runtime/core/lib/control-state/run-step-pending.js +15 -0
- package/runtime/core/lib/control-state/run-step-transaction.js +359 -0
- package/runtime/core/lib/control-state/run-steps.js +571 -0
- package/runtime/core/lib/control-state/run-store-inspection.js +65 -0
- package/runtime/core/lib/control-state/run-text.js +8 -0
- package/runtime/core/lib/delivery-continuation/service.js +67 -0
- package/runtime/core/lib/fs-swap.js +26 -0
- package/runtime/core/lib/index.js +14 -0
- package/runtime/core/lib/interaction-catalog-validation.js +26 -0
- package/runtime/core/lib/interaction-catalog.d.ts +2 -0
- package/runtime/core/lib/interaction-catalog.js +98 -0
- package/{lib → runtime/core/lib}/interaction-presentation.js +437 -33
- package/runtime/core/lib/mcp-resource-contract.js +4 -0
- package/runtime/core/lib/mcp-tool-errors.js +176 -0
- package/runtime/core/lib/repository-context-reader.js +87 -0
- package/runtime/core/lib/resources/artefact-templates.js +72 -0
- package/runtime/core/lib/resources/binding.js +26 -0
- package/runtime/core/lib/resources/context.js +70 -0
- package/runtime/core/lib/resources/contracts.js +23 -0
- package/runtime/core/lib/runtime/distribution-profile-history.js +173 -0
- package/runtime/core/lib/runtime/host-installation.js +200 -0
- package/runtime/core/lib/runtime/plugin-provenance.js +496 -0
- package/runtime/core/lib/skill-dispatch/binding.js +66 -0
- package/runtime/core/lib/skill-dispatch/compact-continuation.js +76 -0
- package/runtime/core/lib/skill-dispatch/contract.js +430 -0
- package/runtime/core/lib/skill-dispatch/delivery-intake.js +80 -0
- package/runtime/core/lib/skill-dispatch/delivery-run-assignment.js +74 -0
- package/runtime/core/lib/skill-dispatch/prd-definition.js +39 -0
- package/runtime/core/lib/skill-dispatch/sd-definition.js +39 -0
- package/runtime/core/lib/skill-dispatch/service.js +833 -0
- package/runtime/core/lib/skill-dispatch/tp-definition.js +41 -0
- package/runtime/core/lib/task-target-resolution.js +202 -0
- package/runtime/core/node_modules/entities/LICENSE +11 -0
- package/runtime/core/node_modules/entities/decode.js +3 -0
- package/runtime/core/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
- package/runtime/core/node_modules/entities/dist/commonjs/decode.js +511 -0
- package/runtime/core/node_modules/entities/dist/commonjs/encode.js +73 -0
- package/runtime/core/node_modules/entities/dist/commonjs/escape.js +121 -0
- package/runtime/core/node_modules/entities/dist/commonjs/generated/decode-data-html.js +10 -0
- package/runtime/core/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +10 -0
- package/runtime/core/node_modules/entities/dist/commonjs/generated/encode-html.js +13 -0
- package/runtime/core/node_modules/entities/dist/commonjs/index.js +131 -0
- package/runtime/core/node_modules/entities/dist/commonjs/package.json +3 -0
- package/runtime/core/node_modules/entities/dist/esm/decode-codepoint.js +72 -0
- package/runtime/core/node_modules/entities/dist/esm/decode.js +497 -0
- package/runtime/core/node_modules/entities/dist/esm/encode.js +69 -0
- package/runtime/core/node_modules/entities/dist/esm/escape.js +117 -0
- package/runtime/core/node_modules/entities/dist/esm/generated/decode-data-html.js +7 -0
- package/runtime/core/node_modules/entities/dist/esm/generated/decode-data-xml.js +7 -0
- package/runtime/core/node_modules/entities/dist/esm/generated/encode-html.js +10 -0
- package/runtime/core/node_modules/entities/dist/esm/index.js +107 -0
- package/runtime/core/node_modules/entities/dist/esm/package.json +3 -0
- package/runtime/core/node_modules/entities/escape.js +3 -0
- package/runtime/core/node_modules/entities/package.json +118 -0
- package/runtime/core/node_modules/entities/src/generated/.eslintrc.json +10 -0
- package/runtime/core/node_modules/nanoid/LICENSE +20 -0
- package/runtime/core/node_modules/nanoid/async/index.browser.cjs +43 -0
- package/runtime/core/node_modules/nanoid/async/index.browser.js +43 -0
- package/runtime/core/node_modules/nanoid/async/index.cjs +47 -0
- package/runtime/core/node_modules/nanoid/async/index.js +47 -0
- package/runtime/core/node_modules/nanoid/async/index.native.js +38 -0
- package/runtime/core/node_modules/nanoid/async/package.json +12 -0
- package/runtime/core/node_modules/nanoid/bin/nanoid.cjs +55 -0
- package/runtime/core/node_modules/nanoid/index.browser.cjs +45 -0
- package/runtime/core/node_modules/nanoid/index.browser.js +45 -0
- package/runtime/core/node_modules/nanoid/index.cjs +63 -0
- package/runtime/core/node_modules/nanoid/index.js +63 -0
- package/runtime/core/node_modules/nanoid/nanoid.js +1 -0
- package/runtime/core/node_modules/nanoid/non-secure/index.cjs +24 -0
- package/runtime/core/node_modules/nanoid/non-secure/index.js +24 -0
- package/runtime/core/node_modules/nanoid/non-secure/package.json +6 -0
- package/runtime/core/node_modules/nanoid/package.json +89 -0
- package/runtime/core/node_modules/nanoid/url-alphabet/index.cjs +4 -0
- package/runtime/core/node_modules/nanoid/url-alphabet/index.js +4 -0
- package/runtime/core/node_modules/nanoid/url-alphabet/package.json +6 -0
- package/runtime/core/node_modules/parse5/LICENSE +19 -0
- package/runtime/core/node_modules/parse5/dist/cjs/common/doctype.js +118 -0
- package/runtime/core/node_modules/parse5/dist/cjs/common/error-codes.js +66 -0
- package/runtime/core/node_modules/parse5/dist/cjs/common/foreign-content.js +237 -0
- package/runtime/core/node_modules/parse5/dist/cjs/common/html.js +528 -0
- package/runtime/core/node_modules/parse5/dist/cjs/common/token.js +24 -0
- package/runtime/core/node_modules/parse5/dist/cjs/common/unicode.js +70 -0
- package/runtime/core/node_modules/parse5/dist/cjs/index.js +54 -0
- package/runtime/core/node_modules/parse5/dist/cjs/package.json +1 -0
- package/runtime/core/node_modules/parse5/dist/cjs/parser/formatting-element-list.js +114 -0
- package/runtime/core/node_modules/parse5/dist/cjs/parser/index.js +3240 -0
- package/runtime/core/node_modules/parse5/dist/cjs/parser/open-element-stack.js +328 -0
- package/runtime/core/node_modules/parse5/dist/cjs/serializer/index.js +172 -0
- package/runtime/core/node_modules/parse5/dist/cjs/tokenizer/index.js +2714 -0
- package/runtime/core/node_modules/parse5/dist/cjs/tokenizer/preprocessor.js +200 -0
- package/runtime/core/node_modules/parse5/dist/cjs/tree-adapters/default.js +176 -0
- package/runtime/core/node_modules/parse5/dist/cjs/tree-adapters/interface.js +2 -0
- package/runtime/core/node_modules/parse5/dist/common/doctype.js +114 -0
- package/runtime/core/node_modules/parse5/dist/common/error-codes.js +63 -0
- package/runtime/core/node_modules/parse5/dist/common/foreign-content.js +228 -0
- package/runtime/core/node_modules/parse5/dist/common/html.js +523 -0
- package/runtime/core/node_modules/parse5/dist/common/token.js +20 -0
- package/runtime/core/node_modules/parse5/dist/common/unicode.js +62 -0
- package/runtime/core/node_modules/parse5/dist/index.js +42 -0
- package/runtime/core/node_modules/parse5/dist/parser/formatting-element-list.js +110 -0
- package/runtime/core/node_modules/parse5/dist/parser/index.js +3245 -0
- package/runtime/core/node_modules/parse5/dist/parser/open-element-stack.js +324 -0
- package/runtime/core/node_modules/parse5/dist/serializer/index.js +168 -0
- package/runtime/core/node_modules/parse5/dist/tokenizer/index.js +2710 -0
- package/runtime/core/node_modules/parse5/dist/tokenizer/preprocessor.js +196 -0
- package/runtime/core/node_modules/parse5/dist/tree-adapters/default.js +173 -0
- package/runtime/core/node_modules/parse5/dist/tree-adapters/interface.js +1 -0
- package/runtime/core/node_modules/parse5/package.json +50 -0
- package/runtime/core/node_modules/picocolors/LICENSE +15 -0
- package/runtime/core/node_modules/picocolors/package.json +25 -0
- package/runtime/core/node_modules/picocolors/picocolors.browser.js +4 -0
- package/runtime/core/node_modules/picocolors/picocolors.js +75 -0
- package/runtime/core/node_modules/postcss/LICENSE +20 -0
- package/runtime/core/node_modules/postcss/lib/at-rule.js +25 -0
- package/runtime/core/node_modules/postcss/lib/comment.js +13 -0
- package/runtime/core/node_modules/postcss/lib/container.js +494 -0
- package/runtime/core/node_modules/postcss/lib/css-syntax-error.js +133 -0
- package/runtime/core/node_modules/postcss/lib/declaration.js +24 -0
- package/runtime/core/node_modules/postcss/lib/document.js +33 -0
- package/runtime/core/node_modules/postcss/lib/fromJSON.js +107 -0
- package/runtime/core/node_modules/postcss/lib/input.js +282 -0
- package/runtime/core/node_modules/postcss/lib/lazy-result.js +626 -0
- package/runtime/core/node_modules/postcss/lib/list.js +79 -0
- package/runtime/core/node_modules/postcss/lib/map-generator.js +383 -0
- package/runtime/core/node_modules/postcss/lib/no-work-result.js +137 -0
- package/runtime/core/node_modules/postcss/lib/node.js +494 -0
- package/runtime/core/node_modules/postcss/lib/parse.js +42 -0
- package/runtime/core/node_modules/postcss/lib/parser.js +626 -0
- package/runtime/core/node_modules/postcss/lib/postcss.js +101 -0
- package/runtime/core/node_modules/postcss/lib/postcss.mjs +30 -0
- package/runtime/core/node_modules/postcss/lib/previous-map.js +176 -0
- package/runtime/core/node_modules/postcss/lib/processor.js +67 -0
- package/runtime/core/node_modules/postcss/lib/result.js +42 -0
- package/runtime/core/node_modules/postcss/lib/root.js +76 -0
- package/runtime/core/node_modules/postcss/lib/rule.js +27 -0
- package/runtime/core/node_modules/postcss/lib/stringifier.js +457 -0
- package/runtime/core/node_modules/postcss/lib/stringify.js +69 -0
- package/runtime/core/node_modules/postcss/lib/symbols.js +5 -0
- package/runtime/core/node_modules/postcss/lib/terminal-highlight.js +70 -0
- package/runtime/core/node_modules/postcss/lib/tokenize.js +270 -0
- package/runtime/core/node_modules/postcss/lib/warn-once.js +13 -0
- package/runtime/core/node_modules/postcss/lib/warning.js +47 -0
- package/runtime/core/node_modules/postcss/package.json +88 -0
- package/runtime/core/node_modules/source-map-js/LICENSE +28 -0
- package/runtime/core/node_modules/source-map-js/lib/array-set.js +121 -0
- package/runtime/core/node_modules/source-map-js/lib/base64-vlq.js +140 -0
- package/runtime/core/node_modules/source-map-js/lib/base64.js +67 -0
- package/runtime/core/node_modules/source-map-js/lib/binary-search.js +111 -0
- package/runtime/core/node_modules/source-map-js/lib/mapping-list.js +79 -0
- package/runtime/core/node_modules/source-map-js/lib/quick-sort.js +141 -0
- package/runtime/core/node_modules/source-map-js/lib/source-map-consumer.js +1236 -0
- package/runtime/core/node_modules/source-map-js/lib/source-map-generator.js +446 -0
- package/runtime/core/node_modules/source-map-js/lib/source-node.js +420 -0
- package/runtime/core/node_modules/source-map-js/lib/util.js +594 -0
- package/runtime/core/node_modules/source-map-js/package.json +71 -0
- package/runtime/core/node_modules/source-map-js/source-map.js +8 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-evaluation/gate-check.js +0 -506
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-state/run-state-repository.js +0 -68
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-state/run-state-writer.js +0 -97
- package/generated/plugins/copilot/agdf/copilot-skills/agdf-gate-check/SKILL.md +0 -240
- package/generated/plugins/copilot/agdf/copilot-skills/agdf-interaction-locales.json +0 -512
- package/generated/plugins/copilot/agdf/copilot-skills/agdf-qa-gate/SKILL.md +0 -137
- package/generated/plugins/copilot/agdf/copilot-skills/agdf-runtime-contract.md +0 -16
- package/generated/plugins/copilot/agdf/copilot-skills/agdf-ux-intent-definition/SKILL.md +0 -94
- package/generated/plugins/copilot/agdf/copilot-skills/contracts/interaction.md +0 -487
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-evaluation/gate-check.js +0 -506
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-state/run-state-repository.js +0 -68
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-state/run-state-writer.js +0 -97
- package/lib/control-evaluation/gate-check.js +0 -506
- package/lib/control-state/run-state-repository.js +0 -68
- package/lib/control-state/run-state-writer.js +0 -97
- package/lib/proportionality-benchmark/blind-prompt.js +0 -38
- package/lib/proportionality-benchmark/contracts.js +0 -129
- package/lib/proportionality-benchmark/corpus-loader.js +0 -221
- package/lib/proportionality-benchmark/evaluator.js +0 -260
- package/lib/proportionality-benchmark/index.js +0 -8
- package/lib/proportionality-benchmark/live-recorder.js +0 -122
- package/lib/proportionality-benchmark/profiles.js +0 -102
- package/lib/proportionality-benchmark/report.js +0 -60
- package/lib/proportionality-benchmark/source-fingerprint.js +0 -34
- package/lib/public-plugin/builder.js +0 -83
- package/lib/public-plugin/contract.js +0 -102
- package/lib/public-plugin/copilot-profile.js +0 -126
- package/lib/public-plugin/manifest.js +0 -104
- package/lib/public-plugin/report.js +0 -33
- package/lib/public-plugin/validator.js +0 -101
- package/lib/release/profile-history.js +0 -222
- package/lib/release/version-bump.js +0 -549
- package/lib/release/version-coherence.js +0 -137
- package/lib/skill-evals/artefact-quality.js +0 -36
- package/lib/skill-evals/index.js +0 -105
- package/lib/skill-evals/live-recorder.js +0 -85
- package/lib/skill-evals/workspace.js +0 -97
- /package/generated/plugins/{copilot/agdf/copilot-skills → agdf/runtime/create-agdf/generated/plugins/agdf/meta}/contracts/context-graph.md +0 -0
- /package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-evaluation/parent-reconciliation.js +0 -0
- /package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-evaluation/required-files.js +0 -0
- /package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-state/aggregate.js +0 -0
- /package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-state/gate-approval-validator.js +0 -0
- /package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/candidate-policy.js +0 -0
- /package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/contracts.js +0 -0
- /package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/persistence.js +0 -0
- /package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/scoring.js +0 -0
- /package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/search-engine.js +0 -0
- /package/generated/plugins/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/state-adapter.js +0 -0
- /package/{lib → generated/plugins/agdf/runtime/create-agdf/runtime/core/lib}/fs-swap.js +0 -0
- /package/{lib → generated/plugins/agdf/runtime/create-agdf/runtime/core/lib}/runtime/distribution-profile-history.js +0 -0
- /package/generated/plugins/copilot/agdf/{hooks/copilot-hooks.json → com.github.copilot/hooks/hooks.json} +0 -0
- /package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-evaluation/parent-reconciliation.js +0 -0
- /package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-evaluation/required-files.js +0 -0
- /package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-state/aggregate.js +0 -0
- /package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/control-state/gate-approval-validator.js +0 -0
- /package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/candidate-policy.js +0 -0
- /package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/contracts.js +0 -0
- /package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/persistence.js +0 -0
- /package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/scoring.js +0 -0
- /package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/search-engine.js +0 -0
- /package/generated/plugins/copilot/agdf/runtime/create-agdf/{lib → runtime/core/lib}/delivery-path-search/state-adapter.js +0 -0
- /package/{lib → runtime/core/lib}/control-evaluation/parent-reconciliation.js +0 -0
- /package/{lib → runtime/core/lib}/control-evaluation/required-files.js +0 -0
- /package/{lib → runtime/core/lib}/control-state/aggregate.js +0 -0
- /package/{lib → runtime/core/lib}/control-state/gate-approval-validator.js +0 -0
- /package/{lib → runtime/core/lib}/delivery-path-search/candidate-policy.js +0 -0
- /package/{lib → runtime/core/lib}/delivery-path-search/contracts.js +0 -0
- /package/{lib → runtime/core/lib}/delivery-path-search/persistence.js +0 -0
- /package/{lib → runtime/core/lib}/delivery-path-search/scoring.js +0 -0
- /package/{lib → runtime/core/lib}/delivery-path-search/search-engine.js +0 -0
- /package/{lib → runtime/core/lib}/delivery-path-search/state-adapter.js +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { readdirSync, readFileSync, realpathSync, statSync } from "node:fs";
|
|
3
3
|
import { spawnSync } from "node:child_process";
|
|
4
|
-
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
5
5
|
import { dirname, join, relative, resolve } from "node:path";
|
|
6
6
|
|
|
7
7
|
const scriptPluginRoot = resolve(fileURLToPath(new URL("..", import.meta.url)));
|
|
@@ -32,23 +32,23 @@ function samePath(left, right) {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
function hasPluginLayout(root) {
|
|
35
|
+
function hasPluginLayout(root, { source = false } = {}) {
|
|
36
36
|
return [
|
|
37
37
|
".codex-plugin/plugin.json",
|
|
38
38
|
".claude-plugin/plugin.json",
|
|
39
39
|
"meta/agdf-plugin.definition.json",
|
|
40
40
|
"meta/agdf-runtime-contract.md",
|
|
41
|
-
"hooks/hooks.json",
|
|
41
|
+
source ? "host-templates/shared/hooks/hooks.json" : "hooks/hooks.json",
|
|
42
42
|
"scripts/check-runtime-integrity.mjs",
|
|
43
43
|
].every((path) => isFile(join(root, path)))
|
|
44
44
|
&& ["skills", "control"].every((path) => isDirectory(join(root, path)));
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
function hasSourceLayout(root) {
|
|
48
|
-
return hasPluginLayout(join(root, "
|
|
48
|
+
return hasPluginLayout(join(root, "plugins", "agdf"), { source: true })
|
|
49
49
|
&& [
|
|
50
|
-
"agdf/package.json",
|
|
51
|
-
"
|
|
50
|
+
"packages/cli/distribution/agdf/package.json",
|
|
51
|
+
"packages/cli/package.json",
|
|
52
52
|
"pages/package.json",
|
|
53
53
|
"LICENSE",
|
|
54
54
|
].every((path) => isFile(join(root, path)));
|
|
@@ -65,7 +65,7 @@ function classifyLayout(root) {
|
|
|
65
65
|
const installed = hasPluginLayout(root);
|
|
66
66
|
if (source === installed) invalidLayout(root);
|
|
67
67
|
return source
|
|
68
|
-
? { mode: "source", repoRoot: root, pluginRoot: join(root, "
|
|
68
|
+
? { mode: "source", repoRoot: root, pluginRoot: join(root, "plugins", "agdf") }
|
|
69
69
|
: { mode: "installed", repoRoot: null, pluginRoot: root };
|
|
70
70
|
}
|
|
71
71
|
|
|
@@ -74,8 +74,8 @@ function resolveLayout() {
|
|
|
74
74
|
return classifyLayout(resolve(process.env.AGDF_RUNTIME_INTEGRITY_ROOT));
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
const parentRoot =
|
|
78
|
-
const sourceIntent = samePath(join(parentRoot, "
|
|
77
|
+
const parentRoot = resolve(scriptPluginRoot, "../..");
|
|
78
|
+
const sourceIntent = samePath(join(parentRoot, "plugins", "agdf"), scriptPluginRoot)
|
|
79
79
|
&& (isFile(join(parentRoot, "package.json"))
|
|
80
80
|
|| isDirectory(join(parentRoot, "create-agdf"))
|
|
81
81
|
|| isDirectory(join(parentRoot, "agdf")));
|
|
@@ -92,46 +92,63 @@ try {
|
|
|
92
92
|
console.error("- AGDF_AGENT_SKILLS_VALIDATOR_MISSING: scripts/agent-skills-conformance.mjs must be present and loadable");
|
|
93
93
|
process.exit(1);
|
|
94
94
|
}
|
|
95
|
+
let extractSerializedDescriptionScalar;
|
|
96
|
+
let requestActivationKernelFingerprint;
|
|
97
|
+
let validateInstructionFootprintProfile;
|
|
98
|
+
try {
|
|
99
|
+
({
|
|
100
|
+
extractSerializedDescriptionScalar,
|
|
101
|
+
requestActivationKernelFingerprint,
|
|
102
|
+
validateInstructionFootprintProfile,
|
|
103
|
+
} = await import("./instruction-footprint.mjs"));
|
|
104
|
+
} catch {
|
|
105
|
+
console.error("[agdf-runtime-integrity] FAIL");
|
|
106
|
+
console.error("- AGDF_INSTRUCTION_FOOTPRINT_VALIDATOR_MISSING: scripts/instruction-footprint.mjs must be present and loadable");
|
|
107
|
+
process.exit(1);
|
|
108
|
+
}
|
|
95
109
|
const codexSourceMarketplacePath = sourceMode ? join(repoRoot, ".agents", "plugins", "marketplace.json") : null;
|
|
96
110
|
const claudeSourceMarketplacePath = sourceMode ? join(repoRoot, ".claude-plugin", "marketplace.json") : null;
|
|
97
111
|
const codexPluginPath = join(pluginRoot, ".codex-plugin", "plugin.json");
|
|
98
112
|
const claudePluginPath = join(pluginRoot, ".claude-plugin", "plugin.json");
|
|
99
113
|
const copilotPluginPath = join(pluginRoot, "plugin.json");
|
|
100
|
-
const copilotHooksPath = join(pluginRoot, "hooks", "
|
|
114
|
+
const copilotHooksPath = join(pluginRoot, "com.github.copilot", "hooks", "hooks.json");
|
|
101
115
|
const installationProvenancePath = join(pluginRoot, ".agdf-installation.json");
|
|
102
116
|
const legacyLocalInstallMarkerPath = join(pluginRoot, ".agdf-local-install.json");
|
|
103
117
|
const pluginDefinitionPath = join(pluginRoot, "meta", "agdf-plugin.definition.json");
|
|
104
118
|
const agentRouterPath = join(pluginRoot, "meta", "agdf-agent-router.md");
|
|
105
119
|
const runtimeContractPath = join(pluginRoot, "meta", "agdf-runtime-contract.md");
|
|
106
120
|
const contractsDir = join(pluginRoot, "meta", "contracts");
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
"
|
|
110
|
-
"
|
|
111
|
-
|
|
112
|
-
"
|
|
113
|
-
"
|
|
114
|
-
|
|
115
|
-
"
|
|
116
|
-
|
|
121
|
+
const requestActivationContractPath = join(contractsDir, "request-activation.md");
|
|
122
|
+
const commandRegistryPath = sourceMode
|
|
123
|
+
? join(repoRoot, "packages", "cli", "lib", "cli", "command-registry.js")
|
|
124
|
+
: join(pluginRoot, "runtime", "create-agdf", "lib", "cli", "command-registry.js");
|
|
125
|
+
const skillDispatchFunctionContractPath = sourceMode
|
|
126
|
+
? join(repoRoot, "packages", "core", "lib", "skill-dispatch", "contract.js")
|
|
127
|
+
: join(pluginRoot, "runtime", "create-agdf", "runtime", "core", "lib", "skill-dispatch", "contract.js");
|
|
128
|
+
const runtimeCheckContractPath = sourceMode
|
|
129
|
+
? join(repoRoot, "packages", "cli", "lib", "runtime-check-consent", "contract.js")
|
|
130
|
+
: join(pluginRoot, "runtime", "create-agdf", "lib", "runtime-check-consent", "contract.js");
|
|
117
131
|
const interactionLocalesPath = join(pluginRoot, "meta", "agdf-interaction-locales.json");
|
|
118
132
|
const gateCheckSkillPath = join(pluginRoot, "skills", "gate-check", "SKILL.md");
|
|
119
133
|
const brownfieldSkillPath = join(pluginRoot, "skills", "brownfield-analysis", "SKILL.md");
|
|
120
134
|
const localRuntimeManifestPath = join(pluginRoot, "runtime", "runtime-manifest.json");
|
|
121
135
|
const localRuntimeEntrypointPath = join(pluginRoot, "runtime", "agdf-local.js");
|
|
122
136
|
const automaticRuntimeCheckPath = join(pluginRoot, "runtime", "agdf-session-check.js");
|
|
123
|
-
const
|
|
124
|
-
const
|
|
137
|
+
const sharedHookRoot = sourceMode ? join(pluginRoot, "host-templates", "shared", "hooks") : join(pluginRoot, "hooks");
|
|
138
|
+
const hooksConfigPath = join(sharedHookRoot, "hooks.json");
|
|
139
|
+
const sessionStartHookPath = join(sharedHookRoot, "session-start.sh");
|
|
125
140
|
const codexComposerIconPath = join(pluginRoot, "assets", "agdf-icon.svg");
|
|
126
141
|
const codexLogoPath = join(pluginRoot, "assets", "agdf-logo.svg");
|
|
127
|
-
const agdfPackagePath = sourceMode ? join(repoRoot, "agdf", "package.json") : null;
|
|
128
|
-
const createAgdfPackagePath = sourceMode ? join(repoRoot, "
|
|
142
|
+
const agdfPackagePath = sourceMode ? join(repoRoot, "packages", "cli", "distribution", "agdf", "package.json") : null;
|
|
143
|
+
const createAgdfPackagePath = sourceMode ? join(repoRoot, "packages", "cli", "package.json") : null;
|
|
129
144
|
const pagesPackagePath = sourceMode ? join(repoRoot, "pages", "package.json") : null;
|
|
130
145
|
const pagesSiteDataPath = sourceMode ? join(repoRoot, "pages", "src", "data", "site.ts") : null;
|
|
131
146
|
const pagesSkillsPath = sourceMode ? join(repoRoot, "pages", "src", "data", "skills.ts") : null;
|
|
132
147
|
const pagesIndexPath = sourceMode ? join(repoRoot, "pages", "src", "pages", "index.astro") : null;
|
|
133
|
-
const syncPackageAssetsPath = sourceMode ? join(repoRoot, "
|
|
134
|
-
const
|
|
148
|
+
const syncPackageAssetsPath = sourceMode ? join(repoRoot, "scripts", "sync-package-assets.js") : null;
|
|
149
|
+
const syncPluginRuntimePath = sourceMode ? join(repoRoot, "scripts", "sync-plugin-runtime.js") : null;
|
|
150
|
+
const createAgdfOpenCodeInstallerPath = sourceMode ? join(repoRoot, "packages", "cli", "lib", "installers", "opencode.js") : null;
|
|
151
|
+
const openCodeNpmPluginPath = sourceMode ? join(repoRoot, "packages", "cli", "opencode-plugin.js") : null;
|
|
135
152
|
const activeRunStatePath = sourceMode ? join(repoRoot, ".agdf", "control", "AGDF_RUN.md") : null;
|
|
136
153
|
const rootLicensePath = sourceMode ? join(repoRoot, "LICENSE") : null;
|
|
137
154
|
const pluginLicensePath = join(pluginRoot, "LICENSE");
|
|
@@ -186,6 +203,36 @@ const germanRuntimePatterns = [
|
|
|
186
203
|
];
|
|
187
204
|
|
|
188
205
|
const failures = [];
|
|
206
|
+
let canonicalSkillDispatchProjection = "";
|
|
207
|
+
let canonicalSkillDispatchTerminalProjection = "";
|
|
208
|
+
let canonicalSkillDispatchQaCandidatesProjection = "";
|
|
209
|
+
let fixedRuntimeCheckCommand;
|
|
210
|
+
try {
|
|
211
|
+
const functionContract = await import(pathToFileURL(skillDispatchFunctionContractPath).href);
|
|
212
|
+
canonicalSkillDispatchProjection = functionContract.renderSkillDispatchSemanticProjection();
|
|
213
|
+
canonicalSkillDispatchTerminalProjection = functionContract.renderSkillDispatchTerminalProjection();
|
|
214
|
+
canonicalSkillDispatchQaCandidatesProjection = functionContract.renderSkillDispatchQaCandidatesProjection();
|
|
215
|
+
} catch {
|
|
216
|
+
failures.push("skill dispatch semantic function owner must be present and loadable");
|
|
217
|
+
}
|
|
218
|
+
try {
|
|
219
|
+
({ fixedRuntimeCheckCommand } = await import(pathToFileURL(runtimeCheckContractPath).href));
|
|
220
|
+
} catch {
|
|
221
|
+
failures.push("automatic runtime-check command owner must be present and loadable");
|
|
222
|
+
}
|
|
223
|
+
const skillSlugPattern = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
224
|
+
const requestActivationMarkers = Object.freeze({
|
|
225
|
+
guardStart: "<!-- AGDF-REQUEST-ACTIVATION-GUARD:START -->",
|
|
226
|
+
guardEnd: "<!-- AGDF-REQUEST-ACTIVATION-GUARD:END -->",
|
|
227
|
+
discoveryStart: "<!-- AGDF-REQUEST-ACTIVATION-DISCOVERY-SUFFIX:START -->",
|
|
228
|
+
discoveryEnd: "<!-- AGDF-REQUEST-ACTIVATION-DISCOVERY-SUFFIX:END -->",
|
|
229
|
+
operationsStart: "<!-- AGDF-REQUEST-ACTIVATION-OPERATIONS:START -->",
|
|
230
|
+
operationsEnd: "<!-- AGDF-REQUEST-ACTIVATION-OPERATIONS:END -->",
|
|
231
|
+
runtimeModulesStart: "<!-- AGDF-RUNTIME-CONTRACT-MODULES:START -->",
|
|
232
|
+
runtimeModulesEnd: "<!-- AGDF-RUNTIME-CONTRACT-MODULES:END -->",
|
|
233
|
+
skillRoutingStart: "<!-- AGDF-SKILL-ROUTING:START -->",
|
|
234
|
+
skillRoutingEnd: "<!-- AGDF-SKILL-ROUTING:END -->",
|
|
235
|
+
});
|
|
189
236
|
|
|
190
237
|
function read(path) {
|
|
191
238
|
return readFileSync(path, "utf8");
|
|
@@ -209,14 +256,284 @@ function readJson(path, label) {
|
|
|
209
256
|
}
|
|
210
257
|
}
|
|
211
258
|
|
|
259
|
+
function normalizeLf(content) {
|
|
260
|
+
return content.replaceAll("\r\n", "\n").replaceAll("\r", "\n");
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
function normalizeProse(content) {
|
|
264
|
+
return normalizeLf(content).replace(/\s+/g, " ").trim();
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
function countOccurrences(content, needle) {
|
|
268
|
+
return needle ? content.split(needle).length - 1 : 0;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
function ownedBlock(content, startMarker, endMarker, label) {
|
|
272
|
+
const startCount = countOccurrences(content, startMarker);
|
|
273
|
+
const endCount = countOccurrences(content, endMarker);
|
|
274
|
+
if (startCount !== 1 || endCount !== 1) {
|
|
275
|
+
failures.push(`${label} must contain exactly one complete marker-bounded projection`);
|
|
276
|
+
return "";
|
|
277
|
+
}
|
|
278
|
+
const start = content.indexOf(startMarker);
|
|
279
|
+
const end = content.indexOf(endMarker, start) + endMarker.length;
|
|
280
|
+
if (end <= start) {
|
|
281
|
+
failures.push(`${label} projection markers are out of order`);
|
|
282
|
+
return "";
|
|
283
|
+
}
|
|
284
|
+
return content.slice(start, end);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
function requestActivationDiscoverySuffix(contractContent) {
|
|
288
|
+
const block = ownedBlock(
|
|
289
|
+
contractContent,
|
|
290
|
+
requestActivationMarkers.discoveryStart,
|
|
291
|
+
requestActivationMarkers.discoveryEnd,
|
|
292
|
+
"request activation discovery suffix",
|
|
293
|
+
);
|
|
294
|
+
if (!block) return "";
|
|
295
|
+
const suffix = block
|
|
296
|
+
.split(/\r?\n/)
|
|
297
|
+
.filter((line) => line !== requestActivationMarkers.discoveryStart
|
|
298
|
+
&& line !== requestActivationMarkers.discoveryEnd)
|
|
299
|
+
.join("\n")
|
|
300
|
+
.trim();
|
|
301
|
+
if (!suffix || suffix.includes("\n")) {
|
|
302
|
+
failures.push("request activation discovery suffix must contain exactly one non-empty line");
|
|
303
|
+
return "";
|
|
304
|
+
}
|
|
305
|
+
return suffix;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
function parseRequestActivationCatalog(contractContent) {
|
|
309
|
+
const block = ownedBlock(
|
|
310
|
+
contractContent,
|
|
311
|
+
requestActivationMarkers.operationsStart,
|
|
312
|
+
requestActivationMarkers.operationsEnd,
|
|
313
|
+
"request activation operation catalog",
|
|
314
|
+
);
|
|
315
|
+
if (!block) return null;
|
|
316
|
+
const match = block.match(/```json\r?\n([\s\S]*?)\r?\n```/);
|
|
317
|
+
if (!match || (block.match(/^```json$/gm) ?? []).length !== 1 || (block.match(/^```$/gm) ?? []).length !== 1) {
|
|
318
|
+
failures.push("request activation operation catalog must contain exactly one JSON block");
|
|
319
|
+
return null;
|
|
320
|
+
}
|
|
321
|
+
try {
|
|
322
|
+
return JSON.parse(match[1]);
|
|
323
|
+
} catch {
|
|
324
|
+
failures.push("request activation operation catalog must be valid JSON");
|
|
325
|
+
return null;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
function javascriptTokens(content) {
|
|
330
|
+
const tokens = [];
|
|
331
|
+
let index = 0;
|
|
332
|
+
let lineStart = true;
|
|
333
|
+
const push = (type, value) => {
|
|
334
|
+
tokens.push({ type, value, lineStart });
|
|
335
|
+
lineStart = false;
|
|
336
|
+
};
|
|
337
|
+
|
|
338
|
+
while (index < content.length) {
|
|
339
|
+
const character = content[index];
|
|
340
|
+
const next = content[index + 1];
|
|
341
|
+
if (/\s/.test(character)) {
|
|
342
|
+
if (character === "\n" || character === "\r") lineStart = true;
|
|
343
|
+
index += 1;
|
|
344
|
+
continue;
|
|
345
|
+
}
|
|
346
|
+
if (character === "/" && next === "/") {
|
|
347
|
+
index += 2;
|
|
348
|
+
while (index < content.length && !["\n", "\r"].includes(content[index])) index += 1;
|
|
349
|
+
continue;
|
|
350
|
+
}
|
|
351
|
+
if (character === "/" && next === "*") {
|
|
352
|
+
index += 2;
|
|
353
|
+
while (index < content.length && !(content[index] === "*" && content[index + 1] === "/")) {
|
|
354
|
+
if (content[index] === "\n" || content[index] === "\r") lineStart = true;
|
|
355
|
+
index += 1;
|
|
356
|
+
}
|
|
357
|
+
index = Math.min(index + 2, content.length);
|
|
358
|
+
continue;
|
|
359
|
+
}
|
|
360
|
+
if (character === "`") {
|
|
361
|
+
index += 1;
|
|
362
|
+
while (index < content.length) {
|
|
363
|
+
if (content[index] === "\\") {
|
|
364
|
+
index += 2;
|
|
365
|
+
continue;
|
|
366
|
+
}
|
|
367
|
+
if (content[index] === "`") {
|
|
368
|
+
index += 1;
|
|
369
|
+
break;
|
|
370
|
+
}
|
|
371
|
+
index += 1;
|
|
372
|
+
}
|
|
373
|
+
push("template", "");
|
|
374
|
+
continue;
|
|
375
|
+
}
|
|
376
|
+
if (character === "\"" || character === "'") {
|
|
377
|
+
const quote = character;
|
|
378
|
+
let value = "";
|
|
379
|
+
let plain = true;
|
|
380
|
+
index += 1;
|
|
381
|
+
while (index < content.length) {
|
|
382
|
+
if (content[index] === "\\") {
|
|
383
|
+
plain = false;
|
|
384
|
+
index += 2;
|
|
385
|
+
continue;
|
|
386
|
+
}
|
|
387
|
+
if (content[index] === quote) {
|
|
388
|
+
index += 1;
|
|
389
|
+
break;
|
|
390
|
+
}
|
|
391
|
+
value += content[index];
|
|
392
|
+
index += 1;
|
|
393
|
+
}
|
|
394
|
+
push("string", plain ? value : "");
|
|
395
|
+
continue;
|
|
396
|
+
}
|
|
397
|
+
if (/[A-Za-z_$]/.test(character)) {
|
|
398
|
+
let end = index + 1;
|
|
399
|
+
while (end < content.length && /[A-Za-z0-9_$]/.test(content[end])) end += 1;
|
|
400
|
+
push("identifier", content.slice(index, end));
|
|
401
|
+
index = end;
|
|
402
|
+
continue;
|
|
403
|
+
}
|
|
404
|
+
push("punctuation", character);
|
|
405
|
+
index += 1;
|
|
406
|
+
}
|
|
407
|
+
return tokens;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
function commandRegistryNames(content) {
|
|
411
|
+
const commands = new Set();
|
|
412
|
+
const tokens = javascriptTokens(content);
|
|
413
|
+
for (let index = 0; index < tokens.length - 2; index += 1) {
|
|
414
|
+
const [commandToken, openingToken, nameToken] = tokens.slice(index, index + 3);
|
|
415
|
+
if (commandToken.type === "identifier"
|
|
416
|
+
&& commandToken.value === "command"
|
|
417
|
+
&& commandToken.lineStart
|
|
418
|
+
&& openingToken.type === "punctuation"
|
|
419
|
+
&& openingToken.value === "("
|
|
420
|
+
&& nameToken.type === "string"
|
|
421
|
+
&& skillSlugPattern.test(nameToken.value)) {
|
|
422
|
+
commands.add(nameToken.value);
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
return commands;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
function validateRequestActivationCatalog(catalog, definition, registryContent) {
|
|
429
|
+
if (catalog?.schema_version !== 1 || !Array.isArray(catalog?.operations) || !Array.isArray(catalog?.derived_operations)) {
|
|
430
|
+
failures.push("request activation operation catalog must use schema_version 1 with operations and derived_operations arrays");
|
|
431
|
+
return;
|
|
432
|
+
}
|
|
433
|
+
const skillSlugs = new Set((definition?.skillSet ?? []).map((skill) => skill.slug));
|
|
434
|
+
const commands = commandRegistryNames(registryContent);
|
|
435
|
+
if (commands.size === 0) failures.push("commandRegistry must expose operation-owner commands");
|
|
436
|
+
const operationIds = new Set();
|
|
437
|
+
const ownerKinds = new Set(["contract", "skill", "command", "function"]);
|
|
438
|
+
for (const operation of catalog.operations) {
|
|
439
|
+
const operationId = operation?.operation_id ?? "";
|
|
440
|
+
if (!/^[a-z][a-z0-9_]*(?:\.[a-z0-9_]+)+$/.test(operationId)) {
|
|
441
|
+
failures.push(`request activation catalog contains a missing or unknown operation ID: ${operationId || "<missing>"}`);
|
|
442
|
+
continue;
|
|
443
|
+
}
|
|
444
|
+
if (operationIds.has(operationId)) failures.push(`request activation catalog contains duplicate operation ID: ${operationId}`);
|
|
445
|
+
operationIds.add(operationId);
|
|
446
|
+
if (!operation.route_family || !operation.target_boundary || !operation.control_boundary) {
|
|
447
|
+
failures.push(`request activation operation ${operationId} has an incomplete route boundary`);
|
|
448
|
+
}
|
|
449
|
+
if (!ownerKinds.has(operation.owner_kind) || !operation.owner) {
|
|
450
|
+
failures.push(`request activation operation ${operationId} has an unknown owner declaration`);
|
|
451
|
+
} else if (operation.owner_kind === "command" && !commands.has(operation.owner)) {
|
|
452
|
+
failures.push(`request activation operation ${operationId} references unknown commandRegistry owner ${operation.owner}`);
|
|
453
|
+
} else if (operation.owner_kind === "skill" && !skillSlugs.has(operation.owner)) {
|
|
454
|
+
failures.push(`request activation operation ${operationId} references unknown skillSet owner ${operation.owner}`);
|
|
455
|
+
}
|
|
456
|
+
if (operationId.startsWith("skill.")) {
|
|
457
|
+
failures.push("request activation direct skill IDs must derive from pluginDefinition.skillSet");
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
const [derived] = catalog.derived_operations;
|
|
461
|
+
if (catalog.derived_operations.length !== 1
|
|
462
|
+
|| derived?.operation_id_pattern !== "skill.<slug>"
|
|
463
|
+
|| derived?.derive_from !== "pluginDefinition.skillSet"
|
|
464
|
+
|| derived?.owner_kind !== "dispatcher"
|
|
465
|
+
|| derived?.owner !== "skill-dispatch-v1"
|
|
466
|
+
|| derived?.target_boundary !== "dispatcher_v1"
|
|
467
|
+
|| derived?.control_boundary !== "dispatcher_v1") {
|
|
468
|
+
failures.push("request activation derived skill operation owner must be dispatcher v1 over pluginDefinition.skillSet");
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
function runtimeModuleIndex(modulePaths) {
|
|
473
|
+
const rows = [];
|
|
474
|
+
for (const modulePath of modulePaths) {
|
|
475
|
+
const path = join(pluginRoot, modulePath);
|
|
476
|
+
if (!isFile(path)) continue;
|
|
477
|
+
const title = read(path).match(/^# AGDF Runtime Contract (?:—|-) (.+)$/m)?.[1]?.trim();
|
|
478
|
+
if (!title) {
|
|
479
|
+
failures.push(`runtime contract module lacks its canonical title: ${modulePath}`);
|
|
480
|
+
continue;
|
|
481
|
+
}
|
|
482
|
+
rows.push(`| ${title} | \`${modulePath.replace(/^meta\//, "")}\` | Canonical focused module; follow the linked source for semantics. |`);
|
|
483
|
+
}
|
|
484
|
+
return [
|
|
485
|
+
requestActivationMarkers.runtimeModulesStart,
|
|
486
|
+
"| Module | Path | Coverage |",
|
|
487
|
+
"|---|---|---|",
|
|
488
|
+
...rows,
|
|
489
|
+
requestActivationMarkers.runtimeModulesEnd,
|
|
490
|
+
].join("\n");
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
function expectedSkillDescription(skill, suffix) {
|
|
494
|
+
return `Use this skill for this scope: ${skill.useFor}. Boundary: ${skill.boundary}. ${suffix}`;
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
// Mirrors packages/core/lib/runtime/plugin-provenance.js: the installer writes absolute paths into the
|
|
498
|
+
// Codex MCP declaration, and provenance digests the template for any config of the owned shape.
|
|
499
|
+
function codexMcpTemplate({ pluginRoot = "{{AGDF_PLUGIN_ROOT}}", dataRoot = "{{AGDF_MCP_DATA}}", portable = true, cockpit = false } = {}) {
|
|
500
|
+
return `${JSON.stringify({
|
|
501
|
+
...(portable ? { $schema: "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json" } : {}),
|
|
502
|
+
mcpServers: { agdf: { ...(portable ? { type: "stdio" } : {}), command: "node",
|
|
503
|
+
args: [`${pluginRoot.replaceAll("\\", "/")}/mcp/agdf-mcp-launch.js`, "--surface", "codex", "--data", dataRoot.replaceAll("\\", "/")] },
|
|
504
|
+
...(cockpit ? { 'agdf-cockpit': { ...(portable ? { type: 'stdio' } : {}), command: 'node',
|
|
505
|
+
args: [`${pluginRoot.replaceAll('\\', '/')}/mcp/agdf-mcp-launch.js`, '--surface', 'codex', '--data', dataRoot.replaceAll('\\', '/'), '--cockpit'] } } : {}) },
|
|
506
|
+
}, null, 2)}\n`;
|
|
507
|
+
}
|
|
508
|
+
function normalizeCodexPluginMcpConfig(content) {
|
|
509
|
+
try {
|
|
510
|
+
const config = JSON.parse(String(content));
|
|
511
|
+
const args = config.mcpServers?.agdf?.args;
|
|
512
|
+
if (Array.isArray(args) && args.length === 5 && typeof args[0] === "string"
|
|
513
|
+
&& args[0].endsWith("/mcp/agdf-mcp-launch.js") && typeof args[4] === "string" && args[4]) {
|
|
514
|
+
const portable = Object.hasOwn(config, "$schema");
|
|
515
|
+
const cockpit = Object.hasOwn(config.mcpServers, 'agdf-cockpit');
|
|
516
|
+
const expected = codexMcpTemplate({ pluginRoot: args[0].slice(0, -"/mcp/agdf-mcp-launch.js".length), dataRoot: args[4], portable, cockpit });
|
|
517
|
+
if (JSON.stringify(config) === JSON.stringify(JSON.parse(expected))) return codexMcpTemplate({ portable, cockpit });
|
|
518
|
+
}
|
|
519
|
+
} catch {}
|
|
520
|
+
return content;
|
|
521
|
+
}
|
|
522
|
+
function codexMcpShape(content) {
|
|
523
|
+
const normalized = normalizeCodexPluginMcpConfig(content);
|
|
524
|
+
return normalized === codexMcpTemplate() || normalized === codexMcpTemplate({ cockpit: true });
|
|
525
|
+
}
|
|
526
|
+
|
|
212
527
|
function digestPluginSource(root, canonicalVersion) {
|
|
213
528
|
const files = [];
|
|
214
529
|
function visit(directory) {
|
|
215
530
|
for (const name of readdirSync(directory).sort()) {
|
|
216
531
|
const path = join(directory, name);
|
|
217
532
|
const stats = statSync(path);
|
|
218
|
-
if (stats.isDirectory())
|
|
219
|
-
|
|
533
|
+
if (stats.isDirectory()) {
|
|
534
|
+
// Host-owned liveness markers (Claude Code `.in_use/<pid>`) are not plugin payload.
|
|
535
|
+
if (!(directory === root && name === ".in_use")) visit(path);
|
|
536
|
+
} else if (stats.isFile()) files.push(path);
|
|
220
537
|
}
|
|
221
538
|
}
|
|
222
539
|
visit(root);
|
|
@@ -224,9 +541,12 @@ function digestPluginSource(root, canonicalVersion) {
|
|
|
224
541
|
for (const path of files) {
|
|
225
542
|
const normalizedPath = relative(root, path).replaceAll("\\", "/");
|
|
226
543
|
if ([".agdf-installation.json", ".agdf-local-install.json"].includes(normalizedPath)) continue;
|
|
227
|
-
const content = normalizedPath === ".codex-plugin/plugin.json"
|
|
544
|
+
const content = (normalizedPath === ".codex-plugin/plugin.json"
|
|
545
|
+
|| (normalizedPath === "plugin.json" && readJson(path, "Root plugin manifest").$schema === "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json"))
|
|
228
546
|
? `${JSON.stringify({ ...readJson(path, "Codex plugin manifest"), version: canonicalVersion }, null, 2)}\n`
|
|
229
|
-
:
|
|
547
|
+
: ["mcp.json", "mcp/codex.mcp.json"].includes(normalizedPath)
|
|
548
|
+
? normalizeCodexPluginMcpConfig(readFileSync(path, "utf8"))
|
|
549
|
+
: readFileSync(path);
|
|
230
550
|
hash.update(normalizedPath);
|
|
231
551
|
hash.update("\0");
|
|
232
552
|
hash.update(content);
|
|
@@ -309,18 +629,50 @@ function assertRouterMatchesDefinition(pathLabel, content, surface) {
|
|
|
309
629
|
}
|
|
310
630
|
}
|
|
311
631
|
|
|
312
|
-
assertFile(
|
|
313
|
-
|
|
314
|
-
|
|
632
|
+
assertFile(pluginDefinitionPath, "canonical AGDF plugin definition");
|
|
633
|
+
const pluginDefinition = isFile(pluginDefinitionPath) ? readJson(pluginDefinitionPath, "canonical AGDF plugin definition") : null;
|
|
634
|
+
const runtimeContractDefinition = pluginDefinition?.runtimeContract;
|
|
635
|
+
let runtimeContractModulePaths = [];
|
|
636
|
+
if (runtimeContractDefinition?.schemaVersion !== 1
|
|
637
|
+
|| runtimeContractDefinition?.manifestPath !== "meta/agdf-runtime-contract.md"
|
|
638
|
+
|| !Array.isArray(runtimeContractDefinition?.modules)
|
|
639
|
+
|| runtimeContractDefinition.modules.length === 0) {
|
|
640
|
+
failures.push("canonical AGDF plugin definition must declare runtimeContract schemaVersion 1, manifestPath and ordered modules");
|
|
641
|
+
} else {
|
|
642
|
+
runtimeContractModulePaths = [...runtimeContractDefinition.modules];
|
|
643
|
+
if (new Set(runtimeContractModulePaths).size !== runtimeContractModulePaths.length) {
|
|
644
|
+
failures.push("runtimeContract.modules must not contain duplicates");
|
|
645
|
+
}
|
|
646
|
+
for (const modulePath of runtimeContractModulePaths) {
|
|
647
|
+
if (!/^meta\/contracts\/[a-z0-9-]+\.md$/.test(modulePath)) {
|
|
648
|
+
failures.push(`runtimeContract.modules contains an unknown module path: ${modulePath}`);
|
|
649
|
+
}
|
|
650
|
+
}
|
|
651
|
+
if (runtimeContractModulePaths[0] !== "meta/contracts/request-activation.md"
|
|
652
|
+
|| runtimeContractModulePaths[1] !== "meta/contracts/task-target-resolution.md") {
|
|
653
|
+
failures.push("runtimeContract.modules must order Request Activation before Task Target Resolution");
|
|
654
|
+
}
|
|
315
655
|
}
|
|
656
|
+
const contractModules = runtimeContractModulePaths.map((modulePath) => modulePath.replace(/^meta\/contracts\//, ""));
|
|
657
|
+
assertFile(runtimeContractPath, "runtime contract");
|
|
658
|
+
for (const modulePath of runtimeContractModulePaths) {
|
|
659
|
+
assertFile(
|
|
660
|
+
join(pluginRoot, modulePath),
|
|
661
|
+
`runtime contract module ${modulePath.replace(/^meta\/contracts\//, "")}`,
|
|
662
|
+
);
|
|
663
|
+
}
|
|
664
|
+
assertFile(requestActivationContractPath, "request activation contract");
|
|
665
|
+
assertFile(commandRegistryPath, "commandRegistry operation owner");
|
|
666
|
+
assertFile(skillDispatchFunctionContractPath, "skill dispatch semantic function owner");
|
|
316
667
|
assertFile(interactionLocalesPath, "interaction locale registry");
|
|
317
|
-
assertFile(pluginDefinitionPath, "canonical AGDF plugin definition");
|
|
318
668
|
if (sourceMode) {
|
|
319
669
|
if (isDirectory(join(pluginRoot, "runtime"))) failures.push("source plugin must not contain generated runtime");
|
|
320
670
|
} else {
|
|
321
671
|
assertFile(localRuntimeManifestPath, "surface-local runtime manifest");
|
|
322
672
|
assertFile(localRuntimeEntrypointPath, "surface-local runtime entrypoint");
|
|
323
673
|
assertFile(automaticRuntimeCheckPath, "argument-free automatic runtime-check entrypoint");
|
|
674
|
+
assertFile(join(pluginRoot, "runtime", "create-agdf", "runtime", "core", "lib", "skill-dispatch", "contract.js"), "skill dispatch contract");
|
|
675
|
+
assertFile(join(pluginRoot, "runtime", "create-agdf", "runtime", "core", "lib", "skill-dispatch", "service.js"), "skill dispatch service");
|
|
324
676
|
}
|
|
325
677
|
assertFile(agentRouterPath, "canonical AGDF agent router");
|
|
326
678
|
assertFile(codexPluginPath, "Codex plugin manifest");
|
|
@@ -341,14 +693,15 @@ if (sourceMode) {
|
|
|
341
693
|
assertFile(pagesSiteDataPath, "Pages site data");
|
|
342
694
|
assertFile(pagesIndexPath, "Pages index");
|
|
343
695
|
assertFile(syncPackageAssetsPath, "create-agdf package asset sync");
|
|
696
|
+
assertFile(syncPluginRuntimePath, "create-agdf plugin runtime sync");
|
|
697
|
+
assertFile(openCodeNpmPluginPath, "OpenCode npm plugin source");
|
|
344
698
|
assertFile(rootLicensePath, "root LICENSE");
|
|
345
699
|
|
|
346
700
|
if (isFile(rootLicensePath) && isFile(pluginLicensePath) && read(rootLicensePath) !== read(pluginLicensePath)) {
|
|
347
|
-
failures.push("
|
|
701
|
+
failures.push("plugins/agdf/LICENSE must be byte-identical to the root LICENSE");
|
|
348
702
|
}
|
|
349
703
|
}
|
|
350
704
|
|
|
351
|
-
const pluginDefinition = isFile(pluginDefinitionPath) ? readJson(pluginDefinitionPath, "canonical AGDF plugin definition") : null;
|
|
352
705
|
const localRuntimeManifest = isFile(localRuntimeManifestPath) ? readJson(localRuntimeManifestPath, "surface-local runtime manifest") : null;
|
|
353
706
|
if (pluginDefinition && localRuntimeManifest) {
|
|
354
707
|
if (localRuntimeManifest.version !== pluginDefinition.version) failures.push("surface-local runtime version must match the plugin definition");
|
|
@@ -374,12 +727,119 @@ if (!sourceMode && isFile(localRuntimeEntrypointPath)) {
|
|
|
374
727
|
}
|
|
375
728
|
}
|
|
376
729
|
const runtimeContract = readAllContracts();
|
|
730
|
+
const requestActivationContract = isFile(requestActivationContractPath) ? read(requestActivationContractPath) : "";
|
|
731
|
+
const canonicalRequestActivationGuard = requestActivationContract
|
|
732
|
+
? ownedBlock(
|
|
733
|
+
requestActivationContract,
|
|
734
|
+
requestActivationMarkers.guardStart,
|
|
735
|
+
requestActivationMarkers.guardEnd,
|
|
736
|
+
"canonical request activation guard",
|
|
737
|
+
)
|
|
738
|
+
: "";
|
|
739
|
+
let canonicalGuardFingerprint = "";
|
|
740
|
+
if (canonicalRequestActivationGuard) {
|
|
741
|
+
try {
|
|
742
|
+
canonicalGuardFingerprint = requestActivationKernelFingerprint(canonicalRequestActivationGuard);
|
|
743
|
+
} catch (error) {
|
|
744
|
+
failures.push(`canonical request activation guard fingerprint is invalid: ${error.message}`);
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
if (canonicalRequestActivationGuard && canonicalGuardFingerprint
|
|
748
|
+
&& !canonicalRequestActivationGuard.includes(`- \`guard_fingerprint\`: \`${canonicalGuardFingerprint}\``)) {
|
|
749
|
+
failures.push("canonical request activation guard fingerprint does not match its source block");
|
|
750
|
+
}
|
|
751
|
+
if (requestActivationContract) {
|
|
752
|
+
for (const required of [
|
|
753
|
+
"sole semantic owner",
|
|
754
|
+
"no raw prompt or derived request classification is written",
|
|
755
|
+
"no network request, remote classifier, repository read, tool call, or dispatcher call",
|
|
756
|
+
"requested_effect",
|
|
757
|
+
"invocation_provenance",
|
|
758
|
+
"selection_origin",
|
|
759
|
+
"persist: false",
|
|
760
|
+
]) {
|
|
761
|
+
if (!requestActivationContract.includes(required)) {
|
|
762
|
+
failures.push(`request activation contract missing non-authorizing/privacy boundary: ${required}`);
|
|
763
|
+
}
|
|
764
|
+
}
|
|
765
|
+
const catalog = parseRequestActivationCatalog(requestActivationContract);
|
|
766
|
+
validateRequestActivationCatalog(
|
|
767
|
+
catalog,
|
|
768
|
+
pluginDefinition,
|
|
769
|
+
isFile(commandRegistryPath) ? read(commandRegistryPath) : "",
|
|
770
|
+
);
|
|
771
|
+
}
|
|
772
|
+
const activationDiscoverySuffix = requestActivationContract
|
|
773
|
+
? requestActivationDiscoverySuffix(requestActivationContract)
|
|
774
|
+
: "";
|
|
775
|
+
if (isFile(runtimeContractPath) && runtimeContractModulePaths.length > 0) {
|
|
776
|
+
const manifestContent = read(runtimeContractPath);
|
|
777
|
+
const projectedIndex = ownedBlock(
|
|
778
|
+
manifestContent,
|
|
779
|
+
requestActivationMarkers.runtimeModulesStart,
|
|
780
|
+
requestActivationMarkers.runtimeModulesEnd,
|
|
781
|
+
"runtime contract module index",
|
|
782
|
+
);
|
|
783
|
+
const expectedIndex = runtimeModuleIndex(runtimeContractModulePaths);
|
|
784
|
+
if (projectedIndex && projectedIndex !== expectedIndex) {
|
|
785
|
+
failures.push("runtime contract module index is stale or out of definition order");
|
|
786
|
+
}
|
|
787
|
+
}
|
|
788
|
+
const taskTargetContract = isFile(join(contractsDir, "task-target-resolution.md")) ? read(join(contractsDir, "task-target-resolution.md")) : "";
|
|
789
|
+
const interactionContract = isFile(join(contractsDir, "interaction.md")) ? read(join(contractsDir, "interaction.md")) : "";
|
|
377
790
|
const modesContract = isFile(join(contractsDir, "modes.md")) ? read(join(contractsDir, "modes.md")) : "";
|
|
378
791
|
const gateTransitionContract = isFile(join(contractsDir, "gate-transition.md")) ? read(join(contractsDir, "gate-transition.md")) : "";
|
|
379
792
|
const agentRouterContent = isFile(agentRouterPath) ? read(agentRouterPath) : "";
|
|
380
793
|
const interactionLocales = isFile(interactionLocalesPath) ? readJson(interactionLocalesPath, "interaction locale registry") : null;
|
|
381
794
|
const gateCheckSkill = isFile(gateCheckSkillPath) ? read(gateCheckSkillPath) : "";
|
|
382
795
|
const brownfieldSkill = isFile(brownfieldSkillPath) ? read(brownfieldSkillPath) : "";
|
|
796
|
+
if (pluginDefinition && canonicalRequestActivationGuard && activationDiscoverySuffix && gateCheckSkill) {
|
|
797
|
+
const expectedDescriptions = Object.fromEntries(pluginDefinition.skillSet.map((skill) => [
|
|
798
|
+
skill.slug,
|
|
799
|
+
JSON.stringify(expectedSkillDescription(skill, activationDiscoverySuffix)),
|
|
800
|
+
]));
|
|
801
|
+
const discoveryRecords = [];
|
|
802
|
+
for (const skill of pluginDefinition.skillSet) {
|
|
803
|
+
const path = join(skillRoot, skill.slug, "SKILL.md");
|
|
804
|
+
if (!isFile(path)) continue;
|
|
805
|
+
try {
|
|
806
|
+
discoveryRecords.push({
|
|
807
|
+
id: skill.slug,
|
|
808
|
+
slug: skill.slug,
|
|
809
|
+
content: extractSerializedDescriptionScalar(read(path)),
|
|
810
|
+
});
|
|
811
|
+
} catch (error) {
|
|
812
|
+
failures.push(`${skill.slug} discovery scalar is invalid: ${error.message}`);
|
|
813
|
+
}
|
|
814
|
+
}
|
|
815
|
+
const footprintReport = validateInstructionFootprintProfile({
|
|
816
|
+
definition: pluginDefinition.instructionFootprint,
|
|
817
|
+
canonicalKernel: canonicalRequestActivationGuard,
|
|
818
|
+
expectedDescriptions,
|
|
819
|
+
expectedVersion: pluginDefinition.version,
|
|
820
|
+
expectedInstanceIds: {
|
|
821
|
+
activationKernel: ["canonical"],
|
|
822
|
+
skillDiscoveryDescription: pluginDefinition.skillSet.map((skill) => skill.slug),
|
|
823
|
+
allSkillDiscoveryDescriptions: ["definition-order"],
|
|
824
|
+
selectedGateCheckSkill: ["canonical"],
|
|
825
|
+
},
|
|
826
|
+
surfaces: {
|
|
827
|
+
activationKernel: [{ id: "canonical", content: canonicalRequestActivationGuard }],
|
|
828
|
+
skillDiscoveryDescription: discoveryRecords,
|
|
829
|
+
allSkillDiscoveryDescriptions: [{ id: "definition-order", content: discoveryRecords.map((record) => record.content).join("") }],
|
|
830
|
+
selectedGateCheckSkill: [{ id: "canonical", variant: "canonical", content: gateCheckSkill }],
|
|
831
|
+
},
|
|
832
|
+
requiredSurfaceIds: [
|
|
833
|
+
"activationKernel",
|
|
834
|
+
"skillDiscoveryDescription",
|
|
835
|
+
"allSkillDiscoveryDescriptions",
|
|
836
|
+
"selectedGateCheckSkill",
|
|
837
|
+
],
|
|
838
|
+
});
|
|
839
|
+
for (const finding of footprintReport.failures) {
|
|
840
|
+
failures.push(`${finding.code}: ${finding.message}`);
|
|
841
|
+
}
|
|
842
|
+
}
|
|
383
843
|
if (!brownfieldSkill.includes("Persist the completed review and its decision, scope reason, evidence and required next gate in the same internal operation")) {
|
|
384
844
|
failures.push("brownfield-analysis must own atomic post-UR review and routing persistence");
|
|
385
845
|
}
|
|
@@ -434,6 +894,21 @@ for (const required of [
|
|
|
434
894
|
]) {
|
|
435
895
|
if (!brownfieldSkill.includes(required)) failures.push(`brownfield-analysis structured-depth guidance missing: ${required}`);
|
|
436
896
|
}
|
|
897
|
+
for (const required of [
|
|
898
|
+
"In the same `post_ur_review`, record architecture relevance",
|
|
899
|
+
"architecture-not-applicable",
|
|
900
|
+
"problem`, `trade-off` or `unresolved",
|
|
901
|
+
"rationale, accountable owner, mitigation and finite review date or exit condition",
|
|
902
|
+
"Until all four are present, leave it unresolved",
|
|
903
|
+
"Do not report `pass` while claiming that the debt",
|
|
904
|
+
"Use a focused diagram only when it answers a named ownership or dependency question",
|
|
905
|
+
"normalized owners in `quality.md`",
|
|
906
|
+
]) {
|
|
907
|
+
if (!brownfieldSkill.includes(required)) failures.push(`brownfield-analysis architecture guidance missing: ${required}`);
|
|
908
|
+
}
|
|
909
|
+
if (!gateTransitionContract.includes("conditional Architecture Impact under `brownfield-analysis`")) {
|
|
910
|
+
failures.push("gate-transition must keep Architecture Impact inside Brownfield Review");
|
|
911
|
+
}
|
|
437
912
|
const codexPlugin = isFile(codexPluginPath) ? readJson(codexPluginPath, "Codex plugin manifest") : null;
|
|
438
913
|
const claudePlugin = isFile(claudePluginPath) ? readJson(claudePluginPath, "Claude plugin manifest") : null;
|
|
439
914
|
const installationProvenance = isFile(installationProvenancePath) ? readJson(installationProvenancePath, "AGDF installation provenance") : null;
|
|
@@ -449,59 +924,73 @@ if (!runtimeContract.includes("`attempted_not_applied`") || !runtimeContract.inc
|
|
|
449
924
|
failures.push("Runtime Contract must define visible fallback attempt outcomes");
|
|
450
925
|
}
|
|
451
926
|
if (!runtimeContract.includes("### Interaction Locale Contract")
|
|
452
|
-
|| !runtimeContract.includes("
|
|
927
|
+
|| !runtimeContract.includes("a valid unsupported requested locale must resolve to English as a complete unit")
|
|
928
|
+
|| !runtimeContract.includes("invalid external dispatch input fails before presentation")
|
|
453
929
|
|| !runtimeContract.includes("an incomplete or invalid registry fails closed")) {
|
|
454
|
-
failures.push("Runtime Contract must
|
|
455
|
-
}
|
|
456
|
-
|
|
457
|
-
const
|
|
458
|
-
|
|
459
|
-
"
|
|
460
|
-
"
|
|
461
|
-
"
|
|
462
|
-
"
|
|
463
|
-
"
|
|
464
|
-
"
|
|
465
|
-
"
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
if (!
|
|
471
|
-
failures.push("gate-check must load the focused interaction contract");
|
|
472
|
-
}
|
|
473
|
-
for (const required of gateCheckOperationalBoundaries) {
|
|
474
|
-
if (!gateCheckSkill.includes(required)) failures.push(`gate-check operational boundary missing: ${required}`);
|
|
475
|
-
}
|
|
476
|
-
for (const duplicatedPolicy of ["Surface behavior:", "Make exactly one native-attempt", "Interaction Locale Contract", "decorated_label_only"]) {
|
|
477
|
-
if (gateCheckSkill.includes(duplicatedPolicy)) failures.push(`gate-check must not duplicate normative interaction policy: ${duplicatedPolicy}`);
|
|
478
|
-
}
|
|
479
|
-
if (!gateCheckSkill.includes("`status_presentation.markdown` verbatim")) {
|
|
480
|
-
failures.push("gate-check must consume the deterministic operational status presentation");
|
|
481
|
-
}
|
|
482
|
-
if (gateCheckSkill.includes("| Run status | Value |")) {
|
|
483
|
-
failures.push("gate-check must not maintain a second operational status-card template");
|
|
484
|
-
}
|
|
485
|
-
if (!gateCheckSkill.includes("## Repository Activation Diagnosis")) {
|
|
486
|
-
failures.push("gate-check must own the repository activation diagnosis section");
|
|
930
|
+
failures.push("Runtime Contract must distinguish valid unsupported, missing or invalid dispatch, and invalid registry locale handling");
|
|
931
|
+
}
|
|
932
|
+
|
|
933
|
+
const taskTargetContractProse = normalizeProse(taskTargetContract);
|
|
934
|
+
for (const targetBoundary of [
|
|
935
|
+
"## Direct Skill Invocation Preflight",
|
|
936
|
+
"before skill-specific input",
|
|
937
|
+
"`task_target_orientation.markdown` verbatim",
|
|
938
|
+
"request only the normalized `next_action`",
|
|
939
|
+
"terminal pre-decision outcome",
|
|
940
|
+
"do not\n inspect repository control state",
|
|
941
|
+
"use only its `governance_target`",
|
|
942
|
+
"subsequent skill-owned chat output must not mix locale packs",
|
|
943
|
+
"target-check --json --language <current-chat-language>",
|
|
944
|
+
"Do not install or resolve a remote",
|
|
945
|
+
]) {
|
|
946
|
+
if (!taskTargetContractProse.includes(normalizeProse(targetBoundary))) failures.push(`shared direct skill target-preflight boundary missing: ${targetBoundary}`);
|
|
487
947
|
}
|
|
488
|
-
|
|
489
|
-
|
|
948
|
+
for (const activationBoundary of [
|
|
949
|
+
"After positive Request Activation, resolve the user's primary work target",
|
|
950
|
+
"Silent Request Activation abstention and targetless catalog routes do not invoke this contract.",
|
|
951
|
+
"After the already-loaded Request Activation guard has positively selected a direct, target-bound skill route",
|
|
952
|
+
"Automatic selection alone is not positive activation; on silent abstention this preflight is not run.",
|
|
953
|
+
]) {
|
|
954
|
+
if (!taskTargetContractProse.includes(activationBoundary)) {
|
|
955
|
+
failures.push(`task-target-resolution must remain downstream of positive Request Activation: ${activationBoundary}`);
|
|
956
|
+
}
|
|
490
957
|
}
|
|
491
|
-
|
|
492
|
-
|
|
958
|
+
|
|
959
|
+
const modesContractProse = normalizeProse(modesContract);
|
|
960
|
+
for (const activationBoundary of [
|
|
961
|
+
"Request Activation precedes Mode Selection.",
|
|
962
|
+
"read-only handling and are not Quick Tasks.",
|
|
963
|
+
"Quick Task is a downstream process choice for an actual delivery effect or explicit AGDF operation; it is never an activation fallback.",
|
|
964
|
+
"Read-only questions, reviews and diagnosis without a requested delivery effect remain outside AGDF.",
|
|
965
|
+
]) {
|
|
966
|
+
if (!modesContractProse.includes(activationBoundary)) {
|
|
967
|
+
failures.push(`modes contract must keep ordinary read-only work outside Quick Task: ${activationBoundary}`);
|
|
968
|
+
}
|
|
493
969
|
}
|
|
494
|
-
if (
|
|
495
|
-
failures.push("
|
|
970
|
+
if (modesContractProse.includes("| Quick Task Mode | small questions, reviews, debugging")) {
|
|
971
|
+
failures.push("modes contract must not classify ordinary questions or reviews as Quick Task");
|
|
496
972
|
}
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
"
|
|
501
|
-
"
|
|
502
|
-
"
|
|
973
|
+
|
|
974
|
+
const interactionContractProse = normalizeProse(interactionContract);
|
|
975
|
+
for (const activationBoundary of [
|
|
976
|
+
"Silent Request Activation abstention for an ordinary read-only request renders no AGDF orientation, status or other AGDF-visible text.",
|
|
977
|
+
"Only after positive activation may a downstream AGDF owner use the localized `primary.readOnlyOrientationDescription` sentence",
|
|
978
|
+
"After positive Request Activation selects a target-bound route, render the target orientation",
|
|
503
979
|
]) {
|
|
504
|
-
if (
|
|
980
|
+
if (!interactionContractProse.includes(activationBoundary)) {
|
|
981
|
+
failures.push(`interaction contract must keep ordinary read-only handling silent and pre-target: ${activationBoundary}`);
|
|
982
|
+
}
|
|
983
|
+
}
|
|
984
|
+
const controlSetupBoundary = interactionContract.indexOf("`control_setup` is a non-gate envelope");
|
|
985
|
+
const gateApprovalPresentationBoundary = interactionContract.indexOf("Before presenting `gate_approval`");
|
|
986
|
+
if (controlSetupBoundary < 0
|
|
987
|
+
|| gateApprovalPresentationBoundary < 0
|
|
988
|
+
|| controlSetupBoundary >= gateApprovalPresentationBoundary
|
|
989
|
+
|| !interactionContractProse.includes("before automatic run creation, automatic UR persistence or any gate approval can occur.")
|
|
990
|
+
|| !interactionContractProse.includes("After successful setup, the agent continues the same delivery intake by persisting the already reviewed canonical run and revision-stable UR without a second setup prompt.")
|
|
991
|
+
|| !interactionContractProse.includes("For the explicit standalone `lifecycle.control.init` operation, setup remains scaffold-only and creates neither a run nor UR.")
|
|
992
|
+
|| !interactionContractProse.includes("It renders no approval value, native gate control or synthetic selected run.")) {
|
|
993
|
+
failures.push("interaction contract must define non-authorizing control_setup before any gate approval presentation");
|
|
505
994
|
}
|
|
506
995
|
if (!runtimeContract.includes("### Repository Activation Diagnosis Boundary")) {
|
|
507
996
|
failures.push("control-scaffold contract must own the repository activation diagnosis boundary");
|
|
@@ -522,20 +1011,14 @@ if (!agentRouterContent.includes("## Task Target Resolution")
|
|
|
522
1011
|
|| agentRouterContent.indexOf("## Task Target Resolution") > agentRouterContent.indexOf("## Mode Selection")) {
|
|
523
1012
|
failures.push("agent router must resolve the task target before Mode Selection");
|
|
524
1013
|
}
|
|
525
|
-
if (!gateCheckSkill.includes("task_target_orientation.markdown` verbatim")) {
|
|
526
|
-
failures.push("gate-check must consume the canonical task target orientation verbatim");
|
|
527
|
-
}
|
|
528
1014
|
if (gateCheckSkill.includes("## Task Target Orientation Template")
|
|
529
1015
|
|| gateCheckSkill.includes("| Primary target | Governance target | Evidence sources |")) {
|
|
530
1016
|
failures.push("gate-check must not maintain a skill-local task target orientation template");
|
|
531
1017
|
}
|
|
532
|
-
if (!gateCheckSkill.includes("scope_classification.markdown` verbatim")) {
|
|
533
|
-
failures.push("gate-check must consume the canonical scope classification projection verbatim");
|
|
534
|
-
}
|
|
535
1018
|
if (gateCheckSkill.includes("## Scope Classification Card Template") || gateCheckSkill.includes("| Classification | Mode | Boundary |")) {
|
|
536
1019
|
failures.push("gate-check must not maintain a skill-local scope classification card template");
|
|
537
1020
|
}
|
|
538
|
-
const interactionPresentationPath = join(pluginRoot, "
|
|
1021
|
+
const interactionPresentationPath = sourceMode ? join(repoRoot, "packages", "core", "lib", "interaction-presentation.js") : join(pluginRoot, "runtime", "create-agdf", "runtime", "core", "lib", "interaction-presentation.js");
|
|
539
1022
|
if (sourceMode && isFile(interactionPresentationPath)) {
|
|
540
1023
|
const interactionPresentation = read(interactionPresentationPath);
|
|
541
1024
|
if (!interactionPresentation.includes("export function renderScopeClassificationCard")) {
|
|
@@ -561,6 +1044,7 @@ for (const locale of ["en", "de"]) {
|
|
|
561
1044
|
if (!pack?.taskTargetResolution?.title
|
|
562
1045
|
|| !pack?.taskTargetResolution?.primaryTarget
|
|
563
1046
|
|| !pack?.taskTargetResolution?.reasonCodes?.target_content_mismatch
|
|
1047
|
+
|| !pack?.taskTargetResolution?.nextActions?.no_reliable_target
|
|
564
1048
|
|| !pack?.taskTargetResolution?.nextAction) {
|
|
565
1049
|
failures.push(`Interaction locale ${locale} missing taskTargetResolution section keys`);
|
|
566
1050
|
}
|
|
@@ -636,8 +1120,8 @@ if (pluginDefinition) {
|
|
|
636
1120
|
if (pluginDefinition.codex?.logo !== "./assets/agdf-logo.svg") failures.push("canonical AGDF plugin definition Codex logo must point to ./assets/agdf-logo.svg");
|
|
637
1121
|
if (pluginDefinition.claude?.agentRouter !== "meta/agdf-agent-router.md") failures.push("canonical AGDF plugin definition Claude agent router must point to meta/agdf-agent-router.md");
|
|
638
1122
|
if (pluginDefinition.copilot?.skillPrefix !== "agdf-") failures.push("canonical AGDF plugin definition Copilot skill prefix must be agdf-");
|
|
639
|
-
if (pluginDefinition.copilot?.pluginManifest !== "plugin.json" || pluginDefinition.copilot?.skills !== "
|
|
640
|
-
failures.push("canonical AGDF plugin definition Copilot paths must
|
|
1123
|
+
if (pluginDefinition.copilot?.pluginManifest !== "plugin.json" || pluginDefinition.copilot?.skills !== "skills/" || pluginDefinition.copilot?.hooks !== "com.github.copilot/hooks/hooks.json") {
|
|
1124
|
+
failures.push("canonical AGDF plugin definition Copilot paths must follow Agent Plugins 1.0 component discovery");
|
|
641
1125
|
}
|
|
642
1126
|
if (pluginDefinition.opencode?.skillPrefix !== "agdf-") failures.push("canonical AGDF plugin definition OpenCode skill prefix must be agdf-");
|
|
643
1127
|
if (pluginDefinition.opencode?.globalSkillPrefix !== "agdf-global-") failures.push("canonical AGDF plugin definition OpenCode global skill prefix must be agdf-global-");
|
|
@@ -674,10 +1158,34 @@ if (pluginDefinition) {
|
|
|
674
1158
|
if (!Array.isArray(pluginDefinition.skillSet) || pluginDefinition.skillSet.length === 0) {
|
|
675
1159
|
failures.push("canonical AGDF plugin definition must declare the workflow skill set");
|
|
676
1160
|
} else {
|
|
1161
|
+
const skillSlugs = new Set();
|
|
677
1162
|
for (const skill of pluginDefinition.skillSet) {
|
|
678
|
-
if (!skill?.slug
|
|
679
|
-
|
|
680
|
-
if (
|
|
1163
|
+
if (!skillSlugPattern.test(skill?.slug ?? "")) {
|
|
1164
|
+
failures.push(`canonical AGDF plugin definition contains invalid skill slug: ${skill?.slug ?? "<unknown>"}`);
|
|
1165
|
+
} else if (skillSlugs.has(skill.slug)) {
|
|
1166
|
+
failures.push(`canonical AGDF plugin definition contains duplicate skill slug: ${skill.slug}`);
|
|
1167
|
+
} else {
|
|
1168
|
+
skillSlugs.add(skill.slug);
|
|
1169
|
+
}
|
|
1170
|
+
if (typeof skill?.useFor !== "string" || !skill.useFor.trim() || skill.useFor.trim() !== skill.useFor || /[\r\n]/.test(skill.useFor)) {
|
|
1171
|
+
failures.push(`canonical AGDF plugin definition skill ${skill?.slug ?? "<unknown>"} must declare single-line useFor`);
|
|
1172
|
+
}
|
|
1173
|
+
if (typeof skill?.boundary !== "string" || !skill.boundary.trim() || skill.boundary.trim() !== skill.boundary || /[\r\n]/.test(skill.boundary)) {
|
|
1174
|
+
failures.push(`canonical AGDF plugin definition skill ${skill?.slug ?? "<unknown>"} must declare single-line boundary`);
|
|
1175
|
+
}
|
|
1176
|
+
if (typeof skill?.discovery !== "string" || !skill.discovery.trim() || skill.discovery.trim() !== skill.discovery || /[\r\n]/.test(skill.discovery)) {
|
|
1177
|
+
failures.push(`canonical AGDF plugin definition skill ${skill?.slug ?? "<unknown>"} must declare single-line discovery`);
|
|
1178
|
+
}
|
|
1179
|
+
if (!["deterministic_control", "judgement_required"].includes(skill?.dispatch?.mode)) failures.push(`canonical AGDF plugin definition skill ${skill?.slug ?? "<unknown>"} must declare a valid dispatch mode`);
|
|
1180
|
+
if (skill?.dispatch?.requiresControlSnapshot !== true) failures.push(`canonical AGDF plugin definition skill ${skill?.slug ?? "<unknown>"} must require the canonical control snapshot`);
|
|
1181
|
+
if (skill?.slug === "gate-check"
|
|
1182
|
+
&& (skill?.dispatch?.mode !== "deterministic_control" || skill?.dispatch?.deterministicCommand !== "gate-check")) {
|
|
1183
|
+
failures.push("gate-check must map deterministic_control to its existing deterministic command");
|
|
1184
|
+
}
|
|
1185
|
+
if (skill?.slug !== "gate-check"
|
|
1186
|
+
&& (skill?.dispatch?.mode !== "judgement_required" || skill?.dispatch?.deterministicCommand)) {
|
|
1187
|
+
failures.push(`judgement skill ${skill?.slug ?? "<unknown>"} must use judgement_required without a deterministic command`);
|
|
1188
|
+
}
|
|
681
1189
|
}
|
|
682
1190
|
}
|
|
683
1191
|
const expectedProfiles = {
|
|
@@ -694,6 +1202,7 @@ if (pluginDefinition) {
|
|
|
694
1202
|
failures.push("canonical AGDF plugin definition distribution profiles must match the runtime integrity contract");
|
|
695
1203
|
}
|
|
696
1204
|
expectedSkills = (pluginDefinition.skillSet ?? [])
|
|
1205
|
+
.filter((skill) => skillSlugPattern.test(skill?.slug ?? ""))
|
|
697
1206
|
.map((skill) => `${pluginDefinition.codex?.skillPrefix ?? ""}${skill?.slug ?? ""}`)
|
|
698
1207
|
.sort();
|
|
699
1208
|
}
|
|
@@ -752,7 +1261,7 @@ if (isFile(pagesSiteDataPath)) {
|
|
|
752
1261
|
const pagesSiteData = read(pagesSiteDataPath);
|
|
753
1262
|
for (const canonicalDestination of [
|
|
754
1263
|
"docs/handbook",
|
|
755
|
-
"
|
|
1264
|
+
"plugins/agdf/meta/contracts",
|
|
756
1265
|
"INSTALL.md",
|
|
757
1266
|
]) {
|
|
758
1267
|
if (!pagesSiteData.includes(canonicalDestination)) {
|
|
@@ -764,6 +1273,11 @@ if (isFile(pagesSiteDataPath)) {
|
|
|
764
1273
|
if (codexPlugin && pluginDefinition) {
|
|
765
1274
|
if (codexPlugin.name !== pluginDefinition.id) failures.push("Codex plugin manifest name must match canonical AGDF plugin definition");
|
|
766
1275
|
const expectedInstallVersion = installationProvenance?.codex_install_version ?? pluginDefinition.version;
|
|
1276
|
+
const portablePlugin = isFile(copilotPluginPath) ? readJson(copilotPluginPath, "Root plugin manifest") : null;
|
|
1277
|
+
if (portablePlugin?.$schema === "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json"
|
|
1278
|
+
&& portablePlugin.version !== expectedInstallVersion) {
|
|
1279
|
+
failures.push("Portable plugin manifest version must match the owned Codex installation version");
|
|
1280
|
+
}
|
|
767
1281
|
const validInstalledProjection = !sourceMode
|
|
768
1282
|
&& installationProvenance?.schema_version === 1
|
|
769
1283
|
&& installationProvenance?.owner === "create-agdf"
|
|
@@ -785,6 +1299,20 @@ if (codexPlugin && pluginDefinition) {
|
|
|
785
1299
|
if (JSON.stringify(codexPlugin.keywords) !== JSON.stringify(pluginDefinition.keywords)) failures.push("Codex plugin manifest keywords must match canonical AGDF plugin definition");
|
|
786
1300
|
if (codexPlugin.author?.name !== pluginDefinition.author?.name || codexPlugin.author?.url !== pluginDefinition.author?.url) failures.push("Codex plugin manifest author must match canonical AGDF plugin definition");
|
|
787
1301
|
if (codexPlugin.skills !== pluginDefinition.codex?.skills) failures.push("Codex plugin manifest must point skills to canonical AGDF skills path");
|
|
1302
|
+
// Claude auto-loads .mcp.json; portable Codex uses mcp.json, Claude its declared file under mcp/.
|
|
1303
|
+
if (isFile(join(pluginRoot, ".mcp.json"))) failures.push("plugin root must not contain .mcp.json; Codex uses mcp.json and Claude its declared file");
|
|
1304
|
+
if (sourceMode) {
|
|
1305
|
+
if (codexPlugin.mcpServers !== undefined) failures.push("source Codex plugin manifest must not declare MCP servers");
|
|
1306
|
+
} else {
|
|
1307
|
+
const codexMcpPath = join(pluginRoot, "mcp.json");
|
|
1308
|
+
if (codexPlugin.mcpServers !== "./mcp.json") failures.push("runtime Codex plugin manifest must declare the plugin-local MCP server file");
|
|
1309
|
+
if (!isFile(codexMcpPath) || !codexMcpShape(readFileSync(codexMcpPath, "utf8"))) {
|
|
1310
|
+
failures.push("runtime Codex MCP config must start only the plugin-local AGDF MCP launcher with an absolute data root");
|
|
1311
|
+
} else if (readJson(codexMcpPath, 'Codex MCP config').mcpServers?.['agdf-cockpit']
|
|
1312
|
+
&& ['cockpit.html', 'manifest.json'].some(file => !isFile(join(pluginRoot, 'mcp/server/ui', file)))) {
|
|
1313
|
+
failures.push('runtime Codex Cockpit declaration requires its bundled UI');
|
|
1314
|
+
}
|
|
1315
|
+
}
|
|
788
1316
|
if (codexPlugin.interface?.displayName !== pluginDefinition.displayName) failures.push("Codex plugin display name must match canonical AGDF plugin definition");
|
|
789
1317
|
if (codexPlugin.interface?.shortDescription !== pluginDefinition.description) failures.push("Codex plugin short description must match canonical AGDF plugin description");
|
|
790
1318
|
if (codexPlugin.interface?.longDescription !== pluginDefinition.longDescription) failures.push("Codex plugin long description must match canonical AGDF plugin definition");
|
|
@@ -799,7 +1327,7 @@ if (codexPlugin && pluginDefinition) {
|
|
|
799
1327
|
if (codexPlugin.interface?.brandColor !== pluginDefinition.brandColor) failures.push("Codex plugin brand color must match canonical AGDF plugin definition");
|
|
800
1328
|
if (JSON.stringify(codexPlugin.interface?.capabilities) !== JSON.stringify(pluginDefinition.codex?.capabilities)) failures.push("Codex plugin capabilities must match canonical AGDF plugin definition");
|
|
801
1329
|
if (JSON.stringify(codexPlugin.interface?.defaultPrompt) !== JSON.stringify(pluginDefinition.codex?.defaultPrompt)) failures.push("Codex plugin default prompts must match canonical AGDF plugin definition");
|
|
802
|
-
if (Object.hasOwn(codexPlugin, "hooks")) failures.push("Codex
|
|
1330
|
+
if (sourceMode ? Object.hasOwn(codexPlugin, "hooks") : codexPlugin.hooks !== "./hooks/hooks.json") failures.push("Codex hook declaration must match source/runtime profile");
|
|
803
1331
|
}
|
|
804
1332
|
|
|
805
1333
|
if (claudePlugin && pluginDefinition) {
|
|
@@ -811,6 +1339,23 @@ if (claudePlugin && pluginDefinition) {
|
|
|
811
1339
|
if (claudePlugin.license !== pluginDefinition.license) failures.push("Claude plugin manifest license must match canonical AGDF plugin definition");
|
|
812
1340
|
if (JSON.stringify(claudePlugin.keywords) !== JSON.stringify(pluginDefinition.keywords)) failures.push("Claude plugin manifest keywords must match canonical AGDF plugin definition");
|
|
813
1341
|
if (claudePlugin.author?.name !== pluginDefinition.author?.name || claudePlugin.author?.url !== pluginDefinition.author?.url) failures.push("Claude plugin manifest author must match canonical AGDF plugin definition");
|
|
1342
|
+
// The runtime plugin owns the Claude MCP registration so `claude plugin uninstall` removes it; the
|
|
1343
|
+
// source plugin ships no runtime and therefore declares no server.
|
|
1344
|
+
if (sourceMode) {
|
|
1345
|
+
if (claudePlugin.mcpServers !== undefined) failures.push("source Claude plugin manifest must not declare MCP servers");
|
|
1346
|
+
} else {
|
|
1347
|
+
const mcpConfigPath = join(pluginRoot, "mcp", "claude.mcp.json");
|
|
1348
|
+
const expectedMcpConfig = { mcpServers: { agdf: { type: "stdio", command: "node", args: ["${CLAUDE_PLUGIN_ROOT}/mcp/agdf-mcp-launch.js"] } } };
|
|
1349
|
+
if (claudePlugin.mcpServers !== pluginDefinition.claude?.mcpServers || pluginDefinition.claude?.mcpServers !== "./mcp/claude.mcp.json") {
|
|
1350
|
+
failures.push("runtime Claude plugin manifest must declare the canonical plugin-local MCP server file");
|
|
1351
|
+
}
|
|
1352
|
+
if (!isFile(mcpConfigPath) || JSON.stringify(readJson(mcpConfigPath, "Claude MCP config")) !== JSON.stringify(expectedMcpConfig)) {
|
|
1353
|
+
failures.push("runtime Claude MCP config must start only the plugin-local AGDF MCP launcher");
|
|
1354
|
+
}
|
|
1355
|
+
for (const required of ["mcp/agdf-mcp-launch.js", "mcp/sdk/package.json", "mcp/sdk/package-lock.json", "mcp/sdk/expected-sdk.json", "mcp/server/package.json", "mcp/server/bin/agdf-mcp.js", "runtime/create-agdf/lib/mcp-lifecycle/plugin-runtime.js"]) {
|
|
1356
|
+
assertFile(join(pluginRoot, required), `plugin-local Claude MCP runtime file ${required}`);
|
|
1357
|
+
}
|
|
1358
|
+
}
|
|
814
1359
|
}
|
|
815
1360
|
|
|
816
1361
|
if (createAgdfPackage && pluginDefinition && createAgdfPackage.version !== pluginDefinition.version) {
|
|
@@ -843,25 +1388,211 @@ if (isFile(syncPackageAssetsPath)) {
|
|
|
843
1388
|
if (!syncPackageAssets.includes("toOpenCodeInstructionsRouter")) {
|
|
844
1389
|
failures.push("OpenCode instructions must be rendered from the canonical AGDF router");
|
|
845
1390
|
}
|
|
1391
|
+
if (!syncPackageAssets.includes("getRuntimeContractModulePaths(pluginDefinition)")
|
|
1392
|
+
|| /const contractModules\s*=\s*\[/.test(syncPackageAssets)) {
|
|
1393
|
+
failures.push("create-agdf package asset sync must consume the definition-owned runtimeContract inventory");
|
|
1394
|
+
}
|
|
1395
|
+
const packageSyncEntry = syncPackageAssets.indexOf("export function syncPackageAssets");
|
|
1396
|
+
const projectionCheck = syncPackageAssets.indexOf("syncRequestActivationProjections({ repoRoot, mode: \"check\" })", packageSyncEntry);
|
|
1397
|
+
const firstPackageMutation = [
|
|
1398
|
+
syncPackageAssets.indexOf("write(join(sourcePluginRoot", packageSyncEntry),
|
|
1399
|
+
syncPackageAssets.indexOf("rmSync(", packageSyncEntry),
|
|
1400
|
+
syncPackageAssets.indexOf("syncDirectory(", packageSyncEntry),
|
|
1401
|
+
].filter((position) => position >= 0).sort((left, right) => left - right)[0] ?? -1;
|
|
1402
|
+
if (packageSyncEntry < 0 || projectionCheck < packageSyncEntry
|
|
1403
|
+
|| (firstPackageMutation >= 0 && projectionCheck > firstPackageMutation)) {
|
|
1404
|
+
failures.push("create-agdf package asset sync must pass request-activation projection check before every mutation");
|
|
1405
|
+
}
|
|
1406
|
+
if (!syncPackageAssets.includes('"## Surface Convention",\n REQUEST_ACTIVATION_MARKERS.guardStart')
|
|
1407
|
+
|| syncPackageAssets.includes('replaceUniqueRouterSection(\n transformed,\n "## Surface Convention",\n "## Request Activation"')
|
|
1408
|
+
|| syncPackageAssets.includes("(?=## Mode Selection)")) {
|
|
1409
|
+
failures.push("OpenCode router transform must end Surface Convention replacement before the exact Request Activation guard marker");
|
|
1410
|
+
}
|
|
1411
|
+
if (!syncPackageAssets.includes("hooks: {\n sessionStart: [{")) {
|
|
1412
|
+
failures.push("Copilot package projection must generate the sessionStart-only hook surface");
|
|
1413
|
+
}
|
|
846
1414
|
}
|
|
847
1415
|
|
|
848
1416
|
if (isFile(createAgdfOpenCodeInstallerPath)) {
|
|
849
1417
|
const createAgdfOpenCodeInstaller = read(createAgdfOpenCodeInstallerPath);
|
|
850
|
-
if (!createAgdfOpenCodeInstaller.includes("
|
|
1418
|
+
if (!createAgdfOpenCodeInstaller.includes("globalOpenCodeInstructionsOwnershipMarker")
|
|
1419
|
+
|| !createAgdfOpenCodeInstaller.includes("globalOpenCodeSkillOwnershipMarker")
|
|
1420
|
+
|| !createAgdfOpenCodeInstaller.includes("toGlobalOpenCodeInstructionsBootstrap")
|
|
1421
|
+
|| !createAgdfOpenCodeInstaller.includes("insertRepositoryActivationGuard")) {
|
|
851
1422
|
failures.push("OpenCode global native-surface ownership and fail-closed boundary must remain in the canonical installer path");
|
|
852
1423
|
}
|
|
1424
|
+
if (createAgdfOpenCodeInstaller.includes("tool.execute.before")) {
|
|
1425
|
+
failures.push("OpenCode installer must not require a pre-tool request-classifier hook");
|
|
1426
|
+
}
|
|
1427
|
+
}
|
|
1428
|
+
|
|
1429
|
+
if (isFile(syncPluginRuntimePath)) {
|
|
1430
|
+
const syncPluginRuntime = read(syncPluginRuntimePath);
|
|
1431
|
+
for (const required of [
|
|
1432
|
+
"const activationKernel = requestActivationKernel()",
|
|
1433
|
+
"requestActivation: ${JSON.stringify({",
|
|
1434
|
+
"owner: activationKernel.identity.owner",
|
|
1435
|
+
"policy_version: activationKernel.identity.policy_version",
|
|
1436
|
+
"guard_fingerprint: activationKernel.identity.guard_fingerprint",
|
|
1437
|
+
"routeSource:",
|
|
1438
|
+
"../meta/contracts/request-activation.md",
|
|
1439
|
+
"../skills/contracts/request-activation.md",
|
|
1440
|
+
"const bindingContext =",
|
|
1441
|
+
"AGDF dispatcher binding:",
|
|
1442
|
+
"const baseContext = [activationKernel, bindingContext].join",
|
|
1443
|
+
"const additionalContext = [baseContext",
|
|
1444
|
+
"AGDF runtime facts:",
|
|
1445
|
+
"createDispatchBinding",
|
|
1446
|
+
]) {
|
|
1447
|
+
if (!syncPluginRuntime.includes(required)) {
|
|
1448
|
+
failures.push(`plugin runtime sync missing compact kernel/binding/runtime-facts structure: ${required}`);
|
|
1449
|
+
}
|
|
1450
|
+
}
|
|
1451
|
+
if (syncPluginRuntime.includes("activation_trigger") || syncPluginRuntime.includes("raw_prompt")) {
|
|
1452
|
+
failures.push("plugin runtime sync must not retain the broad activation trigger or raw request transport");
|
|
1453
|
+
}
|
|
853
1454
|
}
|
|
854
1455
|
|
|
855
|
-
const openCodeNpmPluginPath = sourceMode ? join(repoRoot, "create-agdf", "opencode-plugin.js") : null;
|
|
856
1456
|
if (sourceMode && isFile(openCodeNpmPluginPath)) {
|
|
857
1457
|
const openCodeNpmPlugin = read(openCodeNpmPluginPath);
|
|
858
1458
|
if (!openCodeNpmPlugin.includes("experimental.session.compacting") || !openCodeNpmPlugin.includes("AGDF_CONTROL_DIR")) {
|
|
859
1459
|
failures.push("OpenCode npm plugin must preserve AGDF runtime context hooks");
|
|
860
1460
|
}
|
|
1461
|
+
for (const required of [
|
|
1462
|
+
'identity?.owner !== "request_activation_contract"',
|
|
1463
|
+
'identity?.path !== "meta/contracts/request-activation.md"',
|
|
1464
|
+
"identity?.policy_version !== 1",
|
|
1465
|
+
"fingerprint mismatch",
|
|
1466
|
+
"const activeContext = () =>",
|
|
1467
|
+
"requestActivation: {",
|
|
1468
|
+
"owner: activationIdentity.owner",
|
|
1469
|
+
"policy_version: activationIdentity.policy_version",
|
|
1470
|
+
"guard_fingerprint: activationIdentity.guard_fingerprint",
|
|
1471
|
+
"createDispatchBinding",
|
|
1472
|
+
"if (!activation().active) return",
|
|
1473
|
+
]) {
|
|
1474
|
+
if (!openCodeNpmPlugin.includes(required)) {
|
|
1475
|
+
failures.push(`OpenCode npm plugin missing compact active-context boundary: ${required}`);
|
|
1476
|
+
}
|
|
1477
|
+
}
|
|
1478
|
+
if (openCodeNpmPlugin.includes("activation_trigger")
|
|
1479
|
+
|| openCodeNpmPlugin.includes("raw_prompt")
|
|
1480
|
+
|| openCodeNpmPlugin.includes("tool.execute.before")) {
|
|
1481
|
+
failures.push("OpenCode npm plugin must not retain a broad activation trigger, raw request transport or pre-tool classifier hook");
|
|
1482
|
+
}
|
|
1483
|
+
if (!openCodeNpmPlugin.includes("if (validatorVersion && validatorVersion !== packageJson.version)")
|
|
1484
|
+
|| countOccurrences(openCodeNpmPlugin, "await safeToast(") !== 1) {
|
|
1485
|
+
failures.push("OpenCode npm plugin must reserve its only session-created toast for version drift");
|
|
1486
|
+
}
|
|
1487
|
+
|
|
1488
|
+
try {
|
|
1489
|
+
const expectedIdentity = {
|
|
1490
|
+
owner: "request_activation_contract",
|
|
1491
|
+
path: "meta/contracts/request-activation.md",
|
|
1492
|
+
policy_version: 1,
|
|
1493
|
+
guard_fingerprint: canonicalGuardFingerprint,
|
|
1494
|
+
};
|
|
1495
|
+
const { AGDFPlugin } = await import(pathToFileURL(openCodeNpmPluginPath).href);
|
|
1496
|
+
const observedToasts = [];
|
|
1497
|
+
const hooks = await AGDFPlugin({
|
|
1498
|
+
directory: join(repoRoot, ".agdf-runtime-integrity-inactive"),
|
|
1499
|
+
client: {
|
|
1500
|
+
app: { async log() { return {}; } },
|
|
1501
|
+
tui: { async showToast({ body }) { observedToasts.push(body); } },
|
|
1502
|
+
},
|
|
1503
|
+
}, {
|
|
1504
|
+
requestActivationIdentity: expectedIdentity,
|
|
1505
|
+
executeAutomaticRuntimeCheck: () => ({ effective: false, reason: "integrity_fixture", ran: false, output: "" }),
|
|
1506
|
+
validatorPath: join(repoRoot, "packages", "cli", "bin", "agdf-validator.js"),
|
|
1507
|
+
});
|
|
1508
|
+
const expectedHookKeys = [
|
|
1509
|
+
"event",
|
|
1510
|
+
"experimental.chat.system.transform",
|
|
1511
|
+
"experimental.session.compacting",
|
|
1512
|
+
"shell.env",
|
|
1513
|
+
];
|
|
1514
|
+
if (JSON.stringify(Object.keys(hooks).sort()) !== JSON.stringify(expectedHookKeys.sort())) {
|
|
1515
|
+
failures.push("OpenCode npm plugin hook inventory must remain exact and exclude tool.execute.before");
|
|
1516
|
+
}
|
|
1517
|
+
await hooks.event({ event: { type: "session.created" } });
|
|
1518
|
+
if (observedToasts.length !== 0) {
|
|
1519
|
+
failures.push("inactive OpenCode session creation must remain log-only and emit no toast");
|
|
1520
|
+
}
|
|
1521
|
+
const inactiveSystemOutput = { system: [] };
|
|
1522
|
+
await hooks["experimental.chat.system.transform"]({}, inactiveSystemOutput);
|
|
1523
|
+
if (inactiveSystemOutput.system.length !== 0) {
|
|
1524
|
+
failures.push("inactive OpenCode system transform must emit zero bytes");
|
|
1525
|
+
}
|
|
1526
|
+
const inactiveCompactionOutput = { context: [] };
|
|
1527
|
+
await hooks["experimental.session.compacting"]({}, inactiveCompactionOutput);
|
|
1528
|
+
if (inactiveCompactionOutput.context.length !== 0) {
|
|
1529
|
+
failures.push("inactive OpenCode compaction must emit zero bytes");
|
|
1530
|
+
}
|
|
1531
|
+
|
|
1532
|
+
const activeHooks = await AGDFPlugin({
|
|
1533
|
+
directory: repoRoot,
|
|
1534
|
+
client: {
|
|
1535
|
+
app: { async log() { return {}; } },
|
|
1536
|
+
tui: { async showToast() { return {}; } },
|
|
1537
|
+
},
|
|
1538
|
+
}, {
|
|
1539
|
+
requestActivationIdentity: expectedIdentity,
|
|
1540
|
+
executeAutomaticRuntimeCheck: () => ({ effective: false, reason: "integrity_fixture", ran: false, output: "" }),
|
|
1541
|
+
validatorPath: join(repoRoot, "packages", "cli", "bin", "agdf-validator.js"),
|
|
1542
|
+
});
|
|
1543
|
+
const activeSystemOutput = { system: [] };
|
|
1544
|
+
await activeHooks["experimental.chat.system.transform"]({}, activeSystemOutput);
|
|
1545
|
+
await activeHooks["experimental.chat.system.transform"]({}, activeSystemOutput);
|
|
1546
|
+
const activeCompactionOutput = { context: [] };
|
|
1547
|
+
await activeHooks["experimental.session.compacting"]({}, activeCompactionOutput);
|
|
1548
|
+
await activeHooks["experimental.session.compacting"]({}, activeCompactionOutput);
|
|
1549
|
+
const eagerPath = join(repoRoot, "packages", "cli", "generated", ".opencode", pluginDefinition.opencode.instructionsFileName);
|
|
1550
|
+
if (activeSystemOutput.system.length !== 1 || activeCompactionOutput.context.length !== 1 || !isFile(eagerPath)) {
|
|
1551
|
+
failures.push("active OpenCode hooks must expose one idempotent dynamic context and one kernel-only compaction block");
|
|
1552
|
+
} else {
|
|
1553
|
+
const activeContext = activeSystemOutput.system[0];
|
|
1554
|
+
const bindingLine = activeContext.split("\n").find((line) => line.startsWith("AGDF dispatcher binding: "));
|
|
1555
|
+
const binding = JSON.parse(bindingLine.slice("AGDF dispatcher binding: ".length));
|
|
1556
|
+
const eager = read(eagerPath);
|
|
1557
|
+
const dynamicValues = { executable: binding.executable, validator: binding.argv_prefix[0] };
|
|
1558
|
+
const report = validateInstructionFootprintProfile({
|
|
1559
|
+
definition: pluginDefinition.instructionFootprint,
|
|
1560
|
+
canonicalKernel: canonicalRequestActivationGuard,
|
|
1561
|
+
expectedVersion: pluginDefinition.version,
|
|
1562
|
+
expectedInstanceIds: {
|
|
1563
|
+
openCodeEagerInstructions: ["repository"],
|
|
1564
|
+
openCodeActiveDynamicContext: ["active"],
|
|
1565
|
+
openCodeInactiveDynamicContext: ["inactive"],
|
|
1566
|
+
openCodeComposedStaticAndActiveDynamic: ["repository"],
|
|
1567
|
+
openCodeCompactionAddition: ["active"],
|
|
1568
|
+
},
|
|
1569
|
+
surfaces: {
|
|
1570
|
+
openCodeEagerInstructions: [{ id: "repository", content: eager }],
|
|
1571
|
+
openCodeActiveDynamicContext: [{ id: "active", content: activeContext, dynamicValues }],
|
|
1572
|
+
openCodeInactiveDynamicContext: [{ id: "inactive", content: "" }],
|
|
1573
|
+
openCodeComposedStaticAndActiveDynamic: [{ id: "repository", content: `${eager}\n${activeContext}`, dynamicValues }],
|
|
1574
|
+
openCodeCompactionAddition: [{ id: "active", content: activeCompactionOutput.context[0] }],
|
|
1575
|
+
},
|
|
1576
|
+
requiredSurfaceIds: [
|
|
1577
|
+
"openCodeEagerInstructions",
|
|
1578
|
+
"openCodeActiveDynamicContext",
|
|
1579
|
+
"openCodeInactiveDynamicContext",
|
|
1580
|
+
"openCodeComposedStaticAndActiveDynamic",
|
|
1581
|
+
"openCodeCompactionAddition",
|
|
1582
|
+
],
|
|
1583
|
+
});
|
|
1584
|
+
for (const finding of report.failures) failures.push(`${finding.code}: ${finding.message}`);
|
|
1585
|
+
}
|
|
1586
|
+
} catch (error) {
|
|
1587
|
+
failures.push(`OpenCode npm plugin Request Activation integrity probe failed: ${error.message}`);
|
|
1588
|
+
}
|
|
861
1589
|
}
|
|
862
1590
|
|
|
863
1591
|
const hooksConfig = isFile(hooksConfigPath) ? readJson(hooksConfigPath, "Codex plugin hooks config") : null;
|
|
864
1592
|
if (hooksConfig) {
|
|
1593
|
+
if (JSON.stringify(Object.keys(hooksConfig.hooks ?? {}).sort()) !== JSON.stringify(["SessionStart"])) {
|
|
1594
|
+
failures.push("shared plugin hooks must expose SessionStart only");
|
|
1595
|
+
}
|
|
865
1596
|
const sessionStartGroups = hooksConfig.hooks?.SessionStart;
|
|
866
1597
|
if (!Array.isArray(sessionStartGroups) || sessionStartGroups.length === 0) failures.push("Codex plugin hooks config must define SessionStart hooks");
|
|
867
1598
|
const sessionStartCommands = sessionStartGroups?.flatMap((group) => group?.hooks ?? []) ?? [];
|
|
@@ -871,6 +1602,16 @@ if (hooksConfig) {
|
|
|
871
1602
|
const sessionStartCommandText = sessionStartCommands.map((hook) => String(hook?.command ?? "")).join("\n");
|
|
872
1603
|
if (!sessionStartCommandText.includes("PLUGIN_ROOT")) failures.push("Codex plugin SessionStart hook command must use PLUGIN_ROOT");
|
|
873
1604
|
if (!sessionStartCommands.every((hook) => String(hook?.commandWindows ?? "").includes("agdf-session-check.js"))) failures.push("Codex plugin SessionStart hooks must define a native Windows command");
|
|
1605
|
+
if (fixedRuntimeCheckCommand) {
|
|
1606
|
+
const expectedCommand = fixedRuntimeCheckCommand("codex", pluginRoot, "darwin");
|
|
1607
|
+
const expectedWindowsCommand = fixedRuntimeCheckCommand("codex", pluginRoot, "win32");
|
|
1608
|
+
if (!sessionStartCommands.every((hook) => hook?.command === expectedCommand)) {
|
|
1609
|
+
failures.push("Codex plugin SessionStart command must equal the canonical host-adapter projection");
|
|
1610
|
+
}
|
|
1611
|
+
if (!sessionStartCommands.every((hook) => hook?.commandWindows === expectedWindowsCommand)) {
|
|
1612
|
+
failures.push("Codex plugin Windows SessionStart command must equal the canonical host-adapter projection");
|
|
1613
|
+
}
|
|
1614
|
+
}
|
|
874
1615
|
if (sessionStartCommandText.includes("/plugins/cache/*/")) failures.push("Codex plugin SessionStart hook command must not use cache wildcards");
|
|
875
1616
|
}
|
|
876
1617
|
|
|
@@ -895,56 +1636,181 @@ if (!sourceMode && installationProvenance?.profile_id === "copilot-runtime-plugi
|
|
|
895
1636
|
const copilotPlugin = isFile(copilotPluginPath) ? readJson(copilotPluginPath, "Copilot plugin manifest") : null;
|
|
896
1637
|
const copilotHooks = isFile(copilotHooksPath) ? readJson(copilotHooksPath, "Copilot plugin hooks") : null;
|
|
897
1638
|
if (!copilotPlugin) failures.push("installed runtime plugin must include root plugin.json for GitHub Copilot");
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
1639
|
+
const copilotManifestKeys = ["$schema", "name", "version", "description", "author", "homepage", "repository", "license", "keywords"];
|
|
1640
|
+
if (copilotPlugin && (copilotPlugin.$schema !== "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json"
|
|
1641
|
+
|| copilotPlugin.name !== "agdf" || copilotPlugin.version !== pluginDefinition?.version
|
|
1642
|
+
|| JSON.stringify(Object.keys(copilotPlugin)) !== JSON.stringify(copilotManifestKeys))) {
|
|
1643
|
+
failures.push("Copilot root plugin manifest must conform to the closed Agent Plugins 1.0 manifest schema");
|
|
901
1644
|
}
|
|
902
1645
|
const copilotSessionStart = copilotHooks?.hooks?.sessionStart;
|
|
1646
|
+
if (JSON.stringify(Object.keys(copilotHooks?.hooks ?? {}).sort()) !== JSON.stringify(["sessionStart"])) {
|
|
1647
|
+
failures.push("Copilot hooks must expose sessionStart only");
|
|
1648
|
+
}
|
|
903
1649
|
if (!Array.isArray(copilotSessionStart) || !copilotSessionStart.some((hook) => hook?.type === "command"
|
|
904
1650
|
&& hook?.command === 'node "${PLUGIN_ROOT}/runtime/agdf-session-check.js"'
|
|
905
1651
|
&& hook?.env?.AGDF_SURFACE === "copilot")) {
|
|
906
1652
|
failures.push("Copilot hooks must declare the fixed consent-bound AGDF sessionStart command");
|
|
907
1653
|
}
|
|
1654
|
+
const copilotMcp = isFile(join(pluginRoot, "mcp.json")) ? readJson(join(pluginRoot, "mcp.json"), "Copilot MCP declaration") : null;
|
|
1655
|
+
const expectedCopilotMcp = {
|
|
1656
|
+
$schema: "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json",
|
|
1657
|
+
mcpServers: {
|
|
1658
|
+
agdf: {
|
|
1659
|
+
type: "stdio",
|
|
1660
|
+
command: "node",
|
|
1661
|
+
args: ["${PLUGIN_ROOT}/mcp/agdf-mcp-launch.js", "--surface", "copilot", "--data", "${PLUGIN_DATA}"],
|
|
1662
|
+
},
|
|
1663
|
+
},
|
|
1664
|
+
};
|
|
1665
|
+
if (JSON.stringify(copilotMcp) !== JSON.stringify(expectedCopilotMcp)) {
|
|
1666
|
+
failures.push("Copilot Agent Plugins profile must declare the canonical plugin-managed MCP server");
|
|
1667
|
+
}
|
|
1668
|
+
for (const required of ["mcp/agdf-mcp-launch.js", "mcp/sdk/package.json", "mcp/sdk/package-lock.json",
|
|
1669
|
+
"mcp/sdk/expected-sdk.json", "mcp/server/package.json", "mcp/server/bin/agdf-mcp.js",
|
|
1670
|
+
"runtime/create-agdf/lib/mcp-lifecycle/plugin-runtime.js"]) {
|
|
1671
|
+
assertFile(join(pluginRoot, required), `Copilot plugin MCP runtime ${required}`);
|
|
1672
|
+
}
|
|
908
1673
|
for (const skill of pluginDefinition?.skillSet ?? []) {
|
|
909
|
-
|
|
1674
|
+
if (!skillSlugPattern.test(skill?.slug ?? "")) continue;
|
|
1675
|
+
assertFile(join(pluginRoot, "skills", `agdf-${skill.slug}`, "SKILL.md"), `Copilot prefixed plugin skill agdf-${skill.slug}`);
|
|
910
1676
|
}
|
|
911
1677
|
}
|
|
912
1678
|
|
|
913
1679
|
if (isFile(sessionStartHookPath)) {
|
|
914
1680
|
const sessionStartHook = read(sessionStartHookPath);
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
1681
|
+
for (const required of [
|
|
1682
|
+
"Compatibility transport only",
|
|
1683
|
+
'SESSION_CHECK="${SCRIPT_DIR}/../runtime/agdf-session-check.js"',
|
|
1684
|
+
'exec node "${SESSION_CHECK}"',
|
|
1685
|
+
"AGDF SessionStart transport unavailable: generated runtime entrypoint not found.",
|
|
1686
|
+
]) {
|
|
1687
|
+
if (!sessionStartHook.includes(required)) failures.push(`AGDF SessionStart compatibility transport missing: ${required}`);
|
|
1688
|
+
}
|
|
1689
|
+
if (/agdf-agent-router|agdf-constitution|agdf-runtime-contract|\.agdf\/control|Language policy|Request Activation Guard/iu.test(sessionStartHook)) {
|
|
1690
|
+
failures.push("AGDF SessionStart compatibility transport must not own model-visible policy or repository inspection");
|
|
1691
|
+
}
|
|
1692
|
+
}
|
|
1693
|
+
|
|
1694
|
+
const footprintSessionEntrypoint = sourceMode
|
|
1695
|
+
? join(repoRoot, "packages", "cli", "generated", "plugins", "agdf", "runtime", "agdf-session-check.js")
|
|
1696
|
+
: automaticRuntimeCheckPath;
|
|
1697
|
+
if (pluginDefinition && canonicalRequestActivationGuard && isFile(footprintSessionEntrypoint)) {
|
|
1698
|
+
const records = [];
|
|
1699
|
+
for (const surface of ["codex", "claude", "copilot"]) {
|
|
1700
|
+
const probe = spawnSync(process.execPath, [footprintSessionEntrypoint], {
|
|
1701
|
+
cwd: sourceMode ? repoRoot : pluginRoot,
|
|
1702
|
+
encoding: "utf8",
|
|
1703
|
+
env: {
|
|
1704
|
+
...process.env,
|
|
1705
|
+
AGDF_DATA_DIR: join(sourceMode ? repoRoot : pluginRoot, ".agdf-runtime-integrity-no-consent"),
|
|
1706
|
+
AGDF_SURFACE: surface,
|
|
1707
|
+
},
|
|
1708
|
+
});
|
|
1709
|
+
if (probe.status !== 0) {
|
|
1710
|
+
failures.push(`SessionStart footprint probe failed for ${surface}: ${probe.stderr.trim()}`);
|
|
1711
|
+
continue;
|
|
1712
|
+
}
|
|
1713
|
+
try {
|
|
1714
|
+
const transported = surface === "copilot" ? JSON.parse(probe.stdout).additionalContext : probe.stdout;
|
|
1715
|
+
// The budget covers the base context; Claude appends runtime facts under plugin-enablement consent
|
|
1716
|
+
// and a possible installation drift notice after it.
|
|
1717
|
+
const content = normalizeLf(transported).replace(/\n$/u, "").split("\n\n")
|
|
1718
|
+
.filter((block) => !block.startsWith("AGDF runtime facts:") && !block.startsWith("AGDF installation drift:"))
|
|
1719
|
+
.join("\n\n");
|
|
1720
|
+
const bindingLine = content.split("\n").find((line) => line.startsWith("AGDF dispatcher binding: "));
|
|
1721
|
+
const binding = JSON.parse(bindingLine.slice("AGDF dispatcher binding: ".length));
|
|
1722
|
+
const routeSource = binding.route_source_after_activation;
|
|
1723
|
+
const routeSourcePath = routeSource?.relative_to === "validator_directory" && typeof routeSource.path === "string"
|
|
1724
|
+
? resolve(dirname(binding.argv_prefix[0]), routeSource.path)
|
|
1725
|
+
: "";
|
|
1726
|
+
if (!routeSourcePath || !isFile(routeSourcePath)) {
|
|
1727
|
+
throw new Error("post-activation route source is missing or unresolved");
|
|
1728
|
+
}
|
|
1729
|
+
const routeSourceContent = read(routeSourcePath);
|
|
1730
|
+
if (!routeSourceContent.includes(requestActivationMarkers.operationsStart)
|
|
1731
|
+
|| !routeSourceContent.includes(requestActivationMarkers.operationsEnd)
|
|
1732
|
+
|| !routeSourceContent.includes(canonicalRequestActivationGuard)) {
|
|
1733
|
+
throw new Error("post-activation route source is not the packaged canonical operation catalog");
|
|
1734
|
+
}
|
|
1735
|
+
records.push({
|
|
1736
|
+
id: surface,
|
|
1737
|
+
content,
|
|
1738
|
+
dynamicValues: { executable: binding.executable, validator: binding.argv_prefix[0] },
|
|
1739
|
+
});
|
|
1740
|
+
} catch (error) {
|
|
1741
|
+
failures.push(`SessionStart footprint output is invalid for ${surface}: ${error.message}`);
|
|
1742
|
+
}
|
|
929
1743
|
}
|
|
1744
|
+
const report = validateInstructionFootprintProfile({
|
|
1745
|
+
definition: pluginDefinition.instructionFootprint,
|
|
1746
|
+
canonicalKernel: canonicalRequestActivationGuard,
|
|
1747
|
+
expectedVersion: pluginDefinition.version,
|
|
1748
|
+
expectedInstanceIds: { sessionStartBase: ["codex", "claude", "copilot"] },
|
|
1749
|
+
surfaces: { sessionStartBase: records },
|
|
1750
|
+
requiredSurfaceIds: ["sessionStartBase"],
|
|
1751
|
+
});
|
|
1752
|
+
for (const finding of report.failures) failures.push(`${finding.code}: ${finding.message}`);
|
|
930
1753
|
}
|
|
931
1754
|
|
|
932
1755
|
if (isFile(agentRouterPath)) {
|
|
933
1756
|
const agentRouter = read(agentRouterPath);
|
|
934
|
-
assertRouterMatchesDefinition("
|
|
1757
|
+
assertRouterMatchesDefinition("plugins/agdf/meta/agdf-agent-router.md", agentRouter, "codex");
|
|
1758
|
+
const routerGuard = ownedBlock(
|
|
1759
|
+
agentRouter,
|
|
1760
|
+
requestActivationMarkers.guardStart,
|
|
1761
|
+
requestActivationMarkers.guardEnd,
|
|
1762
|
+
"plugins/agdf/meta/agdf-agent-router.md request activation guard",
|
|
1763
|
+
);
|
|
1764
|
+
if (routerGuard && canonicalRequestActivationGuard && routerGuard !== canonicalRequestActivationGuard) {
|
|
1765
|
+
failures.push("plugins/agdf/meta/agdf-agent-router.md request activation guard must be byte-identical to the canonical source block");
|
|
1766
|
+
}
|
|
1767
|
+
const expectedRoutingBlock = [
|
|
1768
|
+
requestActivationMarkers.skillRoutingStart,
|
|
1769
|
+
"| Skill | Use For | Boundary |",
|
|
1770
|
+
"|---|---|---|",
|
|
1771
|
+
...(pluginDefinition?.skillSet ?? []).map((skill) => routingRowForSurface(skill, "codex")),
|
|
1772
|
+
requestActivationMarkers.skillRoutingEnd,
|
|
1773
|
+
].join("\n");
|
|
1774
|
+
const routingBlock = ownedBlock(
|
|
1775
|
+
agentRouter,
|
|
1776
|
+
requestActivationMarkers.skillRoutingStart,
|
|
1777
|
+
requestActivationMarkers.skillRoutingEnd,
|
|
1778
|
+
"plugins/agdf/meta/agdf-agent-router.md skill routing",
|
|
1779
|
+
);
|
|
1780
|
+
if (routingBlock && routingBlock !== expectedRoutingBlock) {
|
|
1781
|
+
failures.push("plugins/agdf/meta/agdf-agent-router.md skill routing must exactly match definition order and metadata");
|
|
1782
|
+
}
|
|
1783
|
+
const activationOrder = [
|
|
1784
|
+
"## Surface Convention",
|
|
1785
|
+
"## Request Activation",
|
|
1786
|
+
"## Task Target Resolution",
|
|
1787
|
+
"## Mode Selection",
|
|
1788
|
+
];
|
|
1789
|
+
const positions = activationOrder.map((heading) => {
|
|
1790
|
+
const count = countOccurrences(agentRouter, heading);
|
|
1791
|
+
if (count !== 1) failures.push(`plugins/agdf/meta/agdf-agent-router.md must contain exactly one ${heading}; found ${count}`);
|
|
1792
|
+
return agentRouter.indexOf(heading);
|
|
1793
|
+
});
|
|
1794
|
+
if (!positions.every((position, index) => position >= 0 && (index === 0 || position > positions[index - 1]))) {
|
|
1795
|
+
failures.push("plugins/agdf/meta/agdf-agent-router.md must order Surface Convention -> Request Activation -> Task Target Resolution -> Mode Selection");
|
|
1796
|
+
}
|
|
1797
|
+
if (!agentRouter.includes("Only after positive Request Activation, and only for a target-bound route")
|
|
1798
|
+
|| !agentRouter.includes("A request that abstained or remained an\nordinary read-only request never enters AGDF Mode Selection or Quick Task handling.")) {
|
|
1799
|
+
failures.push("plugins/agdf/meta/agdf-agent-router.md must keep target and mode routing downstream of positive Request Activation");
|
|
1800
|
+
}
|
|
935
1801
|
if (!agentRouter.includes("Default entry rule: a new user intent to build, add, change, extend, refactor or otherwise deliver something starts with `gate-check`")) {
|
|
936
|
-
failures.push("
|
|
1802
|
+
failures.push("plugins/agdf/meta/agdf-agent-router.md must state the gate-check default entry rule for new build/change intents");
|
|
937
1803
|
}
|
|
938
1804
|
if (!agentRouter.includes("Do not choose `brownfield-analysis` as the first primary skill for a fresh")) {
|
|
939
|
-
failures.push("
|
|
1805
|
+
failures.push("plugins/agdf/meta/agdf-agent-router.md must prevent brownfield-analysis from bypassing gate-check on fresh build/change prompts");
|
|
940
1806
|
}
|
|
941
1807
|
if (!agentRouter.includes("For Quick Task Mode, close with the Runtime Contract mini-output only")) {
|
|
942
|
-
failures.push("
|
|
1808
|
+
failures.push("plugins/agdf/meta/agdf-agent-router.md must keep Quick Task closeout lighter than relevant-run closeout");
|
|
943
1809
|
}
|
|
944
1810
|
for (const skill of pluginDefinition?.skillSet ?? []) {
|
|
945
1811
|
const copilotName = skillNameForSurface(skill, "copilot");
|
|
946
1812
|
if (agentRouter.includes(`\`${copilotName}\``) || agentRouter.includes(`/${copilotName}`)) {
|
|
947
|
-
failures.push(`
|
|
1813
|
+
failures.push(`plugins/agdf/meta/agdf-agent-router.md must not use Copilot-prefixed skill name ${copilotName}`);
|
|
948
1814
|
}
|
|
949
1815
|
}
|
|
950
1816
|
}
|
|
@@ -981,14 +1847,28 @@ if (isFile(runtimeContractPath)) {
|
|
|
981
1847
|
if (!runtimeContract.includes("A Mode/Slice Decision without scope reason and evidence is not recorded")) {
|
|
982
1848
|
failures.push("runtime contract must treat unevidenced Mode/Slice Decision as missing");
|
|
983
1849
|
}
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
1850
|
+
const gateRulesProse = normalizeProse(sectionAfterHeading(gateTransitionContract, "Gate Rules"));
|
|
1851
|
+
const gateRulesSearch = gateRulesProse.toLowerCase();
|
|
1852
|
+
const missingControlRuleStart = gateRulesSearch.indexOf("- after positive request activation and task-target resolution, missing control files");
|
|
1853
|
+
const missingControlRuleEnd = gateRulesSearch.indexOf("- `approval: ur` permits", missingControlRuleStart);
|
|
1854
|
+
const missingControlRule = missingControlRuleStart >= 0 && missingControlRuleEnd > missingControlRuleStart
|
|
1855
|
+
? gateRulesSearch.slice(missingControlRuleStart, missingControlRuleEnd)
|
|
1856
|
+
: "";
|
|
1857
|
+
const missingControlSetup = missingControlRule.indexOf("obtain explicit setup or link authority");
|
|
1858
|
+
const missingControlPersistence = missingControlRule.indexOf("persist", missingControlSetup);
|
|
1859
|
+
const missingControlApproval = missingControlRule.indexOf("approval: ur", missingControlPersistence);
|
|
1860
|
+
if (!missingControlRule
|
|
1861
|
+
|| !missingControlRule.includes("drafting the current minimal ur")
|
|
1862
|
+
|| !missingControlRule.includes("forbid later-gate work, implementation and every gate-approval request")
|
|
1863
|
+
|| missingControlSetup < 0
|
|
1864
|
+
|| missingControlPersistence < 0
|
|
1865
|
+
|| missingControlApproval < 0
|
|
1866
|
+
|| !(missingControlSetup < missingControlPersistence
|
|
1867
|
+
&& missingControlPersistence < missingControlApproval)) {
|
|
1868
|
+
failures.push("gate-transition contract must require setup/link authority and durable persistence before Approval: UR for missing control");
|
|
1869
|
+
}
|
|
1870
|
+
if (missingControlRule.includes("then request `approval: ur`. this branch is unreachable for `target_unresolved`. initialize or write `.agdf/control/`")) {
|
|
1871
|
+
failures.push("gate-transition contract must not request Approval: UR before missing-control setup and persistence");
|
|
992
1872
|
}
|
|
993
1873
|
if (!runtimeContract.includes("`config.json` stores project language preferences")) {
|
|
994
1874
|
failures.push("runtime contract must define AGDF language preference config");
|
|
@@ -1084,62 +1964,106 @@ for (const skill of expectedSkills) {
|
|
|
1084
1964
|
|
|
1085
1965
|
const skillMd = read(skillPath);
|
|
1086
1966
|
const helpMd = read(helpPath);
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
if (
|
|
1109
|
-
failures.push(
|
|
1967
|
+
const requestActivationHeadingCount = countOccurrences(skillMd, "## Request Activation");
|
|
1968
|
+
if (requestActivationHeadingCount !== 1) {
|
|
1969
|
+
failures.push(`${skill} must contain exactly one Request Activation heading; found ${requestActivationHeadingCount}`);
|
|
1970
|
+
}
|
|
1971
|
+
const skillSlug = pluginDefinition?.codex?.skillPrefix && skill.startsWith(pluginDefinition.codex.skillPrefix)
|
|
1972
|
+
? skill.slice(pluginDefinition.codex.skillPrefix.length)
|
|
1973
|
+
: skill;
|
|
1974
|
+
const skillDefinition = (pluginDefinition?.skillSet ?? []).find((entry) => entry.slug === skillSlug);
|
|
1975
|
+
const skillGuard = ownedBlock(
|
|
1976
|
+
skillMd,
|
|
1977
|
+
requestActivationMarkers.guardStart,
|
|
1978
|
+
requestActivationMarkers.guardEnd,
|
|
1979
|
+
`${skill} request activation guard`,
|
|
1980
|
+
);
|
|
1981
|
+
if (skillGuard && canonicalRequestActivationGuard && skillGuard !== canonicalRequestActivationGuard) {
|
|
1982
|
+
failures.push(`${skill} request activation guard must be byte-identical to the canonical source block`);
|
|
1983
|
+
}
|
|
1984
|
+
if (skillGuard && skillMd.indexOf(requestActivationMarkers.guardEnd) > skillMd.indexOf("## Executable Dispatch")) {
|
|
1985
|
+
failures.push(`${skill} request activation guard must precede executable dispatch`);
|
|
1986
|
+
}
|
|
1987
|
+
if (canonicalSkillDispatchProjection) {
|
|
1988
|
+
if (countOccurrences(skillMd, canonicalSkillDispatchProjection) !== 1) {
|
|
1989
|
+
failures.push(`${skill} must contain exactly one byte-identical projection of the canonical skill dispatch semantics`);
|
|
1110
1990
|
}
|
|
1111
|
-
if (
|
|
1112
|
-
|
|
1991
|
+
if (skillMd.includes(canonicalSkillDispatchProjection)
|
|
1992
|
+
&& skillMd.indexOf(canonicalSkillDispatchProjection) < skillMd.indexOf("## Executable Dispatch")) {
|
|
1993
|
+
failures.push(`${skill} skill dispatch semantics must remain inside the executable dispatch boundary`);
|
|
1113
1994
|
}
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
failures.push("gate-check must keep fresh missing-control requests lightweight");
|
|
1119
|
-
}
|
|
1120
|
-
if (!skillMd.includes("Do not write a full control scaffold unless durable control state was explicitly requested")) {
|
|
1121
|
-
failures.push("gate-check must prevent full control scaffold writes by default");
|
|
1995
|
+
}
|
|
1996
|
+
if (canonicalSkillDispatchTerminalProjection) {
|
|
1997
|
+
if (countOccurrences(skillMd, canonicalSkillDispatchTerminalProjection) !== 1) {
|
|
1998
|
+
failures.push(`${skill} must contain exactly one byte-identical projection of the canonical terminal-response semantics`);
|
|
1122
1999
|
}
|
|
1123
|
-
if (
|
|
1124
|
-
|
|
2000
|
+
if (skillMd.includes(canonicalSkillDispatchTerminalProjection)
|
|
2001
|
+
&& skillMd.indexOf(canonicalSkillDispatchTerminalProjection) < skillMd.indexOf("## Executable Dispatch")) {
|
|
2002
|
+
failures.push(`${skill} terminal-response semantics must remain inside the executable dispatch boundary`);
|
|
1125
2003
|
}
|
|
1126
|
-
|
|
1127
|
-
|
|
2004
|
+
}
|
|
2005
|
+
if (canonicalSkillDispatchQaCandidatesProjection) {
|
|
2006
|
+
const expectedCount = skill === "qa-gate" ? 1 : 0;
|
|
2007
|
+
if (countOccurrences(skillMd, canonicalSkillDispatchQaCandidatesProjection) !== expectedCount) {
|
|
2008
|
+
failures.push(`${skill} must contain ${expectedCount} byte-identical projection of the canonical QA candidate semantics`);
|
|
1128
2009
|
}
|
|
1129
|
-
|
|
1130
|
-
|
|
2010
|
+
}
|
|
2011
|
+
if (skillDefinition && activationDiscoverySuffix) {
|
|
2012
|
+
const expectedDescription = `description: ${JSON.stringify(expectedSkillDescription(skillDefinition, activationDiscoverySuffix))}`;
|
|
2013
|
+
if ((skillMd.match(/^description:.*$/gm) ?? []).length !== 1 || !skillMd.includes(expectedDescription)) {
|
|
2014
|
+
failures.push(`${skill} frontmatter description must derive exactly from skillSet useFor/boundary and the activation suffix`);
|
|
1131
2015
|
}
|
|
1132
|
-
|
|
1133
|
-
|
|
2016
|
+
}
|
|
2017
|
+
for (const required of [
|
|
2018
|
+
"## Executable Dispatch",
|
|
2019
|
+
"`terminal: true`",
|
|
2020
|
+
"`dispatcher_unavailable`",
|
|
2021
|
+
]) {
|
|
2022
|
+
if (!skillMd.includes(required)) failures.push(`${skill} executable dispatch boundary missing: ${required}`);
|
|
2023
|
+
}
|
|
2024
|
+
if (!skillMd.includes(`--skill ${skill}`) && !skillMd.includes(`\`skill_id: ${skill}\``)) {
|
|
2025
|
+
failures.push(`${skill} executable dispatch boundary missing: canonical skill identifier`);
|
|
2026
|
+
}
|
|
2027
|
+
if (skill === "gate-check") {
|
|
2028
|
+
for (const required of [
|
|
2029
|
+
"../../meta/contracts/task-target-resolution.md",
|
|
2030
|
+
"../../meta/contracts/gate-transition.md",
|
|
2031
|
+
"../../meta/contracts/interaction.md",
|
|
2032
|
+
"../../meta/contracts/control-scaffold.md",
|
|
2033
|
+
"../../meta/contracts/modes.md",
|
|
2034
|
+
"../../meta/contracts/quality.md",
|
|
2035
|
+
"## Declared `instruction_only` Fallback",
|
|
2036
|
+
]) {
|
|
2037
|
+
if (!skillMd.includes(required)) failures.push(`${skill} instruction-only dispatch fallback missing: ${required}`);
|
|
1134
2038
|
}
|
|
1135
|
-
|
|
1136
|
-
|
|
2039
|
+
} else if (!skillMd.includes("`instruction_only`: first load `../../meta/contracts/task-target-resolution.md` and `../../meta/contracts/interaction.md`.")) {
|
|
2040
|
+
failures.push(`${skill} instruction-only dispatch fallback is incomplete`);
|
|
2041
|
+
}
|
|
2042
|
+
if ((skillMd.match(/^## Executable Dispatch$/gm) ?? []).length !== 1) failures.push(`${skill} must contain exactly one executable dispatch boundary`);
|
|
2043
|
+
if (skill !== "gate-check" && !skillMd.includes("`skill_continuation`")) failures.push(`${skill} judgement dispatch must consume skill_continuation`);
|
|
2044
|
+
if (skillMd.includes("## Task Target Orientation Template")
|
|
2045
|
+
|| skillMd.includes("| Primary target | Governance target | Evidence sources |")) {
|
|
2046
|
+
failures.push(`${skill} must not maintain a skill-local task target orientation template`);
|
|
2047
|
+
}
|
|
2048
|
+
if (skill === "gate-check") {
|
|
2049
|
+
if (skillMd.includes("## Gate Transitions") || skillMd.includes("## Gate Order") || skillMd.includes("| State | Current gate or step | Allowed | Forbidden | Missing approval |")) {
|
|
2050
|
+
failures.push("gate-check must not duplicate the Runtime Contract gate transition table");
|
|
1137
2051
|
}
|
|
1138
|
-
if (
|
|
1139
|
-
failures.push("gate-check must
|
|
2052
|
+
if (/## Native Interaction Path|## Repository Activation Diagnosis|## OpenCode Passive Hook Boundary/u.test(skillMd)) {
|
|
2053
|
+
failures.push("gate-check must keep focused-contract handbooks out of the compact selected skill");
|
|
1140
2054
|
}
|
|
1141
|
-
|
|
1142
|
-
|
|
2055
|
+
} else if (skill === "qa-gate") {
|
|
2056
|
+
for (const required of [
|
|
2057
|
+
"## Resolved Target Run And Evidence Discovery",
|
|
2058
|
+
canonicalSkillDispatchQaCandidatesProjection,
|
|
2059
|
+
"Otherwise use the returned canonical candidate inventory",
|
|
2060
|
+
"Select exactly one run whose objective matches the request",
|
|
2061
|
+
"request\n one run selection and stop before a QA decision",
|
|
2062
|
+
"Do not ask the user to paste or relink repository files that the skill can read itself",
|
|
2063
|
+
"emit exactly one\n `pass | revise | block` decision",
|
|
2064
|
+
"must not reconstruct or promise a Run Status\nCard, Gate Transition Card, native QA card or interactive QA card",
|
|
2065
|
+
]) {
|
|
2066
|
+
if (!skillMd.includes(required)) failures.push(`qa-gate evidence-discovery boundary missing: ${required}`);
|
|
1143
2067
|
}
|
|
1144
2068
|
}
|
|
1145
2069
|
if (skill === "release-or") {
|
|
@@ -1163,9 +2087,9 @@ for (const skill of expectedSkills) {
|
|
|
1163
2087
|
}
|
|
1164
2088
|
|
|
1165
2089
|
for (const [pathLabel, content] of [
|
|
1166
|
-
["
|
|
1167
|
-
["
|
|
1168
|
-
["
|
|
2090
|
+
["plugins/agdf/meta/agdf-agent-router.md", read(agentRouterPath)],
|
|
2091
|
+
["plugins/agdf/meta/agdf-runtime-contract.md", read(runtimeContractPath)],
|
|
2092
|
+
["plugins/agdf/meta/contracts/*.md", readAllContracts()],
|
|
1169
2093
|
]) {
|
|
1170
2094
|
const normalized = stripAllowedGerman(content);
|
|
1171
2095
|
for (const pattern of germanRuntimePatterns) {
|
|
@@ -1174,7 +2098,7 @@ for (const [pathLabel, content] of [
|
|
|
1174
2098
|
}
|
|
1175
2099
|
|
|
1176
2100
|
for (const relativePath of expectedControlFiles) {
|
|
1177
|
-
assertFile(join(controlRoot, relativePath), `
|
|
2101
|
+
assertFile(join(controlRoot, relativePath), `plugins/agdf/control/${relativePath}`);
|
|
1178
2102
|
}
|
|
1179
2103
|
|
|
1180
2104
|
const runTemplatePath = join(controlRoot, "templates", "AGDF_RUN.md");
|
|
@@ -1279,9 +2203,26 @@ if (isFile(brownfieldReviewTemplatePath)) {
|
|
|
1279
2203
|
"migration_propagation_bounded",
|
|
1280
2204
|
"failure_recovery_local",
|
|
1281
2205
|
"independently_acceptable",
|
|
2206
|
+
"## Architecture Impact",
|
|
2207
|
+
"architecture_relevance",
|
|
2208
|
+
"architecture_impact",
|
|
2209
|
+
"architecture_reason",
|
|
2210
|
+
"architecture_evidence",
|
|
2211
|
+
"architecture_missing_evidence",
|
|
2212
|
+
"architecture_next_owner_and_action",
|
|
2213
|
+
"### Retained Debt Detail (only when applicable)",
|
|
2214
|
+
"- finding: <same label as the Reuse And Parallel-Structure Risk row>",
|
|
2215
|
+
"- rationale:",
|
|
2216
|
+
"- accountable_owner:",
|
|
2217
|
+
"- mitigation:",
|
|
2218
|
+
"- review_date_or_exit_condition:",
|
|
2219
|
+
"Keep the review decision at least `revise` until every debt-acceptance field is evidenced",
|
|
1282
2220
|
]) {
|
|
1283
2221
|
if (!brownfieldReviewTemplate.includes(required)) failures.push(`BROWNFIELD_REVIEW.md missing control field: ${required}`);
|
|
1284
2222
|
}
|
|
2223
|
+
if (!brownfieldReviewTemplate.includes("| Finding | Evidence | Risk | Required action |")) {
|
|
2224
|
+
failures.push("BROWNFIELD_REVIEW.md must retain the four-column finding index");
|
|
2225
|
+
}
|
|
1285
2226
|
}
|
|
1286
2227
|
|
|
1287
2228
|
if (isFile(uxIntentTemplatePath)) {
|
|
@@ -1322,7 +2263,7 @@ if (isFile(qualityContractPath)) {
|
|
|
1322
2263
|
"emergent_risk",
|
|
1323
2264
|
"UR | PRD | SD | TP | CD+Tests | evidence_obligation",
|
|
1324
2265
|
"gap_status` is exactly `open | resolved",
|
|
1325
|
-
"
|
|
2266
|
+
"`none` is not a seventh normalized finding type",
|
|
1326
2267
|
]) {
|
|
1327
2268
|
if (!contract.includes(required)) failures.push(`quality contract missing normalized review-gap invariant: ${required}`);
|
|
1328
2269
|
}
|