@strands-agents/sdk 1.6.0 → 1.8.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 (708) hide show
  1. package/dist/src/agent/agent.d.ts +1 -1
  2. package/dist/src/agent/agent.d.ts.map +1 -1
  3. package/dist/src/agent/agent.js +1 -1
  4. package/dist/src/agent/agent.js.map +1 -1
  5. package/dist/src/context-manager/modes/agentic/agentic-context.d.ts +3 -3
  6. package/dist/src/context-manager/modes/agentic/agentic-context.d.ts.map +1 -1
  7. package/dist/src/index.d.ts +1 -1
  8. package/dist/src/index.d.ts.map +1 -1
  9. package/dist/src/index.js +1 -1
  10. package/dist/src/index.js.map +1 -1
  11. package/dist/src/index.node.d.ts.map +1 -1
  12. package/dist/src/index.node.js +3 -0
  13. package/dist/src/index.node.js.map +1 -1
  14. package/dist/src/interventions/actions.d.ts.map +1 -1
  15. package/dist/src/interventions/actions.js.map +1 -1
  16. package/dist/src/{mcp.d.ts → mcp/client.d.ts} +13 -4
  17. package/dist/src/mcp/client.d.ts.map +1 -0
  18. package/dist/src/{mcp.js → mcp/client.js} +15 -3
  19. package/dist/src/mcp/client.js.map +1 -0
  20. package/dist/src/mcp/config.d.ts +52 -0
  21. package/dist/src/mcp/config.d.ts.map +1 -0
  22. package/dist/src/mcp/config.js +12 -0
  23. package/dist/src/mcp/config.js.map +1 -0
  24. package/dist/src/mcp/config.node.d.ts +16 -0
  25. package/dist/src/mcp/config.node.d.ts.map +1 -0
  26. package/dist/src/mcp/config.node.js +145 -0
  27. package/dist/src/mcp/config.node.js.map +1 -0
  28. package/dist/src/mcp/index.d.ts +3 -0
  29. package/dist/src/mcp/index.d.ts.map +1 -0
  30. package/dist/src/mcp/index.js +2 -0
  31. package/dist/src/mcp/index.js.map +1 -0
  32. package/dist/src/memory/extraction/coordinator.d.ts +6 -1
  33. package/dist/src/memory/extraction/coordinator.d.ts.map +1 -1
  34. package/dist/src/memory/extraction/coordinator.js +48 -10
  35. package/dist/src/memory/extraction/coordinator.js.map +1 -1
  36. package/dist/src/memory/extraction/model-extractor.d.ts.map +1 -1
  37. package/dist/src/memory/extraction/model-extractor.js +30 -9
  38. package/dist/src/memory/extraction/model-extractor.js.map +1 -1
  39. package/dist/src/memory/extraction/types.d.ts +7 -0
  40. package/dist/src/memory/extraction/types.d.ts.map +1 -1
  41. package/dist/src/memory/extraction/types.js.map +1 -1
  42. package/dist/src/memory/memory-manager.d.ts +15 -2
  43. package/dist/src/memory/memory-manager.d.ts.map +1 -1
  44. package/dist/src/memory/memory-manager.js +123 -45
  45. package/dist/src/memory/memory-manager.js.map +1 -1
  46. package/dist/src/memory/types.d.ts +7 -0
  47. package/dist/src/memory/types.d.ts.map +1 -1
  48. package/dist/src/models/google/adapters.d.ts.map +1 -1
  49. package/dist/src/models/google/adapters.js +21 -3
  50. package/dist/src/models/google/adapters.js.map +1 -1
  51. package/dist/src/models/model.d.ts.map +1 -1
  52. package/dist/src/models/model.js +2 -1
  53. package/dist/src/models/model.js.map +1 -1
  54. package/dist/src/models/openai/errors.d.ts.map +1 -1
  55. package/dist/src/models/openai/errors.js +4 -1
  56. package/dist/src/models/openai/errors.js.map +1 -1
  57. package/dist/src/models/openai/responses-adapter.d.ts +1 -0
  58. package/dist/src/models/openai/responses-adapter.d.ts.map +1 -1
  59. package/dist/src/models/openai/responses-adapter.js +24 -10
  60. package/dist/src/models/openai/responses-adapter.js.map +1 -1
  61. package/dist/src/multiagent/graph.d.ts +7 -0
  62. package/dist/src/multiagent/graph.d.ts.map +1 -1
  63. package/dist/src/multiagent/graph.js +26 -2
  64. package/dist/src/multiagent/graph.js.map +1 -1
  65. package/dist/src/multiagent/nodes.d.ts +5 -0
  66. package/dist/src/multiagent/nodes.d.ts.map +1 -1
  67. package/dist/src/multiagent/nodes.js +15 -0
  68. package/dist/src/multiagent/nodes.js.map +1 -1
  69. package/dist/src/multiagent/state.d.ts.map +1 -1
  70. package/dist/src/multiagent/state.js.map +1 -1
  71. package/dist/src/telemetry/tracer.d.ts +82 -2
  72. package/dist/src/telemetry/tracer.d.ts.map +1 -1
  73. package/dist/src/telemetry/tracer.js +242 -3
  74. package/dist/src/telemetry/tracer.js.map +1 -1
  75. package/dist/src/telemetry/types.d.ts +86 -1
  76. package/dist/src/telemetry/types.d.ts.map +1 -1
  77. package/dist/src/tools/function-tool.d.ts +1 -1
  78. package/dist/src/tools/function-tool.d.ts.map +1 -1
  79. package/dist/src/tools/function-tool.js +4 -12
  80. package/dist/src/tools/function-tool.js.map +1 -1
  81. package/dist/src/tools/mcp-tool.d.ts +2 -1
  82. package/dist/src/tools/mcp-tool.d.ts.map +1 -1
  83. package/dist/src/tools/mcp-tool.js +1 -0
  84. package/dist/src/tools/mcp-tool.js.map +1 -1
  85. package/dist/src/tools/tool-factory.d.ts +1 -1
  86. package/dist/src/tools/tool-factory.d.ts.map +1 -1
  87. package/dist/src/tools/types.d.ts +4 -0
  88. package/dist/src/tools/types.d.ts.map +1 -1
  89. package/dist/src/tools/zod-tool.d.ts +4 -2
  90. package/dist/src/tools/zod-tool.d.ts.map +1 -1
  91. package/dist/src/tools/zod-tool.js.map +1 -1
  92. package/dist/src/tsconfig.tsbuildinfo +1 -1
  93. package/dist/src/types/json.js +2 -2
  94. package/dist/src/types/json.js.map +1 -1
  95. package/dist/src/types/media.d.ts.map +1 -1
  96. package/dist/src/types/media.js.map +1 -1
  97. package/dist/src/types/messages.d.ts.map +1 -1
  98. package/dist/src/types/messages.js.map +1 -1
  99. package/dist/src/vended-interventions/cedar/cedar.d.ts +12 -0
  100. package/dist/src/vended-interventions/cedar/cedar.d.ts.map +1 -1
  101. package/dist/src/vended-interventions/cedar/cedar.js +15 -4
  102. package/dist/src/vended-interventions/cedar/cedar.js.map +1 -1
  103. package/dist/src/vended-interventions/cedar/schema-generator.d.ts +1 -1
  104. package/dist/src/vended-interventions/cedar/schema-generator.d.ts.map +1 -1
  105. package/dist/src/vended-interventions/cedar/schema-generator.js +8 -3
  106. package/dist/src/vended-interventions/cedar/schema-generator.js.map +1 -1
  107. package/dist/src/vended-memory-stores/bedrock-knowledge-base/index.d.ts +1 -1
  108. package/dist/src/vended-memory-stores/bedrock-knowledge-base/index.d.ts.map +1 -1
  109. package/dist/src/vended-memory-stores/bedrock-knowledge-base/index.js.map +1 -1
  110. package/dist/src/vended-memory-stores/bedrock-knowledge-base/store.d.ts +57 -0
  111. package/dist/src/vended-memory-stores/bedrock-knowledge-base/store.d.ts.map +1 -1
  112. package/dist/src/vended-memory-stores/bedrock-knowledge-base/store.js +86 -11
  113. package/dist/src/vended-memory-stores/bedrock-knowledge-base/store.js.map +1 -1
  114. package/dist/src/vended-memory-stores/local/index.d.ts +2 -0
  115. package/dist/src/vended-memory-stores/local/index.d.ts.map +1 -0
  116. package/dist/src/vended-memory-stores/local/index.js +2 -0
  117. package/dist/src/vended-memory-stores/local/index.js.map +1 -0
  118. package/dist/src/vended-memory-stores/local/store.d.ts +122 -0
  119. package/dist/src/vended-memory-stores/local/store.d.ts.map +1 -0
  120. package/dist/src/vended-memory-stores/local/store.js +281 -0
  121. package/dist/src/vended-memory-stores/local/store.js.map +1 -0
  122. package/dist/src/vended-plugins/context-offloader/search.d.ts.map +1 -1
  123. package/dist/src/vended-plugins/context-offloader/search.js +4 -2
  124. package/dist/src/vended-plugins/context-offloader/search.js.map +1 -1
  125. package/dist/src/vended-plugins/context-offloader/storage.d.ts.map +1 -1
  126. package/dist/src/vended-plugins/context-offloader/storage.js +16 -3
  127. package/dist/src/vended-plugins/context-offloader/storage.js.map +1 -1
  128. package/dist/src/vended-plugins/skills/skill.d.ts.map +1 -1
  129. package/dist/src/vended-plugins/skills/skill.js +4 -2
  130. package/dist/src/vended-plugins/skills/skill.js.map +1 -1
  131. package/dist/src/vended-tools/http-request/http-request.js +1 -1
  132. package/dist/src/vended-tools/http-request/http-request.js.map +1 -1
  133. package/dist/src/vended-tools/notebook/notebook.d.ts +1 -1
  134. package/package.json +46 -39
  135. package/dist/src/__fixtures__/agent-helpers.d.ts +0 -136
  136. package/dist/src/__fixtures__/agent-helpers.d.ts.map +0 -1
  137. package/dist/src/__fixtures__/agent-helpers.js +0 -156
  138. package/dist/src/__fixtures__/agent-helpers.js.map +0 -1
  139. package/dist/src/__fixtures__/environment.d.ts +0 -12
  140. package/dist/src/__fixtures__/environment.d.ts.map +0 -1
  141. package/dist/src/__fixtures__/environment.js +0 -12
  142. package/dist/src/__fixtures__/environment.js.map +0 -1
  143. package/dist/src/__fixtures__/metrics-helpers.d.ts +0 -55
  144. package/dist/src/__fixtures__/metrics-helpers.d.ts.map +0 -1
  145. package/dist/src/__fixtures__/metrics-helpers.js +0 -57
  146. package/dist/src/__fixtures__/metrics-helpers.js.map +0 -1
  147. package/dist/src/__fixtures__/mock-message-model.d.ts +0 -103
  148. package/dist/src/__fixtures__/mock-message-model.d.ts.map +0 -1
  149. package/dist/src/__fixtures__/mock-message-model.js +0 -245
  150. package/dist/src/__fixtures__/mock-message-model.js.map +0 -1
  151. package/dist/src/__fixtures__/mock-meter.d.ts +0 -32
  152. package/dist/src/__fixtures__/mock-meter.d.ts.map +0 -1
  153. package/dist/src/__fixtures__/mock-meter.js +0 -47
  154. package/dist/src/__fixtures__/mock-meter.js.map +0 -1
  155. package/dist/src/__fixtures__/mock-plugin.d.ts +0 -13
  156. package/dist/src/__fixtures__/mock-plugin.d.ts.map +0 -1
  157. package/dist/src/__fixtures__/mock-plugin.js +0 -35
  158. package/dist/src/__fixtures__/mock-plugin.js.map +0 -1
  159. package/dist/src/__fixtures__/mock-span.d.ts +0 -78
  160. package/dist/src/__fixtures__/mock-span.d.ts.map +0 -1
  161. package/dist/src/__fixtures__/mock-span.js +0 -93
  162. package/dist/src/__fixtures__/mock-span.js.map +0 -1
  163. package/dist/src/__fixtures__/mock-storage-provider.d.ts +0 -42
  164. package/dist/src/__fixtures__/mock-storage-provider.d.ts.map +0 -1
  165. package/dist/src/__fixtures__/mock-storage-provider.js +0 -122
  166. package/dist/src/__fixtures__/mock-storage-provider.js.map +0 -1
  167. package/dist/src/__fixtures__/model-test-helpers.d.ts +0 -56
  168. package/dist/src/__fixtures__/model-test-helpers.d.ts.map +0 -1
  169. package/dist/src/__fixtures__/model-test-helpers.js +0 -85
  170. package/dist/src/__fixtures__/model-test-helpers.js.map +0 -1
  171. package/dist/src/__fixtures__/register-node-defaults.d.ts +0 -2
  172. package/dist/src/__fixtures__/register-node-defaults.d.ts.map +0 -1
  173. package/dist/src/__fixtures__/register-node-defaults.js +0 -6
  174. package/dist/src/__fixtures__/register-node-defaults.js.map +0 -1
  175. package/dist/src/__fixtures__/slim-types.d.ts +0 -51
  176. package/dist/src/__fixtures__/slim-types.d.ts.map +0 -1
  177. package/dist/src/__fixtures__/slim-types.js +0 -6
  178. package/dist/src/__fixtures__/slim-types.js.map +0 -1
  179. package/dist/src/__fixtures__/test-sandbox.node.d.ts +0 -15
  180. package/dist/src/__fixtures__/test-sandbox.node.d.ts.map +0 -1
  181. package/dist/src/__fixtures__/test-sandbox.node.js +0 -23
  182. package/dist/src/__fixtures__/test-sandbox.node.js.map +0 -1
  183. package/dist/src/__fixtures__/tool-helpers.d.ts +0 -45
  184. package/dist/src/__fixtures__/tool-helpers.d.ts.map +0 -1
  185. package/dist/src/__fixtures__/tool-helpers.js +0 -101
  186. package/dist/src/__fixtures__/tool-helpers.js.map +0 -1
  187. package/dist/src/__tests__/default-slot.test.d.ts +0 -2
  188. package/dist/src/__tests__/default-slot.test.d.ts.map +0 -1
  189. package/dist/src/__tests__/default-slot.test.js +0 -33
  190. package/dist/src/__tests__/default-slot.test.js.map +0 -1
  191. package/dist/src/__tests__/errors.test.d.ts +0 -2
  192. package/dist/src/__tests__/errors.test.d.ts.map +0 -1
  193. package/dist/src/__tests__/errors.test.js +0 -170
  194. package/dist/src/__tests__/errors.test.js.map +0 -1
  195. package/dist/src/__tests__/index.test.d.ts +0 -2
  196. package/dist/src/__tests__/index.test.d.ts.map +0 -1
  197. package/dist/src/__tests__/index.test.js +0 -48
  198. package/dist/src/__tests__/index.test.js.map +0 -1
  199. package/dist/src/__tests__/interrupt.test.d.ts +0 -2
  200. package/dist/src/__tests__/interrupt.test.d.ts.map +0 -1
  201. package/dist/src/__tests__/interrupt.test.js +0 -264
  202. package/dist/src/__tests__/interrupt.test.js.map +0 -1
  203. package/dist/src/__tests__/mcp.test.d.ts +0 -2
  204. package/dist/src/__tests__/mcp.test.d.ts.map +0 -1
  205. package/dist/src/__tests__/mcp.test.js +0 -1003
  206. package/dist/src/__tests__/mcp.test.js.map +0 -1
  207. package/dist/src/__tests__/mime.test.d.ts +0 -2
  208. package/dist/src/__tests__/mime.test.d.ts.map +0 -1
  209. package/dist/src/__tests__/mime.test.js +0 -83
  210. package/dist/src/__tests__/mime.test.js.map +0 -1
  211. package/dist/src/__tests__/state-store.test.d.ts +0 -2
  212. package/dist/src/__tests__/state-store.test.d.ts.map +0 -1
  213. package/dist/src/__tests__/state-store.test.js +0 -285
  214. package/dist/src/__tests__/state-store.test.js.map +0 -1
  215. package/dist/src/a2a/__tests__/a2a-agent.test.d.ts +0 -2
  216. package/dist/src/a2a/__tests__/a2a-agent.test.d.ts.map +0 -1
  217. package/dist/src/a2a/__tests__/a2a-agent.test.js +0 -383
  218. package/dist/src/a2a/__tests__/a2a-agent.test.js.map +0 -1
  219. package/dist/src/a2a/__tests__/adapters.test.d.ts +0 -2
  220. package/dist/src/a2a/__tests__/adapters.test.d.ts.map +0 -1
  221. package/dist/src/a2a/__tests__/adapters.test.js +0 -151
  222. package/dist/src/a2a/__tests__/adapters.test.js.map +0 -1
  223. package/dist/src/a2a/__tests__/async-lock.test.d.ts +0 -2
  224. package/dist/src/a2a/__tests__/async-lock.test.d.ts.map +0 -1
  225. package/dist/src/a2a/__tests__/async-lock.test.js +0 -137
  226. package/dist/src/a2a/__tests__/async-lock.test.js.map +0 -1
  227. package/dist/src/a2a/__tests__/events.test.d.ts +0 -2
  228. package/dist/src/a2a/__tests__/events.test.d.ts.map +0 -1
  229. package/dist/src/a2a/__tests__/events.test.js +0 -68
  230. package/dist/src/a2a/__tests__/events.test.js.map +0 -1
  231. package/dist/src/a2a/__tests__/executor.test.d.ts +0 -2
  232. package/dist/src/a2a/__tests__/executor.test.d.ts.map +0 -1
  233. package/dist/src/a2a/__tests__/executor.test.js +0 -345
  234. package/dist/src/a2a/__tests__/executor.test.js.map +0 -1
  235. package/dist/src/a2a/__tests__/server.test.d.ts +0 -2
  236. package/dist/src/a2a/__tests__/server.test.d.ts.map +0 -1
  237. package/dist/src/a2a/__tests__/server.test.js +0 -71
  238. package/dist/src/a2a/__tests__/server.test.js.map +0 -1
  239. package/dist/src/a2a/__tests__/server.test.node.d.ts +0 -2
  240. package/dist/src/a2a/__tests__/server.test.node.d.ts.map +0 -1
  241. package/dist/src/a2a/__tests__/server.test.node.js +0 -110
  242. package/dist/src/a2a/__tests__/server.test.node.js.map +0 -1
  243. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts +0 -2
  244. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts.map +0 -1
  245. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js +0 -23
  246. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js.map +0 -1
  247. package/dist/src/agent/__tests__/agent-as-tool.test.d.ts +0 -2
  248. package/dist/src/agent/__tests__/agent-as-tool.test.d.ts.map +0 -1
  249. package/dist/src/agent/__tests__/agent-as-tool.test.js +0 -347
  250. package/dist/src/agent/__tests__/agent-as-tool.test.js.map +0 -1
  251. package/dist/src/agent/__tests__/agent.cancel.test.d.ts +0 -2
  252. package/dist/src/agent/__tests__/agent.cancel.test.d.ts.map +0 -1
  253. package/dist/src/agent/__tests__/agent.cancel.test.js +0 -337
  254. package/dist/src/agent/__tests__/agent.cancel.test.js.map +0 -1
  255. package/dist/src/agent/__tests__/agent.concurrent.test.d.ts +0 -2
  256. package/dist/src/agent/__tests__/agent.concurrent.test.d.ts.map +0 -1
  257. package/dist/src/agent/__tests__/agent.concurrent.test.js +0 -488
  258. package/dist/src/agent/__tests__/agent.concurrent.test.js.map +0 -1
  259. package/dist/src/agent/__tests__/agent.context-manager.test.d.ts +0 -2
  260. package/dist/src/agent/__tests__/agent.context-manager.test.d.ts.map +0 -1
  261. package/dist/src/agent/__tests__/agent.context-manager.test.js +0 -107
  262. package/dist/src/agent/__tests__/agent.context-manager.test.js.map +0 -1
  263. package/dist/src/agent/__tests__/agent.hook.test.d.ts +0 -2
  264. package/dist/src/agent/__tests__/agent.hook.test.d.ts.map +0 -1
  265. package/dist/src/agent/__tests__/agent.hook.test.js +0 -1332
  266. package/dist/src/agent/__tests__/agent.hook.test.js.map +0 -1
  267. package/dist/src/agent/__tests__/agent.interrupt.test.d.ts +0 -2
  268. package/dist/src/agent/__tests__/agent.interrupt.test.d.ts.map +0 -1
  269. package/dist/src/agent/__tests__/agent.interrupt.test.js +0 -779
  270. package/dist/src/agent/__tests__/agent.interrupt.test.js.map +0 -1
  271. package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts +0 -2
  272. package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts.map +0 -1
  273. package/dist/src/agent/__tests__/agent.invocation-state.test.js +0 -219
  274. package/dist/src/agent/__tests__/agent.invocation-state.test.js.map +0 -1
  275. package/dist/src/agent/__tests__/agent.model-retry.test.d.ts +0 -2
  276. package/dist/src/agent/__tests__/agent.model-retry.test.d.ts.map +0 -1
  277. package/dist/src/agent/__tests__/agent.model-retry.test.js +0 -161
  278. package/dist/src/agent/__tests__/agent.model-retry.test.js.map +0 -1
  279. package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts +0 -2
  280. package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts.map +0 -1
  281. package/dist/src/agent/__tests__/agent.stateful-model.test.js +0 -169
  282. package/dist/src/agent/__tests__/agent.stateful-model.test.js.map +0 -1
  283. package/dist/src/agent/__tests__/agent.test.d.ts +0 -2
  284. package/dist/src/agent/__tests__/agent.test.d.ts.map +0 -1
  285. package/dist/src/agent/__tests__/agent.test.js +0 -1624
  286. package/dist/src/agent/__tests__/agent.test.js.map +0 -1
  287. package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts +0 -2
  288. package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts.map +0 -1
  289. package/dist/src/agent/__tests__/agent.tracer.test.node.js +0 -535
  290. package/dist/src/agent/__tests__/agent.tracer.test.node.js.map +0 -1
  291. package/dist/src/agent/__tests__/printer.test.d.ts +0 -2
  292. package/dist/src/agent/__tests__/printer.test.d.ts.map +0 -1
  293. package/dist/src/agent/__tests__/printer.test.js +0 -188
  294. package/dist/src/agent/__tests__/printer.test.js.map +0 -1
  295. package/dist/src/agent/__tests__/snapshot.test.d.ts +0 -2
  296. package/dist/src/agent/__tests__/snapshot.test.d.ts.map +0 -1
  297. package/dist/src/agent/__tests__/snapshot.test.js +0 -442
  298. package/dist/src/agent/__tests__/snapshot.test.js.map +0 -1
  299. package/dist/src/agent/__tests__/tool-caller.test.d.ts +0 -2
  300. package/dist/src/agent/__tests__/tool-caller.test.d.ts.map +0 -1
  301. package/dist/src/agent/__tests__/tool-caller.test.js +0 -459
  302. package/dist/src/agent/__tests__/tool-caller.test.js.map +0 -1
  303. package/dist/src/conversation-manager/__tests__/agentic-context.test.d.ts +0 -2
  304. package/dist/src/conversation-manager/__tests__/agentic-context.test.d.ts.map +0 -1
  305. package/dist/src/conversation-manager/__tests__/agentic-context.test.js +0 -332
  306. package/dist/src/conversation-manager/__tests__/agentic-context.test.js.map +0 -1
  307. package/dist/src/conversation-manager/__tests__/context-compression.test.d.ts +0 -2
  308. package/dist/src/conversation-manager/__tests__/context-compression.test.d.ts.map +0 -1
  309. package/dist/src/conversation-manager/__tests__/context-compression.test.js +0 -176
  310. package/dist/src/conversation-manager/__tests__/context-compression.test.js.map +0 -1
  311. package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts +0 -2
  312. package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts.map +0 -1
  313. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +0 -321
  314. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +0 -1
  315. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.d.ts +0 -2
  316. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.d.ts.map +0 -1
  317. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +0 -64
  318. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +0 -1
  319. package/dist/src/conversation-manager/__tests__/pin.test.d.ts +0 -2
  320. package/dist/src/conversation-manager/__tests__/pin.test.d.ts.map +0 -1
  321. package/dist/src/conversation-manager/__tests__/pin.test.js +0 -119
  322. package/dist/src/conversation-manager/__tests__/pin.test.js.map +0 -1
  323. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.d.ts +0 -2
  324. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.d.ts.map +0 -1
  325. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +0 -1080
  326. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +0 -1
  327. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.d.ts +0 -2
  328. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.d.ts.map +0 -1
  329. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js +0 -400
  330. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js.map +0 -1
  331. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.d.ts +0 -2
  332. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.d.ts.map +0 -1
  333. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.js +0 -138
  334. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.js.map +0 -1
  335. package/dist/src/hooks/__tests__/events.test.d.ts +0 -2
  336. package/dist/src/hooks/__tests__/events.test.d.ts.map +0 -1
  337. package/dist/src/hooks/__tests__/events.test.js +0 -1060
  338. package/dist/src/hooks/__tests__/events.test.js.map +0 -1
  339. package/dist/src/hooks/__tests__/registry.test.d.ts +0 -2
  340. package/dist/src/hooks/__tests__/registry.test.d.ts.map +0 -1
  341. package/dist/src/hooks/__tests__/registry.test.js +0 -325
  342. package/dist/src/hooks/__tests__/registry.test.js.map +0 -1
  343. package/dist/src/injection/__tests__/message-injection.test.d.ts +0 -2
  344. package/dist/src/injection/__tests__/message-injection.test.d.ts.map +0 -1
  345. package/dist/src/injection/__tests__/message-injection.test.js +0 -200
  346. package/dist/src/injection/__tests__/message-injection.test.js.map +0 -1
  347. package/dist/src/interventions/__tests__/handler.test.d.ts +0 -2
  348. package/dist/src/interventions/__tests__/handler.test.d.ts.map +0 -1
  349. package/dist/src/interventions/__tests__/handler.test.js +0 -35
  350. package/dist/src/interventions/__tests__/handler.test.js.map +0 -1
  351. package/dist/src/interventions/__tests__/registry.test.d.ts +0 -2
  352. package/dist/src/interventions/__tests__/registry.test.d.ts.map +0 -1
  353. package/dist/src/interventions/__tests__/registry.test.js +0 -692
  354. package/dist/src/interventions/__tests__/registry.test.js.map +0 -1
  355. package/dist/src/logging/__tests__/logger.test.d.ts +0 -2
  356. package/dist/src/logging/__tests__/logger.test.d.ts.map +0 -1
  357. package/dist/src/logging/__tests__/logger.test.js +0 -70
  358. package/dist/src/logging/__tests__/logger.test.js.map +0 -1
  359. package/dist/src/logging/__tests__/warn-once.test.d.ts +0 -2
  360. package/dist/src/logging/__tests__/warn-once.test.d.ts.map +0 -1
  361. package/dist/src/logging/__tests__/warn-once.test.js +0 -30
  362. package/dist/src/logging/__tests__/warn-once.test.js.map +0 -1
  363. package/dist/src/mcp.d.ts.map +0 -1
  364. package/dist/src/mcp.js.map +0 -1
  365. package/dist/src/memory/__tests__/memory-manager.test.d.ts +0 -2
  366. package/dist/src/memory/__tests__/memory-manager.test.d.ts.map +0 -1
  367. package/dist/src/memory/__tests__/memory-manager.test.js +0 -679
  368. package/dist/src/memory/__tests__/memory-manager.test.js.map +0 -1
  369. package/dist/src/memory/extraction/__tests__/extraction.test.d.ts +0 -2
  370. package/dist/src/memory/extraction/__tests__/extraction.test.d.ts.map +0 -1
  371. package/dist/src/memory/extraction/__tests__/extraction.test.js +0 -637
  372. package/dist/src/memory/extraction/__tests__/extraction.test.js.map +0 -1
  373. package/dist/src/memory/extraction/__tests__/model-extractor.test.d.ts +0 -2
  374. package/dist/src/memory/extraction/__tests__/model-extractor.test.d.ts.map +0 -1
  375. package/dist/src/memory/extraction/__tests__/model-extractor.test.js +0 -68
  376. package/dist/src/memory/extraction/__tests__/model-extractor.test.js.map +0 -1
  377. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.d.ts +0 -2
  378. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.d.ts.map +0 -1
  379. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.js +0 -81
  380. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.js.map +0 -1
  381. package/dist/src/middleware/__tests__/agent-middleware.test.d.ts +0 -2
  382. package/dist/src/middleware/__tests__/agent-middleware.test.d.ts.map +0 -1
  383. package/dist/src/middleware/__tests__/agent-middleware.test.js +0 -1206
  384. package/dist/src/middleware/__tests__/agent-middleware.test.js.map +0 -1
  385. package/dist/src/middleware/__tests__/copy-on-input.test.d.ts +0 -2
  386. package/dist/src/middleware/__tests__/copy-on-input.test.d.ts.map +0 -1
  387. package/dist/src/middleware/__tests__/copy-on-input.test.js +0 -379
  388. package/dist/src/middleware/__tests__/copy-on-input.test.js.map +0 -1
  389. package/dist/src/middleware/__tests__/custom-stages.test.d.ts +0 -2
  390. package/dist/src/middleware/__tests__/custom-stages.test.d.ts.map +0 -1
  391. package/dist/src/middleware/__tests__/custom-stages.test.js +0 -97
  392. package/dist/src/middleware/__tests__/custom-stages.test.js.map +0 -1
  393. package/dist/src/middleware/__tests__/middleware-interrupts.test.d.ts +0 -2
  394. package/dist/src/middleware/__tests__/middleware-interrupts.test.d.ts.map +0 -1
  395. package/dist/src/middleware/__tests__/middleware-interrupts.test.js +0 -267
  396. package/dist/src/middleware/__tests__/middleware-interrupts.test.js.map +0 -1
  397. package/dist/src/middleware/__tests__/registry.test.d.ts +0 -2
  398. package/dist/src/middleware/__tests__/registry.test.d.ts.map +0 -1
  399. package/dist/src/middleware/__tests__/registry.test.js +0 -525
  400. package/dist/src/middleware/__tests__/registry.test.js.map +0 -1
  401. package/dist/src/models/__tests__/anthropic.test.d.ts +0 -2
  402. package/dist/src/models/__tests__/anthropic.test.d.ts.map +0 -1
  403. package/dist/src/models/__tests__/anthropic.test.js +0 -793
  404. package/dist/src/models/__tests__/anthropic.test.js.map +0 -1
  405. package/dist/src/models/__tests__/bedrock.test.d.ts +0 -2
  406. package/dist/src/models/__tests__/bedrock.test.d.ts.map +0 -1
  407. package/dist/src/models/__tests__/bedrock.test.js +0 -3964
  408. package/dist/src/models/__tests__/bedrock.test.js.map +0 -1
  409. package/dist/src/models/__tests__/defaults.test.d.ts +0 -2
  410. package/dist/src/models/__tests__/defaults.test.d.ts.map +0 -1
  411. package/dist/src/models/__tests__/defaults.test.js +0 -36
  412. package/dist/src/models/__tests__/defaults.test.js.map +0 -1
  413. package/dist/src/models/__tests__/google.test.d.ts +0 -2
  414. package/dist/src/models/__tests__/google.test.d.ts.map +0 -1
  415. package/dist/src/models/__tests__/google.test.js +0 -1104
  416. package/dist/src/models/__tests__/google.test.js.map +0 -1
  417. package/dist/src/models/__tests__/model.test.d.ts +0 -2
  418. package/dist/src/models/__tests__/model.test.d.ts.map +0 -1
  419. package/dist/src/models/__tests__/model.test.js +0 -921
  420. package/dist/src/models/__tests__/model.test.js.map +0 -1
  421. package/dist/src/models/__tests__/streaming.test.d.ts +0 -2
  422. package/dist/src/models/__tests__/streaming.test.d.ts.map +0 -1
  423. package/dist/src/models/__tests__/streaming.test.js +0 -50
  424. package/dist/src/models/__tests__/streaming.test.js.map +0 -1
  425. package/dist/src/models/__tests__/test-utils.d.ts +0 -10
  426. package/dist/src/models/__tests__/test-utils.d.ts.map +0 -1
  427. package/dist/src/models/__tests__/test-utils.js +0 -17
  428. package/dist/src/models/__tests__/test-utils.js.map +0 -1
  429. package/dist/src/models/__tests__/vercel.test.d.ts +0 -2
  430. package/dist/src/models/__tests__/vercel.test.d.ts.map +0 -1
  431. package/dist/src/models/__tests__/vercel.test.js +0 -740
  432. package/dist/src/models/__tests__/vercel.test.js.map +0 -1
  433. package/dist/src/models/openai/__tests__/chat.test.d.ts +0 -2
  434. package/dist/src/models/openai/__tests__/chat.test.d.ts.map +0 -1
  435. package/dist/src/models/openai/__tests__/chat.test.js +0 -1586
  436. package/dist/src/models/openai/__tests__/chat.test.js.map +0 -1
  437. package/dist/src/models/openai/__tests__/errors.test.d.ts +0 -2
  438. package/dist/src/models/openai/__tests__/errors.test.d.ts.map +0 -1
  439. package/dist/src/models/openai/__tests__/errors.test.js +0 -30
  440. package/dist/src/models/openai/__tests__/errors.test.js.map +0 -1
  441. package/dist/src/models/openai/__tests__/mantle.test.d.ts +0 -2
  442. package/dist/src/models/openai/__tests__/mantle.test.d.ts.map +0 -1
  443. package/dist/src/models/openai/__tests__/mantle.test.js +0 -189
  444. package/dist/src/models/openai/__tests__/mantle.test.js.map +0 -1
  445. package/dist/src/models/openai/__tests__/responses.test.d.ts +0 -2
  446. package/dist/src/models/openai/__tests__/responses.test.d.ts.map +0 -1
  447. package/dist/src/models/openai/__tests__/responses.test.js +0 -662
  448. package/dist/src/models/openai/__tests__/responses.test.js.map +0 -1
  449. package/dist/src/multiagent/__tests__/events.test.d.ts +0 -2
  450. package/dist/src/multiagent/__tests__/events.test.d.ts.map +0 -1
  451. package/dist/src/multiagent/__tests__/events.test.js +0 -493
  452. package/dist/src/multiagent/__tests__/events.test.js.map +0 -1
  453. package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts +0 -2
  454. package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts.map +0 -1
  455. package/dist/src/multiagent/__tests__/graph.invocation-state.test.js +0 -95
  456. package/dist/src/multiagent/__tests__/graph.invocation-state.test.js.map +0 -1
  457. package/dist/src/multiagent/__tests__/graph.test.d.ts +0 -2
  458. package/dist/src/multiagent/__tests__/graph.test.d.ts.map +0 -1
  459. package/dist/src/multiagent/__tests__/graph.test.js +0 -677
  460. package/dist/src/multiagent/__tests__/graph.test.js.map +0 -1
  461. package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts +0 -2
  462. package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts.map +0 -1
  463. package/dist/src/multiagent/__tests__/graph.tracer.test.js +0 -218
  464. package/dist/src/multiagent/__tests__/graph.tracer.test.js.map +0 -1
  465. package/dist/src/multiagent/__tests__/interrupts.test.d.ts +0 -2
  466. package/dist/src/multiagent/__tests__/interrupts.test.d.ts.map +0 -1
  467. package/dist/src/multiagent/__tests__/interrupts.test.js +0 -390
  468. package/dist/src/multiagent/__tests__/interrupts.test.js.map +0 -1
  469. package/dist/src/multiagent/__tests__/nodes.test.d.ts +0 -2
  470. package/dist/src/multiagent/__tests__/nodes.test.d.ts.map +0 -1
  471. package/dist/src/multiagent/__tests__/nodes.test.js +0 -321
  472. package/dist/src/multiagent/__tests__/nodes.test.js.map +0 -1
  473. package/dist/src/multiagent/__tests__/queue.test.d.ts +0 -2
  474. package/dist/src/multiagent/__tests__/queue.test.d.ts.map +0 -1
  475. package/dist/src/multiagent/__tests__/queue.test.js +0 -118
  476. package/dist/src/multiagent/__tests__/queue.test.js.map +0 -1
  477. package/dist/src/multiagent/__tests__/snapshot.test.d.ts +0 -2
  478. package/dist/src/multiagent/__tests__/snapshot.test.d.ts.map +0 -1
  479. package/dist/src/multiagent/__tests__/snapshot.test.js +0 -161
  480. package/dist/src/multiagent/__tests__/snapshot.test.js.map +0 -1
  481. package/dist/src/multiagent/__tests__/state.test.d.ts +0 -2
  482. package/dist/src/multiagent/__tests__/state.test.d.ts.map +0 -1
  483. package/dist/src/multiagent/__tests__/state.test.js +0 -526
  484. package/dist/src/multiagent/__tests__/state.test.js.map +0 -1
  485. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts +0 -2
  486. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts.map +0 -1
  487. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js +0 -56
  488. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js.map +0 -1
  489. package/dist/src/multiagent/__tests__/swarm.test.d.ts +0 -2
  490. package/dist/src/multiagent/__tests__/swarm.test.d.ts.map +0 -1
  491. package/dist/src/multiagent/__tests__/swarm.test.js +0 -477
  492. package/dist/src/multiagent/__tests__/swarm.test.js.map +0 -1
  493. package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts +0 -2
  494. package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts.map +0 -1
  495. package/dist/src/multiagent/__tests__/swarm.tracer.test.js +0 -235
  496. package/dist/src/multiagent/__tests__/swarm.tracer.test.js.map +0 -1
  497. package/dist/src/plugins/__tests__/plugin.test.d.ts +0 -2
  498. package/dist/src/plugins/__tests__/plugin.test.d.ts.map +0 -1
  499. package/dist/src/plugins/__tests__/plugin.test.js +0 -114
  500. package/dist/src/plugins/__tests__/plugin.test.js.map +0 -1
  501. package/dist/src/plugins/__tests__/registry.test.d.ts +0 -2
  502. package/dist/src/plugins/__tests__/registry.test.d.ts.map +0 -1
  503. package/dist/src/plugins/__tests__/registry.test.js +0 -147
  504. package/dist/src/plugins/__tests__/registry.test.js.map +0 -1
  505. package/dist/src/registry/__tests__/tool-registry.test.d.ts +0 -2
  506. package/dist/src/registry/__tests__/tool-registry.test.d.ts.map +0 -1
  507. package/dist/src/registry/__tests__/tool-registry.test.js +0 -210
  508. package/dist/src/registry/__tests__/tool-registry.test.js.map +0 -1
  509. package/dist/src/retry/__tests__/backoff-strategy.test.d.ts +0 -2
  510. package/dist/src/retry/__tests__/backoff-strategy.test.d.ts.map +0 -1
  511. package/dist/src/retry/__tests__/backoff-strategy.test.js +0 -116
  512. package/dist/src/retry/__tests__/backoff-strategy.test.js.map +0 -1
  513. package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts +0 -2
  514. package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts.map +0 -1
  515. package/dist/src/retry/__tests__/default-model-retry-strategy.test.js +0 -225
  516. package/dist/src/retry/__tests__/default-model-retry-strategy.test.js.map +0 -1
  517. package/dist/src/sandbox/__tests__/default.test.browser.d.ts +0 -2
  518. package/dist/src/sandbox/__tests__/default.test.browser.d.ts.map +0 -1
  519. package/dist/src/sandbox/__tests__/default.test.browser.js +0 -11
  520. package/dist/src/sandbox/__tests__/default.test.browser.js.map +0 -1
  521. package/dist/src/sandbox/__tests__/default.test.node.d.ts +0 -2
  522. package/dist/src/sandbox/__tests__/default.test.node.d.ts.map +0 -1
  523. package/dist/src/sandbox/__tests__/default.test.node.js +0 -23
  524. package/dist/src/sandbox/__tests__/default.test.node.js.map +0 -1
  525. package/dist/src/sandbox/__tests__/docker.test.node.d.ts +0 -2
  526. package/dist/src/sandbox/__tests__/docker.test.node.d.ts.map +0 -1
  527. package/dist/src/sandbox/__tests__/docker.test.node.js +0 -89
  528. package/dist/src/sandbox/__tests__/docker.test.node.js.map +0 -1
  529. package/dist/src/sandbox/__tests__/errors.test.node.d.ts +0 -2
  530. package/dist/src/sandbox/__tests__/errors.test.node.d.ts.map +0 -1
  531. package/dist/src/sandbox/__tests__/errors.test.node.js +0 -33
  532. package/dist/src/sandbox/__tests__/errors.test.node.js.map +0 -1
  533. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.d.ts +0 -2
  534. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.d.ts.map +0 -1
  535. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.js +0 -124
  536. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.js.map +0 -1
  537. package/dist/src/sandbox/__tests__/posix-shell.test.node.d.ts +0 -2
  538. package/dist/src/sandbox/__tests__/posix-shell.test.node.d.ts.map +0 -1
  539. package/dist/src/sandbox/__tests__/posix-shell.test.node.js +0 -298
  540. package/dist/src/sandbox/__tests__/posix-shell.test.node.js.map +0 -1
  541. package/dist/src/sandbox/__tests__/ssh.test.node.d.ts +0 -2
  542. package/dist/src/sandbox/__tests__/ssh.test.node.d.ts.map +0 -1
  543. package/dist/src/sandbox/__tests__/ssh.test.node.js +0 -262
  544. package/dist/src/sandbox/__tests__/ssh.test.node.js.map +0 -1
  545. package/dist/src/session/__tests__/file-storage.test.node.d.ts +0 -2
  546. package/dist/src/session/__tests__/file-storage.test.node.d.ts.map +0 -1
  547. package/dist/src/session/__tests__/file-storage.test.node.js +0 -278
  548. package/dist/src/session/__tests__/file-storage.test.node.js.map +0 -1
  549. package/dist/src/session/__tests__/s3-storage.test.d.ts +0 -2
  550. package/dist/src/session/__tests__/s3-storage.test.d.ts.map +0 -1
  551. package/dist/src/session/__tests__/s3-storage.test.js +0 -461
  552. package/dist/src/session/__tests__/s3-storage.test.js.map +0 -1
  553. package/dist/src/session/__tests__/session-manager.test.d.ts +0 -2
  554. package/dist/src/session/__tests__/session-manager.test.d.ts.map +0 -1
  555. package/dist/src/session/__tests__/session-manager.test.js +0 -832
  556. package/dist/src/session/__tests__/session-manager.test.js.map +0 -1
  557. package/dist/src/session/__tests__/validation.test.d.ts +0 -2
  558. package/dist/src/session/__tests__/validation.test.d.ts.map +0 -1
  559. package/dist/src/session/__tests__/validation.test.js +0 -47
  560. package/dist/src/session/__tests__/validation.test.js.map +0 -1
  561. package/dist/src/telemetry/__tests__/config.test.d.ts +0 -2
  562. package/dist/src/telemetry/__tests__/config.test.d.ts.map +0 -1
  563. package/dist/src/telemetry/__tests__/config.test.js +0 -64
  564. package/dist/src/telemetry/__tests__/config.test.js.map +0 -1
  565. package/dist/src/telemetry/__tests__/config.test.node.d.ts +0 -2
  566. package/dist/src/telemetry/__tests__/config.test.node.d.ts.map +0 -1
  567. package/dist/src/telemetry/__tests__/config.test.node.js +0 -164
  568. package/dist/src/telemetry/__tests__/config.test.node.js.map +0 -1
  569. package/dist/src/telemetry/__tests__/json.test.d.ts +0 -2
  570. package/dist/src/telemetry/__tests__/json.test.d.ts.map +0 -1
  571. package/dist/src/telemetry/__tests__/json.test.js +0 -89
  572. package/dist/src/telemetry/__tests__/json.test.js.map +0 -1
  573. package/dist/src/telemetry/__tests__/local-trace.test.d.ts +0 -2
  574. package/dist/src/telemetry/__tests__/local-trace.test.d.ts.map +0 -1
  575. package/dist/src/telemetry/__tests__/local-trace.test.js +0 -158
  576. package/dist/src/telemetry/__tests__/local-trace.test.js.map +0 -1
  577. package/dist/src/telemetry/__tests__/meter.test.d.ts +0 -2
  578. package/dist/src/telemetry/__tests__/meter.test.d.ts.map +0 -1
  579. package/dist/src/telemetry/__tests__/meter.test.js +0 -695
  580. package/dist/src/telemetry/__tests__/meter.test.js.map +0 -1
  581. package/dist/src/telemetry/__tests__/tracer.test.node.d.ts +0 -2
  582. package/dist/src/telemetry/__tests__/tracer.test.node.d.ts.map +0 -1
  583. package/dist/src/telemetry/__tests__/tracer.test.node.js +0 -760
  584. package/dist/src/telemetry/__tests__/tracer.test.node.js.map +0 -1
  585. package/dist/src/tools/__tests__/structured-output-tool.test.d.ts +0 -2
  586. package/dist/src/tools/__tests__/structured-output-tool.test.d.ts.map +0 -1
  587. package/dist/src/tools/__tests__/structured-output-tool.test.js +0 -84
  588. package/dist/src/tools/__tests__/structured-output-tool.test.js.map +0 -1
  589. package/dist/src/tools/__tests__/tool-factory.test.d.ts +0 -2
  590. package/dist/src/tools/__tests__/tool-factory.test.d.ts.map +0 -1
  591. package/dist/src/tools/__tests__/tool-factory.test.js +0 -98
  592. package/dist/src/tools/__tests__/tool-factory.test.js.map +0 -1
  593. package/dist/src/tools/__tests__/tool.test.d.ts +0 -2
  594. package/dist/src/tools/__tests__/tool.test.d.ts.map +0 -1
  595. package/dist/src/tools/__tests__/tool.test.js +0 -1043
  596. package/dist/src/tools/__tests__/tool.test.js.map +0 -1
  597. package/dist/src/tools/__tests__/zod-tool.test-d.d.ts +0 -2
  598. package/dist/src/tools/__tests__/zod-tool.test-d.d.ts.map +0 -1
  599. package/dist/src/tools/__tests__/zod-tool.test-d.js +0 -227
  600. package/dist/src/tools/__tests__/zod-tool.test-d.js.map +0 -1
  601. package/dist/src/tools/__tests__/zod-tool.test.d.ts +0 -2
  602. package/dist/src/tools/__tests__/zod-tool.test.d.ts.map +0 -1
  603. package/dist/src/tools/__tests__/zod-tool.test.js +0 -563
  604. package/dist/src/tools/__tests__/zod-tool.test.js.map +0 -1
  605. package/dist/src/types/__tests__/agent.test.d.ts +0 -2
  606. package/dist/src/types/__tests__/agent.test.d.ts.map +0 -1
  607. package/dist/src/types/__tests__/agent.test.js +0 -476
  608. package/dist/src/types/__tests__/agent.test.js.map +0 -1
  609. package/dist/src/types/__tests__/citations.test.d.ts +0 -2
  610. package/dist/src/types/__tests__/citations.test.d.ts.map +0 -1
  611. package/dist/src/types/__tests__/citations.test.js +0 -104
  612. package/dist/src/types/__tests__/citations.test.js.map +0 -1
  613. package/dist/src/types/__tests__/json.test.d.ts +0 -2
  614. package/dist/src/types/__tests__/json.test.d.ts.map +0 -1
  615. package/dist/src/types/__tests__/json.test.js +0 -298
  616. package/dist/src/types/__tests__/json.test.js.map +0 -1
  617. package/dist/src/types/__tests__/media.test.d.ts +0 -2
  618. package/dist/src/types/__tests__/media.test.d.ts.map +0 -1
  619. package/dist/src/types/__tests__/media.test.js +0 -478
  620. package/dist/src/types/__tests__/media.test.js.map +0 -1
  621. package/dist/src/types/__tests__/messages.test.d.ts +0 -2
  622. package/dist/src/types/__tests__/messages.test.d.ts.map +0 -1
  623. package/dist/src/types/__tests__/messages.test.js +0 -681
  624. package/dist/src/types/__tests__/messages.test.js.map +0 -1
  625. package/dist/src/types/__tests__/validation.test.d.ts +0 -2
  626. package/dist/src/types/__tests__/validation.test.d.ts.map +0 -1
  627. package/dist/src/types/__tests__/validation.test.js +0 -30
  628. package/dist/src/types/__tests__/validation.test.js.map +0 -1
  629. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.d.ts +0 -2
  630. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.d.ts.map +0 -1
  631. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.js +0 -675
  632. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.js.map +0 -1
  633. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.d.ts +0 -2
  634. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.d.ts.map +0 -1
  635. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.js +0 -358
  636. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.js.map +0 -1
  637. package/dist/src/vended-interventions/steering/__tests__/handler.test.d.ts +0 -2
  638. package/dist/src/vended-interventions/steering/__tests__/handler.test.d.ts.map +0 -1
  639. package/dist/src/vended-interventions/steering/__tests__/handler.test.js +0 -163
  640. package/dist/src/vended-interventions/steering/__tests__/handler.test.js.map +0 -1
  641. package/dist/src/vended-interventions/steering/__tests__/llm.test.d.ts +0 -2
  642. package/dist/src/vended-interventions/steering/__tests__/llm.test.d.ts.map +0 -1
  643. package/dist/src/vended-interventions/steering/__tests__/llm.test.js +0 -60
  644. package/dist/src/vended-interventions/steering/__tests__/llm.test.js.map +0 -1
  645. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.d.ts +0 -2
  646. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.d.ts.map +0 -1
  647. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.js +0 -94
  648. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.js.map +0 -1
  649. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.d.ts +0 -2
  650. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.d.ts.map +0 -1
  651. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.js +0 -611
  652. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.js.map +0 -1
  653. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.d.ts +0 -2
  654. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.d.ts.map +0 -1
  655. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.js +0 -96
  656. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.js.map +0 -1
  657. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.d.ts +0 -2
  658. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.d.ts.map +0 -1
  659. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.js +0 -68
  660. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.js.map +0 -1
  661. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts +0 -2
  662. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts.map +0 -1
  663. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js +0 -539
  664. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js.map +0 -1
  665. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.d.ts +0 -2
  666. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.d.ts.map +0 -1
  667. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.js +0 -93
  668. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.js.map +0 -1
  669. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.d.ts +0 -2
  670. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.d.ts.map +0 -1
  671. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.js +0 -149
  672. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.js.map +0 -1
  673. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts +0 -2
  674. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts.map +0 -1
  675. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js +0 -216
  676. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js.map +0 -1
  677. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts +0 -2
  678. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts.map +0 -1
  679. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js +0 -78
  680. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js.map +0 -1
  681. package/dist/src/vended-plugins/goal/__tests__/plugin.test.d.ts +0 -2
  682. package/dist/src/vended-plugins/goal/__tests__/plugin.test.d.ts.map +0 -1
  683. package/dist/src/vended-plugins/goal/__tests__/plugin.test.js +0 -736
  684. package/dist/src/vended-plugins/goal/__tests__/plugin.test.js.map +0 -1
  685. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.d.ts +0 -2
  686. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.d.ts.map +0 -1
  687. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js +0 -482
  688. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js.map +0 -1
  689. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.d.ts +0 -2
  690. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.d.ts.map +0 -1
  691. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.js +0 -476
  692. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.js.map +0 -1
  693. package/dist/src/vended-tools/bash/__tests__/bash.test.node.d.ts +0 -2
  694. package/dist/src/vended-tools/bash/__tests__/bash.test.node.d.ts.map +0 -1
  695. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +0 -390
  696. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +0 -1
  697. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.d.ts +0 -2
  698. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.d.ts.map +0 -1
  699. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js +0 -452
  700. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +0 -1
  701. package/dist/src/vended-tools/http-request/__tests__/http-request.test.d.ts +0 -2
  702. package/dist/src/vended-tools/http-request/__tests__/http-request.test.d.ts.map +0 -1
  703. package/dist/src/vended-tools/http-request/__tests__/http-request.test.js +0 -189
  704. package/dist/src/vended-tools/http-request/__tests__/http-request.test.js.map +0 -1
  705. package/dist/src/vended-tools/notebook/__tests__/notebook.test.d.ts +0 -2
  706. package/dist/src/vended-tools/notebook/__tests__/notebook.test.d.ts.map +0 -1
  707. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +0 -388
  708. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +0 -1
