@revisium/orchestrator 0.1.0-alpha.1 → 0.1.0-alpha.11

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 (549) 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 +106 -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 +163 -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 +142 -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 +94 -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 +727 -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 +22 -39
  438. package/dist/playbook/import-mapper.js.map +1 -1
  439. package/dist/playbook/manifest.js +1 -1
  440. package/dist/poller/pr-readiness-core.js +42 -0
  441. package/dist/poller/pr-readiness-core.js.map +1 -1
  442. package/dist/revisium/playbooks.service.js +107 -19
  443. package/dist/revisium/playbooks.service.js.map +1 -1
  444. package/dist/revisium/roles.service.js +1 -1
  445. package/dist/revisium/roles.service.js.map +1 -1
  446. package/dist/revisium/run.service.js +55 -8
  447. package/dist/revisium/run.service.js.map +1 -1
  448. package/dist/run/append-event.js +24 -1
  449. package/dist/run/append-event.js.map +1 -1
  450. package/dist/run/block-run.js +17 -0
  451. package/dist/run/block-run.js.map +1 -0
  452. package/dist/run/complete-run.js +18 -0
  453. package/dist/run/complete-run.js.map +1 -0
  454. package/dist/run/create-run.js +33 -36
  455. package/dist/run/create-run.js.map +1 -1
  456. package/dist/run/inspect-run.js +35 -32
  457. package/dist/run/inspect-run.js.map +1 -1
  458. package/dist/run/run-outputs.js +88 -0
  459. package/dist/run/run-outputs.js.map +1 -0
  460. package/dist/run/terminal-run-status.js +66 -7
  461. package/dist/run/terminal-run-status.js.map +1 -1
  462. package/dist/runners/claude-code.service.js +5 -0
  463. package/dist/runners/claude-code.service.js.map +1 -1
  464. package/dist/runners/codex.service.js +51 -0
  465. package/dist/runners/codex.service.js.map +1 -0
  466. package/dist/runners/integrator-branch-naming.js +39 -0
  467. package/dist/runners/integrator-branch-naming.js.map +1 -0
  468. package/dist/runners/integrator-git.js +84 -0
  469. package/dist/runners/integrator-git.js.map +1 -0
  470. package/dist/runners/integrator-remote.js +34 -0
  471. package/dist/runners/integrator-remote.js.map +1 -0
  472. package/dist/runners/integrator-types.js +9 -0
  473. package/dist/runners/integrator-types.js.map +1 -0
  474. package/dist/runners/integrator.js +364 -152
  475. package/dist/runners/integrator.js.map +1 -1
  476. package/dist/runners/runner.module.js +7 -3
  477. package/dist/runners/runner.module.js.map +1 -1
  478. package/dist/runners/worktree.service.js +63 -0
  479. package/dist/runners/worktree.service.js.map +1 -0
  480. package/dist/smoke/cli.js +47 -0
  481. package/dist/smoke/cli.js.map +1 -0
  482. package/dist/smoke/isolation.js +113 -0
  483. package/dist/smoke/isolation.js.map +1 -0
  484. package/dist/task-control-plane/run-watch.service.js +281 -0
  485. package/dist/task-control-plane/run-watch.service.js.map +1 -0
  486. package/dist/task-control-plane/task-control-plane-api.service.js +586 -24
  487. package/dist/task-control-plane/task-control-plane-api.service.js.map +1 -1
  488. package/dist/task-control-plane/task-control-plane.module.js +22 -3
  489. package/dist/task-control-plane/task-control-plane.module.js.map +1 -1
  490. package/dist/worker/artifact-store.js +118 -0
  491. package/dist/worker/artifact-store.js.map +1 -0
  492. package/dist/worker/build-context.js +169 -2
  493. package/dist/worker/build-context.js.map +1 -1
  494. package/dist/worker/claude-code-runner.js +175 -70
  495. package/dist/worker/claude-code-runner.js.map +1 -1
  496. package/dist/worker/codex-runner.js +475 -0
  497. package/dist/worker/codex-runner.js.map +1 -0
  498. package/dist/worker/git-worktree-manager.js +129 -65
  499. package/dist/worker/git-worktree-manager.js.map +1 -1
  500. package/dist/worker/process-executor.js +23 -2
  501. package/dist/worker/process-executor.js.map +1 -1
  502. package/dist/worker/result-envelope.js +115 -57
  503. package/dist/worker/result-envelope.js.map +1 -1
  504. package/dist/worker/runner-common.js +106 -0
  505. package/dist/worker/runner-common.js.map +1 -0
  506. package/dist/worker/runner-dispatch.js +4 -1
  507. package/dist/worker/runner-dispatch.js.map +1 -1
  508. package/dist/worker/runner.js +11 -1
  509. package/dist/worker/runner.js.map +1 -1
  510. package/dist/worker/stub-runner.js +7 -45
  511. package/dist/worker/stub-runner.js.map +1 -1
  512. package/package.json +16 -6
  513. package/dist/app.module.js +0 -28
  514. package/dist/app.module.js.map +0 -1
  515. package/dist/cli/commands/bootstrap.js +0 -39
  516. package/dist/cli/commands/bootstrap.js.map +0 -1
  517. package/dist/cli/commands/dev.js +0 -143
  518. package/dist/cli/commands/dev.js.map +0 -1
  519. package/dist/cli/commands/inbox.js +0 -288
  520. package/dist/cli/commands/inbox.js.map +0 -1
  521. package/dist/cli/commands/playbook.js +0 -74
  522. package/dist/cli/commands/playbook.js.map +0 -1
  523. package/dist/cli/commands/poll-workflow-state.js +0 -144
  524. package/dist/cli/commands/poll-workflow-state.js.map +0 -1
  525. package/dist/cli/commands/revisium-context.js +0 -23
  526. package/dist/cli/commands/revisium-context.js.map +0 -1
  527. package/dist/cli/commands/revisium.js +0 -89
  528. package/dist/cli/commands/revisium.js.map +0 -1
  529. package/dist/cli/commands/run.js +0 -426
  530. package/dist/cli/commands/run.js.map +0 -1
  531. package/dist/cli/commands/work.js +0 -149
  532. package/dist/cli/commands/work.js.map +0 -1
  533. package/dist/cli/live-guard.js +0 -49
  534. package/dist/cli/live-guard.js.map +0 -1
  535. package/dist/cli/needs-host.js +0 -78
  536. package/dist/cli/needs-host.js.map +0 -1
  537. package/dist/mcp/mcp-stdio.service.js +0 -48
  538. package/dist/mcp/mcp-stdio.service.js.map +0 -1
  539. package/dist/mcp/mcp.module.js.map +0 -1
  540. package/dist/pipeline/develop-task.workflow.js +0 -497
  541. package/dist/pipeline/develop-task.workflow.js.map +0 -1
  542. package/dist/worker/loop.js +0 -122
  543. package/dist/worker/loop.js.map +0 -1
  544. package/dist/worker/script-runner.js +0 -28
  545. package/dist/worker/script-runner.js.map +0 -1
  546. package/dist/worker/worker-id.js +0 -18
  547. package/dist/worker/worker-id.js.map +0 -1
  548. package/dist/worker/worktree-manager.js +0 -7
  549. package/dist/worker/worktree-manager.js.map +0 -1
