@revisium/orchestrator 0.1.0 → 0.2.0-alpha.0

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 (212) hide show
  1. package/README.md +78 -0
  2. package/control-plane/bootstrap.config.json +43 -1
  3. package/control-plane/default-playbook/catalog/pipelines.json +941 -3
  4. package/control-plane/default-playbook/catalog/roles.json +54 -0
  5. package/dist/api/graphql-api/graphql-ws/pubsub.module.js +0 -1
  6. package/dist/api/graphql-api/graphql-ws/pubsub.module.js.map +1 -1
  7. package/dist/api/graphql-api/graphql-ws/run-progress-subscription-poller.service.js +0 -1
  8. package/dist/api/graphql-api/graphql-ws/run-progress-subscription-poller.service.js.map +1 -1
  9. package/dist/api/graphql-api/graphql-ws/subscription-bridge.service.js +0 -1
  10. package/dist/api/graphql-api/graphql-ws/subscription-bridge.service.js.map +1 -1
  11. package/dist/api/graphql-api/pr/model/pr-readiness.model.js +0 -4
  12. package/dist/api/graphql-api/pr/model/pr-readiness.model.js.map +1 -1
  13. package/dist/cli/commands/doctor-report.js +0 -18
  14. package/dist/cli/commands/doctor-report.js.map +1 -1
  15. package/dist/cli/commands/lifecycle.js +3 -71
  16. package/dist/cli/commands/lifecycle.js.map +1 -1
  17. package/dist/cli/commands/mcp.js +0 -14
  18. package/dist/cli/commands/mcp.js.map +1 -1
  19. package/dist/cli/commands/process-tree.js +4 -26
  20. package/dist/cli/commands/process-tree.js.map +1 -1
  21. package/dist/cli/commands/revisium-helpers.js +0 -6
  22. package/dist/cli/commands/revisium-helpers.js.map +1 -1
  23. package/dist/cli/commands/rogue-reaper.js +0 -34
  24. package/dist/cli/commands/rogue-reaper.js.map +1 -1
  25. package/dist/cli/index.js +0 -4
  26. package/dist/cli/index.js.map +1 -1
  27. package/dist/cli/program.js +0 -5
  28. package/dist/cli/program.js.map +1 -1
  29. package/dist/config.js +0 -25
  30. package/dist/config.js.map +1 -1
  31. package/dist/control-plane/bootstrap.js +0 -28
  32. package/dist/control-plane/bootstrap.js.map +1 -1
  33. package/dist/control-plane/change-notifications.js +0 -1
  34. package/dist/control-plane/change-notifications.js.map +1 -1
  35. package/dist/control-plane/client-transport.js +0 -11
  36. package/dist/control-plane/client-transport.js.map +1 -1
  37. package/dist/control-plane/definitions.js +8 -17
  38. package/dist/control-plane/definitions.js.map +1 -1
  39. package/dist/control-plane/inbox.js +2 -120
  40. package/dist/control-plane/inbox.js.map +1 -1
  41. package/dist/control-plane/resolve-cwd.js +0 -61
  42. package/dist/control-plane/resolve-cwd.js.map +1 -1
  43. package/dist/control-plane/schema-migration.js +0 -9
  44. package/dist/control-plane/schema-migration.js.map +1 -1
  45. package/dist/control-plane/seed-default-playbook.js +5 -70
  46. package/dist/control-plane/seed-default-playbook.js.map +1 -1
  47. package/dist/control-plane/steps.js +0 -15
  48. package/dist/control-plane/steps.js.map +1 -1
  49. package/dist/e2e/kit/assertions.js +1 -1
  50. package/dist/e2e/kit/assertions.js.map +1 -1
  51. package/dist/engine/dbos.service.js +9 -179
  52. package/dist/engine/dbos.service.js.map +1 -1
  53. package/dist/engine/ensure-postgres.js +0 -48
  54. package/dist/engine/ensure-postgres.js.map +1 -1
  55. package/dist/host/daemon.js +2 -21
  56. package/dist/host/daemon.js.map +1 -1
  57. package/dist/host/dbos-identity.js +0 -31
  58. package/dist/host/dbos-identity.js.map +1 -1
  59. package/dist/host/ensure-host.js +1 -37
  60. package/dist/host/ensure-host.js.map +1 -1
  61. package/dist/host/ensure-revisium.js +1 -135
  62. package/dist/host/ensure-revisium.js.map +1 -1
  63. package/dist/host/host-runtime.js +0 -28
  64. package/dist/host/host-runtime.js.map +1 -1
  65. package/dist/host/host.lifecycle.js +0 -27
  66. package/dist/host/host.lifecycle.js.map +1 -1
  67. package/dist/host/queue-ownership.js +0 -42
  68. package/dist/host/queue-ownership.js.map +1 -1
  69. package/dist/host/queue-poller-census.js +1 -28
  70. package/dist/host/queue-poller-census.js.map +1 -1
  71. package/dist/http/graphql-host.module.js +0 -3
  72. package/dist/http/graphql-host.module.js.map +1 -1
  73. package/dist/mcp/mcp-capabilities.js +19 -14
  74. package/dist/mcp/mcp-capabilities.js.map +1 -1
  75. package/dist/mcp/mcp-facade.service.js +41 -23
  76. package/dist/mcp/mcp-facade.service.js.map +1 -1
  77. package/dist/mcp/mcp-http.service.js +0 -18
  78. package/dist/mcp/mcp-http.service.js.map +1 -1
  79. package/dist/mcp/mcp-tools.js +18 -40
  80. package/dist/mcp/mcp-tools.js.map +1 -1
  81. package/dist/observability/activity-signal.js +0 -4
  82. package/dist/observability/activity-signal.js.map +1 -1
  83. package/dist/observability/agent-activity-reporter.js +0 -4
  84. package/dist/observability/agent-activity-reporter.js.map +1 -1
  85. package/dist/pipeline/await-human.js +0 -40
  86. package/dist/pipeline/await-human.js.map +1 -1
  87. package/dist/pipeline/data-driven-task.workflow.js +106 -236
  88. package/dist/pipeline/data-driven-task.workflow.js.map +1 -1
  89. package/dist/pipeline/data-driven-template.js +0 -25
  90. package/dist/pipeline/data-driven-template.js.map +1 -1
  91. package/dist/pipeline/pipeline.module.js +0 -12
  92. package/dist/pipeline/pipeline.module.js.map +1 -1
  93. package/dist/pipeline/pipeline.service.js +10 -99
  94. package/dist/pipeline/pipeline.service.js.map +1 -1
  95. package/dist/pipeline-core/index.js +1 -13
  96. package/dist/pipeline-core/index.js.map +1 -1
  97. package/dist/pipeline-core/interpret.js +21 -94
  98. package/dist/pipeline-core/interpret.js.map +1 -1
  99. package/dist/pipeline-core/kit/assertions.js +0 -19
  100. package/dist/pipeline-core/kit/assertions.js.map +1 -1
  101. package/dist/pipeline-core/kit/builders.js +1 -21
  102. package/dist/pipeline-core/kit/builders.js.map +1 -1
  103. package/dist/pipeline-core/kit/drive.js +1 -31
  104. package/dist/pipeline-core/kit/drive.js.map +1 -1
  105. package/dist/pipeline-core/kit/fixtures.js +8 -82
  106. package/dist/pipeline-core/kit/fixtures.js.map +1 -1
  107. package/dist/pipeline-core/kit/index.js +0 -8
  108. package/dist/pipeline-core/kit/index.js.map +1 -1
  109. package/dist/pipeline-core/types.js +13 -52
  110. package/dist/pipeline-core/types.js.map +1 -1
  111. package/dist/pipeline-core/validate-capability.js +0 -3
  112. package/dist/pipeline-core/validate-capability.js.map +1 -1
  113. package/dist/pipeline-core/validate-conflicts.js +0 -9
  114. package/dist/pipeline-core/validate-conflicts.js.map +1 -1
  115. package/dist/pipeline-core/validate-dataflow.js +0 -17
  116. package/dist/pipeline-core/validate-dataflow.js.map +1 -1
  117. package/dist/pipeline-core/validate-diff.js +3 -36
  118. package/dist/pipeline-core/validate-diff.js.map +1 -1
  119. package/dist/pipeline-core/validate-edges.js +0 -6
  120. package/dist/pipeline-core/validate-edges.js.map +1 -1
  121. package/dist/pipeline-core/validate-graph.js +0 -11
  122. package/dist/pipeline-core/validate-graph.js.map +1 -1
  123. package/dist/pipeline-core/validate-loops.js +37 -44
  124. package/dist/pipeline-core/validate-loops.js.map +1 -1
  125. package/dist/pipeline-core/validate-parallel.js +9 -15
  126. package/dist/pipeline-core/validate-parallel.js.map +1 -1
  127. package/dist/pipeline-core/validate-sink.js +0 -7
  128. package/dist/pipeline-core/validate-sink.js.map +1 -1
  129. package/dist/pipeline-core/validate-topology.js +1 -20
  130. package/dist/pipeline-core/validate-topology.js.map +1 -1
  131. package/dist/pipeline-core/validate-verdict.js +52 -7
  132. package/dist/pipeline-core/validate-verdict.js.map +1 -1
  133. package/dist/pipeline-core/validate.js +5 -29
  134. package/dist/pipeline-core/validate.js.map +1 -1
  135. package/dist/playbook/catalog-loader.js +8 -3
  136. package/dist/playbook/catalog-loader.js.map +1 -1
  137. package/dist/playbook/import-mapper.js +1 -9
  138. package/dist/playbook/import-mapper.js.map +1 -1
  139. package/dist/poller/pr-readiness-core.js +0 -74
  140. package/dist/poller/pr-readiness-core.js.map +1 -1
  141. package/dist/revisium/inbox.service.js +0 -24
  142. package/dist/revisium/inbox.service.js.map +1 -1
  143. package/dist/revisium/playbooks.service.js +2 -4
  144. package/dist/revisium/playbooks.service.js.map +1 -1
  145. package/dist/revisium/revisium.module.js +0 -12
  146. package/dist/revisium/revisium.module.js.map +1 -1
  147. package/dist/revisium/roles.service.js +0 -6
  148. package/dist/revisium/roles.service.js.map +1 -1
  149. package/dist/revisium/run.service.js +1 -75
  150. package/dist/revisium/run.service.js.map +1 -1
  151. package/dist/revisium/tokens.js +0 -4
  152. package/dist/revisium/tokens.js.map +1 -1
  153. package/dist/run/append-event.js +0 -34
  154. package/dist/run/append-event.js.map +1 -1
  155. package/dist/run/block-run.js.map +1 -1
  156. package/dist/run/cancel-run.js +0 -33
  157. package/dist/run/cancel-run.js.map +1 -1
  158. package/dist/run/complete-run.js.map +1 -1
  159. package/dist/run/create-run.js +0 -7
  160. package/dist/run/create-run.js.map +1 -1
  161. package/dist/run/fail-run.js +0 -3
  162. package/dist/run/fail-run.js.map +1 -1
  163. package/dist/run/inspect-run.js +0 -26
  164. package/dist/run/inspect-run.js.map +1 -1
  165. package/dist/run/run-outputs.js +0 -19
  166. package/dist/run/run-outputs.js.map +1 -1
  167. package/dist/run/terminal-run-status.js +0 -12
  168. package/dist/run/terminal-run-status.js.map +1 -1
  169. package/dist/runners/claude-code.service.js +0 -11
  170. package/dist/runners/claude-code.service.js.map +1 -1
  171. package/dist/runners/codex.service.js +0 -9
  172. package/dist/runners/codex.service.js.map +1 -1
  173. package/dist/runners/gh-identity.js +0 -52
  174. package/dist/runners/gh-identity.js.map +1 -1
  175. package/dist/runners/integrator-branch-naming.js +3 -11
  176. package/dist/runners/integrator-branch-naming.js.map +1 -1
  177. package/dist/runners/integrator-git.js +0 -25
  178. package/dist/runners/integrator-git.js.map +1 -1
  179. package/dist/runners/integrator-remote.js +0 -2
  180. package/dist/runners/integrator-remote.js.map +1 -1
  181. package/dist/runners/integrator-types.js +0 -7
  182. package/dist/runners/integrator-types.js.map +1 -1
  183. package/dist/runners/integrator.js +3 -167
  184. package/dist/runners/integrator.js.map +1 -1
  185. package/dist/runners/runner.module.js +0 -6
  186. package/dist/runners/runner.module.js.map +1 -1
  187. package/dist/runners/tokens.js +0 -4
  188. package/dist/runners/tokens.js.map +1 -1
  189. package/dist/runners/worktree.service.js +1 -17
  190. package/dist/runners/worktree.service.js.map +1 -1
  191. package/dist/task-control-plane/run-watch.service.js +49 -173
  192. package/dist/task-control-plane/run-watch.service.js.map +1 -1
  193. package/dist/task-control-plane/task-control-plane-api.service.js +15 -17
  194. package/dist/task-control-plane/task-control-plane-api.service.js.map +1 -1
  195. package/dist/worker/build-context.js +0 -16
  196. package/dist/worker/build-context.js.map +1 -1
  197. package/dist/worker/claude-code-runner.js +9 -42
  198. package/dist/worker/claude-code-runner.js.map +1 -1
  199. package/dist/worker/codex-runner.js +88 -22
  200. package/dist/worker/codex-runner.js.map +1 -1
  201. package/dist/worker/git-worktree-manager.js +20 -67
  202. package/dist/worker/git-worktree-manager.js.map +1 -1
  203. package/dist/worker/process-executor.js +0 -12
  204. package/dist/worker/process-executor.js.map +1 -1
  205. package/dist/worker/result-envelope.js +33 -49
  206. package/dist/worker/result-envelope.js.map +1 -1
  207. package/dist/worker/runner-dispatch.js +0 -3
  208. package/dist/worker/runner-dispatch.js.map +1 -1
  209. package/dist/worker/runner.js.map +1 -1
  210. package/dist/worker/stub-runner.js +0 -7
  211. package/dist/worker/stub-runner.js.map +1 -1
  212. package/package.json +2 -2
