agentic-orchestrator 0.1.27 → 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.
Files changed (837) hide show
  1. package/.claude/settings.local.json +46 -1
  2. package/.cortexrc +28 -0
  3. package/.github/agents/copilot-instructions.md +29 -0
  4. package/.github/copilot-instructions.md +93 -0
  5. package/.vscode/settings.json +13 -0
  6. package/.vscode/tms.code-snippets +223 -0
  7. package/AGENTS.md +72 -1
  8. package/Agentic-Orchestrator.iml +12 -11
  9. package/CLAUDE.md +72 -1
  10. package/CONSTITUTION.md +504 -0
  11. package/FUTURE-ENHANCEMENTS.md +85 -0
  12. package/NEXT-TASKS.md +25 -0
  13. package/PROMPTS.md +161 -0
  14. package/README.md +126 -29
  15. package/agentic/orchestrator/agents.yaml +4 -3
  16. package/agentic/orchestrator/defaults/policy.defaults.yaml +39 -3
  17. package/agentic/orchestrator/gates.yaml +15 -3
  18. package/agentic/orchestrator/policy.yaml +47 -3
  19. package/agentic/orchestrator/prompts/builder.system.md +69 -20
  20. package/agentic/orchestrator/prompts/planner-intake.system.md +149 -0
  21. package/agentic/orchestrator/prompts/planner.system.md +113 -40
  22. package/agentic/orchestrator/prompts/qa.system.md +73 -18
  23. package/agentic/orchestrator/prompts/reconciler.system.md +119 -0
  24. package/agentic/orchestrator/schemas/agents.schema.json +89 -1
  25. package/agentic/orchestrator/schemas/execution-control.schema.json +242 -0
  26. package/agentic/orchestrator/schemas/index.schema.json +234 -0
  27. package/agentic/orchestrator/schemas/intake.review.schema.json +82 -0
  28. package/agentic/orchestrator/schemas/organizer-ordering-artifact.schema.json +75 -0
  29. package/agentic/orchestrator/schemas/plan.schema.json +44 -0
  30. package/agentic/orchestrator/schemas/policy.schema.json +238 -9
  31. package/agentic/orchestrator/schemas/policy.user.schema.json +129 -1
  32. package/agentic/orchestrator/schemas/spec.manifest.bootstrap.schema.json +101 -0
  33. package/agentic/orchestrator/schemas/spec.manifest.verified.schema.json +80 -0
  34. package/agentic/orchestrator/schemas/state.schema.json +298 -3
  35. package/agentic/orchestrator/tools/catalog.json +145 -15
  36. package/agentic/orchestrator/tools/schemas/input/doctor.run.input.schema.json +18 -0
  37. package/agentic/orchestrator/tools/schemas/input/evidence.latest.input.schema.json +4 -0
  38. package/agentic/orchestrator/tools/schemas/input/evidence.verify_chain.input.schema.json +13 -0
  39. package/agentic/orchestrator/tools/schemas/input/feature.intake_submit.input.schema.json +11 -0
  40. package/agentic/orchestrator/tools/schemas/input/feature.question_answer.input.schema.json +15 -0
  41. package/agentic/orchestrator/tools/schemas/input/feature.question_create.input.schema.json +21 -0
  42. package/agentic/orchestrator/tools/schemas/input/feature.question_list.input.schema.json +13 -0
  43. package/agentic/orchestrator/tools/schemas/input/feature.ready_to_merge.input.schema.json +5 -0
  44. package/agentic/orchestrator/tools/schemas/input/feature.send_message.input.schema.json +1 -1
  45. package/agentic/orchestrator/tools/schemas/input/replay.timeline_get.input.schema.json +32 -0
  46. package/agentic/orchestrator/tools/schemas/input/repo.conflict_abort.input.schema.json +16 -0
  47. package/agentic/orchestrator/tools/schemas/input/repo.conflict_files.input.schema.json +16 -0
  48. package/agentic/orchestrator/tools/schemas/input/repo.reconcile_mainline.input.schema.json +37 -0
  49. package/agentic/orchestrator/tools/schemas/input/repo.resolve_conflict.input.schema.json +40 -0
  50. package/agentic/orchestrator/tools/schemas/input/runtime.execution_request_list.input.schema.json +7 -0
  51. package/agentic/orchestrator/tools/schemas/input/runtime.execution_request_submit.input.schema.json +25 -0
  52. package/agentic/orchestrator/tools/schemas/output/doctor.run.output.schema.json +34 -0
  53. package/agentic/orchestrator/tools/schemas/output/evidence.verify_chain.output.schema.json +23 -0
  54. package/agentic/orchestrator/tools/schemas/output/feature.get_context.output.schema.json +62 -2
  55. package/agentic/orchestrator/tools/schemas/output/feature.intake_submit.output.schema.json +24 -0
  56. package/agentic/orchestrator/tools/schemas/output/feature.question_answer.output.schema.json +21 -0
  57. package/agentic/orchestrator/tools/schemas/output/feature.question_create.output.schema.json +12 -0
  58. package/agentic/orchestrator/tools/schemas/output/feature.question_list.output.schema.json +14 -0
  59. package/agentic/orchestrator/tools/schemas/output/feature.ready_to_merge.output.schema.json +31 -0
  60. package/agentic/orchestrator/tools/schemas/output/feature.send_message.output.schema.json +8 -18
  61. package/agentic/orchestrator/tools/schemas/output/replay.timeline_get.output.schema.json +64 -0
  62. package/agentic/orchestrator/tools/schemas/output/repo.conflict_abort.output.schema.json +16 -0
  63. package/agentic/orchestrator/tools/schemas/output/repo.conflict_files.output.schema.json +22 -0
  64. package/agentic/orchestrator/tools/schemas/output/repo.reconcile_mainline.output.schema.json +61 -0
  65. package/agentic/orchestrator/tools/schemas/output/repo.resolve_conflict.output.schema.json +19 -0
  66. package/agentic/orchestrator/tools/schemas/output/report.dashboard.output.schema.json +26 -0
  67. package/agentic/orchestrator/tools/schemas/output/runtime.execution_request_list.output.schema.json +17 -0
  68. package/agentic/orchestrator/tools/schemas/output/runtime.execution_request_submit.output.schema.json +24 -0
  69. package/agentic/orchestrator/tools.md +13 -0
  70. package/apps/control-plane/scripts/validate-mcp-contracts.ts +1 -1
  71. package/apps/control-plane/src/application/kernel-tool-wiring.ts +140 -2
  72. package/apps/control-plane/src/application/services/activity-monitor-service.ts +44 -1
  73. package/apps/control-plane/src/application/services/bootstrap-manifest-generator-service.ts +251 -0
  74. package/apps/control-plane/src/application/services/checkpoint-service.ts +87 -27
  75. package/apps/control-plane/src/application/services/collision-override-service.ts +906 -0
  76. package/apps/control-plane/src/application/services/collision-queue-service.ts +129 -38
  77. package/apps/control-plane/src/application/services/cost-tracking-service.ts +94 -0
  78. package/apps/control-plane/src/application/services/execution-control-service.ts +599 -0
  79. package/apps/control-plane/src/application/services/feature-deletion-service.ts +37 -1
  80. package/apps/control-plane/src/application/services/feature-lifecycle-service.ts +182 -4
  81. package/apps/control-plane/src/application/services/feature-send-message-service.ts +17 -8
  82. package/apps/control-plane/src/application/services/feature-state-service.ts +191 -6
  83. package/apps/control-plane/src/application/services/gate-service.ts +121 -2
  84. package/apps/control-plane/src/application/services/git-reconciliation-service.ts +1591 -0
  85. package/apps/control-plane/src/application/services/intake-service.ts +1468 -0
  86. package/apps/control-plane/src/application/services/merge-service.ts +308 -17
  87. package/apps/control-plane/src/application/services/notifier-service.ts +3 -1
  88. package/apps/control-plane/src/application/services/performance-analytics-service.ts +75 -0
  89. package/apps/control-plane/src/application/services/plan-service.ts +336 -20
  90. package/apps/control-plane/src/application/services/question-service.ts +693 -0
  91. package/apps/control-plane/src/application/services/reactions-service.ts +73 -17
  92. package/apps/control-plane/src/application/services/replay-timeline-service.ts +295 -0
  93. package/apps/control-plane/src/application/services/reporting-service.ts +194 -10
  94. package/apps/control-plane/src/application/services/run-lease-service.ts +121 -5
  95. package/apps/control-plane/src/application/services/worktree-watchdog-service.ts +95 -8
  96. package/apps/control-plane/src/application/tools/tool-metadata.ts +7 -0
  97. package/apps/control-plane/src/application/usage-types.ts +138 -0
  98. package/apps/control-plane/src/cli/add-command-handler.ts +162 -0
  99. package/apps/control-plane/src/cli/answer-command-handler.ts +113 -0
  100. package/apps/control-plane/src/cli/attach-command-handler.ts +12 -3
  101. package/apps/control-plane/src/cli/cli-argument-parser.ts +133 -11
  102. package/apps/control-plane/src/cli/collision-command-handler.ts +113 -0
  103. package/apps/control-plane/src/cli/command-catalog.ts +479 -0
  104. package/apps/control-plane/src/cli/complete-command-handler.ts +23 -0
  105. package/apps/control-plane/src/cli/completion-command-handler.ts +25 -0
  106. package/apps/control-plane/src/cli/completion-resolver.ts +319 -0
  107. package/apps/control-plane/src/cli/completion-shell-renderer.ts +58 -0
  108. package/apps/control-plane/src/cli/dashboard-command-handler.ts +110 -1
  109. package/apps/control-plane/src/cli/dashboard-runtime-runner.ts +1036 -0
  110. package/apps/control-plane/src/cli/dashboard-runtime.ts +31 -0
  111. package/apps/control-plane/src/cli/help-command-handler.ts +17 -185
  112. package/apps/control-plane/src/cli/init-command-handler.ts +51 -6
  113. package/apps/control-plane/src/cli/merge-command-handler.ts +200 -0
  114. package/apps/control-plane/src/cli/questions-command-handler.ts +70 -0
  115. package/apps/control-plane/src/cli/replay-command-handler.ts +98 -0
  116. package/apps/control-plane/src/cli/resume-command-handler.ts +252 -18
  117. package/apps/control-plane/src/cli/retry-command-handler.ts +229 -17
  118. package/apps/control-plane/src/cli/retry-resume-decision.ts +75 -0
  119. package/apps/control-plane/src/cli/rollback-command-handler.ts +4 -2
  120. package/apps/control-plane/src/cli/run-command-handler.ts +35 -1
  121. package/apps/control-plane/src/cli/spec-ingestion-service.ts +45 -55
  122. package/apps/control-plane/src/cli/spec-preparation.ts +114 -0
  123. package/apps/control-plane/src/cli/spec-utils.ts +90 -11
  124. package/apps/control-plane/src/cli/status-command-handler.ts +122 -0
  125. package/apps/control-plane/src/cli/types.ts +41 -3
  126. package/apps/control-plane/src/core/collisions.ts +150 -31
  127. package/apps/control-plane/src/core/constants.ts +18 -1
  128. package/apps/control-plane/src/core/error-codes.ts +39 -0
  129. package/apps/control-plane/src/core/execution-control.ts +56 -0
  130. package/apps/control-plane/src/core/feature-resume-phase.ts +118 -0
  131. package/apps/control-plane/src/core/gate-freshness.ts +359 -0
  132. package/apps/control-plane/src/core/gate-log-extractor.ts +97 -0
  133. package/apps/control-plane/src/core/gates.ts +90 -1
  134. package/apps/control-plane/src/core/intake-artifacts.ts +295 -0
  135. package/apps/control-plane/src/core/kernel-types.ts +11 -0
  136. package/apps/control-plane/src/core/kernel.ts +604 -16
  137. package/apps/control-plane/src/core/mainline-conflict.ts +22 -0
  138. package/apps/control-plane/src/core/merge-repair.ts +149 -0
  139. package/apps/control-plane/src/core/path-layout.ts +46 -2
  140. package/apps/control-plane/src/core/path-rules.ts +11 -3
  141. package/apps/control-plane/src/core/plan-submit-recovery.ts +130 -0
  142. package/apps/control-plane/src/core/questions.ts +49 -0
  143. package/apps/control-plane/src/core/runtime-sessions.ts +4 -0
  144. package/apps/control-plane/src/core/schemas.ts +40 -1
  145. package/apps/control-plane/src/core/tool-caller.ts +25 -1
  146. package/apps/control-plane/src/core/utils/index-normalizer.ts +25 -4
  147. package/apps/control-plane/src/core/worktree-diff.ts +66 -0
  148. package/apps/control-plane/src/index.ts +29 -1
  149. package/apps/control-plane/src/interfaces/cli/bootstrap.ts +300 -6
  150. package/apps/control-plane/src/mcp/kernel-tool-executor.ts +17 -0
  151. package/apps/control-plane/src/mcp/tool-runtime.ts +63 -4
  152. package/apps/control-plane/src/providers/api-worker-provider.ts +62 -15
  153. package/apps/control-plane/src/providers/cli-worker-provider.ts +1037 -61
  154. package/apps/control-plane/src/providers/output-parsers/generic-output-parser.ts +99 -1
  155. package/apps/control-plane/src/providers/output-parsers/types.ts +2 -0
  156. package/apps/control-plane/src/providers/provider-defaults.ts +116 -7
  157. package/apps/control-plane/src/providers/providers.ts +225 -21
  158. package/apps/control-plane/src/providers/worker-provider-factory.ts +26 -2
  159. package/apps/control-plane/src/supervisor/artifact-stager.ts +52 -0
  160. package/apps/control-plane/src/supervisor/build-wave-executor.ts +477 -166
  161. package/apps/control-plane/src/supervisor/execution-enrollment-service.ts +408 -0
  162. package/apps/control-plane/src/supervisor/organizer-enrollment-scheduler.ts +117 -0
  163. package/apps/control-plane/src/supervisor/organizer-sidecar-service.ts +394 -0
  164. package/apps/control-plane/src/supervisor/plan-conformance-scorer.ts +2 -5
  165. package/apps/control-plane/src/supervisor/planner-phase.ts +85 -0
  166. package/apps/control-plane/src/supervisor/planning-wave-executor.ts +993 -64
  167. package/apps/control-plane/src/supervisor/prompt-bundle-loader.ts +20 -1
  168. package/apps/control-plane/src/supervisor/qa-wave-executor.ts +384 -177
  169. package/apps/control-plane/src/supervisor/run-coordinator.ts +801 -43
  170. package/apps/control-plane/src/supervisor/runtime.ts +485 -9
  171. package/apps/control-plane/src/supervisor/session-orchestrator.ts +220 -1
  172. package/apps/control-plane/src/supervisor/types.ts +152 -1
  173. package/apps/control-plane/src/supervisor/worker-decision-loop.ts +1030 -92
  174. package/apps/control-plane/test/activity-monitor.spec.ts +76 -0
  175. package/apps/control-plane/test/add-command-handler.spec.ts +189 -0
  176. package/apps/control-plane/test/application/services/feature-state-service.spec.ts +208 -0
  177. package/apps/control-plane/test/artifact-stager.spec.ts +93 -0
  178. package/apps/control-plane/test/batch-operations.spec.ts +58 -0
  179. package/apps/control-plane/test/bootstrap-edge-cases.spec.ts +50 -2
  180. package/apps/control-plane/test/bootstrap-manifest-generator-service.spec.ts +99 -0
  181. package/apps/control-plane/test/bootstrap.spec.ts +177 -4
  182. package/apps/control-plane/test/checkpoint-service.spec.ts +977 -29
  183. package/apps/control-plane/test/cli-argument-parser.spec.ts +119 -0
  184. package/apps/control-plane/test/cli-helpers.spec.ts +1202 -12
  185. package/apps/control-plane/test/cli.unit.spec.ts +797 -16
  186. package/apps/control-plane/test/collision-command-handler.spec.ts +182 -0
  187. package/apps/control-plane/test/collision-override-service.spec.ts +878 -0
  188. package/apps/control-plane/test/collision-queue.spec.ts +430 -2
  189. package/apps/control-plane/test/collisions.spec.ts +209 -1
  190. package/apps/control-plane/test/core-utils.spec.ts +61 -0
  191. package/apps/control-plane/test/cost-tracking.spec.ts +224 -0
  192. package/apps/control-plane/test/dashboard-api.integration.spec.ts +185 -5
  193. package/apps/control-plane/test/dashboard-client.spec.ts +948 -0
  194. package/apps/control-plane/test/dashboard-command.spec.ts +138 -6
  195. package/apps/control-plane/test/dashboard-runtime-runner.spec.ts +1550 -0
  196. package/apps/control-plane/test/dashboard-runtime.spec.ts +138 -0
  197. package/apps/control-plane/test/dashboard-ui-utils.spec.ts +56 -12
  198. package/apps/control-plane/test/dependency-scheduler.spec.ts +7 -1
  199. package/apps/control-plane/test/env-file.spec.ts +76 -0
  200. package/apps/control-plane/test/execution-control-service.spec.ts +535 -0
  201. package/apps/control-plane/test/execution-enrollment-service.spec.ts +648 -0
  202. package/apps/control-plane/test/feature-lifecycle.spec.ts +126 -0
  203. package/apps/control-plane/test/feature-resume-phase.spec.ts +164 -0
  204. package/apps/control-plane/test/feature-send-message-service.spec.ts +161 -0
  205. package/apps/control-plane/test/feature-state-service.spec.ts +295 -0
  206. package/apps/control-plane/test/fs.spec.ts +80 -0
  207. package/apps/control-plane/test/gate-freshness.spec.ts +590 -0
  208. package/apps/control-plane/test/gate-log-extractor.spec.ts +170 -0
  209. package/apps/control-plane/test/gates.spec.ts +108 -0
  210. package/apps/control-plane/test/git-reconciliation-service.spec.ts +2307 -0
  211. package/apps/control-plane/test/helpers.ts +65 -0
  212. package/apps/control-plane/test/incremental-gates.spec.ts +271 -0
  213. package/apps/control-plane/test/index-normalizer.spec.ts +98 -0
  214. package/apps/control-plane/test/init-wizard.spec.ts +17 -0
  215. package/apps/control-plane/test/intake-artifacts.spec.ts +203 -0
  216. package/apps/control-plane/test/intake-service.spec.ts +3176 -0
  217. package/apps/control-plane/test/kernel-collision-replay.spec.ts +3 -2
  218. package/apps/control-plane/test/kernel-tool-executor.spec.ts +77 -0
  219. package/apps/control-plane/test/kernel-tool-wiring.spec.ts +279 -0
  220. package/apps/control-plane/test/kernel.branches.spec.ts +15 -2
  221. package/apps/control-plane/test/kernel.coverage.spec.ts +7 -3
  222. package/apps/control-plane/test/kernel.coverage2.spec.ts +731 -2
  223. package/apps/control-plane/test/kernel.spec.ts +464 -2
  224. package/apps/control-plane/test/mainline-conflict.spec.ts +66 -0
  225. package/apps/control-plane/test/mcp-helpers.spec.ts +79 -0
  226. package/apps/control-plane/test/mcp.spec.ts +177 -13
  227. package/apps/control-plane/test/merge-command-handler.spec.ts +531 -0
  228. package/apps/control-plane/test/merge-service.spec.ts +570 -4
  229. package/apps/control-plane/test/notifier-service.spec.ts +26 -0
  230. package/apps/control-plane/test/organizer-enrollment-scheduler.spec.ts +340 -0
  231. package/apps/control-plane/test/organizer-ordering-artifact.spec.ts +95 -0
  232. package/apps/control-plane/test/organizer-sidecar-service.spec.ts +468 -0
  233. package/apps/control-plane/test/output-loop-detector.spec.ts +6 -0
  234. package/apps/control-plane/test/path-layout.spec.ts +70 -0
  235. package/apps/control-plane/test/path-normalizers.spec.ts +41 -0
  236. package/apps/control-plane/test/performance-analytics.spec.ts +124 -0
  237. package/apps/control-plane/test/plan-conformance-scorer.spec.ts +53 -0
  238. package/apps/control-plane/test/plan-service.spec.ts +686 -4
  239. package/apps/control-plane/test/planning-wave-executor.spec.ts +3272 -86
  240. package/apps/control-plane/test/policy-loader-service.spec.ts +5 -0
  241. package/apps/control-plane/test/prompt-overlay.spec.ts +65 -0
  242. package/apps/control-plane/test/provider-command-runner-epipe.spec.ts +64 -0
  243. package/apps/control-plane/test/providers/api-worker-provider.spec.ts +129 -0
  244. package/apps/control-plane/test/providers/cli-worker-provider.spec.ts +148 -0
  245. package/apps/control-plane/test/providers/usage-types.spec.ts +98 -0
  246. package/apps/control-plane/test/providers.spec.ts +293 -16
  247. package/apps/control-plane/test/question-command-handlers.spec.ts +156 -0
  248. package/apps/control-plane/test/question-service.spec.ts +1119 -0
  249. package/apps/control-plane/test/reactions.spec.ts +114 -0
  250. package/apps/control-plane/test/replay-command-handler.spec.ts +144 -0
  251. package/apps/control-plane/test/replay-timeline-service.spec.ts +459 -0
  252. package/apps/control-plane/test/response.spec.ts +31 -0
  253. package/apps/control-plane/test/resume-command.spec.ts +786 -9
  254. package/apps/control-plane/test/retry-resume-decision.spec.ts +133 -0
  255. package/apps/control-plane/test/rollback-command-handler.spec.ts +334 -0
  256. package/apps/control-plane/test/rollback-command.spec.ts +120 -0
  257. package/apps/control-plane/test/run-coordinator.spec.ts +3141 -364
  258. package/apps/control-plane/test/schemas/state.schema.spec.ts +71 -0
  259. package/apps/control-plane/test/service-retry-paths.spec.ts +112 -0
  260. package/apps/control-plane/test/services.spec.ts +472 -2
  261. package/apps/control-plane/test/session-management.spec.ts +346 -1
  262. package/apps/control-plane/test/spec-ingestion.spec.ts +102 -28
  263. package/apps/control-plane/test/spec-preparation.spec.ts +182 -0
  264. package/apps/control-plane/test/supervisor-collaborators.spec.ts +191 -3
  265. package/apps/control-plane/test/supervisor.calltool.spec.ts +198 -0
  266. package/apps/control-plane/test/supervisor.spec.ts +95 -16
  267. package/apps/control-plane/test/supervisor.unit.spec.ts +385 -18
  268. package/apps/control-plane/test/tool-runtime.spec.ts +122 -0
  269. package/apps/control-plane/test/worker-decision-loop.spec.ts +3479 -476
  270. package/apps/control-plane/test/worker-execution-policy.spec.ts +1416 -6
  271. package/apps/control-plane/test/worker-provider-adapters.spec.ts +1894 -37
  272. package/apps/control-plane/test/worker-provider-factory.spec.ts +81 -0
  273. package/apps/control-plane/test/worktree-watchdog-service.spec.ts +125 -0
  274. package/apps/control-plane/vitest.config.ts +5 -0
  275. package/config/agentic/orchestrator/agents.yaml +23 -2
  276. package/config/agentic/orchestrator/gates.yaml +24 -7
  277. package/config/agentic/orchestrator/policy.yaml +23 -1
  278. package/config/agentic/orchestrator/prompts/builder.system.md +69 -20
  279. package/config/agentic/orchestrator/prompts/organizer.system.md +85 -0
  280. package/config/agentic/orchestrator/prompts/overrides/builder.claude.md +28 -0
  281. package/config/agentic/orchestrator/prompts/overrides/builder.codex.md +28 -0
  282. package/config/agentic/orchestrator/prompts/overrides/planner.claude.md +20 -0
  283. package/config/agentic/orchestrator/prompts/overrides/planner.codex.md +20 -0
  284. package/config/agentic/orchestrator/prompts/planner-intake.system.md +149 -0
  285. package/config/agentic/orchestrator/prompts/planner.system.md +113 -40
  286. package/config/agentic/orchestrator/prompts/qa.system.md +75 -18
  287. package/config/agentic/orchestrator/prompts/reconciler.system.md +119 -0
  288. package/dist/apps/control-plane/application/kernel-tool-wiring.d.ts +26 -2
  289. package/dist/apps/control-plane/application/kernel-tool-wiring.js +40 -2
  290. package/dist/apps/control-plane/application/kernel-tool-wiring.js.map +1 -1
  291. package/dist/apps/control-plane/application/services/activity-monitor-service.js +37 -1
  292. package/dist/apps/control-plane/application/services/activity-monitor-service.js.map +1 -1
  293. package/dist/apps/control-plane/application/services/bootstrap-manifest-generator-service.d.ts +4 -0
  294. package/dist/apps/control-plane/application/services/bootstrap-manifest-generator-service.js +188 -0
  295. package/dist/apps/control-plane/application/services/bootstrap-manifest-generator-service.js.map +1 -0
  296. package/dist/apps/control-plane/application/services/checkpoint-service.d.ts +5 -0
  297. package/dist/apps/control-plane/application/services/checkpoint-service.js +69 -24
  298. package/dist/apps/control-plane/application/services/checkpoint-service.js.map +1 -1
  299. package/dist/apps/control-plane/application/services/collision-override-service.d.ts +139 -0
  300. package/dist/apps/control-plane/application/services/collision-override-service.js +568 -0
  301. package/dist/apps/control-plane/application/services/collision-override-service.js.map +1 -0
  302. package/dist/apps/control-plane/application/services/collision-queue-service.d.ts +15 -0
  303. package/dist/apps/control-plane/application/services/collision-queue-service.js +92 -33
  304. package/dist/apps/control-plane/application/services/collision-queue-service.js.map +1 -1
  305. package/dist/apps/control-plane/application/services/cost-tracking-service.d.ts +11 -0
  306. package/dist/apps/control-plane/application/services/cost-tracking-service.js +75 -0
  307. package/dist/apps/control-plane/application/services/cost-tracking-service.js.map +1 -1
  308. package/dist/apps/control-plane/application/services/execution-control-service.d.ts +75 -0
  309. package/dist/apps/control-plane/application/services/execution-control-service.js +421 -0
  310. package/dist/apps/control-plane/application/services/execution-control-service.js.map +1 -0
  311. package/dist/apps/control-plane/application/services/feature-deletion-service.d.ts +1 -0
  312. package/dist/apps/control-plane/application/services/feature-deletion-service.js +23 -1
  313. package/dist/apps/control-plane/application/services/feature-deletion-service.js.map +1 -1
  314. package/dist/apps/control-plane/application/services/feature-lifecycle-service.d.ts +24 -1
  315. package/dist/apps/control-plane/application/services/feature-lifecycle-service.js +132 -3
  316. package/dist/apps/control-plane/application/services/feature-lifecycle-service.js.map +1 -1
  317. package/dist/apps/control-plane/application/services/feature-send-message-service.js +16 -8
  318. package/dist/apps/control-plane/application/services/feature-send-message-service.js.map +1 -1
  319. package/dist/apps/control-plane/application/services/feature-state-service.d.ts +36 -0
  320. package/dist/apps/control-plane/application/services/feature-state-service.js +163 -6
  321. package/dist/apps/control-plane/application/services/feature-state-service.js.map +1 -1
  322. package/dist/apps/control-plane/application/services/gate-service.d.ts +2 -1
  323. package/dist/apps/control-plane/application/services/gate-service.js +95 -5
  324. package/dist/apps/control-plane/application/services/gate-service.js.map +1 -1
  325. package/dist/apps/control-plane/application/services/git-reconciliation-service.d.ts +92 -0
  326. package/dist/apps/control-plane/application/services/git-reconciliation-service.js +1097 -0
  327. package/dist/apps/control-plane/application/services/git-reconciliation-service.js.map +1 -0
  328. package/dist/apps/control-plane/application/services/intake-service.d.ts +63 -0
  329. package/dist/apps/control-plane/application/services/intake-service.js +1050 -0
  330. package/dist/apps/control-plane/application/services/intake-service.js.map +1 -0
  331. package/dist/apps/control-plane/application/services/merge-service.d.ts +5 -1
  332. package/dist/apps/control-plane/application/services/merge-service.js +233 -18
  333. package/dist/apps/control-plane/application/services/merge-service.js.map +1 -1
  334. package/dist/apps/control-plane/application/services/notifier-service.d.ts +1 -1
  335. package/dist/apps/control-plane/application/services/notifier-service.js +1 -0
  336. package/dist/apps/control-plane/application/services/notifier-service.js.map +1 -1
  337. package/dist/apps/control-plane/application/services/performance-analytics-service.d.ts +11 -0
  338. package/dist/apps/control-plane/application/services/performance-analytics-service.js +59 -0
  339. package/dist/apps/control-plane/application/services/performance-analytics-service.js.map +1 -1
  340. package/dist/apps/control-plane/application/services/plan-service.d.ts +5 -0
  341. package/dist/apps/control-plane/application/services/plan-service.js +254 -15
  342. package/dist/apps/control-plane/application/services/plan-service.js.map +1 -1
  343. package/dist/apps/control-plane/application/services/question-service.d.ts +72 -0
  344. package/dist/apps/control-plane/application/services/question-service.js +507 -0
  345. package/dist/apps/control-plane/application/services/question-service.js.map +1 -0
  346. package/dist/apps/control-plane/application/services/reactions-service.d.ts +2 -0
  347. package/dist/apps/control-plane/application/services/reactions-service.js +60 -17
  348. package/dist/apps/control-plane/application/services/reactions-service.js.map +1 -1
  349. package/dist/apps/control-plane/application/services/replay-timeline-service.d.ts +39 -0
  350. package/dist/apps/control-plane/application/services/replay-timeline-service.js +205 -0
  351. package/dist/apps/control-plane/application/services/replay-timeline-service.js.map +1 -0
  352. package/dist/apps/control-plane/application/services/reporting-service.d.ts +59 -0
  353. package/dist/apps/control-plane/application/services/reporting-service.js +121 -9
  354. package/dist/apps/control-plane/application/services/reporting-service.js.map +1 -1
  355. package/dist/apps/control-plane/application/services/run-lease-service.d.ts +20 -0
  356. package/dist/apps/control-plane/application/services/run-lease-service.js +81 -4
  357. package/dist/apps/control-plane/application/services/run-lease-service.js.map +1 -1
  358. package/dist/apps/control-plane/application/services/worktree-watchdog-service.d.ts +10 -0
  359. package/dist/apps/control-plane/application/services/worktree-watchdog-service.js +65 -8
  360. package/dist/apps/control-plane/application/services/worktree-watchdog-service.js.map +1 -1
  361. package/dist/apps/control-plane/application/tools/tool-metadata.js +7 -0
  362. package/dist/apps/control-plane/application/tools/tool-metadata.js.map +1 -1
  363. package/dist/apps/control-plane/application/usage-types.d.ts +65 -0
  364. package/dist/apps/control-plane/application/usage-types.js +75 -0
  365. package/dist/apps/control-plane/application/usage-types.js.map +1 -0
  366. package/dist/apps/control-plane/cli/add-command-handler.d.ts +18 -0
  367. package/dist/apps/control-plane/cli/add-command-handler.js +110 -0
  368. package/dist/apps/control-plane/cli/add-command-handler.js.map +1 -0
  369. package/dist/apps/control-plane/cli/answer-command-handler.d.ts +8 -0
  370. package/dist/apps/control-plane/cli/answer-command-handler.js +96 -0
  371. package/dist/apps/control-plane/cli/answer-command-handler.js.map +1 -0
  372. package/dist/apps/control-plane/cli/attach-command-handler.js +8 -3
  373. package/dist/apps/control-plane/cli/attach-command-handler.js.map +1 -1
  374. package/dist/apps/control-plane/cli/cli-argument-parser.js +131 -11
  375. package/dist/apps/control-plane/cli/cli-argument-parser.js.map +1 -1
  376. package/dist/apps/control-plane/cli/collision-command-handler.d.ts +8 -0
  377. package/dist/apps/control-plane/cli/collision-command-handler.js +90 -0
  378. package/dist/apps/control-plane/cli/collision-command-handler.js.map +1 -0
  379. package/dist/apps/control-plane/cli/command-catalog.d.ts +21 -0
  380. package/dist/apps/control-plane/cli/command-catalog.js +416 -0
  381. package/dist/apps/control-plane/cli/command-catalog.js.map +1 -0
  382. package/dist/apps/control-plane/cli/complete-command-handler.d.ts +15 -0
  383. package/dist/apps/control-plane/cli/complete-command-handler.js +26 -0
  384. package/dist/apps/control-plane/cli/complete-command-handler.js.map +1 -0
  385. package/dist/apps/control-plane/cli/completion-command-handler.d.ts +8 -0
  386. package/dist/apps/control-plane/cli/completion-command-handler.js +20 -0
  387. package/dist/apps/control-plane/cli/completion-command-handler.js.map +1 -0
  388. package/dist/apps/control-plane/cli/completion-resolver.d.ts +1 -0
  389. package/dist/apps/control-plane/cli/completion-resolver.js +250 -0
  390. package/dist/apps/control-plane/cli/completion-resolver.js.map +1 -0
  391. package/dist/apps/control-plane/cli/completion-shell-renderer.d.ts +3 -0
  392. package/dist/apps/control-plane/cli/completion-shell-renderer.js +53 -0
  393. package/dist/apps/control-plane/cli/completion-shell-renderer.js.map +1 -0
  394. package/dist/apps/control-plane/cli/dashboard-command-handler.d.ts +1 -0
  395. package/dist/apps/control-plane/cli/dashboard-command-handler.js +83 -1
  396. package/dist/apps/control-plane/cli/dashboard-command-handler.js.map +1 -1
  397. package/dist/apps/control-plane/cli/dashboard-runtime-runner.d.ts +81 -0
  398. package/dist/apps/control-plane/cli/dashboard-runtime-runner.js +724 -0
  399. package/dist/apps/control-plane/cli/dashboard-runtime-runner.js.map +1 -0
  400. package/dist/apps/control-plane/cli/dashboard-runtime.d.ts +1 -0
  401. package/dist/apps/control-plane/cli/dashboard-runtime.js +26 -0
  402. package/dist/apps/control-plane/cli/dashboard-runtime.js.map +1 -0
  403. package/dist/apps/control-plane/cli/help-command-handler.js +13 -172
  404. package/dist/apps/control-plane/cli/help-command-handler.js.map +1 -1
  405. package/dist/apps/control-plane/cli/init-command-handler.js +51 -6
  406. package/dist/apps/control-plane/cli/init-command-handler.js.map +1 -1
  407. package/dist/apps/control-plane/cli/merge-command-handler.d.ts +8 -0
  408. package/dist/apps/control-plane/cli/merge-command-handler.js +139 -0
  409. package/dist/apps/control-plane/cli/merge-command-handler.js.map +1 -0
  410. package/dist/apps/control-plane/cli/questions-command-handler.d.ts +8 -0
  411. package/dist/apps/control-plane/cli/questions-command-handler.js +59 -0
  412. package/dist/apps/control-plane/cli/questions-command-handler.js.map +1 -0
  413. package/dist/apps/control-plane/cli/replay-command-handler.d.ts +15 -0
  414. package/dist/apps/control-plane/cli/replay-command-handler.js +55 -0
  415. package/dist/apps/control-plane/cli/replay-command-handler.js.map +1 -0
  416. package/dist/apps/control-plane/cli/resume-command-handler.d.ts +2 -0
  417. package/dist/apps/control-plane/cli/resume-command-handler.js +196 -19
  418. package/dist/apps/control-plane/cli/resume-command-handler.js.map +1 -1
  419. package/dist/apps/control-plane/cli/retry-command-handler.js +202 -16
  420. package/dist/apps/control-plane/cli/retry-command-handler.js.map +1 -1
  421. package/dist/apps/control-plane/cli/retry-resume-decision.d.ts +26 -0
  422. package/dist/apps/control-plane/cli/retry-resume-decision.js +61 -0
  423. package/dist/apps/control-plane/cli/retry-resume-decision.js.map +1 -0
  424. package/dist/apps/control-plane/cli/rollback-command-handler.js +3 -2
  425. package/dist/apps/control-plane/cli/rollback-command-handler.js.map +1 -1
  426. package/dist/apps/control-plane/cli/run-command-handler.js +26 -2
  427. package/dist/apps/control-plane/cli/run-command-handler.js.map +1 -1
  428. package/dist/apps/control-plane/cli/spec-ingestion-service.d.ts +2 -0
  429. package/dist/apps/control-plane/cli/spec-ingestion-service.js +37 -48
  430. package/dist/apps/control-plane/cli/spec-ingestion-service.js.map +1 -1
  431. package/dist/apps/control-plane/cli/spec-preparation.d.ts +14 -0
  432. package/dist/apps/control-plane/cli/spec-preparation.js +81 -0
  433. package/dist/apps/control-plane/cli/spec-preparation.js.map +1 -0
  434. package/dist/apps/control-plane/cli/spec-utils.d.ts +4 -0
  435. package/dist/apps/control-plane/cli/spec-utils.js +70 -11
  436. package/dist/apps/control-plane/cli/spec-utils.js.map +1 -1
  437. package/dist/apps/control-plane/cli/status-command-handler.js +69 -0
  438. package/dist/apps/control-plane/cli/status-command-handler.js.map +1 -1
  439. package/dist/apps/control-plane/cli/types.d.ts +41 -4
  440. package/dist/apps/control-plane/cli/types.js +9 -1
  441. package/dist/apps/control-plane/cli/types.js.map +1 -1
  442. package/dist/apps/control-plane/core/collisions.d.ts +37 -19
  443. package/dist/apps/control-plane/core/collisions.js +87 -12
  444. package/dist/apps/control-plane/core/collisions.js.map +1 -1
  445. package/dist/apps/control-plane/core/constants.d.ts +17 -1
  446. package/dist/apps/control-plane/core/constants.js +18 -1
  447. package/dist/apps/control-plane/core/constants.js.map +1 -1
  448. package/dist/apps/control-plane/core/error-codes.d.ts +39 -0
  449. package/dist/apps/control-plane/core/error-codes.js +39 -0
  450. package/dist/apps/control-plane/core/error-codes.js.map +1 -1
  451. package/dist/apps/control-plane/core/execution-control.d.ts +45 -0
  452. package/dist/apps/control-plane/core/execution-control.js +2 -0
  453. package/dist/apps/control-plane/core/execution-control.js.map +1 -0
  454. package/dist/apps/control-plane/core/feature-resume-phase.d.ts +3 -0
  455. package/dist/apps/control-plane/core/feature-resume-phase.js +88 -0
  456. package/dist/apps/control-plane/core/feature-resume-phase.js.map +1 -0
  457. package/dist/apps/control-plane/core/gate-freshness.d.ts +48 -0
  458. package/dist/apps/control-plane/core/gate-freshness.js +267 -0
  459. package/dist/apps/control-plane/core/gate-freshness.js.map +1 -0
  460. package/dist/apps/control-plane/core/gate-log-extractor.d.ts +22 -0
  461. package/dist/apps/control-plane/core/gate-log-extractor.js +66 -0
  462. package/dist/apps/control-plane/core/gate-log-extractor.js.map +1 -0
  463. package/dist/apps/control-plane/core/gates.d.ts +11 -2
  464. package/dist/apps/control-plane/core/gates.js +67 -3
  465. package/dist/apps/control-plane/core/gates.js.map +1 -1
  466. package/dist/apps/control-plane/core/intake-artifacts.d.ts +109 -0
  467. package/dist/apps/control-plane/core/intake-artifacts.js +143 -0
  468. package/dist/apps/control-plane/core/intake-artifacts.js.map +1 -0
  469. package/dist/apps/control-plane/core/kernel-types.d.ts +8 -0
  470. package/dist/apps/control-plane/core/kernel.d.ts +256 -8
  471. package/dist/apps/control-plane/core/kernel.js +400 -14
  472. package/dist/apps/control-plane/core/kernel.js.map +1 -1
  473. package/dist/apps/control-plane/core/mainline-conflict.d.ts +7 -0
  474. package/dist/apps/control-plane/core/mainline-conflict.js +20 -0
  475. package/dist/apps/control-plane/core/mainline-conflict.js.map +1 -0
  476. package/dist/apps/control-plane/core/merge-repair.d.ts +35 -0
  477. package/dist/apps/control-plane/core/merge-repair.js +99 -0
  478. package/dist/apps/control-plane/core/merge-repair.js.map +1 -0
  479. package/dist/apps/control-plane/core/path-layout.d.ts +10 -0
  480. package/dist/apps/control-plane/core/path-layout.js +32 -2
  481. package/dist/apps/control-plane/core/path-layout.js.map +1 -1
  482. package/dist/apps/control-plane/core/path-rules.js +9 -3
  483. package/dist/apps/control-plane/core/path-rules.js.map +1 -1
  484. package/dist/apps/control-plane/core/plan-submit-recovery.d.ts +22 -0
  485. package/dist/apps/control-plane/core/plan-submit-recovery.js +78 -0
  486. package/dist/apps/control-plane/core/plan-submit-recovery.js.map +1 -0
  487. package/dist/apps/control-plane/core/questions.d.ts +40 -0
  488. package/dist/apps/control-plane/core/questions.js +2 -0
  489. package/dist/apps/control-plane/core/questions.js.map +1 -0
  490. package/dist/apps/control-plane/core/runtime-sessions.d.ts +4 -0
  491. package/dist/apps/control-plane/core/schemas.d.ts +2 -0
  492. package/dist/apps/control-plane/core/schemas.js +31 -1
  493. package/dist/apps/control-plane/core/schemas.js.map +1 -1
  494. package/dist/apps/control-plane/core/tool-caller.d.ts +18 -1
  495. package/dist/apps/control-plane/core/utils/index-normalizer.js +17 -4
  496. package/dist/apps/control-plane/core/utils/index-normalizer.js.map +1 -1
  497. package/dist/apps/control-plane/core/worktree-diff.d.ts +4 -0
  498. package/dist/apps/control-plane/core/worktree-diff.js +52 -0
  499. package/dist/apps/control-plane/core/worktree-diff.js.map +1 -0
  500. package/dist/apps/control-plane/index.d.ts +10 -2
  501. package/dist/apps/control-plane/index.js +9 -2
  502. package/dist/apps/control-plane/index.js.map +1 -1
  503. package/dist/apps/control-plane/interfaces/cli/bootstrap.js +236 -6
  504. package/dist/apps/control-plane/interfaces/cli/bootstrap.js.map +1 -1
  505. package/dist/apps/control-plane/mcp/kernel-tool-executor.js +16 -0
  506. package/dist/apps/control-plane/mcp/kernel-tool-executor.js.map +1 -1
  507. package/dist/apps/control-plane/mcp/tool-runtime.d.ts +5 -0
  508. package/dist/apps/control-plane/mcp/tool-runtime.js +40 -5
  509. package/dist/apps/control-plane/mcp/tool-runtime.js.map +1 -1
  510. package/dist/apps/control-plane/providers/api-worker-provider.d.ts +2 -2
  511. package/dist/apps/control-plane/providers/api-worker-provider.js +40 -9
  512. package/dist/apps/control-plane/providers/api-worker-provider.js.map +1 -1
  513. package/dist/apps/control-plane/providers/cli-worker-provider.d.ts +59 -3
  514. package/dist/apps/control-plane/providers/cli-worker-provider.js +758 -46
  515. package/dist/apps/control-plane/providers/cli-worker-provider.js.map +1 -1
  516. package/dist/apps/control-plane/providers/output-parsers/generic-output-parser.js +91 -1
  517. package/dist/apps/control-plane/providers/output-parsers/generic-output-parser.js.map +1 -1
  518. package/dist/apps/control-plane/providers/output-parsers/types.d.ts +2 -0
  519. package/dist/apps/control-plane/providers/provider-defaults.d.ts +12 -0
  520. package/dist/apps/control-plane/providers/provider-defaults.js +103 -7
  521. package/dist/apps/control-plane/providers/provider-defaults.js.map +1 -1
  522. package/dist/apps/control-plane/providers/providers.d.ts +50 -4
  523. package/dist/apps/control-plane/providers/providers.js +145 -14
  524. package/dist/apps/control-plane/providers/providers.js.map +1 -1
  525. package/dist/apps/control-plane/providers/worker-provider-factory.d.ts +2 -0
  526. package/dist/apps/control-plane/providers/worker-provider-factory.js +8 -1
  527. package/dist/apps/control-plane/providers/worker-provider-factory.js.map +1 -1
  528. package/dist/apps/control-plane/supervisor/artifact-stager.d.ts +5 -0
  529. package/dist/apps/control-plane/supervisor/artifact-stager.js +45 -0
  530. package/dist/apps/control-plane/supervisor/artifact-stager.js.map +1 -0
  531. package/dist/apps/control-plane/supervisor/build-wave-executor.d.ts +24 -1
  532. package/dist/apps/control-plane/supervisor/build-wave-executor.js +362 -150
  533. package/dist/apps/control-plane/supervisor/build-wave-executor.js.map +1 -1
  534. package/dist/apps/control-plane/supervisor/execution-enrollment-service.d.ts +41 -0
  535. package/dist/apps/control-plane/supervisor/execution-enrollment-service.js +311 -0
  536. package/dist/apps/control-plane/supervisor/execution-enrollment-service.js.map +1 -0
  537. package/dist/apps/control-plane/supervisor/organizer-enrollment-scheduler.d.ts +15 -0
  538. package/dist/apps/control-plane/supervisor/organizer-enrollment-scheduler.js +93 -0
  539. package/dist/apps/control-plane/supervisor/organizer-enrollment-scheduler.js.map +1 -0
  540. package/dist/apps/control-plane/supervisor/organizer-sidecar-service.d.ts +44 -0
  541. package/dist/apps/control-plane/supervisor/organizer-sidecar-service.js +311 -0
  542. package/dist/apps/control-plane/supervisor/organizer-sidecar-service.js.map +1 -0
  543. package/dist/apps/control-plane/supervisor/plan-conformance-scorer.js +2 -5
  544. package/dist/apps/control-plane/supervisor/plan-conformance-scorer.js.map +1 -1
  545. package/dist/apps/control-plane/supervisor/planner-phase.d.ts +3 -0
  546. package/dist/apps/control-plane/supervisor/planner-phase.js +70 -0
  547. package/dist/apps/control-plane/supervisor/planner-phase.js.map +1 -0
  548. package/dist/apps/control-plane/supervisor/planning-wave-executor.d.ts +42 -0
  549. package/dist/apps/control-plane/supervisor/planning-wave-executor.js +753 -55
  550. package/dist/apps/control-plane/supervisor/planning-wave-executor.js.map +1 -1
  551. package/dist/apps/control-plane/supervisor/prompt-bundle-loader.js +19 -1
  552. package/dist/apps/control-plane/supervisor/prompt-bundle-loader.js.map +1 -1
  553. package/dist/apps/control-plane/supervisor/qa-wave-executor.d.ts +21 -0
  554. package/dist/apps/control-plane/supervisor/qa-wave-executor.js +287 -156
  555. package/dist/apps/control-plane/supervisor/qa-wave-executor.js.map +1 -1
  556. package/dist/apps/control-plane/supervisor/run-coordinator.d.ts +33 -1
  557. package/dist/apps/control-plane/supervisor/run-coordinator.js +631 -39
  558. package/dist/apps/control-plane/supervisor/run-coordinator.js.map +1 -1
  559. package/dist/apps/control-plane/supervisor/runtime.d.ts +84 -0
  560. package/dist/apps/control-plane/supervisor/runtime.js +393 -3
  561. package/dist/apps/control-plane/supervisor/runtime.js.map +1 -1
  562. package/dist/apps/control-plane/supervisor/session-orchestrator.d.ts +54 -0
  563. package/dist/apps/control-plane/supervisor/session-orchestrator.js +176 -1
  564. package/dist/apps/control-plane/supervisor/session-orchestrator.js.map +1 -1
  565. package/dist/apps/control-plane/supervisor/types.d.ts +142 -1
  566. package/dist/apps/control-plane/supervisor/types.js.map +1 -1
  567. package/dist/apps/control-plane/supervisor/worker-decision-loop.d.ts +68 -2
  568. package/dist/apps/control-plane/supervisor/worker-decision-loop.js +723 -89
  569. package/dist/apps/control-plane/supervisor/worker-decision-loop.js.map +1 -1
  570. package/docs/core/ARCHITECTURE.md +227 -0
  571. package/docs/core/DECISIONS.md +94 -0
  572. package/docs/core/DOMAIN-LOGIC.md +60 -0
  573. package/docs/core/PATTERNS.md +201 -0
  574. package/docs/core/TROUBLESHOOTING.md +347 -0
  575. package/docs/core/intentgraph-dependencies.json +39860 -0
  576. package/docs/core/intentgraph.index.json +46580 -0
  577. package/docs/plans/2026-03-10-gate-failure-targeted-repair-design.md +224 -0
  578. package/docs/plans/2026-03-10-gate-failure-targeted-repair.md +1032 -0
  579. package/docs/superpowers/plans/2026-03-16-provider-cli-config.md +743 -0
  580. package/docs/superpowers/plans/2026-03-23-reconcile-divergence-fix.md +777 -0
  581. package/docs/superpowers/plans/2026-03-28-ordering-agent-implementation.md +1754 -0
  582. package/docs/superpowers/plans/2026-03-29-drop-zone-and-provider-optimization.md +1108 -0
  583. package/docs/superpowers/plans/2026-03-29-merge-target-feature-branch.md +685 -0
  584. package/docs/superpowers/plans/2026-03-29-organizer-sidecar-runtime-loop.md +1289 -0
  585. package/docs/superpowers/specs/2026-03-23-reconcile-divergence-fix-design.md +118 -0
  586. package/docs/superpowers/specs/2026-03-28-ordering-agent-spec-audit-design.md +50 -0
  587. package/docs/superpowers/specs/2026-03-29-drop-zone-and-provider-optimization-design.md +254 -0
  588. package/docs/superpowers/specs/2026-03-29-merge-target-feature-branch-design.md +152 -0
  589. package/docs/superpowers/specs/2026-03-29-organizer-sidecar-runtime-loop-design.md +225 -0
  590. package/package.json +3 -2
  591. package/packages/web-dashboard/package.json +2 -1
  592. package/packages/web-dashboard/src/app/analytics/page.tsx +36 -2
  593. package/packages/web-dashboard/src/app/api/actions/route.ts +274 -63
  594. package/packages/web-dashboard/src/app/api/actions/status/route.ts +35 -0
  595. package/packages/web-dashboard/src/app/api/analytics/provider/route.ts +18 -0
  596. package/packages/web-dashboard/src/app/api/collisions/approve/route.ts +58 -0
  597. package/packages/web-dashboard/src/app/api/features/[id]/checkpoint-diff/route.ts +36 -0
  598. package/packages/web-dashboard/src/app/api/features/[id]/checkpoints/route.ts +29 -0
  599. package/packages/web-dashboard/src/app/api/features/[id]/conflicts/abort/route.ts +29 -0
  600. package/packages/web-dashboard/src/app/api/features/[id]/conflicts/files/route.ts +30 -0
  601. package/packages/web-dashboard/src/app/api/features/[id]/conflicts/resolve/route.ts +51 -0
  602. package/packages/web-dashboard/src/app/api/features/[id]/conflicts/route.ts +75 -0
  603. package/packages/web-dashboard/src/app/api/features/[id]/diff/route.ts +16 -2
  604. package/packages/web-dashboard/src/app/api/features/[id]/files/route.ts +26 -0
  605. package/packages/web-dashboard/src/app/api/features/[id]/gate-history/route.ts +27 -0
  606. package/packages/web-dashboard/src/app/api/features/[id]/genealogy/route.ts +26 -0
  607. package/packages/web-dashboard/src/app/api/features/[id]/history/run/[runId]/route.ts +20 -0
  608. package/packages/web-dashboard/src/app/api/features/[id]/history/runs/route.ts +34 -0
  609. package/packages/web-dashboard/src/app/api/features/[id]/intake-workspace/route.ts +20 -0
  610. package/packages/web-dashboard/src/app/api/features/[id]/live-output/route.ts +74 -0
  611. package/packages/web-dashboard/src/app/api/features/[id]/plan/amend/route.ts +21 -0
  612. package/packages/web-dashboard/src/app/api/features/[id]/plan-progress/route.ts +20 -0
  613. package/packages/web-dashboard/src/app/api/features/[id]/planner-artifacts/[artifact]/route.ts +78 -0
  614. package/packages/web-dashboard/src/app/api/features/[id]/planner-lifecycle/route.ts +20 -0
  615. package/packages/web-dashboard/src/app/api/features/[id]/planning-workspace/route.ts +20 -0
  616. package/packages/web-dashboard/src/app/api/features/[id]/questions/[questionId]/answer/route.ts +27 -0
  617. package/packages/web-dashboard/src/app/api/features/[id]/questions/route.ts +18 -0
  618. package/packages/web-dashboard/src/app/api/features/[id]/review/route.ts +14 -7
  619. package/packages/web-dashboard/src/app/api/features/[id]/route.ts +57 -2
  620. package/packages/web-dashboard/src/app/api/features/[id]/spec/route.ts +30 -0
  621. package/packages/web-dashboard/src/app/api/features/[id]/triage/route.ts +83 -0
  622. package/packages/web-dashboard/src/app/api/features/[id]/worker-events/route.ts +40 -0
  623. package/packages/web-dashboard/src/app/api/launch/preview/route.ts +86 -0
  624. package/packages/web-dashboard/src/app/api/launch/submit/route.ts +180 -0
  625. package/packages/web-dashboard/src/app/api/mainline/status/route.ts +74 -0
  626. package/packages/web-dashboard/src/app/api/merge-queue/route.ts +13 -0
  627. package/packages/web-dashboard/src/app/api/policy/budget/route.ts +14 -0
  628. package/packages/web-dashboard/src/app/api/projects/route.ts +11 -7
  629. package/packages/web-dashboard/src/app/api/reconciler/queue/route.ts +47 -0
  630. package/packages/web-dashboard/src/app/api/run/route.ts +26 -2
  631. package/packages/web-dashboard/src/app/api/runtime/events/route.ts +227 -0
  632. package/packages/web-dashboard/src/app/api/runtime/operations/route.ts +269 -0
  633. package/packages/web-dashboard/src/app/api/runtime/questions/route.ts +11 -0
  634. package/packages/web-dashboard/src/app/api/runtime/runs/route.ts +80 -0
  635. package/packages/web-dashboard/src/app/api/status/route.ts +4 -2
  636. package/packages/web-dashboard/src/app/feature/[id]/page.tsx +32 -42
  637. package/packages/web-dashboard/src/app/globals.css +34 -3
  638. package/packages/web-dashboard/src/app/launch/page.tsx +357 -0
  639. package/packages/web-dashboard/src/app/layout.tsx +23 -1
  640. package/packages/web-dashboard/src/app/page.tsx +263 -272
  641. package/packages/web-dashboard/src/components/dashboard/attention-strip.tsx +52 -0
  642. package/packages/web-dashboard/src/components/dashboard/collision-approval-drawer.tsx +185 -0
  643. package/packages/web-dashboard/src/components/dashboard/command-center-header.tsx +102 -0
  644. package/packages/web-dashboard/src/components/dashboard/mainline-status-banner.tsx +84 -0
  645. package/packages/web-dashboard/src/components/dashboard/merged-archive.tsx +36 -0
  646. package/packages/web-dashboard/src/components/dashboard/prioritized-queues.tsx +98 -0
  647. package/packages/web-dashboard/src/components/dashboard/reconciler-queue-card.tsx +115 -0
  648. package/packages/web-dashboard/src/components/dashboard/secondary-diagnostics-rail.tsx +48 -0
  649. package/packages/web-dashboard/src/components/dashboard/task-filter-bar.tsx +74 -0
  650. package/packages/web-dashboard/src/components/dashboard/triage-drawer.tsx +455 -0
  651. package/packages/web-dashboard/src/components/diff-viewer.tsx +19 -3
  652. package/packages/web-dashboard/src/components/evidence-viewer.tsx +65 -51
  653. package/packages/web-dashboard/src/components/feature-card.tsx +90 -7
  654. package/packages/web-dashboard/src/components/feature-cost-panel.tsx +112 -11
  655. package/packages/web-dashboard/src/components/feature-list-view.tsx +25 -4
  656. package/packages/web-dashboard/src/components/features/runtime-inspector/EventsTimelineView.tsx +260 -0
  657. package/packages/web-dashboard/src/components/features/runtime-inspector/OperationsListView.tsx +172 -0
  658. package/packages/web-dashboard/src/components/features/runtime-inspector/RuntimeInspectorPanel.tsx +896 -0
  659. package/packages/web-dashboard/src/components/filter-bar.tsx +7 -39
  660. package/packages/web-dashboard/src/components/focus/ActionableRiskList.tsx +46 -0
  661. package/packages/web-dashboard/src/components/focus/AgentRolePerformanceCard.tsx +200 -0
  662. package/packages/web-dashboard/src/components/focus/BlockedGuidanceBanner.tsx +149 -0
  663. package/packages/web-dashboard/src/components/focus/CheckpointInspector.tsx +123 -0
  664. package/packages/web-dashboard/src/components/focus/CheckpointRail.tsx +118 -0
  665. package/packages/web-dashboard/src/components/focus/CheckpointScrubber.tsx +249 -0
  666. package/packages/web-dashboard/src/components/focus/CollisionApprovalBanner.tsx +192 -0
  667. package/packages/web-dashboard/src/components/focus/CollisionRadar.tsx +136 -0
  668. package/packages/web-dashboard/src/components/focus/ConflictStatusCard.tsx +52 -0
  669. package/packages/web-dashboard/src/components/focus/ContextSidebar.tsx +108 -0
  670. package/packages/web-dashboard/src/components/focus/DiagnosisPanel.tsx +68 -0
  671. package/packages/web-dashboard/src/components/focus/FeatureDecisionBanner.tsx +68 -0
  672. package/packages/web-dashboard/src/components/focus/FeatureQuestionAnswerPanel.tsx +167 -0
  673. package/packages/web-dashboard/src/components/focus/FocusHeader.tsx +54 -0
  674. package/packages/web-dashboard/src/components/focus/FocusLayout.tsx +283 -0
  675. package/packages/web-dashboard/src/components/focus/GateFlakinessSummary.tsx +144 -0
  676. package/packages/web-dashboard/src/components/focus/GenealogyTree.tsx +34 -0
  677. package/packages/web-dashboard/src/components/focus/HeroBlock.tsx +67 -0
  678. package/packages/web-dashboard/src/components/focus/LiveAgentConsole.tsx +277 -0
  679. package/packages/web-dashboard/src/components/focus/MergeQueueCard.tsx +78 -0
  680. package/packages/web-dashboard/src/components/focus/OperationalSummaryCard.tsx +227 -0
  681. package/packages/web-dashboard/src/components/focus/PinnedActions.tsx +96 -0
  682. package/packages/web-dashboard/src/components/focus/PlanAmendmentPanel.tsx +250 -0
  683. package/packages/web-dashboard/src/components/focus/PlanProgressPanel.tsx +133 -0
  684. package/packages/web-dashboard/src/components/focus/PlannerArtifactViewer.tsx +158 -0
  685. package/packages/web-dashboard/src/components/focus/PlannerLifecycleHeader.tsx +141 -0
  686. package/packages/web-dashboard/src/components/focus/ProgressSnapshotCard.tsx +113 -0
  687. package/packages/web-dashboard/src/components/focus/RecentMaterialChanges.tsx +69 -0
  688. package/packages/web-dashboard/src/components/focus/RoleLogViewer.tsx +436 -0
  689. package/packages/web-dashboard/src/components/focus/RunHistoryBrowser.tsx +62 -0
  690. package/packages/web-dashboard/src/components/focus/SpecViewer.tsx +172 -0
  691. package/packages/web-dashboard/src/components/focus/TabBar.tsx +33 -0
  692. package/packages/web-dashboard/src/components/focus/UsageBurnChart.tsx +212 -0
  693. package/packages/web-dashboard/src/components/focus/VerificationSummaryCard.tsx +122 -0
  694. package/packages/web-dashboard/src/components/focus/tabs/ChangesTab.tsx +325 -0
  695. package/packages/web-dashboard/src/components/focus/tabs/ConflictsTab.tsx +395 -0
  696. package/packages/web-dashboard/src/components/focus/tabs/GatesQaTab.tsx +38 -0
  697. package/packages/web-dashboard/src/components/focus/tabs/HistoryTab.tsx +213 -0
  698. package/packages/web-dashboard/src/components/focus/tabs/IntakeTab.tsx +429 -0
  699. package/packages/web-dashboard/src/components/focus/tabs/OverviewTab.tsx +217 -0
  700. package/packages/web-dashboard/src/components/focus/tabs/PlanningTab.tsx +390 -0
  701. package/packages/web-dashboard/src/components/focus/tabs/ReviewTab.tsx +497 -0
  702. package/packages/web-dashboard/src/components/focus/tabs/RuntimeTab.tsx +213 -0
  703. package/packages/web-dashboard/src/components/focus/tabs/TranscriptTab.tsx +315 -0
  704. package/packages/web-dashboard/src/components/gate-results.tsx +2 -2
  705. package/packages/web-dashboard/src/components/human-input-panel.tsx +33 -57
  706. package/packages/web-dashboard/src/components/kanban-board.tsx +4 -0
  707. package/packages/web-dashboard/src/components/launch/launch-draft-card.tsx +131 -0
  708. package/packages/web-dashboard/src/components/plan-viewer.tsx +147 -69
  709. package/packages/web-dashboard/src/components/quick-launch-panel.tsx +20 -47
  710. package/packages/web-dashboard/src/components/summary-bar.tsx +30 -76
  711. package/packages/web-dashboard/src/lib/aop-client.ts +2484 -36
  712. package/packages/web-dashboard/src/lib/blocked-state-guidance.ts +475 -0
  713. package/packages/web-dashboard/src/lib/collision-radar.ts +136 -0
  714. package/packages/web-dashboard/src/lib/dashboard-action-states.ts +204 -0
  715. package/packages/web-dashboard/src/lib/dashboard-runtime-client.ts +439 -0
  716. package/packages/web-dashboard/src/lib/dashboard-utils.ts +179 -18
  717. package/packages/web-dashboard/src/lib/drop-zone-utils.ts +92 -0
  718. package/packages/web-dashboard/src/lib/focus-detail-derivations.ts +958 -0
  719. package/packages/web-dashboard/src/lib/focus-view.ts +300 -0
  720. package/packages/web-dashboard/src/lib/health-diagnosis.ts +356 -0
  721. package/packages/web-dashboard/src/lib/launch-contracts.ts +77 -0
  722. package/packages/web-dashboard/src/lib/launch-markdown.ts +107 -0
  723. package/packages/web-dashboard/src/lib/launch-page-preview.ts +89 -0
  724. package/packages/web-dashboard/src/lib/live-feed.ts +1 -1
  725. package/packages/web-dashboard/src/lib/multi-project-config.ts +33 -0
  726. package/packages/web-dashboard/src/lib/orchestrator-tools.ts +845 -59
  727. package/packages/web-dashboard/src/lib/planner-workspace.ts +1285 -0
  728. package/packages/web-dashboard/src/lib/review-contracts.ts +5 -3
  729. package/packages/web-dashboard/src/lib/runtime-files.ts +285 -0
  730. package/packages/web-dashboard/src/lib/tool-catalog.ts +51 -0
  731. package/packages/web-dashboard/src/lib/types.ts +731 -3
  732. package/packages/web-dashboard/src/lib/usage-burn.ts +175 -0
  733. package/packages/web-dashboard/src/lib/worktree-diff.ts +128 -0
  734. package/packages/web-dashboard/src/styles/dashboard.module.css +1742 -459
  735. package/packages/web-dashboard/test/api/actions/route.spec.ts +675 -0
  736. package/packages/web-dashboard/test/api/features/diff.route.spec.ts +57 -0
  737. package/packages/web-dashboard/test/api/features/feature.route.spec.ts +99 -0
  738. package/packages/web-dashboard/test/api/features/live-output.route.spec.ts +123 -0
  739. package/packages/web-dashboard/test/api/features/plan-amend.route.spec.ts +95 -0
  740. package/packages/web-dashboard/test/api/features/planner-workspaces.route.spec.ts +162 -0
  741. package/packages/web-dashboard/test/api/features/question-answer.route.spec.ts +99 -0
  742. package/packages/web-dashboard/test/api/features/triage.route.spec.ts +195 -0
  743. package/packages/web-dashboard/test/api/launch/preview.route.spec.ts +149 -0
  744. package/packages/web-dashboard/test/api/launch/submit.route.spec.ts +382 -0
  745. package/packages/web-dashboard/test/api/runtime/events/route.spec.ts +164 -0
  746. package/packages/web-dashboard/test/api/runtime/operations/route.spec.ts +156 -0
  747. package/packages/web-dashboard/test/api/runtime/runs/route.spec.ts +112 -0
  748. package/packages/web-dashboard/test/components/changes-tab.spec.tsx +76 -0
  749. package/packages/web-dashboard/test/components/command-center-root.spec.tsx +87 -0
  750. package/packages/web-dashboard/test/components/diagnosis-panel.spec.tsx +59 -0
  751. package/packages/web-dashboard/test/components/feature-card.spec.tsx +45 -0
  752. package/packages/web-dashboard/test/components/focus-layout.spec.tsx +299 -0
  753. package/packages/web-dashboard/test/components/gate-results.spec.tsx +39 -0
  754. package/packages/web-dashboard/test/components/gates-qa-tab.spec.tsx +118 -0
  755. package/packages/web-dashboard/test/components/human-input-panel.spec.tsx +54 -0
  756. package/packages/web-dashboard/test/components/intake-tab.spec.tsx +210 -0
  757. package/packages/web-dashboard/test/components/kanban-board.spec.tsx +35 -0
  758. package/packages/web-dashboard/test/components/launch-draft-card.spec.tsx +54 -0
  759. package/packages/web-dashboard/test/components/launch-page.spec.tsx +79 -0
  760. package/packages/web-dashboard/test/components/overview-tab.spec.tsx +236 -0
  761. package/packages/web-dashboard/test/components/planning-tab.spec.tsx +202 -0
  762. package/packages/web-dashboard/test/components/review-tab.spec.tsx +169 -0
  763. package/packages/web-dashboard/test/components/role-log-viewer.spec.ts +42 -0
  764. package/packages/web-dashboard/test/components/runtime-inspector.spec.tsx +22 -0
  765. package/packages/web-dashboard/test/components/runtime-tab.spec.tsx +133 -0
  766. package/packages/web-dashboard/test/components/transcript-tab.spec.tsx +46 -0
  767. package/packages/web-dashboard/test/components/triage-drawer.spec.tsx +159 -0
  768. package/packages/web-dashboard/test/lib/aop-client.spec.ts +235 -0
  769. package/packages/web-dashboard/test/lib/dashboard-runtime-client.spec.ts +144 -0
  770. package/packages/web-dashboard/test/lib/focus-detail-derivations.spec.ts +314 -0
  771. package/packages/web-dashboard/test/lib/focus-view.spec.ts +248 -0
  772. package/packages/web-dashboard/test/lib/health-diagnosis.spec.ts +277 -0
  773. package/packages/web-dashboard/test/lib/launch-markdown.spec.ts +36 -0
  774. package/packages/web-dashboard/test/lib/multi-project-config.spec.ts +54 -0
  775. package/packages/web-dashboard/test/lib/orchestrator-tools.spec.ts +352 -0
  776. package/packages/web-dashboard/test/lib/planner-workspace.spec.ts +289 -0
  777. package/packages/web-dashboard/test/lib/worktree-diff.spec.ts +119 -0
  778. package/packages/web-dashboard/vitest.config.ts +2 -0
  779. package/spec-files/completed/agentic_orchestrator_add_feature_to_active_execution_spec.md +557 -0
  780. package/spec-files/completed/agentic_orchestrator_dashboard_command_center_redesign_spec.md +1147 -0
  781. package/spec-files/completed/agentic_orchestrator_execution_mode_spec.md +18 -16
  782. package/spec-files/completed/agentic_orchestrator_feature_focus_view_track_a_spec.md +672 -0
  783. package/spec-files/completed/agentic_orchestrator_feature_focus_view_track_b_spec.md +794 -0
  784. package/spec-files/completed/agentic_orchestrator_feature_focus_view_track_c_decision_centric_remediation_spec.md +1037 -0
  785. package/spec-files/completed/agentic_orchestrator_feature_focus_view_ux_redesign_spec.md +1432 -0
  786. package/spec-files/completed/agentic_orchestrator_focus_plan_tab_intake_planning_workspace_spec.md +921 -0
  787. package/spec-files/completed/agentic_orchestrator_intentional_collision_override_spec.md +584 -0
  788. package/spec-files/completed/agentic_orchestrator_interactive_planning_intake_and_requirements_verification_spec.md +1185 -0
  789. package/spec-files/completed/agentic_orchestrator_reactive_execution_enrollment_spec.md +864 -0
  790. package/spec-files/{outstanding → completed}/agentic_orchestrator_runtime_inspection_spec.md +92 -19
  791. package/spec-files/completed/agentic_orchestrator_scope_aware_run_lease_spec.md +408 -0
  792. package/spec-files/completed/git-reconciliation-engine.md +827 -0
  793. package/spec-files/outstanding/agentic_orchestrator_dashboard_quick_launch_and_control_surface_spec.md +331 -0
  794. package/spec-files/outstanding/agentic_orchestrator_enterprise_governance_dashboard_spec.md +16 -6
  795. package/spec-files/outstanding/agentic_orchestrator_evidence_integrity_doctor_spec.md +60 -9
  796. package/spec-files/outstanding/agentic_orchestrator_focus_plan_tab_execution_contract_workspace_spec.md +616 -0
  797. package/spec-files/outstanding/agentic_orchestrator_headless_standby_dashboard_runtime_spec.md +310 -0
  798. package/spec-files/outstanding/agentic_orchestrator_human_input_interaction_protocol_spec.md +175 -72
  799. package/spec-files/outstanding/agentic_orchestrator_interactive_rename_cleanup_spec.md +197 -0
  800. package/spec-files/outstanding/agentic_orchestrator_interactive_resume_and_reconciliation_disposition_spec.md +412 -0
  801. package/spec-files/outstanding/agentic_orchestrator_knowledge_canary_spec.md +166 -137
  802. package/spec-files/outstanding/agentic_orchestrator_observability_replay_spec.md +3 -3
  803. package/spec-files/outstanding/agentic_orchestrator_phase_specific_agent_profiles_and_token_telemetry_spec.md +303 -0
  804. package/spec-files/outstanding/agentic_orchestrator_planning_review_quality_spec.md +18 -5
  805. package/spec-files/outstanding/agentic_orchestrator_policy_stratification_spec.md +225 -0
  806. package/spec-files/outstanding/agentic_orchestrator_quality_adoption_execution_spec.md +77 -50
  807. package/spec-files/outstanding/agentic_orchestrator_ready_to_merge_branch_handoff_spec.md +724 -0
  808. package/spec-files/outstanding/agentic_orchestrator_remove_deterministic_mode_spec.md +263 -0
  809. package/spec-files/outstanding/agentic_orchestrator_request_more_context_and_dashboard_human_input_spec.md +456 -0
  810. package/spec-files/outstanding/agentic_orchestrator_spec_coverage_and_reconciliation_enforcement_spec.md +1411 -0
  811. package/spec-files/outstanding/agentic_orchestrator_spec_ordering_agent_spec.md +370 -0
  812. package/spec-files/outstanding/shadow_workspace_implementation_spec.md +1 -1
  813. package/spec-files/progress.md +2045 -87
  814. package/specs/001-runtime-inspection/checklists/requirements.md +35 -0
  815. package/specs/001-runtime-inspection/design.md +338 -0
  816. package/specs/001-runtime-inspection/spec.md +95 -0
  817. package/specs/002-scope-aware-lease/checklists/requirements.md +35 -0
  818. package/specs/002-scope-aware-lease/contracts/lease-registry.schema.json +101 -0
  819. package/specs/002-scope-aware-lease/data-model.md +236 -0
  820. package/specs/002-scope-aware-lease/plan.md +766 -0
  821. package/specs/002-scope-aware-lease/quickstart.md +150 -0
  822. package/specs/002-scope-aware-lease/research.md +135 -0
  823. package/specs/002-scope-aware-lease/spec.md +128 -0
  824. package/specs/002-scope-aware-lease/tasks.md +767 -0
  825. package/tsconfig.json +1 -1
  826. package/vitest.config.ts +28 -0
  827. package/ARCHITECTURE_ADHERENCE_ANALYSIS.md +0 -871
  828. package/packages/web-dashboard/next-env.d.ts +0 -6
  829. package/packages/web-dashboard/src/components/detail-panel.tsx +0 -1124
  830. package/packages/web-dashboard/src/components/review-workspace.tsx +0 -1162
  831. /package/spec-files/{outstanding → completed}/agentic_orchestrator_artifact_database_publishing_spec.md +0 -0
  832. /package/spec-files/{outstanding → completed}/agentic_orchestrator_cli_shell_tab_completion_spec.md +0 -0
  833. /package/spec-files/{outstanding → completed}/agentic_orchestrator_dashboard_diff_and_agent_console_spec.md +0 -0
  834. /package/spec-files/{outstanding → completed}/agentic_orchestrator_performance_improvements_spec.md +0 -0
  835. /package/spec-files/{outstanding → completed}/agentic_orchestrator_persistent_worker_runtime_spec.md +0 -0
  836. /package/spec-files/{outstanding → completed}/agentic_orchestrator_provider_auth_bootstrap_spec.md +0 -0
  837. /package/spec-files/{outstanding → completed}/agentic_orchestrator_real_worker_provider_execution_spec.md +0 -0
