agentic-orchestrator 0.1.2 → 0.1.4
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/.claude/settings.local.json +15 -0
- package/CLAUDE.md +126 -0
- package/README.md +166 -25
- package/agentic/orchestrator/adapters.yaml +3 -0
- package/agentic/orchestrator/gates.yaml +47 -0
- package/agentic/orchestrator/policy.yaml +89 -0
- package/agentic/orchestrator/schemas/adapters.schema.json +12 -0
- package/agentic/orchestrator/schemas/gates.schema.json +6 -1
- package/agentic/orchestrator/schemas/index.schema.json +14 -0
- package/agentic/orchestrator/schemas/multi-project.schema.json +41 -0
- package/agentic/orchestrator/schemas/policy.schema.json +449 -52
- package/agentic/orchestrator/schemas/state.schema.json +16 -0
- package/agentic/orchestrator/tools/catalog.json +68 -0
- package/agentic/orchestrator/tools/schemas/input/cost.get.input.schema.json +10 -0
- package/agentic/orchestrator/tools/schemas/input/cost.record.input.schema.json +13 -0
- package/agentic/orchestrator/tools/schemas/input/feature.send_message.input.schema.json +11 -0
- package/agentic/orchestrator/tools/schemas/input/performance.get_analytics.input.schema.json +10 -0
- package/agentic/orchestrator/tools/schemas/input/performance.record_outcome.input.schema.json +18 -0
- package/agentic/orchestrator/tools/schemas/output/cost.get.output.schema.json +13 -0
- package/agentic/orchestrator/tools/schemas/output/cost.record.output.schema.json +13 -0
- package/agentic/orchestrator/tools/schemas/output/feature.ready_to_merge.output.schema.json +7 -0
- package/agentic/orchestrator/tools/schemas/output/feature.send_message.output.schema.json +23 -0
- package/agentic/orchestrator/tools/schemas/output/performance.get_analytics.output.schema.json +46 -0
- package/agentic/orchestrator/tools/schemas/output/performance.record_outcome.output.schema.json +10 -0
- package/agentic/orchestrator/tools.md +5 -0
- package/apps/control-plane/scripts/validate-architecture-rules.mjs +28 -2
- package/apps/control-plane/scripts/validate-docker-mcp-contract.mjs +12 -0
- package/apps/control-plane/scripts/validate-mcp-contracts.ts +92 -0
- package/apps/control-plane/src/application/adapters/adapter-registry.ts +169 -0
- package/apps/control-plane/src/application/multi-project-loader.ts +119 -0
- package/apps/control-plane/src/application/services/activity-monitor-service.ts +199 -0
- package/apps/control-plane/src/application/services/cost-tracking-service.ts +82 -0
- package/apps/control-plane/src/application/services/dependency-scheduler-service.ts +86 -0
- package/apps/control-plane/src/application/services/feature-deletion-service.ts +8 -7
- package/apps/control-plane/src/application/services/gate-interpolation-service.ts +15 -0
- package/apps/control-plane/src/application/services/gate-service.ts +38 -2
- package/apps/control-plane/src/application/services/instance-isolation-service.ts +18 -0
- package/apps/control-plane/src/application/services/issue-tracker-service.ts +469 -0
- package/apps/control-plane/src/application/services/merge-service.ts +67 -3
- package/apps/control-plane/src/application/services/notifier-service.ts +295 -0
- package/apps/control-plane/src/application/services/performance-analytics-service.ts +122 -0
- package/apps/control-plane/src/application/services/plan-service.ts +51 -0
- package/apps/control-plane/src/application/services/pr-monitor-service.ts +262 -0
- package/apps/control-plane/src/application/services/reactions-service.ts +175 -0
- package/apps/control-plane/src/application/services/reporting-service.ts +17 -2
- package/apps/control-plane/src/application/services/run-lease-service.ts +16 -38
- package/apps/control-plane/src/application/tools/tool-metadata.ts +4 -1
- package/apps/control-plane/src/cli/aop.ts +1 -1
- package/apps/control-plane/src/cli/attach-command-handler.ts +120 -0
- package/apps/control-plane/src/cli/cleanup-command-handler.ts +190 -0
- package/apps/control-plane/src/cli/cli-argument-parser.ts +69 -3
- package/apps/control-plane/src/cli/dashboard-command-handler.ts +57 -0
- package/apps/control-plane/src/cli/help-command-handler.ts +163 -0
- package/apps/control-plane/src/cli/init-command-handler.ts +609 -0
- package/apps/control-plane/src/cli/resume-command-handler.ts +1 -0
- package/apps/control-plane/src/cli/retry-command-handler.ts +138 -0
- package/apps/control-plane/src/cli/run-command-handler.ts +115 -3
- package/apps/control-plane/src/cli/send-command-handler.ts +65 -0
- package/apps/control-plane/src/cli/status-command-handler.ts +102 -2
- package/apps/control-plane/src/cli/types.ts +26 -1
- package/apps/control-plane/src/core/constants.ts +8 -2
- package/apps/control-plane/src/core/error-codes.ts +3 -1
- package/apps/control-plane/src/core/gates.ts +170 -50
- package/apps/control-plane/src/core/kernel.ts +280 -5
- package/apps/control-plane/src/core/path-layout.ts +12 -0
- package/apps/control-plane/src/core/tool-caller.ts +36 -0
- package/apps/control-plane/src/core/workspace-hooks.ts +87 -0
- package/apps/control-plane/src/interfaces/cli/bootstrap.ts +258 -9
- package/apps/control-plane/src/providers/providers.ts +235 -14
- package/apps/control-plane/src/supervisor/build-wave-executor.ts +129 -8
- package/apps/control-plane/src/supervisor/qa-wave-executor.ts +123 -5
- package/apps/control-plane/src/supervisor/run-coordinator.ts +143 -6
- package/apps/control-plane/src/supervisor/runtime.ts +135 -6
- package/apps/control-plane/src/supervisor/types.ts +12 -21
- package/apps/control-plane/src/supervisor/worker-decision-loop.ts +8 -0
- package/apps/control-plane/test/activity-monitor.spec.ts +294 -0
- package/apps/control-plane/test/adapter-registry.spec.ts +132 -0
- package/apps/control-plane/test/batch-operations.spec.ts +112 -0
- package/apps/control-plane/test/bootstrap-attach.spec.ts +102 -0
- package/apps/control-plane/test/bootstrap-edge-cases.spec.ts +252 -0
- package/apps/control-plane/test/bootstrap.spec.ts +560 -0
- package/apps/control-plane/test/cleanup-command.spec.ts +301 -0
- package/apps/control-plane/test/cli-helpers.spec.ts +404 -1
- package/apps/control-plane/test/cli.unit.spec.ts +182 -1
- package/apps/control-plane/test/collision-queue.spec.ts +104 -1
- package/apps/control-plane/test/core-utils.spec.ts +175 -2
- package/apps/control-plane/test/cost-tracking.spec.ts +143 -0
- package/apps/control-plane/test/dashboard-api.integration.spec.ts +247 -0
- package/apps/control-plane/test/dashboard-client.spec.ts +116 -0
- package/apps/control-plane/test/dashboard-command.spec.ts +103 -0
- package/apps/control-plane/test/dependency-scheduler.spec.ts +189 -0
- package/apps/control-plane/test/epoch-tracking.spec.ts +4 -4
- package/apps/control-plane/test/feature-deletion-service.spec.ts +422 -0
- package/apps/control-plane/test/feature-lifecycle.spec.ts +202 -0
- package/apps/control-plane/test/git-spawn-error.spec.ts +24 -0
- package/apps/control-plane/test/incremental-gates.spec.ts +137 -0
- package/apps/control-plane/test/init-wizard.spec.ts +506 -0
- package/apps/control-plane/test/instance-isolation.spec.ts +83 -0
- package/apps/control-plane/test/issue-tracker.spec.ts +890 -0
- package/apps/control-plane/test/kernel.coverage.spec.ts +3 -5
- package/apps/control-plane/test/kernel.coverage2.spec.ts +871 -0
- package/apps/control-plane/test/kernel.spec.ts +13 -11
- package/apps/control-plane/test/lock-service.spec.ts +508 -0
- package/apps/control-plane/test/mcp-helpers.spec.ts +176 -0
- package/apps/control-plane/test/mcp.spec.ts +50 -15
- package/apps/control-plane/test/merge-service.spec.ts +67 -4
- package/apps/control-plane/test/multi-project.spec.ts +372 -0
- package/apps/control-plane/test/notifier-service.spec.ts +388 -0
- package/apps/control-plane/test/parallel-gates.spec.ts +312 -0
- package/apps/control-plane/test/patch-service.spec.ts +253 -0
- package/apps/control-plane/test/performance-analytics.spec.ts +338 -0
- package/apps/control-plane/test/planning-wave-executor.spec.ts +168 -0
- package/apps/control-plane/test/pr-monitor.spec.ts +385 -0
- package/apps/control-plane/test/providers.spec.ts +344 -1
- package/apps/control-plane/test/reactions.spec.ts +392 -0
- package/apps/control-plane/test/resume-command.spec.ts +390 -0
- package/apps/control-plane/test/run-coordinator.spec.ts +481 -2
- package/apps/control-plane/test/schema-date-time.spec.ts +46 -0
- package/apps/control-plane/test/service-retry-paths.spec.ts +30 -0
- package/apps/control-plane/test/services.spec.ts +95 -2
- package/apps/control-plane/test/session-management.spec.ts +450 -0
- package/apps/control-plane/test/spec-ingestion.spec.ts +190 -0
- package/apps/control-plane/test/supervisor-collaborators.spec.ts +699 -2
- package/apps/control-plane/test/supervisor.spec.ts +36 -30
- package/apps/control-plane/test/supervisor.unit.spec.ts +405 -0
- package/apps/control-plane/test/worker-decision-loop.spec.ts +57 -0
- package/apps/control-plane/test/workspace-hooks.spec.ts +177 -0
- package/apps/control-plane/vitest.config.ts +21 -5
- package/dist/apps/control-plane/application/adapters/adapter-registry.d.ts +44 -0
- package/dist/apps/control-plane/application/adapters/adapter-registry.js +76 -0
- package/dist/apps/control-plane/application/adapters/adapter-registry.js.map +1 -0
- package/dist/apps/control-plane/application/multi-project-loader.d.ts +31 -0
- package/dist/apps/control-plane/application/multi-project-loader.js +82 -0
- package/dist/apps/control-plane/application/multi-project-loader.js.map +1 -0
- package/dist/apps/control-plane/application/services/activity-monitor-service.d.ts +43 -0
- package/dist/apps/control-plane/application/services/activity-monitor-service.js +132 -0
- package/dist/apps/control-plane/application/services/activity-monitor-service.js.map +1 -0
- package/dist/apps/control-plane/application/services/cost-tracking-service.d.ts +28 -0
- package/dist/apps/control-plane/application/services/cost-tracking-service.js +48 -0
- package/dist/apps/control-plane/application/services/cost-tracking-service.js.map +1 -0
- package/dist/apps/control-plane/application/services/dependency-scheduler-service.d.ts +26 -0
- package/dist/apps/control-plane/application/services/dependency-scheduler-service.js +75 -0
- package/dist/apps/control-plane/application/services/dependency-scheduler-service.js.map +1 -0
- package/dist/apps/control-plane/application/services/feature-deletion-service.d.ts +2 -0
- package/dist/apps/control-plane/application/services/feature-deletion-service.js +6 -7
- package/dist/apps/control-plane/application/services/feature-deletion-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/gate-interpolation-service.d.ts +7 -0
- package/dist/apps/control-plane/application/services/gate-interpolation-service.js +7 -0
- package/dist/apps/control-plane/application/services/gate-interpolation-service.js.map +1 -0
- package/dist/apps/control-plane/application/services/gate-service.js +32 -2
- package/dist/apps/control-plane/application/services/gate-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/instance-isolation-service.d.ts +11 -0
- package/dist/apps/control-plane/application/services/instance-isolation-service.js +17 -0
- package/dist/apps/control-plane/application/services/instance-isolation-service.js.map +1 -0
- package/dist/apps/control-plane/application/services/issue-tracker-service.d.ts +65 -0
- package/dist/apps/control-plane/application/services/issue-tracker-service.js +358 -0
- package/dist/apps/control-plane/application/services/issue-tracker-service.js.map +1 -0
- package/dist/apps/control-plane/application/services/merge-service.d.ts +4 -0
- package/dist/apps/control-plane/application/services/merge-service.js +44 -2
- package/dist/apps/control-plane/application/services/merge-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/notifier-service.d.ts +74 -0
- package/dist/apps/control-plane/application/services/notifier-service.js +212 -0
- package/dist/apps/control-plane/application/services/notifier-service.js.map +1 -0
- package/dist/apps/control-plane/application/services/performance-analytics-service.d.ts +39 -0
- package/dist/apps/control-plane/application/services/performance-analytics-service.js +75 -0
- package/dist/apps/control-plane/application/services/performance-analytics-service.js.map +1 -0
- package/dist/apps/control-plane/application/services/plan-service.d.ts +1 -0
- package/dist/apps/control-plane/application/services/plan-service.js +53 -0
- package/dist/apps/control-plane/application/services/plan-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/pr-monitor-service.d.ts +44 -0
- package/dist/apps/control-plane/application/services/pr-monitor-service.js +192 -0
- package/dist/apps/control-plane/application/services/pr-monitor-service.js.map +1 -0
- package/dist/apps/control-plane/application/services/reactions-service.d.ts +67 -0
- package/dist/apps/control-plane/application/services/reactions-service.js +114 -0
- package/dist/apps/control-plane/application/services/reactions-service.js.map +1 -0
- package/dist/apps/control-plane/application/services/reporting-service.d.ts +1 -0
- package/dist/apps/control-plane/application/services/reporting-service.js +13 -2
- package/dist/apps/control-plane/application/services/reporting-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/run-lease-service.d.ts +2 -0
- package/dist/apps/control-plane/application/services/run-lease-service.js +14 -38
- package/dist/apps/control-plane/application/services/run-lease-service.js.map +1 -1
- package/dist/apps/control-plane/application/tools/tool-metadata.js +3 -1
- package/dist/apps/control-plane/application/tools/tool-metadata.js.map +1 -1
- package/dist/apps/control-plane/cli/aop.d.ts +1 -1
- package/dist/apps/control-plane/cli/aop.js +1 -1
- package/dist/apps/control-plane/cli/attach-command-handler.d.ts +12 -0
- package/dist/apps/control-plane/cli/attach-command-handler.js +98 -0
- package/dist/apps/control-plane/cli/attach-command-handler.js.map +1 -0
- package/dist/apps/control-plane/cli/cleanup-command-handler.d.ts +12 -0
- package/dist/apps/control-plane/cli/cleanup-command-handler.js +162 -0
- package/dist/apps/control-plane/cli/cleanup-command-handler.js.map +1 -0
- package/dist/apps/control-plane/cli/cli-argument-parser.js +73 -3
- package/dist/apps/control-plane/cli/cli-argument-parser.js.map +1 -1
- package/dist/apps/control-plane/cli/dashboard-command-handler.d.ts +7 -0
- package/dist/apps/control-plane/cli/dashboard-command-handler.js +45 -0
- package/dist/apps/control-plane/cli/dashboard-command-handler.js.map +1 -0
- package/dist/apps/control-plane/cli/help-command-handler.d.ts +8 -0
- package/dist/apps/control-plane/cli/help-command-handler.js +146 -0
- package/dist/apps/control-plane/cli/help-command-handler.js.map +1 -0
- package/dist/apps/control-plane/cli/init-command-handler.d.ts +26 -0
- package/dist/apps/control-plane/cli/init-command-handler.js +517 -0
- package/dist/apps/control-plane/cli/init-command-handler.js.map +1 -0
- package/dist/apps/control-plane/cli/resume-command-handler.js +1 -1
- package/dist/apps/control-plane/cli/resume-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/retry-command-handler.d.ts +8 -0
- package/dist/apps/control-plane/cli/retry-command-handler.js +111 -0
- package/dist/apps/control-plane/cli/retry-command-handler.js.map +1 -0
- package/dist/apps/control-plane/cli/run-command-handler.d.ts +5 -0
- package/dist/apps/control-plane/cli/run-command-handler.js +82 -3
- package/dist/apps/control-plane/cli/run-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/send-command-handler.d.ts +8 -0
- package/dist/apps/control-plane/cli/send-command-handler.js +55 -0
- package/dist/apps/control-plane/cli/send-command-handler.js.map +1 -0
- package/dist/apps/control-plane/cli/status-command-handler.d.ts +12 -1
- package/dist/apps/control-plane/cli/status-command-handler.js +55 -2
- package/dist/apps/control-plane/cli/status-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/types.d.ts +26 -1
- package/dist/apps/control-plane/cli/types.js +15 -1
- package/dist/apps/control-plane/cli/types.js.map +1 -1
- package/dist/apps/control-plane/core/constants.d.ts +6 -0
- package/dist/apps/control-plane/core/constants.js +8 -2
- package/dist/apps/control-plane/core/constants.js.map +1 -1
- package/dist/apps/control-plane/core/error-codes.d.ts +2 -0
- package/dist/apps/control-plane/core/error-codes.js +3 -1
- package/dist/apps/control-plane/core/error-codes.js.map +1 -1
- package/dist/apps/control-plane/core/gates.d.ts +4 -0
- package/dist/apps/control-plane/core/gates.js +140 -43
- package/dist/apps/control-plane/core/gates.js.map +1 -1
- package/dist/apps/control-plane/core/kernel.d.ts +50 -1
- package/dist/apps/control-plane/core/kernel.js +220 -7
- package/dist/apps/control-plane/core/kernel.js.map +1 -1
- package/dist/apps/control-plane/core/path-layout.d.ts +3 -0
- package/dist/apps/control-plane/core/path-layout.js +9 -0
- package/dist/apps/control-plane/core/path-layout.js.map +1 -1
- package/dist/apps/control-plane/core/tool-caller.d.ts +32 -0
- package/dist/apps/control-plane/core/tool-caller.js +2 -0
- package/dist/apps/control-plane/core/tool-caller.js.map +1 -0
- package/dist/apps/control-plane/core/workspace-hooks.d.ts +20 -0
- package/dist/apps/control-plane/core/workspace-hooks.js +69 -0
- package/dist/apps/control-plane/core/workspace-hooks.js.map +1 -0
- package/dist/apps/control-plane/interfaces/cli/bootstrap.js +245 -9
- package/dist/apps/control-plane/interfaces/cli/bootstrap.js.map +1 -1
- package/dist/apps/control-plane/providers/providers.d.ts +42 -3
- package/dist/apps/control-plane/providers/providers.js +216 -5
- package/dist/apps/control-plane/providers/providers.js.map +1 -1
- package/dist/apps/control-plane/supervisor/build-wave-executor.d.ts +3 -0
- package/dist/apps/control-plane/supervisor/build-wave-executor.js +115 -6
- package/dist/apps/control-plane/supervisor/build-wave-executor.js.map +1 -1
- package/dist/apps/control-plane/supervisor/qa-wave-executor.d.ts +3 -0
- package/dist/apps/control-plane/supervisor/qa-wave-executor.js +109 -5
- package/dist/apps/control-plane/supervisor/qa-wave-executor.js.map +1 -1
- package/dist/apps/control-plane/supervisor/run-coordinator.d.ts +15 -0
- package/dist/apps/control-plane/supervisor/run-coordinator.js +132 -6
- package/dist/apps/control-plane/supervisor/run-coordinator.js.map +1 -1
- package/dist/apps/control-plane/supervisor/runtime.d.ts +3 -0
- package/dist/apps/control-plane/supervisor/runtime.js +110 -6
- package/dist/apps/control-plane/supervisor/runtime.js.map +1 -1
- package/dist/apps/control-plane/supervisor/types.d.ts +9 -16
- package/dist/apps/control-plane/supervisor/types.js.map +1 -1
- package/dist/apps/control-plane/supervisor/worker-decision-loop.d.ts +3 -0
- package/dist/apps/control-plane/supervisor/worker-decision-loop.js +5 -0
- package/dist/apps/control-plane/supervisor/worker-decision-loop.js.map +1 -1
- package/eslint.config.mjs +2 -1
- package/package.json +12 -2
- package/packages/web-dashboard/next-env.d.ts +5 -0
- package/packages/web-dashboard/next.config.js +7 -0
- package/packages/web-dashboard/package.json +26 -0
- package/packages/web-dashboard/src/app/api/actions/route.ts +64 -0
- package/packages/web-dashboard/src/app/api/events/route.ts +51 -0
- package/packages/web-dashboard/src/app/api/features/[id]/checkout/route.ts +256 -0
- package/packages/web-dashboard/src/app/api/features/[id]/diff/route.ts +10 -0
- package/packages/web-dashboard/src/app/api/features/[id]/evidence/[artifact]/route.ts +25 -0
- package/packages/web-dashboard/src/app/api/features/[id]/review/route.ts +63 -0
- package/packages/web-dashboard/src/app/api/features/[id]/route.ts +16 -0
- package/packages/web-dashboard/src/app/api/projects/route.ts +31 -0
- package/packages/web-dashboard/src/app/api/status/route.ts +15 -0
- package/packages/web-dashboard/src/app/globals.css +2 -0
- package/packages/web-dashboard/src/app/layout.tsx +15 -0
- package/packages/web-dashboard/src/app/page.tsx +393 -0
- package/packages/web-dashboard/src/lib/aop-client.ts +244 -0
- package/packages/web-dashboard/src/lib/multi-project-config.ts +116 -0
- package/packages/web-dashboard/src/lib/orchestrator-tools.ts +284 -0
- package/packages/web-dashboard/src/lib/types.ts +58 -0
- package/packages/web-dashboard/tsconfig.json +40 -0
- package/packages/web-dashboard/vitest.config.ts +6 -0
- package/spec-files/completed/agentic_orchestrator_feature_gaps_closure_spec.md +1764 -0
- package/spec-files/outstanding/agentic_orchestrator_enterprise_governance_dashboard_spec.md +348 -0
- package/spec-files/outstanding/agentic_orchestrator_knowledge_canary_spec.md +344 -0
- package/spec-files/outstanding/agentic_orchestrator_observability_integrity_diagnostics_spec.md +374 -0
- package/spec-files/outstanding/agentic_orchestrator_performance_improvements_spec.md +1059 -0
- package/spec-files/outstanding/agentic_orchestrator_planning_review_quality_spec.md +466 -0
- package/spec-files/outstanding/agentic_orchestrator_quality_adoption_execution_spec.md +198 -0
- package/spec-files/outstanding/agentic_orchestrator_validator_hardening_spec.md +365 -0
- package/spec-files/progress.md +481 -52
- /package/spec-files/{agentic_orchestrator_cli_delete_command_spec.md → completed/agentic_orchestrator_cli_delete_command_spec.md} +0 -0
- /package/spec-files/{agentic_orchestrator_dot_aop_generated_artifacts_spec.md → completed/agentic_orchestrator_dot_aop_generated_artifacts_spec.md} +0 -0
- /package/spec-files/{agentic_orchestrator_mcp_formalization_spec.md → completed/agentic_orchestrator_mcp_formalization_spec.md} +0 -0
- /package/spec-files/{agentic_orchestrator_oop_refactor_spec.md → completed/agentic_orchestrator_oop_refactor_spec.md} +0 -0
- /package/spec-files/{agentic_orchestrator_single_global_orchestrator_spec.md → completed/agentic_orchestrator_single_global_orchestrator_spec.md} +0 -0
- /package/spec-files/{agentic_orchestrator_spec.md → completed/agentic_orchestrator_spec.md} +0 -0
package/spec-files/outstanding/agentic_orchestrator_observability_integrity_diagnostics_spec.md
ADDED
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
# Feature Spec: Observability, Evidence Integrity, and Operational Diagnostics (AOP)
|
|
2
|
+
|
|
3
|
+
> **Purpose of this document**: Define implementation-ready delivery for Q3, Q4, and Q11 from the Quality + Adoption execution roadmap: deterministic replay, tamper-evident evidence, and `aop doctor` readiness/drift diagnostics.
|
|
4
|
+
|
|
5
|
+
**Version:** 1.0
|
|
6
|
+
**Date:** 2026-03-03
|
|
7
|
+
**Status:** Draft
|
|
8
|
+
**Roadmap Mapping:** M33
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 0. Standards and Dependencies
|
|
13
|
+
|
|
14
|
+
### 0.1 Required Standards
|
|
15
|
+
|
|
16
|
+
All implementation MUST preserve:
|
|
17
|
+
- deterministic tool contracts and normalized error envelope
|
|
18
|
+
- MCP/in-process parity for new tool paths
|
|
19
|
+
- Nx + Vitest + architecture boundary validation
|
|
20
|
+
- runtime artifact ownership under `.aop/**`
|
|
21
|
+
|
|
22
|
+
### 0.2 Upstream Inputs
|
|
23
|
+
|
|
24
|
+
Implementing agents MUST read:
|
|
25
|
+
- `spec-files/agentic_orchestrator_spec.md`
|
|
26
|
+
- `spec-files/agentic_orchestrator_mcp_formalization_spec.md`
|
|
27
|
+
- `spec-files/progress.md`
|
|
28
|
+
|
|
29
|
+
### 0.3 Feature Scope
|
|
30
|
+
|
|
31
|
+
This spec implements:
|
|
32
|
+
- **Q3** Deterministic Replay + Time-Travel Debugger
|
|
33
|
+
- **Q4** Tamper-Evident Evidence Chain
|
|
34
|
+
- **Q11** `aop doctor` Readiness + Drift Scanner
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 1. Objectives
|
|
39
|
+
|
|
40
|
+
### 1.1 Must-Have Outcomes
|
|
41
|
+
|
|
42
|
+
- Operators can reconstruct run behavior step-by-step with deterministic timeline artifacts.
|
|
43
|
+
- Evidence artifacts become cryptographically tamper-evident.
|
|
44
|
+
- Repos can be proactively checked for readiness and drift via `aop doctor`.
|
|
45
|
+
- New capabilities are additive and feature-flagged where needed.
|
|
46
|
+
|
|
47
|
+
### 1.2 Non-Goals
|
|
48
|
+
|
|
49
|
+
- No AI-generated RCA narratives in this phase (timeline + facts only).
|
|
50
|
+
- No cryptographic key management/KMS integration in this phase (local signing primitives only).
|
|
51
|
+
- No daemonized background doctor process; command is on-demand.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 2. Architecture Decisions
|
|
56
|
+
|
|
57
|
+
### 2.1 Single Timeline Writer Contract
|
|
58
|
+
|
|
59
|
+
Timeline entries MUST be written by a dedicated service with append-only semantics and monotonic order. Call sites in tool runtime may emit events, but file persistence must go through one writer abstraction.
|
|
60
|
+
|
|
61
|
+
### 2.2 Evidence Chain Anchoring
|
|
62
|
+
|
|
63
|
+
Every new gate/evidence artifact MUST be chained against the immediately prior chain hash for that feature to produce a deterministic tamper-evidence chain.
|
|
64
|
+
|
|
65
|
+
### 2.3 Doctor as Deterministic Scanner
|
|
66
|
+
|
|
67
|
+
`aop doctor` MUST run pure deterministic checks over local state/config/runtime assumptions and emit structured findings with severities and remediations.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## 3. Canonical Artifact Contracts
|
|
72
|
+
|
|
73
|
+
### 3.1 Replay Timeline
|
|
74
|
+
|
|
75
|
+
```text
|
|
76
|
+
.aop/runtime/replay/<run_id>.timeline.jsonl
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Entry contract:
|
|
80
|
+
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"ts": "2026-03-03T00:00:00Z",
|
|
84
|
+
"sequence": 42,
|
|
85
|
+
"run_id": "run-123",
|
|
86
|
+
"feature_id": "my_feature",
|
|
87
|
+
"phase": "building",
|
|
88
|
+
"tool": "repo.apply_patch",
|
|
89
|
+
"operation_id": "op-abc",
|
|
90
|
+
"input_hash": "sha256:...",
|
|
91
|
+
"result": "ok",
|
|
92
|
+
"error_code": null,
|
|
93
|
+
"latency_ms": 317
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Rules:
|
|
98
|
+
- `sequence` MUST be strictly increasing within a run.
|
|
99
|
+
- `input_hash` MUST be deterministic canonical JSON hash.
|
|
100
|
+
- timeline file MUST remain append-only.
|
|
101
|
+
|
|
102
|
+
### 3.2 Evidence Chain
|
|
103
|
+
|
|
104
|
+
```text
|
|
105
|
+
.aop/features/<feature_id>/evidence/chain.json
|
|
106
|
+
.aop/features/<feature_id>/evidence/manifest.json
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Chain entry contract:
|
|
110
|
+
|
|
111
|
+
```json
|
|
112
|
+
{
|
|
113
|
+
"artifact_path": "logs/gates/full/2026-03-03T10-15-00Z.log",
|
|
114
|
+
"artifact_hash": "sha256:...",
|
|
115
|
+
"prev_chain_hash": "sha256:...",
|
|
116
|
+
"chain_hash": "sha256:...",
|
|
117
|
+
"created_at": "2026-03-03T10:15:01Z"
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Rules:
|
|
122
|
+
- chain hash MUST include `artifact_hash + prev_chain_hash + artifact_path + created_at`.
|
|
123
|
+
- verification MUST fail closed if artifact missing, hash mismatch, or chain discontinuity.
|
|
124
|
+
|
|
125
|
+
### 3.3 Doctor Report
|
|
126
|
+
|
|
127
|
+
```text
|
|
128
|
+
.aop/runtime/doctor/last_report.json
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Contract:
|
|
132
|
+
|
|
133
|
+
```json
|
|
134
|
+
{
|
|
135
|
+
"ok": true,
|
|
136
|
+
"generated_at": "2026-03-03T10:30:00Z",
|
|
137
|
+
"summary": {
|
|
138
|
+
"critical": 0,
|
|
139
|
+
"warning": 2,
|
|
140
|
+
"info": 5
|
|
141
|
+
},
|
|
142
|
+
"findings": [
|
|
143
|
+
{
|
|
144
|
+
"id": "policy_gate_mismatch",
|
|
145
|
+
"severity": "warning",
|
|
146
|
+
"message": "...",
|
|
147
|
+
"remediation": "...",
|
|
148
|
+
"refs": ["agentic/orchestrator/policy.yaml"]
|
|
149
|
+
}
|
|
150
|
+
]
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 4. Tool and CLI Surface
|
|
157
|
+
|
|
158
|
+
### 4.1 New MCP Tools
|
|
159
|
+
|
|
160
|
+
1. `replay.timeline_get`
|
|
161
|
+
- Purpose: return timeline entries for a run with optional step/window filters.
|
|
162
|
+
- Mutating: no.
|
|
163
|
+
|
|
164
|
+
2. `evidence.verify_chain`
|
|
165
|
+
- Purpose: verify evidence chain integrity for a feature.
|
|
166
|
+
- Mutating: no.
|
|
167
|
+
|
|
168
|
+
3. `doctor.run`
|
|
169
|
+
- Purpose: execute all readiness/drift checks and persist report artifact.
|
|
170
|
+
- Mutating: yes (writes report).
|
|
171
|
+
|
|
172
|
+
### 4.2 New CLI Commands
|
|
173
|
+
|
|
174
|
+
- `aop replay --run-id <id> [--step N] [--window <count>]`
|
|
175
|
+
- `aop evidence verify --feature-id <id>`
|
|
176
|
+
- `aop doctor [--strict] [--json]`
|
|
177
|
+
|
|
178
|
+
`--strict` contract:
|
|
179
|
+
- exit non-zero if any `critical` finding exists.
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## 5. Detailed Feature Implementation
|
|
184
|
+
|
|
185
|
+
## 5.1 Q3: Deterministic Replay + Time-Travel Debugger
|
|
186
|
+
|
|
187
|
+
### 5.1.1 Implementation Targets
|
|
188
|
+
|
|
189
|
+
- `apps/control-plane/src/application/services/replay-timeline-service.ts` (new)
|
|
190
|
+
- `apps/control-plane/src/mcp/tool-runtime.ts` (timeline emit hooks)
|
|
191
|
+
- `apps/control-plane/src/cli/replay-command-handler.ts` (new)
|
|
192
|
+
- `apps/control-plane/src/cli/cli-argument-parser.ts`
|
|
193
|
+
- `agentic/orchestrator/tools/schemas/input/replay.timeline_get.input.schema.json` (new)
|
|
194
|
+
- `agentic/orchestrator/tools/schemas/output/replay.timeline_get.output.schema.json` (new)
|
|
195
|
+
|
|
196
|
+
### 5.1.2 Algorithm
|
|
197
|
+
|
|
198
|
+
1. Tool runtime creates normalized call event envelope.
|
|
199
|
+
2. Replay service computes canonical `input_hash`.
|
|
200
|
+
3. Replay service obtains next `sequence` atomically.
|
|
201
|
+
4. Entry appended to JSONL.
|
|
202
|
+
5. `replay.timeline_get` reads, filters, and returns ordered entries.
|
|
203
|
+
|
|
204
|
+
### 5.1.3 Error Codes
|
|
205
|
+
|
|
206
|
+
- `run_not_found`
|
|
207
|
+
- `replay_entry_invalid`
|
|
208
|
+
- `timeline_corrupt`
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## 5.2 Q4: Tamper-Evident Evidence Chain
|
|
213
|
+
|
|
214
|
+
### 5.2.1 Implementation Targets
|
|
215
|
+
|
|
216
|
+
- `apps/control-plane/src/application/services/evidence-chain-service.ts` (new)
|
|
217
|
+
- `apps/control-plane/src/application/services/gate-service.ts`
|
|
218
|
+
- `apps/control-plane/src/cli/evidence-verify-command-handler.ts` (new)
|
|
219
|
+
- `agentic/orchestrator/tools/schemas/input/evidence.verify_chain.input.schema.json` (new)
|
|
220
|
+
- `agentic/orchestrator/tools/schemas/output/evidence.verify_chain.output.schema.json` (new)
|
|
221
|
+
|
|
222
|
+
### 5.2.2 Write Path Integration
|
|
223
|
+
|
|
224
|
+
On every evidence artifact write:
|
|
225
|
+
1. calculate artifact hash
|
|
226
|
+
2. load previous chain head
|
|
227
|
+
3. compute new chain hash
|
|
228
|
+
4. append chain entry
|
|
229
|
+
5. update manifest metadata (entry count, head hash)
|
|
230
|
+
|
|
231
|
+
### 5.2.3 Verify Path
|
|
232
|
+
|
|
233
|
+
1. iterate chain entries in order
|
|
234
|
+
2. recompute artifact hash and chain hash
|
|
235
|
+
3. verify continuity
|
|
236
|
+
4. emit result summary with first failing index if invalid
|
|
237
|
+
|
|
238
|
+
### 5.2.4 Error Codes
|
|
239
|
+
|
|
240
|
+
- `evidence_chain_missing`
|
|
241
|
+
- `evidence_hash_mismatch`
|
|
242
|
+
- `evidence_chain_discontinuity`
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## 5.3 Q11: `aop doctor` Readiness + Drift Scanner
|
|
247
|
+
|
|
248
|
+
### 5.3.1 Implementation Targets
|
|
249
|
+
|
|
250
|
+
- `apps/control-plane/src/application/services/doctor-service.ts` (new)
|
|
251
|
+
- `apps/control-plane/src/cli/doctor-command-handler.ts` (new)
|
|
252
|
+
- `agentic/orchestrator/schemas/doctor_report.schema.json` (new)
|
|
253
|
+
- `agentic/orchestrator/tools/schemas/input/doctor.run.input.schema.json` (new)
|
|
254
|
+
- `agentic/orchestrator/tools/schemas/output/doctor.run.output.schema.json` (new)
|
|
255
|
+
|
|
256
|
+
### 5.3.2 Scanner Categories
|
|
257
|
+
|
|
258
|
+
1. **Environment checks**
|
|
259
|
+
- node/npm/git availability
|
|
260
|
+
- minimal tool versions
|
|
261
|
+
|
|
262
|
+
2. **Config/schema checks**
|
|
263
|
+
- policy/gates/agents schema-valid
|
|
264
|
+
- MCP contract catalog consistency
|
|
265
|
+
|
|
266
|
+
3. **Runtime health checks**
|
|
267
|
+
- stale run lease anomalies
|
|
268
|
+
- orphan runtime session mappings
|
|
269
|
+
- corrupt/partial artifact detection
|
|
270
|
+
|
|
271
|
+
4. **Drift checks**
|
|
272
|
+
- policy-gates mismatch (required modes missing)
|
|
273
|
+
- disabled mandatory invariants
|
|
274
|
+
|
|
275
|
+
### 5.3.3 Severity Model
|
|
276
|
+
|
|
277
|
+
- `critical`: immediate run-blocking risk
|
|
278
|
+
- `warning`: correctness/performance risk
|
|
279
|
+
- `info`: advisory
|
|
280
|
+
|
|
281
|
+
### 5.3.4 Error Codes
|
|
282
|
+
|
|
283
|
+
- `doctor_check_failed`
|
|
284
|
+
- `doctor_report_invalid`
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## 6. Milestones
|
|
289
|
+
|
|
290
|
+
### OD1: Replay Foundation
|
|
291
|
+
|
|
292
|
+
- timeline service + MCP tool + CLI command
|
|
293
|
+
- end-to-end timeline generation for tool calls
|
|
294
|
+
|
|
295
|
+
Exit gate:
|
|
296
|
+
- deterministic ordering and stable hashes verified in tests
|
|
297
|
+
|
|
298
|
+
### OD2: Evidence Integrity
|
|
299
|
+
|
|
300
|
+
- chain writer/validator integrated with gate artifacts
|
|
301
|
+
- CLI + MCP verification paths added
|
|
302
|
+
|
|
303
|
+
Exit gate:
|
|
304
|
+
- tamper test fails correctly; untampered chain passes
|
|
305
|
+
|
|
306
|
+
### OD3: Doctor Diagnostics
|
|
307
|
+
|
|
308
|
+
- scanner categories implemented with schema-backed report
|
|
309
|
+
- strict exit mode added
|
|
310
|
+
|
|
311
|
+
Exit gate:
|
|
312
|
+
- doctor report persisted and schema-valid across sample repos
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## 7. Test Strategy (Normative)
|
|
317
|
+
|
|
318
|
+
### 7.1 Unit Tests
|
|
319
|
+
|
|
320
|
+
- replay sequence monotonicity
|
|
321
|
+
- evidence chain hash correctness
|
|
322
|
+
- doctor finding severity assignment
|
|
323
|
+
|
|
324
|
+
### 7.2 Integration Tests
|
|
325
|
+
|
|
326
|
+
- real run produces replay entries for critical tool path
|
|
327
|
+
- modified evidence file triggers chain verification failure
|
|
328
|
+
- doctor surfaces intentionally broken policy/gate config
|
|
329
|
+
|
|
330
|
+
### 7.3 Transport Parity
|
|
331
|
+
|
|
332
|
+
- `replay.timeline_get` parity across in-process vs MCP
|
|
333
|
+
- `evidence.verify_chain` parity across in-process vs MCP
|
|
334
|
+
- `doctor.run` parity across in-process vs MCP
|
|
335
|
+
|
|
336
|
+
### 7.4 CLI Tests
|
|
337
|
+
|
|
338
|
+
- parser + handler tests for `replay`, `evidence verify`, and `doctor`
|
|
339
|
+
- strict mode exit-code behavior
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
## 8. Acceptance Criteria
|
|
344
|
+
|
|
345
|
+
1. Replay timeline exists and is queryable by run/step.
|
|
346
|
+
2. Evidence chain verification reliably detects tampering.
|
|
347
|
+
3. `aop doctor` returns deterministic structured findings and actionable remediations.
|
|
348
|
+
4. New tools are fully contract-validated and RBAC-scoped.
|
|
349
|
+
5. All quality gates pass (`lint`, `typecheck`, `test`, contract/architecture validation).
|
|
350
|
+
|
|
351
|
+
---
|
|
352
|
+
|
|
353
|
+
## 9. Risks and Mitigations
|
|
354
|
+
|
|
355
|
+
- Risk: timeline file growth for long-running repos.
|
|
356
|
+
- Mitigation: deterministic retention and archive policy per run.
|
|
357
|
+
|
|
358
|
+
- Risk: false positives in doctor checks.
|
|
359
|
+
- Mitigation: finding IDs with explicit suppression config and rationale tracking.
|
|
360
|
+
|
|
361
|
+
- Risk: performance overhead from hashing every artifact.
|
|
362
|
+
- Mitigation: stream hashing and incremental manifest update.
|
|
363
|
+
|
|
364
|
+
---
|
|
365
|
+
|
|
366
|
+
## 10. Definition of Done
|
|
367
|
+
|
|
368
|
+
A session completing any OD milestone MUST provide:
|
|
369
|
+
- changed files and rationale
|
|
370
|
+
- schema/tool catalog deltas
|
|
371
|
+
- test coverage additions
|
|
372
|
+
- verification command results
|
|
373
|
+
- `spec-files/progress.md` updates with next actionable tasks
|
|
374
|
+
|