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
@@ -0,0 +1,10 @@
1
+ node_modules
2
+ dist
3
+ coverage
4
+ .nx
5
+ .worktrees
6
+ .aop
7
+ .next
8
+ package-lock.json
9
+ pnpm-lock.yaml
10
+ pnpm-workspace.yaml
@@ -0,0 +1,24 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/prettierrc",
3
+ "printWidth": 100,
4
+ "tabWidth": 2,
5
+ "useTabs": false,
6
+ "semi": true,
7
+ "singleQuote": true,
8
+ "quoteProps": "as-needed",
9
+ "trailingComma": "all",
10
+ "bracketSpacing": true,
11
+ "bracketSameLine": false,
12
+ "arrowParens": "always",
13
+ "endOfLine": "lf",
14
+ "proseWrap": "preserve",
15
+ "singleAttributePerLine": false,
16
+ "overrides": [
17
+ {
18
+ "files": ["*.yml", "*.yaml"],
19
+ "options": {
20
+ "singleQuote": false
21
+ }
22
+ }
23
+ ]
24
+ }
package/CLAUDE.md CHANGED
@@ -38,7 +38,7 @@ This is an MCP-first, multi-agent orchestrator control plane. The codebase lives
38
38
  - **MCP Tool Runtime** (`mcp/tool-runtime.ts`): Tool execution pipeline with registry-based dispatch, input/output schema validation, role-based authorization, and idempotency tracking via `operation_id`.
39
39
  - **Application Services** (`application/services/`): 12+ focused services (plan, patch, gates, QA, locks, merge, deletion, etc.) implementing port interfaces consumed by the kernel.
40
40
 
41
- ### Configuration Layer (`agentic/orchestrator/`)
41
+ ### Configuration Layer (`config/agentic/orchestrator/`)
42
42
 
43
43
  - `policy.yaml` — Commit/patch/merge policies, lock TTL, RBAC, supervisor iteration limits
44
44
  - `gates.yaml` — Gate profiles (fast/full/merge) with commands and coverage thresholds
@@ -93,6 +93,7 @@ Lines: 90% | Branches: 90% | Functions: 90% | Statements: 90%
93
93
  ### Entry format
94
94
 
95
95
  Each entry must include:
96
+
96
97
  - A sequential number (increment from the last entry)
97
98
  - A short title describing what was done
98
99
  - **Goal** — one sentence on why the change was made
@@ -121,6 +122,6 @@ Each entry must include:
121
122
  When beginning work from a spec file (e.g. `spec-files/agentic_orchestrator_*.md`):
122
123
 
123
124
  1. **Before writing any code**, read the spec and add all planned tasks to the `## Next Tasks:` section of `progress.md`. Use the spec's section numbers as identifiers (e.g. `§3.1 — Add mutating cross-check`).
124
- 2. **As each task completes**, move it out of `## Next Tasks:` and into a new numbered `✅ **Entry N — ...`** in the Completed Tasks section.
125
+ 2. **As each task completes**, move it out of `## Next Tasks:` and into a new numbered `✅ **Entry N — ...`\*\* in the Completed Tasks section.
125
126
  3. **Never leave a completed task in `## Next Tasks:`**. The section must only contain work that hasn't started or isn't finished.
126
127
  4. If a task is blocked or deferred, leave it in `## Next Tasks:` with a `[BLOCKED]` or `[DEFERRED]` annotation and a one-line reason.
package/README.md CHANGED
@@ -120,7 +120,7 @@ Agentic-Orchestrator/
120
120
  │ │ ├── mcp/ # MCP tool runtime and tool-registry-loader
121
121
  │ │ ├── providers/ # provider resolution + adapter
122
122
  │ │ └── supervisor/ # runtime orchestration loop
123
- │ ├── test/ # Vitest suites (71 files / 1155 tests)
123
+ │ ├── test/ # Vitest suites
124
124
  │ ├── project.json # Nx targets
125
125
  │ └── vitest.config.ts
126
126
  ├── docker/
