agentic-orchestrator 0.1.6 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (438) hide show
  1. package/.prettierignore +10 -0
  2. package/.prettierrc.json +24 -0
  3. package/CLAUDE.md +3 -2
  4. package/README.md +71 -48
  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 +5 -22
  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/env-file.ts +115 -0
  107. package/apps/control-plane/src/cli/help-command-handler.ts +61 -32
  108. package/apps/control-plane/src/cli/init-command-handler.ts +182 -56
  109. package/apps/control-plane/src/cli/io.ts +7 -3
  110. package/apps/control-plane/src/cli/resume-command-handler.ts +21 -13
  111. package/apps/control-plane/src/cli/retry-command-handler.ts +12 -11
  112. package/apps/control-plane/src/cli/run-command-handler.ts +12 -8
  113. package/apps/control-plane/src/cli/send-command-handler.ts +6 -6
  114. package/apps/control-plane/src/cli/spec-ingestion-service.ts +14 -8
  115. package/apps/control-plane/src/cli/spec-input-resolver.ts +6 -1
  116. package/apps/control-plane/src/cli/spec-utils.ts +2 -2
  117. package/apps/control-plane/src/cli/status-command-handler.ts +13 -12
  118. package/apps/control-plane/src/cli/tooling.ts +3 -3
  119. package/apps/control-plane/src/cli/types.ts +1 -1
  120. package/apps/control-plane/src/core/collisions.ts +27 -10
  121. package/apps/control-plane/src/core/constants.ts +13 -7
  122. package/apps/control-plane/src/core/error-codes.ts +1 -1
  123. package/apps/control-plane/src/core/fs.ts +11 -5
  124. package/apps/control-plane/src/core/gates.ts +53 -27
  125. package/apps/control-plane/src/core/git.ts +18 -6
  126. package/apps/control-plane/src/core/kernel.ts +513 -227
  127. package/apps/control-plane/src/core/patch.ts +7 -3
  128. package/apps/control-plane/src/core/path-layout.ts +5 -1
  129. package/apps/control-plane/src/core/path-rules.ts +19 -5
  130. package/apps/control-plane/src/core/qa-index.ts +26 -12
  131. package/apps/control-plane/src/core/response.ts +9 -6
  132. package/apps/control-plane/src/core/schemas.ts +29 -10
  133. package/apps/control-plane/src/core/tool-caller.ts +1 -1
  134. package/apps/control-plane/src/core/workspace-hooks.ts +5 -5
  135. package/apps/control-plane/src/index.ts +3 -9
  136. package/apps/control-plane/src/interfaces/cli/bootstrap.ts +79 -35
  137. package/apps/control-plane/src/mcp/kernel-tool-executor.ts +7 -3
  138. package/apps/control-plane/src/mcp/mcp-server-adapter.ts +12 -10
  139. package/apps/control-plane/src/mcp/operation-ledger.ts +18 -8
  140. package/apps/control-plane/src/mcp/protocol-contract.ts +2 -2
  141. package/apps/control-plane/src/mcp/runtime-factory.ts +15 -6
  142. package/apps/control-plane/src/mcp/token-auth-verifier.ts +3 -2
  143. package/apps/control-plane/src/mcp/token-claims-validator.ts +11 -7
  144. package/apps/control-plane/src/mcp/tool-authorizer.ts +1 -3
  145. package/apps/control-plane/src/mcp/tool-client.ts +17 -5
  146. package/apps/control-plane/src/mcp/tool-contract-validator.ts +17 -8
  147. package/apps/control-plane/src/mcp/tool-registry-loader.ts +7 -3
  148. package/apps/control-plane/src/mcp/tool-runtime.ts +66 -39
  149. package/apps/control-plane/src/mcp/tools-markdown-generator.ts +6 -1
  150. package/apps/control-plane/src/providers/providers.ts +137 -54
  151. package/apps/control-plane/src/supervisor/build-wave-executor.ts +44 -25
  152. package/apps/control-plane/src/supervisor/planning-wave-executor.ts +46 -33
  153. package/apps/control-plane/src/supervisor/prompt-bundle-loader.ts +1 -1
  154. package/apps/control-plane/src/supervisor/qa-wave-executor.ts +38 -23
  155. package/apps/control-plane/src/supervisor/run-coordinator.ts +71 -36
  156. package/apps/control-plane/src/supervisor/runtime.ts +59 -35
  157. package/apps/control-plane/src/supervisor/session-orchestrator.ts +48 -31
  158. package/apps/control-plane/src/supervisor/types.ts +22 -7
  159. package/apps/control-plane/src/supervisor/worker-decision-loop.ts +30 -20
  160. package/apps/control-plane/test/activity-monitor.spec.ts +54 -30
  161. package/apps/control-plane/test/adapter-registry.spec.ts +5 -5
  162. package/apps/control-plane/test/aop.spec.ts +4 -4
  163. package/apps/control-plane/test/batch-operations.spec.ts +20 -18
  164. package/apps/control-plane/test/bootstrap-attach.spec.ts +52 -19
  165. package/apps/control-plane/test/bootstrap-edge-cases.spec.ts +58 -27
  166. package/apps/control-plane/test/bootstrap.spec.ts +72 -40
  167. package/apps/control-plane/test/cleanup-command.spec.ts +86 -32
  168. package/apps/control-plane/test/cli-helpers.spec.ts +119 -66
  169. package/apps/control-plane/test/cli.spec.ts +1 -1
  170. package/apps/control-plane/test/cli.unit.spec.ts +226 -167
  171. package/apps/control-plane/test/collision-queue.spec.ts +49 -40
  172. package/apps/control-plane/test/collisions.spec.ts +30 -30
  173. package/apps/control-plane/test/core-utils.spec.ts +29 -15
  174. package/apps/control-plane/test/cost-tracking.spec.ts +38 -22
  175. package/apps/control-plane/test/dashboard-api.integration.spec.ts +68 -36
  176. package/apps/control-plane/test/dashboard-client.spec.ts +18 -12
  177. package/apps/control-plane/test/dashboard-command.spec.ts +11 -7
  178. package/apps/control-plane/test/delete-command-handler.spec.ts +49 -41
  179. package/apps/control-plane/test/dependency-scheduler.spec.ts +47 -20
  180. package/apps/control-plane/test/epoch-tracking.spec.ts +9 -9
  181. package/apps/control-plane/test/feature-deletion-service.spec.ts +60 -52
  182. package/apps/control-plane/test/feature-lifecycle.spec.ts +36 -17
  183. package/apps/control-plane/test/gates.spec.ts +101 -81
  184. package/apps/control-plane/test/git-spawn-error.spec.ts +1 -1
  185. package/apps/control-plane/test/helpers.ts +10 -6
  186. package/apps/control-plane/test/incremental-gates.spec.ts +59 -20
  187. package/apps/control-plane/test/init-wizard.spec.ts +328 -68
  188. package/apps/control-plane/test/instance-isolation.spec.ts +43 -10
  189. package/apps/control-plane/test/issue-tracker.spec.ts +368 -128
  190. package/apps/control-plane/test/kernel-collision-replay.spec.ts +50 -29
  191. package/apps/control-plane/test/kernel.branches.spec.ts +64 -40
  192. package/apps/control-plane/test/kernel.coverage.spec.ts +85 -49
  193. package/apps/control-plane/test/kernel.coverage2.spec.ts +109 -65
  194. package/apps/control-plane/test/kernel.spec.ts +134 -51
  195. package/apps/control-plane/test/lock-service.spec.ts +92 -68
  196. package/apps/control-plane/test/mcp-helpers.spec.ts +53 -39
  197. package/apps/control-plane/test/mcp.spec.ts +231 -115
  198. package/apps/control-plane/test/merge-service.spec.ts +142 -94
  199. package/apps/control-plane/test/multi-project.spec.ts +28 -22
  200. package/apps/control-plane/test/notifier-service.spec.ts +136 -92
  201. package/apps/control-plane/test/parallel-gates.spec.ts +51 -35
  202. package/apps/control-plane/test/patch-service.spec.ts +128 -48
  203. package/apps/control-plane/test/performance-analytics.spec.ts +99 -63
  204. package/apps/control-plane/test/plan-service.spec.ts +50 -39
  205. package/apps/control-plane/test/planning-wave-executor.spec.ts +95 -71
  206. package/apps/control-plane/test/policy-loader-service.spec.ts +41 -19
  207. package/apps/control-plane/test/pr-monitor.spec.ts +113 -64
  208. package/apps/control-plane/test/providers.spec.ts +208 -104
  209. package/apps/control-plane/test/qa-index-service.spec.ts +31 -33
  210. package/apps/control-plane/test/qa-index.spec.ts +58 -61
  211. package/apps/control-plane/test/reactions.spec.ts +88 -45
  212. package/apps/control-plane/test/response.spec.ts +5 -5
  213. package/apps/control-plane/test/resume-command.spec.ts +121 -80
  214. package/apps/control-plane/test/run-coordinator.spec.ts +205 -136
  215. package/apps/control-plane/test/schema-date-time.spec.ts +49 -41
  216. package/apps/control-plane/test/service-retry-paths.spec.ts +77 -57
  217. package/apps/control-plane/test/services.spec.ts +147 -129
  218. package/apps/control-plane/test/session-management.spec.ts +136 -74
  219. package/apps/control-plane/test/spec-ingestion.spec.ts +23 -21
  220. package/apps/control-plane/test/spec-input-resolver.spec.ts +11 -10
  221. package/apps/control-plane/test/supervisor-collaborators.spec.ts +168 -121
  222. package/apps/control-plane/test/supervisor.calltool.spec.ts +21 -18
  223. package/apps/control-plane/test/supervisor.spec.ts +67 -43
  224. package/apps/control-plane/test/supervisor.unit.spec.ts +195 -126
  225. package/apps/control-plane/test/token-auth-verifier.spec.ts +29 -14
  226. package/apps/control-plane/test/tool-registry-loader.spec.ts +51 -27
  227. package/apps/control-plane/test/tool-runtime.spec.ts +63 -46
  228. package/apps/control-plane/test/worker-decision-loop.spec.ts +143 -122
  229. package/apps/control-plane/test/workspace-hooks.spec.ts +61 -23
  230. package/apps/control-plane/tsconfig.build.json +2 -7
  231. package/apps/control-plane/tsconfig.json +1 -5
  232. package/apps/control-plane/vitest.config.ts +7 -7
  233. package/config/agentic/orchestrator/adapters.yaml +3 -0
  234. package/config/agentic/orchestrator/agents.yaml +14 -0
  235. package/config/agentic/orchestrator/gates.yaml +28 -0
  236. package/config/agentic/orchestrator/policy.yaml +22 -0
  237. package/config/agentic/orchestrator/prompts/builder.system.md +1 -0
  238. package/config/agentic/orchestrator/prompts/planner.system.md +16 -0
  239. package/config/agentic/orchestrator/prompts/qa.system.md +1 -0
  240. package/dist/apps/control-plane/application/adapters/adapter-registry.js +12 -5
  241. package/dist/apps/control-plane/application/adapters/adapter-registry.js.map +1 -1
  242. package/dist/apps/control-plane/application/multi-project-loader.js +26 -9
  243. package/dist/apps/control-plane/application/multi-project-loader.js.map +1 -1
  244. package/dist/apps/control-plane/application/services/activity-monitor-service.js +7 -7
  245. package/dist/apps/control-plane/application/services/activity-monitor-service.js.map +1 -1
  246. package/dist/apps/control-plane/application/services/collision-queue-service.js +7 -7
  247. package/dist/apps/control-plane/application/services/collision-queue-service.js.map +1 -1
  248. package/dist/apps/control-plane/application/services/cost-tracking-service.js +6 -8
  249. package/dist/apps/control-plane/application/services/cost-tracking-service.js.map +1 -1
  250. package/dist/apps/control-plane/application/services/dependency-scheduler-service.js.map +1 -1
  251. package/dist/apps/control-plane/application/services/feature-deletion-service.js +37 -29
  252. package/dist/apps/control-plane/application/services/feature-deletion-service.js.map +1 -1
  253. package/dist/apps/control-plane/application/services/feature-lifecycle-service.js +10 -10
  254. package/dist/apps/control-plane/application/services/feature-lifecycle-service.js.map +1 -1
  255. package/dist/apps/control-plane/application/services/feature-state-service.js +11 -11
  256. package/dist/apps/control-plane/application/services/feature-state-service.js.map +1 -1
  257. package/dist/apps/control-plane/application/services/gate-interpolation-service.js +3 -1
  258. package/dist/apps/control-plane/application/services/gate-interpolation-service.js.map +1 -1
  259. package/dist/apps/control-plane/application/services/gate-service.js +26 -26
  260. package/dist/apps/control-plane/application/services/gate-service.js.map +1 -1
  261. package/dist/apps/control-plane/application/services/instance-isolation-service.js +1 -1
  262. package/dist/apps/control-plane/application/services/instance-isolation-service.js.map +1 -1
  263. package/dist/apps/control-plane/application/services/issue-tracker-service.js +25 -15
  264. package/dist/apps/control-plane/application/services/issue-tracker-service.js.map +1 -1
  265. package/dist/apps/control-plane/application/services/lock-service.js +32 -32
  266. package/dist/apps/control-plane/application/services/lock-service.js.map +1 -1
  267. package/dist/apps/control-plane/application/services/merge-service.js +41 -27
  268. package/dist/apps/control-plane/application/services/merge-service.js.map +1 -1
  269. package/dist/apps/control-plane/application/services/notifier-service.js +29 -15
  270. package/dist/apps/control-plane/application/services/notifier-service.js.map +1 -1
  271. package/dist/apps/control-plane/application/services/patch-service.js +21 -19
  272. package/dist/apps/control-plane/application/services/patch-service.js.map +1 -1
  273. package/dist/apps/control-plane/application/services/performance-analytics-service.js +4 -4
  274. package/dist/apps/control-plane/application/services/performance-analytics-service.js.map +1 -1
  275. package/dist/apps/control-plane/application/services/plan-service.js +33 -33
  276. package/dist/apps/control-plane/application/services/plan-service.js.map +1 -1
  277. package/dist/apps/control-plane/application/services/policy-loader-service.js.map +1 -1
  278. package/dist/apps/control-plane/application/services/pr-monitor-service.js +23 -11
  279. package/dist/apps/control-plane/application/services/pr-monitor-service.js.map +1 -1
  280. package/dist/apps/control-plane/application/services/qa-index-service.js +11 -11
  281. package/dist/apps/control-plane/application/services/qa-index-service.js.map +1 -1
  282. package/dist/apps/control-plane/application/services/reactions-service.js +13 -9
  283. package/dist/apps/control-plane/application/services/reactions-service.js.map +1 -1
  284. package/dist/apps/control-plane/application/services/reporting-service.js +11 -9
  285. package/dist/apps/control-plane/application/services/reporting-service.js.map +1 -1
  286. package/dist/apps/control-plane/application/services/run-lease-service.js +34 -33
  287. package/dist/apps/control-plane/application/services/run-lease-service.js.map +1 -1
  288. package/dist/apps/control-plane/application/tools/tool-metadata.js +2 -2
  289. package/dist/apps/control-plane/application/tools/tool-router.js.map +1 -1
  290. package/dist/apps/control-plane/cli/attach-command-handler.js +9 -9
  291. package/dist/apps/control-plane/cli/cleanup-command-handler.js +11 -9
  292. package/dist/apps/control-plane/cli/cleanup-command-handler.js.map +1 -1
  293. package/dist/apps/control-plane/cli/cli-argument-parser.js +4 -3
  294. package/dist/apps/control-plane/cli/cli-argument-parser.js.map +1 -1
  295. package/dist/apps/control-plane/cli/dashboard-command-handler.js +23 -7
  296. package/dist/apps/control-plane/cli/dashboard-command-handler.js.map +1 -1
  297. package/dist/apps/control-plane/cli/delete-command-handler.js +7 -7
  298. package/dist/apps/control-plane/cli/env-file.d.ts +4 -0
  299. package/dist/apps/control-plane/cli/env-file.js +89 -0
  300. package/dist/apps/control-plane/cli/env-file.js.map +1 -0
  301. package/dist/apps/control-plane/cli/help-command-handler.js +58 -30
  302. package/dist/apps/control-plane/cli/help-command-handler.js.map +1 -1
  303. package/dist/apps/control-plane/cli/init-command-handler.js +97 -37
  304. package/dist/apps/control-plane/cli/init-command-handler.js.map +1 -1
  305. package/dist/apps/control-plane/cli/io.js +2 -2
  306. package/dist/apps/control-plane/cli/io.js.map +1 -1
  307. package/dist/apps/control-plane/cli/resume-command-handler.js +9 -9
  308. package/dist/apps/control-plane/cli/resume-command-handler.js.map +1 -1
  309. package/dist/apps/control-plane/cli/retry-command-handler.js +12 -11
  310. package/dist/apps/control-plane/cli/retry-command-handler.js.map +1 -1
  311. package/dist/apps/control-plane/cli/run-command-handler.js +12 -8
  312. package/dist/apps/control-plane/cli/run-command-handler.js.map +1 -1
  313. package/dist/apps/control-plane/cli/send-command-handler.js +6 -6
  314. package/dist/apps/control-plane/cli/spec-ingestion-service.js +10 -8
  315. package/dist/apps/control-plane/cli/spec-ingestion-service.js.map +1 -1
  316. package/dist/apps/control-plane/cli/spec-input-resolver.js.map +1 -1
  317. package/dist/apps/control-plane/cli/spec-utils.js.map +1 -1
  318. package/dist/apps/control-plane/cli/status-command-handler.js +8 -8
  319. package/dist/apps/control-plane/cli/status-command-handler.js.map +1 -1
  320. package/dist/apps/control-plane/cli/tooling.js +1 -1
  321. package/dist/apps/control-plane/core/collisions.js +11 -8
  322. package/dist/apps/control-plane/core/collisions.js.map +1 -1
  323. package/dist/apps/control-plane/core/constants.js +13 -7
  324. package/dist/apps/control-plane/core/constants.js.map +1 -1
  325. package/dist/apps/control-plane/core/error-codes.js +1 -1
  326. package/dist/apps/control-plane/core/fs.js.map +1 -1
  327. package/dist/apps/control-plane/core/gates.d.ts +2 -2
  328. package/dist/apps/control-plane/core/gates.js +26 -19
  329. package/dist/apps/control-plane/core/gates.js.map +1 -1
  330. package/dist/apps/control-plane/core/git.js +3 -3
  331. package/dist/apps/control-plane/core/git.js.map +1 -1
  332. package/dist/apps/control-plane/core/kernel.d.ts +1 -0
  333. package/dist/apps/control-plane/core/kernel.js +134 -81
  334. package/dist/apps/control-plane/core/kernel.js.map +1 -1
  335. package/dist/apps/control-plane/core/patch.js +7 -3
  336. package/dist/apps/control-plane/core/patch.js.map +1 -1
  337. package/dist/apps/control-plane/core/path-layout.d.ts +1 -0
  338. package/dist/apps/control-plane/core/path-layout.js +4 -1
  339. package/dist/apps/control-plane/core/path-layout.js.map +1 -1
  340. package/dist/apps/control-plane/core/path-rules.js +3 -1
  341. package/dist/apps/control-plane/core/path-rules.js.map +1 -1
  342. package/dist/apps/control-plane/core/qa-index.js +5 -5
  343. package/dist/apps/control-plane/core/qa-index.js.map +1 -1
  344. package/dist/apps/control-plane/core/response.js +3 -3
  345. package/dist/apps/control-plane/core/response.js.map +1 -1
  346. package/dist/apps/control-plane/core/schemas.js +10 -6
  347. package/dist/apps/control-plane/core/schemas.js.map +1 -1
  348. package/dist/apps/control-plane/core/workspace-hooks.js +3 -3
  349. package/dist/apps/control-plane/index.d.ts +1 -1
  350. package/dist/apps/control-plane/index.js +1 -1
  351. package/dist/apps/control-plane/index.js.map +1 -1
  352. package/dist/apps/control-plane/interfaces/cli/bootstrap.js +40 -23
  353. package/dist/apps/control-plane/interfaces/cli/bootstrap.js.map +1 -1
  354. package/dist/apps/control-plane/mcp/kernel-tool-executor.js +1 -1
  355. package/dist/apps/control-plane/mcp/kernel-tool-executor.js.map +1 -1
  356. package/dist/apps/control-plane/mcp/mcp-server-adapter.js +6 -7
  357. package/dist/apps/control-plane/mcp/mcp-server-adapter.js.map +1 -1
  358. package/dist/apps/control-plane/mcp/operation-ledger.js +5 -5
  359. package/dist/apps/control-plane/mcp/operation-ledger.js.map +1 -1
  360. package/dist/apps/control-plane/mcp/protocol-contract.js +2 -2
  361. package/dist/apps/control-plane/mcp/runtime-factory.js +2 -2
  362. package/dist/apps/control-plane/mcp/runtime-factory.js.map +1 -1
  363. package/dist/apps/control-plane/mcp/token-auth-verifier.js +1 -1
  364. package/dist/apps/control-plane/mcp/token-auth-verifier.js.map +1 -1
  365. package/dist/apps/control-plane/mcp/token-claims-validator.js +5 -5
  366. package/dist/apps/control-plane/mcp/token-claims-validator.js.map +1 -1
  367. package/dist/apps/control-plane/mcp/tool-authorizer.js +1 -3
  368. package/dist/apps/control-plane/mcp/tool-authorizer.js.map +1 -1
  369. package/dist/apps/control-plane/mcp/tool-client.js +2 -2
  370. package/dist/apps/control-plane/mcp/tool-client.js.map +1 -1
  371. package/dist/apps/control-plane/mcp/tool-contract-validator.js +3 -3
  372. package/dist/apps/control-plane/mcp/tool-contract-validator.js.map +1 -1
  373. package/dist/apps/control-plane/mcp/tool-registry-loader.js +1 -1
  374. package/dist/apps/control-plane/mcp/tool-registry-loader.js.map +1 -1
  375. package/dist/apps/control-plane/mcp/tool-runtime.js +17 -17
  376. package/dist/apps/control-plane/mcp/tool-runtime.js.map +1 -1
  377. package/dist/apps/control-plane/mcp/tools-markdown-generator.js +6 -1
  378. package/dist/apps/control-plane/mcp/tools-markdown-generator.js.map +1 -1
  379. package/dist/apps/control-plane/providers/providers.d.ts +3 -2
  380. package/dist/apps/control-plane/providers/providers.js +81 -39
  381. package/dist/apps/control-plane/providers/providers.js.map +1 -1
  382. package/dist/apps/control-plane/supervisor/build-wave-executor.js +12 -12
  383. package/dist/apps/control-plane/supervisor/build-wave-executor.js.map +1 -1
  384. package/dist/apps/control-plane/supervisor/planning-wave-executor.js +19 -16
  385. package/dist/apps/control-plane/supervisor/planning-wave-executor.js.map +1 -1
  386. package/dist/apps/control-plane/supervisor/prompt-bundle-loader.js +1 -1
  387. package/dist/apps/control-plane/supervisor/qa-wave-executor.js +13 -13
  388. package/dist/apps/control-plane/supervisor/qa-wave-executor.js.map +1 -1
  389. package/dist/apps/control-plane/supervisor/run-coordinator.js +37 -20
  390. package/dist/apps/control-plane/supervisor/run-coordinator.js.map +1 -1
  391. package/dist/apps/control-plane/supervisor/runtime.js +25 -21
  392. package/dist/apps/control-plane/supervisor/runtime.js.map +1 -1
  393. package/dist/apps/control-plane/supervisor/session-orchestrator.js +29 -23
  394. package/dist/apps/control-plane/supervisor/session-orchestrator.js.map +1 -1
  395. package/dist/apps/control-plane/supervisor/types.d.ts +3 -3
  396. package/dist/apps/control-plane/supervisor/types.js.map +1 -1
  397. package/dist/apps/control-plane/supervisor/worker-decision-loop.js +14 -16
  398. package/dist/apps/control-plane/supervisor/worker-decision-loop.js.map +1 -1
  399. package/eslint.config.mjs +20 -20
  400. package/example-configurations/README.md +1 -1
  401. package/example-configurations/java/agents.yaml +3 -3
  402. package/example-configurations/java/policy.yaml +1 -1
  403. package/example-configurations/node/agents.yaml +3 -3
  404. package/example-configurations/node/policy.yaml +1 -1
  405. package/package.json +10 -5
  406. package/packages/web-dashboard/next.config.js +2 -2
  407. package/packages/web-dashboard/src/app/api/actions/route.ts +25 -9
  408. package/packages/web-dashboard/src/app/api/events/route.ts +20 -6
  409. package/packages/web-dashboard/src/app/api/features/[id]/checkout/route.ts +88 -37
  410. package/packages/web-dashboard/src/app/api/features/[id]/evidence/[artifact]/route.ts +8 -5
  411. package/packages/web-dashboard/src/app/api/features/[id]/review/route.ts +27 -9
  412. package/packages/web-dashboard/src/app/api/features/[id]/route.ts +5 -2
  413. package/packages/web-dashboard/src/app/api/projects/route.ts +5 -5
  414. package/packages/web-dashboard/src/app/globals.css +10 -2
  415. package/packages/web-dashboard/src/app/page.tsx +100 -37
  416. package/packages/web-dashboard/src/lib/aop-client.ts +68 -37
  417. package/packages/web-dashboard/src/lib/multi-project-config.ts +28 -7
  418. package/packages/web-dashboard/src/lib/orchestrator-tools.ts +59 -36
  419. package/packages/web-dashboard/tsconfig.json +3 -11
  420. package/scripts/nx-safe.mjs +10 -10
  421. package/spec-files/completed/agentic_orchestrator_cli_delete_command_spec.md +5 -0
  422. package/spec-files/completed/agentic_orchestrator_feature_gaps_closure_spec.md +189 -90
  423. package/spec-files/completed/agentic_orchestrator_init_policy_ux_simplification_spec.md +49 -16
  424. package/spec-files/completed/agentic_orchestrator_mcp_formalization_spec.md +24 -1
  425. package/spec-files/completed/agentic_orchestrator_single_global_orchestrator_spec.md +9 -0
  426. package/spec-files/completed/agentic_orchestrator_spec.md +171 -75
  427. package/spec-files/completed/agentic_orchestrator_validator_hardening_spec.md +25 -17
  428. package/spec-files/outstanding/agentic_orchestrator_artifact_database_publishing_spec.md +40 -5
  429. package/spec-files/outstanding/agentic_orchestrator_enterprise_governance_dashboard_spec.md +23 -12
  430. package/spec-files/outstanding/agentic_orchestrator_knowledge_canary_spec.md +16 -4
  431. package/spec-files/outstanding/agentic_orchestrator_observability_integrity_diagnostics_spec.md +42 -2
  432. package/spec-files/outstanding/agentic_orchestrator_performance_improvements_spec.md +209 -130
  433. package/spec-files/outstanding/agentic_orchestrator_planning_review_quality_spec.md +56 -3
  434. package/spec-files/outstanding/agentic_orchestrator_productization_commercial_spec.md +77 -10
  435. package/spec-files/outstanding/agentic_orchestrator_provider_auth_bootstrap_spec.md +384 -0
  436. package/spec-files/outstanding/agentic_orchestrator_quality_adoption_execution_spec.md +29 -14
  437. package/spec-files/progress.md +186 -175
  438. package/tsconfig.json +2 -8
