@revisium/orchestrator 0.1.0-alpha.9 → 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 (249) hide show
  1. package/README.md +210 -146
  2. package/control-plane/bootstrap.config.json +43 -1
  3. package/control-plane/default-playbook/catalog/pipelines.json +1157 -10
  4. package/control-plane/default-playbook/catalog/roles.json +54 -0
  5. package/control-plane/default-playbook/package.json +1 -1
  6. package/control-plane/default-playbook/prompts/developer.md +1 -0
  7. package/control-plane/default-playbook/prompts/triager.md +3 -0
  8. package/dist/api/graphql-api/graphql-ws/pubsub.module.js +0 -1
  9. package/dist/api/graphql-api/graphql-ws/pubsub.module.js.map +1 -1
  10. package/dist/api/graphql-api/graphql-ws/run-progress-subscription-poller.service.js +0 -1
  11. package/dist/api/graphql-api/graphql-ws/run-progress-subscription-poller.service.js.map +1 -1
  12. package/dist/api/graphql-api/graphql-ws/subscription-bridge.service.js +0 -1
  13. package/dist/api/graphql-api/graphql-ws/subscription-bridge.service.js.map +1 -1
  14. package/dist/api/graphql-api/graphql-ws/subscription-mappers.js +3 -0
  15. package/dist/api/graphql-api/graphql-ws/subscription-mappers.js.map +1 -1
  16. package/dist/api/graphql-api/pr/inputs/pr-readiness.input.js +6 -0
  17. package/dist/api/graphql-api/pr/inputs/pr-readiness.input.js.map +1 -1
  18. package/dist/api/graphql-api/pr/model/pr-readiness.model.js +26 -0
  19. package/dist/api/graphql-api/pr/model/pr-readiness.model.js.map +1 -1
  20. package/dist/api/graphql-api/runs/inputs/create-run.input.js +6 -0
  21. package/dist/api/graphql-api/runs/inputs/create-run.input.js.map +1 -1
  22. package/dist/api/graphql-api/runs/model/run.model.js +6 -0
  23. package/dist/api/graphql-api/runs/model/run.model.js.map +1 -1
  24. package/dist/api/graphql-api/share/model/issue-ref.model.js +53 -0
  25. package/dist/api/graphql-api/share/model/issue-ref.model.js.map +1 -0
  26. package/dist/cli/commands/doctor-report.js +0 -18
  27. package/dist/cli/commands/doctor-report.js.map +1 -1
  28. package/dist/cli/commands/lifecycle.js +3 -71
  29. package/dist/cli/commands/lifecycle.js.map +1 -1
  30. package/dist/cli/commands/mcp.js +0 -14
  31. package/dist/cli/commands/mcp.js.map +1 -1
  32. package/dist/cli/commands/process-tree.js +4 -26
  33. package/dist/cli/commands/process-tree.js.map +1 -1
  34. package/dist/cli/commands/revisium-helpers.js +0 -6
  35. package/dist/cli/commands/revisium-helpers.js.map +1 -1
  36. package/dist/cli/commands/rogue-reaper.js +0 -34
  37. package/dist/cli/commands/rogue-reaper.js.map +1 -1
  38. package/dist/cli/index.js +0 -4
  39. package/dist/cli/index.js.map +1 -1
  40. package/dist/cli/program.js +0 -5
  41. package/dist/cli/program.js.map +1 -1
  42. package/dist/config.js +0 -25
  43. package/dist/config.js.map +1 -1
  44. package/dist/control-plane/bootstrap.js +12 -27
  45. package/dist/control-plane/bootstrap.js.map +1 -1
  46. package/dist/control-plane/change-notifications.js +0 -1
  47. package/dist/control-plane/change-notifications.js.map +1 -1
  48. package/dist/control-plane/client-transport.js +1 -12
  49. package/dist/control-plane/client-transport.js.map +1 -1
  50. package/dist/control-plane/default-playbook-policy.js +593 -0
  51. package/dist/control-plane/default-playbook-policy.js.map +1 -0
  52. package/dist/control-plane/definitions.js +8 -17
  53. package/dist/control-plane/definitions.js.map +1 -1
  54. package/dist/control-plane/inbox.js +2 -120
  55. package/dist/control-plane/inbox.js.map +1 -1
  56. package/dist/control-plane/resolve-cwd.js +0 -61
  57. package/dist/control-plane/resolve-cwd.js.map +1 -1
  58. package/dist/control-plane/schema-migration.js +0 -9
  59. package/dist/control-plane/schema-migration.js.map +1 -1
  60. package/dist/control-plane/seed-default-playbook.js +50 -46
  61. package/dist/control-plane/seed-default-playbook.js.map +1 -1
  62. package/dist/control-plane/steps.js +0 -15
  63. package/dist/control-plane/steps.js.map +1 -1
  64. package/dist/e2e/kit/agents.js +15 -21
  65. package/dist/e2e/kit/agents.js.map +1 -1
  66. package/dist/e2e/kit/assertions.js +12 -8
  67. package/dist/e2e/kit/assertions.js.map +1 -1
  68. package/dist/e2e/kit/fake-integrator.js +11 -2
  69. package/dist/e2e/kit/fake-integrator.js.map +1 -1
  70. package/dist/e2e/kit/git-target-repo.js +1 -1
  71. package/dist/engine/dbos.service.js +12 -179
  72. package/dist/engine/dbos.service.js.map +1 -1
  73. package/dist/engine/ensure-postgres.js +0 -48
  74. package/dist/engine/ensure-postgres.js.map +1 -1
  75. package/dist/features/pr/queries/impl/get-pr-readiness.query.js.map +1 -1
  76. package/dist/features/runs/commands/impl/create-run.command.js.map +1 -1
  77. package/dist/features/runs/queries/handlers/runs-query.handlers.js +1 -0
  78. package/dist/features/runs/queries/handlers/runs-query.handlers.js.map +1 -1
  79. package/dist/host/daemon.js +2 -21
  80. package/dist/host/daemon.js.map +1 -1
  81. package/dist/host/dbos-identity.js +0 -31
  82. package/dist/host/dbos-identity.js.map +1 -1
  83. package/dist/host/ensure-host.js +1 -37
  84. package/dist/host/ensure-host.js.map +1 -1
  85. package/dist/host/ensure-revisium.js +1 -135
  86. package/dist/host/ensure-revisium.js.map +1 -1
  87. package/dist/host/host-runtime.js +0 -28
  88. package/dist/host/host-runtime.js.map +1 -1
  89. package/dist/host/host.lifecycle.js +0 -27
  90. package/dist/host/host.lifecycle.js.map +1 -1
  91. package/dist/host/queue-ownership.js +0 -42
  92. package/dist/host/queue-ownership.js.map +1 -1
  93. package/dist/host/queue-poller-census.js +1 -28
  94. package/dist/host/queue-poller-census.js.map +1 -1
  95. package/dist/http/graphql-host.module.js +0 -3
  96. package/dist/http/graphql-host.module.js.map +1 -1
  97. package/dist/mcp/mcp-capabilities.js +23 -5
  98. package/dist/mcp/mcp-capabilities.js.map +1 -1
  99. package/dist/mcp/mcp-facade.service.js +335 -22
  100. package/dist/mcp/mcp-facade.service.js.map +1 -1
  101. package/dist/mcp/mcp-http.service.js +0 -18
  102. package/dist/mcp/mcp-http.service.js.map +1 -1
  103. package/dist/mcp/mcp-tools.js +41 -36
  104. package/dist/mcp/mcp-tools.js.map +1 -1
  105. package/dist/observability/activity-signal.js +103 -0
  106. package/dist/observability/activity-signal.js.map +1 -0
  107. package/dist/observability/agent-activity-reporter.js +0 -4
  108. package/dist/observability/agent-activity-reporter.js.map +1 -1
  109. package/dist/observability/index.js +1 -0
  110. package/dist/observability/index.js.map +1 -1
  111. package/dist/pipeline/await-human.js +0 -40
  112. package/dist/pipeline/await-human.js.map +1 -1
  113. package/dist/pipeline/data-driven-task.workflow.js +563 -251
  114. package/dist/pipeline/data-driven-task.workflow.js.map +1 -1
  115. package/dist/pipeline/data-driven-template.js +0 -25
  116. package/dist/pipeline/data-driven-template.js.map +1 -1
  117. package/dist/pipeline/pipeline.module.js +0 -12
  118. package/dist/pipeline/pipeline.module.js.map +1 -1
  119. package/dist/pipeline/pipeline.service.js +194 -189
  120. package/dist/pipeline/pipeline.service.js.map +1 -1
  121. package/dist/pipeline/route-contract.js +4 -3
  122. package/dist/pipeline/route-contract.js.map +1 -1
  123. package/dist/pipeline-core/index.js +1 -13
  124. package/dist/pipeline-core/index.js.map +1 -1
  125. package/dist/pipeline-core/interpret.js +21 -94
  126. package/dist/pipeline-core/interpret.js.map +1 -1
  127. package/dist/pipeline-core/kit/assertions.js +0 -19
  128. package/dist/pipeline-core/kit/assertions.js.map +1 -1
  129. package/dist/pipeline-core/kit/builders.js +1 -21
  130. package/dist/pipeline-core/kit/builders.js.map +1 -1
  131. package/dist/pipeline-core/kit/drive.js +1 -31
  132. package/dist/pipeline-core/kit/drive.js.map +1 -1
  133. package/dist/pipeline-core/kit/fixtures.js +78 -101
  134. package/dist/pipeline-core/kit/fixtures.js.map +1 -1
  135. package/dist/pipeline-core/kit/index.js +0 -8
  136. package/dist/pipeline-core/kit/index.js.map +1 -1
  137. package/dist/pipeline-core/types.js +13 -52
  138. package/dist/pipeline-core/types.js.map +1 -1
  139. package/dist/pipeline-core/validate-capability.js +0 -3
  140. package/dist/pipeline-core/validate-capability.js.map +1 -1
  141. package/dist/pipeline-core/validate-conflicts.js +0 -9
  142. package/dist/pipeline-core/validate-conflicts.js.map +1 -1
  143. package/dist/pipeline-core/validate-dataflow.js +0 -17
  144. package/dist/pipeline-core/validate-dataflow.js.map +1 -1
  145. package/dist/pipeline-core/validate-diff.js +3 -36
  146. package/dist/pipeline-core/validate-diff.js.map +1 -1
  147. package/dist/pipeline-core/validate-edges.js +0 -6
  148. package/dist/pipeline-core/validate-edges.js.map +1 -1
  149. package/dist/pipeline-core/validate-graph.js +0 -11
  150. package/dist/pipeline-core/validate-graph.js.map +1 -1
  151. package/dist/pipeline-core/validate-loops.js +37 -44
  152. package/dist/pipeline-core/validate-loops.js.map +1 -1
  153. package/dist/pipeline-core/validate-parallel.js +9 -15
  154. package/dist/pipeline-core/validate-parallel.js.map +1 -1
  155. package/dist/pipeline-core/validate-sink.js +0 -7
  156. package/dist/pipeline-core/validate-sink.js.map +1 -1
  157. package/dist/pipeline-core/validate-topology.js +1 -20
  158. package/dist/pipeline-core/validate-topology.js.map +1 -1
  159. package/dist/pipeline-core/validate-verdict.js +52 -7
  160. package/dist/pipeline-core/validate-verdict.js.map +1 -1
  161. package/dist/pipeline-core/validate.js +5 -29
  162. package/dist/pipeline-core/validate.js.map +1 -1
  163. package/dist/playbook/catalog-loader.js +8 -3
  164. package/dist/playbook/catalog-loader.js.map +1 -1
  165. package/dist/playbook/import-mapper.js +4 -5
  166. package/dist/playbook/import-mapper.js.map +1 -1
  167. package/dist/poller/pr-readiness-core.js +226 -29
  168. package/dist/poller/pr-readiness-core.js.map +1 -1
  169. package/dist/revisium/inbox.service.js +0 -24
  170. package/dist/revisium/inbox.service.js.map +1 -1
  171. package/dist/revisium/playbooks.service.js +15 -2
  172. package/dist/revisium/playbooks.service.js.map +1 -1
  173. package/dist/revisium/revisium.module.js +0 -12
  174. package/dist/revisium/revisium.module.js.map +1 -1
  175. package/dist/revisium/roles.service.js +0 -6
  176. package/dist/revisium/roles.service.js.map +1 -1
  177. package/dist/revisium/run.service.js +2 -75
  178. package/dist/revisium/run.service.js.map +1 -1
  179. package/dist/revisium/tokens.js +0 -4
  180. package/dist/revisium/tokens.js.map +1 -1
  181. package/dist/run/append-event.js +6 -37
  182. package/dist/run/append-event.js.map +1 -1
  183. package/dist/run/block-run.js.map +1 -1
  184. package/dist/run/cancel-run.js +0 -33
  185. package/dist/run/cancel-run.js.map +1 -1
  186. package/dist/run/complete-run.js.map +1 -1
  187. package/dist/run/create-run.js +5 -8
  188. package/dist/run/create-run.js.map +1 -1
  189. package/dist/run/fail-run.js +0 -3
  190. package/dist/run/fail-run.js.map +1 -1
  191. package/dist/run/inspect-run.js +10 -29
  192. package/dist/run/inspect-run.js.map +1 -1
  193. package/dist/run/issue-ref.js +88 -0
  194. package/dist/run/issue-ref.js.map +1 -0
  195. package/dist/run/run-outputs.js +0 -19
  196. package/dist/run/run-outputs.js.map +1 -1
  197. package/dist/run/terminal-run-status.js +0 -12
  198. package/dist/run/terminal-run-status.js.map +1 -1
  199. package/dist/runners/claude-code.service.js +2 -13
  200. package/dist/runners/claude-code.service.js.map +1 -1
  201. package/dist/runners/codex.service.js +2 -11
  202. package/dist/runners/codex.service.js.map +1 -1
  203. package/dist/runners/gh-identity.js +0 -52
  204. package/dist/runners/gh-identity.js.map +1 -1
  205. package/dist/runners/integrator-branch-naming.js +16 -19
  206. package/dist/runners/integrator-branch-naming.js.map +1 -1
  207. package/dist/runners/integrator-git.js +0 -25
  208. package/dist/runners/integrator-git.js.map +1 -1
  209. package/dist/runners/integrator-remote.js +0 -2
  210. package/dist/runners/integrator-remote.js.map +1 -1
  211. package/dist/runners/integrator-types.js +0 -7
  212. package/dist/runners/integrator-types.js.map +1 -1
  213. package/dist/runners/integrator.js +231 -230
  214. package/dist/runners/integrator.js.map +1 -1
  215. package/dist/runners/runner.module.js +0 -6
  216. package/dist/runners/runner.module.js.map +1 -1
  217. package/dist/runners/tokens.js +0 -4
  218. package/dist/runners/tokens.js.map +1 -1
  219. package/dist/runners/worktree.service.js +3 -19
  220. package/dist/runners/worktree.service.js.map +1 -1
  221. package/dist/task-control-plane/pr-readiness.service.js +15 -13
  222. package/dist/task-control-plane/pr-readiness.service.js.map +1 -1
  223. package/dist/task-control-plane/run-watch.service.js +170 -63
  224. package/dist/task-control-plane/run-watch.service.js.map +1 -1
  225. package/dist/task-control-plane/task-control-plane-api.service.js +285 -40
  226. package/dist/task-control-plane/task-control-plane-api.service.js.map +1 -1
  227. package/dist/worker/artifact-store.js +21 -3
  228. package/dist/worker/artifact-store.js.map +1 -1
  229. package/dist/worker/build-context.js +10 -10
  230. package/dist/worker/build-context.js.map +1 -1
  231. package/dist/worker/claude-code-runner.js +76 -48
  232. package/dist/worker/claude-code-runner.js.map +1 -1
  233. package/dist/worker/codex-runner.js +128 -35
  234. package/dist/worker/codex-runner.js.map +1 -1
  235. package/dist/worker/git-worktree-manager.js +20 -67
  236. package/dist/worker/git-worktree-manager.js.map +1 -1
  237. package/dist/worker/process-executor.js +144 -27
  238. package/dist/worker/process-executor.js.map +1 -1
  239. package/dist/worker/result-envelope.js +33 -49
  240. package/dist/worker/result-envelope.js.map +1 -1
  241. package/dist/worker/runner-common.js +29 -0
  242. package/dist/worker/runner-common.js.map +1 -1
  243. package/dist/worker/runner-dispatch.js +0 -3
  244. package/dist/worker/runner-dispatch.js.map +1 -1
  245. package/dist/worker/runner.js +16 -1
  246. package/dist/worker/runner.js.map +1 -1
  247. package/dist/worker/stub-runner.js +0 -7
  248. package/dist/worker/stub-runner.js.map +1 -1
  249. package/package.json +2 -2