@@ -246,7 +246,13 @@ Behavior:
246
246
  - Provider selection precedence:
247
247
  1. CLI flags (`--agent-provider`, `--agent-model`, `--agent-config`, `--provider-config-env`)
248
248
  2. env vars (`AOP_AGENT_PROVIDER`, `AOP_AGENT_MODEL`, `AOP_AGENT_CONFIG`/`AOP_AGENT_CONFIG_JSON`, `AOP_PROVIDER_CONFIG_ENV`)
249
- 3. `agentic/orchestrator/agents.yaml` runtime defaults
249
+ 3. `config/agentic/orchestrator/agents.yaml` runtime defaults
250
+ - Provider credential resolution (`provider_config_ref`):
251
+ 1. `--provider-config-env <NAME>` if `NAME` exists in env
252
+ 2. `agents.yaml runtime.provider_config_env` if that env var exists
253
+ 3. `AOP_PROVIDER_CONFIG_ENV` fallback:
254
+ - if it looks like an env-var name and that env var exists, use that value (legacy indirection)
255
+ - otherwise use `AOP_PROVIDER_CONFIG_ENV` as the direct credential value
250
256
  - Runtime start:
251
257
  - starts `SupervisorRuntime` with `max_active_features=5`, `max_parallel_gate_runs=3`.
252
258
  - `max_iterations_per_phase` resolves from `policy.yaml` (`supervisor.max_iterations_per_phase`, default `6`).
@@ -376,7 +382,7 @@ When `cleanup.auto_after_merge` is enabled in `policy.yaml`, the runtime automat
376
382
 
377
383
  ### `init`
378
384
 
379
- Initialises agentic orchestrator configuration in the current directory. Generates `policy.yaml`, `gates.yaml`, `agents.yaml`, `adapters.yaml`, and system prompt templates. The wizard also captures default agent `provider`/`model` and `scm-provider`.
385
+ Initialises agentic orchestrator configuration in the current directory. Generates `policy.yaml`, `gates.yaml`, `agents.yaml`, `adapters.yaml`, and system prompt templates. The wizard also captures default agent `provider`/`model`, `scm-provider`, and provider-auth mode.
380
386
 
381
387
  Schema files are bundled with AOP and validated from the installation path; `aop init` does not copy schemas into the target repository.
382
388
 
@@ -406,13 +412,22 @@ aop init --force
406
412
  #### Runtime Policy Composition
407
413
 
408
414
  At runtime the kernel always composes a canonical full policy by:
415
+
409
416
  1. Loading bundled `agentic/orchestrator/defaults/policy.defaults.yaml`
410
- 2. Loading `agentic/orchestrator/policy.yaml` from your repository
417
+ 2. Loading `config/agentic/orchestrator/policy.yaml` from your repository
411
418
  3. Deep-merging user overrides over defaults (scalars replace, objects merge, arrays replace wholesale)
412
419
  4. Validating the merged result against the full `policy.schema.json`
413
420
 
414
421
  Existing repositories with full `policy.yaml` files continue to work without changes — user values override defaults entirely.
415
422
 
423
+ #### Provider Auth Flow In `aop init`
424
+
425
+ - wizard prompt: `Will you use a local agent CLI ... (yes/no)` (default `yes`)
426
+ - if `yes`: init skips `runtime.provider_config_env` in `agents.yaml`
427
+ - if `no`: init asks for provider env var name and checks both process env and repo `.env`
428
+ - if missing: init prompts for a key, stores it in `.env` as `AOP_PROVIDER_CONFIG_ENV`, and writes `runtime.provider_config_env: AOP_PROVIDER_CONFIG_ENV`
429
+ - `aop init --auto` defaults to local-CLI mode and does not emit `provider_config_env`
430
+
416
431
  ### `dashboard`
417
432
 
418
433
  Starts the web dashboard server (`packages/web-dashboard/`). Provides a real-time Kanban view of all features, review approval/denial, checkout, and SSE-based live updates.
@@ -475,31 +490,31 @@ aop help dashboard
475
490
 
