agentic-orchestrator 0.1.6 → 0.1.7

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 (426) hide show
  1. package/.prettierignore +10 -0
  2. package/.prettierrc.json +24 -0
  3. package/CLAUDE.md +3 -2
  4. package/README.md +47 -46
  5. package/agentic/orchestrator/defaults/policy.defaults.yaml +1 -1
  6. package/agentic/orchestrator/prompts/planner.system.md +1 -0
  7. package/agentic/orchestrator/schemas/agents.schema.json +4 -21
  8. package/agentic/orchestrator/schemas/gates.schema.json +4 -19
  9. package/agentic/orchestrator/schemas/index.schema.json +3 -14
  10. package/agentic/orchestrator/schemas/multi-project.schema.json +2 -8
  11. package/agentic/orchestrator/schemas/plan.schema.json +6 -26
  12. package/agentic/orchestrator/schemas/policy.schema.json +19 -81
  13. package/agentic/orchestrator/schemas/policy.user.schema.json +1 -5
  14. package/agentic/orchestrator/schemas/qa_test_index.schema.json +5 -29
  15. package/agentic/orchestrator/schemas/state.schema.json +11 -61
  16. package/agentic/orchestrator/tools/catalog.json +33 -164
  17. package/agentic/orchestrator/tools/schemas/input/evidence.latest.input.schema.json +1 -3
  18. package/agentic/orchestrator/tools/schemas/input/feature.delete.input.schema.json +1 -5
  19. package/agentic/orchestrator/tools/schemas/input/feature.get_context.input.schema.json +1 -3
  20. package/agentic/orchestrator/tools/schemas/input/feature.init.input.schema.json +1 -4
  21. package/agentic/orchestrator/tools/schemas/input/feature.log_append.input.schema.json +1 -5
  22. package/agentic/orchestrator/tools/schemas/input/feature.ready_to_merge.input.schema.json +1 -6
  23. package/agentic/orchestrator/tools/schemas/input/feature.state_get.input.schema.json +1 -3
  24. package/agentic/orchestrator/tools/schemas/input/feature.state_patch.input.schema.json +1 -5
  25. package/agentic/orchestrator/tools/schemas/input/gates.run.input.schema.json +1 -5
  26. package/agentic/orchestrator/tools/schemas/input/locks.acquire.input.schema.json +1 -5
  27. package/agentic/orchestrator/tools/schemas/input/locks.release.input.schema.json +1 -5
  28. package/agentic/orchestrator/tools/schemas/input/performance.record_outcome.input.schema.json +10 -1
  29. package/agentic/orchestrator/tools/schemas/input/plan.get.input.schema.json +1 -3
  30. package/agentic/orchestrator/tools/schemas/input/plan.submit.input.schema.json +1 -5
  31. package/agentic/orchestrator/tools/schemas/input/plan.update.input.schema.json +1 -6
  32. package/agentic/orchestrator/tools/schemas/input/qa.test_index_get.input.schema.json +1 -3
  33. package/agentic/orchestrator/tools/schemas/input/qa.test_index_update.input.schema.json +1 -6
  34. package/agentic/orchestrator/tools/schemas/input/repo.apply_patch.input.schema.json +1 -5
  35. package/agentic/orchestrator/tools/schemas/input/repo.diff.input.schema.json +1 -3
  36. package/agentic/orchestrator/tools/schemas/input/repo.diff_bundle.input.schema.json +1 -3
  37. package/agentic/orchestrator/tools/schemas/input/repo.ensure_worktree.input.schema.json +1 -4
  38. package/agentic/orchestrator/tools/schemas/input/repo.read_file.input.schema.json +1 -4
  39. package/agentic/orchestrator/tools/schemas/input/repo.search.input.schema.json +1 -4
  40. package/agentic/orchestrator/tools/schemas/input/repo.status.input.schema.json +1 -3
  41. package/agentic/orchestrator/tools/schemas/input/report.feature_summary.input.schema.json +1 -3
  42. package/agentic/orchestrator/tools/schemas/output/collisions.scan.output.schema.json +1 -3
  43. package/agentic/orchestrator/tools/schemas/output/evidence.latest.output.schema.json +1 -4
  44. package/agentic/orchestrator/tools/schemas/output/feature.delete.output.schema.json +4 -20
  45. package/agentic/orchestrator/tools/schemas/output/feature.discover_specs.output.schema.json +2 -7
  46. package/agentic/orchestrator/tools/schemas/output/feature.get_context.output.schema.json +1 -8
  47. package/agentic/orchestrator/tools/schemas/output/feature.init.output.schema.json +1 -5
  48. package/agentic/orchestrator/tools/schemas/output/feature.log_append.output.schema.json +1 -5
  49. package/agentic/orchestrator/tools/schemas/output/feature.ready_to_merge.output.schema.json +1 -6
  50. package/agentic/orchestrator/tools/schemas/output/feature.state_get.output.schema.json +1 -4
  51. package/agentic/orchestrator/tools/schemas/output/feature.state_patch.output.schema.json +1 -5
  52. package/agentic/orchestrator/tools/schemas/output/gates.list.output.schema.json +2 -7
  53. package/agentic/orchestrator/tools/schemas/output/gates.run.output.schema.json +1 -8
  54. package/agentic/orchestrator/tools/schemas/output/locks.acquire.output.schema.json +1 -7
  55. package/agentic/orchestrator/tools/schemas/output/locks.release.output.schema.json +1 -5
  56. package/agentic/orchestrator/tools/schemas/output/performance.get_analytics.output.schema.json +22 -2
  57. package/agentic/orchestrator/tools/schemas/output/plan.get.output.schema.json +1 -4
  58. package/agentic/orchestrator/tools/schemas/output/plan.submit.output.schema.json +1 -5
  59. package/agentic/orchestrator/tools/schemas/output/plan.update.output.schema.json +1 -5
  60. package/agentic/orchestrator/tools/schemas/output/qa.test_index_get.output.schema.json +1 -5
  61. package/agentic/orchestrator/tools/schemas/output/qa.test_index_update.output.schema.json +1 -4
  62. package/agentic/orchestrator/tools/schemas/output/repo.apply_patch.output.schema.json +1 -6
  63. package/agentic/orchestrator/tools/schemas/output/repo.diff.output.schema.json +1 -4
  64. package/agentic/orchestrator/tools/schemas/output/repo.diff_bundle.output.schema.json +1 -7
  65. package/agentic/orchestrator/tools/schemas/output/repo.ensure_worktree.output.schema.json +1 -6
  66. package/agentic/orchestrator/tools/schemas/output/repo.read_file.output.schema.json +1 -5
  67. package/agentic/orchestrator/tools/schemas/output/repo.search.output.schema.json +1 -5
  68. package/agentic/orchestrator/tools/schemas/output/repo.status.output.schema.json +1 -5
  69. package/agentic/orchestrator/tools/schemas/output/report.dashboard.output.schema.json +1 -4
  70. package/apps/control-plane/scripts/validate-architecture-rules.mjs +16 -5
  71. package/apps/control-plane/scripts/validate-docker-mcp-contract.mjs +30 -8
  72. package/apps/control-plane/scripts/validate-mcp-contracts.ts +13 -7
  73. package/apps/control-plane/src/application/adapters/adapter-registry.ts +35 -15
  74. package/apps/control-plane/src/application/multi-project-loader.ts +27 -10
  75. package/apps/control-plane/src/application/services/activity-monitor-service.ts +26 -14
  76. package/apps/control-plane/src/application/services/collision-queue-service.ts +31 -17
  77. package/apps/control-plane/src/application/services/cost-tracking-service.ts +23 -16
  78. package/apps/control-plane/src/application/services/dependency-scheduler-service.ts +12 -4
  79. package/apps/control-plane/src/application/services/feature-deletion-service.ts +94 -58
  80. package/apps/control-plane/src/application/services/feature-lifecycle-service.ts +19 -13
  81. package/apps/control-plane/src/application/services/feature-state-service.ts +29 -19
  82. package/apps/control-plane/src/application/services/gate-interpolation-service.ts +7 -2
  83. package/apps/control-plane/src/application/services/gate-service.ts +64 -41
  84. package/apps/control-plane/src/application/services/instance-isolation-service.ts +1 -1
  85. package/apps/control-plane/src/application/services/issue-tracker-service.ts +49 -38
  86. package/apps/control-plane/src/application/services/lock-service.ts +75 -49
  87. package/apps/control-plane/src/application/services/merge-service.ts +91 -50
  88. package/apps/control-plane/src/application/services/notifier-service.ts +42 -20
  89. package/apps/control-plane/src/application/services/patch-service.ts +73 -44
  90. package/apps/control-plane/src/application/services/performance-analytics-service.ts +8 -6
  91. package/apps/control-plane/src/application/services/plan-service.ts +148 -89
  92. package/apps/control-plane/src/application/services/policy-loader-service.ts +10 -4
  93. package/apps/control-plane/src/application/services/pr-monitor-service.ts +33 -14
  94. package/apps/control-plane/src/application/services/qa-index-service.ts +20 -16
  95. package/apps/control-plane/src/application/services/reactions-service.ts +30 -15
  96. package/apps/control-plane/src/application/services/reporting-service.ts +16 -12
  97. package/apps/control-plane/src/application/services/run-lease-service.ts +138 -81
  98. package/apps/control-plane/src/application/tools/tool-metadata.ts +5 -5
  99. package/apps/control-plane/src/application/tools/tool-router.ts +6 -3
  100. package/apps/control-plane/src/cli/aop.ts +2 -2
  101. package/apps/control-plane/src/cli/attach-command-handler.ts +9 -9
  102. package/apps/control-plane/src/cli/cleanup-command-handler.ts +16 -11
  103. package/apps/control-plane/src/cli/cli-argument-parser.ts +6 -3
  104. package/apps/control-plane/src/cli/dashboard-command-handler.ts +28 -8
  105. package/apps/control-plane/src/cli/delete-command-handler.ts +7 -7
  106. package/apps/control-plane/src/cli/help-command-handler.ts +61 -32
  107. package/apps/control-plane/src/cli/init-command-handler.ts +110 -54
  108. package/apps/control-plane/src/cli/io.ts +7 -3
  109. package/apps/control-plane/src/cli/resume-command-handler.ts +21 -13
  110. package/apps/control-plane/src/cli/retry-command-handler.ts +12 -11
  111. package/apps/control-plane/src/cli/run-command-handler.ts +12 -8
  112. package/apps/control-plane/src/cli/send-command-handler.ts +6 -6
  113. package/apps/control-plane/src/cli/spec-ingestion-service.ts +14 -8
  114. package/apps/control-plane/src/cli/spec-input-resolver.ts +6 -1
  115. package/apps/control-plane/src/cli/spec-utils.ts +2 -2
  116. package/apps/control-plane/src/cli/status-command-handler.ts +13 -12
  117. package/apps/control-plane/src/cli/tooling.ts +3 -3
  118. package/apps/control-plane/src/cli/types.ts +1 -1
  119. package/apps/control-plane/src/core/collisions.ts +27 -10
  120. package/apps/control-plane/src/core/constants.ts +13 -7
  121. package/apps/control-plane/src/core/error-codes.ts +1 -1
  122. package/apps/control-plane/src/core/fs.ts +11 -5
  123. package/apps/control-plane/src/core/gates.ts +53 -27
  124. package/apps/control-plane/src/core/git.ts +18 -6
  125. package/apps/control-plane/src/core/kernel.ts +515 -227
  126. package/apps/control-plane/src/core/patch.ts +7 -3
  127. package/apps/control-plane/src/core/path-layout.ts +5 -1
  128. package/apps/control-plane/src/core/path-rules.ts +19 -5
  129. package/apps/control-plane/src/core/qa-index.ts +26 -12
  130. package/apps/control-plane/src/core/response.ts +9 -6
  131. package/apps/control-plane/src/core/schemas.ts +29 -10
  132. package/apps/control-plane/src/core/tool-caller.ts +1 -1
  133. package/apps/control-plane/src/core/workspace-hooks.ts +5 -5
  134. package/apps/control-plane/src/index.ts +3 -9
  135. package/apps/control-plane/src/interfaces/cli/bootstrap.ts +69 -32
  136. package/apps/control-plane/src/mcp/kernel-tool-executor.ts +7 -3
  137. package/apps/control-plane/src/mcp/mcp-server-adapter.ts +12 -10
  138. package/apps/control-plane/src/mcp/operation-ledger.ts +18 -8
  139. package/apps/control-plane/src/mcp/protocol-contract.ts +2 -2
  140. package/apps/control-plane/src/mcp/runtime-factory.ts +15 -6
  141. package/apps/control-plane/src/mcp/token-auth-verifier.ts +3 -2
  142. package/apps/control-plane/src/mcp/token-claims-validator.ts +11 -7
  143. package/apps/control-plane/src/mcp/tool-authorizer.ts +1 -3
  144. package/apps/control-plane/src/mcp/tool-client.ts +17 -5
  145. package/apps/control-plane/src/mcp/tool-contract-validator.ts +17 -8
  146. package/apps/control-plane/src/mcp/tool-registry-loader.ts +7 -3
  147. package/apps/control-plane/src/mcp/tool-runtime.ts +66 -39
  148. package/apps/control-plane/src/mcp/tools-markdown-generator.ts +6 -1
  149. package/apps/control-plane/src/providers/providers.ts +72 -48
  150. package/apps/control-plane/src/supervisor/build-wave-executor.ts +44 -25
  151. package/apps/control-plane/src/supervisor/planning-wave-executor.ts +46 -33
  152. package/apps/control-plane/src/supervisor/prompt-bundle-loader.ts +1 -1
  153. package/apps/control-plane/src/supervisor/qa-wave-executor.ts +38 -23
  154. package/apps/control-plane/src/supervisor/run-coordinator.ts +71 -36
  155. package/apps/control-plane/src/supervisor/runtime.ts +59 -35
  156. package/apps/control-plane/src/supervisor/session-orchestrator.ts +48 -31
  157. package/apps/control-plane/src/supervisor/types.ts +22 -7
  158. package/apps/control-plane/src/supervisor/worker-decision-loop.ts +30 -20
  159. package/apps/control-plane/test/activity-monitor.spec.ts +54 -30
  160. package/apps/control-plane/test/adapter-registry.spec.ts +5 -5
  161. package/apps/control-plane/test/aop.spec.ts +4 -4
  162. package/apps/control-plane/test/batch-operations.spec.ts +20 -18
  163. package/apps/control-plane/test/bootstrap-attach.spec.ts +52 -19
  164. package/apps/control-plane/test/bootstrap-edge-cases.spec.ts +58 -27
  165. package/apps/control-plane/test/bootstrap.spec.ts +72 -40
  166. package/apps/control-plane/test/cleanup-command.spec.ts +86 -32
  167. package/apps/control-plane/test/cli-helpers.spec.ts +119 -66
  168. package/apps/control-plane/test/cli.spec.ts +1 -1
  169. package/apps/control-plane/test/cli.unit.spec.ts +226 -167
  170. package/apps/control-plane/test/collision-queue.spec.ts +49 -40
  171. package/apps/control-plane/test/collisions.spec.ts +30 -30
  172. package/apps/control-plane/test/core-utils.spec.ts +29 -15
  173. package/apps/control-plane/test/cost-tracking.spec.ts +38 -22
  174. package/apps/control-plane/test/dashboard-api.integration.spec.ts +68 -36
  175. package/apps/control-plane/test/dashboard-client.spec.ts +18 -12
  176. package/apps/control-plane/test/dashboard-command.spec.ts +11 -7
  177. package/apps/control-plane/test/delete-command-handler.spec.ts +49 -41
  178. package/apps/control-plane/test/dependency-scheduler.spec.ts +47 -20
  179. package/apps/control-plane/test/epoch-tracking.spec.ts +9 -9
  180. package/apps/control-plane/test/feature-deletion-service.spec.ts +60 -52
  181. package/apps/control-plane/test/feature-lifecycle.spec.ts +36 -17
  182. package/apps/control-plane/test/gates.spec.ts +101 -81
  183. package/apps/control-plane/test/git-spawn-error.spec.ts +1 -1
  184. package/apps/control-plane/test/helpers.ts +10 -6
  185. package/apps/control-plane/test/incremental-gates.spec.ts +59 -20
  186. package/apps/control-plane/test/init-wizard.spec.ts +162 -67
  187. package/apps/control-plane/test/instance-isolation.spec.ts +43 -10
  188. package/apps/control-plane/test/issue-tracker.spec.ts +368 -128
  189. package/apps/control-plane/test/kernel-collision-replay.spec.ts +50 -29
  190. package/apps/control-plane/test/kernel.branches.spec.ts +64 -40
  191. package/apps/control-plane/test/kernel.coverage.spec.ts +85 -49
  192. package/apps/control-plane/test/kernel.coverage2.spec.ts +109 -65
  193. package/apps/control-plane/test/kernel.spec.ts +134 -51
  194. package/apps/control-plane/test/lock-service.spec.ts +92 -68
  195. package/apps/control-plane/test/mcp-helpers.spec.ts +53 -39
  196. package/apps/control-plane/test/mcp.spec.ts +231 -115
  197. package/apps/control-plane/test/merge-service.spec.ts +142 -94
  198. package/apps/control-plane/test/multi-project.spec.ts +28 -22
  199. package/apps/control-plane/test/notifier-service.spec.ts +136 -92
  200. package/apps/control-plane/test/parallel-gates.spec.ts +51 -35
  201. package/apps/control-plane/test/patch-service.spec.ts +128 -48
  202. package/apps/control-plane/test/performance-analytics.spec.ts +99 -63
  203. package/apps/control-plane/test/plan-service.spec.ts +50 -39
  204. package/apps/control-plane/test/planning-wave-executor.spec.ts +95 -71
  205. package/apps/control-plane/test/policy-loader-service.spec.ts +41 -19
  206. package/apps/control-plane/test/pr-monitor.spec.ts +113 -64
  207. package/apps/control-plane/test/providers.spec.ts +133 -102
  208. package/apps/control-plane/test/qa-index-service.spec.ts +31 -33
  209. package/apps/control-plane/test/qa-index.spec.ts +58 -61
  210. package/apps/control-plane/test/reactions.spec.ts +88 -45
  211. package/apps/control-plane/test/response.spec.ts +5 -5
  212. package/apps/control-plane/test/resume-command.spec.ts +121 -80
  213. package/apps/control-plane/test/run-coordinator.spec.ts +205 -136
  214. package/apps/control-plane/test/schema-date-time.spec.ts +49 -41
  215. package/apps/control-plane/test/service-retry-paths.spec.ts +77 -57
  216. package/apps/control-plane/test/services.spec.ts +147 -129
  217. package/apps/control-plane/test/session-management.spec.ts +136 -74
  218. package/apps/control-plane/test/spec-ingestion.spec.ts +23 -21
  219. package/apps/control-plane/test/spec-input-resolver.spec.ts +11 -10
  220. package/apps/control-plane/test/supervisor-collaborators.spec.ts +168 -121
  221. package/apps/control-plane/test/supervisor.calltool.spec.ts +21 -18
  222. package/apps/control-plane/test/supervisor.spec.ts +67 -43
  223. package/apps/control-plane/test/supervisor.unit.spec.ts +195 -126
  224. package/apps/control-plane/test/token-auth-verifier.spec.ts +29 -14
  225. package/apps/control-plane/test/tool-registry-loader.spec.ts +51 -27
  226. package/apps/control-plane/test/tool-runtime.spec.ts +63 -46
  227. package/apps/control-plane/test/worker-decision-loop.spec.ts +143 -122
  228. package/apps/control-plane/test/workspace-hooks.spec.ts +61 -23
  229. package/apps/control-plane/tsconfig.build.json +2 -7
  230. package/apps/control-plane/tsconfig.json +1 -5
  231. package/apps/control-plane/vitest.config.ts +7 -7
  232. package/dist/apps/control-plane/application/adapters/adapter-registry.js +12 -5
  233. package/dist/apps/control-plane/application/adapters/adapter-registry.js.map +1 -1
  234. package/dist/apps/control-plane/application/multi-project-loader.js +26 -9
  235. package/dist/apps/control-plane/application/multi-project-loader.js.map +1 -1
  236. package/dist/apps/control-plane/application/services/activity-monitor-service.js +7 -7
  237. package/dist/apps/control-plane/application/services/activity-monitor-service.js.map +1 -1
  238. package/dist/apps/control-plane/application/services/collision-queue-service.js +7 -7
  239. package/dist/apps/control-plane/application/services/collision-queue-service.js.map +1 -1
  240. package/dist/apps/control-plane/application/services/cost-tracking-service.js +6 -8
  241. package/dist/apps/control-plane/application/services/cost-tracking-service.js.map +1 -1
  242. package/dist/apps/control-plane/application/services/dependency-scheduler-service.js.map +1 -1
  243. package/dist/apps/control-plane/application/services/feature-deletion-service.js +37 -29
  244. package/dist/apps/control-plane/application/services/feature-deletion-service.js.map +1 -1
  245. package/dist/apps/control-plane/application/services/feature-lifecycle-service.js +10 -10
  246. package/dist/apps/control-plane/application/services/feature-lifecycle-service.js.map +1 -1
  247. package/dist/apps/control-plane/application/services/feature-state-service.js +11 -11
  248. package/dist/apps/control-plane/application/services/feature-state-service.js.map +1 -1
  249. package/dist/apps/control-plane/application/services/gate-interpolation-service.js +3 -1
  250. package/dist/apps/control-plane/application/services/gate-interpolation-service.js.map +1 -1
  251. package/dist/apps/control-plane/application/services/gate-service.js +26 -26
  252. package/dist/apps/control-plane/application/services/gate-service.js.map +1 -1
  253. package/dist/apps/control-plane/application/services/instance-isolation-service.js +1 -1
  254. package/dist/apps/control-plane/application/services/instance-isolation-service.js.map +1 -1
  255. package/dist/apps/control-plane/application/services/issue-tracker-service.js +25 -15
  256. package/dist/apps/control-plane/application/services/issue-tracker-service.js.map +1 -1
  257. package/dist/apps/control-plane/application/services/lock-service.js +32 -32
  258. package/dist/apps/control-plane/application/services/lock-service.js.map +1 -1
  259. package/dist/apps/control-plane/application/services/merge-service.js +41 -27
  260. package/dist/apps/control-plane/application/services/merge-service.js.map +1 -1
  261. package/dist/apps/control-plane/application/services/notifier-service.js +29 -15
  262. package/dist/apps/control-plane/application/services/notifier-service.js.map +1 -1
  263. package/dist/apps/control-plane/application/services/patch-service.js +21 -19
  264. package/dist/apps/control-plane/application/services/patch-service.js.map +1 -1
  265. package/dist/apps/control-plane/application/services/performance-analytics-service.js +4 -4
  266. package/dist/apps/control-plane/application/services/performance-analytics-service.js.map +1 -1
  267. package/dist/apps/control-plane/application/services/plan-service.js +33 -33
  268. package/dist/apps/control-plane/application/services/plan-service.js.map +1 -1
  269. package/dist/apps/control-plane/application/services/policy-loader-service.js.map +1 -1
  270. package/dist/apps/control-plane/application/services/pr-monitor-service.js +23 -11
  271. package/dist/apps/control-plane/application/services/pr-monitor-service.js.map +1 -1
  272. package/dist/apps/control-plane/application/services/qa-index-service.js +11 -11
  273. package/dist/apps/control-plane/application/services/qa-index-service.js.map +1 -1
  274. package/dist/apps/control-plane/application/services/reactions-service.js +13 -9
  275. package/dist/apps/control-plane/application/services/reactions-service.js.map +1 -1
  276. package/dist/apps/control-plane/application/services/reporting-service.js +11 -9
  277. package/dist/apps/control-plane/application/services/reporting-service.js.map +1 -1
  278. package/dist/apps/control-plane/application/services/run-lease-service.js +34 -33
  279. package/dist/apps/control-plane/application/services/run-lease-service.js.map +1 -1
  280. package/dist/apps/control-plane/application/tools/tool-metadata.js +2 -2
  281. package/dist/apps/control-plane/application/tools/tool-router.js.map +1 -1
  282. package/dist/apps/control-plane/cli/attach-command-handler.js +9 -9
  283. package/dist/apps/control-plane/cli/cleanup-command-handler.js +11 -9
  284. package/dist/apps/control-plane/cli/cleanup-command-handler.js.map +1 -1
  285. package/dist/apps/control-plane/cli/cli-argument-parser.js +4 -3
  286. package/dist/apps/control-plane/cli/cli-argument-parser.js.map +1 -1
  287. package/dist/apps/control-plane/cli/dashboard-command-handler.js +23 -7
  288. package/dist/apps/control-plane/cli/dashboard-command-handler.js.map +1 -1
  289. package/dist/apps/control-plane/cli/delete-command-handler.js +7 -7
  290. package/dist/apps/control-plane/cli/help-command-handler.js +58 -30
  291. package/dist/apps/control-plane/cli/help-command-handler.js.map +1 -1
  292. package/dist/apps/control-plane/cli/init-command-handler.js +44 -33
  293. package/dist/apps/control-plane/cli/init-command-handler.js.map +1 -1
  294. package/dist/apps/control-plane/cli/io.js +2 -2
  295. package/dist/apps/control-plane/cli/io.js.map +1 -1
  296. package/dist/apps/control-plane/cli/resume-command-handler.js +9 -9
  297. package/dist/apps/control-plane/cli/resume-command-handler.js.map +1 -1
  298. package/dist/apps/control-plane/cli/retry-command-handler.js +12 -11
  299. package/dist/apps/control-plane/cli/retry-command-handler.js.map +1 -1
  300. package/dist/apps/control-plane/cli/run-command-handler.js +12 -8
  301. package/dist/apps/control-plane/cli/run-command-handler.js.map +1 -1
  302. package/dist/apps/control-plane/cli/send-command-handler.js +6 -6
  303. package/dist/apps/control-plane/cli/spec-ingestion-service.js +10 -8
  304. package/dist/apps/control-plane/cli/spec-ingestion-service.js.map +1 -1
  305. package/dist/apps/control-plane/cli/spec-input-resolver.js.map +1 -1
  306. package/dist/apps/control-plane/cli/spec-utils.js.map +1 -1
  307. package/dist/apps/control-plane/cli/status-command-handler.js +8 -8
  308. package/dist/apps/control-plane/cli/status-command-handler.js.map +1 -1
  309. package/dist/apps/control-plane/cli/tooling.js +1 -1
  310. package/dist/apps/control-plane/core/collisions.js +11 -8
  311. package/dist/apps/control-plane/core/collisions.js.map +1 -1
  312. package/dist/apps/control-plane/core/constants.js +13 -7
  313. package/dist/apps/control-plane/core/constants.js.map +1 -1
  314. package/dist/apps/control-plane/core/error-codes.js +1 -1
  315. package/dist/apps/control-plane/core/fs.js.map +1 -1
  316. package/dist/apps/control-plane/core/gates.d.ts +2 -2
  317. package/dist/apps/control-plane/core/gates.js +26 -19
  318. package/dist/apps/control-plane/core/gates.js.map +1 -1
  319. package/dist/apps/control-plane/core/git.js +3 -3
  320. package/dist/apps/control-plane/core/git.js.map +1 -1
  321. package/dist/apps/control-plane/core/kernel.d.ts +1 -0
  322. package/dist/apps/control-plane/core/kernel.js +134 -81
  323. package/dist/apps/control-plane/core/kernel.js.map +1 -1
  324. package/dist/apps/control-plane/core/patch.js +7 -3
  325. package/dist/apps/control-plane/core/patch.js.map +1 -1
  326. package/dist/apps/control-plane/core/path-layout.d.ts +1 -0
  327. package/dist/apps/control-plane/core/path-layout.js +4 -1
  328. package/dist/apps/control-plane/core/path-layout.js.map +1 -1
  329. package/dist/apps/control-plane/core/path-rules.js +3 -1
  330. package/dist/apps/control-plane/core/path-rules.js.map +1 -1
  331. package/dist/apps/control-plane/core/qa-index.js +5 -5
  332. package/dist/apps/control-plane/core/qa-index.js.map +1 -1
  333. package/dist/apps/control-plane/core/response.js +3 -3
  334. package/dist/apps/control-plane/core/response.js.map +1 -1
  335. package/dist/apps/control-plane/core/schemas.js +10 -6
  336. package/dist/apps/control-plane/core/schemas.js.map +1 -1
  337. package/dist/apps/control-plane/core/workspace-hooks.js +3 -3
  338. package/dist/apps/control-plane/index.d.ts +1 -1
  339. package/dist/apps/control-plane/index.js +1 -1
  340. package/dist/apps/control-plane/index.js.map +1 -1
  341. package/dist/apps/control-plane/interfaces/cli/bootstrap.js +31 -20
  342. package/dist/apps/control-plane/interfaces/cli/bootstrap.js.map +1 -1
  343. package/dist/apps/control-plane/mcp/kernel-tool-executor.js +1 -1
  344. package/dist/apps/control-plane/mcp/kernel-tool-executor.js.map +1 -1
  345. package/dist/apps/control-plane/mcp/mcp-server-adapter.js +6 -7
  346. package/dist/apps/control-plane/mcp/mcp-server-adapter.js.map +1 -1
  347. package/dist/apps/control-plane/mcp/operation-ledger.js +5 -5
  348. package/dist/apps/control-plane/mcp/operation-ledger.js.map +1 -1
  349. package/dist/apps/control-plane/mcp/protocol-contract.js +2 -2
  350. package/dist/apps/control-plane/mcp/runtime-factory.js +2 -2
  351. package/dist/apps/control-plane/mcp/runtime-factory.js.map +1 -1
  352. package/dist/apps/control-plane/mcp/token-auth-verifier.js +1 -1
  353. package/dist/apps/control-plane/mcp/token-auth-verifier.js.map +1 -1
  354. package/dist/apps/control-plane/mcp/token-claims-validator.js +5 -5
  355. package/dist/apps/control-plane/mcp/token-claims-validator.js.map +1 -1
  356. package/dist/apps/control-plane/mcp/tool-authorizer.js +1 -3
  357. package/dist/apps/control-plane/mcp/tool-authorizer.js.map +1 -1
  358. package/dist/apps/control-plane/mcp/tool-client.js +2 -2
  359. package/dist/apps/control-plane/mcp/tool-client.js.map +1 -1
  360. package/dist/apps/control-plane/mcp/tool-contract-validator.js +3 -3
  361. package/dist/apps/control-plane/mcp/tool-contract-validator.js.map +1 -1
  362. package/dist/apps/control-plane/mcp/tool-registry-loader.js +1 -1
  363. package/dist/apps/control-plane/mcp/tool-registry-loader.js.map +1 -1
  364. package/dist/apps/control-plane/mcp/tool-runtime.js +17 -17
  365. package/dist/apps/control-plane/mcp/tool-runtime.js.map +1 -1
  366. package/dist/apps/control-plane/mcp/tools-markdown-generator.js +6 -1
  367. package/dist/apps/control-plane/mcp/tools-markdown-generator.js.map +1 -1
  368. package/dist/apps/control-plane/providers/providers.d.ts +1 -1
  369. package/dist/apps/control-plane/providers/providers.js +31 -34
  370. package/dist/apps/control-plane/providers/providers.js.map +1 -1
  371. package/dist/apps/control-plane/supervisor/build-wave-executor.js +12 -12
  372. package/dist/apps/control-plane/supervisor/build-wave-executor.js.map +1 -1
  373. package/dist/apps/control-plane/supervisor/planning-wave-executor.js +19 -16
  374. package/dist/apps/control-plane/supervisor/planning-wave-executor.js.map +1 -1
  375. package/dist/apps/control-plane/supervisor/prompt-bundle-loader.js +1 -1
  376. package/dist/apps/control-plane/supervisor/qa-wave-executor.js +13 -13
  377. package/dist/apps/control-plane/supervisor/qa-wave-executor.js.map +1 -1
  378. package/dist/apps/control-plane/supervisor/run-coordinator.js +37 -20
  379. package/dist/apps/control-plane/supervisor/run-coordinator.js.map +1 -1
  380. package/dist/apps/control-plane/supervisor/runtime.js +25 -21
  381. package/dist/apps/control-plane/supervisor/runtime.js.map +1 -1
  382. package/dist/apps/control-plane/supervisor/session-orchestrator.js +29 -23
  383. package/dist/apps/control-plane/supervisor/session-orchestrator.js.map +1 -1
  384. package/dist/apps/control-plane/supervisor/types.d.ts +3 -3
  385. package/dist/apps/control-plane/supervisor/types.js.map +1 -1
  386. package/dist/apps/control-plane/supervisor/worker-decision-loop.js +14 -16
  387. package/dist/apps/control-plane/supervisor/worker-decision-loop.js.map +1 -1
  388. package/eslint.config.mjs +20 -20
  389. package/example-configurations/README.md +1 -1
  390. package/example-configurations/java/agents.yaml +3 -3
  391. package/example-configurations/java/policy.yaml +1 -1
  392. package/example-configurations/node/agents.yaml +3 -3
  393. package/example-configurations/node/policy.yaml +1 -1
  394. package/package.json +10 -5
  395. package/packages/web-dashboard/next.config.js +2 -2
  396. package/packages/web-dashboard/src/app/api/actions/route.ts +25 -9
  397. package/packages/web-dashboard/src/app/api/events/route.ts +20 -6
  398. package/packages/web-dashboard/src/app/api/features/[id]/checkout/route.ts +88 -37
  399. package/packages/web-dashboard/src/app/api/features/[id]/evidence/[artifact]/route.ts +8 -5
  400. package/packages/web-dashboard/src/app/api/features/[id]/review/route.ts +27 -9
  401. package/packages/web-dashboard/src/app/api/features/[id]/route.ts +5 -2
  402. package/packages/web-dashboard/src/app/api/projects/route.ts +5 -5
  403. package/packages/web-dashboard/src/app/globals.css +10 -2
  404. package/packages/web-dashboard/src/app/page.tsx +100 -37
  405. package/packages/web-dashboard/src/lib/aop-client.ts +68 -37
  406. package/packages/web-dashboard/src/lib/multi-project-config.ts +28 -7
  407. package/packages/web-dashboard/src/lib/orchestrator-tools.ts +59 -36
  408. package/packages/web-dashboard/tsconfig.json +3 -11
  409. package/scripts/nx-safe.mjs +10 -10
  410. package/spec-files/completed/agentic_orchestrator_cli_delete_command_spec.md +5 -0
  411. package/spec-files/completed/agentic_orchestrator_feature_gaps_closure_spec.md +187 -90
  412. package/spec-files/completed/agentic_orchestrator_init_policy_ux_simplification_spec.md +49 -16
  413. package/spec-files/completed/agentic_orchestrator_mcp_formalization_spec.md +24 -1
  414. package/spec-files/completed/agentic_orchestrator_single_global_orchestrator_spec.md +9 -0
  415. package/spec-files/completed/agentic_orchestrator_spec.md +171 -75
  416. package/spec-files/completed/agentic_orchestrator_validator_hardening_spec.md +25 -17
  417. package/spec-files/outstanding/agentic_orchestrator_artifact_database_publishing_spec.md +40 -5
  418. package/spec-files/outstanding/agentic_orchestrator_enterprise_governance_dashboard_spec.md +23 -12
  419. package/spec-files/outstanding/agentic_orchestrator_knowledge_canary_spec.md +16 -4
  420. package/spec-files/outstanding/agentic_orchestrator_observability_integrity_diagnostics_spec.md +42 -2
  421. package/spec-files/outstanding/agentic_orchestrator_performance_improvements_spec.md +209 -130
  422. package/spec-files/outstanding/agentic_orchestrator_planning_review_quality_spec.md +56 -3
  423. package/spec-files/outstanding/agentic_orchestrator_productization_commercial_spec.md +77 -10
  424. package/spec-files/outstanding/agentic_orchestrator_quality_adoption_execution_spec.md +29 -14
  425. package/spec-files/progress.md +186 -175
  426. package/tsconfig.json +2 -8
