agentic-orchestrator 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (426) hide show
  1. package/.prettierignore +10 -0
  2. package/.prettierrc.json +24 -0
  3. package/CLAUDE.md +3 -2
  4. package/README.md +47 -46
  5. package/agentic/orchestrator/defaults/policy.defaults.yaml +1 -1
  6. package/agentic/orchestrator/prompts/planner.system.md +1 -0
  7. package/agentic/orchestrator/schemas/agents.schema.json +4 -21
  8. package/agentic/orchestrator/schemas/gates.schema.json +4 -19
  9. package/agentic/orchestrator/schemas/index.schema.json +3 -14
  10. package/agentic/orchestrator/schemas/multi-project.schema.json +2 -8
  11. package/agentic/orchestrator/schemas/plan.schema.json +6 -26
  12. package/agentic/orchestrator/schemas/policy.schema.json +19 -81
  13. package/agentic/orchestrator/schemas/policy.user.schema.json +1 -5
  14. package/agentic/orchestrator/schemas/qa_test_index.schema.json +5 -29
  15. package/agentic/orchestrator/schemas/state.schema.json +11 -61
  16. package/agentic/orchestrator/tools/catalog.json +33 -164
  17. package/agentic/orchestrator/tools/schemas/input/evidence.latest.input.schema.json +1 -3
  18. package/agentic/orchestrator/tools/schemas/input/feature.delete.input.schema.json +1 -5
  19. package/agentic/orchestrator/tools/schemas/input/feature.get_context.input.schema.json +1 -3
  20. package/agentic/orchestrator/tools/schemas/input/feature.init.input.schema.json +1 -4
  21. package/agentic/orchestrator/tools/schemas/input/feature.log_append.input.schema.json +1 -5
  22. package/agentic/orchestrator/tools/schemas/input/feature.ready_to_merge.input.schema.json +1 -6
  23. package/agentic/orchestrator/tools/schemas/input/feature.state_get.input.schema.json +1 -3
  24. package/agentic/orchestrator/tools/schemas/input/feature.state_patch.input.schema.json +1 -5
  25. package/agentic/orchestrator/tools/schemas/input/gates.run.input.schema.json +1 -5
  26. package/agentic/orchestrator/tools/schemas/input/locks.acquire.input.schema.json +1 -5
  27. package/agentic/orchestrator/tools/schemas/input/locks.release.input.schema.json +1 -5
  28. package/agentic/orchestrator/tools/schemas/input/performance.record_outcome.input.schema.json +10 -1
  29. package/agentic/orchestrator/tools/schemas/input/plan.get.input.schema.json +1 -3
  30. package/agentic/orchestrator/tools/schemas/input/plan.submit.input.schema.json +1 -5
  31. package/agentic/orchestrator/tools/schemas/input/plan.update.input.schema.json +1 -6
  32. package/agentic/orchestrator/tools/schemas/input/qa.test_index_get.input.schema.json +1 -3
  33. package/agentic/orchestrator/tools/schemas/input/qa.test_index_update.input.schema.json +1 -6
  34. package/agentic/orchestrator/tools/schemas/input/repo.apply_patch.input.schema.json +1 -5
  35. package/agentic/orchestrator/tools/schemas/input/repo.diff.input.schema.json +1 -3
  36. package/agentic/orchestrator/tools/schemas/input/repo.diff_bundle.input.schema.json +1 -3
  37. package/agentic/orchestrator/tools/schemas/input/repo.ensure_worktree.input.schema.json +1 -4
  38. package/agentic/orchestrator/tools/schemas/input/repo.read_file.input.schema.json +1 -4
  39. package/agentic/orchestrator/tools/schemas/input/repo.search.input.schema.json +1 -4
  40. package/agentic/orchestrator/tools/schemas/input/repo.status.input.schema.json +1 -3
  41. package/agentic/orchestrator/tools/schemas/input/report.feature_summary.input.schema.json +1 -3
  42. package/agentic/orchestrator/tools/schemas/output/collisions.scan.output.schema.json +1 -3
  43. package/agentic/orchestrator/tools/schemas/output/evidence.latest.output.schema.json +1 -4
  44. package/agentic/orchestrator/tools/schemas/output/feature.delete.output.schema.json +4 -20
  45. package/agentic/orchestrator/tools/schemas/output/feature.discover_specs.output.schema.json +2 -7
  46. package/agentic/orchestrator/tools/schemas/output/feature.get_context.output.schema.json +1 -8
  47. package/agentic/orchestrator/tools/schemas/output/feature.init.output.schema.json +1 -5
  48. package/agentic/orchestrator/tools/schemas/output/feature.log_append.output.schema.json +1 -5
  49. package/agentic/orchestrator/tools/schemas/output/feature.ready_to_merge.output.schema.json +1 -6
  50. package/agentic/orchestrator/tools/schemas/output/feature.state_get.output.schema.json +1 -4
  51. package/agentic/orchestrator/tools/schemas/output/feature.state_patch.output.schema.json +1 -5
  52. package/agentic/orchestrator/tools/schemas/output/gates.list.output.schema.json +2 -7
  53. package/agentic/orchestrator/tools/schemas/output/gates.run.output.schema.json +1 -8
  54. package/agentic/orchestrator/tools/schemas/output/locks.acquire.output.schema.json +1 -7
  55. package/agentic/orchestrator/tools/schemas/output/locks.release.output.schema.json +1 -5
  56. package/agentic/orchestrator/tools/schemas/output/performance.get_analytics.output.schema.json +22 -2
  57. package/agentic/orchestrator/tools/schemas/output/plan.get.output.schema.json +1 -4
  58. package/agentic/orchestrator/tools/schemas/output/plan.submit.output.schema.json +1 -5
  59. package/agentic/orchestrator/tools/schemas/output/plan.update.output.schema.json +1 -5
  60. package/agentic/orchestrator/tools/schemas/output/qa.test_index_get.output.schema.json +1 -5
  61. package/agentic/orchestrator/tools/schemas/output/qa.test_index_update.output.schema.json +1 -4
  62. package/agentic/orchestrator/tools/schemas/output/repo.apply_patch.output.schema.json +1 -6
  63. package/agentic/orchestrator/tools/schemas/output/repo.diff.output.schema.json +1 -4
  64. package/agentic/orchestrator/tools/schemas/output/repo.diff_bundle.output.schema.json +1 -7
  65. package/agentic/orchestrator/tools/schemas/output/repo.ensure_worktree.output.schema.json +1 -6
  66. package/agentic/orchestrator/tools/schemas/output/repo.read_file.output.schema.json +1 -5
  67. package/agentic/orchestrator/tools/schemas/output/repo.search.output.schema.json +1 -5
  68. package/agentic/orchestrator/tools/schemas/output/repo.status.output.schema.json +1 -5
  69. package/agentic/orchestrator/tools/schemas/output/report.dashboard.output.schema.json +1 -4
  70. package/apps/control-plane/scripts/validate-architecture-rules.mjs +16 -5
  71. package/apps/control-plane/scripts/validate-docker-mcp-contract.mjs +30 -8
  72. package/apps/control-plane/scripts/validate-mcp-contracts.ts +13 -7
  73. package/apps/control-plane/src/application/adapters/adapter-registry.ts +35 -15
  74. package/apps/control-plane/src/application/multi-project-loader.ts +27 -10
  75. package/apps/control-plane/src/application/services/activity-monitor-service.ts +26 -14
  76. package/apps/control-plane/src/application/services/collision-queue-service.ts +31 -17
  77. package/apps/control-plane/src/application/services/cost-tracking-service.ts +23 -16
  78. package/apps/control-plane/src/application/services/dependency-scheduler-service.ts +12 -4
  79. package/apps/control-plane/src/application/services/feature-deletion-service.ts +94 -58
  80. package/apps/control-plane/src/application/services/feature-lifecycle-service.ts +19 -13
  81. package/apps/control-plane/src/application/services/feature-state-service.ts +29 -19
  82. package/apps/control-plane/src/application/services/gate-interpolation-service.ts +7 -2
  83. package/apps/control-plane/src/application/services/gate-service.ts +64 -41
  84. package/apps/control-plane/src/application/services/instance-isolation-service.ts +1 -1
  85. package/apps/control-plane/src/application/services/issue-tracker-service.ts +49 -38
  86. package/apps/control-plane/src/application/services/lock-service.ts +75 -49
  87. package/apps/control-plane/src/application/services/merge-service.ts +91 -50
  88. package/apps/control-plane/src/application/services/notifier-service.ts +42 -20
  89. package/apps/control-plane/src/application/services/patch-service.ts +73 -44
  90. package/apps/control-plane/src/application/services/performance-analytics-service.ts +8 -6
  91. package/apps/control-plane/src/application/services/plan-service.ts +148 -89
  92. package/apps/control-plane/src/application/services/policy-loader-service.ts +10 -4
  93. package/apps/control-plane/src/application/services/pr-monitor-service.ts +33 -14
  94. package/apps/control-plane/src/application/services/qa-index-service.ts +20 -16
  95. package/apps/control-plane/src/application/services/reactions-service.ts +30 -15
  96. package/apps/control-plane/src/application/services/reporting-service.ts +16 -12
  97. package/apps/control-plane/src/application/services/run-lease-service.ts +138 -81
  98. package/apps/control-plane/src/application/tools/tool-metadata.ts +5 -5
  99. package/apps/control-plane/src/application/tools/tool-router.ts +6 -3
  100. package/apps/control-plane/src/cli/aop.ts +2 -2
  101. package/apps/control-plane/src/cli/attach-command-handler.ts +9 -9
  102. package/apps/control-plane/src/cli/cleanup-command-handler.ts +16 -11
  103. package/apps/control-plane/src/cli/cli-argument-parser.ts +6 -3
  104. package/apps/control-plane/src/cli/dashboard-command-handler.ts +28 -8
  105. package/apps/control-plane/src/cli/delete-command-handler.ts +7 -7
  106. package/apps/control-plane/src/cli/help-command-handler.ts +61 -32
  107. package/apps/control-plane/src/cli/init-command-handler.ts +110 -54
  108. package/apps/control-plane/src/cli/io.ts +7 -3
  109. package/apps/control-plane/src/cli/resume-command-handler.ts +21 -13
  110. package/apps/control-plane/src/cli/retry-command-handler.ts +12 -11
  111. package/apps/control-plane/src/cli/run-command-handler.ts +12 -8
  112. package/apps/control-plane/src/cli/send-command-handler.ts +6 -6
  113. package/apps/control-plane/src/cli/spec-ingestion-service.ts +14 -8
  114. package/apps/control-plane/src/cli/spec-input-resolver.ts +6 -1
  115. package/apps/control-plane/src/cli/spec-utils.ts +2 -2
  116. package/apps/control-plane/src/cli/status-command-handler.ts +13 -12
  117. package/apps/control-plane/src/cli/tooling.ts +3 -3
  118. package/apps/control-plane/src/cli/types.ts +1 -1
  119. package/apps/control-plane/src/core/collisions.ts +27 -10
  120. package/apps/control-plane/src/core/constants.ts +13 -7
  121. package/apps/control-plane/src/core/error-codes.ts +1 -1
  122. package/apps/control-plane/src/core/fs.ts +11 -5
  123. package/apps/control-plane/src/core/gates.ts +53 -27
  124. package/apps/control-plane/src/core/git.ts +18 -6
  125. package/apps/control-plane/src/core/kernel.ts +515 -227
  126. package/apps/control-plane/src/core/patch.ts +7 -3
  127. package/apps/control-plane/src/core/path-layout.ts +5 -1
  128. package/apps/control-plane/src/core/path-rules.ts +19 -5
  129. package/apps/control-plane/src/core/qa-index.ts +26 -12
  130. package/apps/control-plane/src/core/response.ts +9 -6
  131. package/apps/control-plane/src/core/schemas.ts +29 -10
  132. package/apps/control-plane/src/core/tool-caller.ts +1 -1
  133. package/apps/control-plane/src/core/workspace-hooks.ts +5 -5
  134. package/apps/control-plane/src/index.ts +3 -9
  135. package/apps/control-plane/src/interfaces/cli/bootstrap.ts +69 -32
  136. package/apps/control-plane/src/mcp/kernel-tool-executor.ts +7 -3
  137. package/apps/control-plane/src/mcp/mcp-server-adapter.ts +12 -10
  138. package/apps/control-plane/src/mcp/operation-ledger.ts +18 -8
  139. package/apps/control-plane/src/mcp/protocol-contract.ts +2 -2
  140. package/apps/control-plane/src/mcp/runtime-factory.ts +15 -6
  141. package/apps/control-plane/src/mcp/token-auth-verifier.ts +3 -2
  142. package/apps/control-plane/src/mcp/token-claims-validator.ts +11 -7
  143. package/apps/control-plane/src/mcp/tool-authorizer.ts +1 -3
  144. package/apps/control-plane/src/mcp/tool-client.ts +17 -5
  145. package/apps/control-plane/src/mcp/tool-contract-validator.ts +17 -8
  146. package/apps/control-plane/src/mcp/tool-registry-loader.ts +7 -3
  147. package/apps/control-plane/src/mcp/tool-runtime.ts +66 -39
  148. package/apps/control-plane/src/mcp/tools-markdown-generator.ts +6 -1
  149. package/apps/control-plane/src/providers/providers.ts +72 -48
  150. package/apps/control-plane/src/supervisor/build-wave-executor.ts +44 -25
  151. package/apps/control-plane/src/supervisor/planning-wave-executor.ts +46 -33
  152. package/apps/control-plane/src/supervisor/prompt-bundle-loader.ts +1 -1
  153. package/apps/control-plane/src/supervisor/qa-wave-executor.ts +38 -23
  154. package/apps/control-plane/src/supervisor/run-coordinator.ts +71 -36
  155. package/apps/control-plane/src/supervisor/runtime.ts +59 -35
  156. package/apps/control-plane/src/supervisor/session-orchestrator.ts +48 -31
  157. package/apps/control-plane/src/supervisor/types.ts +22 -7
  158. package/apps/control-plane/src/supervisor/worker-decision-loop.ts +30 -20
  159. package/apps/control-plane/test/activity-monitor.spec.ts +54 -30
  160. package/apps/control-plane/test/adapter-registry.spec.ts +5 -5
  161. package/apps/control-plane/test/aop.spec.ts +4 -4
  162. package/apps/control-plane/test/batch-operations.spec.ts +20 -18
  163. package/apps/control-plane/test/bootstrap-attach.spec.ts +52 -19
  164. package/apps/control-plane/test/bootstrap-edge-cases.spec.ts +58 -27
  165. package/apps/control-plane/test/bootstrap.spec.ts +72 -40
  166. package/apps/control-plane/test/cleanup-command.spec.ts +86 -32
  167. package/apps/control-plane/test/cli-helpers.spec.ts +119 -66
  168. package/apps/control-plane/test/cli.spec.ts +1 -1
  169. package/apps/control-plane/test/cli.unit.spec.ts +226 -167
  170. package/apps/control-plane/test/collision-queue.spec.ts +49 -40
  171. package/apps/control-plane/test/collisions.spec.ts +30 -30
  172. package/apps/control-plane/test/core-utils.spec.ts +29 -15
  173. package/apps/control-plane/test/cost-tracking.spec.ts +38 -22
  174. package/apps/control-plane/test/dashboard-api.integration.spec.ts +68 -36
  175. package/apps/control-plane/test/dashboard-client.spec.ts +18 -12
  176. package/apps/control-plane/test/dashboard-command.spec.ts +11 -7
  177. package/apps/control-plane/test/delete-command-handler.spec.ts +49 -41
  178. package/apps/control-plane/test/dependency-scheduler.spec.ts +47 -20
  179. package/apps/control-plane/test/epoch-tracking.spec.ts +9 -9
  180. package/apps/control-plane/test/feature-deletion-service.spec.ts +60 -52
  181. package/apps/control-plane/test/feature-lifecycle.spec.ts +36 -17
  182. package/apps/control-plane/test/gates.spec.ts +101 -81
  183. package/apps/control-plane/test/git-spawn-error.spec.ts +1 -1
  184. package/apps/control-plane/test/helpers.ts +10 -6
  185. package/apps/control-plane/test/incremental-gates.spec.ts +59 -20
  186. package/apps/control-plane/test/init-wizard.spec.ts +162 -67
  187. package/apps/control-plane/test/instance-isolation.spec.ts +43 -10
  188. package/apps/control-plane/test/issue-tracker.spec.ts +368 -128
  189. package/apps/control-plane/test/kernel-collision-replay.spec.ts +50 -29
  190. package/apps/control-plane/test/kernel.branches.spec.ts +64 -40
  191. package/apps/control-plane/test/kernel.coverage.spec.ts +85 -49
  192. package/apps/control-plane/test/kernel.coverage2.spec.ts +109 -65
  193. package/apps/control-plane/test/kernel.spec.ts +134 -51
  194. package/apps/control-plane/test/lock-service.spec.ts +92 -68
  195. package/apps/control-plane/test/mcp-helpers.spec.ts +53 -39
  196. package/apps/control-plane/test/mcp.spec.ts +231 -115
  197. package/apps/control-plane/test/merge-service.spec.ts +142 -94
  198. package/apps/control-plane/test/multi-project.spec.ts +28 -22
  199. package/apps/control-plane/test/notifier-service.spec.ts +136 -92
  200. package/apps/control-plane/test/parallel-gates.spec.ts +51 -35
  201. package/apps/control-plane/test/patch-service.spec.ts +128 -48
  202. package/apps/control-plane/test/performance-analytics.spec.ts +99 -63
  203. package/apps/control-plane/test/plan-service.spec.ts +50 -39
  204. package/apps/control-plane/test/planning-wave-executor.spec.ts +95 -71
  205. package/apps/control-plane/test/policy-loader-service.spec.ts +41 -19
  206. package/apps/control-plane/test/pr-monitor.spec.ts +113 -64
  207. package/apps/control-plane/test/providers.spec.ts +133 -102
  208. package/apps/control-plane/test/qa-index-service.spec.ts +31 -33
  209. package/apps/control-plane/test/qa-index.spec.ts +58 -61
  210. package/apps/control-plane/test/reactions.spec.ts +88 -45
  211. package/apps/control-plane/test/response.spec.ts +5 -5
  212. package/apps/control-plane/test/resume-command.spec.ts +121 -80
  213. package/apps/control-plane/test/run-coordinator.spec.ts +205 -136
  214. package/apps/control-plane/test/schema-date-time.spec.ts +49 -41
  215. package/apps/control-plane/test/service-retry-paths.spec.ts +77 -57
  216. package/apps/control-plane/test/services.spec.ts +147 -129
  217. package/apps/control-plane/test/session-management.spec.ts +136 -74
  218. package/apps/control-plane/test/spec-ingestion.spec.ts +23 -21
  219. package/apps/control-plane/test/spec-input-resolver.spec.ts +11 -10
  220. package/apps/control-plane/test/supervisor-collaborators.spec.ts +168 -121
  221. package/apps/control-plane/test/supervisor.calltool.spec.ts +21 -18
  222. package/apps/control-plane/test/supervisor.spec.ts +67 -43
  223. package/apps/control-plane/test/supervisor.unit.spec.ts +195 -126
  224. package/apps/control-plane/test/token-auth-verifier.spec.ts +29 -14
  225. package/apps/control-plane/test/tool-registry-loader.spec.ts +51 -27
  226. package/apps/control-plane/test/tool-runtime.spec.ts +63 -46
  227. package/apps/control-plane/test/worker-decision-loop.spec.ts +143 -122
  228. package/apps/control-plane/test/workspace-hooks.spec.ts +61 -23
  229. package/apps/control-plane/tsconfig.build.json +2 -7
  230. package/apps/control-plane/tsconfig.json +1 -5
  231. package/apps/control-plane/vitest.config.ts +7 -7
  232. package/dist/apps/control-plane/application/adapters/adapter-registry.js +12 -5
  233. package/dist/apps/control-plane/application/adapters/adapter-registry.js.map +1 -1
  234. package/dist/apps/control-plane/application/multi-project-loader.js +26 -9
  235. package/dist/apps/control-plane/application/multi-project-loader.js.map +1 -1
  236. package/dist/apps/control-plane/application/services/activity-monitor-service.js +7 -7
  237. package/dist/apps/control-plane/application/services/activity-monitor-service.js.map +1 -1
  238. package/dist/apps/control-plane/application/services/collision-queue-service.js +7 -7
  239. package/dist/apps/control-plane/application/services/collision-queue-service.js.map +1 -1
  240. package/dist/apps/control-plane/application/services/cost-tracking-service.js +6 -8
  241. package/dist/apps/control-plane/application/services/cost-tracking-service.js.map +1 -1
  242. package/dist/apps/control-plane/application/services/dependency-scheduler-service.js.map +1 -1
  243. package/dist/apps/control-plane/application/services/feature-deletion-service.js +37 -29
  244. package/dist/apps/control-plane/application/services/feature-deletion-service.js.map +1 -1
  245. package/dist/apps/control-plane/application/services/feature-lifecycle-service.js +10 -10
  246. package/dist/apps/control-plane/application/services/feature-lifecycle-service.js.map +1 -1
  247. package/dist/apps/control-plane/application/services/feature-state-service.js +11 -11
  248. package/dist/apps/control-plane/application/services/feature-state-service.js.map +1 -1
  249. package/dist/apps/control-plane/application/services/gate-interpolation-service.js +3 -1
  250. package/dist/apps/control-plane/application/services/gate-interpolation-service.js.map +1 -1
  251. package/dist/apps/control-plane/application/services/gate-service.js +26 -26
  252. package/dist/apps/control-plane/application/services/gate-service.js.map +1 -1
  253. package/dist/apps/control-plane/application/services/instance-isolation-service.js +1 -1
  254. package/dist/apps/control-plane/application/services/instance-isolation-service.js.map +1 -1
  255. package/dist/apps/control-plane/application/services/issue-tracker-service.js +25 -15
  256. package/dist/apps/control-plane/application/services/issue-tracker-service.js.map +1 -1
  257. package/dist/apps/control-plane/application/services/lock-service.js +32 -32
  258. package/dist/apps/control-plane/application/services/lock-service.js.map +1 -1
  259. package/dist/apps/control-plane/application/services/merge-service.js +41 -27
  260. package/dist/apps/control-plane/application/services/merge-service.js.map +1 -1
  261. package/dist/apps/control-plane/application/services/notifier-service.js +29 -15
  262. package/dist/apps/control-plane/application/services/notifier-service.js.map +1 -1
  263. package/dist/apps/control-plane/application/services/patch-service.js +21 -19
  264. package/dist/apps/control-plane/application/services/patch-service.js.map +1 -1
  265. package/dist/apps/control-plane/application/services/performance-analytics-service.js +4 -4
  266. package/dist/apps/control-plane/application/services/performance-analytics-service.js.map +1 -1
  267. package/dist/apps/control-plane/application/services/plan-service.js +33 -33
  268. package/dist/apps/control-plane/application/services/plan-service.js.map +1 -1
  269. package/dist/apps/control-plane/application/services/policy-loader-service.js.map +1 -1
  270. package/dist/apps/control-plane/application/services/pr-monitor-service.js +23 -11
  271. package/dist/apps/control-plane/application/services/pr-monitor-service.js.map +1 -1
  272. package/dist/apps/control-plane/application/services/qa-index-service.js +11 -11
  273. package/dist/apps/control-plane/application/services/qa-index-service.js.map +1 -1
  274. package/dist/apps/control-plane/application/services/reactions-service.js +13 -9
  275. package/dist/apps/control-plane/application/services/reactions-service.js.map +1 -1
  276. package/dist/apps/control-plane/application/services/reporting-service.js +11 -9
  277. package/dist/apps/control-plane/application/services/reporting-service.js.map +1 -1
  278. package/dist/apps/control-plane/application/services/run-lease-service.js +34 -33
  279. package/dist/apps/control-plane/application/services/run-lease-service.js.map +1 -1
  280. package/dist/apps/control-plane/application/tools/tool-metadata.js +2 -2
  281. package/dist/apps/control-plane/application/tools/tool-router.js.map +1 -1
  282. package/dist/apps/control-plane/cli/attach-command-handler.js +9 -9
  283. package/dist/apps/control-plane/cli/cleanup-command-handler.js +11 -9
  284. package/dist/apps/control-plane/cli/cleanup-command-handler.js.map +1 -1
  285. package/dist/apps/control-plane/cli/cli-argument-parser.js +4 -3
  286. package/dist/apps/control-plane/cli/cli-argument-parser.js.map +1 -1
  287. package/dist/apps/control-plane/cli/dashboard-command-handler.js +23 -7
  288. package/dist/apps/control-plane/cli/dashboard-command-handler.js.map +1 -1
  289. package/dist/apps/control-plane/cli/delete-command-handler.js +7 -7
  290. package/dist/apps/control-plane/cli/help-command-handler.js +58 -30
  291. package/dist/apps/control-plane/cli/help-command-handler.js.map +1 -1
  292. package/dist/apps/control-plane/cli/init-command-handler.js +44 -33
  293. package/dist/apps/control-plane/cli/init-command-handler.js.map +1 -1
  294. package/dist/apps/control-plane/cli/io.js +2 -2
  295. package/dist/apps/control-plane/cli/io.js.map +1 -1
  296. package/dist/apps/control-plane/cli/resume-command-handler.js +9 -9
  297. package/dist/apps/control-plane/cli/resume-command-handler.js.map +1 -1
  298. package/dist/apps/control-plane/cli/retry-command-handler.js +12 -11
  299. package/dist/apps/control-plane/cli/retry-command-handler.js.map +1 -1
  300. package/dist/apps/control-plane/cli/run-command-handler.js +12 -8
  301. package/dist/apps/control-plane/cli/run-command-handler.js.map +1 -1
  302. package/dist/apps/control-plane/cli/send-command-handler.js +6 -6
  303. package/dist/apps/control-plane/cli/spec-ingestion-service.js +10 -8
  304. package/dist/apps/control-plane/cli/spec-ingestion-service.js.map +1 -1
  305. package/dist/apps/control-plane/cli/spec-input-resolver.js.map +1 -1
  306. package/dist/apps/control-plane/cli/spec-utils.js.map +1 -1
  307. package/dist/apps/control-plane/cli/status-command-handler.js +8 -8
  308. package/dist/apps/control-plane/cli/status-command-handler.js.map +1 -1
  309. package/dist/apps/control-plane/cli/tooling.js +1 -1
  310. package/dist/apps/control-plane/core/collisions.js +11 -8
  311. package/dist/apps/control-plane/core/collisions.js.map +1 -1
  312. package/dist/apps/control-plane/core/constants.js +13 -7
  313. package/dist/apps/control-plane/core/constants.js.map +1 -1
  314. package/dist/apps/control-plane/core/error-codes.js +1 -1
  315. package/dist/apps/control-plane/core/fs.js.map +1 -1
  316. package/dist/apps/control-plane/core/gates.d.ts +2 -2
  317. package/dist/apps/control-plane/core/gates.js +26 -19
  318. package/dist/apps/control-plane/core/gates.js.map +1 -1
  319. package/dist/apps/control-plane/core/git.js +3 -3
  320. package/dist/apps/control-plane/core/git.js.map +1 -1
  321. package/dist/apps/control-plane/core/kernel.d.ts +1 -0
  322. package/dist/apps/control-plane/core/kernel.js +134 -81
  323. package/dist/apps/control-plane/core/kernel.js.map +1 -1
  324. package/dist/apps/control-plane/core/patch.js +7 -3
  325. package/dist/apps/control-plane/core/patch.js.map +1 -1
  326. package/dist/apps/control-plane/core/path-layout.d.ts +1 -0
  327. package/dist/apps/control-plane/core/path-layout.js +4 -1
  328. package/dist/apps/control-plane/core/path-layout.js.map +1 -1
  329. package/dist/apps/control-plane/core/path-rules.js +3 -1
  330. package/dist/apps/control-plane/core/path-rules.js.map +1 -1
  331. package/dist/apps/control-plane/core/qa-index.js +5 -5
  332. package/dist/apps/control-plane/core/qa-index.js.map +1 -1
  333. package/dist/apps/control-plane/core/response.js +3 -3
  334. package/dist/apps/control-plane/core/response.js.map +1 -1
  335. package/dist/apps/control-plane/core/schemas.js +10 -6
  336. package/dist/apps/control-plane/core/schemas.js.map +1 -1
  337. package/dist/apps/control-plane/core/workspace-hooks.js +3 -3
  338. package/dist/apps/control-plane/index.d.ts +1 -1
  339. package/dist/apps/control-plane/index.js +1 -1
  340. package/dist/apps/control-plane/index.js.map +1 -1
  341. package/dist/apps/control-plane/interfaces/cli/bootstrap.js +31 -20
  342. package/dist/apps/control-plane/interfaces/cli/bootstrap.js.map +1 -1
  343. package/dist/apps/control-plane/mcp/kernel-tool-executor.js +1 -1
  344. package/dist/apps/control-plane/mcp/kernel-tool-executor.js.map +1 -1
  345. package/dist/apps/control-plane/mcp/mcp-server-adapter.js +6 -7
  346. package/dist/apps/control-plane/mcp/mcp-server-adapter.js.map +1 -1
  347. package/dist/apps/control-plane/mcp/operation-ledger.js +5 -5
  348. package/dist/apps/control-plane/mcp/operation-ledger.js.map +1 -1
  349. package/dist/apps/control-plane/mcp/protocol-contract.js +2 -2
  350. package/dist/apps/control-plane/mcp/runtime-factory.js +2 -2
  351. package/dist/apps/control-plane/mcp/runtime-factory.js.map +1 -1
  352. package/dist/apps/control-plane/mcp/token-auth-verifier.js +1 -1
  353. package/dist/apps/control-plane/mcp/token-auth-verifier.js.map +1 -1
  354. package/dist/apps/control-plane/mcp/token-claims-validator.js +5 -5
  355. package/dist/apps/control-plane/mcp/token-claims-validator.js.map +1 -1
  356. package/dist/apps/control-plane/mcp/tool-authorizer.js +1 -3
  357. package/dist/apps/control-plane/mcp/tool-authorizer.js.map +1 -1
  358. package/dist/apps/control-plane/mcp/tool-client.js +2 -2
  359. package/dist/apps/control-plane/mcp/tool-client.js.map +1 -1
  360. package/dist/apps/control-plane/mcp/tool-contract-validator.js +3 -3
  361. package/dist/apps/control-plane/mcp/tool-contract-validator.js.map +1 -1
  362. package/dist/apps/control-plane/mcp/tool-registry-loader.js +1 -1
  363. package/dist/apps/control-plane/mcp/tool-registry-loader.js.map +1 -1
  364. package/dist/apps/control-plane/mcp/tool-runtime.js +17 -17
  365. package/dist/apps/control-plane/mcp/tool-runtime.js.map +1 -1
  366. package/dist/apps/control-plane/mcp/tools-markdown-generator.js +6 -1
  367. package/dist/apps/control-plane/mcp/tools-markdown-generator.js.map +1 -1
  368. package/dist/apps/control-plane/providers/providers.d.ts +1 -1
  369. package/dist/apps/control-plane/providers/providers.js +31 -34
  370. package/dist/apps/control-plane/providers/providers.js.map +1 -1
  371. package/dist/apps/control-plane/supervisor/build-wave-executor.js +12 -12
  372. package/dist/apps/control-plane/supervisor/build-wave-executor.js.map +1 -1
  373. package/dist/apps/control-plane/supervisor/planning-wave-executor.js +19 -16
  374. package/dist/apps/control-plane/supervisor/planning-wave-executor.js.map +1 -1
  375. package/dist/apps/control-plane/supervisor/prompt-bundle-loader.js +1 -1
  376. package/dist/apps/control-plane/supervisor/qa-wave-executor.js +13 -13
  377. package/dist/apps/control-plane/supervisor/qa-wave-executor.js.map +1 -1
  378. package/dist/apps/control-plane/supervisor/run-coordinator.js +37 -20
  379. package/dist/apps/control-plane/supervisor/run-coordinator.js.map +1 -1
  380. package/dist/apps/control-plane/supervisor/runtime.js +25 -21
  381. package/dist/apps/control-plane/supervisor/runtime.js.map +1 -1
  382. package/dist/apps/control-plane/supervisor/session-orchestrator.js +29 -23
  383. package/dist/apps/control-plane/supervisor/session-orchestrator.js.map +1 -1
  384. package/dist/apps/control-plane/supervisor/types.d.ts +3 -3
  385. package/dist/apps/control-plane/supervisor/types.js.map +1 -1
  386. package/dist/apps/control-plane/supervisor/worker-decision-loop.js +14 -16
  387. package/dist/apps/control-plane/supervisor/worker-decision-loop.js.map +1 -1
  388. package/eslint.config.mjs +20 -20
  389. package/example-configurations/README.md +1 -1
  390. package/example-configurations/java/agents.yaml +3 -3
  391. package/example-configurations/java/policy.yaml +1 -1
  392. package/example-configurations/node/agents.yaml +3 -3
  393. package/example-configurations/node/policy.yaml +1 -1
  394. package/package.json +10 -5
  395. package/packages/web-dashboard/next.config.js +2 -2
  396. package/packages/web-dashboard/src/app/api/actions/route.ts +25 -9
  397. package/packages/web-dashboard/src/app/api/events/route.ts +20 -6
  398. package/packages/web-dashboard/src/app/api/features/[id]/checkout/route.ts +88 -37
  399. package/packages/web-dashboard/src/app/api/features/[id]/evidence/[artifact]/route.ts +8 -5
  400. package/packages/web-dashboard/src/app/api/features/[id]/review/route.ts +27 -9
  401. package/packages/web-dashboard/src/app/api/features/[id]/route.ts +5 -2
  402. package/packages/web-dashboard/src/app/api/projects/route.ts +5 -5
  403. package/packages/web-dashboard/src/app/globals.css +10 -2
  404. package/packages/web-dashboard/src/app/page.tsx +100 -37
  405. package/packages/web-dashboard/src/lib/aop-client.ts +68 -37
  406. package/packages/web-dashboard/src/lib/multi-project-config.ts +28 -7
  407. package/packages/web-dashboard/src/lib/orchestrator-tools.ts +59 -36
  408. package/packages/web-dashboard/tsconfig.json +3 -11
  409. package/scripts/nx-safe.mjs +10 -10
  410. package/spec-files/completed/agentic_orchestrator_cli_delete_command_spec.md +5 -0
  411. package/spec-files/completed/agentic_orchestrator_feature_gaps_closure_spec.md +187 -90
  412. package/spec-files/completed/agentic_orchestrator_init_policy_ux_simplification_spec.md +49 -16
  413. package/spec-files/completed/agentic_orchestrator_mcp_formalization_spec.md +24 -1
  414. package/spec-files/completed/agentic_orchestrator_single_global_orchestrator_spec.md +9 -0
  415. package/spec-files/completed/agentic_orchestrator_spec.md +171 -75
  416. package/spec-files/completed/agentic_orchestrator_validator_hardening_spec.md +25 -17
  417. package/spec-files/outstanding/agentic_orchestrator_artifact_database_publishing_spec.md +40 -5
  418. package/spec-files/outstanding/agentic_orchestrator_enterprise_governance_dashboard_spec.md +23 -12
  419. package/spec-files/outstanding/agentic_orchestrator_knowledge_canary_spec.md +16 -4
  420. package/spec-files/outstanding/agentic_orchestrator_observability_integrity_diagnostics_spec.md +42 -2
  421. package/spec-files/outstanding/agentic_orchestrator_performance_improvements_spec.md +209 -130
  422. package/spec-files/outstanding/agentic_orchestrator_planning_review_quality_spec.md +56 -3
  423. package/spec-files/outstanding/agentic_orchestrator_productization_commercial_spec.md +77 -10
  424. package/spec-files/outstanding/agentic_orchestrator_quality_adoption_execution_spec.md +29 -14
  425. package/spec-files/progress.md +186 -175
  426. package/tsconfig.json +2 -8
