@acpus/runtime 0.7.1 → 0.9.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 (289) hide show
  1. package/dist/.tsbuildinfo +1 -0
  2. package/dist/admission/input.d.ts +5 -0
  3. package/dist/admission/input.d.ts.map +1 -0
  4. package/dist/admission/input.js +17 -0
  5. package/dist/admission/input.js.map +1 -0
  6. package/dist/artifacts/rewrite.d.ts +7 -0
  7. package/dist/artifacts/rewrite.d.ts.map +1 -0
  8. package/dist/artifacts/rewrite.js +28 -0
  9. package/dist/artifacts/rewrite.js.map +1 -0
  10. package/dist/control/agent-overrides.d.ts +4 -0
  11. package/dist/control/agent-overrides.d.ts.map +1 -0
  12. package/dist/control/agent-overrides.js +40 -0
  13. package/dist/control/agent-overrides.js.map +1 -0
  14. package/dist/daemon/loop.d.ts +16 -0
  15. package/dist/daemon/loop.d.ts.map +1 -0
  16. package/dist/daemon/loop.js +191 -0
  17. package/dist/daemon/loop.js.map +1 -0
  18. package/dist/daemon/sessions.d.ts +23 -0
  19. package/dist/daemon/sessions.d.ts.map +1 -0
  20. package/dist/daemon/sessions.js +190 -0
  21. package/dist/daemon/sessions.js.map +1 -0
  22. package/dist/daemon/socket.d.ts +82 -0
  23. package/dist/daemon/socket.d.ts.map +1 -0
  24. package/dist/daemon/socket.js +341 -0
  25. package/dist/daemon/socket.js.map +1 -0
  26. package/dist/daemon/tick.d.ts +9 -0
  27. package/dist/daemon/tick.d.ts.map +1 -0
  28. package/dist/daemon/tick.js +18 -0
  29. package/dist/daemon/tick.js.map +1 -0
  30. package/dist/evaluation/admissible.d.ts +2 -0
  31. package/dist/evaluation/admissible.d.ts.map +1 -0
  32. package/dist/evaluation/admissible.js +50 -0
  33. package/dist/evaluation/admissible.js.map +1 -0
  34. package/dist/evaluation/evaluator.d.ts +14 -0
  35. package/dist/evaluation/evaluator.d.ts.map +1 -0
  36. package/dist/evaluation/evaluator.js +34 -0
  37. package/dist/evaluation/evaluator.js.map +1 -0
  38. package/dist/evaluation/loop-limit.d.ts +4 -0
  39. package/dist/evaluation/loop-limit.d.ts.map +1 -0
  40. package/dist/evaluation/loop-limit.js +9 -0
  41. package/dist/evaluation/loop-limit.js.map +1 -0
  42. package/dist/evaluation/schema.d.ts +4 -0
  43. package/dist/evaluation/schema.d.ts.map +1 -0
  44. package/dist/evaluation/schema.js +92 -0
  45. package/dist/evaluation/schema.js.map +1 -0
  46. package/dist/execution/advance.d.ts +18 -0
  47. package/dist/execution/advance.d.ts.map +1 -0
  48. package/dist/execution/advance.js +57 -0
  49. package/dist/execution/advance.js.map +1 -0
  50. package/dist/execution/agent-node.d.ts +23 -0
  51. package/dist/execution/agent-node.d.ts.map +1 -0
  52. package/dist/execution/agent-node.js +512 -0
  53. package/dist/execution/agent-node.js.map +1 -0
  54. package/dist/execution/duration.d.ts +2 -0
  55. package/dist/execution/duration.d.ts.map +1 -0
  56. package/dist/execution/duration.js +15 -0
  57. package/dist/execution/duration.js.map +1 -0
  58. package/dist/execution/ir.d.ts +3 -0
  59. package/dist/execution/ir.d.ts.map +1 -0
  60. package/dist/execution/ir.js +46 -0
  61. package/dist/execution/ir.js.map +1 -0
  62. package/dist/execution/scheduler.d.ts +59 -0
  63. package/dist/execution/scheduler.d.ts.map +1 -0
  64. package/dist/execution/scheduler.js +306 -0
  65. package/dist/execution/scheduler.js.map +1 -0
  66. package/dist/execution/task-executor.d.ts +14 -0
  67. package/dist/execution/task-executor.d.ts.map +1 -0
  68. package/dist/execution/task-executor.js +186 -0
  69. package/dist/execution/task-executor.js.map +1 -0
  70. package/dist/hooks/config.d.ts +32 -0
  71. package/dist/hooks/config.d.ts.map +1 -0
  72. package/dist/hooks/config.js +112 -0
  73. package/dist/hooks/config.js.map +1 -0
  74. package/dist/hooks/context.d.ts +50 -0
  75. package/dist/hooks/context.d.ts.map +1 -0
  76. package/dist/hooks/context.js +116 -0
  77. package/dist/hooks/context.js.map +1 -0
  78. package/dist/hooks/events.d.ts +22 -0
  79. package/dist/hooks/events.d.ts.map +1 -0
  80. package/dist/hooks/events.js +41 -0
  81. package/dist/hooks/events.js.map +1 -0
  82. package/dist/hooks/journal.d.ts +21 -19
  83. package/dist/hooks/journal.d.ts.map +1 -1
  84. package/dist/hooks/journal.js +1 -48
  85. package/dist/hooks/journal.js.map +1 -1
  86. package/dist/hooks/loader.d.ts +33 -39
  87. package/dist/hooks/loader.d.ts.map +1 -1
  88. package/dist/hooks/loader.js +79 -95
  89. package/dist/hooks/loader.js.map +1 -1
  90. package/dist/hooks/runner.d.ts +14 -41
  91. package/dist/hooks/runner.d.ts.map +1 -1
  92. package/dist/hooks/runner.js +177 -145
  93. package/dist/hooks/runner.js.map +1 -1
  94. package/dist/index.d.ts +13 -28
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +13 -33
  97. package/dist/index.js.map +1 -1
  98. package/dist/runs/advance-runtime.d.ts +50 -0
  99. package/dist/runs/advance-runtime.d.ts.map +1 -0
  100. package/dist/runs/advance-runtime.js +82 -0
  101. package/dist/runs/advance-runtime.js.map +1 -0
  102. package/dist/runs/use-cases.d.ts +111 -0
  103. package/dist/runs/use-cases.d.ts.map +1 -0
  104. package/dist/runs/use-cases.js +539 -0
  105. package/dist/runs/use-cases.js.map +1 -0
  106. package/dist/scheduler/advance.d.ts +65 -0
  107. package/dist/scheduler/advance.d.ts.map +1 -0
  108. package/dist/scheduler/advance.js +435 -0
  109. package/dist/scheduler/advance.js.map +1 -0
  110. package/dist/scheduler/control.d.ts +49 -0
  111. package/dist/scheduler/control.d.ts.map +1 -0
  112. package/dist/scheduler/control.js +212 -0
  113. package/dist/scheduler/control.js.map +1 -0
  114. package/dist/scheduler/event-codec.d.ts +4 -0
  115. package/dist/scheduler/event-codec.d.ts.map +1 -0
  116. package/dist/scheduler/event-codec.js +57 -0
  117. package/dist/scheduler/event-codec.js.map +1 -0
  118. package/dist/scheduler/events.d.ts +193 -0
  119. package/dist/scheduler/events.d.ts.map +1 -0
  120. package/dist/scheduler/events.js +13 -0
  121. package/dist/scheduler/events.js.map +1 -0
  122. package/dist/scheduler/fork-seed.d.ts +38 -0
  123. package/dist/scheduler/fork-seed.d.ts.map +1 -0
  124. package/dist/scheduler/fork-seed.js +590 -0
  125. package/dist/scheduler/fork-seed.js.map +1 -0
  126. package/dist/scheduler/identity.d.ts +8 -0
  127. package/dist/scheduler/identity.d.ts.map +1 -0
  128. package/dist/scheduler/identity.js +49 -0
  129. package/dist/scheduler/identity.js.map +1 -0
  130. package/dist/scheduler/ir-walk.d.ts +3 -0
  131. package/dist/scheduler/ir-walk.d.ts.map +1 -0
  132. package/dist/scheduler/ir-walk.js +25 -0
  133. package/dist/scheduler/ir-walk.js.map +1 -0
  134. package/dist/scheduler/limiter.d.ts +7 -0
  135. package/dist/scheduler/limiter.d.ts.map +1 -0
  136. package/dist/scheduler/limiter.js +10 -0
  137. package/dist/scheduler/limiter.js.map +1 -0
  138. package/dist/scheduler/materialize.d.ts +7 -0
  139. package/dist/scheduler/materialize.d.ts.map +1 -0
  140. package/dist/scheduler/materialize.js +756 -0
  141. package/dist/scheduler/materialize.js.map +1 -0
  142. package/dist/scheduler/membership.d.ts +12 -0
  143. package/dist/scheduler/membership.d.ts.map +1 -0
  144. package/dist/scheduler/membership.js +74 -0
  145. package/dist/scheduler/membership.js.map +1 -0
  146. package/dist/scheduler/node-executor.d.ts +15 -0
  147. package/dist/scheduler/node-executor.d.ts.map +1 -0
  148. package/dist/scheduler/node-executor.js +69 -0
  149. package/dist/scheduler/node-executor.js.map +1 -0
  150. package/dist/scheduler/runtime-runner.d.ts +44 -0
  151. package/dist/scheduler/runtime-runner.d.ts.map +1 -0
  152. package/dist/scheduler/runtime-runner.js +155 -0
  153. package/dist/scheduler/runtime-runner.js.map +1 -0
  154. package/dist/scheduler/scope.d.ts +6 -0
  155. package/dist/scheduler/scope.d.ts.map +1 -0
  156. package/dist/scheduler/scope.js +56 -0
  157. package/dist/scheduler/scope.js.map +1 -0
  158. package/dist/scheduler/store-port.d.ts +211 -0
  159. package/dist/scheduler/store-port.d.ts.map +1 -0
  160. package/dist/scheduler/store-port.js +28 -0
  161. package/dist/scheduler/store-port.js.map +1 -0
  162. package/dist/scheduler/transitions.d.ts +89 -0
  163. package/dist/scheduler/transitions.d.ts.map +1 -0
  164. package/dist/scheduler/transitions.js +967 -0
  165. package/dist/scheduler/transitions.js.map +1 -0
  166. package/dist/scheduler/types.d.ts +146 -0
  167. package/dist/scheduler/types.d.ts.map +1 -0
  168. package/dist/{executors → scheduler}/types.js.map +1 -1
  169. package/dist/store/store.d.ts +390 -0
  170. package/dist/store/store.d.ts.map +1 -0
  171. package/dist/store/store.js +3053 -0
  172. package/dist/store/store.js.map +1 -0
  173. package/dist/visualization/overlay.d.ts +86 -0
  174. package/dist/visualization/overlay.d.ts.map +1 -0
  175. package/dist/visualization/overlay.js +161 -0
  176. package/dist/visualization/overlay.js.map +1 -0
  177. package/package.json +19 -37
  178. package/README.md +0 -7
  179. package/dist/agent-telemetry.d.ts +0 -56
  180. package/dist/agent-telemetry.d.ts.map +0 -1
  181. package/dist/agent-telemetry.js +0 -304
  182. package/dist/agent-telemetry.js.map +0 -1
  183. package/dist/artifacts.d.ts +0 -45
  184. package/dist/artifacts.d.ts.map +0 -1
  185. package/dist/artifacts.js +0 -163
  186. package/dist/artifacts.js.map +0 -1
  187. package/dist/attempt-artifacts.d.ts +0 -35
  188. package/dist/attempt-artifacts.d.ts.map +0 -1
  189. package/dist/attempt-artifacts.js +0 -90
  190. package/dist/attempt-artifacts.js.map +0 -1
  191. package/dist/client.d.ts +0 -82
  192. package/dist/client.d.ts.map +0 -1
  193. package/dist/client.js +0 -200
  194. package/dist/client.js.map +0 -1
  195. package/dist/evaluator.d.ts +0 -36
  196. package/dist/evaluator.d.ts.map +0 -1
  197. package/dist/evaluator.js +0 -101
  198. package/dist/evaluator.js.map +0 -1
  199. package/dist/executors/agent.d.ts +0 -101
  200. package/dist/executors/agent.d.ts.map +0 -1
  201. package/dist/executors/agent.js +0 -508
  202. package/dist/executors/agent.js.map +0 -1
  203. package/dist/executors/mock-program.d.ts +0 -26
  204. package/dist/executors/mock-program.d.ts.map +0 -1
  205. package/dist/executors/mock-program.js +0 -100
  206. package/dist/executors/mock-program.js.map +0 -1
  207. package/dist/executors/output-preview.d.ts +0 -2
  208. package/dist/executors/output-preview.d.ts.map +0 -1
  209. package/dist/executors/output-preview.js +0 -20
  210. package/dist/executors/output-preview.js.map +0 -1
  211. package/dist/executors/program.d.ts +0 -30
  212. package/dist/executors/program.d.ts.map +0 -1
  213. package/dist/executors/program.js +0 -230
  214. package/dist/executors/program.js.map +0 -1
  215. package/dist/executors/types.d.ts +0 -32
  216. package/dist/executors/types.d.ts.map +0 -1
  217. package/dist/fork.d.ts +0 -74
  218. package/dist/fork.d.ts.map +0 -1
  219. package/dist/fork.js +0 -278
  220. package/dist/fork.js.map +0 -1
  221. package/dist/hooks/payload.d.ts +0 -17
  222. package/dist/hooks/payload.d.ts.map +0 -1
  223. package/dist/hooks/payload.js +0 -45
  224. package/dist/hooks/payload.js.map +0 -1
  225. package/dist/interpreter.d.ts +0 -168
  226. package/dist/interpreter.d.ts.map +0 -1
  227. package/dist/interpreter.js +0 -1747
  228. package/dist/interpreter.js.map +0 -1
  229. package/dist/keys.d.ts +0 -77
  230. package/dist/keys.d.ts.map +0 -1
  231. package/dist/keys.js +0 -375
  232. package/dist/keys.js.map +0 -1
  233. package/dist/run-control.d.ts +0 -45
  234. package/dist/run-control.d.ts.map +0 -1
  235. package/dist/run-control.js +0 -255
  236. package/dist/run-control.js.map +0 -1
  237. package/dist/run-id.d.ts +0 -3
  238. package/dist/run-id.d.ts.map +0 -1
  239. package/dist/run-id.js +0 -10
  240. package/dist/run-id.js.map +0 -1
  241. package/dist/state-machine.d.ts +0 -31
  242. package/dist/state-machine.d.ts.map +0 -1
  243. package/dist/state-machine.js +0 -102
  244. package/dist/state-machine.js.map +0 -1
  245. package/dist/store.d.ts +0 -92
  246. package/dist/store.d.ts.map +0 -1
  247. package/dist/store.js +0 -420
  248. package/dist/store.js.map +0 -1
  249. package/dist/supervisor-app.d.ts +0 -27
  250. package/dist/supervisor-app.d.ts.map +0 -1
  251. package/dist/supervisor-app.js +0 -694
  252. package/dist/supervisor-app.js.map +0 -1
  253. package/dist/supervisor-discovery.d.ts +0 -18
  254. package/dist/supervisor-discovery.d.ts.map +0 -1
  255. package/dist/supervisor-discovery.js +0 -180
  256. package/dist/supervisor-discovery.js.map +0 -1
  257. package/dist/supervisor-entry.d.ts +0 -11
  258. package/dist/supervisor-entry.d.ts.map +0 -1
  259. package/dist/supervisor-entry.js +0 -50
  260. package/dist/supervisor-entry.js.map +0 -1
  261. package/dist/supervisor-lock.d.ts +0 -26
  262. package/dist/supervisor-lock.d.ts.map +0 -1
  263. package/dist/supervisor-lock.js +0 -49
  264. package/dist/supervisor-lock.js.map +0 -1
  265. package/dist/supervisor-runner.d.ts +0 -11
  266. package/dist/supervisor-runner.d.ts.map +0 -1
  267. package/dist/supervisor-runner.js +0 -128
  268. package/dist/supervisor-runner.js.map +0 -1
  269. package/dist/types.d.ts +0 -375
  270. package/dist/types.d.ts.map +0 -1
  271. package/dist/types.js +0 -7
  272. package/dist/types.js.map +0 -1
  273. package/dist/validate-input.d.ts +0 -27
  274. package/dist/validate-input.d.ts.map +0 -1
  275. package/dist/validate-input.js +0 -56
  276. package/dist/validate-input.js.map +0 -1
  277. package/dist/validate-signal.d.ts +0 -14
  278. package/dist/validate-signal.d.ts.map +0 -1
  279. package/dist/validate-signal.js +0 -31
  280. package/dist/validate-signal.js.map +0 -1
  281. package/dist/workflow-context.d.ts +0 -4
  282. package/dist/workflow-context.d.ts.map +0 -1
  283. package/dist/workflow-context.js +0 -11
  284. package/dist/workflow-context.js.map +0 -1
  285. package/dist/workflow-outputs.d.ts +0 -9
  286. package/dist/workflow-outputs.d.ts.map +0 -1
  287. package/dist/workflow-outputs.js +0 -60
  288. package/dist/workflow-outputs.js.map +0 -1
  289. /package/dist/{executors → scheduler}/types.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"attempt-artifacts.d.ts","sourceRoot":"","sources":["../src/attempt-artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,0BAA0B;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,6BAA6B;IAC5C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,uBAAuB;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAA1C,YAA6B,aAAa,EAAE,aAAa,EAAI;IAE7D,iBAAiB,CACf,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAO,GACtC,0BAA0B,CAW5B;IAED,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAE7F;IAED,oBAAoB,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,0BAA0B,GAClC,6BAA6B,CAe/B;IAED,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,qBAAqB,GAAG,MAAM,CAO/G;IAED,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAI9F;IAED,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,CAUnE;IAED,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,kBAAkB;CAG3B"}