@@ -3,7 +3,13 @@ import os from 'node:os';
3
3
  import path from 'node:path';
4
4
  import YAML from 'yaml';
5
5
 
6
- const MULTI_PROJECT_CONFIG_PATH = ['agentic', 'orchestrator', 'multi-project.yaml'] as const;
6
+ const MULTI_PROJECT_CONFIG_PATH = [
7
+ 'config',
8
+ 'agentic',
9
+ 'orchestrator',
10
+ 'multi-project.yaml',
11
+ ] as const;
12
+ const LEGACY_MULTI_PROJECT_CONFIG_PATH = ['agentic', 'orchestrator', 'multi-project.yaml'] as const;
7
13
 
8
14
  export interface MultiProjectDashboardConfig {
9
15
  defaults?: {
@@ -78,39 +84,54 @@ function parseConfig(raw: string, repoRoot: string): MultiProjectDashboardConfig
78
84
  path: absoluteProjectPath,
79
85
  policy: policyPath,
80
86
  gates: gatesPath,
81
- dashboard_port: typeof project.dashboard_port === 'number' ? project.dashboard_port : undefined
87
+ dashboard_port:
88
+ typeof project.dashboard_port === 'number' ? project.dashboard_port : undefined,
82
89
  };
83
90
  });
84
91
 
