@strands-agents/sdk 1.0.0 → 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 (245) hide show
  1. package/dist/src/__fixtures__/agent-helpers.d.ts +16 -1
  2. package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
  3. package/dist/src/__fixtures__/agent-helpers.js +42 -0
  4. package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
  5. package/dist/src/__fixtures__/tool-helpers.d.ts +2 -1
  6. package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
  7. package/dist/src/__fixtures__/tool-helpers.js +20 -3
  8. package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
  9. package/dist/src/__tests__/interrupt.test.d.ts +2 -0
  10. package/dist/src/__tests__/interrupt.test.d.ts.map +1 -0
  11. package/dist/src/__tests__/interrupt.test.js +259 -0
  12. package/dist/src/__tests__/interrupt.test.js.map +1 -0
  13. package/dist/src/__tests__/mcp.test.js +226 -0
  14. package/dist/src/__tests__/mcp.test.js.map +1 -1
  15. package/dist/src/agent/__tests__/agent.hook.test.js +551 -1
  16. package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -1
  17. package/dist/src/agent/__tests__/agent.interrupt.test.d.ts +2 -0
  18. package/dist/src/agent/__tests__/agent.interrupt.test.d.ts.map +1 -0
  19. package/dist/src/agent/__tests__/agent.interrupt.test.js +730 -0
  20. package/dist/src/agent/__tests__/agent.interrupt.test.js.map +1 -0
  21. package/dist/src/agent/__tests__/agent.model-retry.test.d.ts +2 -0
  22. package/dist/src/agent/__tests__/agent.model-retry.test.d.ts.map +1 -0
  23. package/dist/src/agent/__tests__/agent.model-retry.test.js +161 -0
  24. package/dist/src/agent/__tests__/agent.model-retry.test.js.map +1 -0
  25. package/dist/src/agent/__tests__/agent.test.js +118 -0
  26. package/dist/src/agent/__tests__/agent.test.js.map +1 -1
  27. package/dist/src/agent/__tests__/snapshot.test.js +50 -4
  28. package/dist/src/agent/__tests__/snapshot.test.js.map +1 -1
  29. package/dist/src/agent/agent.d.ts +35 -4
  30. package/dist/src/agent/agent.d.ts.map +1 -1
  31. package/dist/src/agent/agent.js +548 -222
  32. package/dist/src/agent/agent.js.map +1 -1
  33. package/dist/src/agent/snapshot.d.ts +2 -2
  34. package/dist/src/agent/snapshot.d.ts.map +1 -1
  35. package/dist/src/agent/snapshot.js +14 -2
  36. package/dist/src/agent/snapshot.js.map +1 -1
  37. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +230 -9
  38. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +1 -1
  39. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +19 -6
  40. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +1 -1
  41. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +51 -2
  42. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -1
  43. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js +75 -1
  44. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js.map +1 -1
  45. package/dist/src/conversation-manager/conversation-manager.d.ts +67 -22
  46. package/dist/src/conversation-manager/conversation-manager.d.ts.map +1 -1
  47. package/dist/src/conversation-manager/conversation-manager.js +65 -13
  48. package/dist/src/conversation-manager/conversation-manager.js.map +1 -1
  49. package/dist/src/conversation-manager/index.d.ts +1 -1
  50. package/dist/src/conversation-manager/index.d.ts.map +1 -1
  51. package/dist/src/conversation-manager/index.js +1 -1
  52. package/dist/src/conversation-manager/index.js.map +1 -1
  53. package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +17 -3
  54. package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -1
  55. package/dist/src/conversation-manager/sliding-window-conversation-manager.js +10 -4
  56. package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -1
  57. package/dist/src/conversation-manager/summarizing-conversation-manager.d.ts +23 -1
  58. package/dist/src/conversation-manager/summarizing-conversation-manager.d.ts.map +1 -1
  59. package/dist/src/conversation-manager/summarizing-conversation-manager.js +39 -17
  60. package/dist/src/conversation-manager/summarizing-conversation-manager.js.map +1 -1
  61. package/dist/src/hooks/__tests__/events.test.js +99 -12
  62. package/dist/src/hooks/__tests__/events.test.js.map +1 -1
  63. package/dist/src/hooks/__tests__/registry.test.js +166 -2
  64. package/dist/src/hooks/__tests__/registry.test.js.map +1 -1
  65. package/dist/src/hooks/events.d.ts +102 -30
  66. package/dist/src/hooks/events.d.ts.map +1 -1
  67. package/dist/src/hooks/events.js +87 -6
  68. package/dist/src/hooks/events.js.map +1 -1
  69. package/dist/src/hooks/index.d.ts +3 -2
  70. package/dist/src/hooks/index.d.ts.map +1 -1
  71. package/dist/src/hooks/index.js +1 -0
  72. package/dist/src/hooks/index.js.map +1 -1
  73. package/dist/src/hooks/registry.d.ts +12 -12
  74. package/dist/src/hooks/registry.d.ts.map +1 -1
  75. package/dist/src/hooks/registry.js +55 -15
  76. package/dist/src/hooks/registry.js.map +1 -1
  77. package/dist/src/hooks/types.d.ts +23 -0
  78. package/dist/src/hooks/types.d.ts.map +1 -1
  79. package/dist/src/hooks/types.js +17 -1
  80. package/dist/src/hooks/types.js.map +1 -1
  81. package/dist/src/index.d.ts +9 -5
  82. package/dist/src/index.d.ts.map +1 -1
  83. package/dist/src/index.js +4 -1
  84. package/dist/src/index.js.map +1 -1
  85. package/dist/src/interrupt.d.ts +220 -0
  86. package/dist/src/interrupt.d.ts.map +1 -0
  87. package/dist/src/interrupt.js +274 -0
  88. package/dist/src/interrupt.js.map +1 -0
  89. package/dist/src/mcp.d.ts +23 -2
  90. package/dist/src/mcp.d.ts.map +1 -1
  91. package/dist/src/mcp.js +77 -18
  92. package/dist/src/mcp.js.map +1 -1
  93. package/dist/src/models/__tests__/anthropic.test.js +55 -0
  94. package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
  95. package/dist/src/models/__tests__/bedrock.test.js +115 -0
  96. package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
  97. package/dist/src/models/__tests__/defaults.test.d.ts +2 -0
  98. package/dist/src/models/__tests__/defaults.test.d.ts.map +1 -0
  99. package/dist/src/models/__tests__/defaults.test.js +36 -0
  100. package/dist/src/models/__tests__/defaults.test.js.map +1 -0
  101. package/dist/src/models/__tests__/google.test.js +58 -0
  102. package/dist/src/models/__tests__/google.test.js.map +1 -1
  103. package/dist/src/models/anthropic.d.ts +8 -0
  104. package/dist/src/models/anthropic.d.ts.map +1 -1
  105. package/dist/src/models/anthropic.js +4 -2
  106. package/dist/src/models/anthropic.js.map +1 -1
  107. package/dist/src/models/bedrock.d.ts +15 -0
  108. package/dist/src/models/bedrock.d.ts.map +1 -1
  109. package/dist/src/models/bedrock.js +58 -4
  110. package/dist/src/models/bedrock.js.map +1 -1
  111. package/dist/src/models/defaults.d.ts +10 -0
  112. package/dist/src/models/defaults.d.ts.map +1 -1
  113. package/dist/src/models/defaults.js +129 -0
  114. package/dist/src/models/defaults.js.map +1 -1
  115. package/dist/src/models/google/model.d.ts.map +1 -1
  116. package/dist/src/models/google/model.js +4 -2
  117. package/dist/src/models/google/model.js.map +1 -1
  118. package/dist/src/models/google/types.d.ts +8 -0
  119. package/dist/src/models/google/types.d.ts.map +1 -1
  120. package/dist/src/models/model.d.ts +15 -0
  121. package/dist/src/models/model.d.ts.map +1 -1
  122. package/dist/src/models/model.js +18 -0
  123. package/dist/src/models/model.js.map +1 -1
  124. package/dist/src/models/openai/__tests__/chat.test.js +45 -0
  125. package/dist/src/models/openai/__tests__/chat.test.js.map +1 -1
  126. package/dist/src/models/openai/model.d.ts.map +1 -1
  127. package/dist/src/models/openai/model.js +2 -2
  128. package/dist/src/models/openai/model.js.map +1 -1
  129. package/dist/src/multiagent/__tests__/graph.test.js +69 -0
  130. package/dist/src/multiagent/__tests__/graph.test.js.map +1 -1
  131. package/dist/src/multiagent/__tests__/nodes.test.js +13 -0
  132. package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -1
  133. package/dist/src/multiagent/__tests__/swarm.test.js +77 -0
  134. package/dist/src/multiagent/__tests__/swarm.test.js.map +1 -1
  135. package/dist/src/multiagent/graph.d.ts +22 -2
  136. package/dist/src/multiagent/graph.d.ts.map +1 -1
  137. package/dist/src/multiagent/graph.js +42 -3
  138. package/dist/src/multiagent/graph.js.map +1 -1
  139. package/dist/src/multiagent/multiagent.d.ts +5 -3
  140. package/dist/src/multiagent/multiagent.d.ts.map +1 -1
  141. package/dist/src/multiagent/nodes.d.ts +18 -0
  142. package/dist/src/multiagent/nodes.d.ts.map +1 -1
  143. package/dist/src/multiagent/nodes.js +14 -1
  144. package/dist/src/multiagent/nodes.js.map +1 -1
  145. package/dist/src/multiagent/swarm.d.ts +15 -1
  146. package/dist/src/multiagent/swarm.d.ts.map +1 -1
  147. package/dist/src/multiagent/swarm.js +46 -3
  148. package/dist/src/multiagent/swarm.js.map +1 -1
  149. package/dist/src/registry/__tests__/tool-registry.test.js +11 -0
  150. package/dist/src/registry/__tests__/tool-registry.test.js.map +1 -1
  151. package/dist/src/registry/tool-registry.d.ts +4 -0
  152. package/dist/src/registry/tool-registry.d.ts.map +1 -1
  153. package/dist/src/registry/tool-registry.js +6 -0
  154. package/dist/src/registry/tool-registry.js.map +1 -1
  155. package/dist/src/retry/__tests__/backoff-strategy.test.d.ts +2 -0
  156. package/dist/src/retry/__tests__/backoff-strategy.test.d.ts.map +1 -0
  157. package/dist/src/retry/__tests__/backoff-strategy.test.js +116 -0
  158. package/dist/src/retry/__tests__/backoff-strategy.test.js.map +1 -0
  159. package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts +2 -0
  160. package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts.map +1 -0
  161. package/dist/src/retry/__tests__/default-model-retry-strategy.test.js +225 -0
  162. package/dist/src/retry/__tests__/default-model-retry-strategy.test.js.map +1 -0
  163. package/dist/src/retry/backoff-strategy.d.ts +108 -0
  164. package/dist/src/retry/backoff-strategy.d.ts.map +1 -0
  165. package/dist/src/retry/backoff-strategy.js +86 -0
  166. package/dist/src/retry/backoff-strategy.js.map +1 -0
  167. package/dist/src/retry/default-model-retry-strategy.d.ts +76 -0
  168. package/dist/src/retry/default-model-retry-strategy.d.ts.map +1 -0
  169. package/dist/src/retry/default-model-retry-strategy.js +104 -0
  170. package/dist/src/retry/default-model-retry-strategy.js.map +1 -0
  171. package/dist/src/retry/index.d.ts +8 -0
  172. package/dist/src/retry/index.d.ts.map +1 -0
  173. package/dist/src/retry/index.js +7 -0
  174. package/dist/src/retry/index.js.map +1 -0
  175. package/dist/src/retry/model-retry-strategy.d.ts +80 -0
  176. package/dist/src/retry/model-retry-strategy.d.ts.map +1 -0
  177. package/dist/src/retry/model-retry-strategy.js +85 -0
  178. package/dist/src/retry/model-retry-strategy.js.map +1 -0
  179. package/dist/src/retry/retry-strategy.d.ts +34 -0
  180. package/dist/src/retry/retry-strategy.d.ts.map +1 -0
  181. package/dist/src/retry/retry-strategy.js +25 -0
  182. package/dist/src/retry/retry-strategy.js.map +1 -0
  183. package/dist/src/session/__tests__/session-manager.test.js +39 -0
  184. package/dist/src/session/__tests__/session-manager.test.js.map +1 -1
  185. package/dist/src/session/session-manager.d.ts +6 -0
  186. package/dist/src/session/session-manager.d.ts.map +1 -1
  187. package/dist/src/session/session-manager.js +8 -0
  188. package/dist/src/session/session-manager.js.map +1 -1
  189. package/dist/src/tools/__tests__/tool.test.js +24 -1
  190. package/dist/src/tools/__tests__/tool.test.js.map +1 -1
  191. package/dist/src/tools/function-tool.d.ts.map +1 -1
  192. package/dist/src/tools/function-tool.js +6 -1
  193. package/dist/src/tools/function-tool.js.map +1 -1
  194. package/dist/src/tools/tool.d.ts +10 -1
  195. package/dist/src/tools/tool.d.ts.map +1 -1
  196. package/dist/src/tools/tool.js +12 -0
  197. package/dist/src/tools/tool.js.map +1 -1
  198. package/dist/src/tsconfig.tsbuildinfo +1 -1
  199. package/dist/src/types/agent.d.ts +22 -3
  200. package/dist/src/types/agent.d.ts.map +1 -1
  201. package/dist/src/types/agent.js +8 -0
  202. package/dist/src/types/agent.js.map +1 -1
  203. package/dist/src/types/interrupt.d.ts +103 -0
  204. package/dist/src/types/interrupt.d.ts.map +1 -0
  205. package/dist/src/types/interrupt.js +63 -0
  206. package/dist/src/types/interrupt.js.map +1 -0
  207. package/dist/src/types/messages.d.ts +2 -1
  208. package/dist/src/types/messages.d.ts.map +1 -1
  209. package/dist/src/types/messages.js.map +1 -1
  210. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts +2 -0
  211. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts.map +1 -0
  212. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js +292 -0
  213. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js.map +1 -0
  214. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts +2 -0
  215. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts.map +1 -0
  216. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js +148 -0
  217. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js.map +1 -0
  218. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts +2 -0
  219. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts.map +1 -0
  220. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js +78 -0
  221. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js.map +1 -0
  222. package/dist/src/vended-plugins/context-offloader/index.d.ts +23 -0
  223. package/dist/src/vended-plugins/context-offloader/index.d.ts.map +1 -0
  224. package/dist/src/vended-plugins/context-offloader/index.js +21 -0
  225. package/dist/src/vended-plugins/context-offloader/index.js.map +1 -0
  226. package/dist/src/vended-plugins/context-offloader/plugin.d.ts +48 -0
  227. package/dist/src/vended-plugins/context-offloader/plugin.d.ts.map +1 -0
  228. package/dist/src/vended-plugins/context-offloader/plugin.js +244 -0
  229. package/dist/src/vended-plugins/context-offloader/plugin.js.map +1 -0
  230. package/dist/src/vended-plugins/context-offloader/storage.d.ts +114 -0
  231. package/dist/src/vended-plugins/context-offloader/storage.d.ts.map +1 -0
  232. package/dist/src/vended-plugins/context-offloader/storage.js +204 -0
  233. package/dist/src/vended-plugins/context-offloader/storage.js.map +1 -0
  234. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js +12 -0
  235. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js.map +1 -1
  236. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +3 -0
  237. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +1 -1
  238. package/dist/src/vended-tools/bash/bash.d.ts.map +1 -1
  239. package/dist/src/vended-tools/bash/bash.js +0 -3
  240. package/dist/src/vended-tools/bash/bash.js.map +1 -1
  241. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js +3 -0
  242. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +1 -1
  243. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +3 -0
  244. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +1 -1
  245. package/package.json +9 -5