@@ -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.1
6
- **Date:** 2026-03-04
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 implements:
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
- - new MCP tools and schema artifacts for question lifecycle
52
- - CLI and dashboard-facing retrieval/answer workflows
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 Gap and Defect Class
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
- Current system behavior is missing a first-class handshake when agents need input:
121
+ ### 1.3 Normative Role of This Spec
87
122
 
88
- 1. worker `REQUEST` handling has no `ask_user` action contract.
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
- Result: operators must use ad hoc `send`/`attach` workflows, and orchestrator semantics are ambiguous when a role cannot proceed safely without human response.
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 deterministic `awaiting_input` state until answered (or expired/escalated).
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
- Add new status constant and schema enum:
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 one of `planning|building|qa|blocked|ready_to_merge` when awaiting input.
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
- Add per-feature artifact:
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 Additions
287
+ ### 5.4 Tool Catalog Baseline
251
288
 
252
- Add new MCP tools:
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
- - `question_already_answered`
307
- - `question_invalid_answer`
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
- Stop relying on heuristic `status_reason` parsing for waiting-input detection:
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. CLI and Dashboard Surface
415
+ ## 7. Operator Surfaces
358
416
 
359
- ### 7.1 New CLI Commands
417
+ ### 7.1 Shared Transport Baseline
360
418
 