476
491
  Supported options:
477
492
 
478
- | Option | Description |
479
- |-------------------------------------------------------|-----------------------------------------------------------------------------------|
480
- | `-fi <PATH>` | Run exactly one spec file |
481
- | `-fl <PATH>` | Resolve all `**/*.md` files recursively in a folder (deterministic lexical order) |
482
- | `--batch` | Batch-ingest all specs; skip already-active features (`run`) |
483
- | `--agent-provider <codex\\|claude\\|gemini\\|custom\\|kiro-cli\\|copilot>` | Provider selection |
484
- | `--agent-model <model-id>` | Model selection |
485
- | `--agent-config <json-object>` | Additional provider-specific agent config (for example command/args payload) |
486
- | `--provider-config-env <ENV_VAR>` | Provider auth/config environment variable name |
487
- | `--transport <mcp\\|inprocess>` | Tool transport selection (default `mcp`) |
488
- | `--takeover-stale-run` | Allow stale run-lease takeover during `run` |
489
- | `--project <name>` | Select project from `multi-project.yaml` (run, status, resume, retry) |
490
- | `--feature-id <id>` | Target feature for `delete`, `cleanup`, `retry`, `send`, `attach` |
491
- | `--dry-run [true\\|false]` | Preview-only mode for `delete` and `cleanup` |
492
- | `--yes` | Confirm destructive `delete` or `cleanup` execution |
493
- | `--remove-worktree [true\\|false]` | Whether to remove `.worktrees/<feature_id>` (default `true`) |
494
- | `--remove-branch <none\\|safe\\|force>` | Local branch cleanup mode (default `none`) |
495
- | `--summary` | Condensed one-line-per-feature output (`status`) |
496
- | `--all` | Aggregate across all projects (`status`); delete all features (`delete`) |
497
- | `--auto` | Non-interactive init with all defaults (`init`) |
498
- | `--force` | Overwrite existing config (`init`); force retry regardless of state (`retry`) |
499
- | `--port <number>` | Dashboard listen port (default `3000`) |
500
- | `--dev` | Start dashboard in Next.js dev mode |
501
- | `--foreground` | Keep dashboard server in the foreground |
502
- | `--message <text>` | Message to deliver to agent session (`send`) |
493
+ | Option | Description |
494
+ | --------------------------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------ | ---------- | --------- | ------------------ |
495
+ | `-fi <PATH>` | Run exactly one spec file |
496
+ | `-fl <PATH>` | Resolve all `**/*.md` files recursively in a folder (deterministic lexical order) |
497
+ | `--batch` | Batch-ingest all specs; skip already-active features (`run`) |
498
+ | `--agent-provider <codex\\ | claude\\ | gemini\\ | custom\\ | kiro-cli\\ | copilot>` | Provider selection |
499
+ | `--agent-model <model-id>` | Model selection |
500
+ | `--agent-config <json-object>` | Additional provider-specific agent config (for example command/args payload) |
501
+ | `--provider-config-env <ENV_VAR>` | Provider auth/config env var name for API-backed providers |
502
+ | `--transport <mcp\\ | inprocess>` | Tool transport selection (default `mcp`) |
503
+ | `--takeover-stale-run` | Allow stale run-lease takeover during `run` |
504
+ | `--project <name>` | Select project from `multi-project.yaml` (run, status, resume, retry) |
505
+ | `--feature-id <id>` | Target feature for `delete`, `cleanup`, `retry`, `send`, `attach` |
506
+ | `--dry-run [true\\ | false]` | Preview-only mode for `delete` and `cleanup` |
507
+ | `--yes` | Confirm destructive `delete` or `cleanup` execution |
508
+ | `--remove-worktree [true\\ | false]` | Whether to remove `.worktrees/<feature_id>` (default `true`) |
509
+ | `--remove-branch <none\\ | safe\\ | force>` | Local branch cleanup mode (default `none`) |
510
+ | `--summary` | Condensed one-line-per-feature output (`status`) |
511
+ | `--all` | Aggregate across all projects (`status`); delete all features (`delete`) |
512
+ | `--auto` | Non-interactive init with all defaults (`init`) |
513
+ | `--force` | Overwrite existing config (`init`); force retry regardless of state (`retry`) |
514
+ | `--port <number>` | Dashboard listen port (default `3000`) |
515
+ | `--dev` | Start dashboard in Next.js dev mode |
516
+ | `--foreground` | Keep dashboard server in the foreground |
517
+ | `--message <text>` | Message to deliver to agent session (`send`) |
503
518
 