@@ -14,6 +14,7 @@
14
14
  ### 0.1 Required Standards
15
15
 
16
16
  All implementation MUST preserve:
17
+
17
18
  - deterministic runtime behavior and MCP contract semantics
18
19
  - existing CLI command names (`aop init`, `aop run`, etc.)
19
20
  - schema validation as a hard gate for loaded policy
@@ -23,6 +24,7 @@ All implementation MUST preserve:
23
24
  ### 0.2 Upstream Inputs
24
25
 
25
26
  Implementing agents MUST read:
27
+
26
28
  - `apps/control-plane/src/cli/init-command-handler.ts`
27
29
  - `apps/control-plane/src/cli/cli-argument-parser.ts`
28
30
  - `apps/control-plane/src/cli/types.ts`
@@ -38,6 +40,7 @@ Implementing agents MUST read:
38
40
  ### 0.3 Current Baseline (Already Implemented in M39 Pre-Work)
39
41
 
40
42
  As of 2026-03-03, these pieces are already done:
43
+
41
44
  - `aop init` no longer copies schema files into target repos.
42
45
  - schema loading can fall back to bundled AOP schemas when repo-local schemas are absent.
43
46
  - `aop init` captures provider/model/SCM defaults.
@@ -89,6 +92,7 @@ Default users should configure only common controls; advanced users can opt into
89
92
  ### ADP-1: Defaults-First Policy Composition