@@ -14,30 +14,13 @@ import { Injectable, Inject } from '@nestjs/common';
14
14
  import { createControlPlaneDataAccessForTransport } from '../control-plane/data-access.js';
15
15
  import { pushInbox, listInbox, getInbox, resolveInbox, } from '../control-plane/inbox.js';
16
16
  import { REVISIUM_TRANSPORT_DRAFT } from './tokens.js';
17
- /**
18
- * InboxService — thin DI wrapper over the pure inbox verbs.
19
- * Injects the DRAFT transport (inbox is a runtime/draft table).
20
- *
21
- * G3: da is initialized in the constructor BODY (not a class-field initializer).
22
- * Same pattern as RunService — field-init runs before parameter property assignment
23
- * under ES2023/NodeNext emit.
24
- *
25
- * PURE: no DBOS imports or calls. The DBOS signal (DBOS.send) is layered in 0004.
26
- */
27
17
  let InboxService = class InboxService {
28
18
  draftTransport;
29
19
  da;
30
20
  constructor(draftTransport) {
31
21
  this.draftTransport = draftTransport;
32
- // Must build da in the constructor body — see G3 note above.
33
22
  this.da = createControlPlaneDataAccessForTransport(this.draftTransport);
34
23
  }
35
- /**
36
- * pushInbox — insert an inbox row. Returns the inbox id.
37
- *
38
- * G1 (0004): accepts `opts.id` — when present, used verbatim (deterministic gate path).
39
- * 0002 CLI callers pass no opts → timestamp+suffix path unchanged (backward-compatible).
40
- */
41
24
  pushInbox(item, opts) {
42
25
  return pushInbox(this.da, item, opts);
43
26
  }
@@ -47,13 +30,6 @@ let InboxService = class InboxService {
47
30
  getInbox(id) {
48
31
  return getInbox(this.da, id);
49
32
  }
50
- /**
51
- * resolveInbox — pure status flip + step unblock.
52
- *
53
- * G2 (0004): now returns the STORED decision `{ status, answer }`.
54
- * Gate CLI callers use `result.answer` to signal WHAT IS RECORDED.
55
- * 0002 non-gate callers ignore the return — backward-compatible.
56
- */
57
33
  resolveInbox(itemId, answer, resolvedBy) {
58
34
  return resolveInbox(this.da, itemId, answer, resolvedBy);
59
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.service.js","sourceRoot":"","sources":["../../src/revisium/inbox.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,wCAAwC,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EACL,SAAS,EACT,SAAS,EACT,QAAQ,EACR,YAAY,GAKb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD;;;;;;;;;GASG;AAEI,IAAM,YAAY,GAAlB,MAAM,YAAY;IAI8B;IAHpC,EAAE,CAAyB;IAE5C,YACqD,cAAqC;QAArC,mBAAc,GAAd,cAAc,CAAuB;QAExF,6DAA6D;QAC7D,IAAI,CAAC,EAAE,GAAG,wCAAwC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,IAAkB,EAAE,IAAsB;QAClD,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,SAAS,CAAC,MAAoB;QAC5B,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,QAAQ,CAAC,EAAU;QACjB,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,MAAc,EAAE,MAAe,EAAE,UAAkB;QAC9D,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;CACF,CAAA;AAtCY,YAAY;IADxB,UAAU,EAAE;IAKR,WAAA,MAAM,CAAC,wBAAwB,CAAC,CAAA;;GAJxB,YAAY,CAsCxB"}
1
+ {"version":3,"file":"inbox.service.js","sourceRoot":"","sources":["../../src/revisium/inbox.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,wCAAwC,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EACL,SAAS,EACT,SAAS,EACT,QAAQ,EACR,YAAY,GAKb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAWhD,IAAM,YAAY,GAAlB,MAAM,YAAY;IAI8B;IAHpC,EAAE,CAAyB;IAE5C,YACqD,cAAqC;QAArC,mBAAc,GAAd,cAAc,CAAuB;QAExF,IAAI,CAAC,EAAE,GAAG,wCAAwC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC1E,CAAC;IAMD,SAAS,CAAC,IAAkB,EAAE,IAAsB;QAClD,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,SAAS,CAAC,MAAoB;QAC5B,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,QAAQ,CAAC,EAAU;QACjB,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC;IAOD,YAAY,CAAC,MAAc,EAAE,MAAe,EAAE,UAAkB;QAC9D,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;CACF,CAAA;AAjCY,YAAY;IADxB,UAAU,EAAE;IAKR,WAAA,MAAM,CAAC,wBAAwB,CAAC,CAAA;;GAJxB,YAAY,CAiCxB"}
@@ -16,6 +16,8 @@ import { createVersionedMeaningAccess } from '../control-plane/versioned-meaning
16
16
  import { PlaybookInstaller } from '../playbook/playbook-installer.js';
17
17
  import { normalizeRouteGates } from '../pipeline/route-contract.js';
18
18
  import { REVISIUM_TRANSPORT_HEAD } from './tokens.js';
19
+ const DEFAULT_PLAYBOOK_ID = 'revisium-default';
20
+ const DEFAULT_PLAYBOOK_PACKAGE = '@revisium/orchestrator-default-playbook';
19
21
  function str(value) {
20
22
  return typeof value === 'string' ? value : '';
21
23
  }
@@ -54,6 +56,9 @@ function alternativeRoles(value) {
54
56
  }];
55
57
  });
56
58
  }
