@revisium/orchestrator 0.1.0 → 0.2.0-alpha.1

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 (226) 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 +1250 -7
  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/inbox/inbox.resolver.js +12 -0
  12. package/dist/api/graphql-api/inbox/inbox.resolver.js.map +1 -1
  13. package/dist/api/graphql-api/inbox/inputs/resolve-gate.input.js +37 -0
  14. package/dist/api/graphql-api/inbox/inputs/resolve-gate.input.js.map +1 -0
  15. package/dist/api/graphql-api/pr/model/pr-readiness.model.js +0 -4
  16. package/dist/api/graphql-api/pr/model/pr-readiness.model.js.map +1 -1
  17. package/dist/cli/commands/doctor-report.js +0 -18
  18. package/dist/cli/commands/doctor-report.js.map +1 -1
  19. package/dist/cli/commands/lifecycle.js +3 -71
  20. package/dist/cli/commands/lifecycle.js.map +1 -1
  21. package/dist/cli/commands/mcp.js +0 -14
  22. package/dist/cli/commands/mcp.js.map +1 -1
  23. package/dist/cli/commands/process-tree.js +4 -26
  24. package/dist/cli/commands/process-tree.js.map +1 -1
  25. package/dist/cli/commands/revisium-helpers.js +0 -6
  26. package/dist/cli/commands/revisium-helpers.js.map +1 -1
  27. package/dist/cli/commands/rogue-reaper.js +0 -34
  28. package/dist/cli/commands/rogue-reaper.js.map +1 -1
  29. package/dist/cli/index.js +0 -4
  30. package/dist/cli/index.js.map +1 -1
  31. package/dist/cli/program.js +0 -5
  32. package/dist/cli/program.js.map +1 -1
  33. package/dist/config.js +0 -25
  34. package/dist/config.js.map +1 -1
  35. package/dist/control-plane/bootstrap.js +0 -28
  36. package/dist/control-plane/bootstrap.js.map +1 -1
  37. package/dist/control-plane/change-notifications.js +0 -1
  38. package/dist/control-plane/change-notifications.js.map +1 -1
  39. package/dist/control-plane/client-transport.js +0 -11
  40. package/dist/control-plane/client-transport.js.map +1 -1
  41. package/dist/control-plane/default-playbook-policy.js +64 -4
  42. package/dist/control-plane/default-playbook-policy.js.map +1 -1
  43. package/dist/control-plane/definitions.js +8 -17
  44. package/dist/control-plane/definitions.js.map +1 -1
  45. package/dist/control-plane/inbox.js +2 -120
  46. package/dist/control-plane/inbox.js.map +1 -1
  47. package/dist/control-plane/resolve-cwd.js +0 -61
  48. package/dist/control-plane/resolve-cwd.js.map +1 -1
  49. package/dist/control-plane/schema-migration.js +0 -9
  50. package/dist/control-plane/schema-migration.js.map +1 -1
  51. package/dist/control-plane/seed-default-playbook.js +5 -70
  52. package/dist/control-plane/seed-default-playbook.js.map +1 -1
  53. package/dist/control-plane/steps.js +0 -15
  54. package/dist/control-plane/steps.js.map +1 -1
  55. package/dist/e2e/kit/assertions.js +1 -1
  56. package/dist/e2e/kit/assertions.js.map +1 -1
  57. package/dist/engine/dbos.service.js +9 -179
  58. package/dist/engine/dbos.service.js.map +1 -1
  59. package/dist/engine/ensure-postgres.js +0 -48
  60. package/dist/engine/ensure-postgres.js.map +1 -1
  61. package/dist/features/inbox/commands/handlers/inbox-command.handlers.js +16 -0
  62. package/dist/features/inbox/commands/handlers/inbox-command.handlers.js.map +1 -1
  63. package/dist/features/inbox/commands/impl/resolve-gate.command.js +7 -0
  64. package/dist/features/inbox/commands/impl/resolve-gate.command.js.map +1 -0
  65. package/dist/features/inbox/commands/index.js +2 -1
  66. package/dist/features/inbox/commands/index.js.map +1 -1
  67. package/dist/features/inbox/inbox-api.service.js +4 -0
  68. package/dist/features/inbox/inbox-api.service.js.map +1 -1
  69. package/dist/host/daemon.js +2 -21
  70. package/dist/host/daemon.js.map +1 -1
  71. package/dist/host/dbos-identity.js +0 -31
  72. package/dist/host/dbos-identity.js.map +1 -1
  73. package/dist/host/ensure-host.js +1 -37
  74. package/dist/host/ensure-host.js.map +1 -1
  75. package/dist/host/ensure-revisium.js +1 -135
  76. package/dist/host/ensure-revisium.js.map +1 -1
  77. package/dist/host/host-runtime.js +0 -28
  78. package/dist/host/host-runtime.js.map +1 -1
  79. package/dist/host/host.lifecycle.js +0 -27
  80. package/dist/host/host.lifecycle.js.map +1 -1
  81. package/dist/host/queue-ownership.js +0 -42
  82. package/dist/host/queue-ownership.js.map +1 -1
  83. package/dist/host/queue-poller-census.js +1 -28
  84. package/dist/host/queue-poller-census.js.map +1 -1
  85. package/dist/http/graphql-host.module.js +0 -3
  86. package/dist/http/graphql-host.module.js.map +1 -1
  87. package/dist/mcp/mcp-capabilities.js +20 -14
  88. package/dist/mcp/mcp-capabilities.js.map +1 -1
  89. package/dist/mcp/mcp-facade.service.js +44 -23
  90. package/dist/mcp/mcp-facade.service.js.map +1 -1
  91. package/dist/mcp/mcp-http.service.js +0 -18
  92. package/dist/mcp/mcp-http.service.js.map +1 -1
  93. package/dist/mcp/mcp-tools.js +28 -40
  94. package/dist/mcp/mcp-tools.js.map +1 -1
  95. package/dist/observability/activity-signal.js +0 -4
  96. package/dist/observability/activity-signal.js.map +1 -1
  97. package/dist/observability/agent-activity-reporter.js +0 -4
  98. package/dist/observability/agent-activity-reporter.js.map +1 -1
  99. package/dist/pipeline/await-human.js +13 -43
  100. package/dist/pipeline/await-human.js.map +1 -1
  101. package/dist/pipeline/data-driven-task.workflow.js +121 -238
  102. package/dist/pipeline/data-driven-task.workflow.js.map +1 -1
  103. package/dist/pipeline/data-driven-template.js +0 -25
  104. package/dist/pipeline/data-driven-template.js.map +1 -1
  105. package/dist/pipeline/pipeline.module.js +0 -12
  106. package/dist/pipeline/pipeline.module.js.map +1 -1
  107. package/dist/pipeline/pipeline.service.js +10 -99
  108. package/dist/pipeline/pipeline.service.js.map +1 -1
  109. package/dist/pipeline-core/index.js +1 -13
  110. package/dist/pipeline-core/index.js.map +1 -1
  111. package/dist/pipeline-core/interpret.js +21 -94
  112. package/dist/pipeline-core/interpret.js.map +1 -1
  113. package/dist/pipeline-core/kit/assertions.js +0 -19
  114. package/dist/pipeline-core/kit/assertions.js.map +1 -1
  115. package/dist/pipeline-core/kit/builders.js +2 -21
  116. package/dist/pipeline-core/kit/builders.js.map +1 -1
  117. package/dist/pipeline-core/kit/drive.js +1 -31
  118. package/dist/pipeline-core/kit/drive.js.map +1 -1
  119. package/dist/pipeline-core/kit/fixtures.js +26 -86
  120. package/dist/pipeline-core/kit/fixtures.js.map +1 -1
  121. package/dist/pipeline-core/kit/index.js +0 -8
  122. package/dist/pipeline-core/kit/index.js.map +1 -1
  123. package/dist/pipeline-core/types.js +13 -52
  124. package/dist/pipeline-core/types.js.map +1 -1
  125. package/dist/pipeline-core/validate-capability.js +0 -3
  126. package/dist/pipeline-core/validate-capability.js.map +1 -1
  127. package/dist/pipeline-core/validate-conflicts.js +0 -9
  128. package/dist/pipeline-core/validate-conflicts.js.map +1 -1
  129. package/dist/pipeline-core/validate-dataflow.js +2 -21
  130. package/dist/pipeline-core/validate-dataflow.js.map +1 -1
  131. package/dist/pipeline-core/validate-diff.js +3 -36
  132. package/dist/pipeline-core/validate-diff.js.map +1 -1
  133. package/dist/pipeline-core/validate-edges.js +0 -6
  134. package/dist/pipeline-core/validate-edges.js.map +1 -1
  135. package/dist/pipeline-core/validate-graph.js +0 -11
  136. package/dist/pipeline-core/validate-graph.js.map +1 -1
  137. package/dist/pipeline-core/validate-loops.js +37 -44
  138. package/dist/pipeline-core/validate-loops.js.map +1 -1
  139. package/dist/pipeline-core/validate-parallel.js +9 -15
  140. package/dist/pipeline-core/validate-parallel.js.map +1 -1
  141. package/dist/pipeline-core/validate-sink.js +0 -7
  142. package/dist/pipeline-core/validate-sink.js.map +1 -1
  143. package/dist/pipeline-core/validate-topology.js +1 -20
  144. package/dist/pipeline-core/validate-topology.js.map +1 -1
  145. package/dist/pipeline-core/validate-verdict.js +52 -7
  146. package/dist/pipeline-core/validate-verdict.js.map +1 -1
  147. package/dist/pipeline-core/validate.js +5 -29
  148. package/dist/pipeline-core/validate.js.map +1 -1
  149. package/dist/playbook/catalog-loader.js +8 -3
  150. package/dist/playbook/catalog-loader.js.map +1 -1
  151. package/dist/playbook/import-mapper.js +1 -9
  152. package/dist/playbook/import-mapper.js.map +1 -1
  153. package/dist/poller/pr-readiness-core.js +0 -74
  154. package/dist/poller/pr-readiness-core.js.map +1 -1
  155. package/dist/revisium/inbox.service.js +0 -24
  156. package/dist/revisium/inbox.service.js.map +1 -1
  157. package/dist/revisium/playbooks.service.js +2 -4
  158. package/dist/revisium/playbooks.service.js.map +1 -1
  159. package/dist/revisium/revisium.module.js +0 -12
  160. package/dist/revisium/revisium.module.js.map +1 -1
  161. package/dist/revisium/roles.service.js +0 -6
  162. package/dist/revisium/roles.service.js.map +1 -1
  163. package/dist/revisium/run.service.js +1 -75
  164. package/dist/revisium/run.service.js.map +1 -1
  165. package/dist/revisium/tokens.js +0 -4
  166. package/dist/revisium/tokens.js.map +1 -1
  167. package/dist/run/append-event.js +0 -34
  168. package/dist/run/append-event.js.map +1 -1
  169. package/dist/run/block-run.js.map +1 -1
  170. package/dist/run/cancel-run.js +0 -33
  171. package/dist/run/cancel-run.js.map +1 -1
  172. package/dist/run/complete-run.js.map +1 -1
  173. package/dist/run/create-run.js +0 -7
  174. package/dist/run/create-run.js.map +1 -1
  175. package/dist/run/fail-run.js +0 -3
  176. package/dist/run/fail-run.js.map +1 -1
  177. package/dist/run/inspect-run.js +0 -26
  178. package/dist/run/inspect-run.js.map +1 -1
  179. package/dist/run/run-outputs.js +0 -19
  180. package/dist/run/run-outputs.js.map +1 -1
  181. package/dist/run/terminal-run-status.js +0 -12
  182. package/dist/run/terminal-run-status.js.map +1 -1
  183. package/dist/runners/claude-code.service.js +0 -11
  184. package/dist/runners/claude-code.service.js.map +1 -1
  185. package/dist/runners/codex.service.js +0 -9
  186. package/dist/runners/codex.service.js.map +1 -1
  187. package/dist/runners/gh-identity.js +0 -52
  188. package/dist/runners/gh-identity.js.map +1 -1
  189. package/dist/runners/integrator-branch-naming.js +3 -11
  190. package/dist/runners/integrator-branch-naming.js.map +1 -1
  191. package/dist/runners/integrator-git.js +0 -25
  192. package/dist/runners/integrator-git.js.map +1 -1
  193. package/dist/runners/integrator-remote.js +0 -2
  194. package/dist/runners/integrator-remote.js.map +1 -1
  195. package/dist/runners/integrator-types.js +0 -7
  196. package/dist/runners/integrator-types.js.map +1 -1
  197. package/dist/runners/integrator.js +44 -176
  198. package/dist/runners/integrator.js.map +1 -1
  199. package/dist/runners/runner.module.js +0 -6
  200. package/dist/runners/runner.module.js.map +1 -1
  201. package/dist/runners/tokens.js +0 -4
  202. package/dist/runners/tokens.js.map +1 -1
  203. package/dist/runners/worktree.service.js +1 -17
  204. package/dist/runners/worktree.service.js.map +1 -1
  205. package/dist/task-control-plane/run-watch.service.js +50 -174
  206. package/dist/task-control-plane/run-watch.service.js.map +1 -1
  207. package/dist/task-control-plane/task-control-plane-api.service.js +134 -36
  208. package/dist/task-control-plane/task-control-plane-api.service.js.map +1 -1
  209. package/dist/worker/build-context.js +0 -16
  210. package/dist/worker/build-context.js.map +1 -1
  211. package/dist/worker/claude-code-runner.js +9 -42
  212. package/dist/worker/claude-code-runner.js.map +1 -1
  213. package/dist/worker/codex-runner.js +88 -22
  214. package/dist/worker/codex-runner.js.map +1 -1
  215. package/dist/worker/git-worktree-manager.js +20 -67
  216. package/dist/worker/git-worktree-manager.js.map +1 -1
  217. package/dist/worker/process-executor.js +0 -12
  218. package/dist/worker/process-executor.js.map +1 -1
  219. package/dist/worker/result-envelope.js +33 -49
  220. package/dist/worker/result-envelope.js.map +1 -1
  221. package/dist/worker/runner-dispatch.js +0 -3
  222. package/dist/worker/runner-dispatch.js.map +1 -1
  223. package/dist/worker/runner.js.map +1 -1
  224. package/dist/worker/stub-runner.js +0 -7
  225. package/dist/worker/stub-runner.js.map +1 -1
  226. package/package.json +2 -2
