@revisium/orchestrator 0.0.0 → 0.1.0-alpha.10

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 (547) hide show
  1. package/README.md +202 -1
  2. package/control-plane/bootstrap.config.json +104 -2
  3. package/control-plane/default-playbook/catalog/pipelines.json +657 -0
  4. package/control-plane/default-playbook/catalog/roles.json +65 -0
  5. package/control-plane/default-playbook/package.json +5 -0
  6. package/control-plane/default-playbook/playbook.json +13 -0
  7. package/control-plane/default-playbook/prompts/analyst.md +29 -0
  8. package/control-plane/default-playbook/prompts/developer.md +26 -0
  9. package/control-plane/default-playbook/prompts/integrator.md +20 -0
  10. package/control-plane/default-playbook/prompts/orchestrator.md +23 -0
  11. package/control-plane/default-playbook/prompts/reviewer.md +28 -0
  12. package/control-plane/default-playbook/prompts/triager.md +51 -0
  13. package/control-plane/default-playbook/prompts/watcher.md +24 -0
  14. package/dist/api/graphql-api/filters/agent-observability-exception.filter.js +24 -0
  15. package/dist/api/graphql-api/filters/agent-observability-exception.filter.js.map +1 -0
  16. package/dist/api/graphql-api/filters/graphql-validation-exception.filter.js +36 -0
  17. package/dist/api/graphql-api/filters/graphql-validation-exception.filter.js.map +1 -0
  18. package/dist/api/graphql-api/graphql-api.module.js +77 -0
  19. package/dist/api/graphql-api/graphql-api.module.js.map +1 -0
  20. package/dist/api/graphql-api/graphql-ws/agent-observability-subscription-bridge.service.js +296 -0
  21. package/dist/api/graphql-api/graphql-ws/agent-observability-subscription-bridge.service.js.map +1 -0
  22. package/dist/api/graphql-api/graphql-ws/agent-observability-subscription-mappers.js +64 -0
  23. package/dist/api/graphql-api/graphql-ws/agent-observability-subscription-mappers.js.map +1 -0
  24. package/dist/api/graphql-api/graphql-ws/constants.js +11 -0
  25. package/dist/api/graphql-api/graphql-ws/constants.js.map +1 -0
  26. package/dist/api/graphql-api/graphql-ws/pubsub.module.js +32 -0
  27. package/dist/api/graphql-api/graphql-ws/pubsub.module.js.map +1 -0
  28. package/dist/api/graphql-api/graphql-ws/run-progress-subscription-poller.service.js +101 -0
  29. package/dist/api/graphql-api/graphql-ws/run-progress-subscription-poller.service.js.map +1 -0
  30. package/dist/api/graphql-api/graphql-ws/subscription-bridge.service.js +115 -0
  31. package/dist/api/graphql-api/graphql-ws/subscription-bridge.service.js.map +1 -0
  32. package/dist/api/graphql-api/graphql-ws/subscription-mappers.js +85 -0
  33. package/dist/api/graphql-api/graphql-ws/subscription-mappers.js.map +1 -0
  34. package/dist/api/graphql-api/graphql-ws/ws.js +22 -0
  35. package/dist/api/graphql-api/graphql-ws/ws.js.map +1 -0
  36. package/dist/api/graphql-api/inbox/inbox-subscription.resolver.js +56 -0
  37. package/dist/api/graphql-api/inbox/inbox-subscription.resolver.js.map +1 -0
  38. package/dist/api/graphql-api/inbox/inbox.resolver.js +125 -0
  39. package/dist/api/graphql-api/inbox/inbox.resolver.js.map +1 -0
  40. package/dist/api/graphql-api/inbox/inputs/answer-question.input.js +33 -0
  41. package/dist/api/graphql-api/inbox/inputs/answer-question.input.js.map +1 -0
  42. package/dist/api/graphql-api/inbox/inputs/gate-decision.input.js +27 -0
  43. package/dist/api/graphql-api/inbox/inputs/gate-decision.input.js.map +1 -0
  44. package/dist/api/graphql-api/inbox/inputs/list-inbox.input.js +28 -0
  45. package/dist/api/graphql-api/inbox/inputs/list-inbox.input.js.map +1 -0
  46. package/dist/api/graphql-api/inbox/inputs/resolve-inbox-item.input.js +38 -0
  47. package/dist/api/graphql-api/inbox/inputs/resolve-inbox-item.input.js.map +1 -0
  48. package/dist/api/graphql-api/inbox/model/gate-risk.model.js +53 -0
  49. package/dist/api/graphql-api/inbox/model/gate-risk.model.js.map +1 -0
  50. package/dist/api/graphql-api/inbox/model/inbox-connection.model.js +16 -0
  51. package/dist/api/graphql-api/inbox/model/inbox-connection.model.js.map +1 -0
  52. package/dist/api/graphql-api/inbox/model/inbox-item.model.js +88 -0
  53. package/dist/api/graphql-api/inbox/model/inbox-item.model.js.map +1 -0
  54. package/dist/api/graphql-api/inbox/model/inbox-resolution.model.js +48 -0
  55. package/dist/api/graphql-api/inbox/model/inbox-resolution.model.js.map +1 -0
  56. package/dist/api/graphql-api/method/inputs/list-method.input.js +15 -0
  57. package/dist/api/graphql-api/method/inputs/list-method.input.js.map +1 -0
  58. package/dist/api/graphql-api/method/method.resolver.js +90 -0
  59. package/dist/api/graphql-api/method/method.resolver.js.map +1 -0
  60. package/dist/api/graphql-api/method/model/alternative-role-group.model.js +32 -0
  61. package/dist/api/graphql-api/method/model/alternative-role-group.model.js.map +1 -0
  62. package/dist/api/graphql-api/method/model/pipeline-connection.model.js +16 -0
  63. package/dist/api/graphql-api/method/model/pipeline-connection.model.js.map +1 -0
  64. package/dist/api/graphql-api/method/model/pipeline.model.js +69 -0
  65. package/dist/api/graphql-api/method/model/pipeline.model.js.map +1 -0
  66. package/dist/api/graphql-api/method/model/playbook-connection.model.js +16 -0
  67. package/dist/api/graphql-api/method/model/playbook-connection.model.js.map +1 -0
  68. package/dist/api/graphql-api/method/model/playbook.model.js +47 -0
  69. package/dist/api/graphql-api/method/model/playbook.model.js.map +1 -0
  70. package/dist/api/graphql-api/method/model/role-connection.model.js +16 -0
  71. package/dist/api/graphql-api/method/model/role-connection.model.js.map +1 -0
  72. package/dist/api/graphql-api/method/model/role.model.js +98 -0
  73. package/dist/api/graphql-api/method/model/role.model.js.map +1 -0
  74. package/dist/api/graphql-api/pr/inputs/pr-readiness.input.js +52 -0
  75. package/dist/api/graphql-api/pr/inputs/pr-readiness.input.js.map +1 -0
  76. package/dist/api/graphql-api/pr/model/pr-readiness.model.js +403 -0
  77. package/dist/api/graphql-api/pr/model/pr-readiness.model.js.map +1 -0
  78. package/dist/api/graphql-api/pr/pr.resolver.js +76 -0
  79. package/dist/api/graphql-api/pr/pr.resolver.js.map +1 -0
  80. package/dist/api/graphql-api/registerGraphqlEnums.js +9 -0
  81. package/dist/api/graphql-api/registerGraphqlEnums.js.map +1 -0
  82. package/dist/api/graphql-api/runs/inputs/create-run.input.js +63 -0
  83. package/dist/api/graphql-api/runs/inputs/create-run.input.js.map +1 -0
  84. package/dist/api/graphql-api/runs/inputs/get-agent-log.input.js +48 -0
  85. package/dist/api/graphql-api/runs/inputs/get-agent-log.input.js.map +1 -0
  86. package/dist/api/graphql-api/runs/inputs/get-run-attempts.input.js +32 -0
  87. package/dist/api/graphql-api/runs/inputs/get-run-attempts.input.js.map +1 -0
  88. package/dist/api/graphql-api/runs/inputs/get-run-events.input.js +28 -0
  89. package/dist/api/graphql-api/runs/inputs/get-run-events.input.js.map +1 -0
  90. package/dist/api/graphql-api/runs/inputs/list-runs.input.js +23 -0
  91. package/dist/api/graphql-api/runs/inputs/list-runs.input.js.map +1 -0
  92. package/dist/api/graphql-api/runs/inputs/simulate-route.input.js +43 -0
  93. package/dist/api/graphql-api/runs/inputs/simulate-route.input.js.map +1 -0
  94. package/dist/api/graphql-api/runs/model/agent-activity.model.js +367 -0
  95. package/dist/api/graphql-api/runs/model/agent-activity.model.js.map +1 -0
  96. package/dist/api/graphql-api/runs/model/create-run-result.model.js +53 -0
  97. package/dist/api/graphql-api/runs/model/create-run-result.model.js.map +1 -0
  98. package/dist/api/graphql-api/runs/model/run-attempt.model.js +114 -0
  99. package/dist/api/graphql-api/runs/model/run-attempt.model.js.map +1 -0
  100. package/dist/api/graphql-api/runs/model/run-connection.model.js +16 -0
  101. package/dist/api/graphql-api/runs/model/run-connection.model.js.map +1 -0
  102. package/dist/api/graphql-api/runs/model/run-cost.model.js +67 -0
  103. package/dist/api/graphql-api/runs/model/run-cost.model.js.map +1 -0
  104. package/dist/api/graphql-api/runs/model/run-digest.model.js +41 -0
  105. package/dist/api/graphql-api/runs/model/run-digest.model.js.map +1 -0
  106. package/dist/api/graphql-api/runs/model/run-event-connection.model.js +16 -0
  107. package/dist/api/graphql-api/runs/model/run-event-connection.model.js.map +1 -0
  108. package/dist/api/graphql-api/runs/model/run-event.model.js +58 -0
  109. package/dist/api/graphql-api/runs/model/run-event.model.js.map +1 -0
  110. package/dist/api/graphql-api/runs/model/run-progress.model.js +33 -0
  111. package/dist/api/graphql-api/runs/model/run-progress.model.js.map +1 -0
  112. package/dist/api/graphql-api/runs/model/run-workflow.model.js +287 -0
  113. package/dist/api/graphql-api/runs/model/run-workflow.model.js.map +1 -0
  114. package/dist/api/graphql-api/runs/model/run.model.js +57 -0
  115. package/dist/api/graphql-api/runs/model/run.model.js.map +1 -0
  116. package/dist/api/graphql-api/runs/model/usage.model.js +32 -0
  117. package/dist/api/graphql-api/runs/model/usage.model.js.map +1 -0
  118. package/dist/api/graphql-api/runs/run-digest.resolver.js +40 -0
  119. package/dist/api/graphql-api/runs/run-digest.resolver.js.map +1 -0
  120. package/dist/api/graphql-api/runs/run-events.resolver.js +45 -0
  121. package/dist/api/graphql-api/runs/run-events.resolver.js.map +1 -0
  122. package/dist/api/graphql-api/runs/run-progress.resolver.js +53 -0
  123. package/dist/api/graphql-api/runs/run-progress.resolver.js.map +1 -0
  124. package/dist/api/graphql-api/runs/runs-subscription.resolver.js +124 -0
  125. package/dist/api/graphql-api/runs/runs-subscription.resolver.js.map +1 -0
  126. package/dist/api/graphql-api/runs/runs.resolver.js +165 -0
  127. package/dist/api/graphql-api/runs/runs.resolver.js.map +1 -0
  128. package/dist/api/graphql-api/share/graphql-param-types.js +6 -0
  129. package/dist/api/graphql-api/share/graphql-param-types.js.map +1 -0
  130. package/dist/api/graphql-api/share/inputs/connection.input.js +27 -0
  131. package/dist/api/graphql-api/share/inputs/connection.input.js.map +1 -0
  132. package/dist/api/graphql-api/share/inputs/run-subscription.input.js +22 -0
  133. package/dist/api/graphql-api/share/inputs/run-subscription.input.js.map +1 -0
  134. package/dist/api/graphql-api/share/model/paginated.model.js +75 -0
  135. package/dist/api/graphql-api/share/model/paginated.model.js.map +1 -0
  136. package/dist/api/graphql-api/system/model/daemon-status.model.js +47 -0
  137. package/dist/api/graphql-api/system/model/daemon-status.model.js.map +1 -0
  138. package/dist/api/graphql-api/system/model/doctor-result.model.js +33 -0
  139. package/dist/api/graphql-api/system/model/doctor-result.model.js.map +1 -0
  140. package/dist/api/graphql-api/system/model/project.model.js +37 -0
  141. package/dist/api/graphql-api/system/model/project.model.js.map +1 -0
  142. package/dist/api/graphql-api/system/model/repository-context.model.js +70 -0
  143. package/dist/api/graphql-api/system/model/repository-context.model.js.map +1 -0
  144. package/dist/api/graphql-api/system/model/repository-validation.model.js +62 -0
  145. package/dist/api/graphql-api/system/model/repository-validation.model.js.map +1 -0
  146. package/dist/api/graphql-api/system/model/system-status.model.js +29 -0
  147. package/dist/api/graphql-api/system/model/system-status.model.js.map +1 -0
  148. package/dist/api/graphql-api/system/system.resolver.js +83 -0
  149. package/dist/api/graphql-api/system/system.resolver.js.map +1 -0
  150. package/dist/cli/commands/doctor-report.js +70 -0
  151. package/dist/cli/commands/doctor-report.js.map +1 -0
  152. package/dist/cli/commands/lifecycle.js +463 -0
  153. package/dist/cli/commands/lifecycle.js.map +1 -0
  154. package/dist/cli/commands/mcp.js +53 -8
  155. package/dist/cli/commands/mcp.js.map +1 -1
  156. package/dist/cli/commands/process-tree.js +87 -0
  157. package/dist/cli/commands/process-tree.js.map +1 -0
  158. package/dist/cli/commands/revisium-helpers.js +2 -2
  159. package/dist/cli/commands/rogue-reaper.js +63 -0
  160. package/dist/cli/commands/rogue-reaper.js.map +1 -0
  161. package/dist/cli/index.js +5 -29
  162. package/dist/cli/index.js.map +1 -1
  163. package/dist/cli/program.js +7 -23
  164. package/dist/cli/program.js.map +1 -1
  165. package/dist/config.js +79 -1
  166. package/dist/config.js.map +1 -1
  167. package/dist/control-plane/bootstrap.js +101 -0
  168. package/dist/control-plane/bootstrap.js.map +1 -0
  169. package/dist/control-plane/change-notifications.js +35 -0
  170. package/dist/control-plane/change-notifications.js.map +1 -0
  171. package/dist/control-plane/client-transport.js +74 -41
  172. package/dist/control-plane/client-transport.js.map +1 -1
  173. package/dist/control-plane/data-access.js +13 -5
  174. package/dist/control-plane/data-access.js.map +1 -1
  175. package/dist/control-plane/definitions.js +1 -1
  176. package/dist/control-plane/definitions.js.map +1 -1
  177. package/dist/control-plane/inbox.js +5 -31
  178. package/dist/control-plane/inbox.js.map +1 -1
  179. package/dist/control-plane/index.js +1 -1
  180. package/dist/control-plane/index.js.map +1 -1
  181. package/dist/control-plane/json-fields.js +2 -0
  182. package/dist/control-plane/json-fields.js.map +1 -1
  183. package/dist/control-plane/resolve-cwd.js +76 -8
  184. package/dist/control-plane/resolve-cwd.js.map +1 -1
  185. package/dist/control-plane/schema-migration.js +82 -0
  186. package/dist/control-plane/schema-migration.js.map +1 -0
  187. package/dist/control-plane/seed-default-playbook.js +141 -0
  188. package/dist/control-plane/seed-default-playbook.js.map +1 -0
  189. package/dist/control-plane/steps.js +15 -349
  190. package/dist/control-plane/steps.js.map +1 -1
  191. package/dist/control-plane/tables.js +1 -0
  192. package/dist/control-plane/tables.js.map +1 -1
  193. package/dist/e2e/kit/agents.js +148 -0
  194. package/dist/e2e/kit/agents.js.map +1 -0
  195. package/dist/e2e/kit/assertions.js +163 -0
  196. package/dist/e2e/kit/assertions.js.map +1 -0
  197. package/dist/e2e/kit/crash.js +44 -0
  198. package/dist/e2e/kit/crash.js.map +1 -0
  199. package/dist/e2e/kit/drive.js +45 -0
  200. package/dist/e2e/kit/drive.js.map +1 -0
  201. package/dist/e2e/kit/env.js +16 -0
  202. package/dist/e2e/kit/env.js.map +1 -0
  203. package/dist/e2e/kit/fake-integrator.js +57 -0
  204. package/dist/e2e/kit/fake-integrator.js.map +1 -0
  205. package/dist/e2e/kit/gh-emulator.js +213 -0
  206. package/dist/e2e/kit/gh-emulator.js.map +1 -0
  207. package/dist/e2e/kit/git-target-repo.js +115 -0
  208. package/dist/e2e/kit/git-target-repo.js.map +1 -0
  209. package/dist/e2e/kit/harness.js +72 -0
  210. package/dist/e2e/kit/harness.js.map +1 -0
  211. package/dist/e2e/kit/index.js +14 -0
  212. package/dist/e2e/kit/index.js.map +1 -0
  213. package/dist/e2e/kit/mcp.js +32 -0
  214. package/dist/e2e/kit/mcp.js.map +1 -0
  215. package/dist/e2e/kit/scenarios.js +196 -0
  216. package/dist/e2e/kit/scenarios.js.map +1 -0
  217. package/dist/e2e/recovery-crash-child.js +29 -0
  218. package/dist/e2e/recovery-crash-child.js.map +1 -0
  219. package/dist/e2e/recovery-dd-crash-child.js +43 -0
  220. package/dist/e2e/recovery-dd-crash-child.js.map +1 -0
  221. package/dist/engine/dbos.module.js +2 -1
  222. package/dist/engine/dbos.module.js.map +1 -1
  223. package/dist/engine/dbos.service.js +89 -18
  224. package/dist/engine/dbos.service.js.map +1 -1
  225. package/dist/engine/ensure-postgres.js +18 -4
  226. package/dist/engine/ensure-postgres.js.map +1 -1
  227. package/dist/features/inbox/commands/handlers/inbox-command.handlers.js +80 -0
  228. package/dist/features/inbox/commands/handlers/inbox-command.handlers.js.map +1 -0
  229. package/dist/features/inbox/commands/impl/answer-question.command.js +7 -0
  230. package/dist/features/inbox/commands/impl/answer-question.command.js.map +1 -0
  231. package/dist/features/inbox/commands/impl/approve-gate.command.js +7 -0
  232. package/dist/features/inbox/commands/impl/approve-gate.command.js.map +1 -0
  233. package/dist/features/inbox/commands/impl/reject-gate.command.js +7 -0
  234. package/dist/features/inbox/commands/impl/reject-gate.command.js.map +1 -0
  235. package/dist/features/inbox/commands/impl/resolve-inbox-item.command.js +7 -0
  236. package/dist/features/inbox/commands/impl/resolve-inbox-item.command.js.map +1 -0
  237. package/dist/features/inbox/commands/index.js +8 -0
  238. package/dist/features/inbox/commands/index.js.map +1 -0
  239. package/dist/features/inbox/inbox-api.module.js +23 -0
  240. package/dist/features/inbox/inbox-api.module.js.map +1 -0
  241. package/dist/features/inbox/inbox-api.service.js +63 -0
  242. package/dist/features/inbox/inbox-api.service.js.map +1 -0
  243. package/dist/features/inbox/queries/handlers/inbox-query.handlers.js +111 -0
  244. package/dist/features/inbox/queries/handlers/inbox-query.handlers.js.map +1 -0
  245. package/dist/features/inbox/queries/impl/get-inbox-item.query.js +7 -0
  246. package/dist/features/inbox/queries/impl/get-inbox-item.query.js.map +1 -0
  247. package/dist/features/inbox/queries/impl/get-pending-decisions.query.js +7 -0
  248. package/dist/features/inbox/queries/impl/get-pending-decisions.query.js.map +1 -0
  249. package/dist/features/inbox/queries/impl/list-inbox.query.js +7 -0
  250. package/dist/features/inbox/queries/impl/list-inbox.query.js.map +1 -0
  251. package/dist/features/inbox/queries/impl/summarize-gate-risk.query.js +7 -0
  252. package/dist/features/inbox/queries/impl/summarize-gate-risk.query.js.map +1 -0
  253. package/dist/features/inbox/queries/index.js +8 -0
  254. package/dist/features/inbox/queries/index.js.map +1 -0
  255. package/dist/features/method/commands/index.js +2 -0
  256. package/dist/features/method/commands/index.js.map +1 -0
  257. package/dist/features/method/method-api.module.js +23 -0
  258. package/dist/features/method/method-api.module.js.map +1 -0
  259. package/dist/features/method/method-api.service.js +47 -0
  260. package/dist/features/method/method-api.service.js.map +1 -0
  261. package/dist/features/method/queries/handlers/method-query.handlers.js +115 -0
  262. package/dist/features/method/queries/handlers/method-query.handlers.js.map +1 -0
  263. package/dist/features/method/queries/impl/get-pipeline.query.js +7 -0
  264. package/dist/features/method/queries/impl/get-pipeline.query.js.map +1 -0
  265. package/dist/features/method/queries/impl/get-role.query.js +7 -0
  266. package/dist/features/method/queries/impl/get-role.query.js.map +1 -0
  267. package/dist/features/method/queries/impl/list-pipelines.query.js +7 -0
  268. package/dist/features/method/queries/impl/list-pipelines.query.js.map +1 -0
  269. package/dist/features/method/queries/impl/list-playbooks.query.js +7 -0
  270. package/dist/features/method/queries/impl/list-playbooks.query.js.map +1 -0
  271. package/dist/features/method/queries/impl/list-roles.query.js +7 -0
  272. package/dist/features/method/queries/impl/list-roles.query.js.map +1 -0
  273. package/dist/features/method/queries/index.js +9 -0
  274. package/dist/features/method/queries/index.js.map +1 -0
  275. package/dist/features/pr/commands/index.js +2 -0
  276. package/dist/features/pr/commands/index.js.map +1 -0
  277. package/dist/features/pr/pr-api.module.js +23 -0
  278. package/dist/features/pr/pr-api.module.js.map +1 -0
  279. package/dist/features/pr/pr-api.service.js +35 -0
  280. package/dist/features/pr/pr-api.service.js.map +1 -0
  281. package/dist/features/pr/queries/handlers/pr-query.handlers.js +48 -0
  282. package/dist/features/pr/queries/handlers/pr-query.handlers.js.map +1 -0
  283. package/dist/features/pr/queries/impl/get-pr-readiness.query.js +7 -0
  284. package/dist/features/pr/queries/impl/get-pr-readiness.query.js.map +1 -0
  285. package/dist/features/pr/queries/impl/list-pr-feedback.query.js +7 -0
  286. package/dist/features/pr/queries/impl/list-pr-feedback.query.js.map +1 -0
  287. package/dist/features/pr/queries/index.js +3 -0
  288. package/dist/features/pr/queries/index.js.map +1 -0
  289. package/dist/features/runs/commands/handlers/runs-command.handlers.js +32 -0
  290. package/dist/features/runs/commands/handlers/runs-command.handlers.js.map +1 -0
  291. package/dist/features/runs/commands/impl/create-run.command.js +7 -0
  292. package/dist/features/runs/commands/impl/create-run.command.js.map +1 -0
  293. package/dist/features/runs/commands/index.js +3 -0
  294. package/dist/features/runs/commands/index.js.map +1 -0
  295. package/dist/features/runs/queries/handlers/runs-query.handlers.js +359 -0
  296. package/dist/features/runs/queries/handlers/runs-query.handlers.js.map +1 -0
  297. package/dist/features/runs/queries/impl/get-agent-activity.query.js +7 -0
  298. package/dist/features/runs/queries/impl/get-agent-activity.query.js.map +1 -0
  299. package/dist/features/runs/queries/impl/get-agent-attempts.query.js +7 -0
  300. package/dist/features/runs/queries/impl/get-agent-attempts.query.js.map +1 -0
  301. package/dist/features/runs/queries/impl/get-agent-log.query.js +7 -0
  302. package/dist/features/runs/queries/impl/get-agent-log.query.js.map +1 -0
  303. package/dist/features/runs/queries/impl/get-run-attempts.query.js +7 -0
  304. package/dist/features/runs/queries/impl/get-run-attempts.query.js.map +1 -0
  305. package/dist/features/runs/queries/impl/get-run-digest.query.js +7 -0
  306. package/dist/features/runs/queries/impl/get-run-digest.query.js.map +1 -0
  307. package/dist/features/runs/queries/impl/get-run-events.query.js +7 -0
  308. package/dist/features/runs/queries/impl/get-run-events.query.js.map +1 -0
  309. package/dist/features/runs/queries/impl/get-run-progress.query.js +7 -0
  310. package/dist/features/runs/queries/impl/get-run-progress.query.js.map +1 -0
  311. package/dist/features/runs/queries/impl/get-run-workflow.query.js +7 -0
  312. package/dist/features/runs/queries/impl/get-run-workflow.query.js.map +1 -0
  313. package/dist/features/runs/queries/impl/get-run.query.js +7 -0
  314. package/dist/features/runs/queries/impl/get-run.query.js.map +1 -0
  315. package/dist/features/runs/queries/impl/list-runs.query.js +7 -0
  316. package/dist/features/runs/queries/impl/list-runs.query.js.map +1 -0
  317. package/dist/features/runs/queries/impl/simulate-route.query.js +7 -0
  318. package/dist/features/runs/queries/impl/simulate-route.query.js.map +1 -0
  319. package/dist/features/runs/queries/index.js +15 -0
  320. package/dist/features/runs/queries/index.js.map +1 -0
  321. package/dist/features/runs/runs-api.module.js +23 -0
  322. package/dist/features/runs/runs-api.module.js.map +1 -0
  323. package/dist/features/runs/runs-api.service.js +79 -0
  324. package/dist/features/runs/runs-api.service.js.map +1 -0
  325. package/dist/features/shared/connection.js +39 -0
  326. package/dist/features/shared/connection.js.map +1 -0
  327. package/dist/features/system/commands/index.js +2 -0
  328. package/dist/features/system/commands/index.js.map +1 -0
  329. package/dist/features/system/queries/handlers/system-query.handlers.js +96 -0
  330. package/dist/features/system/queries/handlers/system-query.handlers.js.map +1 -0
  331. package/dist/features/system/queries/impl/doctor.query.js +4 -0
  332. package/dist/features/system/queries/impl/doctor.query.js.map +1 -0
  333. package/dist/features/system/queries/impl/get-project.query.js +4 -0
  334. package/dist/features/system/queries/impl/get-project.query.js.map +1 -0
  335. package/dist/features/system/queries/impl/get-repository-context.query.js +7 -0
  336. package/dist/features/system/queries/impl/get-repository-context.query.js.map +1 -0
  337. package/dist/features/system/queries/impl/get-status.query.js +4 -0
  338. package/dist/features/system/queries/impl/get-status.query.js.map +1 -0
  339. package/dist/features/system/queries/impl/validate-repository.query.js +7 -0
  340. package/dist/features/system/queries/impl/validate-repository.query.js.map +1 -0
  341. package/dist/features/system/queries/index.js +9 -0
  342. package/dist/features/system/queries/index.js.map +1 -0
  343. package/dist/features/system/system-api.module.js +23 -0
  344. package/dist/features/system/system-api.module.js.map +1 -0
  345. package/dist/features/system/system-api.service.js +47 -0
  346. package/dist/features/system/system-api.service.js.map +1 -0
  347. package/dist/host/daemon.js +99 -0
  348. package/dist/host/daemon.js.map +1 -0
  349. package/dist/host/dbos-identity.js +42 -0
  350. package/dist/host/dbos-identity.js.map +1 -0
  351. package/dist/host/ensure-host.js +120 -0
  352. package/dist/host/ensure-host.js.map +1 -0
  353. package/dist/host/host-runtime.js +90 -0
  354. package/dist/host/host-runtime.js.map +1 -0
  355. package/dist/host/host.lifecycle.js +16 -3
  356. package/dist/host/host.lifecycle.js.map +1 -1
  357. package/dist/host/queue-ownership.js +70 -0
  358. package/dist/host/queue-ownership.js.map +1 -0
  359. package/dist/host/queue-poller-census.js +47 -0
  360. package/dist/host/queue-poller-census.js.map +1 -0
  361. package/dist/http/graphql-host.js +56 -0
  362. package/dist/http/graphql-host.js.map +1 -0
  363. package/dist/{mcp/mcp.module.js → http/graphql-host.module.js} +12 -10
  364. package/dist/http/graphql-host.module.js.map +1 -0
  365. package/dist/infrastructure/metrics/graphql/graphql-metrics.js +91 -0
  366. package/dist/infrastructure/metrics/graphql/graphql-metrics.js.map +1 -0
  367. package/dist/mcp/mcp-capabilities.js +9 -1
  368. package/dist/mcp/mcp-capabilities.js.map +1 -1
  369. package/dist/mcp/mcp-facade.service.js +68 -5
  370. package/dist/mcp/mcp-facade.service.js.map +1 -1
  371. package/dist/mcp/mcp-http.service.js +95 -0
  372. package/dist/mcp/mcp-http.service.js.map +1 -0
  373. package/dist/mcp/mcp-tools.js +93 -7
  374. package/dist/mcp/mcp-tools.js.map +1 -1
  375. package/dist/observability/agent-activity-reporter.js +185 -0
  376. package/dist/observability/agent-activity-reporter.js.map +1 -0
  377. package/dist/observability/agent-observability.service.js +1142 -0
  378. package/dist/observability/agent-observability.service.js.map +1 -0
  379. package/dist/observability/index.js +4 -0
  380. package/dist/observability/index.js.map +1 -0
  381. package/dist/observability/types.js +11 -0
  382. package/dist/observability/types.js.map +1 -0
  383. package/dist/pipeline/await-human.js +8 -4
  384. package/dist/pipeline/await-human.js.map +1 -1
  385. package/dist/pipeline/data-driven-task.workflow.js +667 -0
  386. package/dist/pipeline/data-driven-task.workflow.js.map +1 -0
  387. package/dist/pipeline/data-driven-template.js +57 -0
  388. package/dist/pipeline/data-driven-template.js.map +1 -0
  389. package/dist/pipeline/pipeline.module.js +2 -2
  390. package/dist/pipeline/pipeline.module.js.map +1 -1
  391. package/dist/pipeline/pipeline.service.js +412 -0
  392. package/dist/pipeline/pipeline.service.js.map +1 -0
  393. package/dist/pipeline/route-contract.js +82 -0
  394. package/dist/pipeline/route-contract.js.map +1 -0
  395. package/dist/pipeline-core/index.js +16 -0
  396. package/dist/pipeline-core/index.js.map +1 -0
  397. package/dist/pipeline-core/interpret.js +353 -0
  398. package/dist/pipeline-core/interpret.js.map +1 -0
  399. package/dist/pipeline-core/kit/assertions.js +61 -0
  400. package/dist/pipeline-core/kit/assertions.js.map +1 -0
  401. package/dist/pipeline-core/kit/builders.js +138 -0
  402. package/dist/pipeline-core/kit/builders.js.map +1 -0
  403. package/dist/pipeline-core/kit/drive.js +96 -0
  404. package/dist/pipeline-core/kit/drive.js.map +1 -0
  405. package/dist/pipeline-core/kit/fixtures.js +342 -0
  406. package/dist/pipeline-core/kit/fixtures.js.map +1 -0
  407. package/dist/pipeline-core/kit/index.js +13 -0
  408. package/dist/pipeline-core/kit/index.js.map +1 -0
  409. package/dist/pipeline-core/types.js +134 -0
  410. package/dist/pipeline-core/types.js.map +1 -0
  411. package/dist/pipeline-core/validate-capability.js +23 -0
  412. package/dist/pipeline-core/validate-capability.js.map +1 -0
  413. package/dist/pipeline-core/validate-conflicts.js +37 -0
  414. package/dist/pipeline-core/validate-conflicts.js.map +1 -0
  415. package/dist/pipeline-core/validate-dataflow.js +212 -0
  416. package/dist/pipeline-core/validate-dataflow.js.map +1 -0
  417. package/dist/pipeline-core/validate-diff.js +158 -0
  418. package/dist/pipeline-core/validate-diff.js.map +1 -0
  419. package/dist/pipeline-core/validate-edges.js +44 -0
  420. package/dist/pipeline-core/validate-edges.js.map +1 -0
  421. package/dist/pipeline-core/validate-graph.js +123 -0
  422. package/dist/pipeline-core/validate-graph.js.map +1 -0
  423. package/dist/pipeline-core/validate-loops.js +226 -0
  424. package/dist/pipeline-core/validate-loops.js.map +1 -0
  425. package/dist/pipeline-core/validate-parallel.js +132 -0
  426. package/dist/pipeline-core/validate-parallel.js.map +1 -0
  427. package/dist/pipeline-core/validate-sink.js +27 -0
  428. package/dist/pipeline-core/validate-sink.js.map +1 -0
  429. package/dist/pipeline-core/validate-topology.js +140 -0
  430. package/dist/pipeline-core/validate-topology.js.map +1 -0
  431. package/dist/pipeline-core/validate-verdict.js +72 -0
  432. package/dist/pipeline-core/validate-verdict.js.map +1 -0
  433. package/dist/pipeline-core/validate.js +119 -0
  434. package/dist/pipeline-core/validate.js.map +1 -0
  435. package/dist/playbook/catalog-loader.js +14 -1
  436. package/dist/playbook/catalog-loader.js.map +1 -1
  437. package/dist/playbook/import-mapper.js +14 -38
  438. package/dist/playbook/import-mapper.js.map +1 -1
  439. package/dist/playbook/manifest.js +1 -1
  440. package/dist/revisium/playbooks.service.js +107 -19
  441. package/dist/revisium/playbooks.service.js.map +1 -1
  442. package/dist/revisium/roles.service.js +1 -1
  443. package/dist/revisium/roles.service.js.map +1 -1
  444. package/dist/revisium/run.service.js +55 -8
  445. package/dist/revisium/run.service.js.map +1 -1
  446. package/dist/run/append-event.js +24 -1
  447. package/dist/run/append-event.js.map +1 -1
  448. package/dist/run/block-run.js +17 -0
  449. package/dist/run/block-run.js.map +1 -0
  450. package/dist/run/complete-run.js +18 -0
  451. package/dist/run/complete-run.js.map +1 -0
  452. package/dist/run/create-run.js +33 -36
  453. package/dist/run/create-run.js.map +1 -1
  454. package/dist/run/inspect-run.js +31 -30
  455. package/dist/run/inspect-run.js.map +1 -1
  456. package/dist/run/run-outputs.js +88 -0
  457. package/dist/run/run-outputs.js.map +1 -0
  458. package/dist/run/terminal-run-status.js +66 -7
  459. package/dist/run/terminal-run-status.js.map +1 -1
  460. package/dist/runners/claude-code.service.js +5 -0
  461. package/dist/runners/claude-code.service.js.map +1 -1
  462. package/dist/runners/codex.service.js +51 -0
  463. package/dist/runners/codex.service.js.map +1 -0
  464. package/dist/runners/integrator-branch-naming.js +39 -0
  465. package/dist/runners/integrator-branch-naming.js.map +1 -0
  466. package/dist/runners/integrator-git.js +84 -0
  467. package/dist/runners/integrator-git.js.map +1 -0
  468. package/dist/runners/integrator-remote.js +34 -0
  469. package/dist/runners/integrator-remote.js.map +1 -0
  470. package/dist/runners/integrator-types.js +9 -0
  471. package/dist/runners/integrator-types.js.map +1 -0
  472. package/dist/runners/integrator.js +327 -147
  473. package/dist/runners/integrator.js.map +1 -1
  474. package/dist/runners/runner.module.js +7 -3
  475. package/dist/runners/runner.module.js.map +1 -1
  476. package/dist/runners/worktree.service.js +63 -0
  477. package/dist/runners/worktree.service.js.map +1 -0
  478. package/dist/smoke/cli.js +47 -0
  479. package/dist/smoke/cli.js.map +1 -0
  480. package/dist/smoke/isolation.js +113 -0
  481. package/dist/smoke/isolation.js.map +1 -0
  482. package/dist/task-control-plane/run-watch.service.js +281 -0
  483. package/dist/task-control-plane/run-watch.service.js.map +1 -0
  484. package/dist/task-control-plane/task-control-plane-api.service.js +569 -23
  485. package/dist/task-control-plane/task-control-plane-api.service.js.map +1 -1
  486. package/dist/task-control-plane/task-control-plane.module.js +22 -3
  487. package/dist/task-control-plane/task-control-plane.module.js.map +1 -1
  488. package/dist/worker/artifact-store.js +116 -0
  489. package/dist/worker/artifact-store.js.map +1 -0
  490. package/dist/worker/build-context.js +169 -2
  491. package/dist/worker/build-context.js.map +1 -1
  492. package/dist/worker/claude-code-runner.js +159 -68
  493. package/dist/worker/claude-code-runner.js.map +1 -1
  494. package/dist/worker/codex-runner.js +474 -0
  495. package/dist/worker/codex-runner.js.map +1 -0
  496. package/dist/worker/git-worktree-manager.js +129 -65
  497. package/dist/worker/git-worktree-manager.js.map +1 -1
  498. package/dist/worker/process-executor.js +23 -2
  499. package/dist/worker/process-executor.js.map +1 -1
  500. package/dist/worker/result-envelope.js +115 -57
  501. package/dist/worker/result-envelope.js.map +1 -1
  502. package/dist/worker/runner-common.js +106 -0
  503. package/dist/worker/runner-common.js.map +1 -0
  504. package/dist/worker/runner-dispatch.js +4 -1
  505. package/dist/worker/runner-dispatch.js.map +1 -1
  506. package/dist/worker/runner.js +11 -1
  507. package/dist/worker/runner.js.map +1 -1
  508. package/dist/worker/stub-runner.js +7 -45
  509. package/dist/worker/stub-runner.js.map +1 -1
  510. package/package.json +32 -7
  511. package/dist/app.module.js +0 -28
  512. package/dist/app.module.js.map +0 -1
  513. package/dist/cli/commands/bootstrap.js +0 -39
  514. package/dist/cli/commands/bootstrap.js.map +0 -1
  515. package/dist/cli/commands/dev.js +0 -143
  516. package/dist/cli/commands/dev.js.map +0 -1
  517. package/dist/cli/commands/inbox.js +0 -288
  518. package/dist/cli/commands/inbox.js.map +0 -1
  519. package/dist/cli/commands/playbook.js +0 -74
  520. package/dist/cli/commands/playbook.js.map +0 -1
  521. package/dist/cli/commands/poll-workflow-state.js +0 -144
  522. package/dist/cli/commands/poll-workflow-state.js.map +0 -1
  523. package/dist/cli/commands/revisium-context.js +0 -23
  524. package/dist/cli/commands/revisium-context.js.map +0 -1
  525. package/dist/cli/commands/revisium.js +0 -89
  526. package/dist/cli/commands/revisium.js.map +0 -1
  527. package/dist/cli/commands/run.js +0 -426
  528. package/dist/cli/commands/run.js.map +0 -1
  529. package/dist/cli/commands/work.js +0 -149
  530. package/dist/cli/commands/work.js.map +0 -1
  531. package/dist/cli/live-guard.js +0 -49
  532. package/dist/cli/live-guard.js.map +0 -1
  533. package/dist/cli/needs-host.js +0 -78
  534. package/dist/cli/needs-host.js.map +0 -1
  535. package/dist/mcp/mcp-stdio.service.js +0 -48
  536. package/dist/mcp/mcp-stdio.service.js.map +0 -1
  537. package/dist/mcp/mcp.module.js.map +0 -1
  538. package/dist/pipeline/develop-task.workflow.js +0 -497
  539. package/dist/pipeline/develop-task.workflow.js.map +0 -1
  540. package/dist/worker/loop.js +0 -122
  541. package/dist/worker/loop.js.map +0 -1
  542. package/dist/worker/script-runner.js +0 -28
  543. package/dist/worker/script-runner.js.map +0 -1
  544. package/dist/worker/worker-id.js +0 -18
  545. package/dist/worker/worker-id.js.map +0 -1
  546. package/dist/worker/worktree-manager.js +0 -7
  547. package/dist/worker/worktree-manager.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"revisium.js","sourceRoot":"","sources":["../../../src/cli/commands/revisium.ts"],"names":[],"mappings":"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"}