59
+ function canInvalidate(transport) {
60
+ return typeof transport.invalidate === 'function';
61
+ }
57
62
  function pipelineFromRow(row) {
58
63
  const data = row.data ?? {};
59
64
  return {
@@ -74,11 +79,14 @@ let PlaybooksService = class PlaybooksService {
74
79
  constructor(head) {
75
80
  this.head = head;
76
81
  }
77
- install(options) {
82
+ async install(options) {
78
83
  const installer = new PlaybookInstaller({
79
84
  access: createVersionedMeaningAccess({ dryRun: options.dryRun }),
80
85
  });
81
- return installer.install(options);
86
+ const result = await installer.install(options);
87
+ if (result.committed && canInvalidate(this.head))
88
+ this.head.invalidate();
89
+ return result;
82
90
  }
83
91
  async listPlaybooks() {
84
92
  const rows = await this.head.listRows('playbooks', { first: 100 });
@@ -94,6 +102,7 @@ let PlaybooksService = class PlaybooksService {
94
102
  version: str(data.version),
95
103
  source: str(data.source),
96
104
  schemaVersion: num(data.schema_version),
105
+ ...(str(data.catalog_hash) ? { catalogHash: str(data.catalog_hash) } : {}),
97
106
  }];
98
107
  });
99
108
  }
@@ -115,6 +124,7 @@ let PlaybooksService = class PlaybooksService {
115
124
  version: str(data.version),
116
125
  source: str(data.source),
117
126
  schemaVersion: num(data.schema_version),
127
+ ...(str(data.catalog_hash) ? { catalogHash: str(data.catalog_hash) } : {}),
118
128
  };
119
129
  }