@@ -1,7 +1,3 @@
1
- /**
2
- * Injection tokens for RunnerModule providers.
3
- * Mirrors src/revisium/tokens.ts naming pattern.
4
- */
5
1
  export const RUN_AGENT = Symbol('RUN_AGENT');
6
2
  export const PROCESS_EXECUTOR = Symbol('PROCESS_EXECUTOR');
7
3
  //# sourceMappingURL=tokens.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/runners/tokens.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/runners/tokens.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
@@ -10,18 +10,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  var __param = (this && this.__param) || function (paramIndex, decorator) {
11
11
  return function (target, key) { decorator(target, key, paramIndex); }
12
12
  };
13
- /**
14
- * worktree.service.ts — @Injectable wrapper over the per-run git worktree manager (plan 0017).
15
- *
16
- * DBOS-SEALED: zero @dbos-inc imports. PipelineService registers `ensure`/`release` as memoized DBOS
17
- * steps and wires them into the data-driven adapter's run lifecycle (create after live preflight,
18
- * release at terminal via the workflow `finally`).
19
- *
20
- * Resolves the BASE target-repo checkout (where `git worktree add/remove` run) and the feature branch
21
- * (the SAME `branchName` the integrator commits/pushes on) so the worktree is created already on that
22
- * branch — making the integrator's branchExists→switch path a no-op and avoiding its dirty-tree
23
- * `switch -c origin/<base>` failure.
24
- */
25
13
  import { Inject, Injectable } from '@nestjs/common';
