@strands-agents/sdk 1.0.0 → 1.2.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 (284) hide show
  1. package/README.md +6 -0
  2. package/dist/src/__fixtures__/agent-helpers.d.ts +16 -1
  3. package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
  4. package/dist/src/__fixtures__/agent-helpers.js +42 -0
  5. package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
  6. package/dist/src/__fixtures__/tool-helpers.d.ts +2 -1
  7. package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
  8. package/dist/src/__fixtures__/tool-helpers.js +20 -3
  9. package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
  10. package/dist/src/__tests__/interrupt.test.d.ts +2 -0
  11. package/dist/src/__tests__/interrupt.test.d.ts.map +1 -0
  12. package/dist/src/__tests__/interrupt.test.js +264 -0
  13. package/dist/src/__tests__/interrupt.test.js.map +1 -0
  14. package/dist/src/__tests__/mcp.test.js +447 -7
  15. package/dist/src/__tests__/mcp.test.js.map +1 -1
  16. package/dist/src/agent/__tests__/agent.hook.test.js +551 -1
  17. package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -1
  18. package/dist/src/agent/__tests__/agent.interrupt.test.d.ts +2 -0
  19. package/dist/src/agent/__tests__/agent.interrupt.test.d.ts.map +1 -0
  20. package/dist/src/agent/__tests__/agent.interrupt.test.js +779 -0
  21. package/dist/src/agent/__tests__/agent.interrupt.test.js.map +1 -0
  22. package/dist/src/agent/__tests__/agent.model-retry.test.d.ts +2 -0
  23. package/dist/src/agent/__tests__/agent.model-retry.test.d.ts.map +1 -0
  24. package/dist/src/agent/__tests__/agent.model-retry.test.js +161 -0
  25. package/dist/src/agent/__tests__/agent.model-retry.test.js.map +1 -0
  26. package/dist/src/agent/__tests__/agent.test.js +174 -0
  27. package/dist/src/agent/__tests__/agent.test.js.map +1 -1
  28. package/dist/src/agent/__tests__/snapshot.test.js +148 -4
  29. package/dist/src/agent/__tests__/snapshot.test.js.map +1 -1
  30. package/dist/src/agent/agent-as-tool.d.ts.map +1 -1
  31. package/dist/src/agent/agent-as-tool.js +2 -3
  32. package/dist/src/agent/agent-as-tool.js.map +1 -1
  33. package/dist/src/agent/agent.d.ts +94 -4
  34. package/dist/src/agent/agent.d.ts.map +1 -1
  35. package/dist/src/agent/agent.js +625 -223
  36. package/dist/src/agent/agent.js.map +1 -1
  37. package/dist/src/agent/snapshot.d.ts +11 -19
  38. package/dist/src/agent/snapshot.d.ts.map +1 -1
  39. package/dist/src/agent/snapshot.js +23 -19
  40. package/dist/src/agent/snapshot.js.map +1 -1
  41. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +230 -9
  42. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +1 -1
  43. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +19 -6
  44. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +1 -1
  45. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +422 -41
  46. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -1
  47. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js +75 -1
  48. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js.map +1 -1
  49. package/dist/src/conversation-manager/conversation-manager.d.ts +67 -22
  50. package/dist/src/conversation-manager/conversation-manager.d.ts.map +1 -1
  51. package/dist/src/conversation-manager/conversation-manager.js +65 -13
  52. package/dist/src/conversation-manager/conversation-manager.js.map +1 -1
  53. package/dist/src/conversation-manager/index.d.ts +1 -1
  54. package/dist/src/conversation-manager/index.d.ts.map +1 -1
  55. package/dist/src/conversation-manager/index.js +1 -1
  56. package/dist/src/conversation-manager/index.js.map +1 -1
  57. package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +43 -10
  58. package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -1
  59. package/dist/src/conversation-manager/sliding-window-conversation-manager.js +202 -45
  60. package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -1
  61. package/dist/src/conversation-manager/summarizing-conversation-manager.d.ts +23 -1
  62. package/dist/src/conversation-manager/summarizing-conversation-manager.d.ts.map +1 -1
  63. package/dist/src/conversation-manager/summarizing-conversation-manager.js +39 -17
  64. package/dist/src/conversation-manager/summarizing-conversation-manager.js.map +1 -1
  65. package/dist/src/hooks/__tests__/events.test.js +99 -12
  66. package/dist/src/hooks/__tests__/events.test.js.map +1 -1
  67. package/dist/src/hooks/__tests__/registry.test.js +166 -2
  68. package/dist/src/hooks/__tests__/registry.test.js.map +1 -1
  69. package/dist/src/hooks/events.d.ts +125 -32
  70. package/dist/src/hooks/events.d.ts.map +1 -1
  71. package/dist/src/hooks/events.js +111 -8
  72. package/dist/src/hooks/events.js.map +1 -1
  73. package/dist/src/hooks/index.d.ts +4 -3
  74. package/dist/src/hooks/index.d.ts.map +1 -1
  75. package/dist/src/hooks/index.js +2 -1
  76. package/dist/src/hooks/index.js.map +1 -1
  77. package/dist/src/hooks/registry.d.ts +12 -12
  78. package/dist/src/hooks/registry.d.ts.map +1 -1
  79. package/dist/src/hooks/registry.js +55 -15
  80. package/dist/src/hooks/registry.js.map +1 -1
  81. package/dist/src/hooks/types.d.ts +23 -0
  82. package/dist/src/hooks/types.d.ts.map +1 -1
  83. package/dist/src/hooks/types.js +17 -1
  84. package/dist/src/hooks/types.js.map +1 -1
  85. package/dist/src/index.d.ts +12 -6
  86. package/dist/src/index.d.ts.map +1 -1
  87. package/dist/src/index.js +7 -2
  88. package/dist/src/index.js.map +1 -1
  89. package/dist/src/interrupt.d.ts +247 -0
  90. package/dist/src/interrupt.d.ts.map +1 -0
  91. package/dist/src/interrupt.js +316 -0
  92. package/dist/src/interrupt.js.map +1 -0
  93. package/dist/src/mcp.d.ts +61 -4
  94. package/dist/src/mcp.d.ts.map +1 -1
  95. package/dist/src/mcp.js +161 -25
  96. package/dist/src/mcp.js.map +1 -1
  97. package/dist/src/models/__tests__/anthropic.test.js +78 -8
  98. package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
  99. package/dist/src/models/__tests__/bedrock.test.js +156 -18
  100. package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
  101. package/dist/src/models/__tests__/defaults.test.d.ts +2 -0
  102. package/dist/src/models/__tests__/defaults.test.d.ts.map +1 -0
  103. package/dist/src/models/__tests__/defaults.test.js +36 -0
  104. package/dist/src/models/__tests__/defaults.test.js.map +1 -0
  105. package/dist/src/models/__tests__/google.test.js +72 -6
  106. package/dist/src/models/__tests__/google.test.js.map +1 -1
  107. package/dist/src/models/anthropic.d.ts +10 -0
  108. package/dist/src/models/anthropic.d.ts.map +1 -1
  109. package/dist/src/models/anthropic.js +14 -4
  110. package/dist/src/models/anthropic.js.map +1 -1
  111. package/dist/src/models/bedrock.d.ts +17 -3
  112. package/dist/src/models/bedrock.d.ts.map +1 -1
  113. package/dist/src/models/bedrock.js +80 -13
  114. package/dist/src/models/bedrock.js.map +1 -1
  115. package/dist/src/models/defaults.d.ts +10 -0
  116. package/dist/src/models/defaults.d.ts.map +1 -1
  117. package/dist/src/models/defaults.js +129 -0
  118. package/dist/src/models/defaults.js.map +1 -1
  119. package/dist/src/models/google/model.d.ts.map +1 -1
  120. package/dist/src/models/google/model.js +4 -2
  121. package/dist/src/models/google/model.js.map +1 -1
  122. package/dist/src/models/google/types.d.ts +10 -0
  123. package/dist/src/models/google/types.d.ts.map +1 -1
  124. package/dist/src/models/model.d.ts +15 -0
  125. package/dist/src/models/model.d.ts.map +1 -1
  126. package/dist/src/models/model.js +18 -0
  127. package/dist/src/models/model.js.map +1 -1
  128. package/dist/src/models/openai/__tests__/chat.test.js +55 -2
  129. package/dist/src/models/openai/__tests__/chat.test.js.map +1 -1
  130. package/dist/src/models/openai/__tests__/responses.test.js +19 -0
  131. package/dist/src/models/openai/__tests__/responses.test.js.map +1 -1
  132. package/dist/src/models/openai/errors.d.ts.map +1 -1
  133. package/dist/src/models/openai/errors.js +7 -4
  134. package/dist/src/models/openai/errors.js.map +1 -1
  135. package/dist/src/models/openai/model.d.ts.map +1 -1
  136. package/dist/src/models/openai/model.js +2 -2
  137. package/dist/src/models/openai/model.js.map +1 -1
  138. package/dist/src/multiagent/__tests__/graph.test.js +69 -0
  139. package/dist/src/multiagent/__tests__/graph.test.js.map +1 -1
  140. package/dist/src/multiagent/__tests__/graph.tracer.test.js +14 -0
  141. package/dist/src/multiagent/__tests__/graph.tracer.test.js.map +1 -1
  142. package/dist/src/multiagent/__tests__/interrupts.test.d.ts +2 -0
  143. package/dist/src/multiagent/__tests__/interrupts.test.d.ts.map +1 -0
  144. package/dist/src/multiagent/__tests__/interrupts.test.js +390 -0
  145. package/dist/src/multiagent/__tests__/interrupts.test.js.map +1 -0
  146. package/dist/src/multiagent/__tests__/nodes.test.js +13 -0
  147. package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -1
  148. package/dist/src/multiagent/__tests__/state.test.js +139 -1
  149. package/dist/src/multiagent/__tests__/state.test.js.map +1 -1
  150. package/dist/src/multiagent/__tests__/swarm.test.js +77 -0
  151. package/dist/src/multiagent/__tests__/swarm.test.js.map +1 -1
  152. package/dist/src/multiagent/events.d.ts +15 -1
  153. package/dist/src/multiagent/events.d.ts.map +1 -1
  154. package/dist/src/multiagent/events.js +18 -0
  155. package/dist/src/multiagent/events.js.map +1 -1
  156. package/dist/src/multiagent/graph.d.ts +59 -3
  157. package/dist/src/multiagent/graph.d.ts.map +1 -1
  158. package/dist/src/multiagent/graph.js +201 -34
  159. package/dist/src/multiagent/graph.js.map +1 -1
  160. package/dist/src/multiagent/multiagent.d.ts +77 -3
  161. package/dist/src/multiagent/multiagent.d.ts.map +1 -1
  162. package/dist/src/multiagent/multiagent.js +115 -1
  163. package/dist/src/multiagent/multiagent.js.map +1 -1
  164. package/dist/src/multiagent/nodes.d.ts +18 -0
  165. package/dist/src/multiagent/nodes.d.ts.map +1 -1
  166. package/dist/src/multiagent/nodes.js +69 -22
  167. package/dist/src/multiagent/nodes.js.map +1 -1
  168. package/dist/src/multiagent/state.d.ts +39 -3
  169. package/dist/src/multiagent/state.d.ts.map +1 -1
  170. package/dist/src/multiagent/state.js +80 -1
  171. package/dist/src/multiagent/state.js.map +1 -1
  172. package/dist/src/multiagent/swarm.d.ts +30 -1
  173. package/dist/src/multiagent/swarm.d.ts.map +1 -1
  174. package/dist/src/multiagent/swarm.js +166 -33
  175. package/dist/src/multiagent/swarm.js.map +1 -1
  176. package/dist/src/registry/__tests__/tool-registry.test.js +37 -0
  177. package/dist/src/registry/__tests__/tool-registry.test.js.map +1 -1
  178. package/dist/src/registry/tool-registry.d.ts +13 -7
  179. package/dist/src/registry/tool-registry.d.ts.map +1 -1
  180. package/dist/src/registry/tool-registry.js +35 -10
  181. package/dist/src/registry/tool-registry.js.map +1 -1
  182. package/dist/src/retry/__tests__/backoff-strategy.test.d.ts +2 -0
  183. package/dist/src/retry/__tests__/backoff-strategy.test.d.ts.map +1 -0
  184. package/dist/src/retry/__tests__/backoff-strategy.test.js +116 -0
  185. package/dist/src/retry/__tests__/backoff-strategy.test.js.map +1 -0
  186. package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts +2 -0
  187. package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts.map +1 -0
  188. package/dist/src/retry/__tests__/default-model-retry-strategy.test.js +225 -0
  189. package/dist/src/retry/__tests__/default-model-retry-strategy.test.js.map +1 -0
  190. package/dist/src/retry/backoff-strategy.d.ts +108 -0
  191. package/dist/src/retry/backoff-strategy.d.ts.map +1 -0
  192. package/dist/src/retry/backoff-strategy.js +86 -0
  193. package/dist/src/retry/backoff-strategy.js.map +1 -0
  194. package/dist/src/retry/default-model-retry-strategy.d.ts +76 -0
  195. package/dist/src/retry/default-model-retry-strategy.d.ts.map +1 -0
  196. package/dist/src/retry/default-model-retry-strategy.js +104 -0
  197. package/dist/src/retry/default-model-retry-strategy.js.map +1 -0
  198. package/dist/src/retry/index.d.ts +8 -0
  199. package/dist/src/retry/index.d.ts.map +1 -0
  200. package/dist/src/retry/index.js +7 -0
  201. package/dist/src/retry/index.js.map +1 -0
  202. package/dist/src/retry/model-retry-strategy.d.ts +80 -0
  203. package/dist/src/retry/model-retry-strategy.d.ts.map +1 -0
  204. package/dist/src/retry/model-retry-strategy.js +85 -0
  205. package/dist/src/retry/model-retry-strategy.js.map +1 -0
  206. package/dist/src/retry/retry-strategy.d.ts +34 -0
  207. package/dist/src/retry/retry-strategy.d.ts.map +1 -0
  208. package/dist/src/retry/retry-strategy.js +25 -0
  209. package/dist/src/retry/retry-strategy.js.map +1 -0
  210. package/dist/src/session/__tests__/session-manager.test.js +84 -3
  211. package/dist/src/session/__tests__/session-manager.test.js.map +1 -1
  212. package/dist/src/session/session-manager.d.ts +11 -2
  213. package/dist/src/session/session-manager.d.ts.map +1 -1
  214. package/dist/src/session/session-manager.js +17 -6
  215. package/dist/src/session/session-manager.js.map +1 -1
  216. package/dist/src/telemetry/__tests__/meter.test.js +5 -27
  217. package/dist/src/telemetry/__tests__/meter.test.js.map +1 -1
  218. package/dist/src/telemetry/meter.d.ts +12 -4
  219. package/dist/src/telemetry/meter.d.ts.map +1 -1
  220. package/dist/src/telemetry/meter.js +13 -8
  221. package/dist/src/telemetry/meter.js.map +1 -1
  222. package/dist/src/tools/__tests__/tool.test.js +24 -1
  223. package/dist/src/tools/__tests__/tool.test.js.map +1 -1
  224. package/dist/src/tools/function-tool.d.ts.map +1 -1
  225. package/dist/src/tools/function-tool.js +6 -1
  226. package/dist/src/tools/function-tool.js.map +1 -1
  227. package/dist/src/tools/mcp-tool.d.ts.map +1 -1
  228. package/dist/src/tools/mcp-tool.js +3 -2
  229. package/dist/src/tools/mcp-tool.js.map +1 -1
  230. package/dist/src/tools/tool.d.ts +10 -1
  231. package/dist/src/tools/tool.d.ts.map +1 -1
  232. package/dist/src/tools/tool.js +12 -0
  233. package/dist/src/tools/tool.js.map +1 -1
  234. package/dist/src/tsconfig.tsbuildinfo +1 -1
  235. package/dist/src/types/__tests__/agent.test.js +97 -0
  236. package/dist/src/types/__tests__/agent.test.js.map +1 -1
  237. package/dist/src/types/agent.d.ts +48 -8
  238. package/dist/src/types/agent.d.ts.map +1 -1
  239. package/dist/src/types/agent.js +28 -3
  240. package/dist/src/types/agent.js.map +1 -1
  241. package/dist/src/types/interrupt.d.ts +103 -0
  242. package/dist/src/types/interrupt.d.ts.map +1 -0
  243. package/dist/src/types/interrupt.js +63 -0
  244. package/dist/src/types/interrupt.js.map +1 -0
  245. package/dist/src/types/messages.d.ts +2 -1
  246. package/dist/src/types/messages.d.ts.map +1 -1
  247. package/dist/src/types/messages.js.map +1 -1
  248. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts +2 -0
  249. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts.map +1 -0
  250. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js +292 -0
  251. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js.map +1 -0
  252. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts +2 -0
  253. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts.map +1 -0
  254. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js +148 -0
  255. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js.map +1 -0
  256. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts +2 -0
  257. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts.map +1 -0
  258. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js +78 -0
  259. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js.map +1 -0
  260. package/dist/src/vended-plugins/context-offloader/index.d.ts +23 -0
  261. package/dist/src/vended-plugins/context-offloader/index.d.ts.map +1 -0
  262. package/dist/src/vended-plugins/context-offloader/index.js +21 -0
  263. package/dist/src/vended-plugins/context-offloader/index.js.map +1 -0
  264. package/dist/src/vended-plugins/context-offloader/plugin.d.ts +48 -0
  265. package/dist/src/vended-plugins/context-offloader/plugin.d.ts.map +1 -0
  266. package/dist/src/vended-plugins/context-offloader/plugin.js +244 -0
  267. package/dist/src/vended-plugins/context-offloader/plugin.js.map +1 -0
  268. package/dist/src/vended-plugins/context-offloader/storage.d.ts +114 -0
  269. package/dist/src/vended-plugins/context-offloader/storage.d.ts.map +1 -0
  270. package/dist/src/vended-plugins/context-offloader/storage.js +204 -0
  271. package/dist/src/vended-plugins/context-offloader/storage.js.map +1 -0
  272. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js +12 -0
  273. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js.map +1 -1
  274. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +3 -0
  275. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +1 -1
  276. package/dist/src/vended-tools/bash/bash.d.ts.map +1 -1
  277. package/dist/src/vended-tools/bash/bash.js +0 -3
  278. package/dist/src/vended-tools/bash/bash.js.map +1 -1
  279. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js +3 -0
  280. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +1 -1
  281. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +3 -0
  282. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +1 -1
  283. package/dist/src/vended-tools/notebook/notebook.d.ts +1 -1
  284. package/package.json +9 -5
