@oni.bot/core 1.0.2 → 1.1.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 (293) hide show
  1. package/CHANGELOG.md +146 -146
  2. package/dist/agents/define-agent.d.ts.map +1 -1
  3. package/dist/agents/define-agent.js +7 -2
  4. package/dist/agents/define-agent.js.map +1 -1
  5. package/dist/checkpoint.d.ts.map +1 -1
  6. package/dist/checkpoint.js +7 -2
  7. package/dist/checkpoint.js.map +1 -1
  8. package/dist/checkpointers/postgres.d.ts.map +1 -1
  9. package/dist/checkpointers/postgres.js +45 -28
  10. package/dist/checkpointers/postgres.js.map +1 -1
  11. package/dist/circuit-breaker.d.ts +1 -0
  12. package/dist/circuit-breaker.d.ts.map +1 -1
  13. package/dist/circuit-breaker.js +13 -0
  14. package/dist/circuit-breaker.js.map +1 -1
  15. package/dist/cli/dev.d.ts.map +1 -1
  16. package/dist/cli/dev.js +0 -1
  17. package/dist/cli/dev.js.map +1 -1
  18. package/dist/cli/inspect.d.ts.map +1 -1
  19. package/dist/cli/inspect.js +4 -2
  20. package/dist/cli/inspect.js.map +1 -1
  21. package/dist/cli/run.d.ts.map +1 -1
  22. package/dist/cli/run.js +0 -1
  23. package/dist/cli/run.js.map +1 -1
  24. package/dist/config/loader.d.ts +1 -1
  25. package/dist/config/loader.js +12 -4
  26. package/dist/config/loader.js.map +1 -1
  27. package/dist/coordination/pubsub.d.ts +1 -0
  28. package/dist/coordination/pubsub.d.ts.map +1 -1
  29. package/dist/coordination/pubsub.js +31 -16
  30. package/dist/coordination/pubsub.js.map +1 -1
  31. package/dist/coordination/request-reply.d.ts +17 -2
  32. package/dist/coordination/request-reply.d.ts.map +1 -1
  33. package/dist/coordination/request-reply.js +56 -14
  34. package/dist/coordination/request-reply.js.map +1 -1
  35. package/dist/events/bus.d.ts +1 -0
  36. package/dist/events/bus.d.ts.map +1 -1
  37. package/dist/events/bus.js +17 -10
  38. package/dist/events/bus.js.map +1 -1
  39. package/dist/functional.d.ts.map +1 -1
  40. package/dist/functional.js +3 -0
  41. package/dist/functional.js.map +1 -1
  42. package/dist/graph.d.ts +11 -1
  43. package/dist/graph.d.ts.map +1 -1
  44. package/dist/graph.js +9 -4
  45. package/dist/graph.js.map +1 -1
  46. package/dist/guardrails/audit.d.ts +4 -1
  47. package/dist/guardrails/audit.d.ts.map +1 -1
  48. package/dist/guardrails/audit.js +18 -1
  49. package/dist/guardrails/audit.js.map +1 -1
  50. package/dist/harness/agent-loop.d.ts +1 -7
  51. package/dist/harness/agent-loop.d.ts.map +1 -1
  52. package/dist/harness/agent-loop.js +2 -523
  53. package/dist/harness/agent-loop.js.map +1 -1
  54. package/dist/harness/context-compactor.d.ts +1 -0
  55. package/dist/harness/context-compactor.d.ts.map +1 -1
  56. package/dist/harness/context-compactor.js +43 -1
  57. package/dist/harness/context-compactor.js.map +1 -1
  58. package/dist/harness/harness.d.ts +6 -0
  59. package/dist/harness/harness.d.ts.map +1 -1
  60. package/dist/harness/harness.js +32 -5
  61. package/dist/harness/harness.js.map +1 -1
  62. package/dist/harness/hooks-engine.d.ts.map +1 -1
  63. package/dist/harness/hooks-engine.js +12 -10
  64. package/dist/harness/hooks-engine.js.map +1 -1
  65. package/dist/harness/index.d.ts +3 -1
  66. package/dist/harness/index.d.ts.map +1 -1
  67. package/dist/harness/index.js +2 -0
  68. package/dist/harness/index.js.map +1 -1
  69. package/dist/harness/loop/hooks.d.ts +7 -0
  70. package/dist/harness/loop/hooks.d.ts.map +1 -0
  71. package/dist/harness/loop/hooks.js +46 -0
  72. package/dist/harness/loop/hooks.js.map +1 -0
  73. package/dist/harness/loop/index.d.ts +8 -0
  74. package/dist/harness/loop/index.d.ts.map +1 -0
  75. package/dist/harness/loop/index.js +257 -0
  76. package/dist/harness/loop/index.js.map +1 -0
  77. package/dist/harness/loop/inference.d.ts +19 -0
  78. package/dist/harness/loop/inference.d.ts.map +1 -0
  79. package/dist/harness/loop/inference.js +121 -0
  80. package/dist/harness/loop/inference.js.map +1 -0
  81. package/dist/harness/loop/memory.d.ts +22 -0
  82. package/dist/harness/loop/memory.d.ts.map +1 -0
  83. package/dist/harness/loop/memory.js +73 -0
  84. package/dist/harness/loop/memory.js.map +1 -0
  85. package/dist/harness/loop/safety.d.ts +8 -0
  86. package/dist/harness/loop/safety.d.ts.map +1 -0
  87. package/dist/harness/loop/safety.js +21 -0
  88. package/dist/harness/loop/safety.js.map +1 -0
  89. package/dist/harness/loop/tools.d.ts +24 -0
  90. package/dist/harness/loop/tools.d.ts.map +1 -0
  91. package/dist/harness/loop/tools.js +184 -0
  92. package/dist/harness/loop/tools.js.map +1 -0
  93. package/dist/harness/loop/types.d.ts +7 -0
  94. package/dist/harness/loop/types.d.ts.map +1 -0
  95. package/dist/harness/loop/types.js +9 -0
  96. package/dist/harness/loop/types.js.map +1 -0
  97. package/dist/harness/memory/fs-compat.d.ts +3 -0
  98. package/dist/harness/memory/fs-compat.d.ts.map +1 -0
  99. package/dist/harness/memory/fs-compat.js +26 -0
  100. package/dist/harness/memory/fs-compat.js.map +1 -0
  101. package/dist/harness/memory/index.d.ts +105 -0
  102. package/dist/harness/memory/index.d.ts.map +1 -0
  103. package/dist/harness/memory/index.js +491 -0
  104. package/dist/harness/memory/index.js.map +1 -0
  105. package/dist/harness/memory/prompter.d.ts +7 -0
  106. package/dist/harness/memory/prompter.d.ts.map +1 -0
  107. package/dist/harness/memory/prompter.js +24 -0
  108. package/dist/harness/memory/prompter.js.map +1 -0
  109. package/dist/harness/memory/ranker.d.ts +15 -0
  110. package/dist/harness/memory/ranker.d.ts.map +1 -0
  111. package/dist/harness/memory/ranker.js +72 -0
  112. package/dist/harness/memory/ranker.js.map +1 -0
  113. package/dist/harness/memory/scanner.d.ts +26 -0
  114. package/dist/harness/memory/scanner.d.ts.map +1 -0
  115. package/dist/harness/memory/scanner.js +187 -0
  116. package/dist/harness/memory/scanner.js.map +1 -0
  117. package/dist/harness/memory/types.d.ts +50 -0
  118. package/dist/harness/memory/types.d.ts.map +1 -0
  119. package/dist/harness/memory/types.js +7 -0
  120. package/dist/harness/memory/types.js.map +1 -0
  121. package/dist/harness/memory-loader.d.ts +3 -0
  122. package/dist/harness/memory-loader.d.ts.map +1 -0
  123. package/dist/harness/memory-loader.js +2 -0
  124. package/dist/harness/memory-loader.js.map +1 -0
  125. package/dist/harness/safety-gate.d.ts.map +1 -1
  126. package/dist/harness/safety-gate.js +47 -26
  127. package/dist/harness/safety-gate.js.map +1 -1
  128. package/dist/harness/skill-loader.d.ts +7 -0
  129. package/dist/harness/skill-loader.d.ts.map +1 -1
  130. package/dist/harness/skill-loader.js +24 -8
  131. package/dist/harness/skill-loader.js.map +1 -1
  132. package/dist/harness/todo-module.d.ts.map +1 -1
  133. package/dist/harness/todo-module.js +13 -6
  134. package/dist/harness/todo-module.js.map +1 -1
  135. package/dist/harness/types.d.ts +7 -0
  136. package/dist/harness/types.d.ts.map +1 -1
  137. package/dist/harness/types.js.map +1 -1
  138. package/dist/harness/validate-args.js +18 -3
  139. package/dist/harness/validate-args.js.map +1 -1
  140. package/dist/hitl/interrupt.d.ts +2 -2
  141. package/dist/hitl/interrupt.d.ts.map +1 -1
  142. package/dist/hitl/interrupt.js +8 -5
  143. package/dist/hitl/interrupt.js.map +1 -1
  144. package/dist/hitl/resume.d.ts +10 -0
  145. package/dist/hitl/resume.d.ts.map +1 -1
  146. package/dist/hitl/resume.js +31 -0
  147. package/dist/hitl/resume.js.map +1 -1
  148. package/dist/injected.d.ts.map +1 -1
  149. package/dist/injected.js.map +1 -1
  150. package/dist/inspect.d.ts.map +1 -1
  151. package/dist/inspect.js +28 -8
  152. package/dist/inspect.js.map +1 -1
  153. package/dist/lsp/client.d.ts +2 -0
  154. package/dist/lsp/client.d.ts.map +1 -1
  155. package/dist/lsp/client.js +62 -17
  156. package/dist/lsp/client.js.map +1 -1
  157. package/dist/lsp/index.d.ts.map +1 -1
  158. package/dist/lsp/index.js.map +1 -1
  159. package/dist/mcp/client.d.ts +2 -0
  160. package/dist/mcp/client.d.ts.map +1 -1
  161. package/dist/mcp/client.js +44 -13
  162. package/dist/mcp/client.js.map +1 -1
  163. package/dist/mcp/convert.js +1 -1
  164. package/dist/mcp/convert.js.map +1 -1
  165. package/dist/mcp/transport.d.ts +2 -0
  166. package/dist/mcp/transport.d.ts.map +1 -1
  167. package/dist/mcp/transport.js +33 -8
  168. package/dist/mcp/transport.js.map +1 -1
  169. package/dist/messages/index.d.ts.map +1 -1
  170. package/dist/messages/index.js +7 -1
  171. package/dist/messages/index.js.map +1 -1
  172. package/dist/models/anthropic.d.ts.map +1 -1
  173. package/dist/models/anthropic.js +25 -15
  174. package/dist/models/anthropic.js.map +1 -1
  175. package/dist/models/google.d.ts.map +1 -1
  176. package/dist/models/google.js +23 -7
  177. package/dist/models/google.js.map +1 -1
  178. package/dist/models/ollama.d.ts.map +1 -1
  179. package/dist/models/ollama.js +11 -1
  180. package/dist/models/ollama.js.map +1 -1
  181. package/dist/models/openai.d.ts.map +1 -1
  182. package/dist/models/openai.js +15 -3
  183. package/dist/models/openai.js.map +1 -1
  184. package/dist/models/openrouter.d.ts.map +1 -1
  185. package/dist/models/openrouter.js +14 -3
  186. package/dist/models/openrouter.js.map +1 -1
  187. package/dist/prebuilt/react-agent.d.ts.map +1 -1
  188. package/dist/prebuilt/react-agent.js +7 -2
  189. package/dist/prebuilt/react-agent.js.map +1 -1
  190. package/dist/pregel/checkpointing.d.ts +12 -0
  191. package/dist/pregel/checkpointing.d.ts.map +1 -0
  192. package/dist/pregel/checkpointing.js +60 -0
  193. package/dist/pregel/checkpointing.js.map +1 -0
  194. package/dist/pregel/execution.d.ts +7 -0
  195. package/dist/pregel/execution.d.ts.map +1 -0
  196. package/dist/pregel/execution.js +178 -0
  197. package/dist/pregel/execution.js.map +1 -0
  198. package/dist/pregel/index.d.ts +61 -0
  199. package/dist/pregel/index.d.ts.map +1 -0
  200. package/dist/pregel/index.js +154 -0
  201. package/dist/pregel/index.js.map +1 -0
  202. package/dist/pregel/interrupts.d.ts +3 -0
  203. package/dist/pregel/interrupts.d.ts.map +1 -0
  204. package/dist/pregel/interrupts.js +7 -0
  205. package/dist/pregel/interrupts.js.map +1 -0
  206. package/dist/pregel/state-helpers.d.ts +12 -0
  207. package/dist/pregel/state-helpers.d.ts.map +1 -0
  208. package/dist/pregel/state-helpers.js +71 -0
  209. package/dist/pregel/state-helpers.js.map +1 -0
  210. package/dist/pregel/streaming.d.ts +5 -0
  211. package/dist/pregel/streaming.d.ts.map +1 -0
  212. package/dist/pregel/streaming.js +462 -0
  213. package/dist/pregel/streaming.js.map +1 -0
  214. package/dist/pregel/types.d.ts +48 -0
  215. package/dist/pregel/types.d.ts.map +1 -0
  216. package/dist/pregel/types.js +5 -0
  217. package/dist/pregel/types.js.map +1 -0
  218. package/dist/pregel.d.ts +1 -63
  219. package/dist/pregel.d.ts.map +1 -1
  220. package/dist/pregel.js +2 -804
  221. package/dist/pregel.js.map +1 -1
  222. package/dist/retry.d.ts.map +1 -1
  223. package/dist/retry.js +7 -6
  224. package/dist/retry.js.map +1 -1
  225. package/dist/store/index.d.ts.map +1 -1
  226. package/dist/store/index.js +36 -9
  227. package/dist/store/index.js.map +1 -1
  228. package/dist/stream-events.d.ts.map +1 -1
  229. package/dist/stream-events.js +3 -9
  230. package/dist/stream-events.js.map +1 -1
  231. package/dist/swarm/agent-node.d.ts +11 -0
  232. package/dist/swarm/agent-node.d.ts.map +1 -0
  233. package/dist/swarm/agent-node.js +156 -0
  234. package/dist/swarm/agent-node.js.map +1 -0
  235. package/dist/swarm/compile-ext.d.ts +5 -0
  236. package/dist/swarm/compile-ext.d.ts.map +1 -0
  237. package/dist/swarm/compile-ext.js +126 -0
  238. package/dist/swarm/compile-ext.js.map +1 -0
  239. package/dist/swarm/config.d.ts +147 -0
  240. package/dist/swarm/config.d.ts.map +1 -0
  241. package/dist/swarm/config.js +17 -0
  242. package/dist/swarm/config.js.map +1 -0
  243. package/dist/swarm/factories.d.ts +37 -0
  244. package/dist/swarm/factories.d.ts.map +1 -0
  245. package/dist/swarm/factories.js +703 -0
  246. package/dist/swarm/factories.js.map +1 -0
  247. package/dist/swarm/graph.d.ts +16 -136
  248. package/dist/swarm/graph.d.ts.map +1 -1
  249. package/dist/swarm/graph.js +39 -897
  250. package/dist/swarm/graph.js.map +1 -1
  251. package/dist/swarm/index.d.ts +2 -1
  252. package/dist/swarm/index.d.ts.map +1 -1
  253. package/dist/swarm/index.js.map +1 -1
  254. package/dist/swarm/mailbox.d.ts.map +1 -1
  255. package/dist/swarm/mailbox.js +3 -1
  256. package/dist/swarm/mailbox.js.map +1 -1
  257. package/dist/swarm/mermaid.d.ts +2 -1
  258. package/dist/swarm/mermaid.d.ts.map +1 -1
  259. package/dist/swarm/mermaid.js +6 -3
  260. package/dist/swarm/mermaid.js.map +1 -1
  261. package/dist/swarm/pool.d.ts.map +1 -1
  262. package/dist/swarm/pool.js +18 -1
  263. package/dist/swarm/pool.js.map +1 -1
  264. package/dist/swarm/registry.d.ts.map +1 -1
  265. package/dist/swarm/registry.js +7 -0
  266. package/dist/swarm/registry.js.map +1 -1
  267. package/dist/swarm/scaling.d.ts +10 -1
  268. package/dist/swarm/scaling.d.ts.map +1 -1
  269. package/dist/swarm/scaling.js +85 -14
  270. package/dist/swarm/scaling.js.map +1 -1
  271. package/dist/swarm/snapshot.d.ts.map +1 -1
  272. package/dist/swarm/snapshot.js +10 -1
  273. package/dist/swarm/snapshot.js.map +1 -1
  274. package/dist/swarm/supervisor.js +20 -12
  275. package/dist/swarm/supervisor.js.map +1 -1
  276. package/dist/swarm/tracer.d.ts +3 -1
  277. package/dist/swarm/tracer.d.ts.map +1 -1
  278. package/dist/swarm/tracer.js +66 -15
  279. package/dist/swarm/tracer.js.map +1 -1
  280. package/dist/swarm/types.d.ts +1 -6
  281. package/dist/swarm/types.d.ts.map +1 -1
  282. package/dist/testing/index.d.ts +4 -4
  283. package/dist/testing/index.d.ts.map +1 -1
  284. package/dist/testing/index.js +3 -2
  285. package/dist/testing/index.js.map +1 -1
  286. package/dist/tools/define.d.ts +2 -1
  287. package/dist/tools/define.d.ts.map +1 -1
  288. package/dist/tools/define.js +3 -1
  289. package/dist/tools/define.js.map +1 -1
  290. package/dist/tools/types.d.ts.map +1 -1
  291. package/dist/types.d.ts +3 -1
  292. package/dist/types.d.ts.map +1 -1
  293. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/pregel/streaming.ts"],"names":[],"mappings":"AAQA,OAAO,EAEU,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAEpE,MAAM,aAAa,CAAC;AAQrB,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,YAAY,CAAC;AAY7D,wBAAuB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,EACrB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EACjB,MAAM,EAAE,SAAS,GAAG,SAAS,EAC7B,UAAU,GAAE,UAAU,GAAG,UAAU,EAAc,GAChD,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,iBAAiB,GAAG,kBAAkB,CAAC,CAyd5E"}