26
14
  import { RunService } from '../revisium/run.service.js';
27
15
  import { getConfig } from '../config.js';
@@ -34,24 +22,20 @@ let WorktreeService = class WorktreeService {
34
22
  this.runService = runService;
35
23
  this.resolveBaseCwd = this.runService.makeResolveTaskCwd();
36
24
  }
37
- /** Create-if-absent the run's isolated worktree. Arrow property: safe to pass unbound to registerStep. */
38
25
  ensure = async (runId, taskId, title, base, issueRef) => {
39
26
  const baseRepoCwd = await this.resolveBaseCwd(taskId);
40
27
  const branch = branchName(taskId, title, issueRef);
41
28
  return createRunWorktree({ runId, baseRepoCwd, base, branch, dataDir: getConfig().dataDir });
42
29
  };
43
- /** Release the run's worktree (best-effort, idempotent). Arrow property for safe unbound registration. */
44
30
  release = async (runId, taskId) => {
45
31
  let baseRepoCwd;
46
32
  try {
47
33
  baseRepoCwd = await this.resolveBaseCwd(taskId);
48
34
  }
49
35
  catch {
50
- // Task/repo no longer resolvable — nothing to remove from; the worktree dir (if any) is orphaned
51
- // and will be swept by `git worktree prune` on a later run against the same base repo.
52
36
  return;
53
37
  }
54
- releaseRunWorktree({ runId, baseRepoCwd, dataDir: getConfig().dataDir });
38
+ void releaseRunWorktree({ runId, baseRepoCwd, dataDir: getConfig().dataDir });
55
39
  };