90
93
 
91
94
  Runtime will always build a canonical full policy by:
95
+
92
96
  1. loading bundled `policy.defaults.yaml`,
93
97
  2. loading user `agentic/orchestrator/policy.yaml`,
94
98
  3. deep-merging user overrides over defaults,
@@ -105,6 +109,7 @@ Default `aop init` generates lean policy.
105
109
  ### ADP-3: Deterministic Merge Semantics
106
110
 
107
111
  Policy merge must use deterministic rules:
112
+
108
113
  - scalar values: override defaults
109
114
  - objects: recursive merge
110
115
  - arrays: replace when key exists in user policy
@@ -114,6 +119,7 @@ Policy merge must use deterministic rules:
114
119
  ### ADP-4: Validation of User Shape + Canonical Shape
115
120
 
116
121
  Two validations are required:
122
+
117
123
  1. optional user-shape validation (`policy.user.schema.json`) for clearer authoring errors
118
124
  2. mandatory canonical full validation (`policy.schema.json`) after merge
119
125
 
@@ -126,6 +132,7 @@ If user-shape validation is omitted for MVP, canonical full validation remains m
126
132
  ### 4.1 Default `aop init` Output (Lean Policy)
127
133
 
128
134
  Lean policy should include only common knobs:
135
+
129
136
  - `version`