504
519
  Validation behavior:
505
520
 
@@ -522,7 +537,15 @@ Provider resolution precedence:
522
537
 
523
538
  1. CLI flags
524
539
  2. env vars (`AOP_AGENT_PROVIDER`, `AOP_AGENT_MODEL`, `AOP_AGENT_CONFIG`/`AOP_AGENT_CONFIG_JSON`, `AOP_PROVIDER_CONFIG_ENV`)
525
- 3. `agentic/orchestrator/agents.yaml` runtime defaults
540
+ 3. `config/agentic/orchestrator/agents.yaml` runtime defaults
541
+
542
+ Provider credential fallback:
543
+
544
+ 1. `--provider-config-env <NAME>` if `NAME` exists
545
+ 2. `runtime.provider_config_env` if that env var exists
546
+ 3. `AOP_PROVIDER_CONFIG_ENV`:
547
+ - `AOP_PROVIDER_CONFIG_ENV=OTHER_ENV` and `OTHER_ENV` exists -> use `OTHER_ENV`
548
+ - otherwise treat `AOP_PROVIDER_CONFIG_ENV` as direct credential value
526
549
 
527
550
  Transport behavior:
528
551
 
@@ -534,7 +557,7 @@ Transport behavior:
534
557
 
535
558
  ## Configuration
536
559
 
537
- ### Policy (`agentic/orchestrator/policy.yaml`)
560
+ ### Policy (`config/agentic/orchestrator/policy.yaml`)
538
561
 
539
562
  Current defaults include:
540
563
 
@@ -553,7 +576,7 @@ Current defaults include:
553
576
  - `issue_tracker` config: provider (`github`/`linear`/`jira`), credentials, and field mapping
554
577
  - `cleanup.auto_after_merge` / `cleanup.grace_period_seconds`: automatic merged-artifact removal
555
578
 
556
- ### Gates (`agentic/orchestrator/gates.yaml`)
579
+ ### Gates (`config/agentic/orchestrator/gates.yaml`)
557
580
 
558
581
  Default profile modes:
559
582
 
@@ -567,19 +590,19 @@ Coverage parser:
567
590
 
568
591
  - `lcov` from `coverage/control-plane/lcov.info`
569
592
 
570
- ### Agents (`agentic/orchestrator/agents.yaml`)
593
+ ### Agents (`config/agentic/orchestrator/agents.yaml`)
571
594
 
572
595
  - role-specific system prompt paths
573
- - default provider/model/config-env fallback values
596
+ - default provider/model values with optional `runtime.provider_config_env` for API-backed providers
574
597
  - optional `runtime.provider_configs.<provider>` objects for provider-specific payloads (for example `kiro-cli chat --agent dev`)
575
598
  - `worktree.post_create` commands and `worktree.symlinks` for workspace hook automation
576
599
  - stack-specific examples: [`example-configurations/node/`](example-configurations/node) and [`example-configurations/java/`](example-configurations/java)
577
600
 
578
- ### Multi-Project (`agentic/orchestrator/multi-project.yaml`)
601
+ ### Multi-Project (`config/agentic/orchestrator/multi-project.yaml`)
579
602
 
580
603
  Optional. Defines multiple independent projects in one repository. Pass `--project <name>` on the CLI to scope commands to a project. `aop status --all` aggregates across all projects. Each project can override `policy` and `gates` paths.
581
604
 
582
- ### Adapter Registry (`agentic/orchestrator/adapters.yaml`)
605
+ ### Adapter Registry (`config/agentic/orchestrator/adapters.yaml`)
583
606
 