package/README.md CHANGED
@@ -5,7 +5,7 @@ reviewer → integrator), hosted in **NestJS**. **DBOS** owns durable progress
5
5
  from the first unfinished step — while **Revisium** owns meaning: roles, policy, inbox, events. Workflow-as-data is
6
6
  a post-MVP goal; see [`docs/architecture-overview.md`](./docs/architecture-overview.md).
7
7
 
8
- > 🚧 **Early alpha.** The end-to-end MVP works — `run create` → plan gate → implement → review → PR → merge
8
+ > 🚧 **Early alpha.** The end-to-end MVP works — create a run → plan gate → implement → review → PR → merge
9
9
  > gate — see [`docs/roadmap.md`](./docs/roadmap.md).
10
10
 
11
11
  ## Start here
@@ -15,6 +15,207 @@ a post-MVP goal; see [`docs/architecture-overview.md`](./docs/architecture-overv
15
15
  - Architecture & invariants: [`docs/architecture-overview.md`](./docs/architecture-overview.md)
16
16
  - Docs index & roadmap: [`docs/README.md`](./docs/README.md) · [`docs/roadmap.md`](./docs/roadmap.md)
17
17
 
18
+ ## Local Development
19
+
20
+ `revo` is one daemonized product. **`revo start`** brings up the whole stack — the standalone
21
+ Revisium daemon plus the Revo host daemon that owns DBOS and serves the GraphQL + MCP front doors —
22
+ and bootstraps the control-plane so it is ready to use. The CLI is lifecycle-only
23
+ (`start` / `stop` / `status` / `restart` / `doctor` / `logs`); orchestration (runs, inbox, …) is
24
+ reached over **MCP** (agents) or **GraphQL** (UI/scripts), both served by the daemon.
25
+
26
+ Run a source checkout alongside an installed package without collisions via a named **profile**
27
+ (`--profile dev`, or `REVO_PROFILE=dev`): the `dev` profile shifts the whole port band off the
28
+ `default` profile, so the two never share a port, data dir, or `dbos` database.
29
+
30
+ ```sh
31
+ pnpm install
32
+ pnpm run revo -- start --profile dev # standalone + host daemon, bootstrapped & ready
33
+ pnpm run revo -- status --profile dev # stack health summary
34
+ pnpm run revo -- doctor --profile dev # diagnose process / port / profile issues
35
+ pnpm run revo -- logs --profile dev # tail host + standalone logs; add -f to follow
36
+ pnpm run revo -- restart --profile dev # stop, then start
37
+ pnpm run revo -- stop --profile dev
38
+ ```
39
+
40
+ | Knob | `default` (installed package) | `dev` (source checkout) |
41
+ | --- | --- | --- |
42
+ | data dir | `~/.revisium-orchestrator` | `~/.revisium-orchestrator-dev` |
43
+ | standalone HTTP / Postgres | `19222` / `15440` | `19622` / `15840` |
44
+ | Revo GraphQL | `19223` | `19623` |
45
+ | DBOS database | `dbos` | `dbos_dev` |
46
+
47
+ Any single knob can be overridden explicitly — `REVO_DATA_DIR` / `REVO_PORT` / `REVO_PG_PORT` /
48
+ `REVO_GRAPHQL_PORT` / `REVO_DBOS_DB` — and an explicit env var always wins over the profile band.
49
+
50
+ Connect an agent over MCP (`revo mcp` is a thin stdio bridge — it does not launch its own DBOS;
51
+ if the daemon isn't already running, the bridge auto-starts it on first use; the profile comes
52
+ from the process environment, not per-call args):
53
+
54
+ **Claude Code**
55
+
56
+ ```sh
57
+ # global install
58
+ claude mcp add revo -- revo mcp
59
+
60
+ # dev checkout
61
+ claude mcp add revo -- pnpm --dir "$PWD" run revo -- mcp
62
+ ```
63
+
64
+ **Codex CLI** (`codex mcp add` or edit `~/.codex/config.toml` directly)
65
+
66
+ ```sh
67
+ # global install
68
+ codex mcp add revo -- revo mcp
69
+
70
+ # dev checkout (use an absolute path — $PWD does not expand in TOML args)
71
+ codex mcp add revo-dev -- pnpm --dir /abs/path/to/agent-orchestrator run revo -- mcp
72
+ ```
73
+
74
+ To use a non-`default` profile with Codex, append `--env REVO_PROFILE=dev` (and the other
75
+ dev-band vars; see the JSON block under **Live Run Observability Smoke**) to `codex mcp add`,
76
+ or export the vars in the shell before launching Codex — stdio servers inherit the parent
77
+ environment. Equivalent TOML for the global install form:
78
+
79
+ ```toml
80
+ # ~/.codex/config.toml
81
+ [mcp_servers.revo]
82
+ command = "revo" # or the absolute path from `which revo` if revo is not on Codex's PATH
83
+ args = ["mcp"]
84
+ ```
85
+
86
+ **Verify the connection** — run `claude mcp list` or `codex mcp list` to confirm the server
87
+ appears, then have the agent call `get_status` for a healthy JSON status reply. `list_pipelines`
88
+ is a good read-only alternative.
89
+
90
+ Run the local verification gates:
91
+
92
+ ```sh
93
+ pnpm run typecheck
94
+ pnpm run lint:ci
95
+ pnpm run test:cov
96
+ pnpm run verify
97
+ ```
98
+
99
+ The smoke scripts are guarded: they require a non-default `REVO_DATA_DIR`,
100
+ `REVO_PORT`, `REVO_PG_PORT`, and `REVO_DBOS_DB`; GraphQL smoke paths also require
101
+ `REVO_GRAPHQL_PORT`.
102
+
103
+ ```sh
104
+ pnpm run smoke:control-plane
105
+ pnpm run smoke:create-run
106
+ pnpm run smoke:inspect-run
107
+ ```
108
+
109
+ ### Live Run Observability Smoke
110
+
111
+ This smoke runs a real agent. It can call provider CLIs and incur cost. Use it
112
+ only when that is intentional.
113
+
114
+ ```sh
115
+ export REVO_SMOKE_REPO=/path/to/local/sandbox-repo
116
+ pnpm run revo -- start --profile dev # standalone + host daemon (serves GraphQL + MCP), ready
117
+ ```
118
+
119
+ Drive and observe a run through the daemon's front doors — there are no `run`/`serve` CLI commands.
120
+ From an agent, use the MCP tools (`create_run`, `start_run`, then `get_agent_activity` /
121
+ `get_agent_log`). From a UI or script, use the GraphQL front door the daemon already serves at
122
+ `http://127.0.0.1:$REVO_GRAPHQL_PORT/graphql` — create a run:
123
+
124
+ ```graphql
125
+ mutation Create($data: CreateRunInput!) {
126
+ createRun(data: $data) {
127
+ runId
128
+ }
129
+ }
130
+ ```
131
+
132
+ Then observe it over the same endpoint:
133
+
134
+ ```graphql
135
+ query Activity($runId: ID!) {
136
+ runAgentActivity(runId: $runId) {
137
+ runId
138
+ aggregateStatus
139
+ latestOutputAt
140
+ attempts {
141
+ attemptId
142
+ runner
143
+ status
144
+ stdoutBytes
145
+ stderrBytes
146
+ artifactRef
147
+ }
148
+ }
149
+ }
150
+
151
+ query Log($data: GetAgentLogInput!) {
152
+ runAgentLog(data: $data) {
153
+ runId
154
+ attemptId
155
+ stream
156
+ offsetBytes
157
+ nextOffsetBytes
158
+ totalBytes
159
+ truncated
160
+ content
161
+ }
162
+ }
163
+ ```
164
+
165
+ For MCP, configure the MCP client to launch this checkout's local binary with the
166
+ same environment. The MCP tools do not accept per-call profile arguments; the
167
+ profile comes from the process environment.
168
+
169
+ ```json
170
+ {
171
+ "mcpServers": {
172
+ "revo-dev": {
173
+ "command": "/path/to/agent-orchestrator/bin/revo.js",
174
+ "args": ["mcp"],
175
+ "env": {
176
+ "REVO_DATA_DIR": "/path/to/.revisium-orchestrator-dev",
177
+ "REVO_PORT": "19622",
178
+ "REVO_PG_PORT": "15840",
179
+ "REVO_GRAPHQL_PORT": "19623",
180
+ "REVO_DBOS_DB": "dbos_dev"
181
+ }
182
+ }
183
+ }
184
+ }
185
+ ```
186
+
187
+ Useful MCP observability tools for the same run:
188
+
189
+ - `get_agent_activity`
190
+ - `get_agent_attempts`
191
+ - `get_agent_log`
192
+ - `read_agent_output_events`
193
+ - `tail_agent_log`
194
+
195
+ If running from a sandboxed automation environment, local server checks may fail
196
+ with `listen EPERM` or a misleading `No free port found from <port>`. Re-run the
197
+ daemon, GraphQL, and MCP smoke commands from a normal terminal or an approved
198
+ unsandboxed execution context.
199
+
200
+ ## Upgrading
201
+
202
+ After installing a new version, run the full ritual — the daemon refreshes itself,
203
+ but the MCP client caches its tool list and only the operator can refresh it:
204
+
205
+ ```sh
206
+ npm i -g @revisium/orchestrator@<version>
207
+ revo restart # re-seeds the bundled playbook + a fresh read-scope, server-side
208
+ ```
209
+
210
+ Then, in your MCP client (e.g. Claude Code), reconnect to pick up new tools:
211
+
212
+ ```text
213
+ /mcp # reconnect — the tool list is cached client-side; the daemon cannot push a refresh
214
+ ```
215
+
216
+ Skipping the `/mcp` reconnect leaves new tools (e.g. `wait_for_any_gate`,
217
+ `watch_runs`) invisible to the client even though the upgraded daemon already serves them.
218
+
18
219
  ## License
19
220
 
20
221
  See [LICENSE](./LICENSE).
@@ -47,6 +47,31 @@
47
47
  "type": "number",
48
48
  "default": 0
49
49
  },