120
130
  async resolvePlaybook(id) {
@@ -128,6 +138,9 @@ let PlaybooksService = class PlaybooksService {
128
138
  if (playbooks.length === 0) {
129
139
  throw new ControlPlaneError('ROW_NOT_FOUND', 'no installed playbook found');
130
140
  }
141
+ const defaultPlaybook = playbooks.find((playbook) => playbook.id === DEFAULT_PLAYBOOK_ID || playbook.packageName === DEFAULT_PLAYBOOK_PACKAGE);
142
+ if (defaultPlaybook)
143
+ return defaultPlaybook;
131
144
  playbooks.sort((left, right) => left.id.localeCompare(right.id));
132
145
  return playbooks[0];
133
146
  }
@@ -1 +1 @@
1
- {"version":3,"file":"playbooks.service.js","sourceRoot":"","sources":["../../src/revisium/playbooks.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playbooks.service.js","sourceRoot":"","sources":["../../src/revisium/playbooks.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAA2D,MAAM,mCAAmC,CAAC;AAC/H,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAC/C,MAAM,wBAAwB,GAAG,yCAAyC,CAAC;AAyB3E,SAAS,GAAG,CAAC,KAAc;IACzB,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,GAAG,CAAC,KAAc;IACzB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACrE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAY,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC3E,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,OAAO,CAAC;gBACN,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC3B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;aACnC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAOD,SAAS,aAAa,CAAC,SAAkB;IACvC,OAAO,OAAQ,SAAoC,CAAC,UAAU,KAAK,UAAU,CAAC;AAChF,CAAC;AAED,SAAS,eAAe,CAAC,GAAmD;IAC1E,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAC5B,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;QACjC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE;QAC3C,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC/B,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QAC1C,gBAAgB,EAAE,gBAAgB,CAAC,IAAI,CAAC,sBAAsB,CAAC;QAC/D,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QAC1C,UAAU,EAAE,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC;QACjD,eAAe,EAAE,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC;KACvD,CAAC;AACJ,CAAC;AAGM,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAEyB;IADpD,YACoD,IAA2B;QAA3B,SAAI,GAAJ,IAAI,CAAuB;IAC5E,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,OAA+B;QAC3C,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC;YACtC,MAAM,EAAE,4BAA4B,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;SACjE,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,MAAM,CAAC,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACzE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YAC7B,OAAO,CAAC;oBACN,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;oBACpB,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;oBACnC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;oBAC1B,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;oBACxB,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;oBACvC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3E,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAU;QAC1B,IAAI,GAAG,CAAC;QACR,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe;gBAAE,OAAO,IAAI,CAAC;YACtF,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5B,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YACpB,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;YACnC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;YAC1B,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YACxB,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;YACvC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3E,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAW;QAC/B,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,iBAAiB,CAAC,eAAe,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC;YACzF,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,iBAAiB,CAAC,eAAe,EAAE,6BAA6B,CAAC,CAAC;QAC9E,CAAC;QACD,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,CACpC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,mBAAmB,IAAI,QAAQ,CAAC,WAAW,KAAK,wBAAwB,CACvG,CAAC;QACF,IAAI,eAAe;YAAE,OAAO,eAAe,CAAC;QAC5C,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACjE,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YAC7B,OAAO,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAU;QAC1B,IAAI,GAAG,CAAC;QACR,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe;gBAAE,OAAO,IAAI,CAAC;YACtF,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAkD;QACtE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,MAAM,EAAE,UAAU,KAAK,QAAQ,CAAC,EAAE;YAAE,OAAO,MAAM,CAAC;QAEtD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAC1B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAC9F,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,iBAAiB,CACzB,eAAe,EACf,kCAAkC,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,UAAU,EAAE,CACrE,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAA;AA7GY,gBAAgB;IAD5B,UAAU,EAAE;IAGR,WAAA,MAAM,CAAC,uBAAuB,CAAC,CAAA;;GAFvB,gBAAgB,CA6G5B"}
@@ -11,18 +11,6 @@ import { RolesService } from './roles.service.js';
11
11
  import { RunService } from './run.service.js';
12
12
  import { InboxService } from './inbox.service.js';
13
13
  import { PlaybooksService } from './playbooks.service.js';
14
- /**
15
- * RevisiumModule — provides draft + head transport tokens, RolesService, RunService, InboxService.
16
- *
17
- * HOST-FREE: this module MUST NOT import EngineModule, HostLifecycle, or anything that
18
- * triggers DBOS.launch(). Its providers only need the Revisium transport. It may later be
19
- * imported by AppModule, but never the reverse.
20
- *
21
- * Transport factories are sync/lazy (client-transport.ts:114-119); no network at module
22
- * construction — RevisiumModule.compile() succeeds without a live daemon.
23
- *
24
- * Follows EngineModule (src/engine/dbos.module.ts) as the structural template.
25
- */
26
14
  let RevisiumModule = class RevisiumModule {
27
15
  };
28
16
  RevisiumModule = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"revisium.module.js","sourceRoot":"","sources":["../../src/revisium/revisium.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;;;;;;;;;;GAWG;AAyBI,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,cAAc;IAxB1B,MAAM,CAAC;QACN,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,wBAAwB;gBACjC,UAAU,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC;aACjD;YACD;gBACE,OAAO,EAAE,uBAAuB;gBAChC,UAAU,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC;aAChD;YACD,YAAY;YACZ,UAAU;YACV,YAAY;YACZ,gBAAgB;SACjB;QACD,OAAO,EAAE;YACP,wBAAwB;YACxB,uBAAuB;YACvB,YAAY;YACZ,UAAU;YACV,YAAY;YACZ,gBAAgB;SACjB;KACF,CAAC;GACW,cAAc,CAAG"}
1
+ {"version":3,"file":"revisium.module.js","sourceRoot":"","sources":["../../src/revisium/revisium.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAoCnD,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,cAAc;IAxB1B,MAAM,CAAC;QACN,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,wBAAwB;gBACjC,UAAU,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC;aACjD;YACD;gBACE,OAAO,EAAE,uBAAuB;gBAChC,UAAU,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC;aAChD;YACD,YAAY;YACZ,UAAU;YACV,YAAY;YACZ,gBAAgB;SACjB;QACD,OAAO,EAAE;YACP,wBAAwB;YACxB,uBAAuB;YACvB,YAAY;YACZ,UAAU;YACV,YAAY;YACZ,gBAAgB;SACjB;KACF,CAAC;GACW,cAAc,CAAG"}
@@ -16,11 +16,6 @@ import { REVISIUM_TRANSPORT_HEAD } from './tokens.js';
16
16
  function str(value) {
17
17
  return typeof value === 'string' ? value : '';
18
18
  }
19
- /**
20
- * RolesService — thin DI wrapper over loadRole / loadModelProfile.
21
- * Injects the HEAD transport (versioned tables, read-only).
22
- * Propagates ControlPlaneError (ROW_NOT_FOUND, VALIDATION_FAILURE) unchanged.
23
- */
24
19
  let RolesService = class RolesService {
25
20
  head;
26
21
  constructor(head) {
@@ -65,7 +60,6 @@ let RolesService = class RolesService {
65
60
  }];
66
61
  });
67
62
  }
68
- /** Load pipeline limits (max iterations/attempts, budget) from routing_policy (0008 #5). */
69
63
  loadPipelinePolicy() {
70
64
  return loadPipelinePolicy(this.head);
71
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"roles.service.js","sourceRoot":"","sources":["../../src/revisium/roles.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"roles.service.js","sourceRoot":"","sources":["../../src/revisium/roles.service.ts"],"names":[],"mappings":"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"}
@@ -25,21 +25,11 @@ import { blockRun } from '../run/block-run.js';
25
25
  import { appendRunEvent, appendRunCost, appendRunAttempt } from '../run/append-event.js';
26
26
  import { appendRunOutput as appendRunOutputRow } from '../run/run-outputs.js';
27
27
  import { REVISIUM_TRANSPORT_DRAFT } from './tokens.js';
28
- /**
29
- * RunService — thin DI wrapper over the run verbs.
30
- * Injects the DRAFT transport (runtime/draft table writes).
31
- *
32
- * G3: da is initialized in the constructor BODY (not a class-field initializer).
33
- * A class-field initializer for `da` would run before the constructor assigns the
34
- * `draftTransport` parameter property under ES2023/NodeNext emit, so it would read
35
- * this.draftTransport as undefined. The constructor-body form is safe.
36
- */
37
28
  let RunService = class RunService {
38
29
  draftTransport;
39
30
  da;
40
31
  constructor(draftTransport) {
41
32
  this.draftTransport = draftTransport;
42
- // Must build da in the constructor body — see G3 note above.
43
33
  this.da = createControlPlaneDataAccessForTransport(this.draftTransport);
44
34
  }
45
35
  createRun(input) {
@@ -54,53 +44,27 @@ let RunService = class RunService {
54
44
  listRunEvents(id, filter) {
55
45
  return listRunEvents(this.da, id, filter);
56
46
  }
57
- /** List per-attempt observability rows for a run (0008 #4 — `revo run log`). */
58
47
  listRunAttempts(id, filter) {
59
48
  return listRunAttempts(this.da, id, filter);
60
49
  }
61
50
  cancelRun(id, opts) {
62
51
  return cancelRun(this.da, id, opts);
63
52
  }
64
- /**
65
- * failRun — patch task_runs to `failed` + write a run_failed event (0008 #2).
66
- * Event-first + idempotent. Called by the pipeline workflow body on a terminal step failure
67
- * so the Revisium run-row reflects the failure (DBOS=progress, Revisium=meaning).
68
- */
69
53
  failRun(id, reason, opts) {
70
54
  return failRun(this.da, id, reason, opts);
71
55
  }
72
- /**
73
- * completeRun — patch task_runs to `completed` + write a run_completed event.
74
- * Called by the pipeline workflow body after the final merge gate resolves.
75
- */
76
56
  completeRun(id, opts) {
77
57
  return completeRun(this.da, id, opts);
78
58
  }
79
- /**
80
- * blockRun — patch task_runs to `paused` + write a run_blocked event.
81
- * Called when the workflow intentionally stops with blocked:true while DBOS completes.
82
- */
83
59
  blockRun(id, opts) {
84
60
  return blockRun(this.da, id, opts);
85
61
  }
86
- /** Expose getRun for events pre-check (run not found guard in CLI). */
87
62
  getRun(id) {
88
63
  return this.da.getRow('task_runs', id);
89
64
  }
90
- /** Read run-row status + the run_failed reason (0008 #2 — surfaced by `run start --wait`). */
91
65
  getRunFailure(id) {
92
66
  return getRunFailure(this.da, id);
93
67
  }
94
- /**
95
- * loadPipelineContext — M3 (TASK 0003).
96
- *
97
- * Exposes the private draft `da` via a typed verb (never widening the field to public).
98
- * Synthesizes an in-memory Step with the real taskId from showRun (B6: tasks[0].taskId).
99
- * `modelProfile` is the caller-supplied role-derived level (B7 — not hardcoded 'standard').
100
- *
101
- * B6: `RunDetail = { run, tasks: TaskSummary[] }` — taskId is on TaskSummary, NOT top-level.
102
- * `createRunWorkflow` writes exactly ONE task per run, so tasks[0] is THE task.
103
- */
104
68
  async loadPipelineContext(runId, role, stepKey, stepInput, modelProfile) {
105
69
  const detail = await showRun(this.da, runId);
106
70
  if (!detail) {
@@ -144,37 +108,15 @@ let RunService = class RunService {
144
108
  },
145
109
  };
146
110
  }
147
- /**
148
- * makeResolveCwd — STEP-level cwd resolver (M3, worktree-aware as of plan 0017).
149
- * Returns (step: Step) => Promise<string>; resolves the run's isolated worktree (keyed by step.runId)
150
- * for live runs, else the shared base checkout (tasks.repo_ref). Used by ClaudeCodeService.
151
- */
152
111
  makeResolveCwd(base = process.cwd()) {
153
112
  return makeResolveCwd(this.da, getConfig().dataDir, base);
154
113
  }
155
- /**
156
- * makeResolveRunCwd — RUN-level worktree-aware resolver (plan 0017).
157
- * Returns (runId, taskId) => Promise<string>; resolves the run's isolated worktree, FAILS LOUD for a
158
- * live run whose worktree is missing, else the base checkout. Used by the integrator (run-keyed).
159
- */
160
114
  makeResolveRunCwd(base = process.cwd()) {
161
115
  return makeResolveRunCwd(this.da, getConfig().dataDir, base);
162
116
  }
163
- /**
164
- * makeResolveTaskCwd — TASK-level cwd resolver (M3) — the BASE checkout.
165
- * Returns (taskId: string) => Promise<string>; reads tasks.repo_ref via the draft da.
166
- * Used by the live preflight (runs against the base repo BEFORE the worktree exists) + worktree setup.
167
- */
168
117
  makeResolveTaskCwd(base = process.cwd()) {
169
118
  return makeResolveTaskCwd(this.da, base);
170
119
  }
171
- /**
172
- * loadRunTaskContext — B6: resolve { taskId, title, base, repoRef } from run input.
173
- *
174
- * Backed by showRun(da, runId). base is always 'master' (no base field in run input —
175
- * verified: create-run.ts stores only repos/repo_ref). Throws a clear error if the run
176
- * or its task is missing.
177
- */
178
120
  async loadRunTaskContext(runId) {
179
121
  const detail = await showRun(this.da, runId);
180
122
  if (!detail) {
@@ -187,35 +129,20 @@ let RunService = class RunService {
187
129
  return {
188
130
  taskId: task.taskId,
189
131
  title: task.title,
190
- base: 'master', // MVP: base branch pinned to 'master' (see plan 0005); dynamic default-branch detection is post-MVP.
132
+ base: 'master',
191
133
  repoRef: detail.run.repos[0] ?? '',
134
+ ...(detail.run.issueRef ? { issueRef: detail.run.issueRef } : {}),
192
135
  };
193
136
  }
194
- /**
195
- * appendEvent — write an idempotent event to the draft events table.
196
- * Wraps appendRunEvent over the service's draft da.
197
- */
198
137
  appendEvent(input) {
199
138
  return appendRunEvent(this.da, input);
200
139
  }
201
- /**
202
- * appendCost — write an idempotent cost row to the draft cost_ledger table.
203
- * Wraps appendRunCost over the service's draft da.
204
- */
205
140
  appendCost(input) {
206
141
  return appendRunCost(this.da, input);
207
142
  }
208
- /**
209
- * appendAttempt — write an idempotent per-attempt observability row to the draft attempts table.
210
- * Wraps appendRunAttempt over the service's draft da (0008 #4).
211
- */
212
143
  appendAttempt(input) {
213
144
  return appendRunAttempt(this.da, input);
214
145
  }
215
- /**
216
- * appendRunOutput — write an idempotent step-output dataflow row to the draft run_outputs table.
217
- * Wraps the run-outputs module over the service's draft da (0016 §5).
218
- */
219
146
  appendRunOutput(input) {
220
147
  return appendRunOutputRow(this.da, input);
221
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run.service.js","sourceRoot":"","sources":["../../src/revisium/run.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.service.js","sourceRoot":"","sources":["../../src/revisium/run.service.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,3 @@
1
- /**
2
- * Injection tokens for RevisiumModule transports.
3
- * Shared between the module and the service constructors.
4
- */
5
1
  export const REVISIUM_TRANSPORT_DRAFT = 'REVISIUM_TRANSPORT_DRAFT';
6
2
  export const REVISIUM_TRANSPORT_HEAD = 'REVISIUM_TRANSPORT_HEAD';
7
3
  //# sourceMappingURL=tokens.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/revisium/tokens.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAC;AACnE,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC"}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/revisium/tokens.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAC;AACnE,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC"}
@@ -2,13 +2,6 @@ import { ControlPlaneError } from '../control-plane/errors.js';
2
2
  import { fnv1a64Hex } from '../control-plane/steps.js';
3
3
  import { redactSecrets } from '../control-plane/inbox.js';
4
4
  import { redactTokens } from '../runners/gh-identity.js';
5
- /**
6
- * Deep-redact GitHub token shapes from every string leaf of an event payload before it is persisted
7
- * to the Revisium draft. The attempts row redacts `lesson`/`error` explicitly (appendRunAttempt); an
8
- * event payload carries the same free text (e.g. an integrator `pipeline_blocked` lesson) and must
9
- * not leak a raw token. Redacting at this persist boundary covers every payload field, including ones
10
- * added by future event types.
11
- */
12
5
  export function redactEventPayload(value) {
13
6
  if (typeof value === 'string')
14
7
  return redactTokens(value);
@@ -19,16 +12,11 @@ export function redactEventPayload(value) {
19
12
  }
20
13
  return value;
21
14
  }
22
- /**
23
- * Write a single event row to the `events` table.
24
- *
25
- * eventId = `event_${fnv1a64Hex(`${runId}|${stepKey}|${type}`)}` → 22 chars ≤ 64
26
- *
27
- * Idempotent: catches ROW_CONFLICT and returns (no-op on replay).
28
- */
29
15
  export async function appendRunEvent(da, input) {
30
- const { runId, taskId, stepId, stepKey, type, payload, actor, createdAt } = input;
31
- const eventId = `event_${fnv1a64Hex(`${runId}|${stepKey}|${type}`)}`;
16
+ const { runId, taskId, stepId, stepKey, type, payload, idempotencyKey, actor, createdAt } = input;
17
+ const idempotencyScope = idempotencyKey ? `|${idempotencyKey}` : '';
18
+ const eventKey = `${runId}|${stepKey}|${type}${idempotencyScope}`;
19
+ const eventId = `event_${fnv1a64Hex(eventKey)}`;
32
20
  const createdAtIso = (createdAt ?? new Date()).toISOString();
33
21
  try {
34
22
  await da.createRow('events', eventId, {
@@ -48,20 +36,7 @@ export async function appendRunEvent(da, input) {
48
36
  throw e;
49
37
  }
50
38
  }
51
- /** Cap the serialized output summary so a giant agent payload can't bloat the attempts row. */
52
39
  const OUTPUT_SUMMARY_MAX = 4_000;
53
- /**
54
- * Write a single per-attempt observability row to the `attempts` table (0008 #4).
55
- *
56
- * Populates the previously-unused `attempts` table so `revo run log` can show output summary,
57
- * verdict, model, tokens, cost, duration, and iteration per attempt — the dogfood's observability
58
- * gap (agent output was only recoverable indirectly via plan files / commit diffs).
59
- *
60
- * SECRET BOUNDARY: the output summary, lesson, and error are secret-redacted (object keys via
61
- * redactSecrets, token shapes via redactTokens) before persisting — attempts live in Revisium.
62
- *
63
- * Idempotent: the row id IS the deterministic attemptId; ROW_CONFLICT is a no-op on replay.
64
- */
65
40
  export async function appendRunAttempt(da, input) {
66
41
  const summaryRaw = JSON.stringify(redactSecrets(input.output) ?? null);
67
42
  const outputSummary = redactTokens(summaryRaw).slice(0, OUTPUT_SUMMARY_MAX);
@@ -101,16 +76,10 @@ export async function appendRunAttempt(da, input) {
101
76
  throw e;
102
77
  }
103
78
  }
104
- /**
105
- * Write a single cost row to the `cost_ledger` table.
106
- *
107
- * costId = `cost_${fnv1a64Hex(`${runId}|${stepKey}|${index}`)}` → 21 chars ≤ 64
108
- *
109
- * Idempotent: catches ROW_CONFLICT and returns (no-op on replay).
110
- */
111
79
  export async function appendRunCost(da, input) {
112
80
  const { runId, stepId, stepKey, attemptId, cost, index, recordedAt } = input;
113
- const costId = `cost_${fnv1a64Hex(`${runId}|${stepKey}|${index}`)}`;
81
+ const costKey = `${runId}|${stepKey}|${attemptId}|${index}`;
82
+ const costId = `cost_${fnv1a64Hex(costKey)}`;
114
83
  const recordedAtIso = (recordedAt ?? new Date()).toISOString();
115
84
  try {
116
85
  await da.createRow('cost_ledger', costId, {
@@ -1 +1 @@
1
- {"version":3,"file":"append-event.js","sourceRoot":"","sources":["../../src/run/append-event.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"append-event.js","sourceRoot":"","sources":["../../src/run/append-event.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"block-run.js","sourceRoot":"","sources":["../../src/run/block-run.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAQnE,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,EAA0B,EAC1B,KAAa,EACb,IAAuE;IAEvE,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,EAAE,EAAE,KAAK,EAAE;QACtD,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,aAAa;QACxB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,UAAU;QAChC,OAAO,EAAE;YACP,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,kBAAkB;YAC1C,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE;SAC3B;QACD,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE;KAC7B,CAAC,CAAC;IACH,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC5E,CAAC"}
1
+ {"version":3,"file":"block-run.js","sourceRoot":"","sources":["../../src/run/block-run.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAQnE,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,EAA0B,EAC1B,KAAa,EACb,IAAuE;IAEvE,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,EAAE,EAAE,KAAK,EAAE;QACtD,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,aAAa;QACxB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,UAAU;QAChC,OAAO,EAAE;YACP,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,kBAAkB;YAC1C,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE;SAC3B;QACD,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE;KAC7B,CAAC,CAAC;IACH,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC5E,CAAC"}
@@ -1,38 +1,5 @@
1
1
  import { recordTerminalRunStatus } from './terminal-run-status.js';
2
- /**
3
- * cancelRun — patch task_runs to cancelled + write a run_cancelled event.
4
- *
5
- * G3 (0004): the event id is NOW DETERMINISTIC: `event_${fnv1a64Hex(`${runId}|run_cancelled`)}`.
6
- * This mirrors append-event.ts's pattern (22 chars ≤ 64; no timestamp).
7
- * createRow is wrapped in a ROW_CONFLICT catch so a workflow-body replay does NOT
8
- * duplicate or fail the event insert (idempotent under DBOS recovery).
9
- *
10
- * CR-A (0004 CR): EVENT-FIRST ordering — the run_cancelled event is written BEFORE the
11
- * task_runs status patch. This preserves correct `previous_status` on replay:
12
- * 1. Read run → capture prev = run.status.
13
- * 2. If prev === 'cancelled': the event already exists (ROW_CONFLICT no-op) with the TRUE
14
- * prior status written on the first run. Skip the status patch too. Return.
15
- * 3. createRow the deterministic event with previous_status: prev (FIRST write — immutable
16
- * because ROW_CONFLICT means the first write always wins on replay).
17
- * 4. idempotently patch task_runs.status → 'cancelled' (only if not already cancelled).
18
- * If a replay stops between steps 3 and 4, the next replay re-reads prev, sees the event
19
- * already exists (ROW_CONFLICT no-op at step 3), and idemptently applies the patch at step 4.
20
- * The event's `previous_status` is ALWAYS the true prior status captured on the FIRST execution.
21
- *
22
- * CR-B (0004 CR): caller-aware actor/source — the pipeline gate reject path passes
23
- * actor:'pipeline', source:'plan-gate-reject'; the CLI `run cancel` path keeps the
24
- * default actor:'cli', source:'revo run cancel'. Thread via opts.
25
- *
26
- * C1 (0004 review): read-then-guard — if the run is already cancelled, skip both the
27
- * event write (ROW_CONFLICT no-op) and the task_runs patch (C1: no fresh updated_at on replay).
28
- *
29
- * The `opts.idSuffix` parameter is kept for signature back-compat (0002 `run cancel` CLI
30
- * passes it) but no longer influences the event id — it is intentionally unused here.
31
- */
32
2
  export async function cancelRun(da, runId, opts) {
33
- // CR-A/G3/C1: event-first, deterministic id, ROW_CONFLICT-idempotent, no fresh updated_at when
34
- // already cancelled — all provided by the shared writer (terminal-run-status.ts). `idSuffix` is
35
- // kept on the signature for back-compat (0002 `run cancel`) but does NOT influence the event id.
36
3
  const result = await recordTerminalRunStatus(da, runId, {
37
4
  status: 'cancelled',
38
5
  eventType: 'run_cancelled',
@@ -1 +1 @@
1
- {"version":3,"file":"cancel-run.js","sourceRoot":"","sources":["../../src/run/cancel-run.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAQnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,EAA0B,EAC1B,KAAa,EACb,IAAyE;IAEzE,+FAA+F;IAC/F,gGAAgG;IAChG,iGAAiG;IACjG,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,EAAE,EAAE,KAAK,EAAE;QACtD,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,eAAe;QAC1B,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,KAAK;QAC3B,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,iBAAiB,EAAE;QACtD,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE;KAC7B,CAAC,CAAC;IACH,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC/E,CAAC"}
1
+ {"version":3,"file":"cancel-run.js","sourceRoot":"","sources":["../../src/run/cancel-run.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAoCnE,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,EAA0B,EAC1B,KAAa,EACb,IAAyE;IAEzE,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,EAAE,EAAE,KAAK,EAAE;QACtD,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,eAAe;QAC1B,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,KAAK;QAC3B,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,iBAAiB,EAAE;QACtD,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE;KAC7B,CAAC,CAAC;IACH,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC/E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"complete-run.js","sourceRoot":"","sources":["../../src/run/complete-run.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAQnE,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,EAA0B,EAC1B,KAAa,EACb,IAA6F;IAE7F,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,EAAE,EAAE,KAAK,EAAE;QACtD,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,eAAe;QAC1B,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,UAAU;QAChC,OAAO,EAAE;YACP,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,mBAAmB;YAC3C,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE;YAC5B,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,CAAC;SAClC;QACD,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE;KAC7B,CAAC,CAAC;IACH,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC/E,CAAC"}
1
+ {"version":3,"file":"complete-run.js","sourceRoot":"","sources":["../../src/run/complete-run.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAQnE,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,EAA0B,EAC1B,KAAa,EACb,IAA6F;IAE7F,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,EAAE,EAAE,KAAK,EAAE;QACtD,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,eAAe;QAC1B,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,UAAU;QAChC,OAAO,EAAE;YACP,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,mBAAmB;YAC3C,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE;YAC5B,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,CAAC;SAClC;QACD,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE;KAC7B,CAAC,CAAC;IACH,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC/E,CAAC"}
@@ -2,6 +2,7 @@ import { existsSync, statSync } from 'node:fs';
2
2
  import os from 'node:os';
3
3
  import path from 'node:path';
4
4
  import { randomUUID } from 'node:crypto';
5
+ import { normalizeIssueRefIntoParams } from './issue-ref.js';
5
6
  export class CreateRunWorkflowError extends Error {
6
7
  createdIds;
7
8
  cause;
@@ -103,17 +104,13 @@ function normalizeInput(input) {
103
104
  role,
104
105
  playbookId: input.playbookId?.trim() ?? '',
105
106
  pipelineId: input.pipelineId?.trim() ?? '',
106
- params: input.params ?? {},
107
+ params: normalizeIssueRefIntoParams(input.params ?? {}, input.issueRef),
107
108
  routeDecision: input.routeDecision ?? {},
108
109
  executionProfile: input.executionProfile ?? {},
109
110
  now: input.now ?? new Date(),
110
111
  idSuffix: input.idSuffix ?? randomUUID().replaceAll('-', '').slice(0, 8),
111
112
  };
112
113
  }
113
- // A role row id is generic data: any well-formed id (charset + length) is accepted. Roles are data,
114
- // not a code allow-list — the route binds an installed role row id and the data-driven engine resolves
115
- // it as an opaque capability handle (it holds ZERO role-ids). A hyphen is NOT required (a bare id like
116
- // `developer` is valid).
117
114
  function isValidRoleRowId(role) {
118
115
  if (role.length === 0 || role.length > maxRoleRowIdLength)
119
116
  return false;
@@ -130,6 +127,9 @@ function buildIds(input) {
130
127
  status: 'ready',
131
128
  };
132
129
  }
130
+ export function previewCreateRunIds(input) {
131
+ return buildIds(normalizeInput(input));
132
+ }
133
133
  export async function createRunWorkflow(dataAccess, input) {
134
134
  const normalized = normalizeInput(input);
135
135
  await dataAccess.assertReady();
@@ -170,9 +170,6 @@ export async function createRunWorkflow(dataAccess, input) {
170
170
  updated_at: nowIso,
171
171
  });
172
172
  createdIds.taskId = ids.taskId;
173
- // No `steps` row is written: the data-driven engine owns progress in DBOS and synthesizes the
174
- // per-step `Step` in-memory (RunService.loadPipelineContext). The pre-pivot phantom `plan_run`
175
- // step row (stuck at `ready` forever, never advanced) was retired here (audit §3.1).
176
173
  await dataAccess.createRow('events', ids.eventId, {
177
174
  id: ids.eventId,
178
175
  run_id: ids.runId,