130
137
  - `worktree.base_branch`
131
138
  - `supervisor.max_parallel_gate_runs`
@@ -155,11 +162,11 @@ notifications:
155
162
  enabled: false
156
163
  slack:
157
164
  enabled: false
158
- webhook: ""
159
- channel: "#aop-alerts"
165
+ webhook: ''
166
+ channel: '#aop-alerts'
160
167
  webhook:
161
168
  enabled: false
162
- url: ""
169
+ url: ''
163
170
  ```
164
171
 
165
172
  ### 4.2 Advanced `aop init --advanced-policy` Output
@@ -169,6 +176,7 @@ Generates current fully expanded `policy.yaml` template with all advanced fields
169
176
  ### 4.3 Init Prompt Surface
170
177
 
171
178
  Interactive wizard continues to collect:
179
+
172
180
  - default provider
173
181
  - default model
174
182
  - SCM provider
@@ -179,6 +187,7 @@ Interactive wizard continues to collect:
179
187
  - framework for gates
180
188
 
181
189
  `adapters.yaml` activity-detector mapping:
190
+
182
191
  - `claude` -> `claude-jsonl`
183
192
  - `codex` -> `codex-rpc`
184
193
  - everything else -> `process-heuristic`
@@ -192,12 +201,14 @@ Interactive wizard continues to collect:
192
201
  ### INIT-T-001: Add Advanced Policy CLI Flag
193
202
 
194
203
  **Files:**
204
+
195
205
  - `apps/control-plane/src/cli/types.ts`
196
206
  - `apps/control-plane/src/cli/cli-argument-parser.ts`
197
207
  - `apps/control-plane/src/cli/help-command-handler.ts`
198
208
  - `apps/control-plane/src/interfaces/cli/bootstrap.ts`
199
209
 
200
210
  **Changes:**
211
+
201
212
  - add `advanced_policy?: boolean` to `CliOptions`
202
213
  - parse `--advanced-policy`
203
214
  - pass through to `InitCommandHandler.execute({ auto, force, advanced_policy })`
@@ -208,6 +219,7 @@ Interactive wizard continues to collect:
208
219
  **File:** `apps/control-plane/src/cli/init-command-handler.ts`
209
220
 
210
221
  **Changes:**
222
+
211
223
  - add `advanced_policy?: boolean` to `InitOptions`
212
224
  - branch policy template generation:
213
225
  - `advanced_policy === true` -> full template
@@ -218,6 +230,7 @@ Interactive wizard continues to collect:
218
230
  **File:** `apps/control-plane/src/cli/init-command-handler.ts`
219
231
 
220
232
  **Changes:**
233
+
221
234
  - keep existing full generator as `generateFullPolicyYaml(...)`
222
235
  - add `generateLeanPolicyYaml(...)`
223
236
  - keep `gates.yaml`, `agents.yaml`, `adapters.yaml`, prompts generation unchanged
@@ -229,15 +242,18 @@ Interactive wizard continues to collect:
229
242
  ### INIT-T-004: Add Bundled Defaults Artifact
230
243
 
231
244
  **New file:**
245
+
232
246
  - `agentic/orchestrator/defaults/policy.defaults.yaml`
233
247
 
234
248
  **Requirements:**
249
+
235
250
  - this file represents canonical defaults equivalent to current full template semantics
236
251
  - should be versioned and reviewed like other bundled contracts
237
252
 
238
253
  ### INIT-T-005: Implement Policy Composition Loader
239
254
 
240
255
  **New file (recommended):**
256
+
241
257
  - `apps/control-plane/src/application/services/policy-loader-service.ts`
242
258
 
243
259
  **Interface (suggested):**
@@ -248,10 +264,15 @@ interface LoadPolicyResult {
248
264
  mergedPolicy: Record<string, unknown>;
249
265
  }
250
266
 
251
- async function loadComposedPolicy(repoRoot: string, policyPath: string, schemaRegistry: SchemaRegistry): Promise<LoadPolicyResult>;
267
+ async function loadComposedPolicy(
268
+ repoRoot: string,
269
+ policyPath: string,
270
+ schemaRegistry: SchemaRegistry,
271
+ ): Promise<LoadPolicyResult>;
252
272
  ```
