sdd-agent-platform 0.4.0 → 0.4.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/README.md +18 -23
- package/node_modules/@sdd-agent-platform/core/dist/ai-tools.js +31 -28
- package/node_modules/@sdd-agent-platform/core/dist/ai-tools.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/config/init-project.js +3 -2
- package/node_modules/@sdd-agent-platform/core/dist/config/init-project.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/config/starter-documents.d.ts +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/config/starter-documents.js +14 -5
- package/node_modules/@sdd-agent-platform/core/dist/config/starter-documents.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/contracts.d.ts +2 -0
- package/node_modules/@sdd-agent-platform/core/dist/contracts.js +2 -0
- package/node_modules/@sdd-agent-platform/core/dist/contracts.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/doctor/checks/run-evidence.js +3 -3
- package/node_modules/@sdd-agent-platform/core/dist/doctor/checks/run-evidence.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/doctor/doctor.js +155 -1
- package/node_modules/@sdd-agent-platform/core/dist/doctor/doctor.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/evidence/lookup.d.ts +23 -0
- package/node_modules/@sdd-agent-platform/core/dist/evidence/lookup.js +54 -0
- package/node_modules/@sdd-agent-platform/core/dist/evidence/lookup.js.map +1 -0
- package/node_modules/@sdd-agent-platform/core/dist/evidence-runtime/contracts.d.ts +11 -0
- package/node_modules/@sdd-agent-platform/core/dist/execution/agent-execution-records.js +15 -8
- package/node_modules/@sdd-agent-platform/core/dist/execution/agent-execution-records.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/execution/resident-worker.js +14 -6
- package/node_modules/@sdd-agent-platform/core/dist/execution/resident-worker.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/execution/stage-team-runtime.d.ts +112 -0
- package/node_modules/@sdd-agent-platform/core/dist/execution/stage-team-runtime.js +145 -0
- package/node_modules/@sdd-agent-platform/core/dist/execution/stage-team-runtime.js.map +1 -0
- package/node_modules/@sdd-agent-platform/core/dist/instructions.js +36 -36
- package/node_modules/@sdd-agent-platform/core/dist/instructions.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/lifecycle/ship.d.ts +2 -0
- package/node_modules/@sdd-agent-platform/core/dist/lifecycle/ship.js +37 -17
- package/node_modules/@sdd-agent-platform/core/dist/lifecycle/ship.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/registries/agent-capability-catalog.d.ts +16 -1
- package/node_modules/@sdd-agent-platform/core/dist/registries/agent-capability-catalog.js +174 -16
- package/node_modules/@sdd-agent-platform/core/dist/registries/agent-capability-catalog.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/registries/agent-registry.js +2 -2
- package/node_modules/@sdd-agent-platform/core/dist/registries/agent-registry.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/registries/agent-runtime-static.d.ts +10 -0
- package/node_modules/@sdd-agent-platform/core/dist/registries/agent-runtime-static.js +31 -1
- package/node_modules/@sdd-agent-platform/core/dist/registries/agent-runtime-static.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/registries/capability-sources.d.ts +2 -17
- package/node_modules/@sdd-agent-platform/core/dist/registries/capability-sources.js +222 -10
- package/node_modules/@sdd-agent-platform/core/dist/registries/capability-sources.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/registries/workflow-gates.js +5 -5
- package/node_modules/@sdd-agent-platform/core/dist/registries/workflow-gates.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/router/agent-runtime-config.js +27 -12
- package/node_modules/@sdd-agent-platform/core/dist/router/agent-runtime-config.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/router/agent-runtime.d.ts +59 -1
- package/node_modules/@sdd-agent-platform/core/dist/router/route-projection.d.ts +3 -1
- package/node_modules/@sdd-agent-platform/core/dist/router/route-projection.js +191 -0
- package/node_modules/@sdd-agent-platform/core/dist/router/route-projection.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/router/routing.js +32 -6
- package/node_modules/@sdd-agent-platform/core/dist/router/routing.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/router/runtime-inspection.js +11 -4
- package/node_modules/@sdd-agent-platform/core/dist/router/runtime-inspection.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/router/runtime-validation.js +31 -3
- package/node_modules/@sdd-agent-platform/core/dist/router/runtime-validation.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/run-state/artifacts.js +48 -15
- package/node_modules/@sdd-agent-platform/core/dist/run-state/artifacts.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/run-state/events.js +2 -2
- package/node_modules/@sdd-agent-platform/core/dist/run-state/events.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/run-state/inspect-run.d.ts +3 -1
- package/node_modules/@sdd-agent-platform/core/dist/run-state/inspect-run.js +15 -49
- package/node_modules/@sdd-agent-platform/core/dist/run-state/inspect-run.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/run-state/invocation-ledger.js +2 -2
- package/node_modules/@sdd-agent-platform/core/dist/run-state/invocation-ledger.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/run-state/model.d.ts +25 -1
- package/node_modules/@sdd-agent-platform/core/dist/run-state/run-state.js +21 -14
- package/node_modules/@sdd-agent-platform/core/dist/run-state/run-state.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/run-state/task-evidence.d.ts +62 -0
- package/node_modules/@sdd-agent-platform/core/dist/run-state/task-evidence.js +130 -0
- package/node_modules/@sdd-agent-platform/core/dist/run-state/task-evidence.js.map +1 -0
- package/node_modules/@sdd-agent-platform/core/dist/run-state.d.ts +1 -0
- package/node_modules/@sdd-agent-platform/core/dist/run-state.js +1 -0
- package/node_modules/@sdd-agent-platform/core/dist/run-state.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/runtime-paths.d.ts +10 -0
- package/node_modules/@sdd-agent-platform/core/dist/runtime-paths.js +44 -14
- package/node_modules/@sdd-agent-platform/core/dist/runtime-paths.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/sdd-docs/context.js +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/sdd-docs/context.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/sdd-docs/document-hashes.d.ts +4 -0
- package/node_modules/@sdd-agent-platform/core/dist/sdd-docs/document-hashes.js +189 -0
- package/node_modules/@sdd-agent-platform/core/dist/sdd-docs/document-hashes.js.map +1 -0
- package/node_modules/@sdd-agent-platform/core/dist/sdd-docs/run-binding.js +12 -3
- package/node_modules/@sdd-agent-platform/core/dist/sdd-docs/run-binding.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/sdd-docs/task-parser.d.ts +20 -0
- package/node_modules/@sdd-agent-platform/core/dist/sdd-docs/task-parser.js +101 -21
- package/node_modules/@sdd-agent-platform/core/dist/sdd-docs/task-parser.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/status/project-status.d.ts +62 -1
- package/node_modules/@sdd-agent-platform/core/dist/status/project-status.js +192 -4
- package/node_modules/@sdd-agent-platform/core/dist/status/project-status.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/storage/runtime-store.d.ts +195 -2
- package/node_modules/@sdd-agent-platform/core/dist/storage/runtime-store.js +499 -2
- package/node_modules/@sdd-agent-platform/core/dist/storage/runtime-store.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/sync-back/apply.js +23 -1
- package/node_modules/@sdd-agent-platform/core/dist/sync-back/apply.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/sync-back/inspect.d.ts +19 -0
- package/node_modules/@sdd-agent-platform/core/dist/sync-back/inspect.js +114 -12
- package/node_modules/@sdd-agent-platform/core/dist/sync-back/inspect.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/test-support/fixtures.js +21 -0
- package/node_modules/@sdd-agent-platform/core/dist/test-support/fixtures.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/test-support/run-state.js +16 -2
- package/node_modules/@sdd-agent-platform/core/dist/test-support/run-state.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/verification/goal-verify.js +34 -2
- package/node_modules/@sdd-agent-platform/core/dist/verification/goal-verify.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/verification/rendering.js +15 -5
- package/node_modules/@sdd-agent-platform/core/dist/verification/rendering.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/verification/review-gate.d.ts +22 -0
- package/node_modules/@sdd-agent-platform/core/dist/verification/review-gate.js +53 -0
- package/node_modules/@sdd-agent-platform/core/dist/verification/review-gate.js.map +1 -0
- package/node_modules/@sdd-agent-platform/core/dist/verification/single-task-loop.js +102 -9
- package/node_modules/@sdd-agent-platform/core/dist/verification/single-task-loop.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/verification/test-runtime.d.ts +16 -1
- package/node_modules/@sdd-agent-platform/core/dist/verification/test-runtime.js +355 -69
- package/node_modules/@sdd-agent-platform/core/dist/verification/test-runtime.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/verification/validation-wave.d.ts +58 -0
- package/node_modules/@sdd-agent-platform/core/dist/verification/validation-wave.js +428 -0
- package/node_modules/@sdd-agent-platform/core/dist/verification/validation-wave.js.map +1 -0
- package/node_modules/@sdd-agent-platform/core/dist/verification/verify-contract.d.ts +2 -0
- package/node_modules/@sdd-agent-platform/core/dist/verification/verify-contract.js +116 -18
- package/node_modules/@sdd-agent-platform/core/dist/verification/verify-contract.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/verification.d.ts +2 -0
- package/node_modules/@sdd-agent-platform/core/dist/verification.js +2 -0
- package/node_modules/@sdd-agent-platform/core/dist/verification.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/workflow-gate/evidence-packet.d.ts +24 -0
- package/node_modules/@sdd-agent-platform/core/dist/workflow-gate/evidence-packet.js +182 -0
- package/node_modules/@sdd-agent-platform/core/dist/workflow-gate/evidence-packet.js.map +1 -0
- package/node_modules/@sdd-agent-platform/core/dist/workflow-gate/hard-checks.d.ts +4 -0
- package/node_modules/@sdd-agent-platform/core/dist/workflow-gate/hard-checks.js +130 -0
- package/node_modules/@sdd-agent-platform/core/dist/workflow-gate/hard-checks.js.map +1 -0
- package/node_modules/@sdd-agent-platform/core/dist/workflow-gate/policy.d.ts +4 -0
- package/node_modules/@sdd-agent-platform/core/dist/workflow-gate/policy.js +146 -0
- package/node_modules/@sdd-agent-platform/core/dist/workflow-gate/policy.js.map +1 -0
- package/node_modules/@sdd-agent-platform/core/dist/workflow-gate/types.d.ts +89 -0
- package/node_modules/@sdd-agent-platform/core/dist/workflow-gate/types.js +2 -0
- package/node_modules/@sdd-agent-platform/core/dist/workflow-gate/types.js.map +1 -0
- package/node_modules/@sdd-agent-platform/core/dist/workflow-state/affected-file-conflicts.d.ts +1 -0
- package/node_modules/@sdd-agent-platform/core/dist/workflow-state/affected-file-conflicts.js +16 -1
- package/node_modules/@sdd-agent-platform/core/dist/workflow-state/affected-file-conflicts.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/workflow-state/dependencies.d.ts +8 -4
- package/node_modules/@sdd-agent-platform/core/dist/workflow-state/dependencies.js +25 -11
- package/node_modules/@sdd-agent-platform/core/dist/workflow-state/dependencies.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/workflow-state/latest-eligible-run.d.ts +38 -0
- package/node_modules/@sdd-agent-platform/core/dist/workflow-state/latest-eligible-run.js +122 -0
- package/node_modules/@sdd-agent-platform/core/dist/workflow-state/latest-eligible-run.js.map +1 -0
- package/node_modules/@sdd-agent-platform/core/dist/workflow-state/resolve.d.ts +27 -0
- package/node_modules/@sdd-agent-platform/core/dist/workflow-state/resolve.js +166 -37
- package/node_modules/@sdd-agent-platform/core/dist/workflow-state/resolve.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/dist/workflow-state.d.ts +1 -0
- package/node_modules/@sdd-agent-platform/core/dist/workflow-state.js +1 -0
- package/node_modules/@sdd-agent-platform/core/dist/workflow-state.js.map +1 -1
- package/node_modules/@sdd-agent-platform/core/package.json +1 -1
- package/node_modules/@sdd-agent-platform/core/src/ai-tools.ts +31 -28
- package/node_modules/@sdd-agent-platform/core/src/artifacts/sdd-result.test.ts +50 -4
- package/node_modules/@sdd-agent-platform/core/src/config/init-project.test.ts +13 -10
- package/node_modules/@sdd-agent-platform/core/src/config/init-project.ts +3 -2
- package/node_modules/@sdd-agent-platform/core/src/config/starter-documents.ts +15 -5
- package/node_modules/@sdd-agent-platform/core/src/contracts.ts +2 -0
- package/node_modules/@sdd-agent-platform/core/src/doctor/checks/run-evidence.ts +3 -3
- package/node_modules/@sdd-agent-platform/core/src/doctor/doctor.test.ts +117 -5
- package/node_modules/@sdd-agent-platform/core/src/doctor/doctor.ts +164 -1
- package/node_modules/@sdd-agent-platform/core/src/evidence/lookup.ts +80 -0
- package/node_modules/@sdd-agent-platform/core/src/evidence-runtime/contracts.ts +12 -0
- package/node_modules/@sdd-agent-platform/core/src/execution/agent-execution-records.ts +16 -11
- package/node_modules/@sdd-agent-platform/core/src/execution/background-executor.test.ts +7 -0
- package/node_modules/@sdd-agent-platform/core/src/execution/resident-worker.test.ts +5 -0
- package/node_modules/@sdd-agent-platform/core/src/execution/resident-worker.ts +14 -6
- package/node_modules/@sdd-agent-platform/core/src/execution/stage-team-runtime.test.ts +102 -0
- package/node_modules/@sdd-agent-platform/core/src/execution/stage-team-runtime.ts +271 -0
- package/node_modules/@sdd-agent-platform/core/src/execution/wave-executor.test.ts +4 -0
- package/node_modules/@sdd-agent-platform/core/src/governance/policy.test.ts +2 -0
- package/node_modules/@sdd-agent-platform/core/src/instructions.test.ts +11 -5
- package/node_modules/@sdd-agent-platform/core/src/instructions.ts +36 -36
- package/node_modules/@sdd-agent-platform/core/src/lifecycle/ship.ts +39 -17
- package/node_modules/@sdd-agent-platform/core/src/phase8-contracts.test.ts +3 -2
- package/node_modules/@sdd-agent-platform/core/src/phase8-risk-kernel.test.ts +5 -0
- package/node_modules/@sdd-agent-platform/core/src/planning/task-graph.test.ts +2 -0
- package/node_modules/@sdd-agent-platform/core/src/planning/wave-plan.test.ts +3 -0
- package/node_modules/@sdd-agent-platform/core/src/registries/agent-capability-catalog.ts +269 -17
- package/node_modules/@sdd-agent-platform/core/src/registries/agent-registry.ts +2 -2
- package/node_modules/@sdd-agent-platform/core/src/registries/agent-runtime-static.ts +41 -1
- package/node_modules/@sdd-agent-platform/core/src/registries/capability-sources.ts +238 -15
- package/node_modules/@sdd-agent-platform/core/src/registries/registries.test.ts +27 -2
- package/node_modules/@sdd-agent-platform/core/src/registries/workflow-gates.ts +5 -5
- package/node_modules/@sdd-agent-platform/core/src/router/agent-runtime-config.ts +31 -12
- package/node_modules/@sdd-agent-platform/core/src/router/agent-runtime.ts +66 -1
- package/node_modules/@sdd-agent-platform/core/src/router/route-projection.ts +211 -0
- package/node_modules/@sdd-agent-platform/core/src/router/route-sdd-task.test.ts +151 -3
- package/node_modules/@sdd-agent-platform/core/src/router/routing.ts +35 -6
- package/node_modules/@sdd-agent-platform/core/src/router/runtime-inspection.ts +11 -4
- package/node_modules/@sdd-agent-platform/core/src/router/runtime-validation.ts +32 -3
- package/node_modules/@sdd-agent-platform/core/src/run-state/artifacts.ts +48 -15
- package/node_modules/@sdd-agent-platform/core/src/run-state/events.ts +2 -2
- package/node_modules/@sdd-agent-platform/core/src/run-state/inspect-run.ts +17 -52
- package/node_modules/@sdd-agent-platform/core/src/run-state/invocation-ledger.ts +2 -2
- package/node_modules/@sdd-agent-platform/core/src/run-state/model.ts +28 -1
- package/node_modules/@sdd-agent-platform/core/src/run-state/run-state.test.ts +3 -0
- package/node_modules/@sdd-agent-platform/core/src/run-state/run-state.ts +22 -18
- package/node_modules/@sdd-agent-platform/core/src/run-state/task-evidence.ts +206 -0
- package/node_modules/@sdd-agent-platform/core/src/run-state.ts +1 -0
- package/node_modules/@sdd-agent-platform/core/src/runtime-paths.ts +54 -14
- package/node_modules/@sdd-agent-platform/core/src/sdd-docs/context.ts +1 -1
- package/node_modules/@sdd-agent-platform/core/src/sdd-docs/document-hashes.ts +207 -0
- package/node_modules/@sdd-agent-platform/core/src/sdd-docs/run-binding.ts +12 -3
- package/node_modules/@sdd-agent-platform/core/src/sdd-docs/task-parser.test.ts +139 -0
- package/node_modules/@sdd-agent-platform/core/src/sdd-docs/task-parser.ts +137 -24
- package/node_modules/@sdd-agent-platform/core/src/status/project-status.ts +268 -5
- package/node_modules/@sdd-agent-platform/core/src/storage/runtime-store.test.ts +368 -4
- package/node_modules/@sdd-agent-platform/core/src/storage/runtime-store.ts +697 -2
- package/node_modules/@sdd-agent-platform/core/src/sync-back/apply.ts +23 -1
- package/node_modules/@sdd-agent-platform/core/src/sync-back/inspect.ts +145 -12
- package/node_modules/@sdd-agent-platform/core/src/sync-back/sync-back.test.ts +132 -9
- package/node_modules/@sdd-agent-platform/core/src/test-support/fixtures.ts +21 -0
- package/node_modules/@sdd-agent-platform/core/src/test-support/run-state.ts +16 -2
- package/node_modules/@sdd-agent-platform/core/src/verification/goal-verify.test.ts +1 -1
- package/node_modules/@sdd-agent-platform/core/src/verification/goal-verify.ts +38 -5
- package/node_modules/@sdd-agent-platform/core/src/verification/rendering.ts +15 -5
- package/node_modules/@sdd-agent-platform/core/src/verification/review-gate.test.ts +77 -0
- package/node_modules/@sdd-agent-platform/core/src/verification/review-gate.ts +77 -0
- package/node_modules/@sdd-agent-platform/core/src/verification/single-task-loop.test.ts +64 -4
- package/node_modules/@sdd-agent-platform/core/src/verification/single-task-loop.ts +110 -12
- package/node_modules/@sdd-agent-platform/core/src/verification/test-runtime.test.ts +72 -25
- package/node_modules/@sdd-agent-platform/core/src/verification/test-runtime.ts +402 -77
- package/node_modules/@sdd-agent-platform/core/src/verification/validation-wave.test.ts +341 -0
- package/node_modules/@sdd-agent-platform/core/src/verification/validation-wave.ts +513 -0
- package/node_modules/@sdd-agent-platform/core/src/verification/verify-contract.test.ts +144 -5
- package/node_modules/@sdd-agent-platform/core/src/verification/verify-contract.ts +129 -18
- package/node_modules/@sdd-agent-platform/core/src/verification.ts +2 -0
- package/node_modules/@sdd-agent-platform/core/src/workflow-gate/evidence-packet.ts +196 -0
- package/node_modules/@sdd-agent-platform/core/src/workflow-gate/hard-checks.test.ts +171 -0
- package/node_modules/@sdd-agent-platform/core/src/workflow-gate/hard-checks.ts +143 -0
- package/node_modules/@sdd-agent-platform/core/src/workflow-gate/policy.test.ts +137 -0
- package/node_modules/@sdd-agent-platform/core/src/workflow-gate/policy.ts +155 -0
- package/node_modules/@sdd-agent-platform/core/src/workflow-gate/types.ts +114 -0
- package/node_modules/@sdd-agent-platform/core/src/workflow-state/affected-file-conflicts.ts +18 -1
- package/node_modules/@sdd-agent-platform/core/src/workflow-state/dependencies.test.ts +1 -1
- package/node_modules/@sdd-agent-platform/core/src/workflow-state/dependencies.ts +33 -11
- package/node_modules/@sdd-agent-platform/core/src/workflow-state/latest-eligible-run.ts +156 -0
- package/node_modules/@sdd-agent-platform/core/src/workflow-state/resolve.test.ts +351 -2
- package/node_modules/@sdd-agent-platform/core/src/workflow-state/resolve.ts +227 -39
- package/node_modules/@sdd-agent-platform/core/src/workflow-state.ts +1 -0
- package/package.json +1 -1
- package/packages/cli/dist/commands/status.js +2 -2
- package/packages/cli/dist/commands/status.js.map +1 -1
- package/packages/cli/dist/commands/sync-back.js +1 -1
- package/packages/cli/dist/commands/sync-back.js.map +1 -1
- package/packages/cli/dist/commands/tasks.js +4 -4
- package/packages/cli/dist/commands/tasks.js.map +1 -1
- package/packages/cli/dist/commands/test.js +94 -5
- package/packages/cli/dist/commands/test.js.map +1 -1
- package/packages/cli/dist/commands/verifies.js +5 -3
- package/packages/cli/dist/commands/verifies.js.map +1 -1
- package/packages/cli/dist/commands/verify.js +48 -7
- package/packages/cli/dist/commands/verify.js.map +1 -1
- package/packages/cli/dist/help.js +32 -18
- package/packages/cli/dist/help.js.map +1 -1
- package/packages/cli/dist/renderers/artifacts.js +1 -1
- package/packages/cli/dist/renderers/artifacts.js.map +1 -1
- package/packages/cli/dist/renderers/registry-runtime.js +7 -2
- package/packages/cli/dist/renderers/registry-runtime.js.map +1 -1
- package/packages/cli/dist/renderers/router.js +4 -2
- package/packages/cli/dist/renderers/router.js.map +1 -1
- package/packages/cli/dist/renderers/workflow.js +33 -12
- package/packages/cli/dist/renderers/workflow.js.map +1 -1
- package/packages/cli/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/cli/package.json +2 -2
- package/packages/core/dist/ai-tools.js +31 -28
- package/packages/core/dist/ai-tools.js.map +1 -1
- package/packages/core/dist/config/init-project.js +3 -2
- package/packages/core/dist/config/init-project.js.map +1 -1
- package/packages/core/dist/config/starter-documents.d.ts +1 -1
- package/packages/core/dist/config/starter-documents.js +14 -5
- package/packages/core/dist/config/starter-documents.js.map +1 -1
- package/packages/core/dist/contracts.d.ts +2 -0
- package/packages/core/dist/contracts.js +2 -0
- package/packages/core/dist/contracts.js.map +1 -1
- package/packages/core/dist/doctor/checks/run-evidence.js +3 -3
- package/packages/core/dist/doctor/checks/run-evidence.js.map +1 -1
- package/packages/core/dist/doctor/doctor.js +155 -1
- package/packages/core/dist/doctor/doctor.js.map +1 -1
- package/packages/core/dist/evidence/lookup.d.ts +23 -0
- package/packages/core/dist/evidence/lookup.js +54 -0
- package/packages/core/dist/evidence/lookup.js.map +1 -0
- package/packages/core/dist/evidence-runtime/contracts.d.ts +11 -0
- package/packages/core/dist/execution/agent-execution-records.js +15 -8
- package/packages/core/dist/execution/agent-execution-records.js.map +1 -1
- package/packages/core/dist/execution/resident-worker.js +14 -6
- package/packages/core/dist/execution/resident-worker.js.map +1 -1
- package/packages/core/dist/execution/stage-team-runtime.d.ts +112 -0
- package/packages/core/dist/execution/stage-team-runtime.js +145 -0
- package/packages/core/dist/execution/stage-team-runtime.js.map +1 -0
- package/packages/core/dist/instructions.js +36 -36
- package/packages/core/dist/instructions.js.map +1 -1
- package/packages/core/dist/lifecycle/ship.d.ts +2 -0
- package/packages/core/dist/lifecycle/ship.js +37 -17
- package/packages/core/dist/lifecycle/ship.js.map +1 -1
- package/packages/core/dist/registries/agent-capability-catalog.d.ts +16 -1
- package/packages/core/dist/registries/agent-capability-catalog.js +174 -16
- package/packages/core/dist/registries/agent-capability-catalog.js.map +1 -1
- package/packages/core/dist/registries/agent-registry.js +2 -2
- package/packages/core/dist/registries/agent-registry.js.map +1 -1
- package/packages/core/dist/registries/agent-runtime-static.d.ts +10 -0
- package/packages/core/dist/registries/agent-runtime-static.js +31 -1
- package/packages/core/dist/registries/agent-runtime-static.js.map +1 -1
- package/packages/core/dist/registries/capability-sources.d.ts +2 -17
- package/packages/core/dist/registries/capability-sources.js +222 -10
- package/packages/core/dist/registries/capability-sources.js.map +1 -1
- package/packages/core/dist/registries/workflow-gates.js +5 -5
- package/packages/core/dist/registries/workflow-gates.js.map +1 -1
- package/packages/core/dist/router/agent-runtime-config.js +27 -12
- package/packages/core/dist/router/agent-runtime-config.js.map +1 -1
- package/packages/core/dist/router/agent-runtime.d.ts +59 -1
- package/packages/core/dist/router/route-projection.d.ts +3 -1
- package/packages/core/dist/router/route-projection.js +191 -0
- package/packages/core/dist/router/route-projection.js.map +1 -1
- package/packages/core/dist/router/routing.js +32 -6
- package/packages/core/dist/router/routing.js.map +1 -1
- package/packages/core/dist/router/runtime-inspection.js +11 -4
- package/packages/core/dist/router/runtime-inspection.js.map +1 -1
- package/packages/core/dist/router/runtime-validation.js +31 -3
- package/packages/core/dist/router/runtime-validation.js.map +1 -1
- package/packages/core/dist/run-state/artifacts.js +48 -15
- package/packages/core/dist/run-state/artifacts.js.map +1 -1
- package/packages/core/dist/run-state/events.js +2 -2
- package/packages/core/dist/run-state/events.js.map +1 -1
- package/packages/core/dist/run-state/inspect-run.d.ts +3 -1
- package/packages/core/dist/run-state/inspect-run.js +15 -49
- package/packages/core/dist/run-state/inspect-run.js.map +1 -1
- package/packages/core/dist/run-state/invocation-ledger.js +2 -2
- package/packages/core/dist/run-state/invocation-ledger.js.map +1 -1
- package/packages/core/dist/run-state/model.d.ts +25 -1
- package/packages/core/dist/run-state/run-state.js +21 -14
- package/packages/core/dist/run-state/run-state.js.map +1 -1
- package/packages/core/dist/run-state/task-evidence.d.ts +62 -0
- package/packages/core/dist/run-state/task-evidence.js +130 -0
- package/packages/core/dist/run-state/task-evidence.js.map +1 -0
- package/packages/core/dist/run-state.d.ts +1 -0
- package/packages/core/dist/run-state.js +1 -0
- package/packages/core/dist/run-state.js.map +1 -1
- package/packages/core/dist/runtime-paths.d.ts +10 -0
- package/packages/core/dist/runtime-paths.js +44 -14
- package/packages/core/dist/runtime-paths.js.map +1 -1
- package/packages/core/dist/sdd-docs/context.js +1 -1
- package/packages/core/dist/sdd-docs/context.js.map +1 -1
- package/packages/core/dist/sdd-docs/document-hashes.d.ts +4 -0
- package/packages/core/dist/sdd-docs/document-hashes.js +189 -0
- package/packages/core/dist/sdd-docs/document-hashes.js.map +1 -0
- package/packages/core/dist/sdd-docs/run-binding.js +12 -3
- package/packages/core/dist/sdd-docs/run-binding.js.map +1 -1
- package/packages/core/dist/sdd-docs/task-parser.d.ts +20 -0
- package/packages/core/dist/sdd-docs/task-parser.js +101 -21
- package/packages/core/dist/sdd-docs/task-parser.js.map +1 -1
- package/packages/core/dist/status/project-status.d.ts +62 -1
- package/packages/core/dist/status/project-status.js +192 -4
- package/packages/core/dist/status/project-status.js.map +1 -1
- package/packages/core/dist/storage/runtime-store.d.ts +195 -2
- package/packages/core/dist/storage/runtime-store.js +499 -2
- package/packages/core/dist/storage/runtime-store.js.map +1 -1
- package/packages/core/dist/sync-back/apply.js +23 -1
- package/packages/core/dist/sync-back/apply.js.map +1 -1
- package/packages/core/dist/sync-back/inspect.d.ts +19 -0
- package/packages/core/dist/sync-back/inspect.js +114 -12
- package/packages/core/dist/sync-back/inspect.js.map +1 -1
- package/packages/core/dist/test-support/fixtures.js +21 -0
- package/packages/core/dist/test-support/fixtures.js.map +1 -1
- package/packages/core/dist/test-support/run-state.js +16 -2
- package/packages/core/dist/test-support/run-state.js.map +1 -1
- package/packages/core/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/core/dist/verification/goal-verify.js +34 -2
- package/packages/core/dist/verification/goal-verify.js.map +1 -1
- package/packages/core/dist/verification/rendering.js +15 -5
- package/packages/core/dist/verification/rendering.js.map +1 -1
- package/packages/core/dist/verification/review-gate.d.ts +22 -0
- package/packages/core/dist/verification/review-gate.js +53 -0
- package/packages/core/dist/verification/review-gate.js.map +1 -0
- package/packages/core/dist/verification/single-task-loop.js +102 -9
- package/packages/core/dist/verification/single-task-loop.js.map +1 -1
- package/packages/core/dist/verification/test-runtime.d.ts +16 -1
- package/packages/core/dist/verification/test-runtime.js +355 -69
- package/packages/core/dist/verification/test-runtime.js.map +1 -1
- package/packages/core/dist/verification/validation-wave.d.ts +58 -0
- package/packages/core/dist/verification/validation-wave.js +428 -0
- package/packages/core/dist/verification/validation-wave.js.map +1 -0
- package/packages/core/dist/verification/verify-contract.d.ts +2 -0
- package/packages/core/dist/verification/verify-contract.js +116 -18
- package/packages/core/dist/verification/verify-contract.js.map +1 -1
- package/packages/core/dist/verification.d.ts +2 -0
- package/packages/core/dist/verification.js +2 -0
- package/packages/core/dist/verification.js.map +1 -1
- package/packages/core/dist/workflow-gate/evidence-packet.d.ts +24 -0
- package/packages/core/dist/workflow-gate/evidence-packet.js +182 -0
- package/packages/core/dist/workflow-gate/evidence-packet.js.map +1 -0
- package/packages/core/dist/workflow-gate/hard-checks.d.ts +4 -0
- package/packages/core/dist/workflow-gate/hard-checks.js +130 -0
- package/packages/core/dist/workflow-gate/hard-checks.js.map +1 -0
- package/packages/core/dist/workflow-gate/policy.d.ts +4 -0
- package/packages/core/dist/workflow-gate/policy.js +146 -0
- package/packages/core/dist/workflow-gate/policy.js.map +1 -0
- package/packages/core/dist/workflow-gate/types.d.ts +89 -0
- package/packages/core/dist/workflow-gate/types.js +2 -0
- package/packages/core/dist/workflow-gate/types.js.map +1 -0
- package/packages/core/dist/workflow-state/affected-file-conflicts.d.ts +1 -0
- package/packages/core/dist/workflow-state/affected-file-conflicts.js +16 -1
- package/packages/core/dist/workflow-state/affected-file-conflicts.js.map +1 -1
- package/packages/core/dist/workflow-state/dependencies.d.ts +8 -4
- package/packages/core/dist/workflow-state/dependencies.js +25 -11
- package/packages/core/dist/workflow-state/dependencies.js.map +1 -1
- package/packages/core/dist/workflow-state/latest-eligible-run.d.ts +38 -0
- package/packages/core/dist/workflow-state/latest-eligible-run.js +122 -0
- package/packages/core/dist/workflow-state/latest-eligible-run.js.map +1 -0
- package/packages/core/dist/workflow-state/resolve.d.ts +27 -0
- package/packages/core/dist/workflow-state/resolve.js +166 -37
- package/packages/core/dist/workflow-state/resolve.js.map +1 -1
- package/packages/core/dist/workflow-state.d.ts +1 -0
- package/packages/core/dist/workflow-state.js +1 -0
- package/packages/core/dist/workflow-state.js.map +1 -1
- package/packages/core/package.json +1 -1
|
@@ -40,6 +40,16 @@ interface BuiltInHostAdapterContract {
|
|
|
40
40
|
responsibilities: string[];
|
|
41
41
|
forbiddenAuthority: string[];
|
|
42
42
|
projections: string[];
|
|
43
|
+
workflowProjectionPolicy: string;
|
|
44
|
+
workflowProjections: Array<{
|
|
45
|
+
host: 'claude_code' | 'codex' | 'opencode';
|
|
46
|
+
support: 'active' | 'future' | 'unsupported';
|
|
47
|
+
commandSurface: string[];
|
|
48
|
+
skillSurface: string[];
|
|
49
|
+
permissionSurface: string[];
|
|
50
|
+
evidenceReturn: string[];
|
|
51
|
+
unsupportedReason: string | null;
|
|
52
|
+
}>;
|
|
43
53
|
}
|
|
44
54
|
|
|
45
55
|
interface BuiltInEvidenceIngestionContract {
|
|
@@ -83,7 +93,37 @@ export const BUILT_IN_HOST_ADAPTER_CONTRACT: BuiltInHostAdapterContract = {
|
|
|
83
93
|
host: 'Claude Code / future host adapter',
|
|
84
94
|
responsibilities: ['project SDD router decisions to host subagents, skills, MCPs and shell tools', 'return host session/task id, status, output, artifacts and tool summary', 'record host output as provenance'],
|
|
85
95
|
forbiddenAuthority: ['task lifecycle truth', 'completion state', 'risk gate authority', 'sync-back authority', 'required artifact policy'],
|
|
86
|
-
projections: ['short profile prompt projection', 'tool permission summary', 'model policy category', 'required evidence targets']
|
|
96
|
+
projections: ['short profile prompt projection', 'tool permission summary', 'model policy category', 'required evidence targets', 'host-neutral workflow intent projection'],
|
|
97
|
+
workflowProjectionPolicy: 'Core emits host-neutral canonical CLI commands and workflow intent; host adapters may expose slash commands, skills, commands, settings, or permissions as projection metadata only.',
|
|
98
|
+
workflowProjections: [
|
|
99
|
+
{
|
|
100
|
+
host: 'claude_code',
|
|
101
|
+
support: 'active',
|
|
102
|
+
commandSurface: ['slash commands', 'skills', 'settings/hooks/statusline'],
|
|
103
|
+
skillSurface: ['Agent Skills SKILL.md', 'allowed-tools', 'context and hook metadata'],
|
|
104
|
+
permissionSurface: ['permission modes', 'tool permission prompts', 'settings scopes'],
|
|
105
|
+
evidenceReturn: ['host session id', 'tool summary', 'artifact references', 'command output'],
|
|
106
|
+
unsupportedReason: null
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
host: 'codex',
|
|
110
|
+
support: 'future',
|
|
111
|
+
commandSurface: ['config.toml profiles', 'AGENTS.md', 'built-in slash surfaces'],
|
|
112
|
+
skillSurface: ['AGENTS.md instruction surface only until custom command/skill semantics are verified'],
|
|
113
|
+
permissionSurface: ['approval_policy', 'sandbox_mode'],
|
|
114
|
+
evidenceReturn: ['telemetry/tool-decision events where available', 'CLI output'],
|
|
115
|
+
unsupportedReason: 'Custom workflow command/skill projection is not marked active without stronger Codex documentation evidence.'
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
host: 'opencode',
|
|
119
|
+
support: 'active',
|
|
120
|
+
commandSurface: ['opencode.json/jsonc', '.opencode/commands', 'slash commands'],
|
|
121
|
+
skillSurface: ['.opencode/agents', '.opencode/skills', 'global/project skill directories'],
|
|
122
|
+
permissionSurface: ['allow/ask/deny permissions'],
|
|
123
|
+
evidenceReturn: ['json output', 'session export', 'tool output', 'artifact references'],
|
|
124
|
+
unsupportedReason: null
|
|
125
|
+
}
|
|
126
|
+
]
|
|
87
127
|
};
|
|
88
128
|
|
|
89
129
|
export const BUILT_IN_EVIDENCE_INGESTION_CONTRACT: BuiltInEvidenceIngestionContract = {
|
|
@@ -1,30 +1,253 @@
|
|
|
1
1
|
import { CAPABILITY_SOURCE_CATALOG_VERSION } from '../contracts.js';
|
|
2
|
+
import type {
|
|
3
|
+
CapabilitySourceAllowedEvidenceType,
|
|
4
|
+
CapabilitySourceCatalogEntry,
|
|
5
|
+
CapabilitySourceKind,
|
|
6
|
+
CapabilitySourceQuarantineStatus,
|
|
7
|
+
CapabilityReuseDecision
|
|
8
|
+
} from '../router/agent-runtime.js';
|
|
2
9
|
|
|
3
|
-
|
|
4
|
-
|
|
10
|
+
const FORBIDDEN_RUNTIME_AUTHORITY = [
|
|
11
|
+
'lifecycle gate authority',
|
|
12
|
+
'stage completion decision',
|
|
13
|
+
'sync-back apply decision',
|
|
14
|
+
'ship readiness pass',
|
|
15
|
+
'permission escalation'
|
|
16
|
+
];
|
|
5
17
|
|
|
6
|
-
interface
|
|
7
|
-
version: typeof CAPABILITY_SOURCE_CATALOG_VERSION;
|
|
18
|
+
interface CapabilitySourceInput {
|
|
8
19
|
id: string;
|
|
9
20
|
name: string;
|
|
10
21
|
kind: CapabilitySourceKind;
|
|
11
22
|
sourceRef: string;
|
|
12
23
|
reuseDecision: CapabilityReuseDecision;
|
|
13
24
|
quarantineRequired: boolean;
|
|
25
|
+
quarantineStatus: CapabilitySourceQuarantineStatus;
|
|
26
|
+
permissionModel: string[];
|
|
27
|
+
provenanceRequirements: string[];
|
|
28
|
+
hostCompatibility: string[];
|
|
29
|
+
allowedEvidenceTypes: CapabilitySourceAllowedEvidenceType[];
|
|
30
|
+
forbiddenAuthority?: string[];
|
|
14
31
|
allowedUse: string;
|
|
15
32
|
attribution: string;
|
|
16
33
|
rationale: string;
|
|
17
34
|
}
|
|
18
35
|
|
|
19
|
-
|
|
20
|
-
{
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
{
|
|
29
|
-
|
|
36
|
+
function source(input: CapabilitySourceInput): CapabilitySourceCatalogEntry {
|
|
37
|
+
return {
|
|
38
|
+
version: CAPABILITY_SOURCE_CATALOG_VERSION,
|
|
39
|
+
forbiddenAuthority: input.forbiddenAuthority ?? FORBIDDEN_RUNTIME_AUTHORITY,
|
|
40
|
+
...input
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export const BUILT_IN_CAPABILITY_SOURCES: CapabilitySourceCatalogEntry[] = [
|
|
45
|
+
source({
|
|
46
|
+
id: 'claude_code_native',
|
|
47
|
+
name: 'Claude Code native capabilities',
|
|
48
|
+
kind: 'native_host',
|
|
49
|
+
sourceRef: 'Claude Code subagents/skills/MCP/hooks/settings/background tasks',
|
|
50
|
+
reuseDecision: 'reuse_direct',
|
|
51
|
+
quarantineRequired: false,
|
|
52
|
+
quarantineStatus: 'not_required',
|
|
53
|
+
permissionModel: ['host allow/ask/deny permissions', 'skill allowed-tools preapproval', 'subagent tool isolation', 'MCP server trust boundary'],
|
|
54
|
+
provenanceRequirements: ['managed entry path or host surface', 'host session/task id when delegated', 'tool summary or artifact reference'],
|
|
55
|
+
hostCompatibility: ['claude-code:supported'],
|
|
56
|
+
allowedEvidenceTypes: ['execution_record', 'command_output', 'external_reference'],
|
|
57
|
+
allowedUse: 'host-native execution, permission projection, and provenance capture',
|
|
58
|
+
attribution: 'Claude Code host runtime',
|
|
59
|
+
rationale: 'Reuse execution mechanics while SDD retains lifecycle, evidence, and completion authority.'
|
|
60
|
+
}),
|
|
61
|
+
source({
|
|
62
|
+
id: 'context7_mcp',
|
|
63
|
+
name: 'Context7 MCP',
|
|
64
|
+
kind: 'mcp_tool',
|
|
65
|
+
sourceRef: 'Context7 documentation MCP',
|
|
66
|
+
reuseDecision: 'reuse_direct',
|
|
67
|
+
quarantineRequired: false,
|
|
68
|
+
quarantineStatus: 'not_required',
|
|
69
|
+
permissionModel: ['MCP tool call with host approval policy', 'read-only external documentation lookup'],
|
|
70
|
+
provenanceRequirements: ['MCP server id', 'library id or source URL', 'retrieval timestamp or command evidence'],
|
|
71
|
+
hostCompatibility: ['mcp:supported', 'claude-code:supported'],
|
|
72
|
+
allowedEvidenceTypes: ['external_reference'],
|
|
73
|
+
allowedUse: 'current library/API documentation lookup with source evidence',
|
|
74
|
+
attribution: 'Context7 MCP',
|
|
75
|
+
rationale: 'Mature docs lookup should be declared as capability, not rebuilt.'
|
|
76
|
+
}),
|
|
77
|
+
source({
|
|
78
|
+
id: 'playwright_mcp',
|
|
79
|
+
name: 'Playwright browser capability',
|
|
80
|
+
kind: 'mcp_tool',
|
|
81
|
+
sourceRef: 'Playwright MCP/CLI',
|
|
82
|
+
reuseDecision: 'reuse_direct',
|
|
83
|
+
quarantineRequired: false,
|
|
84
|
+
quarantineStatus: 'not_required',
|
|
85
|
+
permissionModel: ['browser automation with host approval policy', 'project-scoped local/browser access'],
|
|
86
|
+
provenanceRequirements: ['browser snapshot or trace path', 'command output', 'target URL or local route'],
|
|
87
|
+
hostCompatibility: ['mcp:supported', 'cli:supported', 'claude-code:supported'],
|
|
88
|
+
allowedEvidenceTypes: ['browser_snapshot', 'command_output'],
|
|
89
|
+
allowedUse: 'browser/UI validation evidence mapped into SDD artifacts',
|
|
90
|
+
attribution: 'Playwright',
|
|
91
|
+
rationale: 'Browser verification should be ingested as evidence rather than replaced by prompts.'
|
|
92
|
+
}),
|
|
93
|
+
source({
|
|
94
|
+
id: 'codex_host_future',
|
|
95
|
+
name: 'Codex host adapter placeholder',
|
|
96
|
+
kind: 'future_adapter',
|
|
97
|
+
sourceRef: 'Codex CLI/agent host behavior requires project validation before routing',
|
|
98
|
+
reuseDecision: 'avoid',
|
|
99
|
+
quarantineRequired: true,
|
|
100
|
+
quarantineStatus: 'denied',
|
|
101
|
+
permissionModel: ['unsupported until Codex sandbox, approval, and MCP behavior are verified'],
|
|
102
|
+
provenanceRequirements: ['future host session id', 'future approval/sandbox record', 'future artifact mapping'],
|
|
103
|
+
hostCompatibility: ['codex:unsupported'],
|
|
104
|
+
allowedEvidenceTypes: ['none'],
|
|
105
|
+
allowedUse: 'unsupported future host adapter research only',
|
|
106
|
+
attribution: 'Codex public docs and issue review',
|
|
107
|
+
rationale: 'Current evidence is insufficient for stable active adapter fields; keep Codex out of routing until verified.'
|
|
108
|
+
}),
|
|
109
|
+
source({
|
|
110
|
+
id: 'opencode_patterns',
|
|
111
|
+
name: 'OpenCode mechanism patterns',
|
|
112
|
+
kind: 'mechanism_reference',
|
|
113
|
+
sourceRef: 'OpenCode / Oh My OpenCode',
|
|
114
|
+
reuseDecision: 'borrow_mechanism',
|
|
115
|
+
quarantineRequired: false,
|
|
116
|
+
quarantineStatus: 'not_required',
|
|
117
|
+
permissionModel: ['permission-shape reference only', 'allow/ask/deny normalized by SDD before use'],
|
|
118
|
+
provenanceRequirements: ['referenced OpenCode docs or source path', 'SDD adapter mapping decision'],
|
|
119
|
+
hostCompatibility: ['opencode:future_adapter'],
|
|
120
|
+
allowedEvidenceTypes: ['none'],
|
|
121
|
+
allowedUse: 'adapter, model policy, permission and session discipline references',
|
|
122
|
+
attribution: 'OpenCode ecosystem',
|
|
123
|
+
rationale: 'Borrow host-neutral mechanisms without coupling SDD core to OpenCode APIs.'
|
|
124
|
+
}),
|
|
125
|
+
source({
|
|
126
|
+
id: 'ohmy_team_mode',
|
|
127
|
+
name: 'Oh My team-mode pattern',
|
|
128
|
+
kind: 'mechanism_reference',
|
|
129
|
+
sourceRef: 'Oh My OpenCode team-mode',
|
|
130
|
+
reuseDecision: 'borrow_mechanism',
|
|
131
|
+
quarantineRequired: false,
|
|
132
|
+
quarantineStatus: 'not_required',
|
|
133
|
+
permissionModel: ['mechanism reference only', 'SDD-owned delegation waves and artifact requirements'],
|
|
134
|
+
provenanceRequirements: ['referenced source material', 'SDD team-mode policy id'],
|
|
135
|
+
hostCompatibility: ['opencode:future_adapter', 'host-neutral:supported'],
|
|
136
|
+
allowedEvidenceTypes: ['none'],
|
|
137
|
+
allowedUse: 'adaptive chief/member/team-message/delegation-wave contract shape',
|
|
138
|
+
attribution: 'Oh My OpenCode',
|
|
139
|
+
rationale: 'Team runtime remains host capability; SDD records policy and evidence.'
|
|
140
|
+
}),
|
|
141
|
+
source({
|
|
142
|
+
id: 'figma_design_future',
|
|
143
|
+
name: 'Figma design tooling placeholder',
|
|
144
|
+
kind: 'future_adapter',
|
|
145
|
+
sourceRef: 'Figma Dev Mode/MCP design context tooling',
|
|
146
|
+
reuseDecision: 'adapt_via_host_adapter',
|
|
147
|
+
quarantineRequired: true,
|
|
148
|
+
quarantineStatus: 'required',
|
|
149
|
+
permissionModel: ['read-only design context by default', 'write/generation actions unsupported', 'account/seat/tool limits must be checked'],
|
|
150
|
+
provenanceRequirements: ['Figma file or node reference', 'tool/server id', 'timestamped design context artifact'],
|
|
151
|
+
hostCompatibility: ['figma:future_adapter', 'mcp:future_adapter'],
|
|
152
|
+
allowedEvidenceTypes: ['design_context', 'external_reference'],
|
|
153
|
+
allowedUse: 'design context, tokens, variables, screenshots, and Code Connect mapping as candidate evidence',
|
|
154
|
+
attribution: 'Figma Dev Mode/MCP documentation',
|
|
155
|
+
rationale: 'Design tooling may inform UI/UX work, but write actions and readiness authority stay unsupported until adapter validation.'
|
|
156
|
+
}),
|
|
157
|
+
source({
|
|
158
|
+
id: 'ui_ux_pro_max_external',
|
|
159
|
+
name: 'ui-ux-pro-max external skill material',
|
|
160
|
+
kind: 'open_source_material',
|
|
161
|
+
sourceRef: 'ui-ux-pro-max external skill or user-global material',
|
|
162
|
+
reuseDecision: 'adapt_via_host_adapter',
|
|
163
|
+
quarantineRequired: true,
|
|
164
|
+
quarantineStatus: 'quarantined',
|
|
165
|
+
permissionModel: ['external skill material requires source review', 'no direct prompt import', 'no design-tool write authority'],
|
|
166
|
+
provenanceRequirements: ['material source path or registry id', 'license/source attribution', 'quarantine scan result'],
|
|
167
|
+
hostCompatibility: ['claude-code:future_adapter', 'host-neutral:future_adapter'],
|
|
168
|
+
allowedEvidenceTypes: ['candidate_evidence', 'design_context'],
|
|
169
|
+
allowedUse: 'UI/UX critique, heuristic review, and design deliverable metadata after quarantine',
|
|
170
|
+
attribution: 'ui-ux-pro-max external material',
|
|
171
|
+
rationale: 'Named external UI/UX skills are useful sources, but must be routed as mapped material rather than copied into baseline packs.'
|
|
172
|
+
}),
|
|
173
|
+
source({
|
|
174
|
+
id: 'roo_cline_permissions',
|
|
175
|
+
name: 'Roo/Cline tool permission envelope',
|
|
176
|
+
kind: 'mechanism_reference',
|
|
177
|
+
sourceRef: 'Roo Code / Cline modes and approvals',
|
|
178
|
+
reuseDecision: 'borrow_mechanism',
|
|
179
|
+
quarantineRequired: false,
|
|
180
|
+
quarantineStatus: 'not_required',
|
|
181
|
+
permissionModel: ['tool group and approval-policy reference only', 'SDD normalizes permissions before host projection'],
|
|
182
|
+
provenanceRequirements: ['referenced permission docs or source path', 'SDD permission policy id'],
|
|
183
|
+
hostCompatibility: ['host-neutral:supported'],
|
|
184
|
+
allowedEvidenceTypes: ['none'],
|
|
185
|
+
allowedUse: 'tool group, approval and runtime validation policy reference',
|
|
186
|
+
attribution: 'Roo Code / Cline',
|
|
187
|
+
rationale: 'Permission semantics should be structured, not natural-language prompt rules.'
|
|
188
|
+
}),
|
|
189
|
+
source({
|
|
190
|
+
id: 'cc_sdd_completion_gate',
|
|
191
|
+
name: 'cc-sdd dispatch and completion gates',
|
|
192
|
+
kind: 'mechanism_reference',
|
|
193
|
+
sourceRef: 'cc-sdd',
|
|
194
|
+
reuseDecision: 'borrow_mechanism',
|
|
195
|
+
quarantineRequired: false,
|
|
196
|
+
quarantineStatus: 'not_required',
|
|
197
|
+
permissionModel: ['mechanism reference only', 'SDD task graph remains authoritative'],
|
|
198
|
+
provenanceRequirements: ['referenced dispatch/completion source', 'SDD evidence mapping decision'],
|
|
199
|
+
hostCompatibility: ['host-neutral:supported'],
|
|
200
|
+
allowedEvidenceTypes: ['none'],
|
|
201
|
+
allowedUse: 'bounded delegation and completion gate reference',
|
|
202
|
+
attribution: 'cc-sdd',
|
|
203
|
+
rationale: 'Useful dispatch pattern, but SDD task graph and evidence remain authoritative.'
|
|
204
|
+
}),
|
|
205
|
+
source({
|
|
206
|
+
id: 'agency_agents_material',
|
|
207
|
+
name: 'Agency agents material library',
|
|
208
|
+
kind: 'open_source_material',
|
|
209
|
+
sourceRef: 'msitarzewski/agency-agents',
|
|
210
|
+
reuseDecision: 'adapt_via_host_adapter',
|
|
211
|
+
quarantineRequired: true,
|
|
212
|
+
quarantineStatus: 'quarantined',
|
|
213
|
+
permissionModel: ['external prompt pack quarantine', 'metadata extraction only before approval', 'no direct execution'],
|
|
214
|
+
provenanceRequirements: ['source repository/ref', 'license/source attribution', 'secret/dangerous-command scan result'],
|
|
215
|
+
hostCompatibility: ['host-neutral:future_adapter'],
|
|
216
|
+
allowedEvidenceTypes: ['candidate_evidence', 'external_reference'],
|
|
217
|
+
allowedUse: 'domain taxonomy, guardrail and deliverable metadata after quarantine',
|
|
218
|
+
attribution: 'agency-agents',
|
|
219
|
+
rationale: 'Large prompt packs are material sources only and must be mapped before routing use.'
|
|
220
|
+
}),
|
|
221
|
+
source({
|
|
222
|
+
id: 'wshobson_manifest',
|
|
223
|
+
name: 'wshobson/BuildWithClaude manifest patterns',
|
|
224
|
+
kind: 'mechanism_reference',
|
|
225
|
+
sourceRef: 'wshobson agents / BuildWithClaude',
|
|
226
|
+
reuseDecision: 'borrow_mechanism',
|
|
227
|
+
quarantineRequired: true,
|
|
228
|
+
quarantineStatus: 'required',
|
|
229
|
+
permissionModel: ['manifest mechanism reference after inspection', 'no copied agent body before quarantine'],
|
|
230
|
+
provenanceRequirements: ['source repository/ref', 'manifest ownership mapping', 'license/source attribution'],
|
|
231
|
+
hostCompatibility: ['claude-code:future_adapter', 'host-neutral:future_adapter'],
|
|
232
|
+
allowedEvidenceTypes: ['none'],
|
|
233
|
+
allowedUse: 'marketplace manifest and file ownership reference after inspection',
|
|
234
|
+
attribution: 'wshobson / BuildWithClaude',
|
|
235
|
+
rationale: 'Borrow manifest/file ownership mechanics without copying agents.'
|
|
236
|
+
}),
|
|
237
|
+
source({
|
|
238
|
+
id: 'crewai_autogen_langgraph',
|
|
239
|
+
name: 'CrewAI/AutoGen/LangGraph workflow frameworks',
|
|
240
|
+
kind: 'future_adapter',
|
|
241
|
+
sourceRef: 'CrewAI / AutoGen / LangGraph',
|
|
242
|
+
reuseDecision: 'avoid',
|
|
243
|
+
quarantineRequired: false,
|
|
244
|
+
quarantineStatus: 'not_required',
|
|
245
|
+
permissionModel: ['unsupported workflow-framework adapter'],
|
|
246
|
+
provenanceRequirements: ['future adapter analysis before any runtime use'],
|
|
247
|
+
hostCompatibility: ['workflow-framework:unsupported'],
|
|
248
|
+
allowedEvidenceTypes: ['none'],
|
|
249
|
+
allowedUse: 'future optional adapter only after Phase 6 contracts stabilize',
|
|
250
|
+
attribution: 'CrewAI / AutoGen / LangGraph',
|
|
251
|
+
rationale: 'Avoid adding a workflow OS or scheduler to Phase 6 core.'
|
|
252
|
+
})
|
|
30
253
|
];
|
|
@@ -7,7 +7,7 @@ import path from 'node:path';
|
|
|
7
7
|
import { initProject } from '../config/init-project.js';
|
|
8
8
|
import { doctor } from '../doctor/doctor.js';
|
|
9
9
|
import { inspectAgentRegistryEntry, listAgentRegistry } from './agent-registry.js';
|
|
10
|
-
import { inspectAgentCapabilityCatalog, validateAgentCapabilityCatalog } from './agent-capability-catalog.js';
|
|
10
|
+
import { inspectAgentCapabilityCatalog, REQUIRED_PROFESSIONAL_CAPABILITY_DOMAINS, validateAgentCapabilityCatalog } from './agent-capability-catalog.js';
|
|
11
11
|
import { decideCommandTeamRuntime, inspectCommandTeamRuntime, validateCommandTeamRuntime } from './command-team-runtime.js';
|
|
12
12
|
import { buildContextBuildPackage } from '../context/build-package.js';
|
|
13
13
|
import {
|
|
@@ -174,12 +174,37 @@ test('Phase 7.6 agent capability catalog routes domains and material packs witho
|
|
|
174
174
|
|
|
175
175
|
assert.equal(catalog.version, 'phase-7.6-agent-capability-catalog-v1');
|
|
176
176
|
assert.equal(validation.valid, true);
|
|
177
|
-
assert.equal(catalog.capabilities.length,
|
|
177
|
+
assert.equal(catalog.capabilities.length, 19);
|
|
178
|
+
assert.equal(catalog.materialPacks.length, 16);
|
|
179
|
+
assert.equal(catalog.capabilities.filter((capability) => capability.domainGroup === 'professional').length, REQUIRED_PROFESSIONAL_CAPABILITY_DOMAINS.length);
|
|
178
180
|
assert.equal(catalog.materialPacks.every((pack) => pack.contextBudget !== 'medium'), true);
|
|
181
|
+
assert.equal(catalog.materialPacks.every((pack) => pack.expectedOutputs.length > 0 && pack.forbiddenUses.length > 0), true);
|
|
179
182
|
assert.equal(specMapping?.requiredDomains.includes('norm_discovery'), true);
|
|
180
183
|
assert.equal(specMapping?.requiredDomains.includes('uncertainty_resolution'), true);
|
|
181
184
|
assert.equal(verifiesMapping?.requiredDomains.includes('verification_design'), true);
|
|
182
185
|
assert.equal(contextCapability?.routing.materialPackIds.includes('performance-risk'), true);
|
|
186
|
+
const backendCapability = catalog.capabilities.find((capability) => capability.domain === 'backend-engineering');
|
|
187
|
+
const frontendCapability = catalog.capabilities.find((capability) => capability.domain === 'frontend-engineering');
|
|
188
|
+
const databaseCapability = catalog.capabilities.find((capability) => capability.domain === 'db-data-engineering');
|
|
189
|
+
const evidenceCapability = catalog.capabilities.find((capability) => capability.id === 'cap.evidence-collection');
|
|
190
|
+
|
|
191
|
+
for (const domain of REQUIRED_PROFESSIONAL_CAPABILITY_DOMAINS) {
|
|
192
|
+
const capability = catalog.capabilities.find((entry) => entry.domain === domain);
|
|
193
|
+
const pack = catalog.materialPacks.find((entry) => entry.sourceKind === 'sdd_native_baseline' && entry.domains.includes(domain));
|
|
194
|
+
assert.equal(capability?.domainGroup, 'professional');
|
|
195
|
+
assert.equal(capability?.authority, 'advisory_only');
|
|
196
|
+
assert.equal(capability?.routing.materialPackIds.includes(pack?.id ?? ''), true);
|
|
197
|
+
assert.equal(pack?.sourceId, 'sdd_professional_baseline');
|
|
198
|
+
assert.equal(pack?.loadPolicy, 'route_when_triggered');
|
|
199
|
+
assert.equal(pack?.forbiddenUses.includes('host-specific skill projection'), true);
|
|
200
|
+
}
|
|
201
|
+
assert.equal(catalog.capabilities.every((capability) => capability.materialPolicy.length > 0 && capability.evidenceExpectation.length > 0), true);
|
|
202
|
+
assert.equal(catalog.capabilities.every((capability) => capability.routing.projectStackTags.length > 0), true);
|
|
203
|
+
assert.equal(backendCapability?.routing.projectStackTags.includes('api'), true);
|
|
204
|
+
assert.equal(frontendCapability?.routing.projectStackTags.includes('tsx'), true);
|
|
205
|
+
assert.equal(databaseCapability?.routing.projectStackTags.includes('sql'), true);
|
|
206
|
+
assert.equal(evidenceCapability?.materialPolicy, 'runtime_evidence_required');
|
|
207
|
+
assert.equal(evidenceCapability?.evidenceExpectation, 'accepted_runtime_evidence');
|
|
183
208
|
assert.equal(catalog.commandMappings.some((mapping) => mapping.materialPolicy === 'never_inline'), false);
|
|
184
209
|
} finally {
|
|
185
210
|
await rm(root, { recursive: true, force: true });
|
|
@@ -70,13 +70,13 @@ const BUILT_IN_WORKFLOW_GATES: WorkflowGateContract[] = [
|
|
|
70
70
|
{
|
|
71
71
|
version: WORKFLOW_GATE_CONTRACT_VERSION,
|
|
72
72
|
id: 'test',
|
|
73
|
-
command: 'sdd test task <task_id>
|
|
74
|
-
requiredInputs: ['task
|
|
73
|
+
command: 'sdd test task <task_id> | sdd test batch <batch_id> | sdd test wave',
|
|
74
|
+
requiredInputs: ['task, batch, or wave boundary', 'validation command ledger', 'validation evidence'],
|
|
75
75
|
allowedAgents: ['validator', 'reviewer'],
|
|
76
|
-
requiredArtifacts: ['artifacts/validation-<task>.md', '
|
|
77
|
-
gateConditions: ['acceptance mapped to evidence', 'validation gaps explicit', '
|
|
76
|
+
requiredArtifacts: ['artifacts/validation-<task>.md', 'workflow gate decision when PASS'],
|
|
77
|
+
gateConditions: ['acceptance mapped to evidence', 'validation gaps explicit', 'workflow gate policy known'],
|
|
78
78
|
gapClosureBehavior: 'Return PASS, FAIL, or BLOCKED when command execution or acceptance evidence is incomplete.',
|
|
79
|
-
nextAction: '
|
|
79
|
+
nextAction: 'Proceed to decision card if policy requires one, otherwise ship dry-run after PASS.'
|
|
80
80
|
},
|
|
81
81
|
{
|
|
82
82
|
version: WORKFLOW_GATE_CONTRACT_VERSION,
|
|
@@ -9,8 +9,10 @@ import type {
|
|
|
9
9
|
AgentRuntimeAdapterMapping,
|
|
10
10
|
AgentRuntimeRoutingRule,
|
|
11
11
|
CapabilityReuseDecision,
|
|
12
|
+
CapabilitySourceAllowedEvidenceType,
|
|
12
13
|
CapabilitySourceCatalogEntry,
|
|
13
14
|
CapabilitySourceKind,
|
|
15
|
+
CapabilitySourceQuarantineStatus,
|
|
14
16
|
ProjectAgentRuntimeConfig,
|
|
15
17
|
SkillCapabilityContract,
|
|
16
18
|
SkillCapabilityEvidenceType,
|
|
@@ -80,18 +82,27 @@ function parseAgentRuntimeSkillCapabilities(lines: string[]): SkillCapabilityCon
|
|
|
80
82
|
}
|
|
81
83
|
|
|
82
84
|
function parseAgentRuntimeCapabilitySources(lines: string[]): CapabilitySourceCatalogEntry[] {
|
|
83
|
-
return parseYamlObjectList(lines).map((object) =>
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
85
|
+
return parseYamlObjectList(lines).map((object) => {
|
|
86
|
+
const quarantineRequired = booleanValue(object.scalars.quarantine_required, true);
|
|
87
|
+
return {
|
|
88
|
+
version: CAPABILITY_SOURCE_CATALOG_VERSION,
|
|
89
|
+
id: object.scalars.id ?? '',
|
|
90
|
+
name: object.scalars.name ?? object.scalars.id ?? '',
|
|
91
|
+
kind: capabilitySourceKindField(object.scalars.kind),
|
|
92
|
+
sourceRef: object.scalars.source_ref ?? '',
|
|
93
|
+
reuseDecision: reuseDecisionField(object.scalars.reuse_decision),
|
|
94
|
+
quarantineRequired,
|
|
95
|
+
quarantineStatus: capabilitySourceQuarantineStatusField(object.scalars.quarantine_status, quarantineRequired ? 'required' : 'not_required'),
|
|
96
|
+
permissionModel: listField(object, 'permission_model', []),
|
|
97
|
+
provenanceRequirements: listField(object, 'provenance_requirements', []),
|
|
98
|
+
hostCompatibility: listField(object, 'host_compatibility', []),
|
|
99
|
+
allowedEvidenceTypes: listField(object, 'allowed_evidence_types', []).map(capabilitySourceAllowedEvidenceTypeField),
|
|
100
|
+
forbiddenAuthority: listField(object, 'forbidden_authority', []),
|
|
101
|
+
allowedUse: object.scalars.allowed_use ?? '',
|
|
102
|
+
attribution: object.scalars.attribution ?? '',
|
|
103
|
+
rationale: object.scalars.rationale ?? ''
|
|
104
|
+
};
|
|
105
|
+
});
|
|
95
106
|
}
|
|
96
107
|
|
|
97
108
|
function parseAgentRuntimeAliases(lines: string[]): Record<string, string> {
|
|
@@ -268,6 +279,14 @@ function capabilitySourceKindField(value: string | undefined): CapabilitySourceK
|
|
|
268
279
|
return value === 'native_host' || value === 'mcp_tool' || value === 'open_source_material' || value === 'mechanism_reference' || value === 'future_adapter' || value === 'project_material' ? value : 'project_material';
|
|
269
280
|
}
|
|
270
281
|
|
|
282
|
+
function capabilitySourceQuarantineStatusField(value: string | undefined, fallback: CapabilitySourceQuarantineStatus): CapabilitySourceQuarantineStatus {
|
|
283
|
+
return value === 'not_required' || value === 'required' || value === 'quarantined' || value === 'denied' ? value : fallback;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
function capabilitySourceAllowedEvidenceTypeField(value: string): CapabilitySourceAllowedEvidenceType {
|
|
287
|
+
return value === 'none' || value === 'candidate_evidence' || value === 'command_output' || value === 'browser_snapshot' || value === 'design_context' || value === 'execution_record' || value === 'external_reference' ? value : 'candidate_evidence';
|
|
288
|
+
}
|
|
289
|
+
|
|
271
290
|
function agentRouterCategoryField(value: string | undefined): AgentRouterCategory | null {
|
|
272
291
|
return value === 'planning' || value === 'implementation' || value === 'implementation_review' || value === 'validation' || value === 'security_research' || value === 'external_research' || value === 'blocked' ? value : null;
|
|
273
292
|
}
|
|
@@ -15,6 +15,7 @@ import type { ArtifactResultIngestionStatus } from '../artifacts/ingestion.js';
|
|
|
15
15
|
import type { SddResultStatus } from '../artifacts/sdd-result.js';
|
|
16
16
|
import type { RouteCacheMetadata, RuntimeProfileSpan, TeamModeActivation } from './route-cache.js';
|
|
17
17
|
import type { ApprovalPolicy, LifecycleRiskProfile, LifecycleWorkflowGate } from '../risk.js';
|
|
18
|
+
import type { AgentCapabilityAuthority, AgentCapabilityDomain, AgentCapabilityMaterialPack, MaterialPackLoadPolicy } from '../registries/agent-capability-catalog.js';
|
|
18
19
|
|
|
19
20
|
export type BuiltInAgentProfileId = 'planner' | 'architect' | 'implementer' | 'reviewer' | 'validator' | 'researcher' | 'orchestrator' | 'security' | 'domain_expert';
|
|
20
21
|
export type AgentProfileId = BuiltInAgentProfileId | string;
|
|
@@ -22,7 +23,9 @@ export type CapabilityReuseDecision = 'reuse_direct' | 'adapt_via_host_adapter'
|
|
|
22
23
|
export type SkillCapabilityKind = 'skill' | 'mcp' | 'cli_tool' | 'host_tool' | 'project_agent' | 'external_pattern';
|
|
23
24
|
export type SkillCapabilitySource = 'project' | 'user_global' | 'claude_code' | 'mcp' | 'open_source' | 'host';
|
|
24
25
|
export type SkillCapabilityEvidenceType = 'none' | 'command_output' | 'test_result' | 'browser_snapshot' | 'artifact' | 'external_source' | 'execution_record';
|
|
25
|
-
export type CapabilitySourceKind = 'native_host' | 'mcp_tool' | 'open_source_material' | 'mechanism_reference' | 'future_adapter' | 'project_material';
|
|
26
|
+
export type CapabilitySourceKind = 'native_host' | 'mcp_tool' | 'cli_tool' | 'user_global_material' | 'open_source_material' | 'mechanism_reference' | 'future_adapter' | 'project_material';
|
|
27
|
+
export type CapabilitySourceQuarantineStatus = 'not_required' | 'required' | 'quarantined' | 'denied';
|
|
28
|
+
export type CapabilitySourceAllowedEvidenceType = 'none' | 'candidate_evidence' | 'command_output' | 'browser_snapshot' | 'design_context' | 'execution_record' | 'external_reference';
|
|
26
29
|
export type ExternalPackImportStatus = 'approved' | 'quarantined' | 'denied';
|
|
27
30
|
export type ExternalPackCheckStatus = 'pass' | 'warn' | 'fail' | 'not_run';
|
|
28
31
|
export type ToolPermissionPolicy = 'allow' | 'ask' | 'deny';
|
|
@@ -33,6 +36,8 @@ export type TeamModeCostClass = 'none' | 'low' | 'medium' | 'high';
|
|
|
33
36
|
export type TeamModeCostRoute = 'not_applicable' | 'downgraded' | 'no_downgrade' | 'blocked';
|
|
34
37
|
export type AgentExecutionRecordStatus = 'claimed' | 'completed' | 'failed' | 'blocked' | 'skipped';
|
|
35
38
|
export type TeamSessionRecordStatus = 'created' | 'completed' | 'blocked' | 'disabled';
|
|
39
|
+
export type WorkflowHostAdapterId = 'claude_code' | 'codex' | 'opencode';
|
|
40
|
+
export type WorkflowHostAdapterSupport = 'active' | 'future' | 'unsupported';
|
|
36
41
|
|
|
37
42
|
export interface AgentProfileContract {
|
|
38
43
|
version: typeof AGENT_SKILL_TEAM_RUNTIME_CONTRACT_VERSION;
|
|
@@ -70,6 +75,12 @@ export interface CapabilitySourceCatalogEntry {
|
|
|
70
75
|
sourceRef: string;
|
|
71
76
|
reuseDecision: CapabilityReuseDecision;
|
|
72
77
|
quarantineRequired: boolean;
|
|
78
|
+
quarantineStatus: CapabilitySourceQuarantineStatus;
|
|
79
|
+
permissionModel: string[];
|
|
80
|
+
provenanceRequirements: string[];
|
|
81
|
+
hostCompatibility: string[];
|
|
82
|
+
allowedEvidenceTypes: CapabilitySourceAllowedEvidenceType[];
|
|
83
|
+
forbiddenAuthority: string[];
|
|
73
84
|
allowedUse: string;
|
|
74
85
|
attribution: string;
|
|
75
86
|
rationale: string;
|
|
@@ -157,6 +168,16 @@ export interface ToolPermissionSpec {
|
|
|
157
168
|
hostPermissionProjection: string;
|
|
158
169
|
}
|
|
159
170
|
|
|
171
|
+
export interface HostWorkflowProjectionContract {
|
|
172
|
+
host: WorkflowHostAdapterId;
|
|
173
|
+
support: WorkflowHostAdapterSupport;
|
|
174
|
+
commandSurface: string[];
|
|
175
|
+
skillSurface: string[];
|
|
176
|
+
permissionSurface: string[];
|
|
177
|
+
evidenceReturn: string[];
|
|
178
|
+
unsupportedReason: string | null;
|
|
179
|
+
}
|
|
180
|
+
|
|
160
181
|
export interface HostAdapterContract {
|
|
161
182
|
version: typeof HOST_ADAPTER_CONTRACT_VERSION;
|
|
162
183
|
id: string;
|
|
@@ -164,6 +185,8 @@ export interface HostAdapterContract {
|
|
|
164
185
|
responsibilities: string[];
|
|
165
186
|
forbiddenAuthority: string[];
|
|
166
187
|
projections: string[];
|
|
188
|
+
workflowProjectionPolicy: string;
|
|
189
|
+
workflowProjections: HostWorkflowProjectionContract[];
|
|
167
190
|
}
|
|
168
191
|
|
|
169
192
|
export interface DelegationWavePolicy {
|
|
@@ -263,6 +286,47 @@ export interface AgentRouterRejectedProfile {
|
|
|
263
286
|
reason: string;
|
|
264
287
|
}
|
|
265
288
|
|
|
289
|
+
export interface AgentCapabilitySelectedDomain {
|
|
290
|
+
domain: AgentCapabilityDomain;
|
|
291
|
+
capabilityId: string;
|
|
292
|
+
authority: AgentCapabilityAuthority;
|
|
293
|
+
reason: string;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
export interface AgentCapabilitySelectedMaterialPack {
|
|
297
|
+
id: string;
|
|
298
|
+
domains: AgentCapabilityDomain[];
|
|
299
|
+
loadPolicy: MaterialPackLoadPolicy;
|
|
300
|
+
contextBudget: AgentCapabilityMaterialPack['contextBudget'];
|
|
301
|
+
sourceKind: AgentCapabilityMaterialPack['sourceKind'];
|
|
302
|
+
expectedOutputs: string[];
|
|
303
|
+
reason: string;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
export interface AgentCapabilityRejectedSource {
|
|
307
|
+
sourceId: string;
|
|
308
|
+
quarantineStatus: CapabilitySourceQuarantineStatus;
|
|
309
|
+
reuseDecision: CapabilityReuseDecision;
|
|
310
|
+
allowedEvidenceTypes: CapabilitySourceAllowedEvidenceType[];
|
|
311
|
+
reason: string;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
export interface AgentCapabilityConsideredSource extends AgentCapabilityRejectedSource {
|
|
315
|
+
kind: CapabilitySourceKind;
|
|
316
|
+
consideredUse: string;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
export interface AgentCapabilityRouteDecision {
|
|
321
|
+
authority: 'advisory_only';
|
|
322
|
+
selectedDomains: AgentCapabilitySelectedDomain[];
|
|
323
|
+
selectedPacks: AgentCapabilitySelectedMaterialPack[];
|
|
324
|
+
rejectedExternalSources: AgentCapabilityRejectedSource[];
|
|
325
|
+
consideredExternalSources: AgentCapabilityConsideredSource[];
|
|
326
|
+
evidenceRequirements: string[];
|
|
327
|
+
permissionCeiling: LifecycleAutonomyCeiling;
|
|
328
|
+
}
|
|
329
|
+
|
|
266
330
|
export interface AgentRouterDecision {
|
|
267
331
|
version: typeof AGENT_ROUTER_CONTRACT_VERSION;
|
|
268
332
|
taskId: string;
|
|
@@ -286,6 +350,7 @@ export interface AgentRouterDecision {
|
|
|
286
350
|
requiredArtifacts: string[];
|
|
287
351
|
blockedReason: string | null;
|
|
288
352
|
nextAction: string;
|
|
353
|
+
capabilityDecision: AgentCapabilityRouteDecision;
|
|
289
354
|
registrySources?: RuntimeRegistryEntrySource[];
|
|
290
355
|
resolvedAliases?: AgentRuntimeAliasResolution[];
|
|
291
356
|
routingRuleHits?: string[];
|