agentic-orchestrator 0.1.28 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +46 -1
- package/.cortexrc +28 -0
- package/.github/agents/copilot-instructions.md +29 -0
- package/.github/copilot-instructions.md +93 -0
- package/.vscode/settings.json +13 -0
- package/.vscode/tms.code-snippets +223 -0
- package/AGENTS.md +72 -1
- package/Agentic-Orchestrator.iml +12 -11
- package/CLAUDE.md +72 -1
- package/CONSTITUTION.md +504 -0
- package/FUTURE-ENHANCEMENTS.md +85 -0
- package/NEXT-TASKS.md +25 -0
- package/PROMPTS.md +161 -0
- package/README.md +126 -29
- package/agentic/orchestrator/agents.yaml +4 -3
- package/agentic/orchestrator/defaults/policy.defaults.yaml +39 -3
- package/agentic/orchestrator/gates.yaml +15 -3
- package/agentic/orchestrator/policy.yaml +47 -3
- package/agentic/orchestrator/prompts/builder.system.md +69 -20
- package/agentic/orchestrator/prompts/planner-intake.system.md +149 -0
- package/agentic/orchestrator/prompts/planner.system.md +113 -40
- package/agentic/orchestrator/prompts/qa.system.md +73 -18
- package/agentic/orchestrator/prompts/reconciler.system.md +119 -0
- package/agentic/orchestrator/schemas/agents.schema.json +89 -1
- package/agentic/orchestrator/schemas/execution-control.schema.json +242 -0
- package/agentic/orchestrator/schemas/index.schema.json +234 -0
- package/agentic/orchestrator/schemas/intake.review.schema.json +82 -0
- package/agentic/orchestrator/schemas/organizer-ordering-artifact.schema.json +75 -0
- package/agentic/orchestrator/schemas/plan.schema.json +44 -0
- package/agentic/orchestrator/schemas/policy.schema.json +238 -9
- package/agentic/orchestrator/schemas/policy.user.schema.json +129 -1
- package/agentic/orchestrator/schemas/spec.manifest.bootstrap.schema.json +101 -0
- package/agentic/orchestrator/schemas/spec.manifest.verified.schema.json +80 -0
- package/agentic/orchestrator/schemas/state.schema.json +298 -3
- package/agentic/orchestrator/tools/catalog.json +145 -15
- package/agentic/orchestrator/tools/schemas/input/doctor.run.input.schema.json +18 -0
- package/agentic/orchestrator/tools/schemas/input/evidence.latest.input.schema.json +4 -0
- package/agentic/orchestrator/tools/schemas/input/evidence.verify_chain.input.schema.json +13 -0
- package/agentic/orchestrator/tools/schemas/input/feature.intake_submit.input.schema.json +11 -0
- package/agentic/orchestrator/tools/schemas/input/feature.question_answer.input.schema.json +15 -0
- package/agentic/orchestrator/tools/schemas/input/feature.question_create.input.schema.json +21 -0
- package/agentic/orchestrator/tools/schemas/input/feature.question_list.input.schema.json +13 -0
- package/agentic/orchestrator/tools/schemas/input/feature.ready_to_merge.input.schema.json +5 -0
- package/agentic/orchestrator/tools/schemas/input/feature.send_message.input.schema.json +1 -1
- package/agentic/orchestrator/tools/schemas/input/replay.timeline_get.input.schema.json +32 -0
- package/agentic/orchestrator/tools/schemas/input/repo.conflict_abort.input.schema.json +16 -0
- package/agentic/orchestrator/tools/schemas/input/repo.conflict_files.input.schema.json +16 -0
- package/agentic/orchestrator/tools/schemas/input/repo.reconcile_mainline.input.schema.json +37 -0
- package/agentic/orchestrator/tools/schemas/input/repo.resolve_conflict.input.schema.json +40 -0
- package/agentic/orchestrator/tools/schemas/input/runtime.execution_request_list.input.schema.json +7 -0
- package/agentic/orchestrator/tools/schemas/input/runtime.execution_request_submit.input.schema.json +25 -0
- package/agentic/orchestrator/tools/schemas/output/doctor.run.output.schema.json +34 -0
- package/agentic/orchestrator/tools/schemas/output/evidence.verify_chain.output.schema.json +23 -0
- package/agentic/orchestrator/tools/schemas/output/feature.get_context.output.schema.json +62 -2
- package/agentic/orchestrator/tools/schemas/output/feature.intake_submit.output.schema.json +24 -0
- package/agentic/orchestrator/tools/schemas/output/feature.question_answer.output.schema.json +21 -0
- package/agentic/orchestrator/tools/schemas/output/feature.question_create.output.schema.json +12 -0
- package/agentic/orchestrator/tools/schemas/output/feature.question_list.output.schema.json +14 -0
- package/agentic/orchestrator/tools/schemas/output/feature.ready_to_merge.output.schema.json +31 -0
- package/agentic/orchestrator/tools/schemas/output/feature.send_message.output.schema.json +8 -18
- package/agentic/orchestrator/tools/schemas/output/replay.timeline_get.output.schema.json +64 -0
- package/agentic/orchestrator/tools/schemas/output/repo.conflict_abort.output.schema.json +16 -0
- package/agentic/orchestrator/tools/schemas/output/repo.conflict_files.output.schema.json +22 -0
- package/agentic/orchestrator/tools/schemas/output/repo.reconcile_mainline.output.schema.json +61 -0
- package/agentic/orchestrator/tools/schemas/output/repo.resolve_conflict.output.schema.json +19 -0
- package/agentic/orchestrator/tools/schemas/output/report.dashboard.output.schema.json +26 -0
- package/agentic/orchestrator/tools/schemas/output/runtime.execution_request_list.output.schema.json +17 -0
- package/agentic/orchestrator/tools/schemas/output/runtime.execution_request_submit.output.schema.json +24 -0
- package/agentic/orchestrator/tools.md +13 -0
- package/apps/control-plane/scripts/validate-mcp-contracts.ts +1 -1
- package/apps/control-plane/src/application/kernel-tool-wiring.ts +140 -2
- package/apps/control-plane/src/application/services/activity-monitor-service.ts +44 -1
- package/apps/control-plane/src/application/services/bootstrap-manifest-generator-service.ts +251 -0
- package/apps/control-plane/src/application/services/checkpoint-service.ts +87 -27
- package/apps/control-plane/src/application/services/collision-override-service.ts +906 -0
- package/apps/control-plane/src/application/services/collision-queue-service.ts +129 -38
- package/apps/control-plane/src/application/services/cost-tracking-service.ts +94 -0
- package/apps/control-plane/src/application/services/execution-control-service.ts +599 -0
- package/apps/control-plane/src/application/services/feature-deletion-service.ts +37 -1
- package/apps/control-plane/src/application/services/feature-lifecycle-service.ts +182 -4
- package/apps/control-plane/src/application/services/feature-send-message-service.ts +17 -8
- package/apps/control-plane/src/application/services/feature-state-service.ts +191 -6
- package/apps/control-plane/src/application/services/gate-service.ts +121 -2
- package/apps/control-plane/src/application/services/git-reconciliation-service.ts +1591 -0
- package/apps/control-plane/src/application/services/intake-service.ts +1468 -0
- package/apps/control-plane/src/application/services/merge-service.ts +308 -17
- package/apps/control-plane/src/application/services/notifier-service.ts +3 -1
- package/apps/control-plane/src/application/services/performance-analytics-service.ts +75 -0
- package/apps/control-plane/src/application/services/plan-service.ts +336 -20
- package/apps/control-plane/src/application/services/question-service.ts +693 -0
- package/apps/control-plane/src/application/services/reactions-service.ts +73 -17
- package/apps/control-plane/src/application/services/replay-timeline-service.ts +295 -0
- package/apps/control-plane/src/application/services/reporting-service.ts +194 -10
- package/apps/control-plane/src/application/services/run-lease-service.ts +121 -5
- package/apps/control-plane/src/application/services/worktree-watchdog-service.ts +95 -8
- package/apps/control-plane/src/application/tools/tool-metadata.ts +7 -0
- package/apps/control-plane/src/application/usage-types.ts +138 -0
- package/apps/control-plane/src/cli/add-command-handler.ts +162 -0
- package/apps/control-plane/src/cli/answer-command-handler.ts +113 -0
- package/apps/control-plane/src/cli/attach-command-handler.ts +12 -3
- package/apps/control-plane/src/cli/cli-argument-parser.ts +133 -11
- package/apps/control-plane/src/cli/collision-command-handler.ts +113 -0
- package/apps/control-plane/src/cli/command-catalog.ts +479 -0
- package/apps/control-plane/src/cli/complete-command-handler.ts +23 -0
- package/apps/control-plane/src/cli/completion-command-handler.ts +25 -0
- package/apps/control-plane/src/cli/completion-resolver.ts +319 -0
- package/apps/control-plane/src/cli/completion-shell-renderer.ts +58 -0
- package/apps/control-plane/src/cli/dashboard-command-handler.ts +110 -1
- package/apps/control-plane/src/cli/dashboard-runtime-runner.ts +1036 -0
- package/apps/control-plane/src/cli/dashboard-runtime.ts +31 -0
- package/apps/control-plane/src/cli/help-command-handler.ts +17 -185
- package/apps/control-plane/src/cli/init-command-handler.ts +51 -6
- package/apps/control-plane/src/cli/merge-command-handler.ts +200 -0
- package/apps/control-plane/src/cli/questions-command-handler.ts +70 -0
- package/apps/control-plane/src/cli/replay-command-handler.ts +98 -0
- package/apps/control-plane/src/cli/resume-command-handler.ts +231 -16
- package/apps/control-plane/src/cli/retry-command-handler.ts +229 -17
- package/apps/control-plane/src/cli/retry-resume-decision.ts +75 -0
- package/apps/control-plane/src/cli/rollback-command-handler.ts +4 -2
- package/apps/control-plane/src/cli/run-command-handler.ts +35 -1
- package/apps/control-plane/src/cli/spec-ingestion-service.ts +45 -55
- package/apps/control-plane/src/cli/spec-preparation.ts +114 -0
- package/apps/control-plane/src/cli/spec-utils.ts +90 -11
- package/apps/control-plane/src/cli/status-command-handler.ts +122 -0
- package/apps/control-plane/src/cli/types.ts +41 -3
- package/apps/control-plane/src/core/collisions.ts +150 -31
- package/apps/control-plane/src/core/constants.ts +18 -1
- package/apps/control-plane/src/core/error-codes.ts +39 -0
- package/apps/control-plane/src/core/execution-control.ts +56 -0
- package/apps/control-plane/src/core/feature-resume-phase.ts +118 -0
- package/apps/control-plane/src/core/gate-freshness.ts +359 -0
- package/apps/control-plane/src/core/gate-log-extractor.ts +97 -0
- package/apps/control-plane/src/core/gates.ts +90 -1
- package/apps/control-plane/src/core/intake-artifacts.ts +295 -0
- package/apps/control-plane/src/core/kernel-types.ts +11 -0
- package/apps/control-plane/src/core/kernel.ts +604 -16
- package/apps/control-plane/src/core/mainline-conflict.ts +22 -0
- package/apps/control-plane/src/core/merge-repair.ts +149 -0
- package/apps/control-plane/src/core/path-layout.ts +46 -2
- package/apps/control-plane/src/core/path-rules.ts +11 -3
- package/apps/control-plane/src/core/plan-submit-recovery.ts +130 -0
- package/apps/control-plane/src/core/questions.ts +49 -0
- package/apps/control-plane/src/core/runtime-sessions.ts +4 -0
- package/apps/control-plane/src/core/schemas.ts +40 -1
- package/apps/control-plane/src/core/tool-caller.ts +25 -1
- package/apps/control-plane/src/core/utils/index-normalizer.ts +25 -4
- package/apps/control-plane/src/core/worktree-diff.ts +66 -0
- package/apps/control-plane/src/index.ts +29 -1
- package/apps/control-plane/src/interfaces/cli/bootstrap.ts +300 -6
- package/apps/control-plane/src/mcp/kernel-tool-executor.ts +17 -0
- package/apps/control-plane/src/mcp/tool-runtime.ts +63 -4
- package/apps/control-plane/src/providers/api-worker-provider.ts +62 -15
- package/apps/control-plane/src/providers/cli-worker-provider.ts +1037 -61
- package/apps/control-plane/src/providers/output-parsers/generic-output-parser.ts +99 -1
- package/apps/control-plane/src/providers/output-parsers/types.ts +2 -0
- package/apps/control-plane/src/providers/provider-defaults.ts +116 -7
- package/apps/control-plane/src/providers/providers.ts +225 -21
- package/apps/control-plane/src/providers/worker-provider-factory.ts +26 -2
- package/apps/control-plane/src/supervisor/artifact-stager.ts +52 -0
- package/apps/control-plane/src/supervisor/build-wave-executor.ts +477 -166
- package/apps/control-plane/src/supervisor/execution-enrollment-service.ts +408 -0
- package/apps/control-plane/src/supervisor/organizer-enrollment-scheduler.ts +117 -0
- package/apps/control-plane/src/supervisor/organizer-sidecar-service.ts +394 -0
- package/apps/control-plane/src/supervisor/plan-conformance-scorer.ts +2 -5
- package/apps/control-plane/src/supervisor/planner-phase.ts +85 -0
- package/apps/control-plane/src/supervisor/planning-wave-executor.ts +993 -64
- package/apps/control-plane/src/supervisor/prompt-bundle-loader.ts +20 -1
- package/apps/control-plane/src/supervisor/qa-wave-executor.ts +384 -177
- package/apps/control-plane/src/supervisor/run-coordinator.ts +723 -20
- package/apps/control-plane/src/supervisor/runtime.ts +485 -9
- package/apps/control-plane/src/supervisor/session-orchestrator.ts +220 -1
- package/apps/control-plane/src/supervisor/types.ts +152 -1
- package/apps/control-plane/src/supervisor/worker-decision-loop.ts +1030 -92
- package/apps/control-plane/test/activity-monitor.spec.ts +76 -0
- package/apps/control-plane/test/add-command-handler.spec.ts +189 -0
- package/apps/control-plane/test/application/services/feature-state-service.spec.ts +208 -0
- package/apps/control-plane/test/artifact-stager.spec.ts +93 -0
- package/apps/control-plane/test/batch-operations.spec.ts +58 -0
- package/apps/control-plane/test/bootstrap-edge-cases.spec.ts +50 -2
- package/apps/control-plane/test/bootstrap-manifest-generator-service.spec.ts +99 -0
- package/apps/control-plane/test/bootstrap.spec.ts +177 -4
- package/apps/control-plane/test/checkpoint-service.spec.ts +977 -29
- package/apps/control-plane/test/cli-argument-parser.spec.ts +119 -0
- package/apps/control-plane/test/cli-helpers.spec.ts +1202 -12
- package/apps/control-plane/test/cli.unit.spec.ts +797 -16
- package/apps/control-plane/test/collision-command-handler.spec.ts +182 -0
- package/apps/control-plane/test/collision-override-service.spec.ts +878 -0
- package/apps/control-plane/test/collision-queue.spec.ts +430 -2
- package/apps/control-plane/test/collisions.spec.ts +209 -1
- package/apps/control-plane/test/core-utils.spec.ts +61 -0
- package/apps/control-plane/test/cost-tracking.spec.ts +224 -0
- package/apps/control-plane/test/dashboard-api.integration.spec.ts +185 -5
- package/apps/control-plane/test/dashboard-client.spec.ts +948 -0
- package/apps/control-plane/test/dashboard-command.spec.ts +138 -6
- package/apps/control-plane/test/dashboard-runtime-runner.spec.ts +1550 -0
- package/apps/control-plane/test/dashboard-runtime.spec.ts +138 -0
- package/apps/control-plane/test/dashboard-ui-utils.spec.ts +56 -12
- package/apps/control-plane/test/dependency-scheduler.spec.ts +7 -1
- package/apps/control-plane/test/env-file.spec.ts +76 -0
- package/apps/control-plane/test/execution-control-service.spec.ts +535 -0
- package/apps/control-plane/test/execution-enrollment-service.spec.ts +648 -0
- package/apps/control-plane/test/feature-lifecycle.spec.ts +126 -0
- package/apps/control-plane/test/feature-resume-phase.spec.ts +164 -0
- package/apps/control-plane/test/feature-send-message-service.spec.ts +161 -0
- package/apps/control-plane/test/feature-state-service.spec.ts +295 -0
- package/apps/control-plane/test/fs.spec.ts +80 -0
- package/apps/control-plane/test/gate-freshness.spec.ts +590 -0
- package/apps/control-plane/test/gate-log-extractor.spec.ts +170 -0
- package/apps/control-plane/test/gates.spec.ts +108 -0
- package/apps/control-plane/test/git-reconciliation-service.spec.ts +2307 -0
- package/apps/control-plane/test/helpers.ts +65 -0
- package/apps/control-plane/test/incremental-gates.spec.ts +271 -0
- package/apps/control-plane/test/index-normalizer.spec.ts +98 -0
- package/apps/control-plane/test/init-wizard.spec.ts +17 -0
- package/apps/control-plane/test/intake-artifacts.spec.ts +203 -0
- package/apps/control-plane/test/intake-service.spec.ts +3176 -0
- package/apps/control-plane/test/kernel-collision-replay.spec.ts +3 -2
- package/apps/control-plane/test/kernel-tool-executor.spec.ts +77 -0
- package/apps/control-plane/test/kernel-tool-wiring.spec.ts +279 -0
- package/apps/control-plane/test/kernel.branches.spec.ts +15 -2
- package/apps/control-plane/test/kernel.coverage.spec.ts +7 -3
- package/apps/control-plane/test/kernel.coverage2.spec.ts +731 -2
- package/apps/control-plane/test/kernel.spec.ts +464 -2
- package/apps/control-plane/test/mainline-conflict.spec.ts +66 -0
- package/apps/control-plane/test/mcp-helpers.spec.ts +79 -0
- package/apps/control-plane/test/mcp.spec.ts +177 -13
- package/apps/control-plane/test/merge-command-handler.spec.ts +531 -0
- package/apps/control-plane/test/merge-service.spec.ts +570 -4
- package/apps/control-plane/test/notifier-service.spec.ts +26 -0
- package/apps/control-plane/test/organizer-enrollment-scheduler.spec.ts +340 -0
- package/apps/control-plane/test/organizer-ordering-artifact.spec.ts +95 -0
- package/apps/control-plane/test/organizer-sidecar-service.spec.ts +468 -0
- package/apps/control-plane/test/output-loop-detector.spec.ts +6 -0
- package/apps/control-plane/test/path-layout.spec.ts +70 -0
- package/apps/control-plane/test/performance-analytics.spec.ts +124 -0
- package/apps/control-plane/test/plan-conformance-scorer.spec.ts +53 -0
- package/apps/control-plane/test/plan-service.spec.ts +686 -4
- package/apps/control-plane/test/planning-wave-executor.spec.ts +3272 -86
- package/apps/control-plane/test/policy-loader-service.spec.ts +5 -0
- package/apps/control-plane/test/prompt-overlay.spec.ts +65 -0
- package/apps/control-plane/test/provider-command-runner-epipe.spec.ts +64 -0
- package/apps/control-plane/test/providers/api-worker-provider.spec.ts +129 -0
- package/apps/control-plane/test/providers/cli-worker-provider.spec.ts +148 -0
- package/apps/control-plane/test/providers/usage-types.spec.ts +98 -0
- package/apps/control-plane/test/providers.spec.ts +293 -16
- package/apps/control-plane/test/question-command-handlers.spec.ts +156 -0
- package/apps/control-plane/test/question-service.spec.ts +1119 -0
- package/apps/control-plane/test/reactions.spec.ts +114 -0
- package/apps/control-plane/test/replay-command-handler.spec.ts +144 -0
- package/apps/control-plane/test/replay-timeline-service.spec.ts +459 -0
- package/apps/control-plane/test/response.spec.ts +31 -0
- package/apps/control-plane/test/resume-command.spec.ts +757 -9
- package/apps/control-plane/test/retry-resume-decision.spec.ts +133 -0
- package/apps/control-plane/test/rollback-command-handler.spec.ts +334 -0
- package/apps/control-plane/test/rollback-command.spec.ts +120 -0
- package/apps/control-plane/test/run-coordinator.spec.ts +3062 -404
- package/apps/control-plane/test/schemas/state.schema.spec.ts +71 -0
- package/apps/control-plane/test/service-retry-paths.spec.ts +112 -0
- package/apps/control-plane/test/services.spec.ts +472 -2
- package/apps/control-plane/test/session-management.spec.ts +346 -1
- package/apps/control-plane/test/spec-ingestion.spec.ts +102 -28
- package/apps/control-plane/test/spec-preparation.spec.ts +182 -0
- package/apps/control-plane/test/supervisor-collaborators.spec.ts +191 -3
- package/apps/control-plane/test/supervisor.calltool.spec.ts +198 -0
- package/apps/control-plane/test/supervisor.spec.ts +95 -16
- package/apps/control-plane/test/supervisor.unit.spec.ts +385 -18
- package/apps/control-plane/test/tool-runtime.spec.ts +122 -0
- package/apps/control-plane/test/worker-decision-loop.spec.ts +3479 -476
- package/apps/control-plane/test/worker-execution-policy.spec.ts +1416 -6
- package/apps/control-plane/test/worker-provider-adapters.spec.ts +1894 -37
- package/apps/control-plane/test/worker-provider-factory.spec.ts +81 -0
- package/apps/control-plane/test/worktree-watchdog-service.spec.ts +125 -0
- package/apps/control-plane/vitest.config.ts +5 -0
- package/config/agentic/orchestrator/agents.yaml +22 -1
- package/config/agentic/orchestrator/gates.yaml +24 -7
- package/config/agentic/orchestrator/policy.yaml +23 -1
- package/config/agentic/orchestrator/prompts/builder.system.md +69 -20
- package/config/agentic/orchestrator/prompts/organizer.system.md +85 -0
- package/config/agentic/orchestrator/prompts/overrides/builder.claude.md +28 -0
- package/config/agentic/orchestrator/prompts/overrides/builder.codex.md +28 -0
- package/config/agentic/orchestrator/prompts/overrides/planner.claude.md +20 -0
- package/config/agentic/orchestrator/prompts/overrides/planner.codex.md +20 -0
- package/config/agentic/orchestrator/prompts/planner-intake.system.md +149 -0
- package/config/agentic/orchestrator/prompts/planner.system.md +113 -40
- package/config/agentic/orchestrator/prompts/qa.system.md +75 -18
- package/config/agentic/orchestrator/prompts/reconciler.system.md +119 -0
- package/dist/apps/control-plane/application/kernel-tool-wiring.d.ts +26 -2
- package/dist/apps/control-plane/application/kernel-tool-wiring.js +40 -2
- package/dist/apps/control-plane/application/kernel-tool-wiring.js.map +1 -1
- package/dist/apps/control-plane/application/services/activity-monitor-service.js +37 -1
- package/dist/apps/control-plane/application/services/activity-monitor-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/bootstrap-manifest-generator-service.d.ts +4 -0
- package/dist/apps/control-plane/application/services/bootstrap-manifest-generator-service.js +188 -0
- package/dist/apps/control-plane/application/services/bootstrap-manifest-generator-service.js.map +1 -0
- package/dist/apps/control-plane/application/services/checkpoint-service.d.ts +5 -0
- package/dist/apps/control-plane/application/services/checkpoint-service.js +69 -24
- package/dist/apps/control-plane/application/services/checkpoint-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/collision-override-service.d.ts +139 -0
- package/dist/apps/control-plane/application/services/collision-override-service.js +568 -0
- package/dist/apps/control-plane/application/services/collision-override-service.js.map +1 -0
- package/dist/apps/control-plane/application/services/collision-queue-service.d.ts +15 -0
- package/dist/apps/control-plane/application/services/collision-queue-service.js +92 -33
- package/dist/apps/control-plane/application/services/collision-queue-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/cost-tracking-service.d.ts +11 -0
- package/dist/apps/control-plane/application/services/cost-tracking-service.js +75 -0
- package/dist/apps/control-plane/application/services/cost-tracking-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/execution-control-service.d.ts +75 -0
- package/dist/apps/control-plane/application/services/execution-control-service.js +421 -0
- package/dist/apps/control-plane/application/services/execution-control-service.js.map +1 -0
- package/dist/apps/control-plane/application/services/feature-deletion-service.d.ts +1 -0
- package/dist/apps/control-plane/application/services/feature-deletion-service.js +23 -1
- package/dist/apps/control-plane/application/services/feature-deletion-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/feature-lifecycle-service.d.ts +24 -1
- package/dist/apps/control-plane/application/services/feature-lifecycle-service.js +132 -3
- package/dist/apps/control-plane/application/services/feature-lifecycle-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/feature-send-message-service.js +16 -8
- package/dist/apps/control-plane/application/services/feature-send-message-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/feature-state-service.d.ts +36 -0
- package/dist/apps/control-plane/application/services/feature-state-service.js +163 -6
- package/dist/apps/control-plane/application/services/feature-state-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/gate-service.d.ts +2 -1
- package/dist/apps/control-plane/application/services/gate-service.js +95 -5
- package/dist/apps/control-plane/application/services/gate-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/git-reconciliation-service.d.ts +92 -0
- package/dist/apps/control-plane/application/services/git-reconciliation-service.js +1097 -0
- package/dist/apps/control-plane/application/services/git-reconciliation-service.js.map +1 -0
- package/dist/apps/control-plane/application/services/intake-service.d.ts +63 -0
- package/dist/apps/control-plane/application/services/intake-service.js +1050 -0
- package/dist/apps/control-plane/application/services/intake-service.js.map +1 -0
- package/dist/apps/control-plane/application/services/merge-service.d.ts +5 -1
- package/dist/apps/control-plane/application/services/merge-service.js +233 -18
- package/dist/apps/control-plane/application/services/merge-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/notifier-service.d.ts +1 -1
- package/dist/apps/control-plane/application/services/notifier-service.js +1 -0
- package/dist/apps/control-plane/application/services/notifier-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/performance-analytics-service.d.ts +11 -0
- package/dist/apps/control-plane/application/services/performance-analytics-service.js +59 -0
- package/dist/apps/control-plane/application/services/performance-analytics-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/plan-service.d.ts +5 -0
- package/dist/apps/control-plane/application/services/plan-service.js +254 -15
- package/dist/apps/control-plane/application/services/plan-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/question-service.d.ts +72 -0
- package/dist/apps/control-plane/application/services/question-service.js +507 -0
- package/dist/apps/control-plane/application/services/question-service.js.map +1 -0
- package/dist/apps/control-plane/application/services/reactions-service.d.ts +2 -0
- package/dist/apps/control-plane/application/services/reactions-service.js +60 -17
- package/dist/apps/control-plane/application/services/reactions-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/replay-timeline-service.d.ts +39 -0
- package/dist/apps/control-plane/application/services/replay-timeline-service.js +205 -0
- package/dist/apps/control-plane/application/services/replay-timeline-service.js.map +1 -0
- package/dist/apps/control-plane/application/services/reporting-service.d.ts +59 -0
- package/dist/apps/control-plane/application/services/reporting-service.js +121 -9
- 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 +20 -0
- package/dist/apps/control-plane/application/services/run-lease-service.js +81 -4
- package/dist/apps/control-plane/application/services/run-lease-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/worktree-watchdog-service.d.ts +10 -0
- package/dist/apps/control-plane/application/services/worktree-watchdog-service.js +65 -8
- package/dist/apps/control-plane/application/services/worktree-watchdog-service.js.map +1 -1
- package/dist/apps/control-plane/application/tools/tool-metadata.js +7 -0
- package/dist/apps/control-plane/application/tools/tool-metadata.js.map +1 -1
- package/dist/apps/control-plane/application/usage-types.d.ts +65 -0
- package/dist/apps/control-plane/application/usage-types.js +75 -0
- package/dist/apps/control-plane/application/usage-types.js.map +1 -0
- package/dist/apps/control-plane/cli/add-command-handler.d.ts +18 -0
- package/dist/apps/control-plane/cli/add-command-handler.js +110 -0
- package/dist/apps/control-plane/cli/add-command-handler.js.map +1 -0
- package/dist/apps/control-plane/cli/answer-command-handler.d.ts +8 -0
- package/dist/apps/control-plane/cli/answer-command-handler.js +96 -0
- package/dist/apps/control-plane/cli/answer-command-handler.js.map +1 -0
- package/dist/apps/control-plane/cli/attach-command-handler.js +8 -3
- package/dist/apps/control-plane/cli/attach-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/cli-argument-parser.js +131 -11
- package/dist/apps/control-plane/cli/cli-argument-parser.js.map +1 -1
- package/dist/apps/control-plane/cli/collision-command-handler.d.ts +8 -0
- package/dist/apps/control-plane/cli/collision-command-handler.js +90 -0
- package/dist/apps/control-plane/cli/collision-command-handler.js.map +1 -0
- package/dist/apps/control-plane/cli/command-catalog.d.ts +21 -0
- package/dist/apps/control-plane/cli/command-catalog.js +416 -0
- package/dist/apps/control-plane/cli/command-catalog.js.map +1 -0
- package/dist/apps/control-plane/cli/complete-command-handler.d.ts +15 -0
- package/dist/apps/control-plane/cli/complete-command-handler.js +26 -0
- package/dist/apps/control-plane/cli/complete-command-handler.js.map +1 -0
- package/dist/apps/control-plane/cli/completion-command-handler.d.ts +8 -0
- package/dist/apps/control-plane/cli/completion-command-handler.js +20 -0
- package/dist/apps/control-plane/cli/completion-command-handler.js.map +1 -0
- package/dist/apps/control-plane/cli/completion-resolver.d.ts +1 -0
- package/dist/apps/control-plane/cli/completion-resolver.js +250 -0
- package/dist/apps/control-plane/cli/completion-resolver.js.map +1 -0
- package/dist/apps/control-plane/cli/completion-shell-renderer.d.ts +3 -0
- package/dist/apps/control-plane/cli/completion-shell-renderer.js +53 -0
- package/dist/apps/control-plane/cli/completion-shell-renderer.js.map +1 -0
- package/dist/apps/control-plane/cli/dashboard-command-handler.d.ts +1 -0
- package/dist/apps/control-plane/cli/dashboard-command-handler.js +83 -1
- package/dist/apps/control-plane/cli/dashboard-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/dashboard-runtime-runner.d.ts +81 -0
- package/dist/apps/control-plane/cli/dashboard-runtime-runner.js +724 -0
- package/dist/apps/control-plane/cli/dashboard-runtime-runner.js.map +1 -0
- package/dist/apps/control-plane/cli/dashboard-runtime.d.ts +1 -0
- package/dist/apps/control-plane/cli/dashboard-runtime.js +26 -0
- package/dist/apps/control-plane/cli/dashboard-runtime.js.map +1 -0
- package/dist/apps/control-plane/cli/help-command-handler.js +13 -172
- package/dist/apps/control-plane/cli/help-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/init-command-handler.js +51 -6
- package/dist/apps/control-plane/cli/init-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/merge-command-handler.d.ts +8 -0
- package/dist/apps/control-plane/cli/merge-command-handler.js +139 -0
- package/dist/apps/control-plane/cli/merge-command-handler.js.map +1 -0
- package/dist/apps/control-plane/cli/questions-command-handler.d.ts +8 -0
- package/dist/apps/control-plane/cli/questions-command-handler.js +59 -0
- package/dist/apps/control-plane/cli/questions-command-handler.js.map +1 -0
- package/dist/apps/control-plane/cli/replay-command-handler.d.ts +15 -0
- package/dist/apps/control-plane/cli/replay-command-handler.js +55 -0
- package/dist/apps/control-plane/cli/replay-command-handler.js.map +1 -0
- package/dist/apps/control-plane/cli/resume-command-handler.d.ts +2 -0
- package/dist/apps/control-plane/cli/resume-command-handler.js +180 -17
- package/dist/apps/control-plane/cli/resume-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/retry-command-handler.js +202 -16
- package/dist/apps/control-plane/cli/retry-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/retry-resume-decision.d.ts +26 -0
- package/dist/apps/control-plane/cli/retry-resume-decision.js +61 -0
- package/dist/apps/control-plane/cli/retry-resume-decision.js.map +1 -0
- package/dist/apps/control-plane/cli/rollback-command-handler.js +3 -2
- package/dist/apps/control-plane/cli/rollback-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/run-command-handler.js +26 -2
- package/dist/apps/control-plane/cli/run-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/spec-ingestion-service.d.ts +2 -0
- package/dist/apps/control-plane/cli/spec-ingestion-service.js +37 -48
- package/dist/apps/control-plane/cli/spec-ingestion-service.js.map +1 -1
- package/dist/apps/control-plane/cli/spec-preparation.d.ts +14 -0
- package/dist/apps/control-plane/cli/spec-preparation.js +81 -0
- package/dist/apps/control-plane/cli/spec-preparation.js.map +1 -0
- package/dist/apps/control-plane/cli/spec-utils.d.ts +4 -0
- package/dist/apps/control-plane/cli/spec-utils.js +70 -11
- package/dist/apps/control-plane/cli/spec-utils.js.map +1 -1
- package/dist/apps/control-plane/cli/status-command-handler.js +69 -0
- package/dist/apps/control-plane/cli/status-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/types.d.ts +41 -4
- package/dist/apps/control-plane/cli/types.js +9 -1
- package/dist/apps/control-plane/cli/types.js.map +1 -1
- package/dist/apps/control-plane/core/collisions.d.ts +37 -19
- package/dist/apps/control-plane/core/collisions.js +87 -12
- package/dist/apps/control-plane/core/collisions.js.map +1 -1
- package/dist/apps/control-plane/core/constants.d.ts +17 -1
- package/dist/apps/control-plane/core/constants.js +18 -1
- package/dist/apps/control-plane/core/constants.js.map +1 -1
- package/dist/apps/control-plane/core/error-codes.d.ts +39 -0
- package/dist/apps/control-plane/core/error-codes.js +39 -0
- package/dist/apps/control-plane/core/error-codes.js.map +1 -1
- package/dist/apps/control-plane/core/execution-control.d.ts +45 -0
- package/dist/apps/control-plane/core/execution-control.js +2 -0
- package/dist/apps/control-plane/core/execution-control.js.map +1 -0
- package/dist/apps/control-plane/core/feature-resume-phase.d.ts +3 -0
- package/dist/apps/control-plane/core/feature-resume-phase.js +88 -0
- package/dist/apps/control-plane/core/feature-resume-phase.js.map +1 -0
- package/dist/apps/control-plane/core/gate-freshness.d.ts +48 -0
- package/dist/apps/control-plane/core/gate-freshness.js +267 -0
- package/dist/apps/control-plane/core/gate-freshness.js.map +1 -0
- package/dist/apps/control-plane/core/gate-log-extractor.d.ts +22 -0
- package/dist/apps/control-plane/core/gate-log-extractor.js +66 -0
- package/dist/apps/control-plane/core/gate-log-extractor.js.map +1 -0
- package/dist/apps/control-plane/core/gates.d.ts +11 -2
- package/dist/apps/control-plane/core/gates.js +67 -3
- package/dist/apps/control-plane/core/gates.js.map +1 -1
- package/dist/apps/control-plane/core/intake-artifacts.d.ts +109 -0
- package/dist/apps/control-plane/core/intake-artifacts.js +143 -0
- package/dist/apps/control-plane/core/intake-artifacts.js.map +1 -0
- package/dist/apps/control-plane/core/kernel-types.d.ts +8 -0
- package/dist/apps/control-plane/core/kernel.d.ts +256 -8
- package/dist/apps/control-plane/core/kernel.js +400 -14
- package/dist/apps/control-plane/core/kernel.js.map +1 -1
- package/dist/apps/control-plane/core/mainline-conflict.d.ts +7 -0
- package/dist/apps/control-plane/core/mainline-conflict.js +20 -0
- package/dist/apps/control-plane/core/mainline-conflict.js.map +1 -0
- package/dist/apps/control-plane/core/merge-repair.d.ts +35 -0
- package/dist/apps/control-plane/core/merge-repair.js +99 -0
- package/dist/apps/control-plane/core/merge-repair.js.map +1 -0
- package/dist/apps/control-plane/core/path-layout.d.ts +10 -0
- package/dist/apps/control-plane/core/path-layout.js +32 -2
- package/dist/apps/control-plane/core/path-layout.js.map +1 -1
- package/dist/apps/control-plane/core/path-rules.js +9 -3
- package/dist/apps/control-plane/core/path-rules.js.map +1 -1
- package/dist/apps/control-plane/core/plan-submit-recovery.d.ts +22 -0
- package/dist/apps/control-plane/core/plan-submit-recovery.js +78 -0
- package/dist/apps/control-plane/core/plan-submit-recovery.js.map +1 -0
- package/dist/apps/control-plane/core/questions.d.ts +40 -0
- package/dist/apps/control-plane/core/questions.js +2 -0
- package/dist/apps/control-plane/core/questions.js.map +1 -0
- package/dist/apps/control-plane/core/runtime-sessions.d.ts +4 -0
- package/dist/apps/control-plane/core/schemas.d.ts +2 -0
- package/dist/apps/control-plane/core/schemas.js +31 -1
- package/dist/apps/control-plane/core/schemas.js.map +1 -1
- package/dist/apps/control-plane/core/tool-caller.d.ts +18 -1
- package/dist/apps/control-plane/core/utils/index-normalizer.js +17 -4
- package/dist/apps/control-plane/core/utils/index-normalizer.js.map +1 -1
- package/dist/apps/control-plane/core/worktree-diff.d.ts +4 -0
- package/dist/apps/control-plane/core/worktree-diff.js +52 -0
- package/dist/apps/control-plane/core/worktree-diff.js.map +1 -0
- package/dist/apps/control-plane/index.d.ts +10 -2
- package/dist/apps/control-plane/index.js +9 -2
- package/dist/apps/control-plane/index.js.map +1 -1
- package/dist/apps/control-plane/interfaces/cli/bootstrap.js +236 -6
- package/dist/apps/control-plane/interfaces/cli/bootstrap.js.map +1 -1
- package/dist/apps/control-plane/mcp/kernel-tool-executor.js +16 -0
- package/dist/apps/control-plane/mcp/kernel-tool-executor.js.map +1 -1
- package/dist/apps/control-plane/mcp/tool-runtime.d.ts +5 -0
- package/dist/apps/control-plane/mcp/tool-runtime.js +40 -5
- package/dist/apps/control-plane/mcp/tool-runtime.js.map +1 -1
- package/dist/apps/control-plane/providers/api-worker-provider.d.ts +2 -2
- package/dist/apps/control-plane/providers/api-worker-provider.js +40 -9
- package/dist/apps/control-plane/providers/api-worker-provider.js.map +1 -1
- package/dist/apps/control-plane/providers/cli-worker-provider.d.ts +59 -3
- package/dist/apps/control-plane/providers/cli-worker-provider.js +758 -46
- package/dist/apps/control-plane/providers/cli-worker-provider.js.map +1 -1
- package/dist/apps/control-plane/providers/output-parsers/generic-output-parser.js +91 -1
- package/dist/apps/control-plane/providers/output-parsers/generic-output-parser.js.map +1 -1
- package/dist/apps/control-plane/providers/output-parsers/types.d.ts +2 -0
- package/dist/apps/control-plane/providers/provider-defaults.d.ts +12 -0
- package/dist/apps/control-plane/providers/provider-defaults.js +103 -7
- package/dist/apps/control-plane/providers/provider-defaults.js.map +1 -1
- package/dist/apps/control-plane/providers/providers.d.ts +50 -4
- package/dist/apps/control-plane/providers/providers.js +145 -14
- package/dist/apps/control-plane/providers/providers.js.map +1 -1
- package/dist/apps/control-plane/providers/worker-provider-factory.d.ts +2 -0
- package/dist/apps/control-plane/providers/worker-provider-factory.js +8 -1
- package/dist/apps/control-plane/providers/worker-provider-factory.js.map +1 -1
- package/dist/apps/control-plane/supervisor/artifact-stager.d.ts +5 -0
- package/dist/apps/control-plane/supervisor/artifact-stager.js +45 -0
- package/dist/apps/control-plane/supervisor/artifact-stager.js.map +1 -0
- package/dist/apps/control-plane/supervisor/build-wave-executor.d.ts +24 -1
- package/dist/apps/control-plane/supervisor/build-wave-executor.js +362 -150
- package/dist/apps/control-plane/supervisor/build-wave-executor.js.map +1 -1
- package/dist/apps/control-plane/supervisor/execution-enrollment-service.d.ts +41 -0
- package/dist/apps/control-plane/supervisor/execution-enrollment-service.js +311 -0
- package/dist/apps/control-plane/supervisor/execution-enrollment-service.js.map +1 -0
- package/dist/apps/control-plane/supervisor/organizer-enrollment-scheduler.d.ts +15 -0
- package/dist/apps/control-plane/supervisor/organizer-enrollment-scheduler.js +93 -0
- package/dist/apps/control-plane/supervisor/organizer-enrollment-scheduler.js.map +1 -0
- package/dist/apps/control-plane/supervisor/organizer-sidecar-service.d.ts +44 -0
- package/dist/apps/control-plane/supervisor/organizer-sidecar-service.js +311 -0
- package/dist/apps/control-plane/supervisor/organizer-sidecar-service.js.map +1 -0
- package/dist/apps/control-plane/supervisor/plan-conformance-scorer.js +2 -5
- package/dist/apps/control-plane/supervisor/plan-conformance-scorer.js.map +1 -1
- package/dist/apps/control-plane/supervisor/planner-phase.d.ts +3 -0
- package/dist/apps/control-plane/supervisor/planner-phase.js +70 -0
- package/dist/apps/control-plane/supervisor/planner-phase.js.map +1 -0
- package/dist/apps/control-plane/supervisor/planning-wave-executor.d.ts +42 -0
- package/dist/apps/control-plane/supervisor/planning-wave-executor.js +753 -55
- package/dist/apps/control-plane/supervisor/planning-wave-executor.js.map +1 -1
- package/dist/apps/control-plane/supervisor/prompt-bundle-loader.js +19 -1
- package/dist/apps/control-plane/supervisor/prompt-bundle-loader.js.map +1 -1
- package/dist/apps/control-plane/supervisor/qa-wave-executor.d.ts +21 -0
- package/dist/apps/control-plane/supervisor/qa-wave-executor.js +287 -156
- package/dist/apps/control-plane/supervisor/qa-wave-executor.js.map +1 -1
- package/dist/apps/control-plane/supervisor/run-coordinator.d.ts +30 -1
- package/dist/apps/control-plane/supervisor/run-coordinator.js +561 -17
- package/dist/apps/control-plane/supervisor/run-coordinator.js.map +1 -1
- package/dist/apps/control-plane/supervisor/runtime.d.ts +84 -0
- package/dist/apps/control-plane/supervisor/runtime.js +393 -3
- package/dist/apps/control-plane/supervisor/runtime.js.map +1 -1
- package/dist/apps/control-plane/supervisor/session-orchestrator.d.ts +54 -0
- package/dist/apps/control-plane/supervisor/session-orchestrator.js +176 -1
- package/dist/apps/control-plane/supervisor/session-orchestrator.js.map +1 -1
- package/dist/apps/control-plane/supervisor/types.d.ts +142 -1
- package/dist/apps/control-plane/supervisor/types.js.map +1 -1
- package/dist/apps/control-plane/supervisor/worker-decision-loop.d.ts +68 -2
- package/dist/apps/control-plane/supervisor/worker-decision-loop.js +723 -89
- package/dist/apps/control-plane/supervisor/worker-decision-loop.js.map +1 -1
- package/docs/core/ARCHITECTURE.md +227 -0
- package/docs/core/DECISIONS.md +94 -0
- package/docs/core/DOMAIN-LOGIC.md +60 -0
- package/docs/core/PATTERNS.md +201 -0
- package/docs/core/TROUBLESHOOTING.md +347 -0
- package/docs/core/intentgraph-dependencies.json +39860 -0
- package/docs/core/intentgraph.index.json +46580 -0
- package/docs/plans/2026-03-10-gate-failure-targeted-repair-design.md +224 -0
- package/docs/plans/2026-03-10-gate-failure-targeted-repair.md +1032 -0
- package/docs/superpowers/plans/2026-03-16-provider-cli-config.md +743 -0
- package/docs/superpowers/plans/2026-03-23-reconcile-divergence-fix.md +777 -0
- package/docs/superpowers/plans/2026-03-28-ordering-agent-implementation.md +1754 -0
- package/docs/superpowers/plans/2026-03-29-drop-zone-and-provider-optimization.md +1108 -0
- package/docs/superpowers/plans/2026-03-29-merge-target-feature-branch.md +685 -0
- package/docs/superpowers/plans/2026-03-29-organizer-sidecar-runtime-loop.md +1289 -0
- package/docs/superpowers/specs/2026-03-23-reconcile-divergence-fix-design.md +118 -0
- package/docs/superpowers/specs/2026-03-28-ordering-agent-spec-audit-design.md +50 -0
- package/docs/superpowers/specs/2026-03-29-drop-zone-and-provider-optimization-design.md +254 -0
- package/docs/superpowers/specs/2026-03-29-merge-target-feature-branch-design.md +152 -0
- package/docs/superpowers/specs/2026-03-29-organizer-sidecar-runtime-loop-design.md +225 -0
- package/package.json +3 -2
- package/packages/web-dashboard/package.json +2 -1
- package/packages/web-dashboard/src/app/analytics/page.tsx +36 -2
- package/packages/web-dashboard/src/app/api/actions/route.ts +274 -63
- package/packages/web-dashboard/src/app/api/actions/status/route.ts +35 -0
- package/packages/web-dashboard/src/app/api/analytics/provider/route.ts +18 -0
- package/packages/web-dashboard/src/app/api/collisions/approve/route.ts +58 -0
- package/packages/web-dashboard/src/app/api/features/[id]/checkpoint-diff/route.ts +36 -0
- package/packages/web-dashboard/src/app/api/features/[id]/checkpoints/route.ts +29 -0
- package/packages/web-dashboard/src/app/api/features/[id]/conflicts/abort/route.ts +29 -0
- package/packages/web-dashboard/src/app/api/features/[id]/conflicts/files/route.ts +30 -0
- package/packages/web-dashboard/src/app/api/features/[id]/conflicts/resolve/route.ts +51 -0
- package/packages/web-dashboard/src/app/api/features/[id]/conflicts/route.ts +75 -0
- package/packages/web-dashboard/src/app/api/features/[id]/diff/route.ts +16 -2
- package/packages/web-dashboard/src/app/api/features/[id]/files/route.ts +26 -0
- package/packages/web-dashboard/src/app/api/features/[id]/gate-history/route.ts +27 -0
- package/packages/web-dashboard/src/app/api/features/[id]/genealogy/route.ts +26 -0
- package/packages/web-dashboard/src/app/api/features/[id]/history/run/[runId]/route.ts +20 -0
- package/packages/web-dashboard/src/app/api/features/[id]/history/runs/route.ts +34 -0
- package/packages/web-dashboard/src/app/api/features/[id]/intake-workspace/route.ts +20 -0
- package/packages/web-dashboard/src/app/api/features/[id]/live-output/route.ts +74 -0
- package/packages/web-dashboard/src/app/api/features/[id]/plan/amend/route.ts +21 -0
- package/packages/web-dashboard/src/app/api/features/[id]/plan-progress/route.ts +20 -0
- package/packages/web-dashboard/src/app/api/features/[id]/planner-artifacts/[artifact]/route.ts +78 -0
- package/packages/web-dashboard/src/app/api/features/[id]/planner-lifecycle/route.ts +20 -0
- package/packages/web-dashboard/src/app/api/features/[id]/planning-workspace/route.ts +20 -0
- package/packages/web-dashboard/src/app/api/features/[id]/questions/[questionId]/answer/route.ts +27 -0
- package/packages/web-dashboard/src/app/api/features/[id]/questions/route.ts +18 -0
- package/packages/web-dashboard/src/app/api/features/[id]/review/route.ts +14 -7
- package/packages/web-dashboard/src/app/api/features/[id]/route.ts +57 -2
- package/packages/web-dashboard/src/app/api/features/[id]/spec/route.ts +30 -0
- package/packages/web-dashboard/src/app/api/features/[id]/triage/route.ts +83 -0
- package/packages/web-dashboard/src/app/api/features/[id]/worker-events/route.ts +40 -0
- package/packages/web-dashboard/src/app/api/launch/preview/route.ts +86 -0
- package/packages/web-dashboard/src/app/api/launch/submit/route.ts +180 -0
- package/packages/web-dashboard/src/app/api/mainline/status/route.ts +74 -0
- package/packages/web-dashboard/src/app/api/merge-queue/route.ts +13 -0
- package/packages/web-dashboard/src/app/api/policy/budget/route.ts +14 -0
- package/packages/web-dashboard/src/app/api/projects/route.ts +11 -7
- package/packages/web-dashboard/src/app/api/reconciler/queue/route.ts +47 -0
- package/packages/web-dashboard/src/app/api/run/route.ts +26 -2
- package/packages/web-dashboard/src/app/api/runtime/events/route.ts +227 -0
- package/packages/web-dashboard/src/app/api/runtime/operations/route.ts +269 -0
- package/packages/web-dashboard/src/app/api/runtime/questions/route.ts +11 -0
- package/packages/web-dashboard/src/app/api/runtime/runs/route.ts +80 -0
- package/packages/web-dashboard/src/app/api/status/route.ts +4 -2
- package/packages/web-dashboard/src/app/feature/[id]/page.tsx +32 -42
- package/packages/web-dashboard/src/app/globals.css +34 -3
- package/packages/web-dashboard/src/app/launch/page.tsx +357 -0
- package/packages/web-dashboard/src/app/layout.tsx +23 -1
- package/packages/web-dashboard/src/app/page.tsx +263 -272
- package/packages/web-dashboard/src/components/dashboard/attention-strip.tsx +52 -0
- package/packages/web-dashboard/src/components/dashboard/collision-approval-drawer.tsx +185 -0
- package/packages/web-dashboard/src/components/dashboard/command-center-header.tsx +102 -0
- package/packages/web-dashboard/src/components/dashboard/mainline-status-banner.tsx +84 -0
- package/packages/web-dashboard/src/components/dashboard/merged-archive.tsx +36 -0
- package/packages/web-dashboard/src/components/dashboard/prioritized-queues.tsx +98 -0
- package/packages/web-dashboard/src/components/dashboard/reconciler-queue-card.tsx +115 -0
- package/packages/web-dashboard/src/components/dashboard/secondary-diagnostics-rail.tsx +48 -0
- package/packages/web-dashboard/src/components/dashboard/task-filter-bar.tsx +74 -0
- package/packages/web-dashboard/src/components/dashboard/triage-drawer.tsx +455 -0
- package/packages/web-dashboard/src/components/diff-viewer.tsx +19 -3
- package/packages/web-dashboard/src/components/evidence-viewer.tsx +65 -51
- package/packages/web-dashboard/src/components/feature-card.tsx +90 -7
- package/packages/web-dashboard/src/components/feature-cost-panel.tsx +112 -11
- package/packages/web-dashboard/src/components/feature-list-view.tsx +25 -4
- package/packages/web-dashboard/src/components/features/runtime-inspector/EventsTimelineView.tsx +260 -0
- package/packages/web-dashboard/src/components/features/runtime-inspector/OperationsListView.tsx +172 -0
- package/packages/web-dashboard/src/components/features/runtime-inspector/RuntimeInspectorPanel.tsx +896 -0
- package/packages/web-dashboard/src/components/filter-bar.tsx +7 -39
- package/packages/web-dashboard/src/components/focus/ActionableRiskList.tsx +46 -0
- package/packages/web-dashboard/src/components/focus/AgentRolePerformanceCard.tsx +200 -0
- package/packages/web-dashboard/src/components/focus/BlockedGuidanceBanner.tsx +149 -0
- package/packages/web-dashboard/src/components/focus/CheckpointInspector.tsx +123 -0
- package/packages/web-dashboard/src/components/focus/CheckpointRail.tsx +118 -0
- package/packages/web-dashboard/src/components/focus/CheckpointScrubber.tsx +249 -0
- package/packages/web-dashboard/src/components/focus/CollisionApprovalBanner.tsx +192 -0
- package/packages/web-dashboard/src/components/focus/CollisionRadar.tsx +136 -0
- package/packages/web-dashboard/src/components/focus/ConflictStatusCard.tsx +52 -0
- package/packages/web-dashboard/src/components/focus/ContextSidebar.tsx +108 -0
- package/packages/web-dashboard/src/components/focus/DiagnosisPanel.tsx +68 -0
- package/packages/web-dashboard/src/components/focus/FeatureDecisionBanner.tsx +68 -0
- package/packages/web-dashboard/src/components/focus/FeatureQuestionAnswerPanel.tsx +167 -0
- package/packages/web-dashboard/src/components/focus/FocusHeader.tsx +54 -0
- package/packages/web-dashboard/src/components/focus/FocusLayout.tsx +283 -0
- package/packages/web-dashboard/src/components/focus/GateFlakinessSummary.tsx +144 -0
- package/packages/web-dashboard/src/components/focus/GenealogyTree.tsx +34 -0
- package/packages/web-dashboard/src/components/focus/HeroBlock.tsx +67 -0
- package/packages/web-dashboard/src/components/focus/LiveAgentConsole.tsx +277 -0
- package/packages/web-dashboard/src/components/focus/MergeQueueCard.tsx +78 -0
- package/packages/web-dashboard/src/components/focus/OperationalSummaryCard.tsx +227 -0
- package/packages/web-dashboard/src/components/focus/PinnedActions.tsx +96 -0
- package/packages/web-dashboard/src/components/focus/PlanAmendmentPanel.tsx +250 -0
- package/packages/web-dashboard/src/components/focus/PlanProgressPanel.tsx +133 -0
- package/packages/web-dashboard/src/components/focus/PlannerArtifactViewer.tsx +158 -0
- package/packages/web-dashboard/src/components/focus/PlannerLifecycleHeader.tsx +141 -0
- package/packages/web-dashboard/src/components/focus/ProgressSnapshotCard.tsx +113 -0
- package/packages/web-dashboard/src/components/focus/RecentMaterialChanges.tsx +69 -0
- package/packages/web-dashboard/src/components/focus/RoleLogViewer.tsx +436 -0
- package/packages/web-dashboard/src/components/focus/RunHistoryBrowser.tsx +62 -0
- package/packages/web-dashboard/src/components/focus/SpecViewer.tsx +172 -0
- package/packages/web-dashboard/src/components/focus/TabBar.tsx +33 -0
- package/packages/web-dashboard/src/components/focus/UsageBurnChart.tsx +212 -0
- package/packages/web-dashboard/src/components/focus/VerificationSummaryCard.tsx +122 -0
- package/packages/web-dashboard/src/components/focus/tabs/ChangesTab.tsx +325 -0
- package/packages/web-dashboard/src/components/focus/tabs/ConflictsTab.tsx +395 -0
- package/packages/web-dashboard/src/components/focus/tabs/GatesQaTab.tsx +38 -0
- package/packages/web-dashboard/src/components/focus/tabs/HistoryTab.tsx +213 -0
- package/packages/web-dashboard/src/components/focus/tabs/IntakeTab.tsx +429 -0
- package/packages/web-dashboard/src/components/focus/tabs/OverviewTab.tsx +217 -0
- package/packages/web-dashboard/src/components/focus/tabs/PlanningTab.tsx +390 -0
- package/packages/web-dashboard/src/components/focus/tabs/ReviewTab.tsx +497 -0
- package/packages/web-dashboard/src/components/focus/tabs/RuntimeTab.tsx +213 -0
- package/packages/web-dashboard/src/components/focus/tabs/TranscriptTab.tsx +315 -0
- package/packages/web-dashboard/src/components/gate-results.tsx +2 -2
- package/packages/web-dashboard/src/components/human-input-panel.tsx +33 -57
- package/packages/web-dashboard/src/components/kanban-board.tsx +4 -0
- package/packages/web-dashboard/src/components/launch/launch-draft-card.tsx +131 -0
- package/packages/web-dashboard/src/components/plan-viewer.tsx +147 -69
- package/packages/web-dashboard/src/components/quick-launch-panel.tsx +20 -47
- package/packages/web-dashboard/src/components/summary-bar.tsx +30 -76
- package/packages/web-dashboard/src/lib/aop-client.ts +2484 -36
- package/packages/web-dashboard/src/lib/blocked-state-guidance.ts +475 -0
- package/packages/web-dashboard/src/lib/collision-radar.ts +136 -0
- package/packages/web-dashboard/src/lib/dashboard-action-states.ts +204 -0
- package/packages/web-dashboard/src/lib/dashboard-runtime-client.ts +439 -0
- package/packages/web-dashboard/src/lib/dashboard-utils.ts +179 -18
- package/packages/web-dashboard/src/lib/drop-zone-utils.ts +92 -0
- package/packages/web-dashboard/src/lib/focus-detail-derivations.ts +958 -0
- package/packages/web-dashboard/src/lib/focus-view.ts +300 -0
- package/packages/web-dashboard/src/lib/health-diagnosis.ts +356 -0
- package/packages/web-dashboard/src/lib/launch-contracts.ts +77 -0
- package/packages/web-dashboard/src/lib/launch-markdown.ts +107 -0
- package/packages/web-dashboard/src/lib/launch-page-preview.ts +89 -0
- package/packages/web-dashboard/src/lib/live-feed.ts +1 -1
- package/packages/web-dashboard/src/lib/multi-project-config.ts +33 -0
- package/packages/web-dashboard/src/lib/orchestrator-tools.ts +845 -59
- package/packages/web-dashboard/src/lib/planner-workspace.ts +1285 -0
- package/packages/web-dashboard/src/lib/review-contracts.ts +5 -3
- package/packages/web-dashboard/src/lib/runtime-files.ts +285 -0
- package/packages/web-dashboard/src/lib/tool-catalog.ts +51 -0
- package/packages/web-dashboard/src/lib/types.ts +731 -3
- package/packages/web-dashboard/src/lib/usage-burn.ts +175 -0
- package/packages/web-dashboard/src/lib/worktree-diff.ts +128 -0
- package/packages/web-dashboard/src/styles/dashboard.module.css +1742 -459
- package/packages/web-dashboard/test/api/actions/route.spec.ts +675 -0
- package/packages/web-dashboard/test/api/features/diff.route.spec.ts +57 -0
- package/packages/web-dashboard/test/api/features/feature.route.spec.ts +99 -0
- package/packages/web-dashboard/test/api/features/live-output.route.spec.ts +123 -0
- package/packages/web-dashboard/test/api/features/plan-amend.route.spec.ts +95 -0
- package/packages/web-dashboard/test/api/features/planner-workspaces.route.spec.ts +162 -0
- package/packages/web-dashboard/test/api/features/question-answer.route.spec.ts +99 -0
- package/packages/web-dashboard/test/api/features/triage.route.spec.ts +195 -0
- package/packages/web-dashboard/test/api/launch/preview.route.spec.ts +149 -0
- package/packages/web-dashboard/test/api/launch/submit.route.spec.ts +382 -0
- package/packages/web-dashboard/test/api/runtime/events/route.spec.ts +164 -0
- package/packages/web-dashboard/test/api/runtime/operations/route.spec.ts +156 -0
- package/packages/web-dashboard/test/api/runtime/runs/route.spec.ts +112 -0
- package/packages/web-dashboard/test/components/changes-tab.spec.tsx +76 -0
- package/packages/web-dashboard/test/components/command-center-root.spec.tsx +87 -0
- package/packages/web-dashboard/test/components/diagnosis-panel.spec.tsx +59 -0
- package/packages/web-dashboard/test/components/feature-card.spec.tsx +45 -0
- package/packages/web-dashboard/test/components/focus-layout.spec.tsx +299 -0
- package/packages/web-dashboard/test/components/gate-results.spec.tsx +39 -0
- package/packages/web-dashboard/test/components/gates-qa-tab.spec.tsx +118 -0
- package/packages/web-dashboard/test/components/human-input-panel.spec.tsx +54 -0
- package/packages/web-dashboard/test/components/intake-tab.spec.tsx +210 -0
- package/packages/web-dashboard/test/components/kanban-board.spec.tsx +35 -0
- package/packages/web-dashboard/test/components/launch-draft-card.spec.tsx +54 -0
- package/packages/web-dashboard/test/components/launch-page.spec.tsx +79 -0
- package/packages/web-dashboard/test/components/overview-tab.spec.tsx +236 -0
- package/packages/web-dashboard/test/components/planning-tab.spec.tsx +202 -0
- package/packages/web-dashboard/test/components/review-tab.spec.tsx +169 -0
- package/packages/web-dashboard/test/components/role-log-viewer.spec.ts +42 -0
- package/packages/web-dashboard/test/components/runtime-inspector.spec.tsx +22 -0
- package/packages/web-dashboard/test/components/runtime-tab.spec.tsx +133 -0
- package/packages/web-dashboard/test/components/transcript-tab.spec.tsx +46 -0
- package/packages/web-dashboard/test/components/triage-drawer.spec.tsx +159 -0
- package/packages/web-dashboard/test/lib/aop-client.spec.ts +235 -0
- package/packages/web-dashboard/test/lib/dashboard-runtime-client.spec.ts +144 -0
- package/packages/web-dashboard/test/lib/focus-detail-derivations.spec.ts +314 -0
- package/packages/web-dashboard/test/lib/focus-view.spec.ts +248 -0
- package/packages/web-dashboard/test/lib/health-diagnosis.spec.ts +277 -0
- package/packages/web-dashboard/test/lib/launch-markdown.spec.ts +36 -0
- package/packages/web-dashboard/test/lib/multi-project-config.spec.ts +54 -0
- package/packages/web-dashboard/test/lib/orchestrator-tools.spec.ts +352 -0
- package/packages/web-dashboard/test/lib/planner-workspace.spec.ts +289 -0
- package/packages/web-dashboard/test/lib/worktree-diff.spec.ts +119 -0
- package/packages/web-dashboard/vitest.config.ts +2 -0
- package/spec-files/completed/agentic_orchestrator_add_feature_to_active_execution_spec.md +557 -0
- package/spec-files/completed/agentic_orchestrator_dashboard_command_center_redesign_spec.md +1147 -0
- package/spec-files/completed/agentic_orchestrator_execution_mode_spec.md +18 -16
- package/spec-files/completed/agentic_orchestrator_feature_focus_view_track_a_spec.md +672 -0
- package/spec-files/completed/agentic_orchestrator_feature_focus_view_track_b_spec.md +794 -0
- package/spec-files/completed/agentic_orchestrator_feature_focus_view_track_c_decision_centric_remediation_spec.md +1037 -0
- package/spec-files/completed/agentic_orchestrator_feature_focus_view_ux_redesign_spec.md +1432 -0
- package/spec-files/completed/agentic_orchestrator_focus_plan_tab_intake_planning_workspace_spec.md +921 -0
- package/spec-files/completed/agentic_orchestrator_intentional_collision_override_spec.md +584 -0
- package/spec-files/completed/agentic_orchestrator_interactive_planning_intake_and_requirements_verification_spec.md +1185 -0
- package/spec-files/completed/agentic_orchestrator_reactive_execution_enrollment_spec.md +864 -0
- package/spec-files/{outstanding → completed}/agentic_orchestrator_runtime_inspection_spec.md +92 -19
- package/spec-files/completed/agentic_orchestrator_scope_aware_run_lease_spec.md +408 -0
- package/spec-files/completed/git-reconciliation-engine.md +827 -0
- package/spec-files/outstanding/agentic_orchestrator_dashboard_quick_launch_and_control_surface_spec.md +331 -0
- package/spec-files/outstanding/agentic_orchestrator_enterprise_governance_dashboard_spec.md +16 -6
- package/spec-files/outstanding/agentic_orchestrator_evidence_integrity_doctor_spec.md +60 -9
- package/spec-files/outstanding/agentic_orchestrator_focus_plan_tab_execution_contract_workspace_spec.md +616 -0
- package/spec-files/outstanding/agentic_orchestrator_headless_standby_dashboard_runtime_spec.md +310 -0
- package/spec-files/outstanding/agentic_orchestrator_human_input_interaction_protocol_spec.md +175 -72
- package/spec-files/outstanding/agentic_orchestrator_interactive_rename_cleanup_spec.md +197 -0
- package/spec-files/outstanding/agentic_orchestrator_interactive_resume_and_reconciliation_disposition_spec.md +412 -0
- package/spec-files/outstanding/agentic_orchestrator_knowledge_canary_spec.md +166 -137
- package/spec-files/outstanding/agentic_orchestrator_observability_replay_spec.md +3 -3
- package/spec-files/outstanding/agentic_orchestrator_phase_specific_agent_profiles_and_token_telemetry_spec.md +303 -0
- package/spec-files/outstanding/agentic_orchestrator_planning_review_quality_spec.md +18 -5
- package/spec-files/outstanding/agentic_orchestrator_policy_stratification_spec.md +225 -0
- package/spec-files/outstanding/agentic_orchestrator_quality_adoption_execution_spec.md +77 -50
- package/spec-files/outstanding/agentic_orchestrator_ready_to_merge_branch_handoff_spec.md +724 -0
- package/spec-files/outstanding/agentic_orchestrator_remove_deterministic_mode_spec.md +263 -0
- package/spec-files/outstanding/agentic_orchestrator_request_more_context_and_dashboard_human_input_spec.md +456 -0
- package/spec-files/outstanding/agentic_orchestrator_spec_coverage_and_reconciliation_enforcement_spec.md +1411 -0
- package/spec-files/outstanding/agentic_orchestrator_spec_ordering_agent_spec.md +370 -0
- package/spec-files/outstanding/shadow_workspace_implementation_spec.md +1 -1
- package/spec-files/progress.md +2026 -120
- package/specs/001-runtime-inspection/checklists/requirements.md +35 -0
- package/specs/001-runtime-inspection/design.md +338 -0
- package/specs/001-runtime-inspection/spec.md +95 -0
- package/specs/002-scope-aware-lease/checklists/requirements.md +35 -0
- package/specs/002-scope-aware-lease/contracts/lease-registry.schema.json +101 -0
- package/specs/002-scope-aware-lease/data-model.md +236 -0
- package/specs/002-scope-aware-lease/plan.md +766 -0
- package/specs/002-scope-aware-lease/quickstart.md +150 -0
- package/specs/002-scope-aware-lease/research.md +135 -0
- package/specs/002-scope-aware-lease/spec.md +128 -0
- package/specs/002-scope-aware-lease/tasks.md +767 -0
- package/tsconfig.json +1 -1
- package/vitest.config.ts +28 -0
- package/ARCHITECTURE_ADHERENCE_ANALYSIS.md +0 -871
- package/packages/web-dashboard/next-env.d.ts +0 -6
- package/packages/web-dashboard/src/components/detail-panel.tsx +0 -1124
- package/packages/web-dashboard/src/components/review-workspace.tsx +0 -1162
- /package/spec-files/{outstanding → completed}/agentic_orchestrator_artifact_database_publishing_spec.md +0 -0
- /package/spec-files/{outstanding → completed}/agentic_orchestrator_cli_shell_tab_completion_spec.md +0 -0
- /package/spec-files/{outstanding → completed}/agentic_orchestrator_dashboard_diff_and_agent_console_spec.md +0 -0
- /package/spec-files/{outstanding → completed}/agentic_orchestrator_performance_improvements_spec.md +0 -0
- /package/spec-files/{outstanding → completed}/agentic_orchestrator_persistent_worker_runtime_spec.md +0 -0
- /package/spec-files/{outstanding → completed}/agentic_orchestrator_provider_auth_bootstrap_spec.md +0 -0
- /package/spec-files/{outstanding → completed}/agentic_orchestrator_real_worker_provider_execution_spec.md +0 -0
package/spec-files/outstanding/agentic_orchestrator_human_input_interaction_protocol_spec.md
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
> **Purpose of this document**: Define a first-class, deterministic protocol for cases where planner/builder/qa must pause and request human input (clarifications, approvals, permission overrides) before safe continuation.
|
|
4
4
|
|
|
5
|
-
**Version:** 1.
|
|
6
|
-
**Date:** 2026-03-
|
|
5
|
+
**Version:** 1.2
|
|
6
|
+
**Date:** 2026-03-17
|
|
7
7
|
**Status:** Draft
|
|
8
8
|
**Roadmap Mapping:** M43
|
|
9
9
|
|
|
@@ -44,19 +44,25 @@ Implementing agents MUST read:
|
|
|
44
44
|
|
|
45
45
|
### 0.3 Scope
|
|
46
46
|
|
|
47
|
-
This spec
|
|
47
|
+
This spec defines the **shared human-input protocol baseline** for the orchestrator.
|
|
48
|
+
|
|
49
|
+
It covers:
|
|
48
50
|
|
|
49
51
|
- explicit question/answer protocol between agents and humans
|
|
50
52
|
- deterministic pause-and-resume behavior for features awaiting input
|
|
51
|
-
-
|
|
52
|
-
- CLI and dashboard
|
|
53
|
+
- durable question artifacts and tool contracts
|
|
54
|
+
- shared operator-visible readiness rules for CLI and dashboard surfaces
|
|
55
|
+
- dashboard/CLI retrieval and answer workflows
|
|
53
56
|
- regression coverage for question-blocked execution and resume
|
|
57
|
+
- provider compatibility requirements for automated interactive execution
|
|
54
58
|
|
|
55
59
|
Out of scope:
|
|
56
60
|
|
|
57
61
|
- external ticketing approval workflows (Jira/ServiceNow sync)
|
|
58
62
|
- cryptographic signature workflows for approvals
|
|
59
63
|
- model-vendor-specific conversational UX
|
|
64
|
+
- intake-specific requirement normalization artifacts (`spec.manifest.bootstrap.json`, `spec.manifest.verified.json`, `intake.review.json`)
|
|
65
|
+
- intake-only UI metadata and verified-manifest promotion rules; those belong to M59 and must extend this baseline rather than replace it
|
|
60
66
|
|
|
61
67
|
### 0.4 OOP and Architecture Guardrails (Mandatory)
|
|
62
68
|
|
|
@@ -81,17 +87,48 @@ Code organization requirements for this spec:
|
|
|
81
87
|
|
|
82
88
|
---
|
|
83
89
|
|
|
84
|
-
## 1. Current
|
|
90
|
+
## 1. Current Repository Baseline and Remaining Gaps
|
|
91
|
+
|
|
92
|
+
This spec predates a substantial amount of human-input implementation work. It must therefore be read as a **protocol refresh and consolidation spec**, not as a greenfield design.
|
|
93
|
+
|
|
94
|
+
### 1.1 Current Repository Baseline
|
|
95
|
+
|
|
96
|
+
The current repository already has the following baseline pieces:
|
|
97
|
+
|
|
98
|
+
1. `QuestionService` exists and persists `.aop/features/<feature_id>/questions.json`.
|
|
99
|
+
2. `feature.question_create`, `feature.question_list`, and `feature.question_answer` are already present in the MCP catalog and kernel wiring.
|
|
100
|
+
3. `WorkerDecisionLoop` already routes `REQUEST.action=ask_user_input` to `feature.question_create`.
|
|
101
|
+
4. `awaiting_input` already exists as a persisted feature status, and `state.md` already carries `human_input.*` summary fields.
|
|
102
|
+
5. The dashboard already exposes:
|
|
103
|
+
- feature questions API route
|
|
104
|
+
- question answer API route
|
|
105
|
+
- focus-view `HumanInputPanel` that answers persisted questions
|
|
106
|
+
6. The `claude` provider already carries `--dangerously-skip-permissions` in automated run/send templates.
|
|
107
|
+
|
|
108
|
+
### 1.2 Remaining Gaps
|
|
109
|
+
|
|
110
|
+
Despite that baseline, the protocol is still not fully normalized:
|
|
111
|
+
|
|
112
|
+
1. this spec still describes several already-implemented protocol artifacts as if they are net-new
|
|
113
|
+
2. operator-visible **question readiness** is not centralized as one authoritative contract
|
|
114
|
+
3. dashboard/focus/CLI transport semantics are duplicated across specs instead of owned here
|
|
115
|
+
4. dedicated CLI question workflow is still missing even though the underlying tools exist
|
|
116
|
+
5. triage drawer still renders open questions passively instead of supporting first-class answers
|
|
117
|
+
6. activity projection still retains heuristic waiting-input fallbacks instead of relying only on persisted state where possible
|
|
118
|
+
7. `resume_status` baseline is too narrow for future pause/resume extensions such as `intake`
|
|
119
|
+
8. some names in this older spec drift from current implementation (`question_already_closed` vs older wording, existing tool/schema paths, current dashboard answer path)
|
|
85
120
|
|
|
86
|
-
|
|
121
|
+
### 1.3 Normative Role of This Spec
|
|
87
122
|
|
|
88
|
-
|
|
89
|
-
2. `waiting_input` exists only as heuristic activity derivation from `status_reason` text.
|
|
90
|
-
3. there is no durable question queue artifact.
|
|
91
|
-
4. no structured answer tool exists (`feature.send_message` is unstructured best-effort delivery).
|
|
92
|
-
5. run loop has no deterministic pause/resume contract for unresolved questions.
|
|
123
|
+
This spec is the authoritative baseline for:
|
|
93
124
|
|
|
94
|
-
|
|
125
|
+
- generic question lifecycle
|
|
126
|
+
- persisted pause/resume semantics
|
|
127
|
+
- ready-state visibility rules
|
|
128
|
+
- shared question payload baseline
|
|
129
|
+
- operator answer transport
|
|
130
|
+
|
|
131
|
+
Any later spec, including M59 intake, must extend this contract rather than silently fork it.
|
|
95
132
|
|
|
96
133
|
---
|
|
97
134
|
|
|
@@ -100,7 +137,7 @@ Result: operators must use ad hoc `send`/`attach` workflows, and orchestrator se
|
|
|
100
137
|
### 2.1 Must-Have Outcomes
|
|
101
138
|
|
|
102
139
|
1. Agents can raise a structured blocking question via tool contract.
|
|
103
|
-
2. Feature enters
|
|
140
|
+
2. Feature enters explicit `awaiting_input` state until answered (or expired/escalated).
|
|
104
141
|
3. Human answers are persisted as first-class artifacts and fed back into role context.
|
|
105
142
|
4. Orchestrator does not run planner/build/qa waves for features with open blocking questions.
|
|
106
143
|
5. Answering a question deterministically resumes the correct phase.
|
|
@@ -183,7 +220,7 @@ Result: operators must use ad hoc `send`/`attach` workflows, and orchestrator se
|
|
|
183
220
|
|
|
184
221
|
### 5.1 Feature Status Contract
|
|
185
222
|
|
|
186
|
-
|
|
223
|
+
Baseline status constant and schema enum:
|
|
187
224
|
|
|
188
225
|
- `awaiting_input`
|
|
189
226
|
|
|
@@ -209,11 +246,11 @@ human_input:
|
|
|
209
246
|
Rules:
|
|
210
247
|
|
|
211
248
|
- `open_question_id` must be null when status is not `awaiting_input`.
|
|
212
|
-
- `resume_status` must be
|
|
249
|
+
- `resume_status` must be a resumable lifecycle phase supported by the runtime. Baseline values are `planning|building|qa|blocked|ready_to_merge`; future extension specs may add values such as `intake`.
|
|
213
250
|
|
|
214
251
|
### 5.3 Question Artifact Contract
|
|
215
252
|
|
|
216
|
-
|
|
253
|
+
Canonical per-feature artifact:
|
|
217
254
|
|
|
218
255
|
```text
|
|
219
256
|
.aop/features/<feature_id>/questions.json
|
|
@@ -247,9 +284,9 @@ Shape:
|
|
|
247
284
|
}
|
|
248
285
|
```
|
|
249
286
|
|
|
250
|
-
### 5.4 Tool Catalog
|
|
287
|
+
### 5.4 Tool Catalog Baseline
|
|
251
288
|
|
|
252
|
-
|
|
289
|
+
Canonical MCP tools:
|
|
253
290
|
|
|
254
291
|
1. `feature.question_create` (mutating)
|
|
255
292
|
2. `feature.question_list` (read)
|
|
@@ -297,14 +334,15 @@ Output:
|
|
|
297
334
|
- `question_status` (`answered`)
|
|
298
335
|
- `feature_status` (resumed phase)
|
|
299
336
|
- `resumed` (boolean)
|
|
337
|
+
- `resume_status` (optional in baseline, recommended when richer UI flows need deterministic resume-target display)
|
|
300
338
|
|
|
301
339
|
### 5.5 Error Taxonomy Additions
|
|
302
340
|
|
|
303
341
|
Add:
|
|
304
342
|
|
|
305
343
|
- `question_not_found`
|
|
306
|
-
- `
|
|
307
|
-
- `
|
|
344
|
+
- `question_already_closed`
|
|
345
|
+
- `question_answer_invalid`
|
|
308
346
|
- `question_conflict_open`
|
|
309
347
|
- `question_answer_not_allowed_in_terminal_state`
|
|
310
348
|
|
|
@@ -347,36 +385,73 @@ Rules:
|
|
|
347
385
|
|
|
348
386
|
### 6.4 Activity State Determinism
|
|
349
387
|
|
|
350
|
-
|
|
388
|
+
The protocol should prefer persisted status/state over heuristic `status_reason` parsing:
|
|
351
389
|
|
|
352
390
|
- if state status is `awaiting_input`, `activity_state` reports `waiting_input`
|
|
353
391
|
- heuristic fallback remains only for backward compatibility during migration window
|
|
354
392
|
|
|
393
|
+
### 6.5 Question Readiness Contract
|
|
394
|
+
|
|
395
|
+
A question is operator-visible and answerable only when it is persisted and the feature state reflects the pause.
|
|
396
|
+
|
|
397
|
+
Baseline ready-state condition:
|
|
398
|
+
|
|
399
|
+
```text
|
|
400
|
+
question_ready =
|
|
401
|
+
exists(open question record)
|
|
402
|
+
AND feature.status == awaiting_input
|
|
403
|
+
AND feature.human_input.open_question_id == question.question_id
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
Normative consequences:
|
|
407
|
+
|
|
408
|
+
- transient model output alone is never sufficient
|
|
409
|
+
- malformed or failed `REQUEST` handling must not create operator-visible question state
|
|
410
|
+
- dashboard, focus view, and future CLI surfaces must all use this same persisted source of truth
|
|
411
|
+
- phase-specific specs may add stricter predicates; for example M59 intake additionally requires `question.resume_status == intake`
|
|
412
|
+
|
|
355
413
|
---
|
|
356
414
|
|
|
357
|
-
## 7.
|
|
415
|
+
## 7. Operator Surfaces
|
|
358
416
|
|
|
359
|
-
### 7.1
|
|
417
|
+
### 7.1 Shared Transport Baseline
|
|
360
418
|
|
|
361
|
-
|
|
419
|
+
The generic protocol baseline now assumes these operator-facing paths exist or will be normalized here:
|
|
362
420
|
|
|
363
|
-
|
|
364
|
-
|
|
421
|
+
- dashboard:
|
|
422
|
+
- feature questions route
|
|
423
|
+
- question answer route
|
|
424
|
+
- focus-view `HumanInputPanel`
|
|
425
|
+
- future CLI:
|
|
426
|
+
- `aop questions --feature-id <id> [--status open|answered|expired|withdrawn|all]`
|
|
427
|
+
- `aop answer --feature-id <id> --question-id <qid> --answer <value> [--answered-by <id>]`
|
|
365
428
|
|
|
366
429
|
Behavior:
|
|
367
430
|
|
|
368
|
-
-
|
|
369
|
-
-
|
|
431
|
+
- all answer paths terminate in `feature.question_answer`
|
|
432
|
+
- all read paths derive from persisted `questions.json` and `state.md`
|
|
433
|
+
- transport wrappers may differ, but the underlying lifecycle is shared
|
|
370
434
|
|
|
371
|
-
### 7.2 Status
|
|
435
|
+
### 7.2 Status and Summary Baseline
|
|
372
436
|
|
|
373
|
-
`aop status` and dashboard
|
|
437
|
+
`aop status` and dashboard summary payloads must expose at least:
|
|
374
438
|
|
|
375
439
|
- `open_question_count`
|
|
376
440
|
- `open_question_id`
|
|
377
441
|
- `awaiting_since`
|
|
442
|
+
- `requested_by_role`
|
|
378
443
|
- `resume_status`
|
|
379
444
|
|
|
445
|
+
### 7.3 Dashboard Behavior Baseline
|
|
446
|
+
|
|
447
|
+
At baseline, the dashboard must support:
|
|
448
|
+
|
|
449
|
+
- rendering persisted open questions
|
|
450
|
+
- showing `Awaiting Input` / waiting-input states from persisted state
|
|
451
|
+
- answering a blocking question from at least one first-class surface
|
|
452
|
+
|
|
453
|
+
The current focus-view answer path satisfies the last requirement today. Additional surfaces, such as the triage drawer, should be treated as parity work rather than protocol invention.
|
|
454
|
+
|
|
380
455
|
---
|
|
381
456
|
|
|
382
457
|
## 8. Planner / Builder / QA Role Semantics
|
|
@@ -414,7 +489,7 @@ human_input:
|
|
|
414
489
|
|
|
415
490
|
Rules:
|
|
416
491
|
|
|
417
|
-
- if `enabled=false`, `feature.question_create` returns `
|
|
492
|
+
- if `enabled=false`, `feature.question_create` returns a structured policy/configuration error; current baseline may surface `invalid_argument` until a more specific code is introduced
|
|
418
493
|
- `max_open_questions_per_feature=1` is enforced strictly in v1
|
|
419
494
|
|
|
420
495
|
---
|
|
@@ -435,7 +510,7 @@ Rules:
|
|
|
435
510
|
|
|
436
511
|
4. Answer submitted for already answered question:
|
|
437
512
|
|
|
438
|
-
- return idempotent success if same operation replay, else `
|
|
513
|
+
- return idempotent success if same operation replay, else `question_already_closed`.
|
|
439
514
|
|
|
440
515
|
5. Feature reaches terminal status while question open:
|
|
441
516
|
|
|
@@ -465,44 +540,55 @@ Rules:
|
|
|
465
540
|
|
|
466
541
|
## 11. Implementation Plan
|
|
467
542
|
|
|
468
|
-
|
|
543
|
+
This plan reflects the **current repository baseline**.
|
|
544
|
+
|
|
545
|
+
### M43.0 Provider Compatibility Regression Guard
|
|
469
546
|
|
|
470
|
-
-
|
|
471
|
-
-
|
|
472
|
-
-
|
|
547
|
+
- preserve `--dangerously-skip-permissions` on automated `claude` run/send templates
|
|
548
|
+
- preserve provider parity with `codex` and `copilot`
|
|
549
|
+
- treat this as regression protection, not new design work
|
|
473
550
|
|
|
474
|
-
### M43.
|
|
551
|
+
### M43.1 Protocol Baseline Hardening
|
|
475
552
|
|
|
476
|
-
-
|
|
477
|
-
-
|
|
478
|
-
-
|
|
553
|
+
- keep `QuestionService`, question artifacts, and MCP tools as the canonical persistence boundary
|
|
554
|
+
- align spec, schemas, error names, and output shapes to current implementation
|
|
555
|
+
- extend resumable-state contract so later specs can add `intake`
|
|
479
556
|
|
|
480
|
-
### M43.
|
|
557
|
+
### M43.2 Shared Ready-State and Payload Baseline
|
|
481
558
|
|
|
482
|
-
-
|
|
483
|
-
-
|
|
484
|
-
-
|
|
559
|
+
- define one authoritative question-ready contract for operator-visible work
|
|
560
|
+
- normalize baseline dashboard / route / summary payload requirements here
|
|
561
|
+
- require later specs to add only delta fields
|
|
485
562
|
|
|
486
|
-
### M43.
|
|
563
|
+
### M43.3 Operator Workflow Parity
|
|
487
564
|
|
|
488
|
-
- add `questions`
|
|
489
|
-
- extend
|
|
565
|
+
- add dedicated CLI `questions` / `answer` workflow
|
|
566
|
+
- extend the dashboard triage drawer so it can answer blocking questions directly
|
|
567
|
+
- keep focus-view `HumanInputPanel` on the same backend answer path
|
|
568
|
+
|
|
569
|
+
### M43.4 Deterministic Projection Cleanup
|
|
570
|
+
|
|
571
|
+
- reduce waiting-input heuristics where persisted state already exists
|
|
572
|
+
- make status and activity reporting prefer `awaiting_input` + `human_input.*`
|
|
490
573
|
|
|
491
574
|
### M43.5 Verify Path Coverage
|
|
492
575
|
|
|
493
|
-
- add unit/integration tests and include in `npm run verify`
|
|
576
|
+
- add or update unit/integration/dashboard tests and include them in `npm run verify`
|
|
494
577
|
|
|
495
578
|
---
|
|
496
579
|
|
|
497
580
|
## 12. File-Level Change Targets
|
|
498
581
|
|
|
499
|
-
- `apps/control-plane/src/
|
|
582
|
+
- `apps/control-plane/src/providers/provider-defaults.ts` — preserve automated `claude` run/send compatibility guardrails.
|
|
583
|
+
- `apps/control-plane/src/application/services/question-service.ts` — baseline protocol semantics, resumable-state widening, answer output alignment.
|
|
584
|
+
- `apps/control-plane/src/core/questions.ts` — canonical question record / summary shape.
|
|
500
585
|
- `apps/control-plane/src/core/constants.ts`
|
|
501
586
|
- `apps/control-plane/src/core/kernel.ts`
|
|
502
587
|
- `apps/control-plane/src/supervisor/worker-decision-loop.ts`
|
|
503
588
|
- `apps/control-plane/src/supervisor/planning-wave-executor.ts`
|
|
504
589
|
- `apps/control-plane/src/supervisor/build-wave-executor.ts`
|
|
505
590
|
- `apps/control-plane/src/supervisor/qa-wave-executor.ts`
|
|
591
|
+
- `apps/control-plane/src/application/services/activity-monitor-service.ts`
|
|
506
592
|
- `apps/control-plane/src/cli/types.ts`
|
|
507
593
|
- `apps/control-plane/src/cli/cli-argument-parser.ts`
|
|
508
594
|
- `apps/control-plane/src/cli/help-command-handler.ts`
|
|
@@ -510,24 +596,28 @@ Rules:
|
|
|
510
596
|
- `apps/control-plane/src/cli/answer-command-handler.ts` (new)
|
|
511
597
|
- `apps/control-plane/src/interfaces/cli/bootstrap.ts`
|
|
512
598
|
- `apps/control-plane/src/cli/status-command-handler.ts`
|
|
513
|
-
- `apps/control-plane/src/application/services/activity-monitor-service.ts`
|
|
514
599
|
- `agentic/orchestrator/tools/catalog.json`
|
|
515
|
-
- `agentic/orchestrator/tools/schemas/input/feature.question_create.input.schema.json`
|
|
516
|
-
- `agentic/orchestrator/tools/schemas/output/feature.question_create.output.schema.json`
|
|
517
|
-
- `agentic/orchestrator/tools/schemas/input/feature.question_list.input.schema.json`
|
|
518
|
-
- `agentic/orchestrator/tools/schemas/output/feature.question_list.output.schema.json`
|
|
519
|
-
- `agentic/orchestrator/tools/schemas/input/feature.question_answer.input.schema.json`
|
|
520
|
-
- `agentic/orchestrator/tools/schemas/output/feature.question_answer.output.schema.json`
|
|
600
|
+
- `agentic/orchestrator/tools/schemas/input/feature.question_create.input.schema.json`
|
|
601
|
+
- `agentic/orchestrator/tools/schemas/output/feature.question_create.output.schema.json`
|
|
602
|
+
- `agentic/orchestrator/tools/schemas/input/feature.question_list.input.schema.json`
|
|
603
|
+
- `agentic/orchestrator/tools/schemas/output/feature.question_list.output.schema.json`
|
|
604
|
+
- `agentic/orchestrator/tools/schemas/input/feature.question_answer.input.schema.json`
|
|
605
|
+
- `agentic/orchestrator/tools/schemas/output/feature.question_answer.output.schema.json`
|
|
521
606
|
- `agentic/orchestrator/schemas/state.schema.json`
|
|
522
607
|
- `agentic/orchestrator/schemas/policy.schema.json`
|
|
523
608
|
- `agentic/orchestrator/policy.yaml`
|
|
524
|
-
- `
|
|
525
|
-
- `
|
|
609
|
+
- `packages/web-dashboard/src/app/api/features/[id]/questions/route.ts`
|
|
610
|
+
- `packages/web-dashboard/src/app/api/features/[id]/questions/[questionId]/answer/route.ts`
|
|
611
|
+
- `packages/web-dashboard/src/components/human-input-panel.tsx`
|
|
612
|
+
- `packages/web-dashboard/src/components/dashboard/triage-drawer.tsx`
|
|
613
|
+
- `packages/web-dashboard/src/lib/types.ts`
|
|
614
|
+
- `packages/web-dashboard/src/lib/aop-client.ts`
|
|
615
|
+
- `apps/control-plane/test/question-service.spec.ts`
|
|
526
616
|
- `apps/control-plane/test/worker-decision-loop.spec.ts`
|
|
527
|
-
- `apps/control-plane/test/
|
|
617
|
+
- `apps/control-plane/test/kernel-tool-wiring.spec.ts`
|
|
528
618
|
- `apps/control-plane/test/cli.unit.spec.ts`
|
|
529
619
|
- `apps/control-plane/test/status-command.spec.ts`
|
|
530
|
-
- `
|
|
620
|
+
- `packages/web-dashboard/test/**` (question/triage/focus coverage)
|
|
531
621
|
|
|
532
622
|
---
|
|
533
623
|
|
|
@@ -535,15 +625,17 @@ Rules:
|
|
|
535
625
|
|
|
536
626
|
### 13.1 Unit
|
|
537
627
|
|
|
628
|
+
- `claude` provider automated run/send templates retain `--dangerously-skip-permissions` and remain aligned with current provider policy
|
|
538
629
|
- question create transitions state to `awaiting_input`
|
|
539
630
|
- answer transitions to recorded `resume_status`
|
|
540
631
|
- duplicate open question is rejected
|
|
541
632
|
- answer idempotency and replay behavior
|
|
633
|
+
- ready-state projection requires persisted open question + `awaiting_input` state
|
|
542
634
|
|
|
543
635
|
### 13.2 Supervisor Integration
|
|
544
636
|
|
|
545
637
|
- feature in `awaiting_input` is skipped by all wave executors
|
|
546
|
-
- answering question resumes the next iteration in
|
|
638
|
+
- answering question resumes the next iteration in the recorded phase
|
|
547
639
|
|
|
548
640
|
### 13.3 CLI Integration
|
|
549
641
|
|
|
@@ -552,10 +644,16 @@ Rules:
|
|
|
552
644
|
|
|
553
645
|
### 13.4 MCP Contract
|
|
554
646
|
|
|
555
|
-
-
|
|
647
|
+
- question tools validate schema and role authorization
|
|
556
648
|
- mutating tools enforce `operation_id`
|
|
557
649
|
|
|
558
|
-
### 13.5 Regression
|
|
650
|
+
### 13.5 Dashboard / Focus Regression
|
|
651
|
+
|
|
652
|
+
- focus-view `HumanInputPanel` answers via the persisted question-answer route
|
|
653
|
+
- triage drawer answer controls use the same answer path once parity work lands
|
|
654
|
+
- dashboard never renders transient non-persisted questions as actionable work
|
|
655
|
+
|
|
656
|
+
### 13.6 Regression
|
|
559
657
|
|
|
560
658
|
- GIVEN builder asks permission override WHEN unanswered THEN no further patch/gate actions execute for that feature
|
|
561
659
|
- GIVEN answer is provided WHEN next iteration runs THEN builder resumes and can continue gate repair
|
|
@@ -564,19 +662,24 @@ Rules:
|
|
|
564
662
|
|
|
565
663
|
## 14. Acceptance Criteria
|
|
566
664
|
|
|
567
|
-
1.
|
|
568
|
-
2.
|
|
569
|
-
3.
|
|
570
|
-
4.
|
|
571
|
-
5.
|
|
572
|
-
6.
|
|
573
|
-
7.
|
|
574
|
-
8.
|
|
665
|
+
1. The spec reflects the current repository baseline rather than re-specifying already-landed behavior as future work.
|
|
666
|
+
2. Agent-generated blocking questions remain first-class persisted artifacts.
|
|
667
|
+
3. Feature status transitions to `awaiting_input` deterministically.
|
|
668
|
+
4. No planning/building/qa waves execute for features with open blocking question.
|
|
669
|
+
5. Human answer flow is deterministic, idempotent, and auditable.
|
|
670
|
+
6. Feature resumes from recorded phase after answer.
|
|
671
|
+
7. There is one authoritative question-ready contract based on persisted state, and later specs reuse it.
|
|
672
|
+
8. Dashboard and CLI answer flows terminate in `feature.question_answer`.
|
|
673
|
+
9. `npm run verify` fails if awaiting-input pause/resume invariants regress.
|
|
674
|
+
10. Implementation boundaries follow KISS/SRP/SOLID/Hexagonal requirements from Section 0.4.
|
|
575
675
|
|
|
576
676
|
---
|
|
577
677
|
|
|
578
678
|
## 15. Risks and Mitigations
|
|
579
679
|
|
|
680
|
+
- Risk: `--dangerously-skip-permissions` on `claude` provider removes interactive approval prompts for automated sessions.
|
|
681
|
+
- Mitigation: semantically, the orchestrator already provides equivalent protection in automated interactive execution — plan validation, kernel validation, and gate checks remain the security boundary. The flag is consistent with how `codex` and `copilot` providers are already configured. This spec only requires deterministic automated compatibility; it does not rely on a specific `attach` permission model.
|
|
682
|
+
|
|
580
683
|
- Risk: status-model expansion (`awaiting_input`) causes unintended branch regressions.
|
|
581
684
|
- Mitigation: add explicit status transition tests in all wave executors and coordinator.
|
|
582
685
|
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# Feature Spec: Interactive Mode Identifier Rename Cleanup
|
|
2
|
+
|
|
3
|
+
> Purpose: After deterministic mode removal (M56), rename identifiers that carry the word "interactive" as a mode qualifier — making them mode-neutral now that interactive execution is the only model.
|
|
4
|
+
|
|
5
|
+
**Version:** 1.0
|
|
6
|
+
**Date:** 2026-03-16
|
|
7
|
+
**Status:** Outstanding
|
|
8
|
+
**Roadmap Mapping:** M57 (Interactive Mode Identifier Rename Cleanup)
|
|
9
|
+
**Depends On:** M56 (Remove Deterministic Execution Mode, complete)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 0. Background & Motivation
|
|
14
|
+
|
|
15
|
+
M56 removed the `deterministic` execution mode entirely. After that change, identifiers like `interactiveOutcome`, `supportsInteractiveMode`, and `INTERACTIVE_CHECKPOINT_INVALID` carry a qualifier that no longer distinguishes anything — all execution is now interactive. These names are residual noise that will mislead future maintainers into thinking a mode distinction still exists.
|
|
16
|
+
|
|
17
|
+
This spec renames those identifiers to mode-neutral equivalents. It is a pure rename pass: no logic changes, no behavioral changes, no additional deletions. Each rename must be applied consistently across all call sites, tests, docs, and schemas.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 1. Rename Map
|
|
22
|
+
|
|
23
|
+
The table below defines every rename in scope. The left column is the current name; the right column is the target name. All renames are applied in the same implementation pass to avoid an intermediate broken state.
|
|
24
|
+
|
|
25
|
+
### 1.1 Type and Interface Names
|
|
26
|
+
|
|
27
|
+
| Current name | New name | File(s) |
|
|
28
|
+
| ---------------------------- | ------------------ | ----------------------------------------------------------------------------------------------------------- |
|
|
29
|
+
| `InteractiveExecutionConfig` | `ExecutionConfig` | `application/services/checkpoint-service.ts`, `supervisor/runtime.ts`, `supervisor/worker-decision-loop.ts` |
|
|
30
|
+
| `InteractiveRunSummary` | `WorkerRunSummary` | `supervisor/worker-decision-loop.ts` |
|
|
31
|
+
|
|
32
|
+
### 1.2 Method and Function Names
|
|
33
|
+
|
|
34
|
+
| Current name | New name | File(s) |
|
|
35
|
+
| ------------------------------------- | -------------------------- | -------------------------------------------------------------------------------- |
|
|
36
|
+
| `resolveInteractiveExecutionConfig()` | `resolveExecutionConfig()` | `supervisor/runtime.ts` |
|
|
37
|
+
| `resolveInteractiveConfig()` | `resolveExecutionConfig()` | `supervisor/worker-decision-loop.ts` (callback name on dependencies) |
|
|
38
|
+
| `isInteractiveEligible()` | `isWorktreeEligible()` | `supervisor/worker-decision-loop.ts` |
|
|
39
|
+
| `runInteractive()` | `runWithWorktree()` | `supervisor/worker-decision-loop.ts` |
|
|
40
|
+
| `buildInteractiveWorkerPrompt()` | `buildWorkerPrompt()` | `providers/cli-worker-provider.ts` (already renamed in M56; confirm it was done) |
|
|
41
|
+
|
|
42
|
+
### 1.3 Field and Variable Names
|
|
43
|
+
|
|
44
|
+
| Current name | New name | Location |
|
|
45
|
+
| ------------------------------------------------------ | ------------------ | ------------------------------------------------------------------------------------- |
|
|
46
|
+
| `interactiveConfig` (field on `SupervisorRuntime`) | `executionConfig` | `supervisor/runtime.ts` |
|
|
47
|
+
| `interactiveConfig` (field on `WorkerDecisionLoop`) | `executionConfig` | `supervisor/worker-decision-loop.ts` |
|
|
48
|
+
| `interactiveEligible` (local variable) | `worktreeEligible` | `supervisor/worker-decision-loop.ts` |
|
|
49
|
+
| `interactiveSummary` (local variable) | `workerSummary` | `supervisor/worker-decision-loop.ts` |
|
|
50
|
+
| `interactiveOutcome` (field on `WorkerDecisionResult`) | `workerOutcome` | `supervisor/worker-decision-loop.ts`, `supervisor/types.ts` |
|
|
51
|
+
| `interactiveOutcome` (field on worker event payloads) | `worker_outcome` | `supervisor/worker-decision-loop.ts` event emission |
|
|
52
|
+
| `interactive_outcome` (analytics event field key) | `worker_outcome` | `supervisor/worker-decision-loop.ts` event emission, any downstream analytics readers |
|
|
53
|
+
|
|
54
|
+
### 1.4 Capability Flag Names
|
|
55
|
+
|
|
56
|
+
| Current name | New name | File(s) |
|
|
57
|
+
| ----------------------------------------------------------- | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
58
|
+
| `supportsInteractiveMode` (on `WorkerProviderCapabilities`) | `supportsWorktreeExecution` | `providers/providers.ts`, `providers/cli-worker-provider.ts`, `providers/api-worker-provider.ts`, `providers/worker-provider-factory.ts`, all test files |
|
|
59
|
+
|
|
60
|
+
### 1.5 Error Code Names
|
|
61
|
+
|
|
62
|
+
| Current name | New name | File(s) |
|
|
63
|
+
| -------------------------------- | -------------------- | -------------------------------------------------------------------------------------------- |
|
|
64
|
+
| `INTERACTIVE_CHECKPOINT_INVALID` | `CHECKPOINT_INVALID` | `core/error-codes.ts`, all files that reference `ERROR_CODES.INTERACTIVE_CHECKPOINT_INVALID` |
|
|
65
|
+
| `INTERACTIVE_NO_NEW_WORK` | `WORKER_NO_NEW_WORK` | `core/error-codes.ts`, all files that reference `ERROR_CODES.INTERACTIVE_NO_NEW_WORK` |
|
|
66
|
+
|
|
67
|
+
### 1.6 Analytics File Path
|
|
68
|
+
|
|
69
|
+
| Current path | New path | File(s) |
|
|
70
|
+
| -------------------------------------- | --------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
|
|
71
|
+
| `.aop/analytics/interactive-mode.json` | `.aop/analytics/execution-metrics.json` | `application/services/checkpoint-service.ts` (`interactiveMetricsPath()` method → `executionMetricsPath()`) |
|
|
72
|
+
|
|
73
|
+
The method `interactiveMetricsPath()` should also be renamed to `executionMetricsPath()`.
|
|
74
|
+
|
|
75
|
+
### 1.7 Config Key in agents.yaml
|
|
76
|
+
|
|
77
|
+
After M56 restructures `runtime.interactive.*` to `runtime.execution.*`, there are no further config key renames needed in this spec. Confirm M56 was applied before starting M57.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 2. Documentation Updates
|
|
82
|
+
|
|
83
|
+
### 2.1 `docs/core/ARCHITECTURE.md`
|
|
84
|
+
|
|
85
|
+
- Replace any remaining references to "interactive mode" as a named concept with "agent execution" or "worktree execution".
|
|
86
|
+
- Update type/interface names in any architecture diagrams or tables to match the new names above.
|
|
87
|
+
|
|
88
|
+
### 2.2 `docs/core/DOMAIN-LOGIC.md`
|
|
89
|
+
|
|
90
|
+
- Replace "interactive mode checkpoint" with "execution checkpoint".
|
|
91
|
+
- Replace "interactive outcome" with "worker outcome".
|
|
92
|
+
- Replace `INTERACTIVE_CHECKPOINT_INVALID` with `CHECKPOINT_INVALID`.
|
|
93
|
+
- Replace `INTERACTIVE_NO_NEW_WORK` with `WORKER_NO_NEW_WORK`.
|
|
94
|
+
|
|
95
|
+
### 2.3 `docs/core/PATTERNS.md`
|
|
96
|
+
|
|
97
|
+
- Update any canonical code examples that reference `interactiveOutcome`, `InteractiveExecutionConfig`, `supportsInteractiveMode`, or the old error code names.
|
|
98
|
+
|
|
99
|
+
### 2.4 `docs/core/DECISIONS.md`
|
|
100
|
+
|
|
101
|
+
Add a new ADR entry:
|
|
102
|
+
|
|
103
|
+
> **ADR-NNN — Rename Residual "Interactive" Mode Identifiers**
|
|
104
|
+
>
|
|
105
|
+
> **Status:** Accepted
|
|
106
|
+
>
|
|
107
|
+
> **Context:** M56 removed deterministic mode. Identifiers like `interactiveOutcome` and `INTERACTIVE_CHECKPOINT_INVALID` retained a mode qualifier that no longer distinguished anything.
|
|
108
|
+
>
|
|
109
|
+
> **Decision:** Rename all such identifiers to mode-neutral equivalents (see M57 spec). No behavioral change.
|
|
110
|
+
>
|
|
111
|
+
> **Consequences:** Cleaner, more maintainable API surface. Future maintainers will not be misled into thinking a mode distinction exists.
|
|
112
|
+
|
|
113
|
+
### 2.5 `docs/core/TROUBLESHOOTING.md`
|
|
114
|
+
|
|
115
|
+
- Update any troubleshooting entries that reference `INTERACTIVE_CHECKPOINT_INVALID` or `INTERACTIVE_NO_NEW_WORK` by error code name to use the new names.
|
|
116
|
+
|
|
117
|
+
### 2.6 `README.md`
|
|
118
|
+
|
|
119
|
+
- Update any references to the old error code names or capability flag names that appear in the README.
|
|
120
|
+
|
|
121
|
+
### 2.7 `spec-files/progress.md`
|
|
122
|
+
|
|
123
|
+
- Append a new numbered entry when M57 implementation is complete.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## 3. Test Updates
|
|
128
|
+
|
|
129
|
+
- All tests referencing `interactiveOutcome` on decision results must use `workerOutcome`.
|
|
130
|
+
- All tests asserting `supportsInteractiveMode` on capability objects must use `supportsWorktreeExecution`.
|
|
131
|
+
- All tests referencing `ERROR_CODES.INTERACTIVE_CHECKPOINT_INVALID` must use `ERROR_CODES.CHECKPOINT_INVALID`.
|
|
132
|
+
- All tests referencing `ERROR_CODES.INTERACTIVE_NO_NEW_WORK` must use `ERROR_CODES.WORKER_NO_NEW_WORK`.
|
|
133
|
+
- All tests constructing `InteractiveExecutionConfig` objects must use `ExecutionConfig`.
|
|
134
|
+
- All tests passing `resolveInteractiveConfig` or `resolveExecutionMode` callbacks to `WorkerDecisionLoop` must use the new dependency field names.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## 4. Implementation Notes
|
|
139
|
+
|
|
140
|
+
### 4.1 Order of Operations
|
|
141
|
+
|
|
142
|
+
Because these are pure renames with no logic changes, the order within a single pass does not matter as long as all call sites are updated atomically. The recommended approach is:
|
|
143
|
+
|
|
144
|
+
1. Rename the declaration (type, method, field, constant).
|
|
145
|
+
2. Let TypeScript compilation errors identify every call site.
|
|
146
|
+
3. Update all call sites.
|
|
147
|
+
4. Run `npm run build` to verify zero errors.
|
|
148
|
+
5. Run `npm run test` to verify no behavioral regressions.
|
|
149
|
+
|
|
150
|
+
### 4.2 Grep Verification
|
|
151
|
+
|
|
152
|
+
After implementation, run the following to confirm no residual occurrences remain:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
grep -r "interactiveOutcome\|interactiveConfig\|interactiveEligible\|interactiveSummary" apps/control-plane/src/
|
|
156
|
+
grep -r "supportsInteractiveMode" apps/control-plane/src/
|
|
157
|
+
grep -r "InteractiveExecutionConfig\|InteractiveRunSummary" apps/control-plane/src/
|
|
158
|
+
grep -r "INTERACTIVE_CHECKPOINT_INVALID\|INTERACTIVE_NO_NEW_WORK" apps/control-plane/src/
|
|
159
|
+
grep -r "interactive-mode\.json\|interactiveMetricsPath" apps/control-plane/src/
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
All commands should return no matches.
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## 5. Out of Scope
|
|
167
|
+
|
|
168
|
+
- Logic changes of any kind.
|
|
169
|
+
- Removal of checkpoint, worktree, or watchdog infrastructure.
|
|
170
|
+
- Dashboard / web UI changes.
|
|
171
|
+
- Any rename not listed in §1.
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## 6. Acceptance Criteria
|
|
176
|
+
|
|
177
|
+
| # | Criterion | Verification |
|
|
178
|
+
| --- | --------------------------------------------------------------------------------- | ------------------ |
|
|
179
|
+
| 1 | No `interactiveOutcome` references remain in source | Grep check (§4.2) |
|
|
180
|
+
| 2 | No `supportsInteractiveMode` references remain in source | Grep check (§4.2) |
|
|
181
|
+
| 3 | No `InteractiveExecutionConfig` references remain in source | Grep check (§4.2) |
|
|
182
|
+
| 4 | No `INTERACTIVE_CHECKPOINT_INVALID` or `INTERACTIVE_NO_NEW_WORK` remain in source | Grep check (§4.2) |
|
|
183
|
+
| 5 | No `interactive-mode.json` path reference remains in source | Grep check (§4.2) |
|
|
184
|
+
| 6 | `npm run build` passes with zero errors and zero lint warnings | `npm run build` ✅ |
|
|
185
|
+
| 7 | `npm run test` passes all tests at ≥90% coverage thresholds | `npm run test` ✅ |
|
|
186
|
+
| 8 | `npm run validate:mcp-contracts` passes | ✅ |
|
|
187
|
+
| 9 | `npm run validate:architecture` passes | ✅ |
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## 7. Risks
|
|
192
|
+
|
|
193
|
+
| Risk | Likelihood | Mitigation |
|
|
194
|
+
| ------------------------------------------------------------------------------------------------------------------------------------ | -------------------- | -------------------------------------------------------------------------------------------------------------------- |
|
|
195
|
+
| A rename is missed in a test file, causing a type error caught only at runtime | Low | TypeScript strict mode and `npm run build` will catch all type-level mismatches at compile time. |
|
|
196
|
+
| Analytics event field rename (`interactive_outcome` → `worker_outcome`) breaks a dashboard query | Low (pre-production) | Check `packages/web-dashboard/` for any field reads on worker event records before renaming the emitted payload key. |
|
|
197
|
+
| `buildInteractiveWorkerPrompt` was already renamed in M56 as `buildWorkerPrompt`; attempting to rename again in M57 causes confusion | Low | The M57 implementing agent should confirm M56's rename was applied and skip that entry if so. |
|