56
40
  };
57
41
  WorktreeService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"worktree.service.js","sourceRoot":"","sources":["../../src/runners/worktree.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAGnF,IAAM,eAAe,GAArB,MAAM,eAAe;IAGuB;IAFhC,cAAc,CAAsC;IAErE,YAAiD,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QACrE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;IAC7D,CAAC;IAED,0GAA0G;IAC1G,MAAM,GAAG,KAAK,EACZ,KAAa,EACb,MAAc,EACd,KAAa,EACb,IAAY,EACZ,QAAmB,EACgB,EAAE;QACrC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnD,OAAO,iBAAiB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/F,CAAC,CAAC;IAEF,0GAA0G;IAC1G,OAAO,GAAG,KAAK,EAAE,KAAa,EAAE,MAAc,EAAiB,EAAE;QAC/D,IAAI,WAAmB,CAAC;QACxB,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,iGAAiG;YACjG,uFAAuF;YACvF,OAAO;QACT,CAAC;QACD,kBAAkB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC,CAAC;CACH,CAAA;AAhCY,eAAe;IAD3B,UAAU,EAAE;IAIE,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;qCAA8B,UAAU;GAH5D,eAAe,CAgC3B"}
1
+ {"version":3,"file":"worktree.service.js","sourceRoot":"","sources":["../../src/runners/worktree.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAUA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAGnF,IAAM,eAAe,GAArB,MAAM,eAAe;IAGuB;IAFhC,cAAc,CAAsC;IAErE,YAAiD,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QACrE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;IAC7D,CAAC;IAGD,MAAM,GAAG,KAAK,EACZ,KAAa,EACb,MAAc,EACd,KAAa,EACb,IAAY,EACZ,QAAmB,EACgB,EAAE;QACrC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnD,OAAO,iBAAiB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/F,CAAC,CAAC;IAGF,OAAO,GAAG,KAAK,EAAE,KAAa,EAAE,MAAc,EAAiB,EAAE;QAC/D,IAAI,WAAmB,CAAC;QACxB,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,KAAK,kBAAkB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAChF,CAAC,CAAC;CACH,CAAA;AA9BY,eAAe;IAD3B,UAAU,EAAE;IAIE,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;qCAA8B,UAAU;GAH5D,eAAe,CA8B3B"}
@@ -1,40 +1,13 @@
1
- /**
2
- * RunWatchService — bounded long-poll watch primitive over many runs (slice 141 D2).
3
- *
4
- * The MCP HTTP transport is stateless-per-request with a request timeout (see McpHttpService): no
5
- * session, no held async-iterator, no server-initiated SSE survives one POST. So we cannot "subscribe
6
- * over MCP"; instead we convert the daemon's existing in-process push (APP_PUB_SUB) into a bounded
7
- * long-poll that RETURNS UNDER THE BRIDGE TIMEOUT with a resume cursor.
8
- *
9
- * Correctness rests on the SWEEP + CURSOR, not the push. The push (option A) only lowers latency; a
10
- * pure poll (option B, no pubSub) is an equivalent-correctness degrade. Delivery is **at-least-once +
11
- * idempotent**: `resolveRunState` is a point-in-time LEVEL read (a gate is `inbox.find(approval)`, not
12
- * an event edge), so the cursor is a per-run *marker* watermark — a re-call suppresses a run whose
13
- * actionable level it already delivered, and reports it again only when the marker changes (a new gate
14
- * id, or a status transition). Approving the same gate twice is already guarded downstream.
15
- */
16
1
  import { ControlPlaneError } from '../control-plane/errors.js';
17
2
  import { deriveCanonicalActivitySignal, } from '../observability/activity-signal.js';
18
- // Single source of truth for the topic names (a zero-import leaf module, so no import cycle). The
19
- // ControlPlaneSubscriptionBridge publishes these from the Postgres LISTEN feed, each payload carrying
20
- // `runId` — the field we filter wakeups on.
21
3
  import { INBOX_ITEM_ADDED_TOPIC, RUN_UPDATED_TOPIC } from '../api/graphql-api/graphql-ws/constants.js';
22
4
  export const MAX_RUN_IDS = 50;
23
- /** Below the SDK inner-hop default of 60000ms with margin for two serial hops + the sweep itself. */
24
5
  export const MAX_SERVER_HOLD_MS = 45_000;
25
6
  export const DEFAULT_SERVER_HOLD_MS = 28_000;
26
7
  const WAKEUP_DEBOUNCE_MS = 75;
27
8
  const POLL_INTERVAL_MS = 500;
28
9
  const ACTIVITY_READ_TIMEOUT_MS = 250;
29
- const GATE_STATES = new Set(['pending_gate', 'question']);
30
- const WATCH_STATES = new Set([
31
- 'pending_gate',
32
- 'question',
33
- 'completed',
34
- 'failed',
35
- 'blocked',
36
- ]);
37
- const OBSERVE_TRANSITION_STATES = new Set([
10
+ const WATCH_TRANSITION_STATES = new Set([
38
11
  'ready',
39
12
  'pending_gate',
40
13
  'question',
@@ -44,12 +17,9 @@ const OBSERVE_TRANSITION_STATES = new Set([
44
17
  'retrying',
45
18
  ]);
46
19
  const TERMINAL_RUN_STATUS = new Set(['completed', 'failed', 'cancelled']);
47
- /** Defensive cap on caller-supplied cursor size (a legitimate cursor only carries the watched runs, ≤ MAX_RUN_IDS). */
20
+ const REQUIRES_ATTENTION = new Set(['start_run', 'ask_human', 'inspect_digest', 'inspect_log']);
48
21
  const MAX_CURSOR_ENTRIES = 200;
49
22
  export const MAX_WATCH_CURSOR_CHARS = 8_192;
50
- export const DEFAULT_HEARTBEAT_EVERY_MS = 5_000;
51
- export const MAX_HEARTBEAT_EVERY_MS = MAX_SERVER_HOLD_MS;
52
- /** The topics this watch composes off APP_PUB_SUB — exported so a test can assert sync with constants.js. */
53
23
  export const WATCH_TOPICS = [INBOX_ITEM_ADDED_TOPIC, RUN_UPDATED_TOPIC];
54
24
  export function clampServerHold(timeoutMs) {
55
25
  const requested = timeoutMs ?? DEFAULT_SERVER_HOLD_MS;
@@ -57,18 +27,6 @@ export function clampServerHold(timeoutMs) {
57
27
  return DEFAULT_SERVER_HOLD_MS;
58
28
  return Math.min(requested, MAX_SERVER_HOLD_MS);
59
29
  }
60
- export function clampHeartbeatEvery(heartbeatEveryMs) {
61
- const requested = heartbeatEveryMs ?? DEFAULT_HEARTBEAT_EVERY_MS;
62
- if (!Number.isFinite(requested) || requested <= 0)
63
- return DEFAULT_HEARTBEAT_EVERY_MS;
64
- return Math.min(requested, MAX_HEARTBEAT_EVERY_MS);
65
- }
66
- /**
67
- * The cursor marker for an *actionable* run level. A *changed* marker (vs the caller's cursor) is a new
68
- * transition worth delivering: a gate is keyed by its inbox id (deterministic per gateKey, so a
69
- * *different* gate yields a different id), a terminal/blocked run by its status. `running` is not
70
- * actionable and is never recorded — `null`.
71
- */
72
30
  function markerFor(state) {
73
31
  switch (state.state) {
74
32
  case 'ready':
@@ -100,7 +58,6 @@ function decodeCursor(cursor) {
100
58
  const parsed = JSON.parse(Buffer.from(cursor, 'base64url').toString('utf8'));
101
59
  if (!parsed || parsed.v !== 1 || !parsed.m || typeof parsed.m !== 'object')
102
60
  return {};
103
- // Keep only well-formed string markers, capped — a forged/oversized cursor can't force unbounded work.
104
61
  const out = {};
105
62
  for (const [runId, marker] of Object.entries(parsed.m)) {
106
63
  if (typeof marker !== 'string')
@@ -118,61 +75,64 @@ function decodeCursor(cursor) {
118
75
  export class RunWatchService {
119
76
  api;
120
77
  pubSub;
121
- now;
122
- constructor(api, pubSub, now = () => Date.now()) {
78
+ constructor(api, pubSub) {
123
79
  this.api = api;
124
80
  this.pubSub = pubSub;
125
- this.now = now;
126
81
  }
127
- /** Block until any watched run hits an approval/question gate (or the hold elapses). */
128
- waitForAnyGate(input) {
129
- return this.watch(input, GATE_STATES);
130
- }
131
- /** Like waitForAnyGate, but also surfaces terminal (completed/failed) and blocked transitions. */
132
- watchRuns(input) {
133
- return this.watch(input, WATCH_STATES);
134
- }
135
- async observeRun(input) {
136
- const mode = input.mode ?? 'actionable';
137
- const activityRead = this.startActivitySignalRead(input.runId);
138
- const timeoutMs = mode === 'heartbeat'
139
- ? Math.min(clampServerHold(input.timeoutMs), clampHeartbeatEvery(input.heartbeatEveryMs))
140
- : clampServerHold(input.timeoutMs);
141
- const watched = await this.watch({
142
- runIds: [input.runId],
143
- cursor: input.cursor,
144
- timeoutMs,
145
- signal: input.signal,
146
- }, OBSERVE_TRANSITION_STATES);
147
- const transition = watched.transitions[0];
148
- const state = transition ?? await this.resolveRunState(input.runId);
149
- const rawActivity = await activityRead.readIfSettled();
82
+ async getRunAttention(runId) {
83
+ const [state, rawActivity] = await Promise.all([
84
+ this.api.resolveRunState(runId),
85
+ this.readActivitySignal(runId),
86
+ ]);
150
87
  const activity = shouldExposeActivitySignal(state, rawActivity) ? rawActivity : undefined;
151
- const nextAction = observeNextAction(state, activity);
88
+ const nextAction = deriveRunAttentionNextAction(state, activity);
152
89
  const activeAttempt = shouldExposeActiveAttempt(state, activity) ? activity?.attempt : undefined;
153
- const heartbeat = mode === 'heartbeat' || mode === 'diagnostic'
154
- ? observeHeartbeat(state, activity, this.now)
155
- : undefined;
90
+ const inbox = compactInbox(state.inbox);
156
91
  return {
157
- runId: input.runId,
158
- cursor: watched.cursor,
92
+ runId,
159
93
  state: state.state,
160
- timedOut: watched.timedOut,
94
+ requiresAttention: REQUIRES_ATTENTION.has(nextAction),
95
+ nextAction,
161
96
  ...(state.issueRef ? { issueRef: state.issueRef } : {}),
162
- ...(transition ? { transition: observeTransition(transition, activity) } : {}),
97
+ ...(inbox ? { inbox } : {}),
98
+ ...(state.blockedReason ? { blockedReason: state.blockedReason } : {}),
163
99
  ...(activeAttempt ? { activeAttempt } : {}),
164
- ...(heartbeat ? { heartbeat } : {}),
165
- nextAction,
166
- ...(mode === 'diagnostic' ? { diagnostic: observeDiagnostic(state, activity) } : {}),
100
+ suggestedTools: suggestedTools(state, activity),
167
101
  };
168
102
  }
103
+ async getRunStatus(runId) {
104
+ const [state, rawActivity] = await Promise.all([
105
+ this.api.resolveRunState(runId),
106
+ this.readActivitySignal(runId),
107
+ ]);
108
+ const activity = shouldExposeActivitySignal(state, rawActivity) ? rawActivity : undefined;
109
+ const inbox = compactInbox(state.inbox);
110
+ const compact = compactActivity(activity);
111
+ return {
112
+ runId,
113
+ state: state.state,
114
+ runStatus: state.runStatus,
115
+ workflowStatus: state.workflowStatus,
116
+ ...(state.issueRef ? { issueRef: state.issueRef } : {}),
117
+ ...(state.latestEventAt ? { latestEventAt: state.latestEventAt } : {}),
118
+ ...(state.latestEventType ? { latestEventType: state.latestEventType } : {}),
119
+ ...(inbox ? { inbox } : {}),
120
+ ...(state.blockedReason ? { blockedReason: state.blockedReason } : {}),
121
+ ...(compact ? { activity: compact } : {}),
122
+ };
123
+ }
124
+ watchRunChanges(input) {
125
+ return this.watch({
126
+ runIds: [input.runId],
127
+ cursor: input.cursor,
128
+ timeoutMs: input.timeoutMs,
129
+ signal: input.signal,
130
+ }, WATCH_TRANSITION_STATES);
131
+ }
169
132
  async watch(input, actionable) {
170
133
  const prev = decodeCursor(input.cursor);
171
134
  const runIds = await this.resolveRunIds(input.runIds);
172
135
  const serverHold = clampServerHold(input.timeoutMs);
173
- // 1. Initial sweep first — deliver anything already actionable (the common "already gated" case
174
- // returns instantly) without arming a subscription. A transition that lands AFTER this read but
175
- // BEFORE the subscription resolves is not lost: the cursor re-call's next sweep observes it.
176
136
  const sweep = await this.sweep(runIds);
177
137
  const initial = collectNew(sweep, prev, actionable);
178
138
  const cursor0 = mergeCursor(sweep, actionable);
@@ -182,7 +142,6 @@ export class RunWatchService {
182
142
  if (runIds.length === 0 || serverHold <= 0 || input.signal?.aborted) {
183
143
  return { transitions: [], cursor: encodeCursor(cursor0), timedOut: true };
184
144
  }
185
- // 2. Nothing actionable yet → hold this single request open for the next transition.
186
145
  return this.holdForTransition(runIds, prev, actionable, cursor0, serverHold, input.signal);
187
146
  }
188
147
  holdForTransition(runIds, prev, actionable, cursor0, serverHold, signal) {
@@ -201,8 +160,6 @@ export class RunWatchService {
201
160
  clearTimeout(debounceTimer);
202
161
  if (pollTimer)
203
162
  clearInterval(pollTimer);
204
- // Detach the pubsub subscription — a held-open request that is torn down (abort/timeout) must
205
- // not leak a subscriber on the long-lived APP_PUB_SUB.
206
163
  for (const id of subIds)
207
164
  this.pubSub?.unsubscribe(id);
208
165
  subIds.length = 0;
@@ -223,18 +180,15 @@ export class RunWatchService {
223
180
  states = await this.sweep(ids);
224
181
  }
225
182
  catch {
226
- return; // transient; a later wakeup/poll retries
183
+ return;
227
184
  }
228
185
  if (settled)
229
186
  return;
230
187
  const found = collectNew(states, prev, actionable);
231
- // Merge the re-swept (dirty) runs' markers over this call's initial cursor so the other watched
232
- // runs keep theirs; still this-call-only (no cross-call carry-forward → bounded).
233
188
  if (found.length > 0) {
234
189
  settle({ transitions: found, cursor: encodeCursor({ ...cursor0, ...mergeCursor(states, actionable) }), timedOut: false });
235
190
  }
236
191
  };
237
- // Coalesce a burst of wakeups into one re-sweep per tick (each sweep is ~4 control-plane reads/run).
238
192
  const scheduleReSweep = () => {
239
193
  if (settled || debounceTimer)
240
194
  return;
@@ -243,7 +197,6 @@ export class RunWatchService {
243
197
  void reSweep();
244
198
  }, WAKEUP_DEBOUNCE_MS);
245
199
  };
246
- // res.on('close') in McpHttpService aborts extra.signal mid-handler (SDK protocol _onclose).
247
200
  if (signal)
248
201
  signal.addEventListener('abort', onAbort, { once: true });
249
202
  const holdTimer = setTimeout(() => settle(timeout()), serverHold);
@@ -251,7 +204,7 @@ export class RunWatchService {
251
204
  const onMessage = (payload) => {
252
205
  const rid = payload?.runId;
253
206
  if (rid !== undefined && !watched.has(rid))
254
- return; // not one of ours
207
+ return;
255
208
  if (rid)
256
209
  dirty.add(rid);
257
210
  scheduleReSweep();
@@ -260,7 +213,6 @@ export class RunWatchService {
260
213
  this.pubSub
261
214
  .subscribe(topic, onMessage)
262
215
  .then((id) => {
263
- // The hold may have settled (timer/abort) before subscribe resolved — detach immediately.
264
216
  if (settled)
265
217
  this.pubSub?.unsubscribe(id);
266
218
  else
@@ -270,7 +222,6 @@ export class RunWatchService {
270
222
  }
271
223
  }
272
224
  else {
273
- // Option B: no push source → poll. Same sweep+cursor correctness, latency rises by one interval.
274
225
  pollTimer = setInterval(() => {
275
226
  if (!settled)
276
227
  void reSweep();
@@ -285,9 +236,6 @@ export class RunWatchService {
285
236
  }
286
237
  return [...new Set(provided)];
287
238
  }
288
- // Omitted → watch every active (non-terminal) run, capped. A run that terminates between polls drops
289
- // out of this set, so omit-mode is best-effort for terminal transitions — pass explicit runIds for
290
- // guaranteed terminal delivery (those are always swept regardless of status).
291
239
  const runs = await this.api.listRuns({});
292
240
  return runs
293
241
  .filter((run) => !TERMINAL_RUN_STATUS.has(run.status))
@@ -302,7 +250,6 @@ export class RunWatchService {
302
250
  if (error instanceof ControlPlaneError && error.code === 'ROW_NOT_FOUND') {
303
251
  return { runId, state: 'failed', nextAction: 'run not found', runStatus: 'not_found', workflowStatus: '' };
304
252
  }
305
- // A transient read error must not masquerade as a terminal transition; keep waiting.
306
253
  return { runId, state: 'running', nextAction: 'transient read error; will retry', runStatus: 'unknown', workflowStatus: '' };
307
254
  });
308
255
  }
@@ -316,19 +263,6 @@ export class RunWatchService {
316
263
  return undefined;
317
264
  }
318
265
  }
319
- startActivitySignalRead(runId) {
320
- let settled = false;
321
- const read = this.readActivitySignal(runId).then((activity) => {
322
- settled = true;
323
- return activity;
324
- }, () => {
325
- settled = true;
326
- return undefined;
327
- });
328
- return {
329
- readIfSettled: async () => settled ? read : undefined,
330
- };
331
- }
332
266
  }
333
267
  async function withDeadline(promise, timeoutMs) {
334
268
  let timer;
@@ -370,13 +304,6 @@ function collectNew(states, prev, actionable) {
370
304
  }
371
305
  return out;
372
306
  }
373
- /**
374
- * Build the next cursor from THIS sweep only — no carry-forward of prior keys, so it never grows beyond
375
- * the watched set (bounds it at ≤ MAX_RUN_IDS). Records a marker only for states actionable in the
376
- * CURRENT mode: a tool must not advance the cursor past a transition it did not deliver (else a later
377
- * call in the other mode — e.g. watch_runs after wait_for_any_gate saw a `completed` run — would
378
- * wrongly suppress it). `running` and other non-actionable states carry no marker.
379
- */
380
307
  function mergeCursor(states, actionable) {
381
308
  const next = {};
382
309
  for (const state of states) {
@@ -414,7 +341,7 @@ function shouldExposeActivitySignal(state, activity) {
414
341
  return false;
415
342
  return state.state !== 'completed';
416
343
  }
417
- function observeNextAction(state, activity) {
344
+ function deriveRunAttentionNextAction(state, activity) {
418
345
  switch (state.state) {
419
346
  case 'ready':
420
347
  return 'start_run';
@@ -434,45 +361,6 @@ function observeNextAction(state, activity) {
434
361
  return 'wait';
435
362
  }
436
363
  }
437
- function observeTransition(state, activity) {
438
- const inbox = compactInbox(state.inbox);
439
- return {
440
- runId: state.runId,
441
- state: state.state,
442
- nextAction: observeNextAction(state, activity),
443
- ...(state.issueRef ? { issueRef: state.issueRef } : {}),
444
- ...(inbox ? { inbox } : {}),
445
- ...(state.blockedReason ? { blockedReason: state.blockedReason } : {}),
446
- };
447
- }
448
- function observeHeartbeat(state, activity, now) {
449
- const compact = compactActivity(activity);
450
- return {
451
- observedAt: new Date(now()).toISOString(),
452
- workflow: {
453
- runStatus: state.runStatus,
454
- workflowStatus: state.workflowStatus,
455
- ...(state.latestEventAt ? { latestEventAt: state.latestEventAt } : {}),
456
- ...(state.latestEventType ? { latestEventType: state.latestEventType } : {}),
457
- },
458
- ...(compact ? { activity: compact } : {}),
459
- };
460
- }
461
- function asRecord(value) {
462
- if (value === null || typeof value !== 'object' || Array.isArray(value))
463
- return null;
464
- return value;
465
- }
466
- function compactBlockingEvent(event) {
467
- const record = asRecord(event);
468
- if (!record)
469
- return undefined;
470
- return {
471
- ...(typeof record.eventId === 'string' ? { eventId: record.eventId } : {}),
472
- ...(typeof record.type === 'string' ? { type: record.type } : {}),
473
- ...(typeof record.createdAt === 'string' ? { createdAt: record.createdAt } : {}),
474
- };
475
- }
476
364
  function compactActivity(activity) {
477
365
  if (!activity)
478
366
  return undefined;
@@ -486,27 +374,15 @@ function compactActivity(activity) {
486
374
  };
487
375
  }
488
376
  function suggestedTools(state, activity) {
489
- const nextAction = observeNextAction(state, activity);
377
+ const nextAction = deriveRunAttentionNextAction(state, activity);
490
378
  if (nextAction === 'inspect_log')
491
379
  return ['get_agent_log'];
492
380
  if (nextAction === 'inspect_digest')
493
381
  return ['get_run_digest'];
494
382
  if (nextAction === 'ask_human')
495
- return ['get_inbox_item', 'approve_gate', 'reject_gate', 'answer_question'];
383
+ return ['get_inbox_item', 'resolve_gate', 'approve_gate', 'reject_gate', 'answer_question'];
496
384
  if (nextAction === 'start_run')
497
385
  return ['start_run'];
498
386
  return [];
499
387
  }
500
- function observeDiagnostic(state, activity) {
501
- const latestBlockingEvent = compactBlockingEvent(state.latestBlockingEvent);
502
- const compact = compactActivity(activity);
503
- return {
504
- runStatus: state.runStatus,
505
- workflowStatus: state.workflowStatus,
506
- ...(state.blockedReason ? { blockedReason: state.blockedReason } : {}),
507
- ...(latestBlockingEvent ? { latestBlockingEvent } : {}),
508
- ...(compact ? { activity: compact } : {}),
509
- suggestedTools: suggestedTools(state, activity),
510
- };
511
- }
512
388
  //# sourceMappingURL=run-watch.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-watch.service.js","sourceRoot":"","sources":["../../src/task-control-plane/run-watch.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-watch.service.js","sourceRoot":"","sources":["../../src/task-control-plane/run-watch.service.ts"],"names":[],"mappings":"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"}