@@ -30,10 +30,7 @@
30
30
  "commit_policy": {
31
31
  "type": "object",
32
32
  "description": "Controls whether the orchestrator may create commits or execute merges on behalf of agents.",
33
- "required": [
34
- "allow_commit",
35
- "allow_merge"
36
- ],
33
+ "required": ["allow_commit", "allow_merge"],
37
34
  "properties": {
38
35
  "allow_commit": {
39
36
  "type": "boolean",
@@ -48,10 +45,7 @@
48
45
  "patch_policy": {
49
46
  "type": "object",
50
47
  "description": "Constraints applied to file patches before they are written to the feature worktree.",
51
- "required": [
52
- "enforce_plan",
53
- "enforce_allowed_areas"
54
- ],
48
+ "required": ["enforce_plan", "enforce_allowed_areas"],
55
49
  "properties": {
56
50
  "enforce_plan": {
57
51
  "type": "boolean",
@@ -86,11 +80,7 @@
86
80
  "contract_to_resource": {
87
81
  "type": "object",
88
82
  "description": "Maps plan contract types to the lock resource name they require. Used by plan and patch services to determine which locks must be held.",
89
- "required": [
90
- "openapi",
91
- "events",
92
- "db"
93
- ],
83
+ "required": ["openapi", "events", "db"],
94
84
  "properties": {
95
85
  "openapi": {
96
86
  "type": "string",
@@ -114,10 +104,7 @@
114
104
  "acquire_behavior": {
115
105
  "type": "string",
116
106
  "description": "'wait' polls until the lock is freed or the timeout is reached; 'fail' returns LOCK_CONFLICT immediately if the lock is held.",
117
- "enum": [
118
- "wait",
119
- "fail"
120
- ]
107
+ "enum": ["wait", "fail"]
121
108
  },
122
109
  "default_wait_timeout_seconds": {
123
110
  "type": "number",
@@ -127,12 +114,7 @@
127
114
  "acquire_backoff": {
128
115
  "type": "object",
129
116
  "description": "Exponential backoff parameters used between lock polling attempts when acquire_behavior is 'wait'.",
130
- "required": [
131
- "initial_ms",
132
- "max_ms",
133
- "multiplier",
134
- "jitter_ms"
135
- ],
117
+ "required": ["initial_ms", "max_ms", "multiplier", "jitter_ms"],
136
118
  "properties": {
137
119
  "initial_ms": {
138
120
  "type": "number",
@@ -187,10 +169,7 @@
187
169
  "collision_policy": {
188
170
  "type": "string",
189
171
  "description": "'reject' immediately fails a colliding plan submission; 'block' queues the plan in index.blocked_queue until the conflicting feature merges.",
190
- "enum": [
191
- "reject",
192
- "block"
193
- ]
172
+ "enum": ["reject", "block"]
194
173
  },
195
174
  "config_precedence": {
196
175
  "type": "object",
@@ -199,19 +178,12 @@
199
178
  "path_rules": {
200
179
  "type": "object",
201
180
  "description": "Controls how file paths are matched and normalised when validating patches against plans.",
202
- "required": [
203
- "matching",
204
- "normalize_paths",
205
- "allow_symlink_traversal"
206
- ],
181
+ "required": ["matching", "normalize_paths", "allow_symlink_traversal"],
207
182
  "properties": {
208
183
  "matching": {
209
184
  "type": "string",
210
185
  "description": "'repo_prefix' uses a simple string-prefix check; 'glob' uses minimatch glob patterns for allowed_areas and forbidden_areas.",
211
- "enum": [
212
- "repo_prefix",
213
- "glob"
214
- ]
186
+ "enum": ["repo_prefix", "glob"]
215
187
  },
216
188
  "normalize_paths": {
217
189
  "type": "boolean",
@@ -227,11 +199,7 @@
227
199
  "execution": {
228
200
  "type": "object",
229
201
  "description": "Settings governing how gate step commands are executed and retried.",
230
- "required": [
231
- "default_step_timeout_seconds",
232
- "retry_policy",
233
- "env_allowlist"
234
- ],
202
+ "required": ["default_step_timeout_seconds", "retry_policy", "env_allowlist"],
235
203
  "properties": {
236
204
  "default_step_timeout_seconds": {
237
205
  "type": "number",
@@ -280,9 +248,7 @@
280
248
  "implementation": {
281
249
  "type": "object",
282
250
  "description": "Monorepo tooling configuration used by the kernel when locating project files.",
283
- "required": [
284
- "workspace"
285
- ],
251
+ "required": ["workspace"],
286
252
  "properties": {
287
253
  "workspace": {
288
254
  "type": "string",
@@ -294,10 +260,7 @@
294
260
  "testing": {
295
261
  "type": "object",
296
262
  "description": "Test framework and global coverage threshold configuration.",
297
- "required": [
298
- "framework",
299
- "coverage"
300
- ],
263
+ "required": ["framework", "coverage"],
301
264
  "properties": {
302
265
  "framework": {
303
266
  "type": "string",
@@ -307,18 +270,12 @@
307
270
  "coverage": {
308
271
  "type": "object",
309
272
  "description": "Global coverage thresholds. Per-profile thresholds in gates.yaml override these when the profile value is higher.",
310
- "required": [
311
- "minimums",
312
- "targets"
313
- ],
273
+ "required": ["minimums", "targets"],
314
274
  "properties": {
315
275
  "minimums": {
316
276
  "type": "object",
317
277
  "description": "Minimum acceptable coverage fractions. A gate run fails if the measured coverage falls below these values.",
318
- "required": [
319
- "line",
320
- "branch"
321
- ],
278
+ "required": ["line", "branch"],
322
279
  "properties": {
323
280
  "line": {
324
281
  "type": "number",
@@ -337,10 +294,7 @@
337
294
  "targets": {
338
295
  "type": "object",
339
296
  "description": "Target (aspirational) coverage fractions used for reporting. Not enforced by the gate runner.",
340
- "required": [
341
- "line",
342
- "branch"
343
- ],
297
+ "required": ["line", "branch"],
344
298
  "properties": {
345
299
  "line": {
346
300
  "type": "number",
@@ -363,10 +317,7 @@
363
317
  "merge_policy": {
364
318
  "type": "object",
365
319
  "description": "Controls when and how the orchestrator may merge a feature branch into the base branch.",
366
- "required": [
367
- "require_user_approval",
368
- "allowed_strategies"
369
- ],
320
+ "required": ["require_user_approval", "allowed_strategies"],
370
321
  "properties": {
371
322
  "require_user_approval": {
372
323
  "type": "boolean",
@@ -377,11 +328,7 @@
377
328
  "description": "Merge strategies available to the orchestrator. Requesting an unlisted strategy throws MERGE_DISABLED.",
378
329
  "items": {
379
330
  "type": "string",
380
- "enum": [
381
- "merge_commit",
382
- "squash",
383
- "rebase"
384
- ]
331
+ "enum": ["merge_commit", "squash", "rebase"]
385
332
  }
386
333
  }
387
334
  }
@@ -389,9 +336,7 @@
389
336
  "worktree": {
390
337
  "type": "object",
391
338
  "description": "Git worktree configuration controlling how feature branches and working directories are created.",
392
- "required": [
393
- "base_branch"
394
- ],
339
+ "required": ["base_branch"],
395
340
  "properties": {
396
341
  "base_branch": {
397
342
  "type": "string",
@@ -614,10 +559,7 @@
614
559
  "action": {
615
560
  "type": "string",
616
561
  "description": "'retry_with_agent_repair' prompts the builder agent to fix the failure; 'notify_only' sends a notification without retrying.",
617
- "enum": [
618
- "retry_with_agent_repair",
619
- "notify_only"
620
- ]
562
+ "enum": ["retry_with_agent_repair", "notify_only"]
621
563
  },
622
564
  "escalate_after": {
623
565
  "type": "integer",
@@ -733,11 +675,7 @@
733
675
  },
734
676
  "type": {
735
677
  "type": "string",
736
- "enum": [
737
- "github",
738
- "linear",
739
- "jira"
740
- ],
678
+ "enum": ["github", "linear", "jira"],
741
679
  "description": "Issue tracker backend: 'github', 'linear', or 'jira'."
742
680
  },
743
681
  "config": {
@@ -88,11 +88,7 @@
88
88
  "description": "Permitted merge strategies ('merge_commit', 'squash', 'rebase').",
89
89
  "items": {
90
90
  "type": "string",
91
- "enum": [
92
- "merge_commit",
93
- "squash",
94
- "rebase"
95
- ]
91
+ "enum": ["merge_commit", "squash", "rebase"]
96
92
  }
97
93
  }
98
94
  }
@@ -4,12 +4,7 @@
4
4
  "description": "Per-feature test coverage index stored in .aop/features/<id>/qa_test_index.json. Built from git diffs when patches are applied; updated by the QA agent as tests are run.",
5
5
  "type": "object",
6
6
  "additionalProperties": false,
7
- "required": [
8
- "feature_id",
9
- "version",
10
- "source_diff_ref",
11
- "items"
12
- ],
7
+ "required": ["feature_id", "version", "source_diff_ref", "items"],
13
8
  "properties": {
14
9
  "feature_id": {
15
10
  "type": "string",
@@ -29,12 +24,7 @@
29
24
  "description": "One entry per changed source file, listing the hunks modified and the tests required to cover those changes.",
30
25
  "items": {
31
26
  "type": "object",
32
- "required": [
33
- "path",
34
- "hunks",
35
- "required_tests",
36
- "status"
37
- ],
27
+ "required": ["path", "hunks", "required_tests", "status"],
38
28
  "properties": {
39
29
  "path": {
40
30
  "type": "string",
@@ -45,11 +35,7 @@
45
35
  "description": "Changed line ranges within this file, derived from the unified diff.",
46
36
  "items": {
47
37
  "type": "object",
48
- "required": [
49
- "start_line",
50
- "end_line",
51
- "change_type"
52
- ],
38
+ "required": ["start_line", "end_line", "change_type"],
53
39
  "properties": {
54
40
  "start_line": {
55
41
  "type": "integer",
@@ -63,11 +49,7 @@
63
49
  },
64
50
  "change_type": {
65
51
  "type": "string",
66
- "enum": [
67
- "add",
68
- "modify",
69
- "delete"
70
- ],
52
+ "enum": ["add", "modify", "delete"],
71
53
  "description": "Type of change applied to this hunk: 'add', 'modify', or 'delete'."
72
54
  }
73
55
  }
@@ -82,13 +64,7 @@
82
64
  },
83
65
  "status": {
84
66
  "type": "string",
85
- "enum": [
86
- "pending",
87
- "running",
88
- "passed",
89
- "failed",
90
- "waived"
91
- ],
67
+ "enum": ["pending", "running", "passed", "failed", "waived"],
92
68
  "description": "Current test status for this file: 'pending' (not yet run), 'running', 'passed', 'failed', or 'waived'."
93
69
  },
94
70
  "last_run_at": {
@@ -39,15 +39,7 @@
39
39
  "status": {
40
40
  "type": "string",
41
41
  "description": "Current lifecycle phase. planning \u2192 building \u2192 qa \u2192 ready_to_merge \u2192 merged. 'blocked' is a cross-cutting pause state; 'failed' is terminal.",
42
- "enum": [
43
- "planning",
44
- "building",
45
- "qa",
46
- "blocked",
47
- "ready_to_merge",
48
- "merged",
49
- "failed"
50
- ]
42
+ "enum": ["planning", "building", "qa", "blocked", "ready_to_merge", "merged", "failed"]
51
43
  },
52
44
  "gate_profile": {
53
45
  "type": "string",
@@ -58,19 +50,13 @@
58
50
  "description": "Map of gate mode names to their most recent result. Keys are mode names (e.g. 'fast', 'full', 'merge'); values are 'pass', 'fail', or 'na'.",
59
51
  "additionalProperties": {
60
52
  "type": "string",
61
- "enum": [
62
- "pass",
63
- "fail",
64
- "na"
65
- ]
53
+ "enum": ["pass", "fail", "na"]
66
54
  }
67
55
  },
68
56
  "locks": {
69
57
  "type": "object",
70
58
  "description": "Lock resources currently held by this feature.",
71
- "required": [
72
- "held"
73
- ],
59
+ "required": ["held"],
74
60
  "properties": {
75
61
  "held": {
76
62
  "type": "array",
@@ -84,11 +70,7 @@
84
70
  "collisions": {
85
71
  "type": "object",
86
72
  "description": "Collision details detected during the most recent plan submission. Cleared on successful plan resubmission.",
87
- "required": [
88
- "files",
89
- "areas",
90
- "contracts"
91
- ],
73
+ "required": ["files", "areas", "contracts"],
92
74
  "properties": {
93
75
  "files": {
94
76
  "type": "array",
@@ -144,40 +126,21 @@
144
126
  "role_status": {
145
127
  "type": "object",
146
128
  "description": "Execution status of each agent role within the current lifecycle phase.",
147
- "required": [
148
- "planner",
149
- "builder",
150
- "qa"
151
- ],
129
+ "required": ["planner", "builder", "qa"],
152
130
  "properties": {
153
131
  "planner": {
154
132
  "type": "string",
155
- "enum": [
156
- "ready",
157
- "running",
158
- "blocked",
159
- "done"
160
- ],
133
+ "enum": ["ready", "running", "blocked", "done"],
161
134
  "description": "Planner agent status: 'ready' (not yet started), 'running', 'blocked', or 'done'."
162
135
  },
163
136
  "builder": {
164
137
  "type": "string",
165
- "enum": [
166
- "ready",
167
- "running",
168
- "blocked",
169
- "done"
170
- ],
138
+ "enum": ["ready", "running", "blocked", "done"],
171
139
  "description": "Builder agent status: 'ready', 'running', 'blocked', or 'done'."
172
140
  },
173
141
  "qa": {
174
142
  "type": "string",
175
- "enum": [
176
- "ready",
177
- "running",
178
- "blocked",
179
- "done"
180
- ],
143
+ "enum": ["ready", "running", "blocked", "done"],
181
144
  "description": "QA agent status: 'ready', 'running', 'blocked', or 'done'."
182
145
  }
183
146
  }
@@ -197,22 +160,12 @@
197
160
  },
198
161
  "ci_status": {
199
162
  "type": "string",
200
- "enum": [
201
- "passing",
202
- "failing",
203
- "pending",
204
- "none"
205
- ],
163
+ "enum": ["passing", "failing", "pending", "none"],
206
164
  "description": "Aggregated CI status for the PR's head commit: 'passing', 'failing', 'pending', or 'none'."
207
165
  },
208
166
  "review_decision": {
209
167
  "type": "string",
210
- "enum": [
211
- "approved",
212
- "changes_requested",
213
- "pending",
214
- "none"
215
- ],
168
+ "enum": ["approved", "changes_requested", "pending", "none"],
216
169
  "description": "Aggregated GitHub review decision: 'approved', 'changes_requested', 'pending', or 'none'."
217
170
  },
218
171
  "merge_ready": {
@@ -240,10 +193,7 @@
240
193
  "description": "Number of automatic gate-fail repair attempts made so far. Read by the QA wave executor to enforce reactions.gate_failed.max_retries."
241
194
  },
242
195
  "last_retry_at": {
243
- "type": [
244
- "string",
245
- "null"
246
- ],
196
+ "type": ["string", "null"],
247
197
  "format": "date-time",
248
198
  "description": "ISO 8601 timestamp of the most recent gate repair attempt, or null if no retry has been made."
249
199
  },