@@ -1,5 +1,5 @@
1
1
  import type { HookableEvent } from './events.js';
2
- import type { HookCallback, HookableEventConstructor, HookCleanup } from './types.js';
2
+ import type { HookCallback, HookableEventConstructor, HookCallbackOptions, HookCleanup } from './types.js';
3
3
  /**
4
4
  * Interface for hook registry operations.
5
5
  * Enables registration of hook callbacks for event-driven extensibility.
@@ -10,9 +10,10 @@ export interface HookRegistry {
10
10
  *
11
11
  * @param eventType - The event class constructor to register the callback for
12
12
  * @param callback - The callback function to invoke when the event occurs
13
+ * @param options - Optional configuration including execution order
13
14
  * @returns Cleanup function that removes the callback when invoked
14
15
  */
15
- addCallback<T extends HookableEvent>(eventType: HookableEventConstructor<T>, callback: HookCallback<T>): HookCleanup;
16
+ addCallback<T extends HookableEvent>(eventType: HookableEventConstructor<T>, callback: HookCallback<T>, options?: HookCallbackOptions): HookCleanup;
16
17
  }
17
18
  /**
18
19
  * Implementation of the hook registry for managing hook callbacks.
@@ -21,25 +22,24 @@ export interface HookRegistry {
21
22
  export declare class HookRegistryImplementation implements HookRegistry {
22
23
  private readonly _callbacks;
23
24
  constructor();
24
- /**
25
- * Register a callback function for a specific event type.
26
- *
27
- * @param eventType - The event class constructor to register the callback for
28
- * @param callback - The callback function to invoke when the event occurs
29
- * @returns Cleanup function that removes the callback when invoked
30
- */
31
- addCallback<T extends HookableEvent>(eventType: HookableEventConstructor<T>, callback: HookCallback<T>): HookCleanup;
25
+ /** {@inheritDoc HookRegistry.addCallback} */
26
+ addCallback<T extends HookableEvent>(eventType: HookableEventConstructor<T>, callback: HookCallback<T>, options?: HookCallbackOptions): HookCleanup;
32
27
  /**
33
28
  * Invoke all registered callbacks for the given event.
34
29
  * Awaits each callback, supporting both sync and async.
35
30
  *
31
+ * InterruptErrors are collected across callbacks rather than immediately thrown,
32
+ * allowing all hooks to register their interrupts. Non-interrupt errors propagate immediately.
33
+ *
36
34
  * @param event - The event to invoke callbacks for
37
35
  * @returns The event after all callbacks have been invoked
36
+ * @throws InterruptError with all collected interrupts after all callbacks complete
38
37
  */