50
+ "playbook_id": {
51
+ "type": "string",
52
+ "default": "",
53
+ "description": "Installed playbook selected for this run"
54
+ },
55
+ "pipeline_id": {
56
+ "type": "string",
57
+ "default": "",
58
+ "description": "Installed pipeline row id selected for this run"
59
+ },
60
+ "params": {
61
+ "type": "string",
62
+ "default": "",
63
+ "description": "Serialized JSON run params"
64
+ },
65
+ "route_decision": {
66
+ "type": "string",
67
+ "default": "",
68
+ "description": "Serialized JSON structured route decision"
69
+ },
70
+ "execution_profile": {
71
+ "type": "string",
72
+ "default": "",
73
+ "description": "Serialized JSON resolved execution profile"
74
+ },
50
75
  "created_by": {
51
76
  "type": "string",
52
77
  "default": ""
@@ -124,6 +149,7 @@
124
149
  "id": "steps",
125
150
  "schema": {
126
151
  "type": "object",
152
+ "description": "DEPRECATED/unused — runtime path retired (audit §3.1, #86); no live path writes or reads a steps row (DBOS owns progress). Table drop deferred — a schema drop on existing control-planes is riskier than retiring the writes; tracked in docs/roadmap.md → Post-MVP cleanup.",
127
153
  "additionalProperties": false,
128
154
  "properties": {
129
155
  "id": {
@@ -285,6 +311,21 @@
285
311
  "default": "",
286
312
  "description": "Serialized JSON, secret-redacted, capped"
287
313
  },
314
+ "artifact_ref": {
315
+ "type": "string",
316
+ "default": "",
317
+ "description": "Stable run artifact reference, e.g. run_id/attempt_id"
318
+ },
319
+ "stdout_tail": {
320
+ "type": "string",
321
+ "default": "",
322
+ "description": "Secret-redacted process stdout tail, capped"
323
+ },
324
+ "stderr_tail": {
325
+ "type": "string",
326
+ "default": "",
327
+ "description": "Secret-redacted process stderr tail, capped"
328
+ },
288
329
  "lesson": {
289
330
  "type": "string",
290
331
  "default": ""
@@ -452,7 +493,12 @@
452
493
  "runner": {
453
494
  "type": "string",
454
495
  "default": "claude-code",
455
- "description": "claude-code|codex|script"
496
+ "description": "Deprecated alias for runner_id"
497
+ },
498
+ "runner_id": {
499
+ "type": "string",
500
+ "default": "",
501
+ "description": "Portable playbook runner binding, for example claude-code or revo-integrator"
456
502
  },
457
503
  "allowed_tools": {
458
504
  "type": "array",
@@ -768,6 +814,62 @@
768
814
  },
769
815
  "required": []
770
816
  }
817
+ },
818
+ {
819
+ "id": "run_outputs",
820
+ "schema": {
821
+ "type": "object",
822
+ "additionalProperties": false,
823
+ "properties": {
824
+ "id": {
825
+ "type": "string",
826
+ "default": "",
827
+ "description": "Deterministic: out_<fnv1a64Hex(runId|nodeId|ordinal)>"
828
+ },
829
+ "run_id": {
830
+ "type": "string",
831
+ "default": ""
832
+ },
833
+ "node_id": {
834
+ "type": "string",
835
+ "default": ""
836
+ },
837
+ "ordinal": {
838
+ "type": "number",
839
+ "default": 0,
840
+ "description": "Adapter-owned per-(run,node) execution ordinal; 1,2,3 across loop iterations (0016 §4.1)"
841
+ },
842
+ "name": {
843
+ "type": "string",
844
+ "default": "",
845
+ "description": "Artifact name from the node's produces.name, e.g. plan"
846
+ },
847
+ "schema_ref": {
848
+ "type": "string",
849
+ "default": "",
850
+ "description": "resultSchema the payload was shape-checked against, e.g. schema:plan"
851
+ },
852
+ "payload": {
853
+ "type": "string",
854
+ "default": "",
855
+ "description": "Serialized JSON content, secret-redacted + size-capped at the adapter boundary"
856
+ },
857
+ "payload_ref": {
858
+ "type": "string",
859
+ "default": "",
860
+ "description": "Set instead of payload when the content exceeds the inline cap (0016 §8)"
861
+ },
862
+ "attempt_id": {
863
+ "type": "string",
864
+ "default": ""
865
+ },
866
+ "produced_at": {
867
+ "type": "string",
868
+ "default": ""
869
+ }
870
+ },
871
+ "required": []
872
+ }
771
873
  }
772
874
  ],
773
875
  "rows": [
@@ -828,7 +930,7 @@
828
930
  "data": {
829
931
  "id": "integrator",
830
932
  "name": "integrator",
831
- "system_prompt": "[DEPRECATED] Integration is now deterministic code in src/runners/integrator.ts; this role is retired from the executed chain and is not dispatched. Kept only so `run create --role integrator` validates against KNOWN_ROLES.",
933
+ "system_prompt": "[DEPRECATED] Integration is now deterministic code in src/runners/integrator.ts; this role is retired from the executed chain and is not dispatched. Kept only so `run create --role integrator` resolves to a seeded role row.",
832
934
  "model_level": "standard",
833
935
  "effort": "high",
834
936
  "runner": "script",