@@ -1,692 +0,0 @@
1
- import { beforeEach, describe, expect, it, vi } from 'vitest';
2
- import { InterventionRegistry } from '../registry.js';
3
- import { InterventionHandler } from '../handler.js';
4
- import { HookRegistryImplementation } from '../../hooks/registry.js';
5
- import { Agent } from '../../agent/agent.js';
6
- import { BeforeInvocationEvent, BeforeToolCallEvent, BeforeModelCallEvent, AfterModelCallEvent, } from '../../hooks/events.js';
7
- import { Message, TextBlock } from '../../types/messages.js';
8
- import { deny } from '../actions.js';
9
- import { Interrupt, InterruptState } from '../../interrupt.js';
10
- class DenyHandler extends InterventionHandler {
11
- name = 'deny-handler';
12
- beforeToolCall() {
13
- return { type: 'deny', reason: 'not authorized' };
14
- }
15
- }
16
- class GuideHandler extends InterventionHandler {
17
- name = 'guide-handler';
18
- beforeToolCall() {
19
- return { type: 'guide', feedback: 'add more context' };
20
- }
21
- }
22
- class ConfirmHandler extends InterventionHandler {
23
- name = 'confirm-handler';
24
- beforeToolCall() {
25
- return { type: 'confirm', prompt: 'approve this action?' };
26
- }
27
- }
28
- class ProceedHandler extends InterventionHandler {
29
- name = 'proceed-handler';
30
- beforeToolCall() {
31
- return { type: 'proceed', reason: 'all good' };
32
- }
33
- }
34
- class ThrowingHandler extends InterventionHandler {
35
- name = 'throwing-handler';
36
- onError = 'throw';
37
- beforeToolCall() {
38
- throw new Error('handler crashed');
39
- }
40
- }
41
- class ThrowingProceedHandler extends InterventionHandler {
42
- name = 'throwing-proceed';
43
- onError = 'proceed';
44
- beforeToolCall() {
45
- throw new Error('handler crashed');
46
- }
47
- }
48
- class ThrowingDenyHandler extends InterventionHandler {
49
- name = 'throwing-deny';
50
- onError = 'deny';
51
- beforeToolCall() {
52
- throw new Error('handler crashed');
53
- }
54
- }
55
- class AsyncDenyHandler extends InterventionHandler {
56
- name = 'async-deny';
57
- async beforeToolCall() {
58
- return { type: 'deny', reason: 'async denial' };
59
- }
60
- }
61
- class ModelGuideHandler extends InterventionHandler {
62
- name = 'model-guide';
63
- afterModelCall() {
64
- return { type: 'guide', feedback: 'be more specific' };
65
- }
66
- }
67
- describe('InterventionRegistry', () => {
68
- let hookRegistry;
69
- let agent;
70
- const toolUse = { name: 'testTool', toolUseId: 'id-1', input: {} };
71
- beforeEach(() => {
72
- hookRegistry = new HookRegistryImplementation();
73
- agent = new Agent();
74
- });
75
- function makeBeforeInvocationEvent() {
76
- return new BeforeInvocationEvent({ agent, invocationState: {} });
77
- }
78
- function makeBeforeToolCallEvent() {
79
- return new BeforeToolCallEvent({ agent, toolUse, tool: undefined, invocationState: {} });
80
- }
81
- function makeBeforeModelCallEvent() {
82
- return new BeforeModelCallEvent({ agent, model: {}, invocationState: {} });
83
- }
84
- function makeAfterModelCallEvent() {
85
- return new AfterModelCallEvent({
86
- agent,
87
- model: {},
88
- invocationState: {},
89
- attemptCount: 0,
90
- stopData: {
91
- message: new Message({ role: 'assistant', content: [new TextBlock('response')] }),
92
- stopReason: 'endTurn',
93
- },
94
- });
95
- }
96
- describe('constructor', () => {
97
- it('rejects duplicate handler names', () => {
98
- expect(() => new InterventionRegistry([new DenyHandler(), new DenyHandler()], hookRegistry)).toThrow("Duplicate intervention handler name: 'deny-handler'");
99
- });
100
- it('accepts handlers with unique names', () => {
101
- // No throw means success
102
- new InterventionRegistry([new DenyHandler(), new GuideHandler()], hookRegistry);
103
- });
104
- });
105
- describe('hook registration', () => {
106
- it('only registers hooks for overridden methods', async () => {
107
- new InterventionRegistry([new DenyHandler()], hookRegistry);
108
- const beforeToolEvent = makeBeforeToolCallEvent();
109
- await hookRegistry.invokeCallbacks(beforeToolEvent);
110
- expect(beforeToolEvent.cancel).toBe('DENIED: not authorized');
111
- // afterModelCall should not be registered — no handler overrides it
112
- const afterModelEvent = makeAfterModelCallEvent();
113
- await hookRegistry.invokeCallbacks(afterModelEvent);
114
- expect(afterModelEvent.retry).toBeUndefined();
115
- });
116
- });
117
- describe('dispatch ordering', () => {
118
- it('calls handlers in registration order', async () => {
119
- const callOrder = [];
120
- class First extends InterventionHandler {
121
- name = 'first';
122
- beforeToolCall() {
123
- callOrder.push('first');
124
- return { type: 'proceed' };
125
- }
126
- }
127
- class Second extends InterventionHandler {
128
- name = 'second';
129
- beforeToolCall() {
130
- callOrder.push('second');
131
- return { type: 'proceed' };
132
- }
133
- }
134
- new InterventionRegistry([new First(), new Second()], hookRegistry);
135
- await hookRegistry.invokeCallbacks(makeBeforeToolCallEvent());
136
- expect(callOrder).toEqual(['first', 'second']);
137
- });
138
- it('skips handlers that do not override the method', async () => {
139
- const callOrder = [];
140
- class ToolHandler extends InterventionHandler {
141
- name = 'tool';
142
- beforeToolCall() {
143
- callOrder.push('tool');
144
- return { type: 'proceed' };
145
- }
146
- }
147
- class ModelHandler extends InterventionHandler {
148
- name = 'model';
149
- afterModelCall() {
150
- callOrder.push('model');
151
- return { type: 'proceed' };
152
- }
153
- }
154
- new InterventionRegistry([new ToolHandler(), new ModelHandler()], hookRegistry);
155
- await hookRegistry.invokeCallbacks(makeBeforeToolCallEvent());
156
- expect(callOrder).toEqual(['tool']);
157
- });
158
- });
159
- describe('deny', () => {
160
- it('sets cancel on BeforeToolCallEvent', async () => {
161
- new InterventionRegistry([new DenyHandler()], hookRegistry);
162
- const event = makeBeforeToolCallEvent();
163
- await hookRegistry.invokeCallbacks(event);
164
- expect(event.cancel).toBe('DENIED: not authorized');
165
- });
166
- it('short-circuits — later handlers do not run', async () => {
167
- const laterCalled = vi.fn();
168
- class LaterHandler extends InterventionHandler {
169
- name = 'later';
170
- beforeToolCall() {
171
- laterCalled();
172
- return { type: 'proceed' };
173
- }
174
- }
175
- new InterventionRegistry([new DenyHandler(), new LaterHandler()], hookRegistry);
176
- await hookRegistry.invokeCallbacks(makeBeforeToolCallEvent());
177
- expect(laterCalled).not.toHaveBeenCalled();
178
- });
179
- it('sets cancel on BeforeInvocationEvent', async () => {
180
- class InvocationDeny extends InterventionHandler {
181
- name = 'invocation-deny';
182
- beforeInvocation() {
183
- return deny('unauthorized user');
184
- }
185
- }
186
- new InterventionRegistry([new InvocationDeny()], hookRegistry);
187
- const event = makeBeforeInvocationEvent();
188
- await hookRegistry.invokeCallbacks(event);
189
- expect(event.cancel).toBe('DENIED: unauthorized user');
190
- });
191
- it('sets cancel on BeforeModelCallEvent', async () => {
192
- class ModelDeny extends InterventionHandler {
193
- name = 'model-deny';
194
- beforeModelCall() {
195
- return deny('prompt injection detected');
196
- }
197
- }
198
- new InterventionRegistry([new ModelDeny()], hookRegistry);
199
- const event = makeBeforeModelCallEvent();
200
- await hookRegistry.invokeCallbacks(event);
201
- expect(event.cancel).toBe('DENIED: prompt injection detected');
202
- });
203
- });
204
- describe('guide', () => {
205
- it('sets cancel with guidance on BeforeToolCallEvent', async () => {
206
- new InterventionRegistry([new GuideHandler()], hookRegistry);
207
- const event = makeBeforeToolCallEvent();
208
- await hookRegistry.invokeCallbacks(event);
209
- expect(event.cancel).toBe('GUIDANCE: [guide-handler] add more context');
210
- });
211
- it('accumulates feedback from multiple handlers', async () => {
212
- class SecondGuide extends InterventionHandler {
213
- name = 'second-guide';
214
- beforeToolCall() {
215
- return { type: 'guide', feedback: 'also check permissions' };
216
- }
217
- }
218
- new InterventionRegistry([new GuideHandler(), new SecondGuide()], hookRegistry);
219
- const event = makeBeforeToolCallEvent();
220
- await hookRegistry.invokeCallbacks(event);
221
- expect(event.cancel).toBe('GUIDANCE: [guide-handler] add more context\n[second-guide] also check permissions');
222
- });
223
- it('sets retry=true and injects guidance message on AfterModelCallEvent', async () => {
224
- new InterventionRegistry([new ModelGuideHandler()], hookRegistry);
225
- const event = makeAfterModelCallEvent();
226
- const messageCountBefore = event.agent.messages.length;
227
- await hookRegistry.invokeCallbacks(event);
228
- expect(event.retry).toBe(true);
229
- expect(event.agent.messages).toHaveLength(messageCountBefore + 1);
230
- const guidanceMessage = event.agent.messages[event.agent.messages.length - 1];
231
- expect(guidanceMessage.role).toBe('user');
232
- expect(guidanceMessage.content[0]).toMatchObject({ type: 'textBlock', text: '[model-guide] be more specific' });
233
- });
234
- });
235
- describe('confirm', () => {
236
- it('pauses agent when no response is provided', async () => {
237
- new InterventionRegistry([new ConfirmHandler()], hookRegistry);
238
- const event = makeBeforeToolCallEvent();
239
- await expect(hookRegistry.invokeCallbacks(event)).rejects.toThrow('Interrupt raised');
240
- });
241
- it('short-circuits — later handlers do not run', async () => {
242
- const laterCalled = vi.fn();
243
- class LaterHandler extends InterventionHandler {
244
- name = 'later';
245
- beforeToolCall() {
246
- laterCalled();
247
- return { type: 'proceed' };
248
- }
249
- }
250
- new InterventionRegistry([new ConfirmHandler(), new LaterHandler()], hookRegistry);
251
- await expect(hookRegistry.invokeCallbacks(makeBeforeToolCallEvent())).rejects.toThrow();
252
- expect(laterCalled).not.toHaveBeenCalled();
253
- });
254
- function preloadInterruptResponse(handlerName, response) {
255
- const interruptId = `hook:beforeToolCall:${toolUse.toolUseId}:${handlerName}`;
256
- const interruptState = agent._interruptState;
257
- interruptState.interrupts[interruptId] = new Interrupt({
258
- id: interruptId,
259
- name: handlerName,
260
- response: response,
261
- source: 'hook',
262
- });
263
- }
264
- describe('approve/deny on resume', () => {
265
- const DENIED = 'CONFIRMATION_FAILED: approve this action?';
266
- it.each([
267
- [true, false],
268
- ['yes', false],
269
- ['y', false],
270
- ['Y', false],
271
- ['YES', false],
272
- [' yes ', false],
273
- ['no', DENIED],
274
- [false, DENIED],
275
- [null, DENIED],
276
- ['', DENIED],
277
- ])('response %j → cancel=%j', async (response, expectedCancel) => {
278
- preloadInterruptResponse('confirm-handler', response);
279
- new InterventionRegistry([new ConfirmHandler()], hookRegistry);
280
- const event = makeBeforeToolCallEvent();
281
- await hookRegistry.invokeCallbacks(event);
282
- expect(event.cancel).toBe(expectedCancel);
283
- });
284
- });
285
- it('uses custom evaluate when provided', async () => {
286
- class CustomApprovalHandler extends InterventionHandler {
287
- name = 'custom-approval';
288
- beforeToolCall() {
289
- return {
290
- type: 'confirm',
291
- prompt: 'approve?',
292
- evaluate: (response) => response === 'custom-yes',
293
- };
294
- }
295
- }
296
- // 'yes' would pass default evaluate but fails custom
297
- preloadInterruptResponse('custom-approval', 'yes');
298
- new InterventionRegistry([new CustomApprovalHandler()], hookRegistry);
299
- const event = makeBeforeToolCallEvent();
300
- await hookRegistry.invokeCallbacks(event);
301
- expect(event.cancel).toBe('CONFIRMATION_FAILED: approve?');
302
- });
303
- it('custom evaluate approves when its condition is met', async () => {
304
- class CustomApprovalHandler extends InterventionHandler {
305
- name = 'custom-approval';
306
- beforeToolCall() {
307
- return {
308
- type: 'confirm',
309
- prompt: 'approve?',
310
- evaluate: (response) => response === 'custom-yes',
311
- };
312
- }
313
- }
314
- preloadInterruptResponse('custom-approval', 'custom-yes');
315
- new InterventionRegistry([new CustomApprovalHandler()], hookRegistry);
316
- const event = makeBeforeToolCallEvent();
317
- await hookRegistry.invokeCallbacks(event);
318
- expect(event.cancel).toBe(false);
319
- });
320
- it('approved confirm does not short-circuit later handlers', async () => {
321
- preloadInterruptResponse('confirm-handler', 'yes');
322
- const laterCalled = vi.fn();
323
- class LaterHandler extends InterventionHandler {
324
- name = 'later';
325
- beforeToolCall() {
326
- laterCalled();
327
- return { type: 'proceed' };
328
- }
329
- }
330
- new InterventionRegistry([new ConfirmHandler(), new LaterHandler()], hookRegistry);
331
- const event = makeBeforeToolCallEvent();
332
- await hookRegistry.invokeCallbacks(event);
333
- expect(event.cancel).toBe(false);
334
- expect(laterCalled).toHaveBeenCalled();
335
- });
336
- it('denied confirm short-circuits later handlers', async () => {
337
- preloadInterruptResponse('confirm-handler', 'no');
338
- const laterCalled = vi.fn();
339
- class LaterHandler extends InterventionHandler {
340
- name = 'later';
341
- beforeToolCall() {
342
- laterCalled();
343
- return { type: 'proceed' };
344
- }
345
- }
346
- new InterventionRegistry([new ConfirmHandler(), new LaterHandler()], hookRegistry);
347
- const event = makeBeforeToolCallEvent();
348
- await hookRegistry.invokeCallbacks(event);
349
- expect(event.cancel).toBe('CONFIRMATION_FAILED: approve this action?');
350
- expect(laterCalled).not.toHaveBeenCalled();
351
- });
352
- describe('preemptive response (inline mode)', () => {
353
- it('approves when response is an approved value', async () => {
354
- class InlineConfirmHandler extends InterventionHandler {
355
- name = 'inline-confirm';
356
- beforeToolCall() {
357
- return { type: 'confirm', prompt: 'approve?', response: 'yes' };
358
- }
359
- }
360
- new InterventionRegistry([new InlineConfirmHandler()], hookRegistry);
361
- const event = makeBeforeToolCallEvent();
362
- await hookRegistry.invokeCallbacks(event);
363
- expect(event.cancel).toBe(false);
364
- });
365
- it('denies when response is a non-approved value', async () => {
366
- class InlineConfirmHandler extends InterventionHandler {
367
- name = 'inline-confirm';
368
- beforeToolCall() {
369
- return { type: 'confirm', prompt: 'approve?', response: 'no' };
370
- }
371
- }
372
- new InterventionRegistry([new InlineConfirmHandler()], hookRegistry);
373
- const event = makeBeforeToolCallEvent();
374
- await hookRegistry.invokeCallbacks(event);
375
- expect(event.cancel).toBe('CONFIRMATION_FAILED: approve?');
376
- });
377
- it('uses custom evaluate with preemptive response', async () => {
378
- class OtpHandler extends InterventionHandler {
379
- name = 'otp-handler';
380
- beforeToolCall() {
381
- return {
382
- type: 'confirm',
383
- prompt: 'Enter OTP:',
384
- response: '123456',
385
- evaluate: (r) => r === '123456',
386
- };
387
- }
388
- }
389
- new InterventionRegistry([new OtpHandler()], hookRegistry);
390
- const event = makeBeforeToolCallEvent();
391
- await hookRegistry.invokeCallbacks(event);
392
- expect(event.cancel).toBe(false);
393
- });
394
- it('passes response as preemptive value so agent never pauses', async () => {
395
- class InlineConfirmHandler extends InterventionHandler {
396
- name = 'inline-confirm';
397
- beforeToolCall() {
398
- return { type: 'confirm', prompt: 'approve?', response: 'yes' };
399
- }
400
- }
401
- new InterventionRegistry([new InlineConfirmHandler()], hookRegistry);
402
- const event = makeBeforeToolCallEvent();
403
- const interruptSpy = vi.spyOn(event, 'interrupt');
404
- await hookRegistry.invokeCallbacks(event);
405
- expect(interruptSpy).toHaveBeenCalledWith({ name: 'inline-confirm', reason: 'approve?', response: 'yes' });
406
- });
407
- it('denies when response is falsy but defined (false)', async () => {
408
- class InlineConfirmHandler extends InterventionHandler {
409
- name = 'inline-confirm';
410
- beforeToolCall() {
411
- return { type: 'confirm', prompt: 'approve?', response: false };
412
- }
413
- }
414
- new InterventionRegistry([new InlineConfirmHandler()], hookRegistry);
415
- const event = makeBeforeToolCallEvent();
416
- await hookRegistry.invokeCallbacks(event);
417
- expect(event.cancel).toBe('CONFIRMATION_FAILED: approve?');
418
- });
419
- });
420
- it.each(['proceed', 'deny'])('InterruptError always propagates regardless of onError=%s', async (onError) => {
421
- class ConfirmWithOnError extends InterventionHandler {
422
- name = 'confirm-onerror';
423
- onError = onError;
424
- beforeToolCall() {
425
- return { type: 'confirm', prompt: 'approve?' };
426
- }
427
- }
428
- new InterventionRegistry([new ConfirmWithOnError()], hookRegistry);
429
- const event = makeBeforeToolCallEvent();
430
- await expect(hookRegistry.invokeCallbacks(event)).rejects.toThrow('Interrupt raised');
431
- });
432
- });
433
- describe('transform', () => {
434
- it('calls the apply function with the event', async () => {
435
- const applyFn = vi.fn();
436
- class TransformHandler extends InterventionHandler {
437
- name = 'transform-handler';
438
- beforeToolCall() {
439
- return { type: 'transform', apply: applyFn, reason: 'sanitized input' };
440
- }
441
- }
442
- new InterventionRegistry([new TransformHandler()], hookRegistry);
443
- const event = makeBeforeToolCallEvent();
444
- await hookRegistry.invokeCallbacks(event);
445
- expect(applyFn).toHaveBeenCalledWith(event);
446
- });
447
- it('later handlers see the transformed state', async () => {
448
- const observed = [];
449
- class Transformer extends InterventionHandler {
450
- name = 'transformer';
451
- beforeToolCall() {
452
- return {
453
- type: 'transform',
454
- apply: (e) => {
455
- ;
456
- e.cancel = 'transformed';
457
- },
458
- };
459
- }
460
- }
461
- class Observer extends InterventionHandler {
462
- name = 'observer';
463
- beforeToolCall(event) {
464
- observed.push(String(event.cancel));
465
- return { type: 'proceed' };
466
- }
467
- }
468
- new InterventionRegistry([new Transformer(), new Observer()], hookRegistry);
469
- await hookRegistry.invokeCallbacks(makeBeforeToolCallEvent());
470
- expect(observed).toEqual(['transformed']);
471
- });
472
- it('works on AfterModelCallEvent', async () => {
473
- const applyFn = vi.fn();
474
- class ModelTransform extends InterventionHandler {
475
- name = 'model-transform';
476
- afterModelCall() {
477
- return { type: 'transform', apply: applyFn, reason: 'redacted output' };
478
- }
479
- }
480
- new InterventionRegistry([new ModelTransform()], hookRegistry);
481
- const event = makeAfterModelCallEvent();
482
- await hookRegistry.invokeCallbacks(event);
483
- expect(applyFn).toHaveBeenCalledWith(event);
484
- });
485
- it('is logged in the audit trail', async () => {
486
- class TransformHandler extends InterventionHandler {
487
- name = 'transform-handler';
488
- beforeToolCall() {
489
- return { type: 'transform', apply: () => { }, reason: 'sanitized' };
490
- }
491
- }
492
- new InterventionRegistry([new TransformHandler()], hookRegistry);
493
- await hookRegistry.invokeCallbacks(makeBeforeToolCallEvent());
494
- // Transform was applied (verified by the apply fn mock tests above)
495
- });
496
- });
497
- describe('proceed', () => {
498
- it('does not mutate the event', async () => {
499
- new InterventionRegistry([new ProceedHandler()], hookRegistry);
500
- const event = makeBeforeToolCallEvent();
501
- await hookRegistry.invokeCallbacks(event);
502
- expect(event.cancel).toBe(false);
503
- });
504
- });
505
- describe('error handling', () => {
506
- it('onError=throw (default) rethrows the error', async () => {
507
- new InterventionRegistry([new ThrowingHandler(), new ProceedHandler()], hookRegistry);
508
- await expect(hookRegistry.invokeCallbacks(makeBeforeToolCallEvent())).rejects.toThrow('handler crashed');
509
- });
510
- it('onError=proceed skips the handler and continues to next', async () => {
511
- new InterventionRegistry([new ThrowingProceedHandler(), new ProceedHandler()], hookRegistry);
512
- const event = makeBeforeToolCallEvent();
513
- await hookRegistry.invokeCallbacks(event);
514
- expect(event.cancel).toBe(false);
515
- });
516
- it('onError=deny logs the error and applies deny', async () => {
517
- const laterCalled = vi.fn();
518
- class LaterHandler extends InterventionHandler {
519
- name = 'later';
520
- beforeToolCall() {
521
- laterCalled();
522
- return { type: 'proceed' };
523
- }
524
- }
525
- new InterventionRegistry([new ThrowingDenyHandler(), new LaterHandler()], hookRegistry);
526
- const event = makeBeforeToolCallEvent();
527
- await hookRegistry.invokeCallbacks(event);
528
- expect(event.cancel).toBe('DENIED: Handler threw: handler crashed');
529
- expect(laterCalled).not.toHaveBeenCalled();
530
- });
531
- });
532
- describe('async handlers', () => {
533
- it('awaits async handler results', async () => {
534
- new InterventionRegistry([new AsyncDenyHandler()], hookRegistry);
535
- const event = makeBeforeToolCallEvent();
536
- await hookRegistry.invokeCallbacks(event);
537
- expect(event.cancel).toBe('DENIED: async denial');
538
- });
539
- });
540
- describe('conflict resolution', () => {
541
- it('deny wins over guide', async () => {
542
- new InterventionRegistry([new GuideHandler(), new DenyHandler()], hookRegistry);
543
- const event = makeBeforeToolCallEvent();
544
- await hookRegistry.invokeCallbacks(event);
545
- expect(event.cancel).toBe('DENIED: not authorized');
546
- });
547
- it('deny short-circuits before guide can accumulate', async () => {
548
- new InterventionRegistry([new DenyHandler(), new GuideHandler()], hookRegistry);
549
- const event = makeBeforeToolCallEvent();
550
- await hookRegistry.invokeCallbacks(event);
551
- expect(event.cancel).toBe('DENIED: not authorized');
552
- });
553
- it('confirm short-circuits before guide can accumulate', async () => {
554
- new InterventionRegistry([new ConfirmHandler(), new GuideHandler()], hookRegistry);
555
- await expect(hookRegistry.invokeCallbacks(makeBeforeToolCallEvent())).rejects.toThrow('Interrupt raised');
556
- });
557
- });
558
- describe('agent integration', () => {
559
- it('deny on beforeToolCall prevents tool execution', async () => {
560
- const { MockMessageModel } = await import('../../__fixtures__/mock-message-model.js');
561
- const { createMockTool } = await import('../../__fixtures__/tool-helpers.js');
562
- let toolExecuted = false;
563
- const tool = createMockTool('blockedTool', () => {
564
- toolExecuted = true;
565
- return 'should not reach here';
566
- });
567
- class BlockAllTools extends InterventionHandler {
568
- name = 'block-all';
569
- beforeToolCall() {
570
- return { type: 'deny', reason: 'blocked by intervention' };
571
- }
572
- }
573
- const model = new MockMessageModel()
574
- .addTurn({ type: 'toolUseBlock', name: 'blockedTool', toolUseId: 'tool-1', input: {} })
575
- .addTurn({ type: 'textBlock', text: 'Done' });
576
- const agent = new Agent({
577
- model,
578
- tools: [tool],
579
- interventions: [new BlockAllTools()],
580
- });
581
- const result = await agent.invoke('Test');
582
- expect(result.stopReason).toBe('endTurn');
583
- expect(toolExecuted).toBe(false);
584
- });
585
- it('interventions run before plugins (HookOrder.INTERVENTIONS < DEFAULT)', async () => {
586
- const { MockMessageModel } = await import('../../__fixtures__/mock-message-model.js');
587
- const { createMockTool } = await import('../../__fixtures__/tool-helpers.js');
588
- const callOrder = [];
589
- const tool = createMockTool('testTool', () => 'result');
590
- class OrderTracker extends InterventionHandler {
591
- name = 'order-tracker';
592
- beforeToolCall() {
593
- callOrder.push('intervention');
594
- return { type: 'proceed' };
595
- }
596
- }
597
- const model = new MockMessageModel()
598
- .addTurn({ type: 'toolUseBlock', name: 'testTool', toolUseId: 'tool-1', input: {} })
599
- .addTurn({ type: 'textBlock', text: 'Done' });
600
- const agent = new Agent({
601
- model,
602
- tools: [tool],
603
- interventions: [new OrderTracker()],
604
- });
605
- agent.addHook(BeforeToolCallEvent, () => {
606
- callOrder.push('plugin');
607
- });
608
- await agent.invoke('Test');
609
- // On Before*: plugins run first (DEFAULT:0), interventions last (INTERVENTIONS:90)
610
- expect(callOrder[0]).toBe('plugin');
611
- expect(callOrder[1]).toBe('intervention');
612
- });
613
- });
614
- describe('edge cases', () => {
615
- it('guide on beforeModelCall injects a user message', async () => {
616
- class ModelGuide extends InterventionHandler {
617
- name = 'model-guide';
618
- beforeModelCall() {
619
- return { type: 'guide', feedback: 'check your sources' };
620
- }
621
- }
622
- new InterventionRegistry([new ModelGuide()], hookRegistry);
623
- const event = makeBeforeModelCallEvent();
624
- const messageCountBefore = event.agent.messages.length;
625
- await hookRegistry.invokeCallbacks(event);
626
- expect(event.cancel).toBe(false);
627
- expect(event.agent.messages).toHaveLength(messageCountBefore + 1);
628
- const injected = event.agent.messages[event.agent.messages.length - 1];
629
- expect(injected.role).toBe('user');
630
- expect(injected.content[0]).toMatchObject({ type: 'textBlock', text: '[model-guide] check your sources' });
631
- });
632
- it('transform apply() error is handled via onError policy', async () => {
633
- class BadTransform extends InterventionHandler {
634
- name = 'bad-transform';
635
- onError = 'proceed';
636
- beforeToolCall() {
637
- return {
638
- type: 'transform',
639
- apply: () => {
640
- throw new Error('apply boom');
641
- },
642
- };
643
- }
644
- }
645
- class AfterTransform extends InterventionHandler {
646
- name = 'after-transform';
647
- beforeToolCall() {
648
- return { type: 'proceed', reason: 'still running' };
649
- }
650
- }
651
- new InterventionRegistry([new BadTransform(), new AfterTransform()], hookRegistry);
652
- const event = makeBeforeToolCallEvent();
653
- await hookRegistry.invokeCallbacks(event);
654
- // onError=proceed means the error is swallowed and next handler runs
655
- expect(event.cancel).toBe(false);
656
- });
657
- it('transform apply() error with onError=throw propagates', async () => {
658
- class BadTransform extends InterventionHandler {
659
- name = 'bad-transform';
660
- onError = 'throw';
661
- beforeToolCall() {
662
- return {
663
- type: 'transform',
664
- apply: () => {
665
- throw new Error('apply boom');
666
- },
667
- };
668
- }
669
- }
670
- new InterventionRegistry([new BadTransform()], hookRegistry);
671
- await expect(hookRegistry.invokeCallbacks(makeBeforeToolCallEvent())).rejects.toThrow('apply boom');
672
- });
673
- it('warns when action has no effect on event type', async () => {
674
- const { logger } = await import('../../logging/logger.js');
675
- const warnSpy = vi.spyOn(logger, 'warn');
676
- // Force a confirm return on beforeInvocation (which doesn't support it)
677
- // via cast to test the runtime warning path
678
- class InterruptOnInvocation extends InterventionHandler {
679
- name = 'confirm-invocation';
680
- beforeInvocation() {
681
- // Force a confirm return via any cast to test the runtime warning
682
- return { type: 'confirm', prompt: 'test' };
683
- }
684
- }
685
- new InterventionRegistry([new InterruptOnInvocation()], hookRegistry);
686
- await hookRegistry.invokeCallbacks(makeBeforeInvocationEvent());
687
- expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('has no effect'));
688
- warnSpy.mockRestore();
689
- });
690
- });
691
- });
692
- //# sourceMappingURL=registry.test.js.map