39
38
  invokeCallbacks<T extends HookableEvent>(event: T): Promise<T>;
40
39
  /**
41
- * Get callbacks for a specific event with proper ordering.
42
- * Returns callbacks in reverse order if event should reverse callbacks.
40
+ * Get callbacks for a specific event in order.
41
+ * For After* events, reverses then re-sorts by order so that lower order
42
+ * still runs first, but same-order hooks run in reverse registration order.
43
43
  *
44
44
  * @param event - The event to get callbacks for
45
45
  * @returns Array of callbacks for the event
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/hooks/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AASrF;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,SAAS,aAAa,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAA;CACrH;AAED;;;GAGG;AACH,qBAAa,0BAA2B,YAAW,YAAY;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgD;;IAM3E;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,SAAS,aAAa,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW;IAgBpH;;;;;;OAMG;IACG,eAAe,CAAC,CAAC,SAAS,aAAa,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAQpE;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;CAKxB"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/hooks/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAW1G;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;OAOG;IACH,WAAW,CAAC,CAAC,SAAS,aAAa,EACjC,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC,EACtC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EACzB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,WAAW,CAAA;CACf;AAED;;;GAGG;AACH,qBAAa,0BAA2B,YAAW,YAAY;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgD;;IAM3E,6CAA6C;IAC7C,WAAW,CAAC,CAAC,SAAS,aAAa,EACjC,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC,EACtC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EACzB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,WAAW;IAyBd;;;;;;;;;;OAUG;IACG,eAAe,CAAC,CAAC,SAAS,aAAa,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAmCpE;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;CAQxB"}
@@ -1,3 +1,5 @@
1
+ import { HookOrder } from './types.js';
2
+ import { InterruptError, Interrupt } from '../interrupt.js';
1
3
  /**
2
4
  * Implementation of the hook registry for managing hook callbacks.
3
5
  * Maintains mappings between event types and callback functions.
@@ -7,17 +9,21 @@ export class HookRegistryImplementation {
7
9
  constructor() {
8
10
  this._callbacks = new Map();
9
11
  }
10
- /**
11
- * Register a callback function for a specific event type.
12
- *
13
- * @param eventType - The event class constructor to register the callback for
14
- * @param callback - The callback function to invoke when the event occurs
15
- * @returns Cleanup function that removes the callback when invoked
16
- */
17
- addCallback(eventType, callback) {
18
- const entry = { callback: callback };
12
+ /** {@inheritDoc HookRegistry.addCallback} */
13
+ addCallback(eventType, callback, options) {
14
+ const entry = {
15
+ callback: callback,
16
+ order: options?.order ?? HookOrder.DEFAULT,
17
+ };
19
18
  const callbacks = this._callbacks.get(eventType) ?? [];
20
- callbacks.push(entry);
19
+ // Insert in sorted position: lower order first, same order preserves registration order
20
+ const insertAt = callbacks.findIndex((e) => e.order > entry.order);
21
+ if (insertAt === -1) {
22
+ callbacks.push(entry);
23
+ }
24
+ else {
25
+ callbacks.splice(insertAt, 0, entry);
26
+ }
21
27
  this._callbacks.set(eventType, callbacks);
22
28
  return () => {
23
29
  const callbacks = this._callbacks.get(eventType);
@@ -33,27 +39,61 @@ export class HookRegistryImplementation {
33
39
  * Invoke all registered callbacks for the given event.
34
40
  * Awaits each callback, supporting both sync and async.
35
41
  *
42
+ * InterruptErrors are collected across callbacks rather than immediately thrown,
43
+ * allowing all hooks to register their interrupts. Non-interrupt errors propagate immediately.
44
+ *
36
45
  * @param event - The event to invoke callbacks for
37
46
  * @returns The event after all callbacks have been invoked
47
+ * @throws InterruptError with all collected interrupts after all callbacks complete
38
48
  */
39
49
  async invokeCallbacks(event) {
40
50
  const callbacks = this.getCallbacksFor(event);
51
+ const collectedInterrupts = [];
41
52
  for (const callback of callbacks) {
42
- await callback(event);
53
+ try {
54
+ await callback(event);
55
+ }
56
+ catch (error) {
57
+ if (error instanceof InterruptError) {
58
+ collectedInterrupts.push(...error.interrupts);
59
+ }
60
+ else {
61
+ throw error;
62
+ }
63
+ }
64
+ }
65
+ if (collectedInterrupts.length > 0) {
66
+ const seen = new Set();
67
+ const duplicates = new Set();
68
+ for (const interrupt of collectedInterrupts) {
69
+ if (seen.has(interrupt.name)) {
70
+ duplicates.add(interrupt.name);
71
+ }
72
+ seen.add(interrupt.name);
73
+ }
74
+ if (duplicates.size > 0) {
75
+ const names = [...duplicates].join(', ');
76
+ throw new Error(`interrupt_names=<${names}> | duplicate interrupt names`);
77
+ }
78
+ throw new InterruptError(collectedInterrupts);
43
79
  }
44
80
  return event;
45
81
  }
46
82
  /**
47
- * Get callbacks for a specific event with proper ordering.
48
- * Returns callbacks in reverse order if event should reverse callbacks.
83
+ * Get callbacks for a specific event in order.
84
+ * For After* events, reverses then re-sorts by order so that lower order
85
+ * still runs first, but same-order hooks run in reverse registration order.
49
86
  *
50
87
  * @param event - The event to get callbacks for
51
88
  * @returns Array of callbacks for the event
52
89
  */
53
90
  getCallbacksFor(event) {
54
91
  const entries = this._callbacks.get(event.constructor) ?? [];
55
- const callbacks = entries.map((entry) => entry.callback);
56
- return (event._shouldReverseCallbacks() ? [...callbacks].reverse() : callbacks);
92
+ if (event._shouldReverseCallbacks()) {
93
+ const reversed = [...entries].reverse().sort((a, b) => a.order - b.order);
94
+ return reversed.map((entry) => entry.callback);
95
+ }
96
+ return entries.map((entry) => entry.callback);
57
97
  }
58
98
  }
59
99
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/hooks/registry.ts"],"names":[],"mappings":"AAyBA;;;GAGG;AACH,MAAM,OAAO,0BAA0B;IACpB,UAAU,CAAgD;IAE3E;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAA;IAC7B,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAA0B,SAAsC,EAAE,QAAyB;QACpG,MAAM,KAAK,GAAkB,EAAE,QAAQ,EAAE,QAAuC,EAAE,CAAA;QAClF,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;QACtD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACrB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAEzC,OAAO,GAAG,EAAE;YACV,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YAChD,IAAI,CAAC,SAAS;gBAAE,OAAM;YACtB,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACtC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;YAC5B,CAAC;QACH,CAAC,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CAA0B,KAAQ;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QAC7C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAA;QACvB,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;;;OAMG;IACK,eAAe,CAA0B,KAAQ;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,WAA0C,CAAC,IAAI,EAAE,CAAA;QAC3F,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACxD,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAsB,CAAA;IACtG,CAAC;CACF"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/hooks/registry.ts"],"names":[],"mappings":"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"}
@@ -15,10 +15,33 @@ export type HookableEventConstructor<T extends HookableEvent = HookableEvent> =
15
15
  * ```
16
16
  */
17
17
  export type HookCallback<T extends HookableEvent> = (event: T) => void | Promise<void>;
18
+ /**
19
+ * Options for registering a hook callback.
20
+ */
21
+ export interface HookCallbackOptions {
22
+ order?: number;
23
+ }
18
24
  /**
19
25
  * Function that removes a previously registered hook callback.
20
26
  * Safe to call multiple times (idempotent).
21
27
  * No-op if the callback is no longer registered.
22
28
  */
23
29
  export type HookCleanup = () => void;
30
+ /**
31
+ * Presets for hook execution order. Lower values run first.
32
+ * Any number is a valid order — these presets are not bounds, just convenient
33
+ * reference points. SDK_FIRST/SDK_LAST mark where the SDK's own hooks run,
34
+ * so you can position yours relative to them.
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * agent.addHook(BeforeToolCallEvent, callback, { order: HookOrder.SDK_FIRST }) // run with the SDK's earliest hooks
39
+ * agent.addHook(BeforeToolCallEvent, callback, { order: HookOrder.SDK_FIRST - 1 }) // run before the SDK's earliest hooks
40
+ * ```
41
+ */
42
+ export declare const HookOrder: {
43
+ readonly SDK_FIRST: -100;
44
+ readonly DEFAULT: 0;
45
+ readonly SDK_LAST: 100;
46
+ };
24
47
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD;;GAEG;AAEH,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AAEzG;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAEtF;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD;;GAEG;AAEH,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AAEzG;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAEtF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAA;AAEpC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS;;;;CAIZ,CAAA"}
@@ -1,2 +1,18 @@
1
- export {};
1
+ /**
2
+ * Presets for hook execution order. Lower values run first.
3
+ * Any number is a valid order — these presets are not bounds, just convenient
4
+ * reference points. SDK_FIRST/SDK_LAST mark where the SDK's own hooks run,
5
+ * so you can position yours relative to them.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * agent.addHook(BeforeToolCallEvent, callback, { order: HookOrder.SDK_FIRST }) // run with the SDK's earliest hooks
10
+ * agent.addHook(BeforeToolCallEvent, callback, { order: HookOrder.SDK_FIRST - 1 }) // run before the SDK's earliest hooks
11
+ * ```
12
+ */
13
+ export const HookOrder = {
14
+ SDK_FIRST: -100,
15
+ DEFAULT: 0,
16
+ SDK_LAST: 100,
17
+ };
2
18
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/types.ts"],"names":[],"mappings":"AAmCA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,SAAS,EAAE,CAAC,GAAG;IACf,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,GAAG;CACL,CAAA"}
@@ -9,8 +9,11 @@ export { StateStore } from './state-store.js';
9
9
  export { AgentResult } from './types/agent.js';
10
10
  export type { AgentConfig, ToolList, ToolExecutorStrategy } from './agent/agent.js';
11
11
  export type { AgentAsToolOptions } from './agent/agent-as-tool.js';
12
- export type { InvocationState, InvokeOptions, LocalAgent } from './types/agent.js';
12
+ export type { InvocationState, InvokeArgs, InvokeOptions, LocalAgent } from './types/agent.js';
13
13
  export { ModelError, ContextWindowOverflowError, MaxTokensError, JsonValidationError, ConcurrentInvocationError, ModelThrottledError, ToolValidationError, StructuredOutputError, } from './errors.js';
14
+ export type { Interrupt } from './interrupt.js';
15
+ export type { InterruptParams, InterruptResponse, InterruptResponseContentData } from './types/interrupt.js';
16
+ export { InterruptResponseContent } from './types/interrupt.js';
14
17
  export type { JSONSchema, JSONValue } from './types/json.js';
15
18
  export type { Role, StopReason, TextBlockData, ToolUseBlockData, ToolResultBlockData, ReasoningBlockData, CachePointBlockData, GuardContentBlockData, GuardContentText, GuardContentImage, GuardQualifier, GuardImageFormat, GuardImageSource, ContentBlock, ContentBlockData, MessageData, SystemPrompt, SystemPromptData, SystemContentBlock, ToolResultContent, } from './types/messages.js';
16
19
  export { TextBlock, ToolUseBlock, ToolResultBlock, ReasoningBlock, CachePointBlock, GuardContentBlock, Message, JsonBlock, contentBlockFromData, toolResultContentFromData, } from './types/messages.js';
@@ -33,16 +36,17 @@ export { Model } from './models/model.js';
33
36
  export { BedrockModel as BedrockModel } from './models/bedrock.js';
34
37
  export type { BedrockModelConfig, BedrockModelOptions, BedrockGuardrailConfig, BedrockGuardrailRedactionConfig, } from './models/bedrock.js';
35
38
  export type { AgentStreamEvent } from './types/agent.js';
36
- export { HookRegistry, StreamEvent, HookableEvent, InitializedEvent, BeforeInvocationEvent, AfterInvocationEvent, MessageAddedEvent, BeforeToolCallEvent, AfterToolCallEvent, BeforeModelCallEvent, AfterModelCallEvent, BeforeToolsEvent, AfterToolsEvent, ContentBlockEvent, ModelMessageEvent, ToolResultEvent, ToolStreamUpdateEvent, AgentResultEvent, ModelStreamUpdateEvent, } from './hooks/index.js';
37
- export type { HookCallback, HookableEventConstructor, ModelStopResponse, Redaction } from './hooks/index.js';
39
+ export { HookRegistry, HookOrder, StreamEvent, HookableEvent, InitializedEvent, BeforeInvocationEvent, AfterInvocationEvent, MessageAddedEvent, BeforeToolCallEvent, AfterToolCallEvent, BeforeModelCallEvent, AfterModelCallEvent, BeforeToolsEvent, AfterToolsEvent, ContentBlockEvent, ModelMessageEvent, ToolResultEvent, ToolStreamUpdateEvent, AgentResultEvent, ModelStreamUpdateEvent, } from './hooks/index.js';
40
+ export type { HookCallback, HookableEventConstructor, HookCallbackOptions, ModelStopResponse, Redaction, ToolUseData, } from './hooks/index.js';
38
41
  export type { Plugin } from './plugins/index.js';
39
- export { ConversationManager, type ConversationManagerReduceOptions, } from './conversation-manager/conversation-manager.js';
42
+ export { type BackoffContext, type BackoffStrategy, type JitterKind, type ConstantBackoffOptions, type LinearBackoffOptions, type ExponentialBackoffOptions, ConstantBackoff, LinearBackoff, ExponentialBackoff, ModelRetryStrategy, DefaultModelRetryStrategy, type DefaultModelRetryStrategyOptions, type RetryStrategy, type RetryDecision, } from './retry/index.js';
43
+ export { ConversationManager, type ProactiveCompressionConfig, type ConversationManagerReduceOptions, type ConversationManagerOptions, } from './conversation-manager/conversation-manager.js';
40
44
  export { NullConversationManager } from './conversation-manager/null-conversation-manager.js';
41
45
  export { SlidingWindowConversationManager, type SlidingWindowConversationManagerConfig, } from './conversation-manager/sliding-window-conversation-manager.js';
42
46
  export { SummarizingConversationManager, type SummarizingConversationManagerConfig, } from './conversation-manager/summarizing-conversation-manager.js';
43
47
  export { configureLogging } from './logging/logger.js';
44
48
  export type { Logger } from './logging/types.js';
45
- export { type McpClientConfig, type McpTransport, type TasksConfig, McpClient } from './mcp.js';
49
+ export { type McpClientConfig, type McpTransport, type TasksConfig, type McpConnectionState, McpClient } from './mcp.js';
46
50
  export type { ElicitationCallback, ElicitationContext } from './types/elicitation.js';
47
51
  export { SessionManager } from './session/session-manager.js';
48
52
  export type { SessionManagerConfig, SaveLatestStrategy, MultiAgentSaveLatestStrategy, } from './session/session-manager.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -14,6 +14,7 @@ export { AgentResult } from './types/agent.js';
14
14
  // Note: CancelledError is intentionally not exported — it is an internal
15
15
  // control-flow mechanism, never thrown to consumers. See its docstring in errors.ts.
16
16
  export { ModelError, ContextWindowOverflowError, MaxTokensError, JsonValidationError, ConcurrentInvocationError, ModelThrottledError, ToolValidationError, StructuredOutputError, } from './errors.js';
17
+ export { InterruptResponseContent } from './types/interrupt.js';
17
18
  // Message classes
18
19
  export { TextBlock, ToolUseBlock, ToolResultBlock, ReasoningBlock, CachePointBlock, GuardContentBlock, Message, JsonBlock, contentBlockFromData, toolResultContentFromData, } from './types/messages.js';
19
20
  // Citation class
@@ -34,7 +35,9 @@ export { Model } from './models/model.js';
34
35
  // Bedrock model provider
35
36
  export { BedrockModel as BedrockModel } from './models/bedrock.js';
36
37
  // Hooks system
37
- export { HookRegistry, StreamEvent, HookableEvent, InitializedEvent, BeforeInvocationEvent, AfterInvocationEvent, MessageAddedEvent, BeforeToolCallEvent, AfterToolCallEvent, BeforeModelCallEvent, AfterModelCallEvent, BeforeToolsEvent, AfterToolsEvent, ContentBlockEvent, ModelMessageEvent, ToolResultEvent, ToolStreamUpdateEvent, AgentResultEvent, ModelStreamUpdateEvent, } from './hooks/index.js';
38
+ export { HookRegistry, HookOrder, StreamEvent, HookableEvent, InitializedEvent, BeforeInvocationEvent, AfterInvocationEvent, MessageAddedEvent, BeforeToolCallEvent, AfterToolCallEvent, BeforeModelCallEvent, AfterModelCallEvent, BeforeToolsEvent, AfterToolsEvent, ContentBlockEvent, ModelMessageEvent, ToolResultEvent, ToolStreamUpdateEvent, AgentResultEvent, ModelStreamUpdateEvent, } from './hooks/index.js';
39
+ // Retry
40
+ export { ConstantBackoff, LinearBackoff, ExponentialBackoff, ModelRetryStrategy, DefaultModelRetryStrategy, } from './retry/index.js';
38
41
  // Conversation Manager
39
42
  export { ConversationManager, } from './conversation-manager/conversation-manager.js';
40
43
  export { NullConversationManager } from './conversation-manager/null-conversation-manager.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,220 @@
1
+ /**
2
+ * Human-in-the-loop interrupt system for agent workflows.
3
+ *
4
+ * Interrupt Flow:
5
+ * 1. Hook or tool calls `event.interrupt()` or `context.interrupt()`
6
+ * 2. If resuming (response exists), the response is returned
7
+ * 3. Otherwise, agent execution halts with `stopReason: 'interrupt'`
8
+ * 4. User resumes by invoking agent with `interruptResponse` content blocks
9
+ * 5. On resume, `interrupt()` returns the user's response
10
+ */
11
+ import { InterruptResponseContent, type InterruptResponseContentData, type InterruptParams } from './types/interrupt.js';
12
+ import type { JSONValue } from './types/json.js';
13
+ import type { LocalAgent } from './types/agent.js';
14
+ import { Message, ToolResultBlock, type MessageData, type ToolResultBlockData } from './types/messages.js';
15
+ /**
16
+ * Represents an interrupt that can pause agent execution for human-in-the-loop workflows.
17
+ */
18
+ export declare class Interrupt {
19
+ /**
20
+ * Unique identifier for this interrupt.
21
+ */
22
+ readonly id: string;
23
+ /**
24
+ * User-defined name for the interrupt.
25
+ */
26
+ readonly name: string;
27
+ /**
28
+ * User-provided reason for raising the interrupt.
29
+ */
30
+ readonly reason?: JSONValue;
31
+ /**
32
+ * Human response provided when resuming the agent after an interrupt.
33
+ */
34
+ response?: JSONValue;
35
+ constructor(data: {
36
+ id: string;
37
+ name: string;
38
+ reason?: JSONValue;
39
+ response?: JSONValue;
40
+ });
41
+ /**
42
+ * Serializes the interrupt to a JSON-compatible object.
43
+ */
44
+ toJSON(): {
45
+ id: string;
46
+ name: string;
47
+ reason?: JSONValue;
48
+ response?: JSONValue;
49
+ };
50
+ /**
51
+ * Creates an Interrupt instance from a JSON object.
52
+ *
53
+ * @param data - JSON data to deserialize
54
+ * @returns Interrupt instance
55
+ */
56
+ static fromJSON(data: {
57
+ id: string;
58
+ name: string;
59
+ reason?: JSONValue;
60
+ response?: JSONValue;
61
+ }): Interrupt;
62
+ }
63
+ /**
64
+ * Error thrown when human input is required to continue agent execution.
65
+ * Caught by the agent loop to trigger an interrupt stop.
66
+ */
67
+ export declare class InterruptError extends Error {
68
+ /**
69
+ * The interrupts that caused this error.
70
+ */
71
+ readonly interrupts: Interrupt[];
72
+ constructor(interrupt: Interrupt | Interrupt[]);
73
+ }
74
+ /**
75
+ * Data format for serialized interrupt state.
76
+ */
77
+ export interface InterruptStateData {
78
+ /**
79
+ * Map of interrupt IDs to interrupt data.
80
+ */
81
+ interrupts: Record<string, {
82
+ id: string;
83
+ name: string;
84
+ reason?: JSONValue;
85
+ response?: JSONValue;
86
+ }>;
87
+ /**
88
+ * Resume responses that were provided when resuming from an interrupt.
89
+ */
90
+ resumeResponses?: InterruptResponseContentData[] | undefined;
91
+ /**
92
+ * Whether the agent is in an interrupted state.
93
+ */
94
+ activated: boolean;
95
+ /**
96
+ * Pending tool execution state for resume after interrupt.
97
+ */
98
+ pendingToolExecution?: PendingToolExecution | undefined;
99
+ }
100
+ /**
101
+ * Pending tool execution state stored when an interrupt occurs mid-execution.
102
+ * Contains all data needed to resume tool execution without re-calling the model.
103
+ */
104
+ export interface PendingToolExecution {
105
+ /**
106
+ * The assistant message containing tool use blocks, serialized as MessageData.
107
+ */
108
+ assistantMessageData: MessageData;
109
+ /**
110
+ * Tool results that were completed before the interrupt.
111
+ * Maps toolUseId to serialized ToolResultBlock data.
112
+ */
113
+ completedToolResults: Record<string, {
114
+ toolResult: ToolResultBlockData;
115
+ }>;
116
+ }
117
+ /**
118
+ * Tracks the state of interrupt events raised during agent execution.
119
+ *
120
+ * Interrupt state is cleared after resuming.
121
+ */
122
+ export declare class InterruptState implements InterruptStateData {
123
+ /** Record of interrupt IDs to Interrupt instances. */
124
+ interrupts: Record<string, Interrupt>;
125
+ /** Resume responses provided when resuming from an interrupt. */
126
+ resumeResponses?: InterruptResponseContent[] | undefined;
127
+ /** Whether the agent is in an interrupted state. */
128
+ activated: boolean;
129
+ /** Pending tool execution state for resume. */
130
+ pendingToolExecution?: PendingToolExecution | undefined;
131
+ constructor();
132
+ /**
133
+ * Gets the pending tool execution state with reconstructed Message and ToolResultBlock objects.
134
+ * Returns undefined if there is no pending execution.
135
+ */
136
+ getPendingExecution(): {
137
+ assistantMessage: Message;
138
+ completedToolResults: Map<string, ToolResultBlock>;
139
+ } | undefined;
140
+ /**
141
+ * Sets the pending tool execution state.
142
+ */
143
+ setPendingToolExecution(pending: PendingToolExecution): void;
144
+ /**
145
+ * Clears the pending tool execution state.
146
+ */
147
+ clearPendingToolExecution(): void;
148
+ /**
149
+ * Returns the list of interrupts as an array.
150
+ */
151
+ getInterruptsList(): Interrupt[];
152
+ /**
153
+ * Returns all interrupts that have no response (i.e., were raised but not yet answered).
154
+ */
155
+ getUnansweredInterrupts(): Interrupt[];
156
+ /**
157
+ * Returns the first interrupt that has no response (i.e., was raised but not yet answered).
158
+ */
159
+ getUnansweredInterrupt(): Interrupt | undefined;
160
+ /**
161
+ * Activates the interrupt state.
162
+ */
163
+ activate(): void;
164
+ /**
165
+ * Deactivates the interrupt state and clears all interrupts and context.
166
+ */
167
+ deactivate(): void;
168
+ /**
169
+ * Configures the interrupt state for resuming from an interrupt.
170
+ * Populates interrupt responses from the provided content blocks.
171
+ *
172
+ * @param responses - Array of interrupt response content blocks
173
+ * @throws Error if an interrupt ID is not found
174
+ */
175
+ resume(responses: InterruptResponseContent[]): void;
176
+ /**
177
+ * Gets or creates an interrupt with the given ID.
178
+ * If the interrupt already exists, returns it (potentially with a response).
179
+ * If a preemptive response is provided and the interrupt is new, the response
180
+ * is stored on the interrupt so it returns immediately without halting execution.
181
+ *
182
+ * @param id - Unique identifier for the interrupt
183
+ * @param name - User-defined name for the interrupt
184
+ * @param reason - Optional reason for the interrupt
185
+ * @param response - Optional preemptive response to skip the interrupt
186
+ * @returns The interrupt (may have a response if resuming or preemptive)
187
+ */
188
+ getOrCreateInterrupt(id: string, name: string, reason?: JSONValue, response?: JSONValue): Interrupt;
189
+ /**
190
+ * Serializes the interrupt state to a JSON-compatible object.
191
+ */
192
+ toJSON(): InterruptStateData;
193
+ /**
194
+ * Creates an InterruptState instance from a JSON object.
195
+ *
196
+ * @param data - JSON data to deserialize
197
+ * @returns InterruptState instance
198
+ */
199
+ static fromJSON(data: InterruptStateData): InterruptState;
200
+ }
201
+ /**
202
+ * Interface for objects that support human-in-the-loop interrupts.
203
+ * Implemented by hook events and tool contexts that can pause agent execution.
204
+ */
205
+ export interface Interruptible {
206
+ interrupt<T = JSONValue>(params: InterruptParams): T;
207
+ }
208
+ /**
209
+ * Shared interrupt logic that accesses the agent's interrupt state to register or resume an interrupt.
210
+ *
211
+ * @param agent - The agent whose interrupt state to access
212
+ * @param interruptId - Unique identifier for this interrupt instance
213
+ * @param params - Interrupt parameters including name and optional reason
214
+ * @returns The user's response when resuming from an interrupt
215
+ * @throws InterruptError when no response is available (first invocation)
216
+ *
217
+ * @internal
218
+ */
219
+ export declare function interruptFromAgent<T>(agent: LocalAgent, interruptId: string, params: InterruptParams): T;
220
+ //# sourceMappingURL=interrupt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interrupt.d.ts","sourceRoot":"","sources":["../../src/interrupt.ts"],"names":[],"mappings":"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"}