85
92
  return {
86
93
  defaults: candidate.defaults,
87
- projects
94
+ projects,
88
95
  };
89
96
  }
90
97
 
91
- export async function readMultiProjectConfig(repoRoot: string): Promise<MultiProjectDashboardConfig | null> {
98
+ export async function readMultiProjectConfig(
99
+ repoRoot: string,
100
+ ): Promise<MultiProjectDashboardConfig | null> {
92
101
  const configPath = path.join(repoRoot, ...MULTI_PROJECT_CONFIG_PATH);
102
+ const legacyConfigPath = path.join(repoRoot, ...LEGACY_MULTI_PROJECT_CONFIG_PATH);
93
103
  try {
94
104
  const raw = await readFile(configPath, 'utf8');
95
105
  return parseConfig(raw, repoRoot);
96
106
  } catch {
97
- return null;
107
+ try {
108
+ const raw = await readFile(legacyConfigPath, 'utf8');
109
+ return parseConfig(raw, repoRoot);
110
+ } catch {
111
+ return null;
112
+ }
98
113
  }
99
114
  }
100
115
 
101
116
  export async function multiProjectConfigExists(repoRoot: string): Promise<boolean> {
102
117
  const configPath = path.join(repoRoot, ...MULTI_PROJECT_CONFIG_PATH);
118
+ const legacyConfigPath = path.join(repoRoot, ...LEGACY_MULTI_PROJECT_CONFIG_PATH);
103
119
  try {
104
120
  await access(configPath);
105
121
  return true;
106
122
  } catch {
107
- return false;
123
+ try {
124
+ await access(legacyConfigPath);
125
+ return true;
126
+ } catch {
127
+ return false;
128
+ }
108
129
  }
109
130
  }
110
131
 
111
132
  export function getProjectByName(
112
133
  config: MultiProjectDashboardConfig,
113
- name: string
134
+ name: string,
114
135
  ): MultiProjectDashboardConfig['projects'][number] | null {
115
136
  return config.projects.find((project) => project.name === name) ?? null;
116
137
  }
@@ -4,7 +4,7 @@ import { pathToFileURL } from 'node:url';
4
4
  import { getAopRoot } from './aop-client.js';
5
5
 
6
6
  const STATUS = {
7
- BLOCKED: 'blocked'
7
+ BLOCKED: 'blocked',
8
8
  } as const;
9
9
 
10
10
  const TOOLS = {
@@ -12,7 +12,7 @@ const TOOLS = {
12
12
  FEATURE_STATE_GET: 'feature.state_get',
13
13
  FEATURE_STATE_PATCH: 'feature.state_patch',
14
14
  FEATURE_LOG_APPEND: 'feature.log_append',
15
- FEATURE_SEND_MESSAGE: 'feature.send_message'
15
+ FEATURE_SEND_MESSAGE: 'feature.send_message',
16
16
  } as const;
17
17
 
18
18
  interface ToolResponse<TData = Record<string, unknown>> {
@@ -33,7 +33,11 @@ interface ToolClientIdentity {
33
33
  }
34
34
 
35
35
  interface ToolClient {
36
- call(toolName: string, args: Record<string, unknown>, identity: ToolClientIdentity): Promise<ToolResponse>;
36
+ call(
37
+ toolName: string,
38
+ args: Record<string, unknown>,
39
+ identity: ToolClientIdentity,
40
+ ): Promise<ToolResponse>;
37
41
  }
38
42
 
39
43
  interface ToolingRuntime {
@@ -49,11 +53,15 @@ interface KernelLike {
49
53
  interface RuntimeBridge {
50
54
  AopKernel: new (repoRoot: string) => KernelLike;
51
55
  NullWorkerProvider: new (selection: unknown) => unknown;
52
- resolveProviderSelection: (input: { cli: Record<string, string | undefined>; env: NodeJS.ProcessEnv; agentsConfig?: unknown }) => unknown;
56
+ resolveProviderSelection: (input: {
57
+ cli: Record<string, string | undefined>;
58
+ env: NodeJS.ProcessEnv;
59
+ agentsConfig?: unknown;
60
+ }) => unknown;
53
61
  createToolingRuntime: (
54
62
  repoRoot: string,
55
63
  kernel: KernelLike,
56
- options: { generateToolsMarkdown: boolean }
64
+ options: { generateToolsMarkdown: boolean },
57
65
  ) => Promise<ToolingRuntime>;
58
66
  createOperationId?: (toolName: string, featureId?: string) => string;
59
67
  }
@@ -72,7 +80,7 @@ function makeClaims(): ToolClientIdentity {
72
80
  run_id: `run:dashboard:${stamp}`,
73
81
  actor_type: 'orchestrator',
74
82
  actor_id: 'dashboard',
75
- session_id: `dashboard:${randomUUID()}`
83
+ session_id: `dashboard:${randomUUID()}`,
76
84
  };
77
85
  }
78
86
 
@@ -93,16 +101,19 @@ function normalizeError(error: unknown, fallbackCode = 'internal_error'): ToolRe
93
101
  error: {
94
102
  code: typeof maybe.code === 'string' ? maybe.code : fallbackCode,
95
103
  message: typeof maybe.message === 'string' ? maybe.message : 'Operation failed',
96
- details: maybe.details && typeof maybe.details === 'object' ? (maybe.details as Record<string, unknown>) : undefined
97
- }
104
+ details:
105
+ maybe.details && typeof maybe.details === 'object'
106
+ ? (maybe.details as Record<string, unknown>)
107
+ : undefined,
108
+ },
98
109
  };
99
110
  }
100
111
  return {
101
112
  ok: false,
102
113
  error: {
103
114
  code: fallbackCode,
104
- message: typeof error === 'string' ? error : 'Operation failed'
105
- }
115
+ message: typeof error === 'string' ? error : 'Operation failed',
116
+ },
106
117
  };