package/README.md CHANGED
@@ -131,6 +131,7 @@ data directory, and DBOS database.
131
131
 
132
132
  ```sh
133
133
  pnpm install
134
+ pnpm run build
134
135
  pnpm run revo -- start --profile dev
135
136
  pnpm run revo -- status --profile dev
136
137
  pnpm run revo -- doctor --profile dev
@@ -148,16 +149,93 @@ pnpm run revo -- stop --profile dev
148
149
  Explicit environment variables override the profile: `REVO_DATA_DIR`, `REVO_PORT`, `REVO_PG_PORT`,
149
150
  `REVO_GRAPHQL_PORT`, and `REVO_DBOS_DB`.
150
151
 
152
+ ### Build and globally install a local Revo
153
+
154
+ This workflow is for local development/testing of the CLI and MCP server, **not** for publishing a release.
155
+
156
+ **Build from the orchestrator checkout:**
157
+
158
+ ```sh
159
+ pnpm install --frozen-lockfile
160
+ pnpm run build
161
+ ```
162
+
163
+ **Pack a tarball** (preferred over a directory-symlink install):
164
+
165
+ ```sh
166
+ npm pack --pack-destination /private/tmp
167
+ ```
168
+
169
+ This emits `/private/tmp/revisium-orchestrator-0.0.0.tgz` (filename tracks `package.json` `version`).
170
+
171
+ **Identify the active Node prefix that owns the `revo` binary:**
172
+
173
+ ```sh
174
+ which revo
175
+ ```
176
+
177
+ Resolve the symlink and pick the prefix that contains both `bin/revo` and
178
+ `lib/node_modules/@revisium/orchestrator`. `npm prefix -g` may point to a *different* prefix than the active
179
+ `revo` binary (common under nvm), so derive the prefix from `which revo`, not from `npm prefix -g`.
180
+
181
+ **Install the tarball globally into that prefix:**
182
+
183
+ ```sh
184
+ npm install -g --prefix <active-node-prefix> /private/tmp/revisium-orchestrator-0.0.0.tgz
185
+ ```
186
+
187
+ For nvm installs, the active prefix is usually the parent directory that contains both `bin/revo` and
188
+ `lib/node_modules/@revisium/orchestrator`. Use that prefix consistently for both `npm` and `revo`.
189
+
190
+ > **Warning:** do not use `npm install -g <local-dir>` from a temporary worktree. npm may install a symlink to
191
+ > that directory; if the worktree is later removed, the global `revo` binary breaks. The tarball install copies
192
+ > files and avoids this.
193
+
194
+ **Restart and verify health:**
195
+
196
+ ```sh
197
+ revo restart
198
+ revo status
199
+ revo doctor
200
+ ```
201
+
202
+ **Verify the MCP tool surface after a global tool/schema change:**
203
+
204
+ Restart the Codex session so MCP tool schemas are reloaded. `get_capabilities` should list:
205
+ `get_run_attention`, `get_run_status`, `get_run_digest`, `get_run_events`, `get_agent_activity`,
206
+ `get_agent_log`, `watch_run_changes`. Legacy observation tools are absent from the current contract.
207
+
208
+ If Codex cannot expose `mcp__revo` tools after restart, check `~/.codex/config.toml`: use an absolute path to
209
+ the active `revo` binary, for example `command = "<active-node-prefix>/bin/revo"`, rather than
210
+ `command = "revo"` — the Codex process PATH may not include nvm.
211
+
151
212
  ## Front Doors
152
213
 
153
214
  `revo mcp` is the agent front door. It is a local stdio bridge to the daemon and exposes product-level tools for
154
215
  runs, gates, repository diagnostics, method discovery, and PR readiness.
155
216
 
217
+ For source-iteration MCP testing, point the MCP client at the `pnpm run revo` script:
218
+
156
219
  ```sh