584
607
  Optional. Registers custom adapters for `notification-channel`, `activity-detector`, and `scm-provider` slots. Resolves at kernel/supervisor boot.
585
608
 
@@ -600,9 +623,9 @@ This section defines the schema-governed files the target repository must contai
600
623
 
601
624
  Files you provide/configure:
602
625
 
603
- - `agentic/orchestrator/policy.yaml`
604
- - `agentic/orchestrator/gates.yaml`
605
- - `agentic/orchestrator/agents.yaml` (recommended; if present it is schema validated)
626
+ - `config/agentic/orchestrator/policy.yaml`
627
+ - `config/agentic/orchestrator/gates.yaml`
628
+ - `config/agentic/orchestrator/agents.yaml` (recommended; if present it is schema validated)
606
629
  - `.aop/features/<feature_id>/spec.md` (input spec per feature)
607
630
 
608
631
  Files the runtime creates/maintains:
@@ -617,13 +640,13 @@ Files the runtime creates/maintains:
617
640
  ### Schema mapping
618
641
 
619
642
  | Runtime file | Schema file | Required/expected essentials |
620
- |----------------------------------------------------|----------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
643
+ | -------------------------------------------------- | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
621
644
  | `.aop/features/<feature_id>/plan.json` | `agentic/orchestrator/schemas/plan.schema.json` | `feature_id`, `plan_version`, `summary`, `allowed_areas`, `forbidden_areas`, `base_ref`, `files.{create,modify,delete}`, `contracts.{openapi,events,db}`, `acceptance_criteria`, `gate_profile` |
622
645
  | `.aop/features/<feature_id>/state.md` front matter | `agentic/orchestrator/schemas/state.schema.json` | `feature_id`, `version`, `branch`, `worktree_path`, `status`, `gate_profile`, `gates`, `locks.held`, `collisions`, `cluster`, `role_status`, `last_updated` |
623
646
  | `.aop/features/index.json` | `agentic/orchestrator/schemas/index.schema.json` | `version`, `active`, `blocked`, `merged`, `locks`, `lock_leases`, `blocked_queue`, `runtime_sessions.{run_id,orchestrator_session_id,owner_instance_id,lease_expires_at,feature_sessions}` |
624
- | `agentic/orchestrator/gates.yaml` | `agentic/orchestrator/schemas/gates.schema.json` | `version`, `profiles.<profile>.modes.<mode>[{name,cmd,...}]`, optional parser/threshold metadata |
625
- | `agentic/orchestrator/policy.yaml` | `agentic/orchestrator/schemas/policy.schema.json` | commit/merge policy, patch policy, lock config, collision policy, path rules, execution policy, RBAC, Nx/Vitest implementation constraints |
626
- | `agentic/orchestrator/agents.yaml` | `agentic/orchestrator/schemas/agents.schema.json` | `version`, `roles`, `missing_prompt_behavior`, optional runtime defaults |
647
+ | `config/agentic/orchestrator/gates.yaml` | `agentic/orchestrator/schemas/gates.schema.json` | `version`, `profiles.<profile>.modes.<mode>[{name,cmd,...}]`, optional parser/threshold metadata |
648
+ | `config/agentic/orchestrator/policy.yaml` | `agentic/orchestrator/schemas/policy.schema.json` | commit/merge policy, patch policy, lock config, collision policy, path rules, execution policy, RBAC, Nx/Vitest implementation constraints |
649
+ | `config/agentic/orchestrator/agents.yaml` | `agentic/orchestrator/schemas/agents.schema.json` | `version`, `roles`, `missing_prompt_behavior`, optional runtime defaults |
627
650
  | `.aop/features/<feature_id>/qa_test_index.json` | `agentic/orchestrator/schemas/qa_test_index.schema.json` | `feature_id`, `version`, `source_diff_ref`, `items[]` with path/hunks/required_tests/status |
628
651
 
629
652
  ### Important operational notes