107
118
  }
108
119
 
@@ -140,11 +151,12 @@ async function getRuntime(repoRoot: string): Promise<DashboardToolRuntime> {
140
151
  await kernel.ensureLoaded();
141
152
 
142
153
  try {
143
- const agentsConfig = typeof kernel.getAgentsConfig === 'function' ? kernel.getAgentsConfig() : undefined;
154
+ const agentsConfig =
155
+ typeof kernel.getAgentsConfig === 'function' ? kernel.getAgentsConfig() : undefined;
144
156
  const selection = bridge.resolveProviderSelection({
145
157
  cli: {},
146
158
  env: process.env,
147
- agentsConfig
159
+ agentsConfig,
148
160
  });
149
161
  kernel.setProvider(new bridge.NullWorkerProvider(selection));
150
162
  } catch {
@@ -153,15 +165,17 @@ async function getRuntime(repoRoot: string): Promise<DashboardToolRuntime> {
153
165
  provider: 'custom',
154
166
  model: 'dashboard-default',
155
167
  provider_config_env: null,
156
- provider_config_ref: null
157
- })
168
+ provider_config_ref: null,
169
+ }),
158
170
  );
159
171
  }
160
172
 
161
- const tooling = await bridge.createToolingRuntime(repoRoot, kernel, { generateToolsMarkdown: false });
173
+ const tooling = await bridge.createToolingRuntime(repoRoot, kernel, {
174
+ generateToolsMarkdown: false,
175
+ });
162
176
  const runtime = {
163
177
  client: tooling.inProcessClient,
164
- createOperationId: bridge.createOperationId ?? defaultCreateOperationId
178
+ createOperationId: bridge.createOperationId ?? defaultCreateOperationId,
165
179
  };