@@ -1,90 +0,0 @@
1
- /**
2
- * Owns runtime artifact naming and lifecycle rules for executable node attempts.
3
- */
4
- export class AttemptArtifactRecorder {
5
- artifactStore;
6
- constructor(artifactStore) {
7
- this.artifactStore = artifactStore;
8
- }
9
- startAgentAttempt(runId, nodeKey, attemptNo, prompt, options = {}) {
10
- const prefix = this.agentAttemptPrefix(attemptNo);
11
- const promptRef = this.artifactStore.write(runId, nodeKey, `${prefix}.prompt.md`, prompt);
12
- const rawAcpDebugRef = options.rawAcpDebug
13
- ? this.artifactStore.create(runId, nodeKey, `${prefix}.acp-debug.jsonl`).uri
14
- : undefined;
15
- return {
16
- artifactRefs: rawAcpDebugRef ? [promptRef.uri, rawAcpDebugRef] : [promptRef.uri],
17
- promptRef: promptRef.uri,
18
- rawAcpDebugRef
19
- };
20
- }
21
- appendAgentRawAcpDebug(runId, nodeKey, attemptNo, chunk) {
22
- this.artifactStore.append(runId, nodeKey, `${this.agentAttemptPrefix(attemptNo)}.acp-debug.jsonl`, chunk);
23
- }
24
- finalizeAgentAttempt(runId, nodeKey, attemptNo, content) {
25
- const prefix = this.agentAttemptPrefix(attemptNo);
26
- const refs = [];
27
- let responseRef;
28
- if (content.responseText !== undefined) {
29
- responseRef = this.artifactStore.write(runId, nodeKey, `${prefix}.response.md`, content.responseText).uri;
30
- refs.push(responseRef);
31
- }
32
- const stderr = this.mergeStderrDiagnostics(content.stderr, content.diagnostics ?? []);
33
- let stderrRef;
34
- if (stderr !== undefined) {
35
- stderrRef = this.artifactStore.write(runId, nodeKey, `${prefix}.stderr.log`, stderr).uri;
36
- refs.push(stderrRef);
37
- }
38
- return { artifactRefs: refs, responseRef, stderrRef };
39
- }
40
- writeAgentTelemetry(runId, nodeKey, attemptNo, telemetry) {
41
- return this.artifactStore.write(runId, nodeKey, `${this.agentAttemptPrefix(attemptNo)}.telemetry.json`, `${JSON.stringify(telemetry, null, 2)}\n`).uri;
42
- }
43
- writeProgramArtifacts(runId, nodeKey, stdout, stderr) {
44
- const out = this.artifactStore.write(runId, nodeKey, "stdout.log", stdout);
45
- const err = this.artifactStore.write(runId, nodeKey, "stderr.log", stderr);
46
- return [out.uri, err.uri];
47
- }
48
- mergeAttemptRefs(target, refs) {
49
- if (!refs)
50
- return;
51
- const seen = new Set(target);
52
- for (const ref of refs) {
53
- if (!seen.has(ref)) {
54
- target.push(ref);
55
- seen.add(ref);
56
- }
57
- }
58
- target.sort(compareAttemptArtifactRefs);
59
- }
60
- mergeStderrDiagnostics(stderr, diagnostics) {
61
- if (diagnostics.length === 0)
62
- return stderr;
63
- const diagnosticText = diagnostics.map((line) => `[acpus] ${line}`).join("\n");
64
- return stderr && stderr.length > 0 ? `${stderr}\n${diagnosticText}` : diagnosticText;
65
- }
66
- agentAttemptPrefix(attemptNo) {
67
- return `attempt-${String(Math.max(0, attemptNo)).padStart(3, "0")}`;
68
- }
69
- }
70
- function compareAttemptArtifactRefs(a, b) {
71
- const left = attemptArtifactSortKey(a);
72
- const right = attemptArtifactSortKey(b);
73
- if (!left || !right)
74
- return 0;
75
- return left.attempt - right.attempt || left.kind - right.kind;
76
- }
77
- function attemptArtifactSortKey(ref) {
78
- const match = /attempt-(\d+)\.(prompt\.md|response\.md|telemetry\.json|stderr\.log|acp-debug\.jsonl)$/.exec(ref);
79
- if (!match)
80
- return undefined;
81
- const kindOrder = {
82
- "prompt.md": 0,
83
- "response.md": 1,
84
- "telemetry.json": 2,
85
- "stderr.log": 3,
86
- "acp-debug.jsonl": 4
87
- };
88
- return { attempt: Number(match[1]), kind: kindOrder[match[2]] ?? 99 };
89
- }
90
- //# sourceMappingURL=attempt-artifacts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attempt-artifacts.js","sourceRoot":"","sources":["../src/attempt-artifacts.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts DELETED
@@ -1,82 +0,0 @@
1
- /**
2
- * RunSupervisorClient — thin HTTP client for the acpus Run Supervisor.
3
- *
4
- * Lives in @acpus/runtime so both the CLI and the TUI can share one client
5
- * without a package cycle.
6
- *
7
- * Node keys are passed as ?key= query parameters since they contain "/"
8
- * characters that are incompatible with URL path segments.
9
- */
10
- import type { AcpusIr, AgentOverrideWarning, AgentOverrides } from "@acpus/core";
11
- import type { RunCleanResult, RunState, NodeExecutionState, RunSummary, ReplayResult, SupervisorHealth } from "./types.js";
12
- import type { ForkPlan } from "./fork.js";
13
- export declare class RunSupervisorClient {
14
- readonly endpoint: string;
15
- /** Client identity for lease tracking on the supervisor. */
16
- readonly clientId: string;
17
- /** When set, includes x-acpus-client-kind header to pin the supervisor alive. */
18
- clientKind?: "follow" | "visualize";
19
- constructor(baseUrl: string);
20
- private headers;
21
- health(): Promise<SupervisorHealth>;
22
- startRun(spec: string, input?: Record<string, unknown>, sourcePath?: string, workflowRef?: string, agentOverrides?: AgentOverrides, skipHooks?: boolean): Promise<RunState>;
23
- listRuns(): Promise<RunSummary[]>;
24
- cleanRuns(options?: {
25
- dryRun?: boolean;
26
- }): Promise<RunCleanResult>;
27
- getRun(runId: string): Promise<RunState>;
28
- getIr(runId: string): Promise<AcpusIr>;
29
- getInput(runId: string): Promise<Record<string, unknown>>;
30
- /** Resolve an artifact:// URI to its absolute filesystem path on the supervisor host. */
31
- getArtifactPath(runId: string, uri: string): Promise<string>;
32
- getNodeStates(runId: string): Promise<NodeExecutionState[]>;
33
- getNode(runId: string, nodeKey: string): Promise<NodeExecutionState>;
34
- retryNode(runId: string, nodeKey: string): Promise<NodeExecutionState>;
35
- /**
36
- * Deliver an external decision payload to a Signal Node that is currently
37
- * `awaiting`. Node-level only. The payload object is sent as the request body
38
- * directly. On a non-2xx response the supervisor's error message (e.g. 409
39
- * "not awaiting", 422 schema mismatch) is surfaced.
40
- */
41
- signalNode(runId: string, nodeKey: string, payload: Record<string, unknown>): Promise<NodeExecutionState>;
42
- pauseRun(runId: string): Promise<RunState>;
43
- resumeRun(runId: string): Promise<RunState>;
44
- cancelRun(runId: string): Promise<RunState>;
45
- retryRun(runId: string): Promise<RunState>;
46
- getOutput(runId: string): Promise<{
47
- status: string;
48
- output: Record<string, unknown>;
49
- }>;
50
- replay(runId: string): Promise<ReplayResult>;
51
- /**
52
- * Fork a terminal source Run into a new Run. Pass `dryRun: true` to receive
53
- * the inheritance plan without creating a Run. Fork-specific rejections
54
- * (non-terminal source, missing checkpoint index, compilation failure, plan
55
- * rejection) throw a {@link ForkRejectedError} so callers can map them to a
56
- * dedicated exit code.
57
- */
58
- forkRun(sourceRunId: string, spec: string, options?: {
59
- sourcePath?: string;
60
- workflowRef?: string;
61
- input?: Record<string, unknown>;
62
- overrideOriginNodeKey?: string;
63
- dryRun?: boolean;
64
- agentOverrides?: AgentOverrides;
65
- }): Promise<{
66
- run?: RunState;
67
- plan: ForkPlan;
68
- dryRun?: boolean;
69
- agentOverrides?: AgentOverrides;
70
- submissionWarnings?: AgentOverrideWarning[];
71
- }>;
72
- private controlRun;
73
- }
74
- /**
75
- * Thrown by {@link RunSupervisorClient.forkRun} when the supervisor responds
76
- * with `kind: "fork-rejected"`. CLI callers map this to a dedicated exit code
77
- * to distinguish fork-rejection from generic runtime failures.
78
- */
79
- export declare class ForkRejectedError extends Error {
80
- constructor(message: string);
81
- }
82
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js DELETED
@@ -1,200 +0,0 @@
1
- /**
2
- * RunSupervisorClient — thin HTTP client for the acpus Run Supervisor.
3
- *
4
- * Lives in @acpus/runtime so both the CLI and the TUI can share one client
5
- * without a package cycle.
6
- *
7
- * Node keys are passed as ?key= query parameters since they contain "/"
8
- * characters that are incompatible with URL path segments.
9
- */
10
- import { randomUUID } from "node:crypto";
11
- export class RunSupervisorClient {
12
- endpoint;
13
- /** Client identity for lease tracking on the supervisor. */
14
- clientId;
15
- /** When set, includes x-acpus-client-kind header to pin the supervisor alive. */
16
- clientKind;
17
- constructor(baseUrl) {
18
- this.endpoint = baseUrl;
19
- this.clientId = randomUUID();
20
- }
21
- headers() {
22
- const h = {
23
- "x-acpus-client-id": this.clientId
24
- };
25
- if (this.clientKind) {
26
- h["x-acpus-client-kind"] = this.clientKind;
27
- }
28
- return h;
29
- }
30
- async health() {
31
- const res = await fetch(`${this.endpoint}/health`, { headers: this.headers() });
32
- if (!res.ok)
33
- throw new Error(`Health check failed: ${res.status}`);
34
- return res.json();
35
- }
36
- async startRun(spec, input, sourcePath, workflowRef, agentOverrides, skipHooks) {
37
- const res = await fetch(`${this.endpoint}/runs`, {
38
- method: "POST",
39
- headers: { "Content-Type": "application/json", ...this.headers() },
40
- body: JSON.stringify({ spec, input, sourcePath, workflowRef, agentOverrides, skipHooks })
41
- });
42
- if (!res.ok) {
43
- const body = await res.json().catch(() => ({}));
44
- throw new Error(`Failed to start run: ${res.status} ${JSON.stringify(body)}`);
45
- }
46
- return res.json();
47
- }
48
- async listRuns() {
49
- const res = await fetch(`${this.endpoint}/runs`, { headers: this.headers() });
50
- if (!res.ok)
51
- throw new Error(`Failed to list runs: ${res.status}`);
52
- return res.json();
53
- }
54
- async cleanRuns(options = {}) {
55
- const res = await fetch(`${this.endpoint}/runs/clean`, {
56
- method: "POST",
57
- headers: { "Content-Type": "application/json", ...this.headers() },
58
- body: JSON.stringify({ dryRun: Boolean(options.dryRun) })
59
- });
60
- if (!res.ok)
61
- throw new Error(`Failed to clean runs: ${res.status}`);
62
- return res.json();
63
- }
64
- async getRun(runId) {
65
- const res = await fetch(`${this.endpoint}/runs/${runId}`, { headers: this.headers() });
66
- if (!res.ok)
67
- throw new Error(`Run not found: ${runId}`);
68
- return res.json();
69
- }
70
- async getIr(runId) {
71
- const res = await fetch(`${this.endpoint}/runs/${runId}/ir`, { headers: this.headers() });
72
- if (!res.ok)
73
- throw new Error(`IR not found: ${runId}`);
74
- return res.json();
75
- }
76
- async getInput(runId) {
77
- const res = await fetch(`${this.endpoint}/runs/${runId}/input`, { headers: this.headers() });
78
- if (!res.ok)
79
- throw new Error(`Input not found: ${runId}`);
80
- const body = (await res.json());
81
- return body.input;
82
- }
83
- /** Resolve an artifact:// URI to its absolute filesystem path on the supervisor host. */
84
- async getArtifactPath(runId, uri) {
85
- const res = await fetch(`${this.endpoint}/runs/${runId}/artifact-path?uri=${encodeURIComponent(uri)}`, { headers: this.headers() });
86
- if (!res.ok)
87
- throw new Error(`Failed to resolve artifact path: ${res.status}`);
88
- const body = (await res.json());
89
- return body.absPath;
90
- }
91
- async getNodeStates(runId) {
92
- const res = await fetch(`${this.endpoint}/runs/${runId}/nodes`, { headers: this.headers() });
93
- if (!res.ok)
94
- throw new Error(`Failed to get node states: ${res.status}`);
95
- return res.json();
96
- }
97
- async getNode(runId, nodeKey) {
98
- const res = await fetch(`${this.endpoint}/runs/${runId}/node?key=${encodeURIComponent(nodeKey)}`, { headers: this.headers() });
99
- if (!res.ok)
100
- throw new Error(`Node not found: ${nodeKey}`);
101
- return res.json();
102
- }
103
- async retryNode(runId, nodeKey) {
104
- const res = await fetch(`${this.endpoint}/runs/${runId}/retry?key=${encodeURIComponent(nodeKey)}`, { method: "POST", headers: this.headers() });
105
- if (!res.ok) {
106
- const body = (await res.json().catch(() => ({})));
107
- throw new Error(body.error ?? `Failed to retry node: ${res.status}`);
108
- }
109
- return res.json();
110
- }
111
- /**
112
- * Deliver an external decision payload to a Signal Node that is currently
113
- * `awaiting`. Node-level only. The payload object is sent as the request body
114
- * directly. On a non-2xx response the supervisor's error message (e.g. 409
115
- * "not awaiting", 422 schema mismatch) is surfaced.
116
- */
117
- async signalNode(runId, nodeKey, payload) {
118
- const res = await fetch(`${this.endpoint}/runs/${runId}/signal?key=${encodeURIComponent(nodeKey)}`, {
119
- method: "POST",
120
- headers: { "Content-Type": "application/json", ...this.headers() },
121
- body: JSON.stringify(payload)
122
- });
123
- if (!res.ok) {
124
- const body = (await res.json().catch(() => ({})));
125
- throw new Error(body.error ?? `Failed to signal node: ${res.status}`);
126
- }
127
- return res.json();
128
- }
129
- // ─── Run-level controls ────────────────────────────────────────
130
- async pauseRun(runId) {
131
- return this.controlRun(runId, "pause");
132
- }
133
- async resumeRun(runId) {
134
- return this.controlRun(runId, "resume");
135
- }
136
- async cancelRun(runId) {
137
- return this.controlRun(runId, "cancel");
138
- }
139
- async retryRun(runId) {
140
- return this.controlRun(runId, "retry");
141
- }
142
- async getOutput(runId) {
143
- const res = await fetch(`${this.endpoint}/runs/${runId}/output`, { headers: this.headers() });
144
- if (!res.ok)
145
- throw new Error(`Failed to get output: ${res.status}`);
146
- return res.json();
147
- }
148
- async replay(runId) {
149
- const res = await fetch(`${this.endpoint}/runs/${runId}/replay`, { method: "POST", headers: this.headers() });
150
- if (!res.ok)
151
- throw new Error(`Failed to replay run: ${res.status}`);
152
- return res.json();
153
- }
154
- /**
155
- * Fork a terminal source Run into a new Run. Pass `dryRun: true` to receive
156
- * the inheritance plan without creating a Run. Fork-specific rejections
157
- * (non-terminal source, missing checkpoint index, compilation failure, plan
158
- * rejection) throw a {@link ForkRejectedError} so callers can map them to a
159
- * dedicated exit code.
160
- */
161
- async forkRun(sourceRunId, spec, options = {}) {
162
- const res = await fetch(`${this.endpoint}/runs/${sourceRunId}/fork`, {
163
- method: "POST",
164
- headers: { "Content-Type": "application/json", ...this.headers() },
165
- body: JSON.stringify({ spec, ...options })
166
- });
167
- if (!res.ok) {
168
- const body = (await res.json().catch(() => ({})));
169
- const message = body.error ?? `Failed to fork run: ${res.status}`;
170
- if (body.kind === "fork-rejected")
171
- throw new ForkRejectedError(message);
172
- throw new Error(message);
173
- }
174
- return res.json();
175
- }
176
- /**
177
- * Issue a Run-level control action. No ?key= parameter — the action applies
178
- * to the entire Run.
179
- */
180
- async controlRun(runId, action) {
181
- const res = await fetch(`${this.endpoint}/runs/${runId}/${action}`, { method: "POST", headers: this.headers() });
182
- if (!res.ok) {
183
- const body = (await res.json().catch(() => ({})));
184
- throw new Error(body.error ?? `Failed to ${action} run: ${res.status}`);
185
- }
186
- return res.json();
187
- }
188
- }
189
- /**
190
- * Thrown by {@link RunSupervisorClient.forkRun} when the supervisor responds
191
- * with `kind: "fork-rejected"`. CLI callers map this to a dedicated exit code
192
- * to distinguish fork-rejection from generic runtime failures.
193
- */
194
- export class ForkRejectedError extends Error {
195
- constructor(message) {
196
- super(message);
197
- this.name = "ForkRejectedError";
198
- }
199
- }
200
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1,36 +0,0 @@
1
- import type { ExpressionContext } from "./types.js";
2
- /**
3
- * Wraps @marcbachmann/cel-js to evaluate ${{ expr }} templates and raw CEL
4
- * expressions with the same Acpus CEL environment used by compiler lint.
5
- */
6
- export declare class ExpressionEvaluator {
7
- private readonly env;
8
- private readonly nowTimestamp;
9
- constructor(options?: {
10
- nowTimestamp?: string;
11
- });
12
- /**
13
- * The deterministic timestamp bound to now(). Exposed so callers can stamp
14
- * outputs against the workflow clock without reading wall-clock time.
15
- */
16
- getNow(): string;
17
- /**
18
- * Evaluate a ${{ expr }} template by finding all expression patterns,
19
- * evaluating each, and substituting the results.
20
- */
21
- evaluateTemplate(template: string, ctx: ExpressionContext): string;
22
- /**
23
- * Evaluate a raw CEL expression against the given context.
24
- */
25
- evaluateExpression(expr: string, ctx: ExpressionContext): unknown;
26
- /**
27
- * Evaluate a fanout `over` expression and validate the result is an array.
28
- */
29
- evaluateOverExpression(expr: string, ctx: ExpressionContext): unknown[];
30
- /**
31
- * Build the CEL variable bindings from the expression context.
32
- * Transforms loop → loop_ctx to match the toCelParseSource rewriting.
33
- */
34
- private buildBindings;
35
- }
36
- //# sourceMappingURL=evaluator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../src/evaluator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA6BpD;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC,YAAY,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,EAG9C;IAED;;;OAGG;IACH,MAAM,IAAI,MAAM,CAEf;IAED;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAKjE;IAED;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAIhE;IAED;;OAEG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,EAAE,CAMtE;IAED;;;OAGG;IACH,OAAO,CAAC,aAAa;CA2BtB"}
package/dist/evaluator.js DELETED
@@ -1,101 +0,0 @@
1
- import { createAcpusCelEnvironment, EXPRESSION_PATTERN, toCelParseSource } from "@acpus/core";
2
- function celInt(value) {
3
- return Number.isSafeInteger(value) ? BigInt(value) : value;
4
- }
5
- function bindLoop(loop) {
6
- if (!loop)
7
- return undefined;
8
- return { ...loop, iter: celInt(loop.iter), last: bindStepValue(loop.last) };
9
- }
10
- function bindSteps(steps) {
11
- return Object.fromEntries(Object.entries(steps).map(([id, value]) => [id, bindStepValue(value)]));
12
- }
13
- function bindStepValue(value) {
14
- if (Array.isArray(value))
15
- return value.map(bindStepValue);
16
- if (value instanceof Map)
17
- return value;
18
- if (value !== null && typeof value === "object") {
19
- const record = value;
20
- const bound = Object.fromEntries(Object.entries(record).map(([key, child]) => [key, bindStepValue(child)]));
21
- if ("output" in record && typeof record.exit_code === "number" && Number.isSafeInteger(record.exit_code)) {
22
- bound.exit_code = BigInt(record.exit_code);
23
- }
24
- return bound;
25
- }
26
- return value;
27
- }
28
- /**
29
- * Wraps @marcbachmann/cel-js to evaluate ${{ expr }} templates and raw CEL
30
- * expressions with the same Acpus CEL environment used by compiler lint.
31
- */
32
- export class ExpressionEvaluator {
33
- env;
34
- nowTimestamp;
35
- constructor(options) {
36
- this.nowTimestamp = options?.nowTimestamp ?? new Date().toISOString();
37
- this.env = createAcpusCelEnvironment({ unlistedVariablesAreDyn: true, nowTimestamp: this.nowTimestamp });
38
- }
39
- /**
40
- * The deterministic timestamp bound to now(). Exposed so callers can stamp
41
- * outputs against the workflow clock without reading wall-clock time.
42
- */
43
- getNow() {
44
- return this.nowTimestamp;
45
- }
46
- /**
47
- * Evaluate a ${{ expr }} template by finding all expression patterns,
48
- * evaluating each, and substituting the results.
49
- */
50
- evaluateTemplate(template, ctx) {
51
- return template.replace(EXPRESSION_PATTERN, (_match, expr) => {
52
- const result = this.evaluateExpression(expr.trim(), ctx);
53
- return String(result);
54
- });
55
- }
56
- /**
57
- * Evaluate a raw CEL expression against the given context.
58
- */
59
- evaluateExpression(expr, ctx) {
60
- const celSource = toCelParseSource(expr);
61
- const bindings = this.buildBindings(ctx);
62
- return this.env.evaluate(celSource, bindings);
63
- }
64
- /**
65
- * Evaluate a fanout `over` expression and validate the result is an array.
66
- */
67
- evaluateOverExpression(expr, ctx) {
68
- const result = this.evaluateExpression(expr, ctx);
69
- if (!Array.isArray(result)) {
70
- throw new Error(`fanout.over expression must evaluate to an array, got ${typeof result}: ${expr}`);
71
- }
72
- return result;
73
- }
74
- /**
75
- * Build the CEL variable bindings from the expression context.
76
- * Transforms loop → loop_ctx to match the toCelParseSource rewriting.
77
- */
78
- buildBindings(ctx) {
79
- const bindings = {
80
- input: ctx.input,
81
- steps: bindSteps(ctx.steps),
82
- workflow: ctx.workflow,
83
- run_id: ctx.run_id
84
- };
85
- if (ctx.loop !== undefined) {
86
- // toCelParseSource rewrites loop. → loop_ctx.
87
- bindings.loop_ctx = bindLoop(ctx.loop);
88
- }
89
- if (ctx.item !== undefined) {
90
- bindings.item = ctx.item;
91
- }
92
- if (ctx.item_id !== undefined) {
93
- bindings.item_id = ctx.item_id;
94
- }
95
- if (ctx.item_index !== undefined) {
96
- bindings.item_index = celInt(ctx.item_index);
97
- }
98
- return bindings;
99
- }
100
- }
101
- //# sourceMappingURL=evaluator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../src/evaluator.ts"],"names":[],"mappings":"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"}