@@ -708,7 +731,7 @@ The MCP contracts validator checks: protocol pinning, `catalog.json`/`tools.md`/
708
731
  ### Tool definitions
709
732
 
710
733
  | Tool | Purpose | Mutates state/files | Typical caller role(s) |
711
- |------------------------------|------------------------------------------------------------------------|---------------------|----------------------------------------|
734
+ | ---------------------------- | ---------------------------------------------------------------------- | ------------------- | -------------------------------------- |
712
735
  | `feature.discover_specs` | Discover canonical `spec.md` files under `.aop/features/*` | No | orchestrator, system |
713
736
  | `feature.init` | Initialize feature folder/state and ensure branch/worktree | Yes | orchestrator, system |
714
737
  | `feature.get_context` | Return spec + state + plan + latest evidence + QA index bundle | No | orchestrator, planner, builder, qa |
@@ -790,7 +813,7 @@ From [progress.md](spec-files/progress.md):
790
813
  - Linear and Jira issue tracker adapters with full API-backed status sync
791
814
  - Architecture boundary checks CI-enforced via `npm run validate:architecture` (93 files, 0 violations)
792
815
  - Strict linting enforced (`npm run lint`) and build is lint-gated
793
- - `npm run typecheck` passes; `npm test` passes (68 test files / 899 tests; all per-file coverage ≥ 90%)
816
+ - `npm run typecheck` passes; `npm test` passes (all per-file coverage ≥ 90%)
794
817
 
795
818
  Environment note observed during implementation sessions:
796
819
 
@@ -844,6 +867,6 @@ See [LICENSE](LICENSE).
844
867
  - Implementation log: [progress.md](spec-files/progress.md)
845
868
  - Example bundles: [example-configurations/README.md](example-configurations/README.md)
846
869
  - Tool catalog: [agentic/orchestrator/tools.md](agentic/orchestrator/tools.md)
847
- - Policy config: [agentic/orchestrator/policy.yaml](agentic/orchestrator/policy.yaml)
848
- - Gates config: [agentic/orchestrator/gates.yaml](agentic/orchestrator/gates.yaml)
849
- - Agents config: [agentic/orchestrator/agents.yaml](agentic/orchestrator/agents.yaml)
870
+ - Policy config: [config/agentic/orchestrator/policy.yaml](config/agentic/orchestrator/policy.yaml)
871
+ - Gates config: [config/agentic/orchestrator/gates.yaml](config/agentic/orchestrator/gates.yaml)
872
+ - Agents config: [config/agentic/orchestrator/agents.yaml](config/agentic/orchestrator/agents.yaml)
@@ -27,7 +27,7 @@ locks:
27
27
  multiplier: 2
28
28
  jitter_ms: 150
29
29
  protected_areas:
30
- - agentic/orchestrator/policy.yaml
30
+ - config/agentic/orchestrator/policy.yaml
31
31
  required_modes:
32
32
  - fast
33
33
  - full
@@ -4,6 +4,7 @@ Produce deterministic plan submissions and plan updates that conform to plan sch
4
4
  Avoid speculative edits outside the declared file scope.
5
5
 
6
6
  After each QA wave, perform an explicit reconciliation pass:
7
+
7
8
  - re-read feature context (`feature.get_context`) including spec, accepted plan, QA index summary, and latest gate evidence
8
9
  - verify builder/QA outcomes still satisfy the accepted plan and spec intent
9
10
  - emit `plan.update` when correction gaps exist, with concrete revision reasons
@@ -3,10 +3,7 @@
3
3
  "$id": "https://example.local/agentic/agents.schema.json",
4
4
  "description": "Agent role and runtime provider configuration for the Agentic Orchestrator.",
5
5
  "type": "object",
6
- "required": [
7
- "version",
8
- "roles"
9
- ],
6
+ "required": ["version", "roles"],
10
7
  "additionalProperties": false,