166
180
  runtimeCacheByRoot.set(repoRoot, runtime);
167
181
  return runtime;
@@ -170,7 +184,7 @@ async function getRuntime(repoRoot: string): Promise<DashboardToolRuntime> {
170
184
  export async function callOrchestratorTool<TData = Record<string, unknown>>(
171
185
  toolName: string,
172
186
  args: Record<string, unknown>,
173
- options: { mutating?: boolean; featureId?: string; repoRoot?: string } = {}
187
+ options: { mutating?: boolean; featureId?: string; repoRoot?: string } = {},
174
188
  ): Promise<ToolResponse<TData>> {
175
189
  try {
176
190
  const repoRoot = options.repoRoot ?? getAopRoot();
@@ -193,7 +207,7 @@ export async function approveFeatureReview(
193
207
  approvalToken: string,
194
208
  mergeStrategy = 'merge_commit',
195
209
  commitMessage?: string,
196
- repoRoot?: string
210
+ repoRoot?: string,
197
211
  ): Promise<ToolResponse> {
198
212
  return await callOrchestratorTool(
199
213
  TOOLS.FEATURE_READY_TO_MERGE,
@@ -201,17 +215,21 @@ export async function approveFeatureReview(
201
215
  feature_id: featureId,
202
216
  commit_message: commitMessage ?? `feat(${featureId}): merge via dashboard approval`,
203
217
  merge_strategy: mergeStrategy,
204
- user_approval_token: approvalToken
218
+ user_approval_token: approvalToken,
205
219
  },
206
- { mutating: true, featureId, repoRoot }
220
+ { mutating: true, featureId, repoRoot },
207
221
  );
208
222
  }
209
223
 
210
- export async function denyFeatureReview(featureId: string, reason: string, repoRoot?: string): Promise<ToolResponse> {
224
+ export async function denyFeatureReview(
225
+ featureId: string,
226
+ reason: string,
227
+ repoRoot?: string,
228
+ ): Promise<ToolResponse> {
211
229
  const state = await callOrchestratorTool<{ front_matter: { version: number } }>(
212
230
  TOOLS.FEATURE_STATE_GET,
213
231
  { feature_id: featureId },
214
- { repoRoot }
232
+ { repoRoot },
215
233
  );
216
234
  if (!state.ok || !state.data) {
217
235
  return state;
@@ -226,11 +244,11 @@ export async function denyFeatureReview(featureId: string, reason: string, repoR
226
244
  patch: {
227
245
  front_matter: {
228
246
  status: STATUS.BLOCKED,
229
- status_reason: `Dashboard review denied: ${reason}`
230
- }
231
- }
247
+ status_reason: `Dashboard review denied: ${reason}`,
248
+ },
249
+ },
232
250
  },
233
- { mutating: true, featureId, repoRoot }
251
+ { mutating: true, featureId, repoRoot },
234
252
  );
235
253
  if (!patchResult.ok) {
236
254
  return patchResult;
@@ -244,24 +262,29 @@ export async function denyFeatureReview(featureId: string, reason: string, repoR
244
262
  type: 'dashboard_review',
245
263
  decision: 'deny',
246
264
  reason,
247
- reviewed_at: new Date().toISOString()
248
- })
265
+ reviewed_at: new Date().toISOString(),
266
+ }),
249
267
  },