361
- Add:
419
+ The generic protocol baseline now assumes these operator-facing paths exist or will be normalized here:
362
420
 
363
- 1. `aop questions --feature-id <id> [--status open|answered|expired|withdrawn|all]`
364
- 2. `aop answer --feature-id <id> --question-id <qid> --answer <value> [--answered-by <id>]`
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
- - both commands return structured JSON envelopes
369
- - answer command validates feature/question state and idempotency
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 Output Enhancements
435
+ ### 7.2 Status and Summary Baseline
372
436
 
373
- `aop status` and dashboard payload include:
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 `unsupported_operation`
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 `question_already_answered`.
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
- ### M43.1 Core Question Service
543
+ This plan reflects the **current repository baseline**.
544
+
545
+ ### M43.0 Provider Compatibility Regression Guard
469
546
 
470
- - add `QuestionService` for create/list/answer lifecycle
471
- - persist `.aop/features/<id>/questions.json`
472
- - enforce open-question invariant and idempotency behavior
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.2 Tooling and Schema Integration
551
+ ### M43.1 Protocol Baseline Hardening
475
552
 
476
- - add tool constants and kernel routing
477
- - add catalog entries and input/output schemas
478
- - add policy/state schema fields
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.3 Runtime Integration
557
+ ### M43.2 Shared Ready-State and Payload Baseline
481
558
 