253
273
 
254
274
  **Behavior:**
275
+
255
276
  - read defaults YAML (bundled path, not repo path)
256
277
  - read user policy YAML (repo path)
257
278
  - deep merge according to ADP-3 semantics
@@ -308,13 +329,16 @@ function mergePolicy(defaults: unknown, user: unknown): unknown {
308
329
  ### INIT-T-007: Optional User-Shape Schema
309
330
 
310
331
  **New file (optional but recommended):**
332
+
311
333
  - `agentic/orchestrator/schemas/policy.user.schema.json`
312
334
 
313
335
  **Purpose:**
336
+
314
337
  - validate lean authoring keys for better error messages before merge
315
338
  - canonical enforcement still happens via full schema on merged result
316
339
 
317
340
  **Schema policy:**
341
+
318
342
  - `additionalProperties: false` at top level for lean mode.
319
343
  - explicitly allow only intended user-editable sections.
320
344
  - do not include internal sections (`locks`, `rbac`, `config_precedence`, etc.) in lean schema.
@@ -326,11 +350,13 @@ function mergePolicy(defaults: unknown, user: unknown): unknown {
326
350
  ### INIT-T-008: Documentation Updates
327
351
 
328
352
  **Files:**
353
+
329
354
  - `README.md`
330
355
  - `agentic/orchestrator/tools.md` (if references policy generation behavior)
331
356
  - any init command docs/examples
332
357
 
333
358
  **Documentation requirements:**
359
+
334
360
  - clearly separate “common config” vs “advanced policy config”
335
361
  - add `--advanced-policy` usage examples
336
362
  - document merge semantics and where defaults live
@@ -340,6 +366,7 @@ function mergePolicy(defaults: unknown, user: unknown): unknown {
340
366
  **File:** `apps/control-plane/src/cli/init-command-handler.ts`
341
367
 
342
368
  **Changes:**
369
+
343
370
  - `next_steps` output should state whether lean or advanced policy was generated
344
371
  - mention `--advanced-policy` as escape hatch when lean mode is used
345
372
 
@@ -347,18 +374,18 @@ function mergePolicy(defaults: unknown, user: unknown): unknown {
347
374
 
348
375
  ## 6. File-Level Delta Matrix
349
376
 
350
- | File | Change Type | Scope |
351
- |---|---|---|
352
- | `apps/control-plane/src/cli/types.ts` | modify | add `advanced_policy` option |
353
- | `apps/control-plane/src/cli/cli-argument-parser.ts` | modify | parse `--advanced-policy` |
354
- | `apps/control-plane/src/cli/help-command-handler.ts` | modify | help text for new flag |
355
- | `apps/control-plane/src/interfaces/cli/bootstrap.ts` | modify | pass flag into init handler |
356
- | `apps/control-plane/src/cli/init-command-handler.ts` | modify | lean/full policy generation |
357
- | `apps/control-plane/src/core/kernel.ts` | modify | use composed policy loader |
358
- | `apps/control-plane/src/application/services/policy-loader-service.ts` | add | defaults + user merge + validate |
359
- | `agentic/orchestrator/defaults/policy.defaults.yaml` | add | bundled canonical defaults |
360
- | `agentic/orchestrator/schemas/policy.user.schema.json` | add (optional) | lean user policy shape |
361
- | `README.md` | modify | init UX and policy authoring docs |
377
+ | File | Change Type | Scope |
378
+ | ---------------------------------------------------------------------- | -------------- | --------------------------------- |
379
+ | `apps/control-plane/src/cli/types.ts` | modify | add `advanced_policy` option |
380
+ | `apps/control-plane/src/cli/cli-argument-parser.ts` | modify | parse `--advanced-policy` |
381
+ | `apps/control-plane/src/cli/help-command-handler.ts` | modify | help text for new flag |
382
+ | `apps/control-plane/src/interfaces/cli/bootstrap.ts` | modify | pass flag into init handler |
383
+ | `apps/control-plane/src/cli/init-command-handler.ts` | modify | lean/full policy generation |
384
+ | `apps/control-plane/src/core/kernel.ts` | modify | use composed policy loader |
385
+ | `apps/control-plane/src/application/services/policy-loader-service.ts` | add | defaults + user merge + validate |
386
+ | `agentic/orchestrator/defaults/policy.defaults.yaml` | add | bundled canonical defaults |
387
+ | `agentic/orchestrator/schemas/policy.user.schema.json` | add (optional) | lean user policy shape |
388
+ | `README.md` | modify | init UX and policy authoring docs |
362
389
 
363
390
  ---
364
391
 
@@ -393,6 +420,7 @@ function mergePolicy(defaults: unknown, user: unknown): unknown {
393
420
  **File:** `apps/control-plane/test/init-wizard.spec.ts`
394
421
 
395
422
  Add:
423
+
396
424
  - `GIVEN_default_init_WHEN_policy_generated_THEN_policy_is_lean_shape`
397
425
  - `GIVEN_advanced_policy_flag_WHEN_policy_generated_THEN_policy_is_full_shape`
398
426
  - `GIVEN_advanced_policy_flag_WHEN_help_rendered_THEN_flag_is_documented`
@@ -402,6 +430,7 @@ Add:
402
430
  **New file:** `apps/control-plane/test/policy-loader-service.spec.ts`
403
431
 
404
432
  Add:
433
+
405
434
  - `GIVEN_defaults_and_lean_user_policy_WHEN_composed_THEN_merged_policy_is_valid`
406
435
  - `GIVEN_full_user_policy_WHEN_composed_THEN_user_values_override_defaults`
407
436
  - `GIVEN_array_override_WHEN_composed_THEN_array_replaces_default_array`
@@ -412,12 +441,14 @@ Add:
412
441
  **File:** `apps/control-plane/test/kernel.spec.ts`
413
442
 
414
443
  Add:
444
+
415
445
  - `GIVEN_lean_policy_repo_WHEN_kernel_loads_THEN_runtime_boots_successfully`
416
446
  - `GIVEN_full_policy_repo_WHEN_kernel_loads_THEN_runtime_boots_successfully`
417
447
 
418
448
  ### 8.4 Regression Test Runs
419
449
 
420
450
  Required run list:
451
+
421
452
  - `npm run lint`
422
453
  - `npm run typecheck`
423
454
  - `npm test`
@@ -427,6 +458,7 @@ Required run list:
427
458
  ### 8.5 Determinism and Edge Cases (Required)
428
459
 
429
460
  Add explicit tests for:
461
+
430
462
  - merge determinism with object key order differences (same result hash)
431
463
  - array replacement semantics for `required_modes` and `protected_areas`
432
464
  - missing defaults artifact error path (clear actionable message)
@@ -467,6 +499,7 @@ Document lean default and advanced mode; include migration note for teams that p
467
499
  ## 11. Definition of Done
468
500
 
469
501
  This spec is complete when:
502
+
470
503
  1. INIT-T-001 through INIT-T-009 are implemented.
471
504
  2. acceptance criteria in Section 7 are all checked.
472
505
  3. test plan in Section 8 passes in CI.
@@ -82,6 +82,7 @@ All mutating tools MUST require `operation_id`.
82
82
  ### 3.5 Hybrid Transport Rollout
83
83
 
84
84
  `ToolClient` abstraction is mandatory:
85
+
85
86
  - `InProcessToolClient` for tests/fallback.
86
87
  - `McpToolClient` for production path.
87
88
 
@@ -109,6 +110,7 @@ agentic/
109
110
  ### 4.1 `catalog.json` Contract
110
111
 
111
112
  Each tool entry MUST contain:
113
+
112
114
  - `name`
113
115
  - `description`
114
116
  - `input_schema_ref`
@@ -121,6 +123,7 @@ Each tool entry MUST contain:
121
123
  ### 4.2 `protocol.json` Contract
122
124
 
123
125
  Must pin:
126
+
124
127
  - MCP protocol version supported
125
128
  - SDK package + version
126
129
  - enabled transport modes (`stdio` required; others optional)
@@ -128,6 +131,7 @@ Must pin:
128
131
  ### 4.3 Error Envelope
129
132
 
130
133
  All failures MUST return:
134
+
131
135
  - `ok: false`
132
136
  - `error.code`
133
137
  - `error.message`
@@ -139,28 +143,35 @@ All failures MUST return:
139
143
  ## 5. Runtime Components
140
144
 
141
145
  1. `ToolRegistryLoader`
146
+
142
147
  - loads registry
143
148
  - validates uniqueness and schema refs
144
149
 
145
150
  2. `ToolContractValidator`
151
+
146
152
  - validates input pre-handler
147
153
  - validates output post-handler
148
154
 
149
155
  3. `TokenAuthVerifier`
156
+
150
157
  - verifies signature and expiry
151
158
  - extracts trusted actor claims
152
159
 
153
160
  4. `ToolAuthorizer`
161
+
154
162
  - applies intersection of registry roles and policy roles
155
163
 
156
164
  5. `OperationLedger`
165
+
157
166
  - writes and resolves idempotent operation outcomes for mutating calls
158
167
 
159
168
  6. `KernelToolExecutor`
169
+
160
170
  - maps `handler_id` to domain method call
161
171
  - normalizes errors
162
172
 
163
173
  7. `McpServerAdapter`
174
+
164
175
  - implements protocol endpoints via registry/executor
165
176
 
166
177
  ---
@@ -170,6 +181,7 @@ All failures MUST return:
170
181
  ### 6.1 Token Claims
171
182
 
172
183
  Required claims:
184
+
173
185
  - `run_id`
174
186
  - `session_id`
175
187
  - `actor_type`
@@ -178,6 +190,7 @@ Required claims:
178
190
  - `expires_at`
179
191
 
180
192
  Optional claims:
193
+
181
194
  - `feature_scope` (for feature-limited workers)
182
195
 
183
196
  ### 6.2 Validation Rules
@@ -200,6 +213,7 @@ Optional claims:
200
213
  ### 7.1 Mutating Tools
201
214
 
202
215
  Mutating tools include at least:
216
+
203
217
  - `feature.init`
204
218
  - `feature.state_patch`
205
219
  - `feature.log_append`
@@ -227,6 +241,7 @@ Mutating tools include at least:
227
241
  ### 8.1 Pinning Requirement
228
242
 
229
243
  Implementation MUST pin and document:
244
+
230
245
  - MCP protocol version
231
246
  - SDK package/version
232
247
  - transport implementation details
@@ -242,6 +257,7 @@ Implementation MUST pin and document:
242
257
  ## 9. Observability Contract
243
258
 
244
259
  Every tool call MUST emit structured logs with:
260
+
245
261
  - `run_id`
246
262
  - `operation_id` (if mutating)
247
263
  - `feature_id` (if applicable)
@@ -252,6 +268,7 @@ Every tool call MUST emit structured logs with:
252
268
  - `error_code` (if any)
253
269
 
254
270
  Metrics MUST include:
271
+
255
272
  - calls by tool/role
256
273
  - failure rates by error code
257
274
  - retry and idempotency hit rates
@@ -286,6 +303,7 @@ This plan coordinates this spec and `agentic_orchestrator_single_global_orchestr
286
303
  - bind existing handlers via `handler_id`
287
304
 
288
305
  Exit gate:
306
+
289
307
  - registry validates
290
308
  - generated tools doc matches registry
291
309
 
@@ -295,6 +313,7 @@ Exit gate:
295
313
  - operation ledger and mutating call idempotency
296
314
 
297
315
  Exit gate:
316
+
298
317
  - auth failure paths tested
299
318
  - duplicate mutation calls are safe
300
319
 
@@ -304,6 +323,7 @@ Exit gate:
304
323
  - pin protocol and sdk versions
305
324
 
306
325
  Exit gate:
326
+
307
327
  - protocol conformance tests pass
308
328
 
309
329
  ### M13: ToolClient Migration
@@ -312,6 +332,7 @@ Exit gate:
312
332
  - migrate CLI/Supervisor call paths
313
333
 
314
334
  Exit gate:
335
+
315
336
  - end-to-end runs on both transports
316
337
 
317
338
  ### M14-M17: Global Orchestrator Topology Refactor
@@ -319,6 +340,7 @@ Exit gate:
319
340
  - executed per global-orchestrator spec milestones
320
341
 
321
342
  Exit gate:
343
+
322
344
  - session topology invariants pass (`1 + 3N`)
323
345
 
324
346
  ### M18: Production Promotion
@@ -327,6 +349,7 @@ Exit gate:
327
349
  - maintain in-process fallback for tests/recovery only
328
350
 
329
351
  Exit gate:
352
+
330
353
  - parity suite green
331
354
  - rollout checklist signed off
332
355
 
@@ -343,6 +366,7 @@ Exit gate:
343
366
  ### 12.2 Conformance Suite
344
367
 
345
368
  Same scenario must pass via both transports for critical paths:
369
+
346
370
  - init -> plan -> patch -> gates -> merge
347
371
  - lock conflict and collision outcomes
348
372
  - retried mutation calls
@@ -376,4 +400,3 @@ Same scenario must pass via both transports for critical paths:
376
400
  - Mitigation: keep in-process fallback until M18 exit gate.
377
401
  - Risk: schema churn causing breakages.
378
402
  - Mitigation: strict versioning and migration policy.
379
-
@@ -37,6 +37,7 @@
37
37
  Current behavior creates per-feature orchestrator sessions (`4N`).
38
38
 
39
39
  Target behavior:
40
+
40
41
  - one global orchestrator session per run
41
42
  - worker sessions per active feature
42
43
  - queued features do not allocate worker sessions
@@ -55,6 +56,7 @@ Queued features are excluded from `N` until promoted to active.
55
56
  A repo must have at most one active orchestrator run at a time.
56
57
 
57
58
  Canonical lease fields in index:
59
+
58
60
  - `runtime_sessions.run_id`
59
61
  - `runtime_sessions.owner_instance_id`
60
62
  - `runtime_sessions.lease_id`
@@ -63,11 +65,13 @@ Canonical lease fields in index:
63
65
  ### 3.2 Start Behavior
64
66
 
65
67
  On `aop run` start:
68
+
66
69
  1. acquire run lease if absent
67
70
  2. if active lease exists and is fresh -> fail with `run_already_active`
68
71
  3. if active lease stale and caller passed takeover flag -> claim lease and continue
69
72
 
70
73
  Takeover contract:
74
+
71
75
  - CLI flag: `--takeover-stale-run`
72
76
  - default (flag absent): stale lease does not get reclaimed automatically
73
77
  - when flag present: reclaim stale lease deterministically and continue
@@ -108,6 +112,7 @@ Queued features MUST NOT consume session slots or violate `1 + 3N`.
108
112
  ### 5.1 `index.json` Runtime Session Object
109
113
 
110
114
  Standardize on one object:
115
+
111
116
  - `runtime_sessions.run_id` (string)
112
117
  - `runtime_sessions.orchestrator_session_id` (string)
113
118
  - `runtime_sessions.provider` (string)
@@ -124,6 +129,7 @@ Standardize on one object:
124
129
  Keep existing `cluster` fields for compatibility.
125
130
 
126
131
  Invariant:
132
+
127
133
  - For each active feature:
128
134
  - `state.cluster.orchestrator_session_id == index.runtime_sessions.orchestrator_session_id`
129
135
 
@@ -137,6 +143,7 @@ Invariant:
137
143
  ## 6. Supervisor Loop Under Global Orchestrator
138
144
 
139
145
  Each loop iteration:
146
+
140
147
  1. collect per-feature summaries
141
148
  2. global orchestrator decides prioritization/arbitration
142
149
  3. dispatch planner/builder/qa work
@@ -144,6 +151,7 @@ Each loop iteration:
144
151
  5. reconcile outcomes and update canonical state
145
152
 
146
153
  Global orchestrator decisions MUST govern:
154
+
147
155
  - lock contention strategy
148
156
  - collision resolution ordering
149
157
  - merge readiness sequencing
@@ -258,6 +266,7 @@ Global orchestrator decisions MUST govern:
258
266
  ## 12. Dependency Note
259
267
 
260
268
  This spec depends on security, idempotency, and transport contracts from:
269
+
261
270
  - `agentic_orchestrator_mcp_formalization_spec.md`
262
271
 
263
272
  Status note (as of February 28, 2026): foundational MCP formalization artifacts and runtime boundaries are implemented; this topology spec now targets the remaining M14-M18 topology changes on top of that baseline.