157
220
  codex mcp add --env REVO_PROFILE=dev revo-dev -- pnpm --dir /abs/path/to/orchestrator run revo -- mcp
158
221
  claude mcp add -e REVO_PROFILE=dev revo-dev -- pnpm --dir /abs/path/to/orchestrator run revo -- mcp
159
222
  ```
160
223
 
224
+ For testing the same built entrypoint that the package uses, point the MCP client at `bin/revo.js`:
225
+
226
+ ```sh
227
+ pnpm run build
228
+ REVO_PROFILE=dev ./bin/revo.js restart --profile dev
229
+ REVO_PROFILE=dev ./bin/revo.js doctor --profile dev
230
+ codex mcp add --env REVO_PROFILE=dev revo-dev -- /abs/path/to/orchestrator/bin/revo.js mcp
231
+ claude mcp add -e REVO_PROFILE=dev revo-dev -- /abs/path/to/orchestrator/bin/revo.js mcp
232
+ ```
233
+
234
+ `bin/revo.js` imports `dist/cli/index.js`, so it does not see source edits until `pnpm run build` runs. After
235
+ changing MCP tools or capabilities, rebuild, restart the `dev` stack, and reconnect or restart the MCP client session
236
+ so the client refreshes its tool list. A built MCP smoke should confirm `get_capabilities.tools` contains
237
+ `get_run_attention`, `get_run_status`, and `watch_run_changes`, with no legacy observation tools.
238
+
161
239
  For the `dev` profile, GraphQL is available at `http://127.0.0.1:19623/graphql`.