@@ -0,0 +1,462 @@
1
+ // ============================================================
2
+ // src/pregel/streaming.ts — Core superstep stream generator
3
+ // Note: Intentionally exceeds 300-line guideline. The superstep loop
4
+ // is a single indivisible concern (state → execute → checkpoint → route)
5
+ // that cannot be split without introducing shared mutable state between
6
+ // coroutines. All logic here belongs to one execution unit.
7
+ // ============================================================
8
+ import { START, END, Command, } from "../types.js";
9
+ import { RecursionLimitError, NodeNotFoundError, ONIInterrupt, NodeExecutionError } from "../errors.js";
10
+ import { NamespacedCheckpointer } from "../checkpointers/namespaced.js";
11
+ import { StreamWriterImpl, _withTokenHandler } from "../streaming.js";
12
+ import { NodeInterruptSignal, HITLInterruptException, } from "../hitl/index.js";
13
+ import { buildInitialState, applyUpdate, resetEphemeral, getNextNodes, checkDynamicInterrupt, evt } from "./state-helpers.js";
14
+ import { executeNode } from "./execution.js";
15
+ import { saveCheckpoint } from "./checkpointing.js";
16
+ export async function* streamSupersteps(ctx, input, config, streamMode = "updates") {
17
+ const threadId = config?.threadId ?? `oni-${Date.now()}`;
18
+ const recursionLimit = config?.recursionLimit ?? 25;
19
+ const agentId = config?.agentId;
20
+ const modes = new Set(Array.isArray(streamMode) ? streamMode : [streamMode]);
21
+ const isMultiMode = Array.isArray(streamMode);
22
+ const tag = (e, mode) => isMultiMode ? { ...e, mode } : e;
23
+ // Pre-compute mode flags — eliminates ~20 Set.has() lookups per superstep
24
+ const modeDebug = modes.has("debug");
25
+ const modeUpdates = modes.has("updates");
26
+ const modeValues = modes.has("values");
27
+ const modeCustom = modes.has("custom");
28
+ const modeMessages = modes.has("messages");
29
+ // Telemetry: graph-level span
30
+ const graphSpan = ctx.tracer.startGraphSpan("invoke", { threadId, agentId });
31
+ let step = 0; // declared before try so finally can read it for setAttribute
32
+ try {
33
+ // Load resume values from config (set by resume() call)
34
+ const resumeMap = config?.__resumeValues ?? {};
35
+ // Load or init state
36
+ let state;
37
+ let pendingNodes = [];
38
+ let pendingSends = [];
39
+ const effectiveCheckpointer = (ctx._perInvocationCheckpointer.get(threadId) ?? ctx.checkpointer);
40
+ if (effectiveCheckpointer && config?.threadId) {
41
+ const cp = await effectiveCheckpointer.get(threadId);
42
+ if (cp) {
43
+ state = applyUpdate(ctx.channels, cp.state, input);
44
+ step = cp.step;
45
+ pendingNodes = cp.nextNodes;
46
+ pendingSends = cp.pendingSends ?? [];
47
+ }
48
+ else {
49
+ state = applyUpdate(ctx.channels, buildInitialState(ctx.channels), input);
50
+ const init = getNextNodes(START, state, ctx._edgesBySource, config);
51
+ pendingNodes = init.nodes;
52
+ pendingSends = init.sends;
53
+ }
54
+ }
55
+ else {
56
+ state = applyUpdate(ctx.channels, buildInitialState(ctx.channels), input);
57
+ const init = getNextNodes(START, state, ctx._edgesBySource, config);
58
+ pendingNodes = init.nodes;
59
+ pendingSends = init.sends;
60
+ }
61
+ if (modeValues)
62
+ yield tag(evt("state_update", state, step, agentId), "values");
63
+ // ---- Main superstep loop ----
64
+ while (true) {
65
+ const nextNodes = [];
66
+ const nextSends = [];
67
+ state = resetEphemeral(state, ctx._ephemeralKeys, ctx.channels);
68
+ // Drain sends — group by target node for parallel fan-out execution
69
+ const sendGroups = new Map();
70
+ for (const send of pendingSends) {
71
+ if (!sendGroups.has(send.node))
72
+ sendGroups.set(send.node, []);
73
+ sendGroups.get(send.node).push(send);
74
+ if (modeDebug)
75
+ yield tag(evt("send", send, step, agentId, send.node), "debug");
76
+ }
77
+ // Recursion limit guard — must fire before any sends execute so that
78
+ // node side-effects are not applied to a step that will be discarded.
79
+ if (step >= recursionLimit)
80
+ throw new RecursionLimitError(recursionLimit);
81
+ // Execute fan-out sends (each Send → separate node execution with its own state)
82
+ if (sendGroups.size > 0) {
83
+ // Build promises directly — avoids spread+flatMap intermediate arrays
84
+ const sendPromises = [];
85
+ for (const [node, sends] of sendGroups) {
86
+ const nodeDef = ctx.nodes.get(node);
87
+ if (!nodeDef)
88
+ throw new NodeNotFoundError(node);
89
+ for (const send of sends) {
90
+ sendPromises.push((async () => {
91
+ const sendState = applyUpdate(ctx.channels, state, send.args);
92
+ const result = await executeNode(ctx, nodeDef, sendState, config, undefined, undefined, undefined, step, recursionLimit);
93
+ return { name: node, result };
94
+ })());
95
+ }
96
+ }
97
+ const sendResults = await Promise.all(sendPromises);
98
+ // Reduce all send results through channels
99
+ for (const { name, result } of sendResults) {
100
+ if (result instanceof Command) {
101
+ if (result.update)
102
+ state = applyUpdate(ctx.channels, state, result.update);
103
+ const gotos = result.goto
104
+ ? (Array.isArray(result.goto) ? result.goto : [result.goto])
105
+ : getNextNodes(name, state, ctx._edgesBySource, config).nodes;
106
+ nextNodes.push(...gotos);
107
+ }
108
+ else if (result && typeof result === "object") {
109
+ state = applyUpdate(ctx.channels, state, result);
110
+ const { nodes, sends } = getNextNodes(name, state, ctx._edgesBySource, config);
111
+ nextNodes.push(...nodes);
112
+ nextSends.push(...sends);
113
+ }
114
+ else {
115
+ const { nodes, sends } = getNextNodes(name, state, ctx._edgesBySource, config);
116
+ nextNodes.push(...nodes);
117
+ nextSends.push(...sends);
118
+ }
119
+ if (modeUpdates || modeDebug) {
120
+ const delta = result instanceof Command ? (result.update ?? {}) : (result ?? {});
121
+ if (modeUpdates)
122
+ yield tag(evt("node_end", delta, step, agentId, name), "updates");
123
+ if (modeDebug)
124
+ yield tag(evt("node_end", delta, step, agentId, name), "debug");
125
+ }
126
+ }
127
+ }
128
+ pendingSends = [];
129
+ // Filter executable nodes (non-END), excluding nodes already handled by sends
130
+ const executableNodes = pendingNodes.filter((n) => n !== END && !sendGroups.has(n));
131
+ if (executableNodes.length === 0 && sendGroups.size === 0)
132
+ break;
133
+ // Emit debug node_start events before parallel execution
134
+ if (modeDebug) {
135
+ for (const nodeName of executableNodes) {
136
+ const name = nodeName;
137
+ if (!ctx.nodes.has(name))
138
+ throw new NodeNotFoundError(name);
139
+ // Static interrupt BEFORE (check before emitting start)
140
+ if (ctx.interruptConfig.interruptBefore?.includes(name))
141
+ throw new ONIInterrupt(name, "before", state);
142
+ checkDynamicInterrupt(name, "before", state, config);
143
+ yield tag(evt("node_start", {}, step, agentId, name), "debug");
144
+ }
145
+ }
146
+ // Execute all active nodes in parallel
147
+ const allCustomEvents = [];
148
+ const allMessageEvents = [];
149
+ const allSubgraphEvents = [];
150
+ const nodeWriters = new Map();
151
+ // Track the first HITL interrupt across all parallel nodes. We use
152
+ // allSettled (not Promise.all) so that when one node raises an interrupt,
153
+ // all other in-flight nodes complete before the interrupt is surfaced.
154
+ // This prevents orphaned background executions that would apply side
155
+ // effects without being checkpointed, causing double-application on resume.
156
+ let pendingInterrupt = null;
157
+ const allSettledResults = await Promise.allSettled(executableNodes.map(async (nodeName) => {
158
+ const name = nodeName;
159
+ const nodeDef = ctx.nodes.get(name);
160
+ if (!nodeDef)
161
+ throw new NodeNotFoundError(name);
162
+ // Static interrupt BEFORE (non-debug mode)
163
+ if (!modeDebug) {
164
+ if (ctx.interruptConfig.interruptBefore?.includes(name))
165
+ throw new ONIInterrupt(name, "before", state);
166
+ checkDynamicInterrupt(name, "before", state, config);
167
+ }
168
+ // Create a StreamWriter for this node
169
+ const messageId = `msg-${threadId}-${step}-${name}`;
170
+ const customEvents = [];
171
+ const messageEvents = [];
172
+ const writerImpl = new StreamWriterImpl((e) => customEvents.push(e), (_token) => { }, (e) => messageEvents.push(e), name, step, messageId, agentId);
173
+ nodeWriters.set(name, writerImpl);
174
+ // Check if this node has a pending resume value
175
+ const resumeValue = resumeMap[name];
176
+ const hasResume = name in resumeMap;
177
+ // Emit agent.start lifecycle event
178
+ const nodeStartTime = Date.now();
179
+ ctx.eventBus.emit({ type: "agent.start", agent: name, timestamp: nodeStartTime, step });
180
+ // Telemetry: node-level span
181
+ const nodeSpan = ctx.tracer.startNodeSpan(name, { threadId, step, agentId });
182
+ let result;
183
+ let subParentUpdates = [];
184
+ try {
185
+ // Scope emitToken to this node's async context via ALS — parallel nodes each
186
+ // get their own handler so tokens are never dropped or misrouted.
187
+ result = await _withTokenHandler((token) => writerImpl.token(token), async () => {
188
+ if (nodeDef.subgraph) {
189
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
190
+ const childRunner = nodeDef.subgraph._runner; // SAFE: external boundary — subgraph._runner attached by graph.ts compile()
191
+ // Per-invocation key for concurrent-safe state isolation
192
+ const invocationKey = threadId;
193
+ if (childRunner) {
194
+ childRunner._subgraphRef.count++;
195
+ childRunner._perInvocationParentUpdates.set(invocationKey, []);
196
+ }
197
+ // Install a namespaced checkpointer per invocation instead of swapping a shared field
198
+ if (ctx.checkpointer && childRunner) {
199
+ childRunner._perInvocationCheckpointer.set(invocationKey,
200
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
201
+ new NamespacedCheckpointer(ctx.checkpointer, name));
202
+ }
203
+ // Stream the subgraph — always clean up per-invocation state, even on throw/interrupt
204
+ let subFinalState;
205
+ try {
206
+ const childStreamMode = ["debug", "values"];
207
+ for await (const subEvt of nodeDef.subgraph.stream(state, {
208
+ ...config,
209
+ // Pass the parent's effective threadId explicitly so the child's
210
+ // _perInvocationParentUpdates lookup at Command.PARENT time uses
211
+ // the same key that was registered in invocationKey above.
212
+ threadId: invocationKey,
213
+ parentRunId: config?.threadId,
214
+ streamMode: childStreamMode,
215
+ })) {
216
+ // Namespace-prefix the node name
217
+ allSubgraphEvents.push({
218
+ ...subEvt,
219
+ node: subEvt.node ? `${name}:${subEvt.node}` : name,
220
+ });
221
+ // Track the last state_update as the final subgraph state
222
+ if (subEvt.event === "state_update") {
223
+ subFinalState = subEvt.data;
224
+ }
225
+ }
226
+ if (childRunner) {
227
+ subParentUpdates = childRunner._perInvocationParentUpdates.get(invocationKey) ?? [];
228
+ }
229
+ }
230
+ finally {
231
+ // Clean up per-invocation state — decrement ref count, remove Maps entries
232
+ if (childRunner) {
233
+ childRunner._subgraphRef.count--;
234
+ childRunner._perInvocationParentUpdates.delete(invocationKey);
235
+ childRunner._perInvocationCheckpointer.delete(invocationKey);
236
+ }
237
+ }
238
+ return subFinalState ?? {};
239
+ }
240
+ else {
241
+ return executeNode(ctx, nodeDef, state, config, resumeValue, hasResume, writerImpl, step, recursionLimit);
242
+ }
243
+ });
244
+ }
245
+ catch (err) {
246
+ // Catch interrupt() signals thrown from inside nodes
247
+ if (err instanceof NodeInterruptSignal) {
248
+ const iv = {
249
+ value: err.value,
250
+ node: name,
251
+ resumeId: err.resumeId,
252
+ timestamp: Date.now(),
253
+ };
254
+ const exc = new HITLInterruptException(threadId, iv, state);
255
+ // Claim the first-interrupt slot SYNCHRONOUSLY before any await.
256
+ // Both concurrent interrupt handlers check this flag before yielding,
257
+ // so whichever catch block runs first exclusively owns the checkpoint
258
+ // save. Without this guard, the last saveCheckpoint wins and its
259
+ // nextNodes diverge from pendingInterrupt's node, corrupting resume().
260
+ const isFirstInterrupt = !pendingInterrupt;
261
+ if (isFirstInterrupt)
262
+ pendingInterrupt = exc;
263
+ // Only save checkpoint for the first interrupt — the stored nextNodes
264
+ // must match pendingInterrupt's node so resume() restores correctly.
265
+ if (isFirstInterrupt) {
266
+ await saveCheckpoint(ctx, threadId, step, state, [name], pendingSends, agentId, config?.metadata);
267
+ // Record HITL session if checkpointer exists
268
+ if (effectiveCheckpointer) {
269
+ const cp = await effectiveCheckpointer.get(threadId);
270
+ if (cp)
271
+ ctx.hitlStore.record(threadId, iv, cp);
272
+ }
273
+ }
274
+ throw exc; // marks this node's settled result as rejected
275
+ }
276
+ // Record to DLQ before re-throwing — use original cause if wrapped
277
+ if (ctx.dlq && err instanceof Error) {
278
+ const dlqErr = (err instanceof NodeExecutionError && err.cause instanceof Error) ? err.cause : err;
279
+ ctx.dlq.record(threadId, name, state, dlqErr, nodeDef.retry?.maxAttempts ?? 1);
280
+ }
281
+ // Telemetry: record error on node span — use original cause if wrapped
282
+ if (err instanceof Error) {
283
+ const telErr = (err instanceof NodeExecutionError && err.cause instanceof Error) ? err.cause : err;
284
+ ctx.tracer.recordError(nodeSpan, telErr);
285
+ }
286
+ ctx.tracer.endSpan(nodeSpan);
287
+ // Lifecycle event: emit error for non-interrupt failures
288
+ if (err instanceof Error) {
289
+ ctx.eventBus.emit({ type: "error", agent: name, error: err, timestamp: Date.now() });
290
+ }
291
+ throw err;
292
+ }
293
+ // Telemetry: end node span
294
+ ctx.tracer.endSpan(nodeSpan);
295
+ // Emit agent.end lifecycle event
296
+ ctx.eventBus.emit({ type: "agent.end", agent: name, timestamp: Date.now(), step, duration: Date.now() - nodeStartTime });
297
+ // Collect events for yielding after parallel execution
298
+ allCustomEvents.push(...customEvents);
299
+ allMessageEvents.push(...messageEvents);
300
+ return { name, result, subParentUpdates };
301
+ }));
302
+ // Extract results now that all nodes have settled.
303
+ // Re-throw the first non-interrupt error (DLQ/telemetry already handled
304
+ // inside each node's catch block), then surface any HITL interrupt.
305
+ const nodeResults = [];
306
+ for (const settled of allSettledResults) {
307
+ if (settled.status === "fulfilled") {
308
+ nodeResults.push(settled.value);
309
+ }
310
+ else if (!(settled.reason instanceof HITLInterruptException)) {
311
+ throw settled.reason; // first non-interrupt error
312
+ }
313
+ }
314
+ if (pendingInterrupt)
315
+ throw pendingInterrupt;
316
+ // Yield buffered subgraph events — filtered by parent's active modes
317
+ for (const subEvt of allSubgraphEvents) {
318
+ const e = subEvt;
319
+ if (modeDebug) {
320
+ yield tag(e, "debug");
321
+ }
322
+ else if (modeUpdates && (e.event === "node_end")) {
323
+ yield tag(e, "updates");
324
+ }
325
+ else if (modeValues && e.event === "state_update") {
326
+ yield tag(e, "values");
327
+ }
328
+ // Custom and message events from subgraphs are forwarded if those modes are active
329
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
330
+ if (modeCustom && e.event === "custom") { // SAFE: narrowing union event type that doesn't include "custom" in current TS discriminant
331
+ yield tag(e, "custom");
332
+ }
333
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
334
+ if (modeMessages && (e.event === "messages" || e.event === "messages/complete")) { // SAFE: narrowing union event type
335
+ yield tag(e, "messages");
336
+ }
337
+ }
338
+ // Apply results
339
+ const stepWrites = [];
340
+ for (const { name, result, subParentUpdates: parentUpdates } of nodeResults) {
341
+ if (result instanceof Command) {
342
+ if (result.graph === Command.PARENT) {
343
+ // Push update to parent — do NOT apply locally
344
+ if (!ctx._subgraphRef.count) {
345
+ throw new Error("Command.PARENT used but graph is not running as a subgraph");
346
+ }
347
+ if (result.update) {
348
+ const myParentUpdates = ctx._perInvocationParentUpdates.get(threadId);
349
+ if (myParentUpdates)
350
+ myParentUpdates.push(result.update);
351
+ }
352
+ // Still resolve next nodes normally
353
+ const { nodes, sends } = getNextNodes(name, state, ctx._edgesBySource, config);
354
+ nextNodes.push(...nodes);
355
+ nextSends.push(...sends);
356
+ }
357
+ else {
358
+ if (result.update) {
359
+ state = applyUpdate(ctx.channels, state, result.update);
360
+ if (Object.keys(result.update).length > 0) {
361
+ stepWrites.push({ nodeId: name, writes: result.update });
362
+ }
363
+ }
364
+ const gotos = result.goto
365
+ ? (Array.isArray(result.goto) ? result.goto : [result.goto])
366
+ : getNextNodes(name, state, ctx._edgesBySource, config).nodes;
367
+ nextNodes.push(...gotos);
368
+ if (result.send)
369
+ nextSends.push(...result.send.map((s) => ({ node: s.node, args: s.args })));
370
+ }
371
+ }
372
+ else if (result && typeof result === "object") {
373
+ state = applyUpdate(ctx.channels, state, result);
374
+ const writes = result;
375
+ if (Object.keys(writes).length > 0) {
376
+ stepWrites.push({ nodeId: name, writes });
377
+ }
378
+ const { nodes, sends } = getNextNodes(name, state, ctx._edgesBySource, config);
379
+ nextNodes.push(...nodes);
380
+ nextSends.push(...sends);
381
+ }
382
+ else {
383
+ const { nodes, sends } = getNextNodes(name, state, ctx._edgesBySource, config);
384
+ nextNodes.push(...nodes);
385
+ nextSends.push(...sends);
386
+ }
387
+ // Apply parent updates from subgraph Command.PARENT (after normal result)
388
+ for (const pu of parentUpdates) {
389
+ state = applyUpdate(ctx.channels, state, pu);
390
+ }
391
+ if (modeUpdates || modeDebug) {
392
+ const delta = result instanceof Command ? (result.update ?? {}) : (result ?? {});
393
+ if (modeUpdates)
394
+ yield tag(evt("node_end", delta, step, agentId, name), "updates");
395
+ if (modeDebug)
396
+ yield tag(evt("node_end", delta, step, agentId, name), "debug");
397
+ }
398
+ // Static interrupt AFTER
399
+ if (ctx.interruptConfig.interruptAfter?.includes(name)) {
400
+ await saveCheckpoint(ctx, threadId, step, state, nextNodes, nextSends, agentId, config?.metadata);
401
+ throw new ONIInterrupt(name, "after", state);
402
+ }
403
+ checkDynamicInterrupt(name, "after", state, config);
404
+ }
405
+ // Yield buffered custom/message events based on stream mode
406
+ if (modeCustom || modeDebug) {
407
+ for (const customEvt of allCustomEvents) {
408
+ if (modeCustom)
409
+ yield tag(customEvt, "custom");
410
+ if (modeDebug)
411
+ yield tag(customEvt, "debug");
412
+ }
413
+ }
414
+ if (modeMessages || modeDebug) {
415
+ for (const msgEvt of allMessageEvents) {
416
+ if (modeMessages)
417
+ yield tag(msgEvt, "messages");
418
+ if (modeDebug)
419
+ yield tag(msgEvt, "debug");
420
+ }
421
+ // Emit messages/complete for each node that produced tokens
422
+ for (const [, writer] of nodeWriters) {
423
+ const complete = writer._complete();
424
+ if (complete) {
425
+ if (modeMessages)
426
+ yield tag(complete, "messages");
427
+ if (modeDebug)
428
+ yield tag(complete, "debug");
429
+ }
430
+ }
431
+ }
432
+ if (modeValues)
433
+ yield tag(evt("state_update", state, step, agentId), "values");
434
+ // Deduplicate nextNodes — avoid Set+spread when no dupes (common case)
435
+ if (nextNodes.length <= 1) {
436
+ pendingNodes = nextNodes;
437
+ }
438
+ else {
439
+ const seen = new Set();
440
+ pendingNodes = [];
441
+ for (const n of nextNodes) {
442
+ const key = n;
443
+ if (!seen.has(key)) {
444
+ seen.add(key);
445
+ pendingNodes.push(n);
446
+ }
447
+ }
448
+ }
449
+ pendingSends = nextSends;
450
+ step++;
451
+ await saveCheckpoint(ctx, threadId, step, state, pendingNodes, pendingSends, agentId, config?.metadata, stepWrites);
452
+ }
453
+ if (modeValues)
454
+ yield tag(evt("state_update", state, step, agentId), "values");
455
+ }
456
+ finally {
457
+ // Telemetry: end graph span — always runs, even on error or interrupt
458
+ graphSpan.setAttribute("oni.steps", step);
459
+ ctx.tracer.endSpan(graphSpan);
460
+ }
461
+ }
462
+ //# sourceMappingURL=streaming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../src/pregel/streaming.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { NodeDefinition, Edge, ChannelSchema, ONICheckpointer, InterruptConfig } from "../types.js";
2
+ import type { CircuitBreaker } from "../circuit-breaker.js";
3
+ import type { DeadLetterQueue } from "../dlq.js";
4
+ import type { BaseStore } from "../store/index.js";
5
+ import type { HITLSessionStore } from "../hitl/index.js";
6
+ import type { EventBus } from "../events/bus.js";
7
+ import type { ContentFilter } from "../guardrails/types.js";
8
+ import type { AuditLog } from "../guardrails/audit.js";
9
+ import type { BudgetTracker } from "../guardrails/budget.js";
10
+ import type { ONITracer } from "../telemetry.js";
11
+ import type { ToolPermissions } from "../tools/types.js";
12
+ import type { NodeReturn } from "../types.js";
13
+ export interface PregelContext<S extends Record<string, unknown>> {
14
+ nodes: Map<string, NodeDefinition<S>>;
15
+ edges: Edge<S>[];
16
+ channels: ChannelSchema<S>;
17
+ interruptConfig: InterruptConfig;
18
+ checkpointer: ONICheckpointer<S> | null;
19
+ store: BaseStore | null;
20
+ circuitBreakers: Map<string, CircuitBreaker>;
21
+ tracer: ONITracer;
22
+ eventBus: EventBus;
23
+ auditLog: AuditLog | null;
24
+ budgetTracker: BudgetTracker | null;
25
+ contentFilters: ContentFilter[];
26
+ toolPermissions: ToolPermissions | undefined;
27
+ dlq: DeadLetterQueue | null;
28
+ hitlStore: HITLSessionStore<S>;
29
+ defaults: {
30
+ nodeTimeout?: number;
31
+ } | undefined;
32
+ nodeCache: Map<string, {
33
+ result: NodeReturn<S>;
34
+ timestamp: number;
35
+ }>;
36
+ _subgraphRef: {
37
+ count: number;
38
+ };
39
+ _perInvocationParentUpdates: Map<string, Array<Partial<unknown>>>;
40
+ _perInvocationCheckpointer: Map<string, unknown>;
41
+ _edgesBySource: Map<string, Edge<S>[]>;
42
+ _ephemeralKeys: (keyof S)[];
43
+ }
44
+ export interface PendingSend {
45
+ node: string;
46
+ args: Record<string, unknown>;
47
+ }
48
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pregel/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EAAE,IAAI,EAAE,aAAa,EACnC,eAAe,EAAE,eAAe,EACjC,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC9D,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3B,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACxC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7C,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,eAAe,EAAE,eAAe,GAAG,SAAS,CAAC;IAC7C,GAAG,EAAE,eAAe,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC/B,QAAQ,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC/C,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,2BAA2B,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAClE,0BAA0B,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjD,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B"}
@@ -0,0 +1,5 @@
1
+ // ============================================================
2
+ // src/pregel/types.ts — Internal shared interfaces
3
+ // ============================================================
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/pregel/types.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,mDAAmD;AACnD,+DAA+D"}
package/dist/pregel.d.ts CHANGED
@@ -1,64 +1,2 @@
1
- import { type NodeDefinition, type Edge, type ChannelSchema, type ONIConfig, type ONIStreamEvent, type StreamMode, type InterruptConfig, type ONICheckpointer, type ONICheckpoint } from "./types.js";
2
- import { DeadLetterQueue, type DeadLetter } from "./dlq.js";
3
- import type { BaseStore } from "./store/index.js";
4
- import { HITLSessionStore } from "./hitl/index.js";
5
- import { EventBus } from "./events/bus.js";
6
- import type { GuardrailsConfig } from "./guardrails/types.js";
7
- import type { EventListeners } from "./events/types.js";
8
- import { AuditLog } from "./guardrails/audit.js";
9
- import { BudgetTracker } from "./guardrails/budget.js";
10
- import { ONITracer, type TracerLike } from "./telemetry.js";
11
- export declare class ONIPregelRunner<S extends Record<string, unknown>> {
12
- private readonly nodes;
13
- private readonly edges;
14
- private readonly channels;
15
- private readonly interruptConfig;
16
- private readonly checkpointer;
17
- private readonly store;
18
- private readonly defaults?;
19
- private readonly dlq;
20
- private hitlStore;
21
- private nodeCache;
22
- private circuitBreakers;
23
- /** Set to true when this runner is being invoked as a subgraph */
24
- private _isSubgraph;
25
- /** Accumulated parent updates from Command.PARENT during subgraph execution */
26
- _parentUpdates: Array<Partial<unknown>>;
27
- readonly eventBus: EventBus;
28
- readonly auditLog: AuditLog | null;
29
- readonly budgetTracker: BudgetTracker | null;
30
- private readonly contentFilters;
31
- private readonly toolPermissions;
32
- readonly tracer: ONITracer;
33
- /** Pre-indexed edges by source node — O(1) lookup instead of O(n) filter */
34
- private readonly _edgesBySource;
35
- /** Pre-computed ephemeral channel keys — avoids iterating all channels */
36
- private readonly _ephemeralKeys;
37
- constructor(nodes: Map<string, NodeDefinition<S>>, edges: Edge<S>[], channels: ChannelSchema<S>, interruptConfig?: InterruptConfig, checkpointer?: ONICheckpointer<S> | null, store?: BaseStore | null, guardrails?: GuardrailsConfig, listeners?: EventListeners, defaults?: {
38
- nodeTimeout?: number;
39
- } | undefined, dlq?: DeadLetterQueue | null, tracer?: TracerLike | null);
40
- private buildInitialState;
41
- private applyUpdate;
42
- private resetEphemeral;
43
- private getNextNodes;
44
- private executeNode;
45
- private checkDynamicInterrupt;
46
- _stream(input: Partial<S>, config?: ONIConfig, streamMode?: StreamMode | StreamMode[]): AsyncGenerator<ONIStreamEvent<S>>;
47
- invoke(input: Partial<S>, config?: ONIConfig): Promise<S>;
48
- stream(input: Partial<S>, config?: ONIConfig & {
49
- streamMode?: StreamMode | StreamMode[];
50
- }): AsyncGenerator<ONIStreamEvent<S>>;
51
- batch(inputs: Partial<S>[], config?: ONIConfig): Promise<S[]>;
52
- getState(threadId: string): Promise<S | null>;
53
- updateState(threadId: string, update: Partial<S>): Promise<void>;
54
- getStateAt(threadId: string, step: number): Promise<S | null>;
55
- getHistory(threadId: string): Promise<ONICheckpoint<S>[]>;
56
- forkFrom(threadId: string, step: number, newThreadId: string): Promise<void>;
57
- getPendingInterrupts(threadId: string): import("./hitl/resume.js").HITLSession<S>[];
58
- hitlSessionStore(): HITLSessionStore<S>;
59
- private getCircuitBreaker;
60
- getDeadLetters(threadId: string): DeadLetter[];
61
- private saveCheckpoint;
62
- private evt;
63
- }
1
+ export { ONIPregelRunner } from './pregel/index.js';
64
2
  //# sourceMappingURL=pregel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pregel.d.ts","sourceRoot":"","sources":["../src/pregel.ts"],"names":[],"mappings":"AAKA,OAAO,EAEU,KAAK,cAAc,EAAE,KAAK,IAAI,EAAE,KAAK,aAAa,EACjE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAC1E,KAAK,eAAe,EAAE,KAAK,aAAa,EAEzC,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAK5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EACwC,gBAAgB,EAG9D,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,uBAAuB,CAAC;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAiB,MAAM,gBAAgB,CAAC;AAS3E,qBAAa,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAsB1D,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAGtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG;IA9BtB,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,SAAS,CAAmE;IACpF,OAAO,CAAC,eAAe,CAAqC;IAC5D,kEAAkE;IAClE,OAAO,CAAC,WAAW,CAAS;IAC5B,+EAA+E;IAC/E,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAM;IAE7C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA8B;IAC9D,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAE3B,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IACxD,0EAA0E;IAC1E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAc;gBAG1B,KAAK,EAAY,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAC/C,KAAK,EAAY,IAAI,CAAC,CAAC,CAAC,EAAE,EAC1B,QAAQ,EAAS,aAAa,CAAC,CAAC,CAAC,EACjC,eAAe,GAAE,eAAoB,EACrC,YAAY,GAAK,eAAe,CAAC,CAAC,CAAC,GAAG,IAAW,EACjD,KAAK,GAAY,SAAS,GAAG,IAAW,EACzD,UAAU,CAAC,EAAuB,gBAAgB,EAClD,SAAS,CAAC,EAAwB,cAAc,EAC/B,QAAQ,CAAC,EAAQ;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,YAAA,EACzC,GAAG,GAAc,eAAe,GAAG,IAAW,EAC/D,MAAM,CAAC,EAA2B,UAAU,GAAG,IAAI;IA+BrD,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,YAAY;YA0BN,WAAW;IAgKzB,OAAO,CAAC,qBAAqB;IActB,OAAO,CACZ,KAAK,EAAO,OAAO,CAAC,CAAC,CAAC,EACtB,MAAM,CAAC,EAAK,SAAS,EACrB,UAAU,GAAE,UAAU,GAAG,UAAU,EAAc,GAChD,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IA6a9B,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC;IAQxD,MAAM,CACX,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EACjB,MAAM,CAAC,EAAE,SAAS,GAAG;QAAE,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAA;KAAE,GAC9D,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAI9B,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAa7D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAK7C,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAShE,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAM7D,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAKzD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAelF,oBAAoB,CAAC,QAAQ,EAAE,MAAM;IAIrC,gBAAgB,IAAI,gBAAgB,CAAC,CAAC,CAAC;IAMvC,OAAO,CAAC,iBAAiB;IAezB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE;YAMhC,cAAc;IAoB5B,OAAO,CAAC,GAAG;CAMZ"}
1
+ {"version":3,"file":"pregel.d.ts","sourceRoot":"","sources":["../src/pregel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}