250
- { mutating: true, featureId, repoRoot }
268
+ { mutating: true, featureId, repoRoot },
251
269
  );
252
270
 
253
271
  return patchResult;
254
272
  }
255
273
 
256
- export async function requestFeatureChanges(featureId: string, message: string, repoRoot?: string): Promise<ToolResponse> {
257
- const normalized = message.trim().length > 0 ? message.trim() : 'Please address reviewer feedback and re-run QA.';
274
+ export async function requestFeatureChanges(
275
+ featureId: string,
276
+ message: string,
277
+ repoRoot?: string,
278
+ ): Promise<ToolResponse> {
279
+ const normalized =
280
+ message.trim().length > 0 ? message.trim() : 'Please address reviewer feedback and re-run QA.';
258
281
  const send = await callOrchestratorTool(
259
282
  TOOLS.FEATURE_SEND_MESSAGE,
260
283
  {
261
284
  feature_id: featureId,
262
- message: `Reviewer requested changes:\n${normalized}`
285
+ message: `Reviewer requested changes:\n${normalized}`,
263
286
  },
264
- { mutating: true, featureId, repoRoot }
287
+ { mutating: true, featureId, repoRoot },
265
288
  );
266
289
  if (send.ok) {
267
290
  return send;
@@ -276,9 +299,9 @@ export async function requestFeatureChanges(featureId: string, message: string,
276
299
  decision: 'request_changes',
277
300
  message: normalized,
278
301
  reviewed_at: new Date().toISOString(),
279
- dispatch_fallback: true
280
- })
302
+ dispatch_fallback: true,
303
+ }),
281
304
  },