162
240
 
163
241
  ## Verification
@@ -703,7 +703,7 @@
703
703
  "level": {
704
704
  "type": "string",
705
705
  "default": "",
706
- "description": "cheap|standard|deep"
706
+ "description": "cheap|standard|deep|codex-cheap|codex-standard|codex-deep"
707
707
  },
708
708
  "provider": {
709
709
  "type": "string",
@@ -1017,6 +1017,48 @@
1017
1017
  "updated_at": "2026-06-03T00:00:00.000Z"
1018
1018
  }
1019
1019
  },
1020
+ {
1021
+ "tableId": "model_profiles",
1022
+ "rowId": "codex-standard",
1023
+ "data": {
1024
+ "id": "codex-standard",
1025
+ "level": "codex-standard",
1026
+ "provider": "openai",
1027
+ "model_id": "gpt-5.5",
1028
+ "params": "{}",
1029
+ "cost_per_input": 2.0,
1030
+ "cost_per_output": 8.0,
1031
+ "updated_at": "2026-06-03T00:00:00.000Z"
1032
+ }
1033
+ },
1034
+ {
1035
+ "tableId": "model_profiles",
1036
+ "rowId": "codex-cheap",
1037
+ "data": {
1038
+ "id": "codex-cheap",
1039
+ "level": "codex-cheap",
1040
+ "provider": "openai",
1041
+ "model_id": "gpt-5.5",
1042
+ "params": "{}",
1043
+ "cost_per_input": 2.0,
1044
+ "cost_per_output": 8.0,
1045
+ "updated_at": "2026-06-03T00:00:00.000Z"
1046
+ }
1047
+ },
1048
+ {
1049
+ "tableId": "model_profiles",
1050
+ "rowId": "codex-deep",
1051
+ "data": {
1052
+ "id": "codex-deep",
1053
+ "level": "codex-deep",
1054
+ "provider": "openai",
1055
+ "model_id": "gpt-5.5",
1056
+ "params": "{}",
1057
+ "cost_per_input": 2.0,
1058
+ "cost_per_output": 8.0,
1059
+ "updated_at": "2026-06-03T00:00:00.000Z"
1060
+ }
1061
+ },
1020
1062
  {
1021
1063
  "tableId": "routing_policy",
1022
1064
  "rowId": "pipeline",