@@ -15,10 +15,30 @@ import { Edge } from './edge.js';
15
15
  * Runtime configuration for graph execution.
16
16
  */
17
17
  export interface GraphConfig {
18
- /** Max nodes executing in parallel. */
18
+ /** Max nodes executing in parallel. Defaults to `Infinity` (no limit). */
19
19
  maxConcurrency?: number;
20
- /** Max total steps (prevents infinite loops in cyclic graphs). */
20
+ /** Max total steps (prevents infinite loops in cyclic graphs). Defaults to `Infinity` (no limit). */
21
21
  maxSteps?: number;
22
+ /**
23
+ * Wall-clock ceiling for the entire graph invocation, in milliseconds. Defaults to `Infinity`
24
+ * (no limit).
25
+ *
26
+ * Does not propagate into nested orchestrators wrapped via `MultiAgentNode` — a nested
27
+ * `Swarm`/`Graph` runs to completion under its own timeout config; the parent graph's
28
+ * timeout only fires once the nested node returns.
29
+ */
30
+ timeout?: number;
31
+ /**
32
+ * Fallback per-node wall-clock ceiling in milliseconds. Applied to any `AgentNode` that
33
+ * doesn't set its own `timeout`. Defaults to `Infinity` (no limit).
34
+ *
35
+ * Does not apply to `MultiAgentNode`. Set `timeout`/`nodeTimeout` on the nested
36
+ * orchestrator to bound it.
37
+ *
38
+ * Enforced via `AbortSignal` — cancellation is cooperative, so a tool that neither polls
39
+ * its cancel signal nor forwards it to a cancellable API can run past this deadline.
40
+ */
41
+ nodeTimeout?: number;
22
42
  }