482
- - wire `ask_user_input` request handling in `WorkerDecisionLoop`
483
- - skip awaiting-input features in wave executors
484
- - enrich `feature.get_context` with human input data
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.4 CLI and Reporting
563
+ ### M43.3 Operator Workflow Parity
487
564
 
488
- - add `questions` and `answer` commands to parser/bootstrap/help
489
- - extend status/dashboard payload with question summary fields
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` path
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/application/services/question-service.ts` (new)
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` (new)
516
- - `agentic/orchestrator/tools/schemas/output/feature.question_create.output.schema.json` (new)
517
- - `agentic/orchestrator/tools/schemas/input/feature.question_list.input.schema.json` (new)
518
- - `agentic/orchestrator/tools/schemas/output/feature.question_list.output.schema.json` (new)
519
- - `agentic/orchestrator/tools/schemas/input/feature.question_answer.input.schema.json` (new)
520
- - `agentic/orchestrator/tools/schemas/output/feature.question_answer.output.schema.json` (new)
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
- - `README.md`
525
- - `apps/control-plane/test/question-service.spec.ts` (new)
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/run-coordinator.spec.ts`
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
- - `apps/control-plane/test/mcp.spec.ts`
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 deterministic phase
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
- - all new tools validate schema and role authorization
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. Agent-generated blocking questions become first-class persisted artifacts.
568
- 2. Feature status transitions to `awaiting_input` deterministically.
569
- 3. No planning/building/qa waves execute for features with open blocking question.
570
- 4. Human answer flow is deterministic, idempotent, and auditable.
571
- 5. Feature resumes from recorded phase after answer.
572
- 6. `aop status`, `aop questions`, and `aop answer` provide complete operator workflow.
573
- 7. `npm run verify` fails if awaiting-input pause/resume invariants regress.
574
- 8. Implementation boundaries follow KISS/SRP/SOLID/Hexagonal requirements from Section 0.4.
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. |