@@ -1,426 +0,0 @@
1
- import { ControlPlaneError } from '../../control-plane/index.js';
2
- import { CreateRunWorkflowError } from '../../run/create-run.js';
3
- import { formatRunList, formatRunDetail, formatEventList, formatEventListVerbose, formatAttemptList } from '../../run/inspect-run.js';
4
- import { withRevisiumService } from './revisium-context.js';
5
- import { sanitizeWorkflowID } from './dev.js';
6
- import { pollWorkflowState } from './poll-workflow-state.js';
7
- import { assertNoStubLive, warnLiveCost } from '../live-guard.js';
8
- /**
9
- * Lazily resolve PipelineService from the Nest app context (F10: no static pipeline import).
10
- * Dynamic import: only loads pipeline code on the host path.
11
- */
12
- async function resolvePipelineService(app) {
13
- const { PipelineService } = await import('../../pipeline/develop-task.workflow.js');
14
- return app.get(PipelineService);
15
- }
16
- /**
17
- * runPollWorkflowState — thin wrapper that opens an InboxService context and
18
- * delegates to the shared pollWorkflowState helper (poll-workflow-state.ts).
19
- *
20
- * Extracted to a local wrapper so runStart can call pollWorkflowState without
21
- * holding an open Nest context for the full start flow.
22
- */
23
- async function runPollWorkflowState(runId, dbosService, pollOpts = {}) {
24
- const { InboxService: InboxServiceClass } = await import('../../revisium/inbox.service.js');
25
- const { RunService: RunServiceClass } = await import('../../revisium/run.service.js');
26
- // 0008 #2: surface the run_failed reason on a FAILURE terminal status. The reader opens its own
27
- // short-lived Revisium context per call (the poll loop only reads it once, on the terminal tick).
28
- const readFailure = (id) => withRevisiumService(RunServiceClass, (svc) => svc.getRunFailure(id));
29
- await withRevisiumService(InboxServiceClass, (inboxSvc) => pollWorkflowState(runId, dbosService, inboxSvc, { ...pollOpts, readFailure }));
30
- }
31
- /**
32
- * runStartCore — testable core of `run start`.
33
- *
34
- * Exported for unit tests (C1 pattern): tests inject fake RunStartDeps and assert the
35
- * EXACT runnerMode forwarded to startDevelopTask without creating a NestJS context.
36
- * Production: called by runStart after building deps from the live app context.
37
- */
38
- export async function runStartCore(safeRunId, options, deps) {
39
- // Validate flag combination: --stub + --live is an error
40
- if (!assertNoStubLive(options.stub ?? false, options.live ?? false))
41
- return;
42
- // E12: pre-check the run exists in Revisium before enqueueing.
43
- const runRow = await deps.getRun(safeRunId);
44
- if (!runRow) {
45
- console.error(`run not found: ${safeRunId}`);
46
- process.exitCode = 1;
47
- return;
48
- }
49
- // Emit cost/effect warning BEFORE enqueue (live mode).
50
- if (options.live)
51
- warnLiveCost();
52
- const existingStatus = await deps.getWorkflowStatus(safeRunId);
53
- // Map flags to runnerMode (M1):
54
- // --live → 'live'; default or --stub → 'script'
55
- const runnerMode = options.live ? 'live' : 'script';
56
- const handle = await deps.startDevelopTask(safeRunId, { runnerMode });
57
- if (existingStatus !== null) {
58
- console.log('note: this run was already started — the runner cannot be changed after the first start.');
59
- console.log(' to use a different runner, create a new run with a new runId.');
60
- console.log(`workflow: ${handle.workflowID}`);
61
- }
62
- else {
63
- console.log(`workflow: ${handle.workflowID}`);
64
- if (options.stub) {
65
- console.log('stub: --stub is active (zero-cost run via stub runner).');
66
- }
67
- if (options.live) {
68
- console.log('live: --live is active (real Claude + real git/gh integrator).');
69
- }
70
- }
71
- // 0004 §3.6: poll for parked or terminal state; thread --wait through to the viewer.
72
- console.log('awaiting settled state (parked or terminal)…');
73
- await deps.pollState(safeRunId, { wait: options.wait ?? false });
74
- }
75
- /**
76
- * run start <id> [--stub]
77
- *
78
- * Host-requiring: enqueues the developTask DBOS workflow for the given runId.
79
- * `--stub` forces zero-cost stub runner via the durable runnerOverride arg (B4).
80
- *
81
- * B10: start is idempotent by workflowID=runId. `--stub` only takes effect on the FIRST
82
- * start; a subsequent `run start --stub` on an already-started run returns the existing
83
- * handle and does NOT switch the runner (DBOS does not overwrite persisted args).
84
- * To switch, create a NEW run (new runId) and start that with --stub.
85
- *
86
- * 0004 §3.6: no longer blocks on waitForWorkflowResult (the workflow parks at recv).
87
- * Instead, polls getWorkflowStatus (terminal) + listInbox (parked) and returns once settled.
88
- * The workflow's DBOS checkpoint persists; shutting down the host while parked is safe.
89
- */
90
- async function runStart(runId, options, app) {
91
- if (!app) {
92
- console.error('run start requires the host context — invoke via the host path');
93
- process.exitCode = 1;
94
- return;
95
- }
96
- // E11: validate the runId before any enqueue.
97
- let safeRunId;
98
- try {
99
- safeRunId = sanitizeWorkflowID(runId);
100
- }
101
- catch (err) {
102
- console.error(err.message);
103
- process.exitCode = 1;
104
- return;
105
- }
106
- try {
107
- // Build live deps from the Nest app context and withRevisiumService.
108
- const { RunService: RunServiceClass } = await import('../../revisium/run.service.js');
109
- const { DbosService: DbosServiceClass } = await import('../../engine/dbos.service.js');
110
- const dbosService = app.get(DbosServiceClass);
111
- const pipeline = await resolvePipelineService(app);
112
- const deps = {
113
- getRun: (id) => withRevisiumService(RunServiceClass, (svc) => svc.getRun(id)),
114
- getWorkflowStatus: (id) => dbosService.getWorkflowStatus(id),
115
- startDevelopTask: (id, opts) => pipeline.startDevelopTask(id, opts),
116
- pollState: (id, pollOpts) => runPollWorkflowState(id, dbosService, pollOpts),
117
- };
118
- await runStartCore(safeRunId, options, deps);
119
- }
120
- catch (error) {
121
- reportRunCliError(error);
122
- }
123
- }
124
- /**
125
- * reportRunCliError — shared error reporter for the `run` subcommands.
126
- * Prints a uniform Error line (+ hint for ControlPlaneError) and sets exitCode=1.
127
- * Extracted to remove the catch-block duplication the per-command handlers shared.
128
- */
129
- export function reportRunCliError(error) {
130
- if (error instanceof ControlPlaneError) {
131
- console.error(`Error: ${formatCause(error)}`);
132
- printHint(error, false);
133
- }
134
- else if (error instanceof Error) {
135
- console.error(`Error: ${error.message}`);
136
- }
137
- else {
138
- console.error(`Error: ${String(error)}`);
139
- }
140
- process.exitCode = 1;
141
- }
142
- export function formatCause(error) {
143
- if (error instanceof ControlPlaneError) {
144
- const status = error.status === undefined ? '' : ` status=${error.status}`;
145
- return `${error.code}${status}: ${error.message}`;
146
- }
147
- if (error instanceof Error)
148
- return error.message;
149
- return String(error);
150
- }
151
- export function printHint(error, createdRows) {
152
- if (error.code === 'DAEMON_NOT_RUNNING') {
153
- console.error('Run: ./bin/revo.js revisium start');
154
- }
155
- if (error.code === 'BOOTSTRAP_NOT_APPLIED' && !createdRows) {
156
- console.error('Run: ./bin/revo.js bootstrap --commit');
157
- }
158
- }
159
- function parsePriority(value) {
160
- const priority = Number(value);
161
- if (!Number.isFinite(priority) || !Number.isInteger(priority)) {
162
- throw new TypeError(`Invalid priority: ${value}`);
163
- }
164
- return priority;
165
- }
166
- function parseLimit(value, flag) {
167
- if (value === undefined)
168
- return undefined;
169
- const n = Number(value);
170
- if (!Number.isFinite(n) || !Number.isInteger(n) || n < 1) {
171
- throw new Error(`Invalid ${flag}: ${value} (must be a positive integer)`);
172
- }
173
- return n;
174
- }
175
- /**
176
- * withRunService — thin wrapper around the shared withRevisiumService helper.
177
- * Opens exactly ONE Nest context per invocation and closes it in finally.
178
- */
179
- async function withRunService(fn) {
180
- const { RunService: RunServiceClass } = await import('../../revisium/run.service.js');
181
- return withRevisiumService(RunServiceClass, fn);
182
- }
183
- /**
184
- * createRunCore — testable core of `run create`.
185
- *
186
- * Exported for unit tests (mirrors C1 pattern from runStartCore): tests inject fake
187
- * CreateRunDeps and assert the correct error paths WITHOUT creating a NestJS context.
188
- * Production: called by createRun after building the real deps.
189
- *
190
- * Key invariant (B+C fix): ALL start-mode preconditions are validated BEFORE any write.
191
- * If validation fails, NO run is created and process.exitCode is set to 1.
192
- * (a) --start without app → host-required error, return, zero writes.
193
- * (b) --start --stub --live → contradiction error (via assertNoStubLive), return, zero writes.
194
- * Only after both checks pass is createRunFn called, then runStart exactly once.
195
- *
196
- * Cost-guard: live is only forwarded to runStart which maps it → 'live' runnerMode; the
197
- * throwing claudeCode runner is never reached without explicit --live (0005 guard intact).
198
- */
199
- export async function createRunCore(options, deps) {
200
- // Validate start-mode preconditions BEFORE any write (B+C fix: no orphan drafts).
201
- if (options.start) {
202
- if (!deps.app) {
203
- console.error('run create --start requires the host context — invoke via the host path');
204
- process.exitCode = 1;
205
- return;
206
- }
207
- // assertNoStubLive returns false and sets exitCode=1 on contradiction.
208
- if (!assertNoStubLive(options.stub ?? false, options.live ?? false)) {
209
- return;
210
- }
211
- }
212
- // Validation passed (or non-start path) — proceed with the write.
213
- const result = await deps.createRunFn({
214
- title: options.title,
215
- repo: options.repo,
216
- description: options.description,
217
- scope: options.scope,
218
- priority: parsePriority(options.priority),
219
- role: options.role,
220
- });
221
- console.log(`created run ${result.runId}`);
222
- console.log(`task ${result.taskId}`);
223
- console.log(`step ${result.stepId} ${result.status}`);
224
- console.log(`event ${result.eventId}`);
225
- console.log('status: ready (draft only, not committed)');
226
- // --start: chain into runStart exactly once (no inline second enqueue).
227
- if (options.start) {
228
- await deps.runStart(result.runId, {
229
- stub: options.stub,
230
- live: options.live,
231
- wait: options.wait,
232
- });
233
- }
234
- }
235
- async function createRun(options, app) {
236
- try {
237
- const deps = {
238
- createRunFn: (input) => withRunService((svc) => svc.createRun(input)),
239
- runStart: (runId, startOpts) => runStart(runId, startOpts, app),
240
- app,
241
- };
242
- await createRunCore(options, deps);
243
- }
244
- catch (error) {
245
- if (error instanceof CreateRunWorkflowError) {
246
- console.error(`Error: ${error.message}: ${formatCause(error.cause)}`);
247
- if (Object.keys(error.createdIds).length > 0) {
248
- console.error(`created before failure: ${JSON.stringify(error.createdIds)}`);
249
- }
250
- if (error.cause instanceof ControlPlaneError) {
251
- printHint(error.cause, Object.keys(error.createdIds).length > 0);
252
- }
253
- process.exitCode = 1;
254
- }
255
- else {
256
- reportRunCliError(error);
257
- }
258
- }
259
- }
260
- async function runList(options) {
261
- try {
262
- const limit = parseLimit(options.limit, '--limit');
263
- const runs = await withRunService((svc) => svc.listRuns({ status: options.status, limit }));
264
- if (options.json) {
265
- process.stdout.write(JSON.stringify(runs, null, 2) + '\n');
266
- }
267
- else {
268
- console.log(formatRunList(runs));
269
- }
270
- }
271
- catch (error) {
272
- reportRunCliError(error);
273
- }
274
- }
275
- async function runShow(runId, options) {
276
- try {
277
- const detail = await withRunService((svc) => svc.showRun(runId));
278
- if (!detail) {
279
- console.error(`run not found: ${runId}`);
280
- process.exitCode = 1;
281
- return;
282
- }
283
- if (options.json) {
284
- process.stdout.write(JSON.stringify(detail, null, 2) + '\n');
285
- }
286
- else {
287
- console.log(formatRunDetail(detail));
288
- }
289
- }
290
- catch (error) {
291
- reportRunCliError(error);
292
- }
293
- }
294
- async function runEvents(runId, options) {
295
- try {
296
- const limit = parseLimit(options.limit, '--limit');
297
- // Both reads happen inside ONE Nest context (C2 fix: no two separate withRunService calls).
298
- await withRunService(async (svc) => {
299
- const found = await svc.getRun(runId);
300
- if (!found) {
301
- console.error(`run not found: ${runId}`);
302
- process.exitCode = 1;
303
- return;
304
- }
305
- const events = await svc.listRunEvents(runId, { type: options.type, limit });
306
- if (options.json) {
307
- process.stdout.write(JSON.stringify(events, null, 2) + '\n');
308
- }
309
- else if (options.verbose) {
310
- console.log(formatEventListVerbose(events));
311
- }
312
- else {
313
- console.log(formatEventList(events));
314
- }
315
- });
316
- }
317
- catch (error) {
318
- reportRunCliError(error);
319
- }
320
- }
321
- /**
322
- * run log <runId> — per-attempt observability dump (0008 #4).
323
- * Reads the previously-unused attempts table: output summary, verdict, model, tokens, cost,
324
- * duration, iteration, status — closing the dogfood's "agent output not surfaced" gap.
325
- */
326
- async function runLog(runId, options) {
327
- try {
328
- const limit = parseLimit(options.limit, '--limit');
329
- await withRunService(async (svc) => {
330
- const found = await svc.getRun(runId);
331
- if (!found) {
332
- console.error(`run not found: ${runId}`);
333
- process.exitCode = 1;
334
- return;
335
- }
336
- const attempts = await svc.listRunAttempts(runId, { limit });
337
- if (options.json) {
338
- process.stdout.write(JSON.stringify(attempts, null, 2) + '\n');
339
- }
340
- else {
341
- console.log(formatAttemptList(attempts));
342
- }
343
- });
344
- }
345
- catch (error) {
346
- reportRunCliError(error);
347
- }
348
- }
349
- async function runCancel(runId) {
350
- try {
351
- const result = await withRunService((svc) => svc.cancelRun(runId));
352
- if (!result) {
353
- console.error(`run not found: ${runId}`);
354
- process.exitCode = 1;
355
- return;
356
- }
357
- if (result.previousStatus === 'cancelled') {
358
- console.log(`run ${result.runId} already cancelled`);
359
- }
360
- else {
361
- console.log(`cancelled run ${result.runId} (was ${result.previousStatus})`);
362
- }
363
- }
364
- catch (error) {
365
- reportRunCliError(error);
366
- }
367
- }
368
- export function registerRun(program, app) {
369
- const run = program.command('run').description('Manage orchestrator runs');
370
- run
371
- .command('start')
372
- .description('Start the pipeline workflow for a run (host-requiring)')
373
- .argument('<runId>', 'Run ID to start')
374
- .option('--stub', 'Use zero-cost stub runner (dev/test only)', false)
375
- .option('--live', 'Use the REAL Claude runner AND the real git/gh integrator — THIS WILL CALL claude, INCUR COST, AND PUSH/OPEN A PR', false)
376
- .option('--wait', 'Keep a live viewer attached through step transitions until the run parks at a gate or finishes', false)
377
- .action((runId, options) => runStart(runId, options, app));
378
- run
379
- .command('create')
380
- .requiredOption('--title <title>', 'Run title')
381
- .requiredOption('--repo <path-or-name>', 'Repository path or name')
382
- .option('--description <text>', 'Run description')
383
- .option('--scope <text>', 'Run scope')
384
- .option('--priority <n>', 'Run priority', '0')
385
- .option('--role <name>', 'Initial step role (architect|developer|reviewer|integrator|pr-watcher)', 'architect')
386
- .option('--start', 'Immediately start the pipeline workflow after creating the run (host-requiring)', false)
387
- .option('--wait', 'After starting, keep a live viewer attached until the run parks at a gate or finishes', false)
388
- .option('--stub', 'With --start: use the zero-cost stub runner (default behavior)', false)
389
- .option('--live', 'With --start: use the REAL Claude runner + real git/gh integrator (cost + PR)', false)
390
- .action((options) => createRun(options, app));
391
- run
392
- .command('list')
393
- .description('List runs')
394
- .option('--status <status>', 'Filter by status')
395
- .option('--limit <n>', 'Maximum number of results')
396
- .option('--json', 'Output as JSON', false)
397
- .action(runList);
398
- run
399
- .command('show')
400
- .description('Show run details')
401
- .argument('<runId>', 'Run ID')
402
- .option('--json', 'Output as JSON', false)
403
- .action(runShow);
404
- run
405
- .command('events')
406
- .description('List events for a run')
407
- .argument('<runId>', 'Run ID')
408
- .option('--type <type>', 'Filter by event type')
409
- .option('--limit <n>', 'Maximum number of results')
410
- .option('--json', 'Output as JSON', false)
411
- .option('--verbose', 'Expand each event payload (agent output, verdict, reason)', false)
412
- .action(runEvents);
413
- run
414
- .command('log')
415
- .description('Show per-attempt log for a run (output, verdict, model, tokens, cost, duration)')
416
- .argument('<runId>', 'Run ID')
417
- .option('--limit <n>', 'Maximum number of results')
418
- .option('--json', 'Output as JSON', false)
419
- .action(runLog);
420
- run
421
- .command('cancel')
422
- .description('Cancel a run')
423
- .argument('<runId>', 'Run ID')
424
- .action(runCancel);
425
- }
426
- //# sourceMappingURL=run.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAuB,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEtI,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAiB,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA2ClE;;;GAGG;AACH,KAAK,UAAU,sBAAsB,CAAC,GAA4B;IAChE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,yCAAyC,CAAC,CAAC;IACpF,OAAO,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,oBAAoB,CACjC,KAAa,EACb,WAAsF,EACtF,WAAqB,EAAE;IAEvB,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;IAC5F,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;IACtF,gGAAgG;IAChG,kGAAkG;IAClG,MAAM,WAAW,GAA4B,CAAC,EAAE,EAAE,EAAE,CAClD,mBAAmB,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;IACvE,MAAM,mBAAmB,CAAC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,EAAE,CACxD,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE,CAAC,CAC9E,CAAC;AACJ,CAAC;AAsBD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,SAAiB,EACjB,OAAyD,EACzD,IAAkB;IAElB,yDAAyD;IACzD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO;IAE5E,+DAA+D;IAC/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,uDAAuD;IACvD,IAAI,OAAO,CAAC,IAAI;QAAE,YAAY,EAAE,CAAC;IAEjC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAE/D,gCAAgC;IAChC,kDAAkD;IAClD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,MAAgB,CAAC,CAAC,CAAE,QAAkB,CAAC;IAC1E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAEtE,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CACT,0FAA0F,CAC3F,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,qFAAqF;IACrF,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC5D,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,KAAK,UAAU,QAAQ,CACrB,KAAa,EACb,OAAqB,EACrB,GAAwC;IAExC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;QAChF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,8CAA8C;IAC9C,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,qEAAqE;QACrE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;QACtF,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;QACvF,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAEnD,MAAM,IAAI,GAAiB;YACzB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC7E,iBAAiB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC5D,gBAAgB,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC;YACnE,SAAS,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC;SAC7E,CAAC;QAEF,MAAM,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,UAAU,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9C,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1B,CAAC;SAAM,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3E,OAAO,GAAG,KAAK,CAAC,IAAI,GAAG,MAAM,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IACpD,CAAC;IACD,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IACjD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAwB,EAAE,WAAoB;IACtE,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,SAAS,CAAC,qBAAqB,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,KAAyB,EAAE,IAAY;IACzD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,KAAK,+BAA+B,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,cAAc,CAAI,EAAmC;IAClE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;IACtF,OAAO,mBAAmB,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;AAClD,CAAC;AAiBD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAsB,EACtB,IAAmB;IAEnB,kFAAkF;IAClF,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;YACzF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,uEAAuE;QACvE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACpE,OAAO;QACT,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;QACpC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC;QACzC,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAEzD,wEAAwE;IACxE,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE;YAChC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,OAAsB,EAAE,GAA6B;IAC5E,IAAI,CAAC;QACH,MAAM,IAAI,GAAkB;YAC1B,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACrE,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC;YAC/D,GAAG;SACJ,CAAC;QACF,MAAM,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,sBAAsB,EAAE,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,KAAK,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7C,OAAO,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAC/E,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,YAAY,iBAAiB,EAAE,CAAC;gBAC7C,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACnE,CAAC;YACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,OAAoB;IACzC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5F,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,KAAa,EAAE,OAAoB;IACxD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,KAAa,EAAE,OAAsB;IAC5D,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACnD,4FAA4F;QAC5F,MAAM,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACjC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;gBACzC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7E,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAC/D,CAAC;iBAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,MAAM,CAAC,KAAa,EAAE,OAAmB;IACtD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACnD,MAAM,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACjC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;gBACzC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7D,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,KAAa;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,IAAI,MAAM,CAAC,cAAc,KAAK,WAAW,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,KAAK,oBAAoB,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,KAAK,SAAS,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAgB,EAAE,GAA6B;IACzE,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC;IAE3E,GAAG;SACA,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,wDAAwD,CAAC;SACrE,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;SACtC,MAAM,CAAC,QAAQ,EAAE,2CAA2C,EAAE,KAAK,CAAC;SACpE,MAAM,CACL,QAAQ,EACR,mHAAmH,EACnH,KAAK,CACN;SACA,MAAM,CACL,QAAQ,EACR,gGAAgG,EAChG,KAAK,CACN;SACA,MAAM,CAAC,CAAC,KAAa,EAAE,OAAqB,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAEnF,GAAG;SACA,OAAO,CAAC,QAAQ,CAAC;SACjB,cAAc,CAAC,iBAAiB,EAAE,WAAW,CAAC;SAC9C,cAAc,CAAC,uBAAuB,EAAE,yBAAyB,CAAC;SAClE,MAAM,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;SACjD,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC;SACrC,MAAM,CAAC,gBAAgB,EAAE,cAAc,EAAE,GAAG,CAAC;SAC7C,MAAM,CAAC,eAAe,EAAE,wEAAwE,EAAE,WAAW,CAAC;SAC9G,MAAM,CAAC,SAAS,EAAE,iFAAiF,EAAE,KAAK,CAAC;SAC3G,MAAM,CACL,QAAQ,EACR,uFAAuF,EACvF,KAAK,CACN;SACA,MAAM,CAAC,QAAQ,EAAE,gEAAgE,EAAE,KAAK,CAAC;SACzF,MAAM,CACL,QAAQ,EACR,+EAA+E,EAC/E,KAAK,CACN;SACA,MAAM,CAAC,CAAC,OAAsB,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAE/D,GAAG;SACA,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,WAAW,CAAC;SACxB,MAAM,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;SAC/C,MAAM,CAAC,aAAa,EAAE,2BAA2B,CAAC;SAClD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,CAAC;SACzC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,GAAG;SACA,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,kBAAkB,CAAC;SAC/B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;SAC7B,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,CAAC;SACzC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,GAAG;SACA,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,uBAAuB,CAAC;SACpC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;SAC7B,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC;SAC/C,MAAM,CAAC,aAAa,EAAE,2BAA2B,CAAC;SAClD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,CAAC;SACzC,MAAM,CAAC,WAAW,EAAE,2DAA2D,EAAE,KAAK,CAAC;SACvF,MAAM,CAAC,SAAS,CAAC,CAAC;IAErB,GAAG;SACA,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,iFAAiF,CAAC;SAC9F,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;SAC7B,MAAM,CAAC,aAAa,EAAE,2BAA2B,CAAC;SAClD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,CAAC;SACzC,MAAM,CAAC,MAAM,CAAC,CAAC;IAElB,GAAG;SACA,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,cAAc,CAAC;SAC3B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;SAC7B,MAAM,CAAC,SAAS,CAAC,CAAC;AACvB,CAAC"}
@@ -1,149 +0,0 @@
1
- import { ControlPlaneError, createControlPlaneDataAccess, loadRole, loadModelProfile } from '../../control-plane/index.js';
2
- import { makeResolveCwd as sharedMakeResolveCwd } from '../../control-plane/resolve-cwd.js';
3
- import { stubRunAgent } from '../../worker/stub-runner.js';
4
- import { createClaudeCodeRunner } from '../../worker/claude-code-runner.js';
5
- import { GitWorktreeManager } from '../../worker/git-worktree-manager.js';
6
- import { createRunAgent } from '../../worker/runner-dispatch.js';
7
- import { createScriptRunner } from '../../worker/script-runner.js';
8
- import { spawnExecutor } from '../../worker/process-executor.js';
9
- import { runWorker } from '../../worker/loop.js';
10
- import { resolveWorkerId } from '../../worker/worker-id.js';
11
- import { warnLiveCost, requireLiveFlag } from '../live-guard.js';
12
- function formatCause(error) {
13
- if (error instanceof ControlPlaneError) {
14
- const status = error.status === undefined ? '' : ` status=${error.status}`;
15
- return `${error.code}${status}: ${error.message}`;
16
- }
17
- if (error instanceof Error)
18
- return error.message;
19
- return String(error);
20
- }
21
- function printHint(error) {
22
- if (error.code === 'DAEMON_NOT_RUNNING') {
23
- console.error('Run: revo revisium start');
24
- }
25
- if (error.code === 'BOOTSTRAP_NOT_APPLIED') {
26
- console.error('Run: revo bootstrap --commit');
27
- }
28
- }
29
- /**
30
- * makeResolveCwd — delegates to the shared resolve-cwd module (B1 fix).
31
- * Kept here for backward compatibility with existing call sites in workCommand.
32
- * Now accepts absolute existing dirs (the external target repo case), rejects
33
- * non-existent/non-dir paths, and guards relative '../..' traversal.
34
- */
35
- export function makeResolveCwd(da, base = process.cwd()) {
36
- return sharedMakeResolveCwd(da, base);
37
- }
38
- export async function workCommand(options) {
39
- const roles = options.roles ? options.roles.split(',').map((r) => r.trim()).filter(Boolean) : ['architect', 'developer'];
40
- if (roles.length === 0) {
41
- console.error('Error: --roles produced an empty list; provide at least one role name');
42
- process.exitCode = 1;
43
- return;
44
- }
45
- const runnerMode = options.runner ?? 'stub';
46
- if (runnerMode !== 'stub' && runnerMode !== 'auto') {
47
- console.error(`Error: --runner must be 'stub' or 'auto', got: ${runnerMode}`);
48
- process.exitCode = 1;
49
- return;
50
- }
51
- if (options.live && runnerMode !== 'auto') {
52
- console.error('Error: --live requires --runner auto');
53
- process.exitCode = 1;
54
- return;
55
- }
56
- if (options.worktrees && runnerMode === 'stub') {
57
- console.warn('--worktrees has no effect with --runner stub');
58
- }
59
- const runnerTimeoutMs = options.runnerTimeoutMs === undefined ? 600000 : Number(options.runnerTimeoutMs);
60
- if (!Number.isFinite(runnerTimeoutMs) || runnerTimeoutMs <= 0) {
61
- console.error(`Error: --runner-timeout-ms must be a positive number, got: ${String(options.runnerTimeoutMs)}`);
62
- process.exitCode = 1;
63
- return;
64
- }
65
- const workerId = resolveWorkerId(options.workerId);
66
- const idleSleepMs = options.idleSleep === undefined ? 5000 : Number(options.idleSleep);
67
- if (!Number.isFinite(idleSleepMs) || idleSleepMs < 0) {
68
- console.error(`Error: --idle-sleep must be a non-negative number, got: ${String(options.idleSleep)}`);
69
- process.exitCode = 1;
70
- return;
71
- }
72
- const once = options.once ?? false;
73
- // Cost guard: fail fast BEFORE connecting to Revisium.
74
- // --runner auto requires --live. Check here so tests don't need a live Revisium daemon.
75
- if (runnerMode === 'auto') {
76
- if (!requireLiveFlag(options.live ?? false, 'auto'))
77
- return;
78
- // Emit cost warning immediately so the user sees it before any daemon connection.
79
- warnLiveCost();
80
- }
81
- const abortController = new AbortController();
82
- process.once('SIGINT', () => {
83
- console.log('\nStopping after current step…');
84
- abortController.abort();
85
- });
86
- try {
87
- const da = createControlPlaneDataAccess();
88
- await da.assertReady();
89
- // The injected runAgent is the ONLY thing that changes between modes — runWorker/WorkerDeps and
90
- // the loop are untouched (invariant 2). stub stays the default (zero cost; real claude is opt-in).
91
- let runAgent;
92
- if (runnerMode === 'auto') {
93
- const { run: prReadinessRun } = await import('../../poller/pr-readiness.js');
94
- const scriptRunner = createScriptRunner({ scripts: { 'ci-poller': { run: prReadinessRun } } });
95
- runAgent = createRunAgent({
96
- claudeCode: createClaudeCodeRunner({
97
- executor: spawnExecutor,
98
- resolveCwd: makeResolveCwd(da),
99
- timeoutMs: runnerTimeoutMs,
100
- worktreeManager: options.worktrees ? new GitWorktreeManager() : undefined,
101
- }),
102
- script: scriptRunner,
103
- });
104
- }
105
- else {
106
- runAgent = stubRunAgent;
107
- }
108
- await runWorker({
109
- da,
110
- loadRole: (name) => loadRole(name),
111
- loadModelProfile: (level) => loadModelProfile(level),
112
- runAgent,
113
- }, {
114
- workerId,
115
- roles,
116
- once,
117
- idleSleepMs,
118
- signal: abortController.signal,
119
- });
120
- }
121
- catch (error) {
122
- if (error instanceof ControlPlaneError) {
123
- console.error(`Error: ${formatCause(error)}`);
124
- printHint(error);
125
- }
126
- else if (error instanceof Error) {
127
- console.error(`Error: ${error.message}`);
128
- }
129
- else {
130
- console.error(`Error: ${String(error)}`);
131
- }
132
- process.exitCode = 1;
133
- }
134
- }
135
- export function registerWork(program) {
136
- program
137
- .command('work')
138
- .description('Run the worker loop. --runner stub (default, zero-cost) or auto (real claude-code dispatch)')
139
- .option('--once', 'Process one step then exit; exit immediately when idle')
140
- .option('--roles <csv>', 'Comma-separated list of roles to claim', 'architect,developer')
141
- .option('--worker-id <id>', 'Override the stable worker identity')
142
- .option('--idle-sleep <ms>', 'Milliseconds to sleep when no step is available', '5000')
143
- .option('--runner <mode>', "Runner mode: 'stub' (default, zero-cost) or 'auto' (real claude-code dispatch)", 'stub')
144
- .option('--runner-timeout-ms <n>', 'Timeout in ms for the real (auto) runner', '600000')
145
- .option('--worktrees', 'Use per-step git worktrees with --runner auto (git-level isolation only; npm install and port bindings are NOT isolated)')
146
- .option('--live', 'Use the REAL Claude runner AND the real git/gh integrator — THIS WILL CALL claude, INCUR COST, AND PUSH/OPEN A PR (requires --runner auto)', false)
147
- .action(workCommand);
148
- }
149
- //# sourceMappingURL=work.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"work.js","sourceRoot":"","sources":["../../../src/cli/commands/work.ts"],"names":[],"mappings":"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"}