23
43
  /**
24
44
  * Options for creating a Graph instance.
@@ -84,6 +104,13 @@ export declare class Graph implements MultiAgent {
84
104
  private readonly _tracer;
85
105
  readonly sessionManager?: SessionManager | undefined;
86
106
  private _initialized;
107
+ /**
108
+ * State retained across invocations when a run ends INTERRUPTED. Lets
109
+ * `graph.invoke(responses)` resume on the same instance without requiring a
110
+ * SessionManager, mirroring single-agent ergonomics. Cleared when a run
111
+ * terminates in any non-INTERRUPTED state.
112
+ */
113
+ private _pendingInterruptState?;
87
114
  constructor(options: GraphOptions);
88
115
  /**
89
116
  * Initialize the graph. Invokes the {@link MultiAgentInitializedEvent} callback.
@@ -117,7 +144,24 @@ export declare class Graph implements MultiAgent {
117
144
  stream(input: MultiAgentInput, options?: MultiAgentInvokeOptions): AsyncGenerator<MultiAgentStreamEvent, MultiAgentResult, undefined>;
118
145
  private _stream;
119
146
  /**
120
- * Executes a single node, pushing streaming events to the shared queue in real-time.
147
+ * Invokes hook callbacks on an event, then yields it.
148
+ */
149
+ private _emit;
150
+ /**
151
+ * Fires `BeforeNodeCallEvent` and handles hook-raised interrupts or cancels inline.
152
+ * Returns a synthetic NodeResult (INTERRUPTED or CANCELLED) when a hook gates the
153
+ * node, in which case the caller skips `_streamNode` and surfaces the result directly.
154
+ * Returns `undefined` when no hook gated the node and execution should proceed.
155
+ *
156
+ * Owns the `nodeSpan` on gated paths — `_streamNode` owns it on the ungated path.
157
+ * Yields the `NodeResultEvent` + `AfterNodeCallEvent` lifecycle pair on gated paths
158
+ * so observers see the same event sequence regardless of how the node terminated.
159
+ */
160
+ private _runBeforeNodeCall;
161
+ /**
162
+ * Runs a node whose `BeforeNodeCallEvent` already fired without a hook gating it
163
+ * (interrupt or cancel are handled by `_runBeforeNodeCall` before this coroutine
164
+ * is spawned). Takes ownership of the already-started `nodeSpan` and ends it.
121
165
  */