11
8
  "properties": {
12
9
  "version": {
@@ -16,11 +13,7 @@
16
13
  "roles": {
17
14
  "type": "object",
18
15
  "description": "Per-role prompt configuration keyed by role name (planner, builder, qa).",
19
- "required": [
20
- "planner",
21
- "builder",
22
- "qa"
23
- ],
16
+ "required": ["planner", "builder", "qa"],
24
17
  "properties": {
25
18
  "planner": {
26
19
  "$ref": "#/$defs/roleCfg",
@@ -39,10 +32,7 @@
39
32
  "missing_prompt_behavior": {
40
33
  "type": "string",
41
34
  "description": "What to do when a role's system_prompt_path file cannot be read. 'ignore' silently skips it (role gets no system prompt); 'error' throws MISSING_ROLE_PROMPT and aborts the run.",
42
- "enum": [
43
- "ignore",
44
- "error"
45
- ],
35
+ "enum": ["ignore", "error"],
46
36
  "default": "ignore"
47
37
  },
48
38
  "runtime": {
@@ -52,14 +42,7 @@
52
42
  "default_provider": {
53
43
  "type": "string",
54
44
  "description": "Default AI provider name (e.g. 'codex', 'claude', 'gemini'). Overridden by --agent-provider CLI flag or AOP_AGENT_PROVIDER env var.",
55
- "enum": [
56
- "codex",
57
- "claude",
58
- "gemini",
59
- "custom",
60
- "kiro-cli",
61
- "copilot"
62
- ]
45
+ "enum": ["codex", "claude", "gemini", "custom", "kiro-cli", "copilot"]
63
46
  },
64
47
  "default_model": {
65
48
  "type": "string",
@@ -71,7 +54,7 @@
71
54
  },
72
55
  "provider_config_env": {
73
56
  "type": "string",
74
- "description": "Name of an environment variable whose value is a JSON provider-config blob. Takes lower priority than the CLI flag but higher than this file."
57
+ "description": "Optional env var name for API-backed provider credentials/config. Local CLI providers typically omit this. Runtime also supports AOP_PROVIDER_CONFIG_ENV fallback (legacy indirection or direct credential value)."
75
58
  },
76
59
  "provider_configs": {
77
60
  "type": "object",
@@ -4,10 +4,7 @@
4
4
  "description": "Gate profiles defining the verification steps and coverage thresholds used to validate feature branches.",
5
5
  "type": "object",
6
6
  "additionalProperties": false,
7
- "required": [
8
- "version",
9
- "profiles"
10
- ],
7
+ "required": ["version", "profiles"],
11
8
  "properties": {
12
9
  "version": {
13
10
  "type": "number",
@@ -19,9 +16,7 @@
19
16
  "additionalProperties": {
20
17
  "type": "object",
21
18
  "description": "A named gate profile containing one or more execution modes.",
22
- "required": [
23
- "modes"
24
- ],
19
+ "required": ["modes"],
25
20
  "properties": {
26
21
  "modes": {
27
22
  "type": "object",
@@ -30,10 +25,7 @@
30
25
  "type": "array",
31
26
  "items": {
32
27
  "type": "object",
33
- "required": [
34
- "name",
35
- "cmd"
36
- ],
28
+ "required": ["name", "cmd"],
37
29
  "additionalProperties": false,
38
30
  "properties": {
39
31
  "name": {
@@ -127,14 +119,7 @@
127
119
  "description": "Coverage format capabilities declared for this project. Used to select the appropriate coverage parser (e.g. 'lcov', 'junit_xml').",
128
120
  "items": {
129
121
  "type": "string",
130
- "enum": [
131
- "none",
132
- "lcov",
133
- "junit_xml",
134
- "jacoco_xml",
135
- "cobertura_xml",
136
- "custom"
137
- ]
122
+ "enum": ["none", "lcov", "junit_xml", "jacoco_xml", "cobertura_xml", "custom"]
138
123
  }
139
124
  }
140
125
  }
@@ -62,11 +62,7 @@
62
62
  "anyOf": [
63
63
  {
64
64
  "type": "object",
65
- "required": [
66
- "holder",
67
- "lease_id",
68
- "expires_at"
69
- ],
65
+ "required": ["holder", "lease_id", "expires_at"],
70
66
  "properties": {
71
67
  "holder": {
72
68
  "type": "string",
@@ -140,10 +136,7 @@
140
136
  "description": "Features whose plan submission was deferred because one or more declared feature dependencies have not yet merged.",
141
137
  "items": {
142
138
  "type": "object",
143
- "required": [
144
- "feature_id",
145
- "depends_on_unresolved"
146
- ],
139
+ "required": ["feature_id", "depends_on_unresolved"],
147
140
  "properties": {
148
141
  "feature_id": {
149
142
  "type": "string",
@@ -230,11 +223,7 @@
230
223
  "additionalProperties": {
231
224
  "type": "object",
232
225
  "additionalProperties": false,
233
- "required": [
234
- "planner_session_id",
235
- "builder_session_id",
236
- "qa_session_id"
237
- ],
226
+ "required": ["planner_session_id", "builder_session_id", "qa_session_id"],
238
227
  "properties": {
239
228
  "planner_session_id": {
240
229
  "type": "string",
@@ -3,10 +3,7 @@
3
3
  "$id": "https://example.local/agentic/multi-project.schema.json",
4
4
  "description": "Multi-project workspace configuration stored in agentic/orchestrator/multi-project.yaml. Defines multiple repository projects managed by a single orchestrator installation.",
5
5
  "type": "object",
6
- "required": [
7
- "version",
8
- "projects"
9
- ],
6
+ "required": ["version", "projects"],
10
7
  "additionalProperties": false,
11
8
  "properties": {
12
9
  "version": {
@@ -65,10 +62,7 @@
65
62
  "minItems": 1,
66
63
  "items": {
67
64
  "type": "object",
68
- "required": [
69
- "name",
70
- "path"
71
- ],
65
+ "required": ["name", "path"],
72
66
  "additionalProperties": false,
73
67
  "properties": {
74
68
  "name": {
@@ -58,11 +58,7 @@
58
58
  "type": "object",
59
59
  "description": "Planned file operations. When a plan is present, every patched file must appear in one of these lists.",
60
60
  "additionalProperties": false,
61
- "required": [
62
- "create",
63
- "modify",
64
- "delete"
65
- ],
61
+ "required": ["create", "modify", "delete"],
66
62
  "properties": {
67
63
  "create": {
68
64
  "type": "array",
@@ -94,34 +90,21 @@
94
90
  "type": "object",
95
91
  "description": "Declares which shared contract types this plan modifies. Each 'modify' or 'migration' value triggers a lock requirement.",
96
92
  "additionalProperties": false,
97
- "required": [
98
- "openapi",
99
- "events",
100
- "db"
101
- ],
93
+ "required": ["openapi", "events", "db"],
102
94
  "properties": {
103
95
  "openapi": {
104
96
  "type": "string",
105
- "enum": [
106
- "none",
107
- "modify"
108
- ],
97
+ "enum": ["none", "modify"],
109
98
  "description": "'modify' means this plan changes the OpenAPI contract file, requiring the 'openapi' lock to be held before plan submission."
110
99
  },
111
100
  "events": {
112
101
  "type": "string",
113
- "enum": [
114
- "none",
115
- "modify"
116
- ],
102
+ "enum": ["none", "modify"],
117
103
  "description": "'modify' means this plan changes the events contract file, requiring the 'events' lock."
118
104
  },
119
105
  "db": {
120
106
  "type": "string",
121
- "enum": [
122
- "none",
123
- "migration"
124
- ],
107
+ "enum": ["none", "migration"],
125
108
  "description": "'migration' means this plan adds a database schema migration, requiring the 'db' lock."
126
109
  }
127
110
  }
@@ -199,10 +182,7 @@
199
182
  "items": {
200
183
  "type": "object",
201
184
  "additionalProperties": false,
202
- "required": [
203
- "name",
204
- "cmd"
205
- ],
185
+ "required": ["name", "cmd"],
206
186
  "properties": {
207
187
  "name": {
208
188
  "type": "string",