282
- { mutating: true, featureId, repoRoot }
305
+ { mutating: true, featureId, repoRoot },
283
306
  );
284
307
  }
@@ -3,11 +3,7 @@
3
3
  "compilerOptions": {
4
4
  "target": "ES2017",
5
5
  "baseUrl": ".",
6
- "lib": [
7
- "dom",
8
- "dom.iterable",
9
- "esnext"
10
- ],
6
+ "lib": ["dom", "dom.iterable", "esnext"],
11
7
  "jsx": "preserve",
12
8
  "module": "esnext",
13
9
  "moduleResolution": "bundler",
@@ -16,9 +12,7 @@
16
12
  "strict": true,
17
13
  "skipLibCheck": true,
18
14
  "paths": {
19
- "@/*": [
20
- "./src/*"
21
- ]
15
+ "@/*": ["./src/*"]
22
16
  },
23
17
  "incremental": true,
24
18
  "isolatedModules": true,
@@ -35,7 +29,5 @@
35
29
  ".next/types/**/*.ts",
36
30
  "next.config.js"
37
31
  ],
38
- "exclude": [
39
- "node_modules"
40
- ]
32
+ "exclude": ["node_modules"]
41
33
  }
@@ -1,29 +1,29 @@
1
1
  #!/usr/bin/env node