122
166
  private _streamNode;
123
167
  private _validateConfig;
@@ -131,8 +175,20 @@ export declare class Graph implements MultiAgent {
131
175
  * downstream progress, or failed/cancelled.
132
176
  */
133
177
  private _resolveContent;
178
+ /**
179
+ * Chooses the input for a node about to be scheduled, handling the three resume cases:
180
+ * routed orchestrator-hook responses (forward leftovers to the agent), routed responses
181
+ * fully consumed by the hook (replay the original invocation input), and fresh runs
182
+ * (dependency-merged). Falls back to an empty input with a warning if a custom
183
+ * SessionManager dropped `_pendingInput`.
184
+ */
185
+ private _resolveInputForScheduling;
134
186
  /**
135
187
  * Builds the input for a node by combining the original task with dependency outputs.
188
+ *
189
+ * Only called for non-resume executions: the caller routes resume responses directly
190
+ * to interrupted nodes without going through dependency resolution, so this helper
191
+ * never sees `InterruptResponseContent[]`.
136
192
  */
137
193
  private _resolveNodeInput;
138
194
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/multiagent/graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/multiagent/graph.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,15 @@
1
+ import { applyOrchestratorHookResponses, dropStaleInterruptedResult, extractResumeResponses, groupInterruptResponsesByNode, recordHookInterrupt, } from './multiagent.js';
1
2
  import { TextBlock, contentBlockFromData } from '../types/messages.js';
3
+ import { InterruptError } from '../interrupt.js';
2
4
  import { logger } from '../logging/logger.js';
5
+ import { warnOnce } from '../logging/warn-once.js';
3
6
  import { HookableEvent } from '../hooks/events.js';
4
7
  import { HookRegistryImplementation } from '../hooks/registry.js';
5
8
  import { MultiAgentPluginRegistry } from './plugins.js';
6
9
  import { AgentNode, MultiAgentNode, Node } from './nodes.js';
7
10
  import { MultiAgentState, MultiAgentResult, NodeResult, Status } from './state.js';
8
11
  import { Swarm } from './swarm.js';
9
- import { AfterMultiAgentInvocationEvent, AfterNodeCallEvent, BeforeMultiAgentInvocationEvent, BeforeNodeCallEvent, MultiAgentHandoffEvent, MultiAgentInitializedEvent, MultiAgentResultEvent, NodeCancelEvent, } from './events.js';
12
+ import { AfterMultiAgentInvocationEvent, AfterNodeCallEvent, BeforeMultiAgentInvocationEvent, BeforeNodeCallEvent, MultiAgentHandoffEvent, MultiAgentInitializedEvent, MultiAgentResultEvent, NodeCancelEvent, NodeResultEvent, } from './events.js';
10
13
  import { Edge } from './edge.js';
11
14
  import { Queue } from './queue.js';
12
15
  import { Tracer } from '../telemetry/tracer.js';
@@ -56,14 +59,26 @@ export class Graph {
56
59
  _tracer;
57
60
  sessionManager;
58
61
  _initialized;
62
+ /**
63
+ * State retained across invocations when a run ends INTERRUPTED. Lets
64
+ * `graph.invoke(responses)` resume on the same instance without requiring a
65
+ * SessionManager, mirroring single-agent ergonomics. Cleared when a run
66
+ * terminates in any non-INTERRUPTED state.
67
+ */
68
+ _pendingInterruptState;
59
69
  constructor(options) {
60
70
  const { id, nodes, edges, sources, sessionManager, plugins, traceAttributes, ...config } = options;
61
71
  this.id = id ?? 'graph';
62
72
  this.config = {
63
73
  maxConcurrency: config.maxConcurrency ?? Infinity,
64
74
  maxSteps: config.maxSteps ?? Infinity,
75
+ timeout: config.timeout ?? Infinity,
76
+ nodeTimeout: config.nodeTimeout ?? Infinity,
65
77
  };
66
78
  this._validateConfig();
79
+ if (this.config.maxSteps === Infinity && this.config.timeout === Infinity) {
80
+ warnOnce(logger, 'graph has no maxSteps or timeout set; execution is unbounded');
81
+ }
67
82
  this.nodes = this._resolveNodes(nodes);
68
83
  this.edges = this._resolveEdges(edges);
69
84
  this._sources = this._resolveSources(sources);
@@ -129,13 +144,12 @@ export class Graph {
129
144
  // Resolve invocationState once; the same object is threaded to every node's
130
145
  // child agent so mutations in one node are visible in the next.
131
146
  const invocationState = options?.invocationState ?? {};
132
- const gen = this._stream(input, invocationState);
147
+ // Hook invocation lives in `_stream` so hook-raised `InterruptError`s land in the
148
+ // same frame as the execution loop.
149
+ const gen = this._stream(input, invocationState, options?.cancelSignal);
133
150
  try {
134
151
  let next = await gen.next();
135
152
  while (!next.done) {
136
- if (next.value instanceof HookableEvent) {
137
- await this._hookRegistry.invokeCallbacks(next.value);
138
- }
139
153
  yield next.value;
140
154
  next = await gen.next();
141
155
  }
@@ -145,8 +159,11 @@ export class Graph {
145
159
  await gen.return(undefined);
146
160
  }
147
161
  }
148
- async *_stream(input, invocationState) {
149
- const state = new MultiAgentState({ nodeIds: [...this.nodes.keys()] });
162
+ async *_stream(input, invocationState, externalCancelSignal) {
163
+ // Reuse state from a prior INTERRUPTED run so `graph.invoke(responses)` can
164
+ // resume on the same instance without a SessionManager.
165
+ const state = this._pendingInterruptState ?? new MultiAgentState({ nodeIds: [...this.nodes.keys()] });
166
+ delete this._pendingInterruptState;
150
167
  const queue = new Queue();
151
168
  const streams = new Map();
152
169
  const multiAgentSpan = this._tracer.startMultiAgentSpan({
@@ -155,23 +172,79 @@ export class Graph {
155
172
  input,
156
173
  });
157
174
  // SessionManager (or plugins) may restore state.results here via the hook
158
- yield new BeforeMultiAgentInvocationEvent({ orchestrator: this, state, invocationState });
159
- // Resume: if state was restored, find nodes that are ready but haven't completed otherwise start from source nodes
160
- const targets = (await this._findResumeTargets(state)) ?? [...this._sources];
175
+ yield* this._emit(new BeforeMultiAgentInvocationEvent({ orchestrator: this, state, invocationState }));
176
+ // Resume input bypasses dependency resolution (routed by interrupt id). On fresh
177
+ // runs, stash the input so resume can replay it to hook-gated nodes that never ran.
178
+ //
179
+ // Example: Source node A has a `BeforeNodeCallEvent` hook that interrupts. The user
180
+ // calls `graph.invoke('original task')`, the hook fires before A executes, the run
181
+ // pauses with status INTERRUPTED. On resume, `graph.invoke([response])` only carries
182
+ // the response — A still needs `'original task'` as its input because A never ran
183
+ // and has no snapshot or upstream results to fall back on. `state._pendingInput`
184
+ // carries `'original task'` across the pause so resume can replay it.
185
+ const resumeResponses = extractResumeResponses(input);
186
+ const interruptResponsesByNode = resumeResponses ? groupInterruptResponsesByNode(resumeResponses, state) : undefined;
187
+ let contentInput;
188
+ if (resumeResponses) {
189
+ contentInput = state._pendingInput;
190
+ }
191
+ else {
192
+ contentInput = input;
193
+ state._pendingInput = contentInput;
194
+ }
195
+ const targets = interruptResponsesByNode
196
+ ? [...interruptResponsesByNode.keys()].map((id) => {
197
+ const node = this.nodes.get(id);
198
+ if (!node) {
199
+ throw new Error(`node_id=<${id}>, graph_id=<${this.id}> | resume response targets a node missing from the graph; topology changed between save and resume?`);
200
+ }
201
+ return node;
202
+ })
203
+ : ((await this._findResumeTargets(state)) ?? [...this._sources]);
204
+ // Wall-clock timeout for the whole graph invocation. External cancellation is kept
205
+ // on its own signal so the loop's abort checks below can distinguish the two causes
206
+ // and produce the right error message.
207
+ const execController = new AbortController();
208
+ const execTimeoutHandle = Number.isFinite(this.config.timeout)
209
+ ? setTimeout(() => execController.abort(), this.config.timeout)
210
+ : undefined;
211
+ const cancelSignal = externalCancelSignal
212
+ ? AbortSignal.any([execController.signal, externalCancelSignal])
213
+ : execController.signal;
214
+ let interrupted = false;
161
215
  let caughtError;
162
216
  let result;
163
217
  try {
164
218
  while (targets.length > 0 || streams.size > 0) {
165
- while (targets.length > 0 && streams.size < this.config.maxConcurrency) {
219
+ if (execTimeoutHandle !== undefined && execController.signal.aborted) {
220
+ throw new Error(`timeout=<${this.config.timeout}>, graph_id=<${this.id}> | graph exceeded wall-clock budget`);
221
+ }
222
+ if (externalCancelSignal?.aborted) {
223
+ throw new Error(`graph_id=<${this.id}> | graph cancelled by external signal`);
224
+ }
225
+ while (!interrupted && targets.length > 0 && streams.size < this.config.maxConcurrency) {
166
226
  const node = targets.shift();
167
227
  this._checkSteps(state);
168
228
  state.steps++;
169
- streams.set(node.id, this._streamNode(node, input, state, queue, multiAgentSpan, invocationState));
229
+ // Resolve input first so `applyOrchestratorHookResponses` has populated the
230
+ // stored `Interrupt.response` entries before the BeforeNodeCall hook reads them.
231
+ const nodeInput = this._resolveInputForScheduling(node, interruptResponsesByNode?.get(node.id), contentInput, state);
232
+ const nodeSpan = this._tracer.withSpanContext(multiAgentSpan, () => this._tracer.startNodeSpan({ nodeId: node.id, nodeType: node.type }));
233
+ const preResult = yield* this._runBeforeNodeCall(node, nodeSpan, state, invocationState);
234
+ if (preResult !== undefined) {
235
+ // Hook gated the node before it could run; surface the synthetic result
236
+ // through the queue so the main loop handles short-circuit and downstream
237
+ // scheduling uniformly with normal node results.
238
+ queue.push({ type: 'result', node, result: preResult });
239
+ continue;
240
+ }
241
+ streams.set(node.id, this._streamNode(node, nodeInput, state, queue, nodeSpan, invocationState, cancelSignal));
170
242
  }
171
243
  await queue.wait();
172
244
  while (queue.size > 0) {
173
245
  const { data, ack } = queue.shift();
174
246
  if (data.type === 'event') {
247
+ await this._hookRegistry.invokeCallbacks(data.event);
175
248
  yield data.event;
176
249
  ack();
177
250
  continue;
@@ -185,14 +258,22 @@ export class Graph {
185
258
  streams.delete(node.id);
186
259
  ack();
187
260
  state.results.push(nodeResult);
261
+ if (interrupted)
262
+ continue;
263
+ // Stop scheduling new nodes once any node has interrupted; in-flight siblings
264
+ // run to completion on their own.
265
+ if (nodeResult.status === Status.INTERRUPTED) {
266
+ interrupted = true;
267
+ continue;
268
+ }
188
269
  const ready = await this._findReady(node, state, streams, targets);
189
270
  if (ready.length > 0) {
190
- yield new MultiAgentHandoffEvent({
271
+ yield* this._emit(new MultiAgentHandoffEvent({
191
272
  source: node.id,
192
273
  targets: ready.map((n) => n.id),
193
274
  state,
194
275
  invocationState,
195
- });
276
+ }));
196
277
  targets.push(...ready);
197
278
  }
198
279
  }
@@ -202,12 +283,22 @@ export class Graph {
202
283
  content: this._resolveContent(state),
203
284
  duration: Date.now() - state.startTime,
204
285
  });
286
+ // Stash on interrupt so same-instance resume has state; otherwise start fresh.
287
+ if (result.status === Status.INTERRUPTED) {
288
+ this._pendingInterruptState = state;
289
+ }
290
+ else {
291
+ delete this._pendingInterruptState;
292
+ delete state._pendingInput;
293
+ }
205
294
  }
206
295
  catch (error) {
207
296
  caughtError = normalizeError(error);
208
297
  throw caughtError;
209
298
  }
210
299
  finally {
300
+ if (execTimeoutHandle !== undefined)
301
+ clearTimeout(execTimeoutHandle);
211
302
  queue.dispose();
212
303
  await Promise.allSettled(streams.values());
213
304
  this._tracer.endMultiAgentSpan(multiAgentSpan, {
@@ -215,46 +306,85 @@ export class Graph {
215
306
  ...(result && { usage: result.usage }),
216
307
  ...(caughtError && { error: caughtError }),
217
308
  });
218
- yield new AfterMultiAgentInvocationEvent({ orchestrator: this, state, invocationState });
309
+ yield* this._emit(new AfterMultiAgentInvocationEvent({ orchestrator: this, state, invocationState }));
219
310
  }
220
- yield new MultiAgentResultEvent({ result, invocationState });
311
+ yield* this._emit(new MultiAgentResultEvent({ result, invocationState }));
221
312
  return result;
222
313
  }
223
314
  /**
224
- * Executes a single node, pushing streaming events to the shared queue in real-time.
315
+ * Invokes hook callbacks on an event, then yields it.
316
+ */
317
+ async *_emit(event) {
318
+ await this._hookRegistry.invokeCallbacks(event);
319
+ yield event;
320
+ }
321
+ /**
322
+ * Fires `BeforeNodeCallEvent` and handles hook-raised interrupts or cancels inline.
323
+ * Returns a synthetic NodeResult (INTERRUPTED or CANCELLED) when a hook gates the
324
+ * node, in which case the caller skips `_streamNode` and surfaces the result directly.
325
+ * Returns `undefined` when no hook gated the node and execution should proceed.
326
+ *
327
+ * Owns the `nodeSpan` on gated paths — `_streamNode` owns it on the ungated path.
328
+ * Yields the `NodeResultEvent` + `AfterNodeCallEvent` lifecycle pair on gated paths
329
+ * so observers see the same event sequence regardless of how the node terminated.
225
330
  */
226
- async _streamNode(node, input, state, queue, multiAgentSpan, invocationState) {
331
+ async *_runBeforeNodeCall(node, nodeSpan, state, invocationState) {
227
332
  const nodeState = state.node(node.id);
228
- const nodeSpan = this._tracer.withSpanContext(multiAgentSpan, () => this._tracer.startNodeSpan({ nodeId: node.id, nodeType: node.type }));
229
333
  const beforeEvent = new BeforeNodeCallEvent({ orchestrator: this, state, nodeId: node.id, invocationState });
230
- await queue.send({ type: 'event', node, event: beforeEvent });
334
+ try {
335
+ await this._hookRegistry.invokeCallbacks(beforeEvent);
336
+ }
337
+ catch (error) {
338
+ if (error instanceof InterruptError) {
339
+ const result = recordHookInterrupt(node.id, nodeState);
340
+ yield beforeEvent;
341
+ yield* this._emit(new NodeResultEvent({ nodeId: node.id, nodeType: node.type, state, result, invocationState }));
342
+ yield* this._emit(new AfterNodeCallEvent({ orchestrator: this, state, nodeId: node.id, invocationState }));
343
+ this._tracer.endNodeSpan(nodeSpan, { status: Status.INTERRUPTED, duration: result.duration });
344
+ return result;
345
+ }
346
+ throw error;
347
+ }
348
+ yield beforeEvent;
231
349
  if (beforeEvent.cancel) {
232
350
  const message = typeof beforeEvent.cancel === 'string' ? beforeEvent.cancel : 'node cancelled by hook';
351
+ // Cancel path doesn't go through Node.stream, so do its INTERRUPTED cleanup here.
352
+ dropStaleInterruptedResult(node.id, nodeState, state);
233
353
  const result = new NodeResult({ nodeId: node.id, status: Status.CANCELLED, duration: 0 });
234
354
  nodeState.status = Status.CANCELLED;
235
355
  nodeState.results.push(result);
236
- await queue.send({
237
- type: 'event',
238
- node,
239
- event: new NodeCancelEvent({ nodeId: node.id, state, message, invocationState }),
240
- });
241
- await queue.send({
242
- type: 'event',
243
- node,
244
- event: new AfterNodeCallEvent({ orchestrator: this, state, nodeId: node.id, invocationState }),
245
- });
356
+ yield* this._emit(new NodeCancelEvent({ nodeId: node.id, state, message, invocationState }));
357
+ yield* this._emit(new AfterNodeCallEvent({ orchestrator: this, state, nodeId: node.id, invocationState }));
246
358
  this._tracer.endNodeSpan(nodeSpan, { status: Status.CANCELLED, duration: 0 });
247
- queue.push({ type: 'result', node, result });
248
- return;
359
+ return result;
249
360
  }
361
+ return undefined;
362
+ }
363
+ /**
364
+ * Runs a node whose `BeforeNodeCallEvent` already fired without a hook gating it
365
+ * (interrupt or cancel are handled by `_runBeforeNodeCall` before this coroutine
366
+ * is spawned). Takes ownership of the already-started `nodeSpan` and ends it.
367
+ */
368
+ async _streamNode(node, input, state, queue, nodeSpan, invocationState, executionSignal) {
369
+ // Per-node timeout only applies to AgentNode; a nested MultiAgentNode manages
370
+ // its own node-level timeouts.
371
+ const nodeTimeout = node instanceof AgentNode ? (node.timeout ?? this.config.nodeTimeout) : Infinity;
372
+ const nodeTimeoutController = Number.isFinite(nodeTimeout) ? new AbortController() : undefined;
373
+ const nodeTimeoutHandle = nodeTimeoutController
374
+ ? setTimeout(() => nodeTimeoutController.abort(), nodeTimeout)
375
+ : undefined;
376
+ const signals = [executionSignal, nodeTimeoutController?.signal].filter((s) => s !== undefined);
377
+ const cancelSignal = signals.length > 0 ? AbortSignal.any(signals) : undefined;
250
378
  try {
251
- const nodeInput = this._resolveNodeInput(node, input, state);
252
- const gen = this._tracer.withSpanContext(nodeSpan, () => node.stream(nodeInput, state, { invocationState }));
379
+ const gen = this._tracer.withSpanContext(nodeSpan, () => node.stream(input, state, { invocationState, ...(cancelSignal && { cancelSignal }) }));
253
380
  let next = await this._tracer.withSpanContext(nodeSpan, () => gen.next());
254
381
  while (!next.done) {
255
382
  await queue.send({ type: 'event', node, event: next.value });
256
383
  next = await this._tracer.withSpanContext(nodeSpan, () => gen.next());
257
384
  }
385
+ if (nodeTimeoutController?.signal.aborted) {
386
+ throw new Error(`node_timeout=<${nodeTimeout}>, node_id=<${node.id}>, graph_id=<${this.id}> | node exceeded wall-clock budget`);
387
+ }
258
388
  const result = next.value;
259
389
  this._tracer.endNodeSpan(nodeSpan, { status: result.status, duration: result.duration, usage: result.usage });
260
390
  queue.push({ type: 'result', node, result });
@@ -284,6 +414,10 @@ export class Graph {
284
414
  error: nodeError,
285
415
  });
286
416
  }
417
+ finally {
418
+ if (nodeTimeoutHandle !== undefined)
419
+ clearTimeout(nodeTimeoutHandle);
420
+ }
287
421
  }
288
422
  _validateConfig() {
289
423
  if (this.config.maxConcurrency < 1) {
@@ -292,6 +426,12 @@ export class Graph {
292
426
  if (this.config.maxSteps < 1) {
293
427
  throw new Error(`max_steps=<${this.config.maxSteps}> | must be at least 1`);
294
428
  }
429
+ if (this.config.timeout < 1) {
430
+ throw new Error(`timeout=<${this.config.timeout}> | must be at least 1`);
431
+ }
432
+ if (this.config.nodeTimeout < 1) {
433
+ throw new Error(`node_timeout=<${this.config.nodeTimeout}> | must be at least 1`);
434
+ }
295
435
  }
296
436
  _validateSources() {
297
437
  if (this._sources.length === 0) {
@@ -397,8 +537,35 @@ export class Graph {
397
537
  }
398
538
  return [...state.nodes.values()].filter((ns) => ns.terminus).flatMap((ns) => ns.content);
399
539
  }
540
+ /**
541
+ * Chooses the input for a node about to be scheduled, handling the three resume cases:
542
+ * routed orchestrator-hook responses (forward leftovers to the agent), routed responses
543
+ * fully consumed by the hook (replay the original invocation input), and fresh runs
544
+ * (dependency-merged). Falls back to an empty input with a warning if a custom
545
+ * SessionManager dropped `_pendingInput`.
546
+ */
547
+ _resolveInputForScheduling(node, routed, contentInput, state) {
548
+ if (routed) {
549
+ const nodeState = state.node(node.id);
550
+ if (!nodeState) {
551
+ throw new Error(`node_id=<${node.id}>, graph_id=<${this.id}> | routed interrupt response targets a node missing from state; topology changed between save and resume?`);
552
+ }
553
+ const forwarded = applyOrchestratorHookResponses(nodeState, routed);
554
+ if (forwarded.length > 0)
555
+ return forwarded;
556
+ }
557
+ if (contentInput === undefined) {
558
+ logger.warn(`node_id=<${node.id}>, graph_id=<${this.id}> | no pending input on resume; using empty`);
559
+ return this._resolveNodeInput(node, '', state);
560
+ }
561
+ return this._resolveNodeInput(node, contentInput, state);
562
+ }
400
563
  /**
401
564
  * Builds the input for a node by combining the original task with dependency outputs.
565
+ *
566
+ * Only called for non-resume executions: the caller routes resume responses directly
567
+ * to interrupted nodes without going through dependency resolution, so this helper
568
+ * never sees `InterruptResponseContent[]`.
402
569
  */
403
570
  _resolveNodeInput(node, input, state) {
404
571
  const deps = [];
@@ -1 +1 @@
1
- {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../src/multiagent/graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../src/multiagent/graph.ts"],"names":[],"mappings":"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"}