agentic-orchestrator 0.1.6 → 0.1.8
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/.prettierignore +10 -0
- package/.prettierrc.json +24 -0
- package/CLAUDE.md +3 -2
- package/README.md +71 -48
- package/agentic/orchestrator/defaults/policy.defaults.yaml +1 -1
- package/agentic/orchestrator/prompts/planner.system.md +1 -0
- package/agentic/orchestrator/schemas/agents.schema.json +5 -22
- package/agentic/orchestrator/schemas/gates.schema.json +4 -19
- package/agentic/orchestrator/schemas/index.schema.json +3 -14
- package/agentic/orchestrator/schemas/multi-project.schema.json +2 -8
- package/agentic/orchestrator/schemas/plan.schema.json +6 -26
- package/agentic/orchestrator/schemas/policy.schema.json +19 -81
- package/agentic/orchestrator/schemas/policy.user.schema.json +1 -5
- package/agentic/orchestrator/schemas/qa_test_index.schema.json +5 -29
- package/agentic/orchestrator/schemas/state.schema.json +11 -61
- package/agentic/orchestrator/tools/catalog.json +33 -164
- package/agentic/orchestrator/tools/schemas/input/evidence.latest.input.schema.json +1 -3
- package/agentic/orchestrator/tools/schemas/input/feature.delete.input.schema.json +1 -5
- package/agentic/orchestrator/tools/schemas/input/feature.get_context.input.schema.json +1 -3
- package/agentic/orchestrator/tools/schemas/input/feature.init.input.schema.json +1 -4
- package/agentic/orchestrator/tools/schemas/input/feature.log_append.input.schema.json +1 -5
- package/agentic/orchestrator/tools/schemas/input/feature.ready_to_merge.input.schema.json +1 -6
- package/agentic/orchestrator/tools/schemas/input/feature.state_get.input.schema.json +1 -3
- package/agentic/orchestrator/tools/schemas/input/feature.state_patch.input.schema.json +1 -5
- package/agentic/orchestrator/tools/schemas/input/gates.run.input.schema.json +1 -5
- package/agentic/orchestrator/tools/schemas/input/locks.acquire.input.schema.json +1 -5
- package/agentic/orchestrator/tools/schemas/input/locks.release.input.schema.json +1 -5
- package/agentic/orchestrator/tools/schemas/input/performance.record_outcome.input.schema.json +10 -1
- package/agentic/orchestrator/tools/schemas/input/plan.get.input.schema.json +1 -3
- package/agentic/orchestrator/tools/schemas/input/plan.submit.input.schema.json +1 -5
- package/agentic/orchestrator/tools/schemas/input/plan.update.input.schema.json +1 -6
- package/agentic/orchestrator/tools/schemas/input/qa.test_index_get.input.schema.json +1 -3
- package/agentic/orchestrator/tools/schemas/input/qa.test_index_update.input.schema.json +1 -6
- package/agentic/orchestrator/tools/schemas/input/repo.apply_patch.input.schema.json +1 -5
- package/agentic/orchestrator/tools/schemas/input/repo.diff.input.schema.json +1 -3
- package/agentic/orchestrator/tools/schemas/input/repo.diff_bundle.input.schema.json +1 -3
- package/agentic/orchestrator/tools/schemas/input/repo.ensure_worktree.input.schema.json +1 -4
- package/agentic/orchestrator/tools/schemas/input/repo.read_file.input.schema.json +1 -4
- package/agentic/orchestrator/tools/schemas/input/repo.search.input.schema.json +1 -4
- package/agentic/orchestrator/tools/schemas/input/repo.status.input.schema.json +1 -3
- package/agentic/orchestrator/tools/schemas/input/report.feature_summary.input.schema.json +1 -3
- package/agentic/orchestrator/tools/schemas/output/collisions.scan.output.schema.json +1 -3
- package/agentic/orchestrator/tools/schemas/output/evidence.latest.output.schema.json +1 -4
- package/agentic/orchestrator/tools/schemas/output/feature.delete.output.schema.json +4 -20
- package/agentic/orchestrator/tools/schemas/output/feature.discover_specs.output.schema.json +2 -7
- package/agentic/orchestrator/tools/schemas/output/feature.get_context.output.schema.json +1 -8
- package/agentic/orchestrator/tools/schemas/output/feature.init.output.schema.json +1 -5
- package/agentic/orchestrator/tools/schemas/output/feature.log_append.output.schema.json +1 -5
- package/agentic/orchestrator/tools/schemas/output/feature.ready_to_merge.output.schema.json +1 -6
- package/agentic/orchestrator/tools/schemas/output/feature.state_get.output.schema.json +1 -4
- package/agentic/orchestrator/tools/schemas/output/feature.state_patch.output.schema.json +1 -5
- package/agentic/orchestrator/tools/schemas/output/gates.list.output.schema.json +2 -7
- package/agentic/orchestrator/tools/schemas/output/gates.run.output.schema.json +1 -8
- package/agentic/orchestrator/tools/schemas/output/locks.acquire.output.schema.json +1 -7
- package/agentic/orchestrator/tools/schemas/output/locks.release.output.schema.json +1 -5
- package/agentic/orchestrator/tools/schemas/output/performance.get_analytics.output.schema.json +22 -2
- package/agentic/orchestrator/tools/schemas/output/plan.get.output.schema.json +1 -4
- package/agentic/orchestrator/tools/schemas/output/plan.submit.output.schema.json +1 -5
- package/agentic/orchestrator/tools/schemas/output/plan.update.output.schema.json +1 -5
- package/agentic/orchestrator/tools/schemas/output/qa.test_index_get.output.schema.json +1 -5
- package/agentic/orchestrator/tools/schemas/output/qa.test_index_update.output.schema.json +1 -4
- package/agentic/orchestrator/tools/schemas/output/repo.apply_patch.output.schema.json +1 -6
- package/agentic/orchestrator/tools/schemas/output/repo.diff.output.schema.json +1 -4
- package/agentic/orchestrator/tools/schemas/output/repo.diff_bundle.output.schema.json +1 -7
- package/agentic/orchestrator/tools/schemas/output/repo.ensure_worktree.output.schema.json +1 -6
- package/agentic/orchestrator/tools/schemas/output/repo.read_file.output.schema.json +1 -5
- package/agentic/orchestrator/tools/schemas/output/repo.search.output.schema.json +1 -5
- package/agentic/orchestrator/tools/schemas/output/repo.status.output.schema.json +1 -5
- package/agentic/orchestrator/tools/schemas/output/report.dashboard.output.schema.json +1 -4
- package/apps/control-plane/scripts/validate-architecture-rules.mjs +16 -5
- package/apps/control-plane/scripts/validate-docker-mcp-contract.mjs +30 -8
- package/apps/control-plane/scripts/validate-mcp-contracts.ts +13 -7
- package/apps/control-plane/src/application/adapters/adapter-registry.ts +35 -15
- package/apps/control-plane/src/application/multi-project-loader.ts +27 -10
- package/apps/control-plane/src/application/services/activity-monitor-service.ts +26 -14
- package/apps/control-plane/src/application/services/collision-queue-service.ts +31 -17
- package/apps/control-plane/src/application/services/cost-tracking-service.ts +23 -16
- package/apps/control-plane/src/application/services/dependency-scheduler-service.ts +12 -4
- package/apps/control-plane/src/application/services/feature-deletion-service.ts +94 -58
- package/apps/control-plane/src/application/services/feature-lifecycle-service.ts +19 -13
- package/apps/control-plane/src/application/services/feature-state-service.ts +29 -19
- package/apps/control-plane/src/application/services/gate-interpolation-service.ts +7 -2
- package/apps/control-plane/src/application/services/gate-service.ts +64 -41
- package/apps/control-plane/src/application/services/instance-isolation-service.ts +1 -1
- package/apps/control-plane/src/application/services/issue-tracker-service.ts +49 -38
- package/apps/control-plane/src/application/services/lock-service.ts +75 -49
- package/apps/control-plane/src/application/services/merge-service.ts +91 -50
- package/apps/control-plane/src/application/services/notifier-service.ts +42 -20
- package/apps/control-plane/src/application/services/patch-service.ts +73 -44
- package/apps/control-plane/src/application/services/performance-analytics-service.ts +8 -6
- package/apps/control-plane/src/application/services/plan-service.ts +148 -89
- package/apps/control-plane/src/application/services/policy-loader-service.ts +10 -4
- package/apps/control-plane/src/application/services/pr-monitor-service.ts +33 -14
- package/apps/control-plane/src/application/services/qa-index-service.ts +20 -16
- package/apps/control-plane/src/application/services/reactions-service.ts +30 -15
- package/apps/control-plane/src/application/services/reporting-service.ts +16 -12
- package/apps/control-plane/src/application/services/run-lease-service.ts +138 -81
- package/apps/control-plane/src/application/tools/tool-metadata.ts +5 -5
- package/apps/control-plane/src/application/tools/tool-router.ts +6 -3
- package/apps/control-plane/src/cli/aop.ts +2 -2
- package/apps/control-plane/src/cli/attach-command-handler.ts +9 -9
- package/apps/control-plane/src/cli/cleanup-command-handler.ts +16 -11
- package/apps/control-plane/src/cli/cli-argument-parser.ts +6 -3
- package/apps/control-plane/src/cli/dashboard-command-handler.ts +28 -8
- package/apps/control-plane/src/cli/delete-command-handler.ts +7 -7
- package/apps/control-plane/src/cli/env-file.ts +115 -0
- package/apps/control-plane/src/cli/help-command-handler.ts +61 -32
- package/apps/control-plane/src/cli/init-command-handler.ts +182 -56
- package/apps/control-plane/src/cli/io.ts +7 -3
- package/apps/control-plane/src/cli/resume-command-handler.ts +21 -13
- package/apps/control-plane/src/cli/retry-command-handler.ts +12 -11
- package/apps/control-plane/src/cli/run-command-handler.ts +12 -8
- package/apps/control-plane/src/cli/send-command-handler.ts +6 -6
- package/apps/control-plane/src/cli/spec-ingestion-service.ts +14 -8
- package/apps/control-plane/src/cli/spec-input-resolver.ts +6 -1
- package/apps/control-plane/src/cli/spec-utils.ts +2 -2
- package/apps/control-plane/src/cli/status-command-handler.ts +13 -12
- package/apps/control-plane/src/cli/tooling.ts +3 -3
- package/apps/control-plane/src/cli/types.ts +1 -1
- package/apps/control-plane/src/core/collisions.ts +27 -10
- package/apps/control-plane/src/core/constants.ts +13 -7
- package/apps/control-plane/src/core/error-codes.ts +1 -1
- package/apps/control-plane/src/core/fs.ts +11 -5
- package/apps/control-plane/src/core/gates.ts +53 -27
- package/apps/control-plane/src/core/git.ts +18 -6
- package/apps/control-plane/src/core/kernel.ts +513 -227
- package/apps/control-plane/src/core/patch.ts +7 -3
- package/apps/control-plane/src/core/path-layout.ts +5 -1
- package/apps/control-plane/src/core/path-rules.ts +19 -5
- package/apps/control-plane/src/core/qa-index.ts +26 -12
- package/apps/control-plane/src/core/response.ts +9 -6
- package/apps/control-plane/src/core/schemas.ts +29 -10
- package/apps/control-plane/src/core/tool-caller.ts +1 -1
- package/apps/control-plane/src/core/workspace-hooks.ts +5 -5
- package/apps/control-plane/src/index.ts +3 -9
- package/apps/control-plane/src/interfaces/cli/bootstrap.ts +79 -35
- package/apps/control-plane/src/mcp/kernel-tool-executor.ts +7 -3
- package/apps/control-plane/src/mcp/mcp-server-adapter.ts +12 -10
- package/apps/control-plane/src/mcp/operation-ledger.ts +18 -8
- package/apps/control-plane/src/mcp/protocol-contract.ts +2 -2
- package/apps/control-plane/src/mcp/runtime-factory.ts +15 -6
- package/apps/control-plane/src/mcp/token-auth-verifier.ts +3 -2
- package/apps/control-plane/src/mcp/token-claims-validator.ts +11 -7
- package/apps/control-plane/src/mcp/tool-authorizer.ts +1 -3
- package/apps/control-plane/src/mcp/tool-client.ts +17 -5
- package/apps/control-plane/src/mcp/tool-contract-validator.ts +17 -8
- package/apps/control-plane/src/mcp/tool-registry-loader.ts +7 -3
- package/apps/control-plane/src/mcp/tool-runtime.ts +66 -39
- package/apps/control-plane/src/mcp/tools-markdown-generator.ts +6 -1
- package/apps/control-plane/src/providers/providers.ts +137 -54
- package/apps/control-plane/src/supervisor/build-wave-executor.ts +44 -25
- package/apps/control-plane/src/supervisor/planning-wave-executor.ts +46 -33
- package/apps/control-plane/src/supervisor/prompt-bundle-loader.ts +1 -1
- package/apps/control-plane/src/supervisor/qa-wave-executor.ts +38 -23
- package/apps/control-plane/src/supervisor/run-coordinator.ts +71 -36
- package/apps/control-plane/src/supervisor/runtime.ts +59 -35
- package/apps/control-plane/src/supervisor/session-orchestrator.ts +48 -31
- package/apps/control-plane/src/supervisor/types.ts +22 -7
- package/apps/control-plane/src/supervisor/worker-decision-loop.ts +30 -20
- package/apps/control-plane/test/activity-monitor.spec.ts +54 -30
- package/apps/control-plane/test/adapter-registry.spec.ts +5 -5
- package/apps/control-plane/test/aop.spec.ts +4 -4
- package/apps/control-plane/test/batch-operations.spec.ts +20 -18
- package/apps/control-plane/test/bootstrap-attach.spec.ts +52 -19
- package/apps/control-plane/test/bootstrap-edge-cases.spec.ts +58 -27
- package/apps/control-plane/test/bootstrap.spec.ts +72 -40
- package/apps/control-plane/test/cleanup-command.spec.ts +86 -32
- package/apps/control-plane/test/cli-helpers.spec.ts +119 -66
- package/apps/control-plane/test/cli.spec.ts +1 -1
- package/apps/control-plane/test/cli.unit.spec.ts +226 -167
- package/apps/control-plane/test/collision-queue.spec.ts +49 -40
- package/apps/control-plane/test/collisions.spec.ts +30 -30
- package/apps/control-plane/test/core-utils.spec.ts +29 -15
- package/apps/control-plane/test/cost-tracking.spec.ts +38 -22
- package/apps/control-plane/test/dashboard-api.integration.spec.ts +68 -36
- package/apps/control-plane/test/dashboard-client.spec.ts +18 -12
- package/apps/control-plane/test/dashboard-command.spec.ts +11 -7
- package/apps/control-plane/test/delete-command-handler.spec.ts +49 -41
- package/apps/control-plane/test/dependency-scheduler.spec.ts +47 -20
- package/apps/control-plane/test/epoch-tracking.spec.ts +9 -9
- package/apps/control-plane/test/feature-deletion-service.spec.ts +60 -52
- package/apps/control-plane/test/feature-lifecycle.spec.ts +36 -17
- package/apps/control-plane/test/gates.spec.ts +101 -81
- package/apps/control-plane/test/git-spawn-error.spec.ts +1 -1
- package/apps/control-plane/test/helpers.ts +10 -6
- package/apps/control-plane/test/incremental-gates.spec.ts +59 -20
- package/apps/control-plane/test/init-wizard.spec.ts +328 -68
- package/apps/control-plane/test/instance-isolation.spec.ts +43 -10
- package/apps/control-plane/test/issue-tracker.spec.ts +368 -128
- package/apps/control-plane/test/kernel-collision-replay.spec.ts +50 -29
- package/apps/control-plane/test/kernel.branches.spec.ts +64 -40
- package/apps/control-plane/test/kernel.coverage.spec.ts +85 -49
- package/apps/control-plane/test/kernel.coverage2.spec.ts +109 -65
- package/apps/control-plane/test/kernel.spec.ts +134 -51
- package/apps/control-plane/test/lock-service.spec.ts +92 -68
- package/apps/control-plane/test/mcp-helpers.spec.ts +53 -39
- package/apps/control-plane/test/mcp.spec.ts +231 -115
- package/apps/control-plane/test/merge-service.spec.ts +142 -94
- package/apps/control-plane/test/multi-project.spec.ts +28 -22
- package/apps/control-plane/test/notifier-service.spec.ts +136 -92
- package/apps/control-plane/test/parallel-gates.spec.ts +51 -35
- package/apps/control-plane/test/patch-service.spec.ts +128 -48
- package/apps/control-plane/test/performance-analytics.spec.ts +99 -63
- package/apps/control-plane/test/plan-service.spec.ts +50 -39
- package/apps/control-plane/test/planning-wave-executor.spec.ts +95 -71
- package/apps/control-plane/test/policy-loader-service.spec.ts +41 -19
- package/apps/control-plane/test/pr-monitor.spec.ts +113 -64
- package/apps/control-plane/test/providers.spec.ts +208 -104
- package/apps/control-plane/test/qa-index-service.spec.ts +31 -33
- package/apps/control-plane/test/qa-index.spec.ts +58 -61
- package/apps/control-plane/test/reactions.spec.ts +88 -45
- package/apps/control-plane/test/response.spec.ts +5 -5
- package/apps/control-plane/test/resume-command.spec.ts +121 -80
- package/apps/control-plane/test/run-coordinator.spec.ts +205 -136
- package/apps/control-plane/test/schema-date-time.spec.ts +49 -41
- package/apps/control-plane/test/service-retry-paths.spec.ts +77 -57
- package/apps/control-plane/test/services.spec.ts +147 -129
- package/apps/control-plane/test/session-management.spec.ts +136 -74
- package/apps/control-plane/test/spec-ingestion.spec.ts +23 -21
- package/apps/control-plane/test/spec-input-resolver.spec.ts +11 -10
- package/apps/control-plane/test/supervisor-collaborators.spec.ts +168 -121
- package/apps/control-plane/test/supervisor.calltool.spec.ts +21 -18
- package/apps/control-plane/test/supervisor.spec.ts +67 -43
- package/apps/control-plane/test/supervisor.unit.spec.ts +195 -126
- package/apps/control-plane/test/token-auth-verifier.spec.ts +29 -14
- package/apps/control-plane/test/tool-registry-loader.spec.ts +51 -27
- package/apps/control-plane/test/tool-runtime.spec.ts +63 -46
- package/apps/control-plane/test/worker-decision-loop.spec.ts +143 -122
- package/apps/control-plane/test/workspace-hooks.spec.ts +61 -23
- package/apps/control-plane/tsconfig.build.json +2 -7
- package/apps/control-plane/tsconfig.json +1 -5
- package/apps/control-plane/vitest.config.ts +7 -7
- package/config/agentic/orchestrator/adapters.yaml +3 -0
- package/config/agentic/orchestrator/agents.yaml +14 -0
- package/config/agentic/orchestrator/gates.yaml +28 -0
- package/config/agentic/orchestrator/policy.yaml +22 -0
- package/config/agentic/orchestrator/prompts/builder.system.md +1 -0
- package/config/agentic/orchestrator/prompts/planner.system.md +16 -0
- package/config/agentic/orchestrator/prompts/qa.system.md +1 -0
- package/dist/apps/control-plane/application/adapters/adapter-registry.js +12 -5
- package/dist/apps/control-plane/application/adapters/adapter-registry.js.map +1 -1
- package/dist/apps/control-plane/application/multi-project-loader.js +26 -9
- package/dist/apps/control-plane/application/multi-project-loader.js.map +1 -1
- package/dist/apps/control-plane/application/services/activity-monitor-service.js +7 -7
- package/dist/apps/control-plane/application/services/activity-monitor-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/collision-queue-service.js +7 -7
- package/dist/apps/control-plane/application/services/collision-queue-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/cost-tracking-service.js +6 -8
- package/dist/apps/control-plane/application/services/cost-tracking-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/dependency-scheduler-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/feature-deletion-service.js +37 -29
- package/dist/apps/control-plane/application/services/feature-deletion-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/feature-lifecycle-service.js +10 -10
- package/dist/apps/control-plane/application/services/feature-lifecycle-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/feature-state-service.js +11 -11
- package/dist/apps/control-plane/application/services/feature-state-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/gate-interpolation-service.js +3 -1
- package/dist/apps/control-plane/application/services/gate-interpolation-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/gate-service.js +26 -26
- package/dist/apps/control-plane/application/services/gate-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/instance-isolation-service.js +1 -1
- package/dist/apps/control-plane/application/services/instance-isolation-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/issue-tracker-service.js +25 -15
- package/dist/apps/control-plane/application/services/issue-tracker-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/lock-service.js +32 -32
- package/dist/apps/control-plane/application/services/lock-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/merge-service.js +41 -27
- package/dist/apps/control-plane/application/services/merge-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/notifier-service.js +29 -15
- package/dist/apps/control-plane/application/services/notifier-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/patch-service.js +21 -19
- package/dist/apps/control-plane/application/services/patch-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/performance-analytics-service.js +4 -4
- package/dist/apps/control-plane/application/services/performance-analytics-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/plan-service.js +33 -33
- package/dist/apps/control-plane/application/services/plan-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/policy-loader-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/pr-monitor-service.js +23 -11
- package/dist/apps/control-plane/application/services/pr-monitor-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/qa-index-service.js +11 -11
- package/dist/apps/control-plane/application/services/qa-index-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/reactions-service.js +13 -9
- package/dist/apps/control-plane/application/services/reactions-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/reporting-service.js +11 -9
- package/dist/apps/control-plane/application/services/reporting-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/run-lease-service.js +34 -33
- package/dist/apps/control-plane/application/services/run-lease-service.js.map +1 -1
- package/dist/apps/control-plane/application/tools/tool-metadata.js +2 -2
- package/dist/apps/control-plane/application/tools/tool-router.js.map +1 -1
- package/dist/apps/control-plane/cli/attach-command-handler.js +9 -9
- package/dist/apps/control-plane/cli/cleanup-command-handler.js +11 -9
- package/dist/apps/control-plane/cli/cleanup-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/cli-argument-parser.js +4 -3
- package/dist/apps/control-plane/cli/cli-argument-parser.js.map +1 -1
- package/dist/apps/control-plane/cli/dashboard-command-handler.js +23 -7
- package/dist/apps/control-plane/cli/dashboard-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/delete-command-handler.js +7 -7
- package/dist/apps/control-plane/cli/env-file.d.ts +4 -0
- package/dist/apps/control-plane/cli/env-file.js +89 -0
- package/dist/apps/control-plane/cli/env-file.js.map +1 -0
- package/dist/apps/control-plane/cli/help-command-handler.js +58 -30
- package/dist/apps/control-plane/cli/help-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/init-command-handler.js +97 -37
- package/dist/apps/control-plane/cli/init-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/io.js +2 -2
- package/dist/apps/control-plane/cli/io.js.map +1 -1
- package/dist/apps/control-plane/cli/resume-command-handler.js +9 -9
- package/dist/apps/control-plane/cli/resume-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/retry-command-handler.js +12 -11
- package/dist/apps/control-plane/cli/retry-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/run-command-handler.js +12 -8
- package/dist/apps/control-plane/cli/run-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/send-command-handler.js +6 -6
- package/dist/apps/control-plane/cli/spec-ingestion-service.js +10 -8
- package/dist/apps/control-plane/cli/spec-ingestion-service.js.map +1 -1
- package/dist/apps/control-plane/cli/spec-input-resolver.js.map +1 -1
- package/dist/apps/control-plane/cli/spec-utils.js.map +1 -1
- package/dist/apps/control-plane/cli/status-command-handler.js +8 -8
- package/dist/apps/control-plane/cli/status-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/tooling.js +1 -1
- package/dist/apps/control-plane/core/collisions.js +11 -8
- package/dist/apps/control-plane/core/collisions.js.map +1 -1
- package/dist/apps/control-plane/core/constants.js +13 -7
- package/dist/apps/control-plane/core/constants.js.map +1 -1
- package/dist/apps/control-plane/core/error-codes.js +1 -1
- package/dist/apps/control-plane/core/fs.js.map +1 -1
- package/dist/apps/control-plane/core/gates.d.ts +2 -2
- package/dist/apps/control-plane/core/gates.js +26 -19
- package/dist/apps/control-plane/core/gates.js.map +1 -1
- package/dist/apps/control-plane/core/git.js +3 -3
- package/dist/apps/control-plane/core/git.js.map +1 -1
- package/dist/apps/control-plane/core/kernel.d.ts +1 -0
- package/dist/apps/control-plane/core/kernel.js +134 -81
- package/dist/apps/control-plane/core/kernel.js.map +1 -1
- package/dist/apps/control-plane/core/patch.js +7 -3
- package/dist/apps/control-plane/core/patch.js.map +1 -1
- package/dist/apps/control-plane/core/path-layout.d.ts +1 -0
- package/dist/apps/control-plane/core/path-layout.js +4 -1
- package/dist/apps/control-plane/core/path-layout.js.map +1 -1
- package/dist/apps/control-plane/core/path-rules.js +3 -1
- package/dist/apps/control-plane/core/path-rules.js.map +1 -1
- package/dist/apps/control-plane/core/qa-index.js +5 -5
- package/dist/apps/control-plane/core/qa-index.js.map +1 -1
- package/dist/apps/control-plane/core/response.js +3 -3
- package/dist/apps/control-plane/core/response.js.map +1 -1
- package/dist/apps/control-plane/core/schemas.js +10 -6
- package/dist/apps/control-plane/core/schemas.js.map +1 -1
- package/dist/apps/control-plane/core/workspace-hooks.js +3 -3
- package/dist/apps/control-plane/index.d.ts +1 -1
- package/dist/apps/control-plane/index.js +1 -1
- package/dist/apps/control-plane/index.js.map +1 -1
- package/dist/apps/control-plane/interfaces/cli/bootstrap.js +40 -23
- package/dist/apps/control-plane/interfaces/cli/bootstrap.js.map +1 -1
- package/dist/apps/control-plane/mcp/kernel-tool-executor.js +1 -1
- package/dist/apps/control-plane/mcp/kernel-tool-executor.js.map +1 -1
- package/dist/apps/control-plane/mcp/mcp-server-adapter.js +6 -7
- package/dist/apps/control-plane/mcp/mcp-server-adapter.js.map +1 -1
- package/dist/apps/control-plane/mcp/operation-ledger.js +5 -5
- package/dist/apps/control-plane/mcp/operation-ledger.js.map +1 -1
- package/dist/apps/control-plane/mcp/protocol-contract.js +2 -2
- package/dist/apps/control-plane/mcp/runtime-factory.js +2 -2
- package/dist/apps/control-plane/mcp/runtime-factory.js.map +1 -1
- package/dist/apps/control-plane/mcp/token-auth-verifier.js +1 -1
- package/dist/apps/control-plane/mcp/token-auth-verifier.js.map +1 -1
- package/dist/apps/control-plane/mcp/token-claims-validator.js +5 -5
- package/dist/apps/control-plane/mcp/token-claims-validator.js.map +1 -1
- package/dist/apps/control-plane/mcp/tool-authorizer.js +1 -3
- package/dist/apps/control-plane/mcp/tool-authorizer.js.map +1 -1
- package/dist/apps/control-plane/mcp/tool-client.js +2 -2
- package/dist/apps/control-plane/mcp/tool-client.js.map +1 -1
- package/dist/apps/control-plane/mcp/tool-contract-validator.js +3 -3
- package/dist/apps/control-plane/mcp/tool-contract-validator.js.map +1 -1
- package/dist/apps/control-plane/mcp/tool-registry-loader.js +1 -1
- package/dist/apps/control-plane/mcp/tool-registry-loader.js.map +1 -1
- package/dist/apps/control-plane/mcp/tool-runtime.js +17 -17
- package/dist/apps/control-plane/mcp/tool-runtime.js.map +1 -1
- package/dist/apps/control-plane/mcp/tools-markdown-generator.js +6 -1
- package/dist/apps/control-plane/mcp/tools-markdown-generator.js.map +1 -1
- package/dist/apps/control-plane/providers/providers.d.ts +3 -2
- package/dist/apps/control-plane/providers/providers.js +81 -39
- package/dist/apps/control-plane/providers/providers.js.map +1 -1
- package/dist/apps/control-plane/supervisor/build-wave-executor.js +12 -12
- package/dist/apps/control-plane/supervisor/build-wave-executor.js.map +1 -1
- package/dist/apps/control-plane/supervisor/planning-wave-executor.js +19 -16
- package/dist/apps/control-plane/supervisor/planning-wave-executor.js.map +1 -1
- package/dist/apps/control-plane/supervisor/prompt-bundle-loader.js +1 -1
- package/dist/apps/control-plane/supervisor/qa-wave-executor.js +13 -13
- package/dist/apps/control-plane/supervisor/qa-wave-executor.js.map +1 -1
- package/dist/apps/control-plane/supervisor/run-coordinator.js +37 -20
- package/dist/apps/control-plane/supervisor/run-coordinator.js.map +1 -1
- package/dist/apps/control-plane/supervisor/runtime.js +25 -21
- package/dist/apps/control-plane/supervisor/runtime.js.map +1 -1
- package/dist/apps/control-plane/supervisor/session-orchestrator.js +29 -23
- package/dist/apps/control-plane/supervisor/session-orchestrator.js.map +1 -1
- package/dist/apps/control-plane/supervisor/types.d.ts +3 -3
- package/dist/apps/control-plane/supervisor/types.js.map +1 -1
- package/dist/apps/control-plane/supervisor/worker-decision-loop.js +14 -16
- package/dist/apps/control-plane/supervisor/worker-decision-loop.js.map +1 -1
- package/eslint.config.mjs +20 -20
- package/example-configurations/README.md +1 -1
- package/example-configurations/java/agents.yaml +3 -3
- package/example-configurations/java/policy.yaml +1 -1
- package/example-configurations/node/agents.yaml +3 -3
- package/example-configurations/node/policy.yaml +1 -1
- package/package.json +10 -5
- package/packages/web-dashboard/next.config.js +2 -2
- package/packages/web-dashboard/src/app/api/actions/route.ts +25 -9
- package/packages/web-dashboard/src/app/api/events/route.ts +20 -6
- package/packages/web-dashboard/src/app/api/features/[id]/checkout/route.ts +88 -37
- package/packages/web-dashboard/src/app/api/features/[id]/evidence/[artifact]/route.ts +8 -5
- package/packages/web-dashboard/src/app/api/features/[id]/review/route.ts +27 -9
- package/packages/web-dashboard/src/app/api/features/[id]/route.ts +5 -2
- package/packages/web-dashboard/src/app/api/projects/route.ts +5 -5
- package/packages/web-dashboard/src/app/globals.css +10 -2
- package/packages/web-dashboard/src/app/page.tsx +100 -37
- package/packages/web-dashboard/src/lib/aop-client.ts +68 -37
- package/packages/web-dashboard/src/lib/multi-project-config.ts +28 -7
- package/packages/web-dashboard/src/lib/orchestrator-tools.ts +59 -36
- package/packages/web-dashboard/tsconfig.json +3 -11
- package/scripts/nx-safe.mjs +10 -10
- package/spec-files/completed/agentic_orchestrator_cli_delete_command_spec.md +5 -0
- package/spec-files/completed/agentic_orchestrator_feature_gaps_closure_spec.md +189 -90
- package/spec-files/completed/agentic_orchestrator_init_policy_ux_simplification_spec.md +49 -16
- package/spec-files/completed/agentic_orchestrator_mcp_formalization_spec.md +24 -1
- package/spec-files/completed/agentic_orchestrator_single_global_orchestrator_spec.md +9 -0
- package/spec-files/completed/agentic_orchestrator_spec.md +171 -75
- package/spec-files/completed/agentic_orchestrator_validator_hardening_spec.md +25 -17
- package/spec-files/outstanding/agentic_orchestrator_artifact_database_publishing_spec.md +40 -5
- package/spec-files/outstanding/agentic_orchestrator_enterprise_governance_dashboard_spec.md +23 -12
- package/spec-files/outstanding/agentic_orchestrator_knowledge_canary_spec.md +16 -4
- package/spec-files/outstanding/agentic_orchestrator_observability_integrity_diagnostics_spec.md +42 -2
- package/spec-files/outstanding/agentic_orchestrator_performance_improvements_spec.md +209 -130
- package/spec-files/outstanding/agentic_orchestrator_planning_review_quality_spec.md +56 -3
- package/spec-files/outstanding/agentic_orchestrator_productization_commercial_spec.md +77 -10
- package/spec-files/outstanding/agentic_orchestrator_provider_auth_bootstrap_spec.md +384 -0
- package/spec-files/outstanding/agentic_orchestrator_quality_adoption_execution_spec.md +29 -14
- package/spec-files/progress.md +186 -175
- package/tsconfig.json +2 -8
package/.prettierignore
ADDED
package/.prettierrc.json
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json.schemastore.org/prettierrc",
|
|
3
|
+
"printWidth": 100,
|
|
4
|
+
"tabWidth": 2,
|
|
5
|
+
"useTabs": false,
|
|
6
|
+
"semi": true,
|
|
7
|
+
"singleQuote": true,
|
|
8
|
+
"quoteProps": "as-needed",
|
|
9
|
+
"trailingComma": "all",
|
|
10
|
+
"bracketSpacing": true,
|
|
11
|
+
"bracketSameLine": false,
|
|
12
|
+
"arrowParens": "always",
|
|
13
|
+
"endOfLine": "lf",
|
|
14
|
+
"proseWrap": "preserve",
|
|
15
|
+
"singleAttributePerLine": false,
|
|
16
|
+
"overrides": [
|
|
17
|
+
{
|
|
18
|
+
"files": ["*.yml", "*.yaml"],
|
|
19
|
+
"options": {
|
|
20
|
+
"singleQuote": false
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
package/CLAUDE.md
CHANGED
|
@@ -38,7 +38,7 @@ This is an MCP-first, multi-agent orchestrator control plane. The codebase lives
|
|
|
38
38
|
- **MCP Tool Runtime** (`mcp/tool-runtime.ts`): Tool execution pipeline with registry-based dispatch, input/output schema validation, role-based authorization, and idempotency tracking via `operation_id`.
|
|
39
39
|
- **Application Services** (`application/services/`): 12+ focused services (plan, patch, gates, QA, locks, merge, deletion, etc.) implementing port interfaces consumed by the kernel.
|
|
40
40
|
|
|
41
|
-
### Configuration Layer (`agentic/orchestrator/`)
|
|
41
|
+
### Configuration Layer (`config/agentic/orchestrator/`)
|
|
42
42
|
|
|
43
43
|
- `policy.yaml` — Commit/patch/merge policies, lock TTL, RBAC, supervisor iteration limits
|
|
44
44
|
- `gates.yaml` — Gate profiles (fast/full/merge) with commands and coverage thresholds
|
|
@@ -93,6 +93,7 @@ Lines: 90% | Branches: 90% | Functions: 90% | Statements: 90%
|
|
|
93
93
|
### Entry format
|
|
94
94
|
|
|
95
95
|
Each entry must include:
|
|
96
|
+
|
|
96
97
|
- A sequential number (increment from the last entry)
|
|
97
98
|
- A short title describing what was done
|
|
98
99
|
- **Goal** — one sentence on why the change was made
|
|
@@ -121,6 +122,6 @@ Each entry must include:
|
|
|
121
122
|
When beginning work from a spec file (e.g. `spec-files/agentic_orchestrator_*.md`):
|
|
122
123
|
|
|
123
124
|
1. **Before writing any code**, read the spec and add all planned tasks to the `## Next Tasks:` section of `progress.md`. Use the spec's section numbers as identifiers (e.g. `§3.1 — Add mutating cross-check`).
|
|
124
|
-
2. **As each task completes**, move it out of `## Next Tasks:` and into a new numbered `✅ **Entry N —
|
|
125
|
+
2. **As each task completes**, move it out of `## Next Tasks:` and into a new numbered `✅ **Entry N — ...`\*\* in the Completed Tasks section.
|
|
125
126
|
3. **Never leave a completed task in `## Next Tasks:`**. The section must only contain work that hasn't started or isn't finished.
|
|
126
127
|
4. If a task is blocked or deferred, leave it in `## Next Tasks:` with a `[BLOCKED]` or `[DEFERRED]` annotation and a one-line reason.
|
package/README.md
CHANGED
|
@@ -120,7 +120,7 @@ Agentic-Orchestrator/
|
|
|
120
120
|
│ │ ├── mcp/ # MCP tool runtime and tool-registry-loader
|
|
121
121
|
│ │ ├── providers/ # provider resolution + adapter
|
|
122
122
|
│ │ └── supervisor/ # runtime orchestration loop
|
|
123
|
-
│ ├── test/ # Vitest suites
|
|
123
|
+
│ ├── test/ # Vitest suites
|
|
124
124
|
│ ├── project.json # Nx targets
|
|
125
125
|
│ └── vitest.config.ts
|
|
126
126
|
├── docker/
|
|
@@ -246,7 +246,13 @@ Behavior:
|
|
|
246
246
|
- Provider selection precedence:
|
|
247
247
|
1. CLI flags (`--agent-provider`, `--agent-model`, `--agent-config`, `--provider-config-env`)
|
|
248
248
|
2. env vars (`AOP_AGENT_PROVIDER`, `AOP_AGENT_MODEL`, `AOP_AGENT_CONFIG`/`AOP_AGENT_CONFIG_JSON`, `AOP_PROVIDER_CONFIG_ENV`)
|
|
249
|
-
3. `agentic/orchestrator/agents.yaml` runtime defaults
|
|
249
|
+
3. `config/agentic/orchestrator/agents.yaml` runtime defaults
|
|
250
|
+
- Provider credential resolution (`provider_config_ref`):
|
|
251
|
+
1. `--provider-config-env <NAME>` if `NAME` exists in env
|
|
252
|
+
2. `agents.yaml runtime.provider_config_env` if that env var exists
|
|
253
|
+
3. `AOP_PROVIDER_CONFIG_ENV` fallback:
|
|
254
|
+
- if it looks like an env-var name and that env var exists, use that value (legacy indirection)
|
|
255
|
+
- otherwise use `AOP_PROVIDER_CONFIG_ENV` as the direct credential value
|
|
250
256
|
- Runtime start:
|
|
251
257
|
- starts `SupervisorRuntime` with `max_active_features=5`, `max_parallel_gate_runs=3`.
|
|
252
258
|
- `max_iterations_per_phase` resolves from `policy.yaml` (`supervisor.max_iterations_per_phase`, default `6`).
|
|
@@ -376,7 +382,7 @@ When `cleanup.auto_after_merge` is enabled in `policy.yaml`, the runtime automat
|
|
|
376
382
|
|
|
377
383
|
### `init`
|
|
378
384
|
|
|
379
|
-
Initialises agentic orchestrator configuration in the current directory. Generates `policy.yaml`, `gates.yaml`, `agents.yaml`, `adapters.yaml`, and system prompt templates. The wizard also captures default agent `provider`/`model` and
|
|
385
|
+
Initialises agentic orchestrator configuration in the current directory. Generates `policy.yaml`, `gates.yaml`, `agents.yaml`, `adapters.yaml`, and system prompt templates. The wizard also captures default agent `provider`/`model`, `scm-provider`, and provider-auth mode.
|
|
380
386
|
|
|
381
387
|
Schema files are bundled with AOP and validated from the installation path; `aop init` does not copy schemas into the target repository.
|
|
382
388
|
|
|
@@ -406,13 +412,22 @@ aop init --force
|
|
|
406
412
|
#### Runtime Policy Composition
|
|
407
413
|
|
|
408
414
|
At runtime the kernel always composes a canonical full policy by:
|
|
415
|
+
|
|
409
416
|
1. Loading bundled `agentic/orchestrator/defaults/policy.defaults.yaml`
|
|
410
|
-
2. Loading `agentic/orchestrator/policy.yaml` from your repository
|
|
417
|
+
2. Loading `config/agentic/orchestrator/policy.yaml` from your repository
|
|
411
418
|
3. Deep-merging user overrides over defaults (scalars replace, objects merge, arrays replace wholesale)
|
|
412
419
|
4. Validating the merged result against the full `policy.schema.json`
|
|
413
420
|
|
|
414
421
|
Existing repositories with full `policy.yaml` files continue to work without changes — user values override defaults entirely.
|
|
415
422
|
|
|
423
|
+
#### Provider Auth Flow In `aop init`
|
|
424
|
+
|
|
425
|
+
- wizard prompt: `Will you use a local agent CLI ... (yes/no)` (default `yes`)
|
|
426
|
+
- if `yes`: init skips `runtime.provider_config_env` in `agents.yaml`
|
|
427
|
+
- if `no`: init asks for provider env var name and checks both process env and repo `.env`
|
|
428
|
+
- if missing: init prompts for a key, stores it in `.env` as `AOP_PROVIDER_CONFIG_ENV`, and writes `runtime.provider_config_env: AOP_PROVIDER_CONFIG_ENV`
|
|
429
|
+
- `aop init --auto` defaults to local-CLI mode and does not emit `provider_config_env`
|
|
430
|
+
|
|
416
431
|
### `dashboard`
|
|
417
432
|
|
|
418
433
|
Starts the web dashboard server (`packages/web-dashboard/`). Provides a real-time Kanban view of all features, review approval/denial, checkout, and SSE-based live updates.
|
|
@@ -475,31 +490,31 @@ aop help dashboard
|
|
|
475
490
|
|
|
476
491
|
Supported options:
|
|
477
492
|
|
|
478
|
-
| Option
|
|
479
|
-
|
|
480
|
-
| `-fi <PATH>`
|
|
481
|
-
| `-fl <PATH>`
|
|
482
|
-
| `--batch`
|
|
483
|
-
| `--agent-provider <codex
|
|
484
|
-
| `--agent-model <model-id>`
|
|
485
|
-
| `--agent-config <json-object>`
|
|
486
|
-
| `--provider-config-env <ENV_VAR>`
|
|
487
|
-
| `--transport <mcp
|
|
488
|
-
| `--takeover-stale-run`
|
|
489
|
-
| `--project <name>`
|
|
490
|
-
| `--feature-id <id>`
|
|
491
|
-
| `--dry-run [true
|
|
492
|
-
| `--yes`
|
|
493
|
-
| `--remove-worktree [true
|
|
494
|
-
| `--remove-branch <none
|
|
495
|
-
| `--summary`
|
|
496
|
-
| `--all`
|
|
497
|
-
| `--auto`
|
|
498
|
-
| `--force`
|
|
499
|
-
| `--port <number>`
|
|
500
|
-
| `--dev`
|
|
501
|
-
| `--foreground`
|
|
502
|
-
| `--message <text>`
|
|
493
|
+
| Option | Description |
|
|
494
|
+
| --------------------------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------ | ---------- | --------- | ------------------ |
|
|
495
|
+
| `-fi <PATH>` | Run exactly one spec file |
|
|
496
|
+
| `-fl <PATH>` | Resolve all `**/*.md` files recursively in a folder (deterministic lexical order) |
|
|
497
|
+
| `--batch` | Batch-ingest all specs; skip already-active features (`run`) |
|
|
498
|
+
| `--agent-provider <codex\\ | claude\\ | gemini\\ | custom\\ | kiro-cli\\ | copilot>` | Provider selection |
|
|
499
|
+
| `--agent-model <model-id>` | Model selection |
|
|
500
|
+
| `--agent-config <json-object>` | Additional provider-specific agent config (for example command/args payload) |
|
|
501
|
+
| `--provider-config-env <ENV_VAR>` | Provider auth/config env var name for API-backed providers |
|
|
502
|
+
| `--transport <mcp\\ | inprocess>` | Tool transport selection (default `mcp`) |
|
|
503
|
+
| `--takeover-stale-run` | Allow stale run-lease takeover during `run` |
|
|
504
|
+
| `--project <name>` | Select project from `multi-project.yaml` (run, status, resume, retry) |
|
|
505
|
+
| `--feature-id <id>` | Target feature for `delete`, `cleanup`, `retry`, `send`, `attach` |
|
|
506
|
+
| `--dry-run [true\\ | false]` | Preview-only mode for `delete` and `cleanup` |
|
|
507
|
+
| `--yes` | Confirm destructive `delete` or `cleanup` execution |
|
|
508
|
+
| `--remove-worktree [true\\ | false]` | Whether to remove `.worktrees/<feature_id>` (default `true`) |
|
|
509
|
+
| `--remove-branch <none\\ | safe\\ | force>` | Local branch cleanup mode (default `none`) |
|
|
510
|
+
| `--summary` | Condensed one-line-per-feature output (`status`) |
|
|
511
|
+
| `--all` | Aggregate across all projects (`status`); delete all features (`delete`) |
|
|
512
|
+
| `--auto` | Non-interactive init with all defaults (`init`) |
|
|
513
|
+
| `--force` | Overwrite existing config (`init`); force retry regardless of state (`retry`) |
|
|
514
|
+
| `--port <number>` | Dashboard listen port (default `3000`) |
|
|
515
|
+
| `--dev` | Start dashboard in Next.js dev mode |
|
|
516
|
+
| `--foreground` | Keep dashboard server in the foreground |
|
|
517
|
+
| `--message <text>` | Message to deliver to agent session (`send`) |
|
|
503
518
|
|
|
504
519
|
Validation behavior:
|
|
505
520
|
|
|
@@ -522,7 +537,15 @@ Provider resolution precedence:
|
|
|
522
537
|
|
|
523
538
|
1. CLI flags
|
|
524
539
|
2. env vars (`AOP_AGENT_PROVIDER`, `AOP_AGENT_MODEL`, `AOP_AGENT_CONFIG`/`AOP_AGENT_CONFIG_JSON`, `AOP_PROVIDER_CONFIG_ENV`)
|
|
525
|
-
3. `agentic/orchestrator/agents.yaml` runtime defaults
|
|
540
|
+
3. `config/agentic/orchestrator/agents.yaml` runtime defaults
|
|
541
|
+
|
|
542
|
+
Provider credential fallback:
|
|
543
|
+
|
|
544
|
+
1. `--provider-config-env <NAME>` if `NAME` exists
|
|
545
|
+
2. `runtime.provider_config_env` if that env var exists
|
|
546
|
+
3. `AOP_PROVIDER_CONFIG_ENV`:
|
|
547
|
+
- `AOP_PROVIDER_CONFIG_ENV=OTHER_ENV` and `OTHER_ENV` exists -> use `OTHER_ENV`
|
|
548
|
+
- otherwise treat `AOP_PROVIDER_CONFIG_ENV` as direct credential value
|
|
526
549
|
|
|
527
550
|
Transport behavior:
|
|
528
551
|
|
|
@@ -534,7 +557,7 @@ Transport behavior:
|
|
|
534
557
|
|
|
535
558
|
## Configuration
|
|
536
559
|
|
|
537
|
-
### Policy (`agentic/orchestrator/policy.yaml`)
|
|
560
|
+
### Policy (`config/agentic/orchestrator/policy.yaml`)
|
|
538
561
|
|
|
539
562
|
Current defaults include:
|
|
540
563
|
|
|
@@ -553,7 +576,7 @@ Current defaults include:
|
|
|
553
576
|
- `issue_tracker` config: provider (`github`/`linear`/`jira`), credentials, and field mapping
|
|
554
577
|
- `cleanup.auto_after_merge` / `cleanup.grace_period_seconds`: automatic merged-artifact removal
|
|
555
578
|
|
|
556
|
-
### Gates (`agentic/orchestrator/gates.yaml`)
|
|
579
|
+
### Gates (`config/agentic/orchestrator/gates.yaml`)
|
|
557
580
|
|
|
558
581
|
Default profile modes:
|
|
559
582
|
|
|
@@ -567,19 +590,19 @@ Coverage parser:
|
|
|
567
590
|
|
|
568
591
|
- `lcov` from `coverage/control-plane/lcov.info`
|
|
569
592
|
|
|
570
|
-
### Agents (`agentic/orchestrator/agents.yaml`)
|
|
593
|
+
### Agents (`config/agentic/orchestrator/agents.yaml`)
|
|
571
594
|
|
|
572
595
|
- role-specific system prompt paths
|
|
573
|
-
- default provider/model
|
|
596
|
+
- default provider/model values with optional `runtime.provider_config_env` for API-backed providers
|
|
574
597
|
- optional `runtime.provider_configs.<provider>` objects for provider-specific payloads (for example `kiro-cli chat --agent dev`)
|
|
575
598
|
- `worktree.post_create` commands and `worktree.symlinks` for workspace hook automation
|
|
576
599
|
- stack-specific examples: [`example-configurations/node/`](example-configurations/node) and [`example-configurations/java/`](example-configurations/java)
|
|
577
600
|
|
|
578
|
-
### Multi-Project (`agentic/orchestrator/multi-project.yaml`)
|
|
601
|
+
### Multi-Project (`config/agentic/orchestrator/multi-project.yaml`)
|
|
579
602
|
|
|
580
603
|
Optional. Defines multiple independent projects in one repository. Pass `--project <name>` on the CLI to scope commands to a project. `aop status --all` aggregates across all projects. Each project can override `policy` and `gates` paths.
|
|
581
604
|
|
|
582
|
-
### Adapter Registry (`agentic/orchestrator/adapters.yaml`)
|
|
605
|
+
### Adapter Registry (`config/agentic/orchestrator/adapters.yaml`)
|
|
583
606
|
|
|
584
607
|
Optional. Registers custom adapters for `notification-channel`, `activity-detector`, and `scm-provider` slots. Resolves at kernel/supervisor boot.
|
|
585
608
|
|
|
@@ -600,9 +623,9 @@ This section defines the schema-governed files the target repository must contai
|
|
|
600
623
|
|
|
601
624
|
Files you provide/configure:
|
|
602
625
|
|
|
603
|
-
- `agentic/orchestrator/policy.yaml`
|
|
604
|
-
- `agentic/orchestrator/gates.yaml`
|
|
605
|
-
- `agentic/orchestrator/agents.yaml` (recommended; if present it is schema validated)
|
|
626
|
+
- `config/agentic/orchestrator/policy.yaml`
|
|
627
|
+
- `config/agentic/orchestrator/gates.yaml`
|
|
628
|
+
- `config/agentic/orchestrator/agents.yaml` (recommended; if present it is schema validated)
|
|
606
629
|
- `.aop/features/<feature_id>/spec.md` (input spec per feature)
|
|
607
630
|
|
|
608
631
|
Files the runtime creates/maintains:
|
|
@@ -617,13 +640,13 @@ Files the runtime creates/maintains:
|
|
|
617
640
|
### Schema mapping
|
|
618
641
|
|
|
619
642
|
| Runtime file | Schema file | Required/expected essentials |
|
|
620
|
-
|
|
643
|
+
| -------------------------------------------------- | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
621
644
|
| `.aop/features/<feature_id>/plan.json` | `agentic/orchestrator/schemas/plan.schema.json` | `feature_id`, `plan_version`, `summary`, `allowed_areas`, `forbidden_areas`, `base_ref`, `files.{create,modify,delete}`, `contracts.{openapi,events,db}`, `acceptance_criteria`, `gate_profile` |
|
|
622
645
|
| `.aop/features/<feature_id>/state.md` front matter | `agentic/orchestrator/schemas/state.schema.json` | `feature_id`, `version`, `branch`, `worktree_path`, `status`, `gate_profile`, `gates`, `locks.held`, `collisions`, `cluster`, `role_status`, `last_updated` |
|
|
623
646
|
| `.aop/features/index.json` | `agentic/orchestrator/schemas/index.schema.json` | `version`, `active`, `blocked`, `merged`, `locks`, `lock_leases`, `blocked_queue`, `runtime_sessions.{run_id,orchestrator_session_id,owner_instance_id,lease_expires_at,feature_sessions}` |
|
|
624
|
-
| `agentic/orchestrator/gates.yaml`
|
|
625
|
-
| `agentic/orchestrator/policy.yaml`
|
|
626
|
-
| `agentic/orchestrator/agents.yaml`
|
|
647
|
+
| `config/agentic/orchestrator/gates.yaml` | `agentic/orchestrator/schemas/gates.schema.json` | `version`, `profiles.<profile>.modes.<mode>[{name,cmd,...}]`, optional parser/threshold metadata |
|
|
648
|
+
| `config/agentic/orchestrator/policy.yaml` | `agentic/orchestrator/schemas/policy.schema.json` | commit/merge policy, patch policy, lock config, collision policy, path rules, execution policy, RBAC, Nx/Vitest implementation constraints |
|
|
649
|
+
| `config/agentic/orchestrator/agents.yaml` | `agentic/orchestrator/schemas/agents.schema.json` | `version`, `roles`, `missing_prompt_behavior`, optional runtime defaults |
|
|
627
650
|
| `.aop/features/<feature_id>/qa_test_index.json` | `agentic/orchestrator/schemas/qa_test_index.schema.json` | `feature_id`, `version`, `source_diff_ref`, `items[]` with path/hunks/required_tests/status |
|
|
628
651
|
|
|
629
652
|
### Important operational notes
|
|
@@ -708,7 +731,7 @@ The MCP contracts validator checks: protocol pinning, `catalog.json`/`tools.md`/
|
|
|
708
731
|
### Tool definitions
|
|
709
732
|
|
|
710
733
|
| Tool | Purpose | Mutates state/files | Typical caller role(s) |
|
|
711
|
-
|
|
734
|
+
| ---------------------------- | ---------------------------------------------------------------------- | ------------------- | -------------------------------------- |
|
|
712
735
|
| `feature.discover_specs` | Discover canonical `spec.md` files under `.aop/features/*` | No | orchestrator, system |
|
|
713
736
|
| `feature.init` | Initialize feature folder/state and ensure branch/worktree | Yes | orchestrator, system |
|
|
714
737
|
| `feature.get_context` | Return spec + state + plan + latest evidence + QA index bundle | No | orchestrator, planner, builder, qa |
|
|
@@ -790,7 +813,7 @@ From [progress.md](spec-files/progress.md):
|
|
|
790
813
|
- Linear and Jira issue tracker adapters with full API-backed status sync
|
|
791
814
|
- Architecture boundary checks CI-enforced via `npm run validate:architecture` (93 files, 0 violations)
|
|
792
815
|
- Strict linting enforced (`npm run lint`) and build is lint-gated
|
|
793
|
-
- `npm run typecheck` passes; `npm test` passes (
|
|
816
|
+
- `npm run typecheck` passes; `npm test` passes (all per-file coverage ≥ 90%)
|
|
794
817
|
|
|
795
818
|
Environment note observed during implementation sessions:
|
|
796
819
|
|
|
@@ -844,6 +867,6 @@ See [LICENSE](LICENSE).
|
|
|
844
867
|
- Implementation log: [progress.md](spec-files/progress.md)
|
|
845
868
|
- Example bundles: [example-configurations/README.md](example-configurations/README.md)
|
|
846
869
|
- Tool catalog: [agentic/orchestrator/tools.md](agentic/orchestrator/tools.md)
|
|
847
|
-
- Policy config: [agentic/orchestrator/policy.yaml](agentic/orchestrator/policy.yaml)
|
|
848
|
-
- Gates config: [agentic/orchestrator/gates.yaml](agentic/orchestrator/gates.yaml)
|
|
849
|
-
- Agents config: [agentic/orchestrator/agents.yaml](agentic/orchestrator/agents.yaml)
|
|
870
|
+
- Policy config: [config/agentic/orchestrator/policy.yaml](config/agentic/orchestrator/policy.yaml)
|
|
871
|
+
- Gates config: [config/agentic/orchestrator/gates.yaml](config/agentic/orchestrator/gates.yaml)
|
|
872
|
+
- Agents config: [config/agentic/orchestrator/agents.yaml](config/agentic/orchestrator/agents.yaml)
|
|
@@ -4,6 +4,7 @@ Produce deterministic plan submissions and plan updates that conform to plan sch
|
|
|
4
4
|
Avoid speculative edits outside the declared file scope.
|
|
5
5
|
|
|
6
6
|
After each QA wave, perform an explicit reconciliation pass:
|
|
7
|
+
|
|
7
8
|
- re-read feature context (`feature.get_context`) including spec, accepted plan, QA index summary, and latest gate evidence
|
|
8
9
|
- verify builder/QA outcomes still satisfy the accepted plan and spec intent
|
|
9
10
|
- emit `plan.update` when correction gaps exist, with concrete revision reasons
|
|
@@ -3,10 +3,7 @@
|
|
|
3
3
|
"$id": "https://example.local/agentic/agents.schema.json",
|
|
4
4
|
"description": "Agent role and runtime provider configuration for the Agentic Orchestrator.",
|
|
5
5
|
"type": "object",
|
|
6
|
-
"required": [
|
|
7
|
-
"version",
|
|
8
|
-
"roles"
|
|
9
|
-
],
|
|
6
|
+
"required": ["version", "roles"],
|
|
10
7
|
"additionalProperties": false,
|
|
11
8
|
"properties": {
|
|
12
9
|
"version": {
|
|
@@ -16,11 +13,7 @@
|
|
|
16
13
|
"roles": {
|
|
17
14
|
"type": "object",
|
|
18
15
|
"description": "Per-role prompt configuration keyed by role name (planner, builder, qa).",
|
|
19
|
-
"required": [
|
|
20
|
-
"planner",
|
|
21
|
-
"builder",
|
|
22
|
-
"qa"
|
|
23
|
-
],
|
|
16
|
+
"required": ["planner", "builder", "qa"],
|
|
24
17
|
"properties": {
|
|
25
18
|
"planner": {
|
|
26
19
|
"$ref": "#/$defs/roleCfg",
|
|
@@ -39,10 +32,7 @@
|
|
|
39
32
|
"missing_prompt_behavior": {
|
|
40
33
|
"type": "string",
|
|
41
34
|
"description": "What to do when a role's system_prompt_path file cannot be read. 'ignore' silently skips it (role gets no system prompt); 'error' throws MISSING_ROLE_PROMPT and aborts the run.",
|
|
42
|
-
"enum": [
|
|
43
|
-
"ignore",
|
|
44
|
-
"error"
|
|
45
|
-
],
|
|
35
|
+
"enum": ["ignore", "error"],
|
|
46
36
|
"default": "ignore"
|
|
47
37
|
},
|
|
48
38
|
"runtime": {
|
|
@@ -52,14 +42,7 @@
|
|
|
52
42
|
"default_provider": {
|
|
53
43
|
"type": "string",
|
|
54
44
|
"description": "Default AI provider name (e.g. 'codex', 'claude', 'gemini'). Overridden by --agent-provider CLI flag or AOP_AGENT_PROVIDER env var.",
|
|
55
|
-
"enum": [
|
|
56
|
-
"codex",
|
|
57
|
-
"claude",
|
|
58
|
-
"gemini",
|
|
59
|
-
"custom",
|
|
60
|
-
"kiro-cli",
|
|
61
|
-
"copilot"
|
|
62
|
-
]
|
|
45
|
+
"enum": ["codex", "claude", "gemini", "custom", "kiro-cli", "copilot"]
|
|
63
46
|
},
|
|
64
47
|
"default_model": {
|
|
65
48
|
"type": "string",
|
|
@@ -71,7 +54,7 @@
|
|
|
71
54
|
},
|
|
72
55
|
"provider_config_env": {
|
|
73
56
|
"type": "string",
|
|
74
|
-
"description": "
|
|
57
|
+
"description": "Optional env var name for API-backed provider credentials/config. Local CLI providers typically omit this. Runtime also supports AOP_PROVIDER_CONFIG_ENV fallback (legacy indirection or direct credential value)."
|
|
75
58
|
},
|
|
76
59
|
"provider_configs": {
|
|
77
60
|
"type": "object",
|
|
@@ -4,10 +4,7 @@
|
|
|
4
4
|
"description": "Gate profiles defining the verification steps and coverage thresholds used to validate feature branches.",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"additionalProperties": false,
|
|
7
|
-
"required": [
|
|
8
|
-
"version",
|
|
9
|
-
"profiles"
|
|
10
|
-
],
|
|
7
|
+
"required": ["version", "profiles"],
|
|
11
8
|
"properties": {
|
|
12
9
|
"version": {
|
|
13
10
|
"type": "number",
|
|
@@ -19,9 +16,7 @@
|
|
|
19
16
|
"additionalProperties": {
|
|
20
17
|
"type": "object",
|
|
21
18
|
"description": "A named gate profile containing one or more execution modes.",
|
|
22
|
-
"required": [
|
|
23
|
-
"modes"
|
|
24
|
-
],
|
|
19
|
+
"required": ["modes"],
|
|
25
20
|
"properties": {
|
|
26
21
|
"modes": {
|
|
27
22
|
"type": "object",
|
|
@@ -30,10 +25,7 @@
|
|
|
30
25
|
"type": "array",
|
|
31
26
|
"items": {
|
|
32
27
|
"type": "object",
|
|
33
|
-
"required": [
|
|
34
|
-
"name",
|
|
35
|
-
"cmd"
|
|
36
|
-
],
|
|
28
|
+
"required": ["name", "cmd"],
|
|
37
29
|
"additionalProperties": false,
|
|
38
30
|
"properties": {
|
|
39
31
|
"name": {
|
|
@@ -127,14 +119,7 @@
|
|
|
127
119
|
"description": "Coverage format capabilities declared for this project. Used to select the appropriate coverage parser (e.g. 'lcov', 'junit_xml').",
|
|
128
120
|
"items": {
|
|
129
121
|
"type": "string",
|
|
130
|
-
"enum": [
|
|
131
|
-
"none",
|
|
132
|
-
"lcov",
|
|
133
|
-
"junit_xml",
|
|
134
|
-
"jacoco_xml",
|
|
135
|
-
"cobertura_xml",
|
|
136
|
-
"custom"
|
|
137
|
-
]
|
|
122
|
+
"enum": ["none", "lcov", "junit_xml", "jacoco_xml", "cobertura_xml", "custom"]
|
|
138
123
|
}
|
|
139
124
|
}
|
|
140
125
|
}
|
|
@@ -62,11 +62,7 @@
|
|
|
62
62
|
"anyOf": [
|
|
63
63
|
{
|
|
64
64
|
"type": "object",
|
|
65
|
-
"required": [
|
|
66
|
-
"holder",
|
|
67
|
-
"lease_id",
|
|
68
|
-
"expires_at"
|
|
69
|
-
],
|
|
65
|
+
"required": ["holder", "lease_id", "expires_at"],
|
|
70
66
|
"properties": {
|
|
71
67
|
"holder": {
|
|
72
68
|
"type": "string",
|
|
@@ -140,10 +136,7 @@
|
|
|
140
136
|
"description": "Features whose plan submission was deferred because one or more declared feature dependencies have not yet merged.",
|
|
141
137
|
"items": {
|
|
142
138
|
"type": "object",
|
|
143
|
-
"required": [
|
|
144
|
-
"feature_id",
|
|
145
|
-
"depends_on_unresolved"
|
|
146
|
-
],
|
|
139
|
+
"required": ["feature_id", "depends_on_unresolved"],
|
|
147
140
|
"properties": {
|
|
148
141
|
"feature_id": {
|
|
149
142
|
"type": "string",
|
|
@@ -230,11 +223,7 @@
|
|
|
230
223
|
"additionalProperties": {
|
|
231
224
|
"type": "object",
|
|
232
225
|
"additionalProperties": false,
|
|
233
|
-
"required": [
|
|
234
|
-
"planner_session_id",
|
|
235
|
-
"builder_session_id",
|
|
236
|
-
"qa_session_id"
|
|
237
|
-
],
|
|
226
|
+
"required": ["planner_session_id", "builder_session_id", "qa_session_id"],
|
|
238
227
|
"properties": {
|
|
239
228
|
"planner_session_id": {
|
|
240
229
|
"type": "string",
|
|
@@ -3,10 +3,7 @@
|
|
|
3
3
|
"$id": "https://example.local/agentic/multi-project.schema.json",
|
|
4
4
|
"description": "Multi-project workspace configuration stored in agentic/orchestrator/multi-project.yaml. Defines multiple repository projects managed by a single orchestrator installation.",
|
|
5
5
|
"type": "object",
|
|
6
|
-
"required": [
|
|
7
|
-
"version",
|
|
8
|
-
"projects"
|
|
9
|
-
],
|
|
6
|
+
"required": ["version", "projects"],
|
|
10
7
|
"additionalProperties": false,
|
|
11
8
|
"properties": {
|
|
12
9
|
"version": {
|
|
@@ -65,10 +62,7 @@
|
|
|
65
62
|
"minItems": 1,
|
|
66
63
|
"items": {
|
|
67
64
|
"type": "object",
|
|
68
|
-
"required": [
|
|
69
|
-
"name",
|
|
70
|
-
"path"
|
|
71
|
-
],
|
|
65
|
+
"required": ["name", "path"],
|
|
72
66
|
"additionalProperties": false,
|
|
73
67
|
"properties": {
|
|
74
68
|
"name": {
|
|
@@ -58,11 +58,7 @@
|
|
|
58
58
|
"type": "object",
|
|
59
59
|
"description": "Planned file operations. When a plan is present, every patched file must appear in one of these lists.",
|
|
60
60
|
"additionalProperties": false,
|
|
61
|
-
"required": [
|
|
62
|
-
"create",
|
|
63
|
-
"modify",
|
|
64
|
-
"delete"
|
|
65
|
-
],
|
|
61
|
+
"required": ["create", "modify", "delete"],
|
|
66
62
|
"properties": {
|
|
67
63
|
"create": {
|
|
68
64
|
"type": "array",
|
|
@@ -94,34 +90,21 @@
|
|
|
94
90
|
"type": "object",
|
|
95
91
|
"description": "Declares which shared contract types this plan modifies. Each 'modify' or 'migration' value triggers a lock requirement.",
|
|
96
92
|
"additionalProperties": false,
|
|
97
|
-
"required": [
|
|
98
|
-
"openapi",
|
|
99
|
-
"events",
|
|
100
|
-
"db"
|
|
101
|
-
],
|
|
93
|
+
"required": ["openapi", "events", "db"],
|
|
102
94
|
"properties": {
|
|
103
95
|
"openapi": {
|
|
104
96
|
"type": "string",
|
|
105
|
-
"enum": [
|
|
106
|
-
"none",
|
|
107
|
-
"modify"
|
|
108
|
-
],
|
|
97
|
+
"enum": ["none", "modify"],
|
|
109
98
|
"description": "'modify' means this plan changes the OpenAPI contract file, requiring the 'openapi' lock to be held before plan submission."
|
|
110
99
|
},
|
|
111
100
|
"events": {
|
|
112
101
|
"type": "string",
|
|
113
|
-
"enum": [
|
|
114
|
-
"none",
|
|
115
|
-
"modify"
|
|
116
|
-
],
|
|
102
|
+
"enum": ["none", "modify"],
|
|
117
103
|
"description": "'modify' means this plan changes the events contract file, requiring the 'events' lock."
|
|
118
104
|
},
|
|
119
105
|
"db": {
|
|
120
106
|
"type": "string",
|
|
121
|
-
"enum": [
|
|
122
|
-
"none",
|
|
123
|
-
"migration"
|
|
124
|
-
],
|
|
107
|
+
"enum": ["none", "migration"],
|
|
125
108
|
"description": "'migration' means this plan adds a database schema migration, requiring the 'db' lock."
|
|
126
109
|
}
|
|
127
110
|
}
|
|
@@ -199,10 +182,7 @@
|
|
|
199
182
|
"items": {
|
|
200
183
|
"type": "object",
|
|
201
184
|
"additionalProperties": false,
|
|
202
|
-
"required": [
|
|
203
|
-
"name",
|
|
204
|
-
"cmd"
|
|
205
|
-
],
|
|
185
|
+
"required": ["name", "cmd"],
|
|
206
186
|
"properties": {
|
|
207
187
|
"name": {
|
|
208
188
|
"type": "string",
|