2
- import { spawn } from "node:child_process";
3
- import { createRequire } from "node:module";
4
- import process from "node:process";
2
+ import { spawn } from 'node:child_process';
3
+ import { createRequire } from 'node:module';
4
+ import process from 'node:process';
5
5
 
6
6
  const require = createRequire(import.meta.url);
7
- const nxCliPath = require.resolve("nx/bin/nx.js");
7
+ const nxCliPath = require.resolve('nx/bin/nx.js');
8
8
 
9
9
  const env = {
10
10
  ...process.env,
11
- NX_DAEMON: process.env.NX_DAEMON ?? "false",
12
- NX_ISOLATE_PLUGINS: process.env.NX_ISOLATE_PLUGINS ?? "false"
11
+ NX_DAEMON: process.env.NX_DAEMON ?? 'false',
12
+ NX_ISOLATE_PLUGINS: process.env.NX_ISOLATE_PLUGINS ?? 'false',
13
13
  };
14
14
 
15
15
  const child = spawn(process.execPath, [nxCliPath, ...process.argv.slice(2)], {
16
- stdio: "inherit",
17
- env
16
+ stdio: 'inherit',
17
+ env,
18
18
  });
19
19
 
20
- child.on("error", (error) => {
20
+ child.on('error', (error) => {
21
21
  const message = error instanceof Error ? error.message : String(error);
22
22
  console.error(`[nx-safe] Failed to execute Nx CLI: ${message}`);
23
23
  process.exit(1);
24
24
  });
25
25
 
26
- child.on("exit", (code, signal) => {
26
+ child.on('exit', (code, signal) => {
27
27
  if (signal) {
28
28
  process.kill(process.pid, signal);
29
29
  return;
@@ -71,6 +71,7 @@ aop delete --feature-id <feature_id> [options]
71
71
  ### 3.4 Response Contract
72
72
 
73
73
  On success:
74
+
74
75
  - `ok: true`
75
76
  - `data.command: "delete"`
76
77
  - `data.feature_id`
@@ -86,6 +87,7 @@ On success:
86
87
  - `runtime_session_assignment_removed`
87
88
 
88
89
  On failure:
90
+
89
91
  - standard normalized error envelope already used by CLI.
90
92
 
91
93
  ---
@@ -153,16 +155,19 @@ Add new tool: `feature.delete`
153
155
  ### 6.2 Schemas
154
156
 
155
157
  Add:
158
+
156
159
  - `agentic/orchestrator/tools/schemas/input/feature.delete.input.schema.json`
157
160
  - `agentic/orchestrator/tools/schemas/output/feature.delete.output.schema.json`
158
161
 
159
162
  Input MUST include:
163
+
160
164
  - `operation_id`
161
165
  - `feature_id`
162
166
  - execution mode fields (`dry_run`/`confirm` or equivalent)
163
167
  - cleanup toggles (`remove_worktree`, `remove_branch`)
164
168
 
165
169
  Output MUST include:
170
+
166
171
  - target `feature_id`
167
172
  - mode (`dry_run`)
168
173
  - deterministic summary fields listed in Section 3.4.