@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,793 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
- import Anthropic from '@anthropic-ai/sdk';
3
- import { isNode } from '../../__fixtures__/environment.js';
4
- import { AnthropicModel } from '../anthropic.js';
5
- import { ContextWindowOverflowError, ModelThrottledError } from '../../errors.js';
6
- import { collectIterator } from '../../__fixtures__/model-test-helpers.js';
7
- import { Message, TextBlock, CachePointBlock, GuardContentBlock, ToolResultBlock, JsonBlock, ReasoningBlock, } from '../../types/messages.js';
8
- import { ImageBlock, DocumentBlock, VideoBlock } from '../../types/media.js';
9
- import { warnOnce } from '../../logging/warn-once.js';
10
- /**
11
- * Helper to create a mock Anthropic client with streaming support
12
- */
13
- function createMockClient(streamGenerator) {
14
- return {
15
- messages: {
16
- stream: vi.fn(() => streamGenerator()),
17
- countTokens: vi.fn(),
18
- },
19
- };
20
- }
21
- // Mock the Anthropic SDK
22
- vi.mock('@anthropic-ai/sdk', () => {
23
- const mockConstructor = vi.fn(function () {
24
- return {
25
- messages: {
26
- stream: vi.fn(),
27
- countTokens: vi.fn(),
28
- },
29
- };
30
- });
31
- return {
32
- default: mockConstructor,
33
- };
34
- });
35
- vi.mock('../../logging/warn-once.js', () => ({
36
- warnOnce: vi.fn(),
37
- }));
38
- describe('AnthropicModel', () => {
39
- beforeEach(() => {
40
- vi.clearAllMocks();
41
- if (isNode) {
42
- vi.stubEnv('ANTHROPIC_API_KEY', 'sk-ant-test-env');
43
- }
44
- });
45
- afterEach(() => {
46
- vi.clearAllMocks();
47
- if (isNode) {
48
- vi.unstubAllEnvs();
49
- }
50
- });
51
- describe('constructor', () => {
52
- it('creates an instance with default configuration', () => {
53
- const provider = new AnthropicModel({ apiKey: 'sk-ant-test' });
54
- const config = provider.getConfig();
55
- expect(config.modelId).toBe('claude-sonnet-4-6');
56
- expect(config.maxTokens).toBe(64_000);
57
- });
58
- it('uses provided model ID', () => {
59
- const customModelId = 'claude-3-opus-20240229';
60
- const provider = new AnthropicModel({ modelId: customModelId, apiKey: 'sk-ant-test' });
61
- expect(provider.getConfig().modelId).toBe(customModelId);
62
- });
63
- it('uses API key from constructor parameter', () => {
64
- const apiKey = 'sk-explicit';
65
- new AnthropicModel({ apiKey });
66
- expect(Anthropic).toHaveBeenCalledWith(expect.objectContaining({
67
- apiKey,
68
- }));
69
- });
70
- if (isNode) {
71
- it('uses API key from environment variable', () => {
72
- vi.stubEnv('ANTHROPIC_API_KEY', 'sk-from-env');
73
- new AnthropicModel();
74
- expect(Anthropic).toHaveBeenCalled();
75
- });
76
- it('throws error when no API key is available', () => {
77
- vi.stubEnv('ANTHROPIC_API_KEY', '');
78
- expect(() => new AnthropicModel()).toThrow('Anthropic API key is required');
79
- });
80
- }
81
- it('uses provided client instance', () => {
82
- const mockClient = {};
83
- const provider = new AnthropicModel({ client: mockClient });
84
- expect(Anthropic).not.toHaveBeenCalled();
85
- expect(provider).toBeDefined();
86
- });
87
- it('warns when maxTokens is not explicitly set', () => {
88
- new AnthropicModel({ apiKey: 'sk-ant-test' });
89
- expect(warnOnce).toHaveBeenCalledWith(expect.objectContaining({ warn: expect.any(Function) }), expect.stringContaining('using default maxTokens'));
90
- });
91
- it('does not warn when maxTokens is explicitly set', () => {
92
- new AnthropicModel({ apiKey: 'sk-ant-test', maxTokens: 4096 });
93
- expect(warnOnce).not.toHaveBeenCalledWith(expect.objectContaining({ warn: expect.any(Function) }), expect.stringContaining('using default maxTokens'));
94
- });
95
- it('warns when modelId is not explicitly set', () => {
96
- new AnthropicModel({ apiKey: 'sk-ant-test' });
97
- expect(warnOnce).toHaveBeenCalledWith(expect.objectContaining({ warn: expect.any(Function) }), expect.stringContaining('using default modelId'));
98
- });
99
- it('does not warn when modelId is explicitly set', () => {
100
- new AnthropicModel({ apiKey: 'sk-ant-test', modelId: 'claude-3-opus-20240229' });
101
- expect(warnOnce).not.toHaveBeenCalledWith(expect.objectContaining({ warn: expect.any(Function) }), expect.stringContaining('using default modelId'));
102
- });
103
- it('auto-populates contextWindowLimit from model ID lookup', () => {
104
- const provider = new AnthropicModel({ apiKey: 'sk-test', modelId: 'claude-sonnet-4-20250514' });
105
- expect(provider.getConfig()).toStrictEqual({
106
- modelId: 'claude-sonnet-4-20250514',
107
- maxTokens: 64_000,
108
- contextWindowLimit: 1_000_000,
109
- });
110
- });
111
- it('auto-populates contextWindowLimit for default model ID', () => {
112
- const provider = new AnthropicModel({ apiKey: 'sk-test' });
113
- expect(provider.getConfig()).toStrictEqual({
114
- modelId: 'claude-sonnet-4-6',
115
- maxTokens: 64_000,
116
- contextWindowLimit: 1_000_000,
117
- });
118
- });
119
- it('does not override explicit contextWindowLimit', () => {
120
- const provider = new AnthropicModel({
121
- apiKey: 'sk-test',
122
- modelId: 'claude-sonnet-4-20250514',
123
- contextWindowLimit: 100_000,
124
- });
125
- expect(provider.getConfig()).toStrictEqual({
126
- modelId: 'claude-sonnet-4-20250514',
127
- maxTokens: 64_000,
128
- contextWindowLimit: 100_000,
129
- });
130
- });
131
- it('leaves contextWindowLimit undefined for unknown model IDs', () => {
132
- const provider = new AnthropicModel({ apiKey: 'sk-test', modelId: 'unknown-model' });
133
- expect(provider.getConfig()).toStrictEqual({
134
- modelId: 'unknown-model',
135
- maxTokens: 64_000,
136
- });
137
- });
138
- });
139
- describe('updateConfig', () => {
140
- it('merges new config with existing config', () => {
141
- const provider = new AnthropicModel({ apiKey: 'sk-test', temperature: 0.5 });
142
- provider.updateConfig({ temperature: 0.8, maxTokens: 8192 });
143
- expect(provider.getConfig()).toMatchObject({
144
- temperature: 0.8,
145
- maxTokens: 8192,
146
- });
147
- });
148
- it('re-resolves contextWindowLimit when modelId changes and it was auto-resolved', () => {
149
- const provider = new AnthropicModel({ apiKey: 'sk-test' });
150
- expect(provider.getConfig().contextWindowLimit).toBe(1_000_000); // claude-sonnet-4-6 default
151
- provider.updateConfig({ modelId: 'claude-sonnet-4-20250514' });
152
- expect(provider.getConfig().contextWindowLimit).toBe(1_000_000); // claude-sonnet-4-20250514 value
153
- });
154
- it('preserves explicit contextWindowLimit when modelId changes', () => {
155
- const provider = new AnthropicModel({ apiKey: 'sk-test', contextWindowLimit: 50_000 });
156
- expect(provider.getConfig().contextWindowLimit).toBe(50_000);
157
- provider.updateConfig({ modelId: 'claude-sonnet-4-20250514' });
158
- expect(provider.getConfig().contextWindowLimit).toBe(50_000); // preserved
159
- });
160
- });
161
- describe('stream event handling', () => {
162
- it('yields correct event sequence for simple text response', async () => {
163
- const mockClient = createMockClient(async function* () {
164
- yield { type: 'message_start', message: { role: 'assistant', usage: { input_tokens: 10 } } };
165
- yield { type: 'content_block_start', index: 0, content_block: { type: 'text', text: '' } };
166
- yield { type: 'content_block_delta', index: 0, delta: { type: 'text_delta', text: 'Hello' } };
167
- yield { type: 'content_block_stop', index: 0 };
168
- yield { type: 'message_delta', delta: { stop_reason: 'end_turn' }, usage: { output_tokens: 5 } };
169
- yield { type: 'message_stop' };
170
- });
171
- const provider = new AnthropicModel({ client: mockClient });
172
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
173
- const events = await collectIterator(provider.stream(messages));
174
- expect(events).toHaveLength(6);
175
- expect(events[0]).toEqual({ type: 'modelMessageStartEvent', role: 'assistant' });
176
- expect(events[1]).toEqual({ type: 'modelContentBlockStartEvent' });
177
- expect(events[2]).toEqual({
178
- type: 'modelContentBlockDeltaEvent',
179
- delta: { type: 'textDelta', text: 'Hello' },
180
- });
181
- expect(events[3]).toEqual({ type: 'modelContentBlockStopEvent' });
182
- expect(events[4]).toEqual({
183
- type: 'modelMetadataEvent',
184
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
185
- });
186
- expect(events[5]).toEqual({ type: 'modelMessageStopEvent', stopReason: 'endTurn' });
187
- });
188
- it('handles tool use events', async () => {
189
- const mockClient = createMockClient(async function* () {
190
- yield { type: 'message_start', message: { role: 'assistant', usage: { input_tokens: 10 } } };
191
- yield {
192
- type: 'content_block_start',
193
- index: 0,
194
- content_block: { type: 'tool_use', id: 'tool_1', name: 'calc' },
195
- };
196
- yield { type: 'content_block_delta', index: 0, delta: { type: 'input_json_delta', partial_json: '{"a"' } };
197
- yield { type: 'content_block_delta', index: 0, delta: { type: 'input_json_delta', partial_json: ':1}' } };
198
- yield { type: 'content_block_stop', index: 0 };
199
- yield { type: 'message_delta', delta: { stop_reason: 'tool_use' }, usage: { output_tokens: 10 } };
200
- yield { type: 'message_stop' };
201
- });
202
- const provider = new AnthropicModel({ client: mockClient });
203
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
204
- const events = await collectIterator(provider.stream(messages));
205
- expect(events).toContainEqual({
206
- type: 'modelContentBlockStartEvent',
207
- start: { type: 'toolUseStart', name: 'calc', toolUseId: 'tool_1' },
208
- });
209
- expect(events).toContainEqual({
210
- type: 'modelContentBlockDeltaEvent',
211
- delta: { type: 'toolUseInputDelta', input: '{"a"' },
212
- });
213
- expect(events).toContainEqual({
214
- type: 'modelContentBlockDeltaEvent',
215
- delta: { type: 'toolUseInputDelta', input: ':1}' },
216
- });
217
- expect(events).toContainEqual({ type: 'modelMessageStopEvent', stopReason: 'toolUse' });
218
- });
219
- it.each([
220
- ['pause_turn', 'pauseTurn'],
221
- ['refusal', 'refusal'],
222
- ])('maps anthropic stop reason "%s" to "%s"', async (anthropicReason, expected) => {
223
- const mockClient = createMockClient(async function* () {
224
- yield { type: 'message_start', message: { role: 'assistant', usage: { input_tokens: 1 } } };
225
- yield { type: 'message_delta', delta: { stop_reason: anthropicReason }, usage: { output_tokens: 1 } };
226
- yield { type: 'message_stop' };
227
- });
228
- const provider = new AnthropicModel({ client: mockClient });
229
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
230
- const events = await collectIterator(provider.stream(messages));
231
- expect(events).toContainEqual({ type: 'modelMessageStopEvent', stopReason: expected });
232
- });
233
- it('handles thinking/reasoning events', async () => {
234
- const mockClient = createMockClient(async function* () {
235
- yield { type: 'message_start', message: { role: 'assistant', usage: { input_tokens: 10 } } };
236
- // Thinking block
237
- yield { type: 'content_block_start', index: 0, content_block: { type: 'thinking', thinking: '' } };
238
- yield { type: 'content_block_delta', index: 0, delta: { type: 'thinking_delta', thinking: 'Hmm...' } };
239
- yield { type: 'content_block_delta', index: 0, delta: { type: 'signature_delta', signature: 'sig_123' } };
240
- yield { type: 'content_block_stop', index: 0 };
241
- // Text block
242
- yield { type: 'content_block_start', index: 1, content_block: { type: 'text', text: '' } };
243
- yield { type: 'content_block_delta', index: 1, delta: { type: 'text_delta', text: 'Answer' } };
244
- yield { type: 'content_block_stop', index: 1 };
245
- yield { type: 'message_delta', delta: { stop_reason: 'end_turn' }, usage: { output_tokens: 20 } };
246
- yield { type: 'message_stop' };
247
- });
248
- const provider = new AnthropicModel({ client: mockClient });
249
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
250
- const events = await collectIterator(provider.stream(messages));
251
- // Check for thinking deltas
252
- expect(events).toContainEqual({
253
- type: 'modelContentBlockDeltaEvent',
254
- delta: { type: 'reasoningContentDelta', text: 'Hmm...' },
255
- });
256
- expect(events).toContainEqual({
257
- type: 'modelContentBlockDeltaEvent',
258
- delta: { type: 'reasoningContentDelta', signature: 'sig_123' },
259
- });
260
- });
261
- it('handles redacted thinking events', async () => {
262
- const mockClient = createMockClient(async function* () {
263
- yield { type: 'message_start', message: { role: 'assistant', usage: { input_tokens: 10 } } };
264
- yield {
265
- type: 'content_block_start',
266
- index: 0,
267
- content_block: { type: 'redacted_thinking', data: 'data' },
268
- };
269
- yield { type: 'content_block_stop', index: 0 };
270
- yield { type: 'message_delta', delta: { stop_reason: 'end_turn' }, usage: { output_tokens: 5 } };
271
- yield { type: 'message_stop' };
272
- });
273
- const provider = new AnthropicModel({ client: mockClient });
274
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
275
- const events = await collectIterator(provider.stream(messages));
276
- expect(events).toContainEqual({
277
- type: 'modelContentBlockDeltaEvent',
278
- delta: { type: 'reasoningContentDelta', redactedContent: 'data' },
279
- });
280
- });
281
- it('handles text payload directly in content_block_start (optimization)', async () => {
282
- const mockClient = createMockClient(async function* () {
283
- yield { type: 'message_start', message: { role: 'assistant', usage: { input_tokens: 10 } } };
284
- yield { type: 'content_block_start', index: 0, content_block: { type: 'text', text: 'Full text' } };
285
- yield { type: 'content_block_stop', index: 0 };
286
- yield { type: 'message_delta', delta: { stop_reason: 'end_turn' }, usage: { output_tokens: 5 } };
287
- yield { type: 'message_stop' };
288
- });
289
- const provider = new AnthropicModel({ client: mockClient });
290
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
291
- const events = await collectIterator(provider.stream(messages));
292
- expect(events).toContainEqual({
293
- type: 'modelContentBlockDeltaEvent',
294
- delta: { type: 'textDelta', text: 'Full text' },
295
- });
296
- });
297
- it('handles error during stream', async () => {
298
- const mockClient = createMockClient(async function* () {
299
- yield { type: 'ping' }; // Satisfy linter require-yield
300
- throw new Error('API Error');
301
- });
302
- const provider = new AnthropicModel({ client: mockClient });
303
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
304
- await expect(collectIterator(provider.stream(messages))).rejects.toThrow('API Error');
305
- });
306
- it('maps overload error to ContextWindowOverflowError', async () => {
307
- const mockClient = createMockClient(async function* () {
308
- yield { type: 'ping' }; // Satisfy linter require-yield
309
- throw new Error('prompt is too long');
310
- });
311
- const provider = new AnthropicModel({ client: mockClient });
312
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
313
- await expect(collectIterator(provider.stream(messages))).rejects.toThrow(ContextWindowOverflowError);
314
- });
315
- it.each([
316
- 'input is too long',
317
- 'input length exceeds context window',
318
- 'input and output tokens exceed your context limit',
319
- ])('maps overflow phrase %p to ContextWindowOverflowError', async (phrase) => {
320
- const mockClient = createMockClient(async function* () {
321
- yield { type: 'ping' };
322
- throw new Error(phrase);
323
- });
324
- const provider = new AnthropicModel({ client: mockClient });
325
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
326
- await expect(collectIterator(provider.stream(messages))).rejects.toThrow(ContextWindowOverflowError);
327
- });
328
- it('matches overflow phrases case-insensitively', async () => {
329
- const mockClient = createMockClient(async function* () {
330
- yield { type: 'ping' };
331
- throw new Error('PROMPT IS TOO LONG: 200000 tokens');
332
- });
333
- const provider = new AnthropicModel({ client: mockClient });
334
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
335
- await expect(collectIterator(provider.stream(messages))).rejects.toThrow(ContextWindowOverflowError);
336
- });
337
- it('maps HTTP 429 error to ModelThrottledError', async () => {
338
- const rateLimitError = Object.assign(new Error('Rate limit exceeded'), { status: 429 });
339
- // eslint-disable-next-line require-yield
340
- const mockClient = createMockClient(async function* () {
341
- throw rateLimitError;
342
- });
343
- const provider = new AnthropicModel({ client: mockClient });
344
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
345
- await expect(collectIterator(provider.stream(messages))).rejects.toThrow(ModelThrottledError);
346
- await expect(collectIterator(provider.stream(messages))).rejects.toThrow('Rate limit exceeded');
347
- });
348
- });
349
- describe('request formatting', () => {
350
- // Helper to capture request arguments
351
- const setupCapture = () => {
352
- const captured = { request: null, options: null };
353
- const mockClient = {
354
- messages: {
355
- stream: vi.fn((req, opts) => {
356
- captured.request = req;
357
- captured.options = opts;
358
- return (async function* () { })();
359
- }),
360
- },
361
- };
362
- return { captured, mockClient };
363
- };
364
- it('formats basic request correctly', async () => {
365
- const { captured, mockClient } = setupCapture();
366
- const provider = new AnthropicModel({
367
- modelId: 'claude-3-opus',
368
- maxTokens: 1000,
369
- temperature: 0.7,
370
- client: mockClient,
371
- });
372
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hello')] })];
373
- await collectIterator(provider.stream(messages));
374
- expect(captured.request).toEqual({
375
- model: 'claude-3-opus',
376
- max_tokens: 1000,
377
- temperature: 0.7,
378
- messages: [{ role: 'user', content: [{ type: 'text', text: 'Hello' }] }],
379
- stream: true,
380
- });
381
- });
382
- it('formats tools correctly', async () => {
383
- const { captured, mockClient } = setupCapture();
384
- const provider = new AnthropicModel({ client: mockClient });
385
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
386
- const toolSpecs = [
387
- {
388
- name: 'calc',
389
- description: 'calculate',
390
- inputSchema: { type: 'object', properties: {} },
391
- },
392
- ];
393
- await collectIterator(provider.stream(messages, { toolSpecs, toolChoice: { auto: {} } }));
394
- expect(captured.request.tools).toHaveLength(1);
395
- expect(captured.request.tools[0]).toEqual({
396
- name: 'calc',
397
- description: 'calculate',
398
- input_schema: { type: 'object', properties: {} },
399
- });
400
- expect(captured.request.tool_choice).toEqual({ type: 'auto' });
401
- });
402
- it('formats a signature-only reasoning block', async () => {
403
- const { captured, mockClient } = setupCapture();
404
- const provider = new AnthropicModel({ client: mockClient });
405
- const messages = [
406
- new Message({
407
- role: 'assistant',
408
- content: [new ReasoningBlock({ signature: 'sig-abc' }), new TextBlock('answer')],
409
- }),
410
- ];
411
- await collectIterator(provider.stream(messages));
412
- expect(captured.request.messages[0].content).toEqual([
413
- { type: 'thinking', thinking: '', signature: 'sig-abc' },
414
- { type: 'text', text: 'answer' },
415
- ]);
416
- });
417
- describe('Prompt Caching (Lookahead logic)', () => {
418
- it('attaches cache control to message content block followed by cache point', async () => {
419
- const { captured, mockClient } = setupCapture();
420
- const provider = new AnthropicModel({ client: mockClient });
421
- const messages = [
422
- new Message({
423
- role: 'user',
424
- content: [
425
- new TextBlock('Cached content'),
426
- // Use 'default' here; provider converts it to 'ephemeral' for Anthropic
427
- new CachePointBlock({ cacheType: 'default' }),
428
- new TextBlock('Non-cached content'),
429
- ],
430
- }),
431
- ];
432
- await collectIterator(provider.stream(messages));
433
- const content = captured.request.messages[0].content;
434
- expect(content).toHaveLength(2); // 3 blocks reduced to 2 (cache point merged)
435
- expect(content[0]).toEqual({
436
- type: 'text',
437
- text: 'Cached content',
438
- cache_control: { type: 'ephemeral' },
439
- });
440
- expect(content[1]).toEqual({
441
- type: 'text',
442
- text: 'Non-cached content',
443
- });
444
- });
445
- it('formats system prompt string without cache', async () => {
446
- const { captured, mockClient } = setupCapture();
447
- const provider = new AnthropicModel({ client: mockClient });
448
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
449
- await collectIterator(provider.stream(messages, { systemPrompt: 'System instruction' }));
450
- expect(captured.request.system).toBe('System instruction');
451
- });
452
- it('formats system prompt array with cache points', async () => {
453
- const { captured, mockClient } = setupCapture();
454
- const provider = new AnthropicModel({ client: mockClient });
455
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
456
- const systemPrompt = [
457
- new TextBlock('Heavy context'),
458
- new CachePointBlock({ cacheType: 'default' }),
459
- new TextBlock('Light context'),
460
- ];
461
- await collectIterator(provider.stream(messages, { systemPrompt }));
462
- expect(Array.isArray(captured.request.system)).toBe(true);
463
- const system = captured.request.system;
464
- expect(system).toHaveLength(2);
465
- expect(system[0]).toEqual({
466
- type: 'text',
467
- text: 'Heavy context',
468
- cache_control: { type: 'ephemeral' },
469
- });
470
- expect(system[1]).toEqual({
471
- type: 'text',
472
- text: 'Light context',
473
- });
474
- });
475
- });
476
- describe('Media blocks', () => {
477
- it('formats images correctly', async () => {
478
- const { captured, mockClient } = setupCapture();
479
- const provider = new AnthropicModel({ client: mockClient });
480
- const imageBytes = new Uint8Array([72, 101, 108, 108, 111]); // "Hello"
481
- const messages = [
482
- new Message({
483
- role: 'user',
484
- content: [
485
- new ImageBlock({
486
- format: 'png',
487
- source: { bytes: imageBytes },
488
- }),
489
- ],
490
- }),
491
- ];
492
- await collectIterator(provider.stream(messages));
493
- const content = captured.request.messages[0].content[0];
494
- expect(content.type).toBe('image');
495
- expect(content.source.media_type).toBe('image/png');
496
- // Base64 of "Hello" is "SGVsbG8="
497
- expect(content.source.data).toBe('SGVsbG8=');
498
- });
499
- it('formats PDFs correctly', async () => {
500
- const { captured, mockClient } = setupCapture();
501
- const provider = new AnthropicModel({ client: mockClient });
502
- const pdfBytes = new Uint8Array([1, 2, 3]);
503
- const messages = [
504
- new Message({
505
- role: 'user',
506
- content: [
507
- new DocumentBlock({
508
- name: 'doc.pdf',
509
- format: 'pdf',
510
- source: { bytes: pdfBytes },
511
- }),
512
- ],
513
- }),
514
- ];
515
- await collectIterator(provider.stream(messages));
516
- const content = captured.request.messages[0].content[0];
517
- expect(content.type).toBe('document');
518
- expect(content.source.media_type).toBe('application/pdf');
519
- expect(content.title).toBe('doc.pdf');
520
- });
521
- it('logs warning for unsupported GuardContentBlock in user message', async () => {
522
- const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => { }); // Spy on console.warn (via logger)
523
- const { captured, mockClient } = setupCapture();
524
- const provider = new AnthropicModel({ client: mockClient });
525
- const messages = [
526
- new Message({
527
- role: 'user',
528
- content: [
529
- new GuardContentBlock({
530
- text: { text: 'guard', qualifiers: ['query'] },
531
- }),
532
- ],
533
- }),
534
- ];
535
- await collectIterator(provider.stream(messages));
536
- // Should result in empty content if blocked
537
- expect(captured.request.messages[0].content).toHaveLength(0);
538
- warnSpy.mockRestore();
539
- });
540
- });
541
- describe('Tool Results', () => {
542
- it('formats simple text tool result', async () => {
543
- const { captured, mockClient } = setupCapture();
544
- const provider = new AnthropicModel({ client: mockClient });
545
- const messages = [
546
- new Message({
547
- role: 'user',
548
- content: [
549
- new ToolResultBlock({
550
- toolUseId: 't1',
551
- status: 'success',
552
- content: [new TextBlock('42')],
553
- }),
554
- ],
555
- }),
556
- ];
557
- await collectIterator(provider.stream(messages));
558
- const content = captured.request.messages[0].content[0];
559
- expect(content.type).toBe('tool_result');
560
- expect(content.tool_use_id).toBe('t1');
561
- expect(content.content).toBe('42'); // Simplified to string
562
- expect(content.is_error).toBe(false);
563
- });
564
- it('formats mixed tool result (json/image)', async () => {
565
- const { captured, mockClient } = setupCapture();
566
- const provider = new AnthropicModel({ client: mockClient });
567
- const messages = [
568
- new Message({
569
- role: 'user',
570
- content: [
571
- new ToolResultBlock({
572
- toolUseId: 't1',
573
- status: 'error',
574
- content: [new JsonBlock({ json: { error: 'failed' } }), new TextBlock('Details here')],
575
- }),
576
- ],
577
- }),
578
- ];
579
- await collectIterator(provider.stream(messages));
580
- const content = captured.request.messages[0].content[0];
581
- expect(content.type).toBe('tool_result');
582
- expect(content.is_error).toBe(true);
583
- expect(Array.isArray(content.content)).toBe(true);
584
- // JSON is stringified in Anthropic tool result content
585
- expect(content.content[0]).toEqual({ type: 'text', text: '{"error":"failed"}' });
586
- expect(content.content[1]).toEqual({ type: 'text', text: 'Details here' });
587
- });
588
- it('formats image block inside tool result via recursive formatting', async () => {
589
- const { captured, mockClient } = setupCapture();
590
- const provider = new AnthropicModel({ client: mockClient });
591
- const imageBytes = new Uint8Array([72, 101, 108, 108, 111]);
592
- const messages = [
593
- new Message({
594
- role: 'user',
595
- content: [
596
- new ToolResultBlock({
597
- toolUseId: 't1',
598
- status: 'success',
599
- content: [
600
- new TextBlock('Here is the screenshot'),
601
- new ImageBlock({ format: 'png', source: { bytes: imageBytes } }),
602
- ],
603
- }),
604
- ],
605
- }),
606
- ];
607
- await collectIterator(provider.stream(messages));
608
- const content = captured.request.messages[0].content[0];
609
- expect(content.type).toBe('tool_result');
610
- expect(Array.isArray(content.content)).toBe(true);
611
- expect(content.content[0]).toEqual({ type: 'text', text: 'Here is the screenshot' });
612
- expect(content.content[1]).toEqual({
613
- type: 'image',
614
- source: { type: 'base64', media_type: 'image/png', data: 'SGVsbG8=' },
615
- });
616
- });
617
- it('formats document block inside tool result as text for text formats', async () => {
618
- const { captured, mockClient } = setupCapture();
619
- const provider = new AnthropicModel({ client: mockClient });
620
- const messages = [
621
- new Message({
622
- role: 'user',
623
- content: [
624
- new ToolResultBlock({
625
- toolUseId: 't1',
626
- status: 'success',
627
- content: [new DocumentBlock({ name: 'data.json', format: 'json', source: { text: '{"key":"val"}' } })],
628
- }),
629
- ],
630
- }),
631
- ];
632
- await collectIterator(provider.stream(messages));
633
- const content = captured.request.messages[0].content[0];
634
- expect(content.type).toBe('tool_result');
635
- // Single text item collapses to string
636
- expect(content.content).toBe('{"key":"val"}');
637
- });
638
- it('skips video block inside tool result with warning', async () => {
639
- const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => { });
640
- const { captured, mockClient } = setupCapture();
641
- const provider = new AnthropicModel({ client: mockClient });
642
- const messages = [
643
- new Message({
644
- role: 'user',
645
- content: [
646
- new ToolResultBlock({
647
- toolUseId: 't1',
648
- status: 'success',
649
- content: [
650
- new TextBlock('result'),
651
- new VideoBlock({ format: 'mp4', source: { bytes: new Uint8Array([1]) } }),
652
- ],
653
- }),
654
- ],
655
- }),
656
- ];
657
- await collectIterator(provider.stream(messages));
658
- const content = captured.request.messages[0].content[0];
659
- expect(content.type).toBe('tool_result');
660
- // Video is filtered out, single text collapses to string
661
- expect(content.content).toBe('result');
662
- expect(warnSpy).toHaveBeenCalled();
663
- warnSpy.mockRestore();
664
- });
665
- });
666
- describe('Beta headers', () => {
667
- it('does not pass per-request options when betas is unset', async () => {
668
- const { captured, mockClient } = setupCapture();
669
- const provider = new AnthropicModel({ client: mockClient });
670
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
671
- await collectIterator(provider.stream(messages));
672
- expect(captured.options).toBeUndefined();
673
- });
674
- it('forwards configured betas as a per-request anthropic-beta header', async () => {
675
- const { captured, mockClient } = setupCapture();
676
- const provider = new AnthropicModel({
677
- client: mockClient,
678
- betas: ['interleaved-thinking-2025-05-14', 'mcp-client-2025-11-20'],
679
- });
680
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
681
- await collectIterator(provider.stream(messages));
682
- expect(captured.options).toEqual({
683
- headers: { 'anthropic-beta': 'interleaved-thinking-2025-05-14,mcp-client-2025-11-20' },
684
- });
685
- });
686
- it('reflects updateConfig({ betas }) on the next request', async () => {
687
- const { captured, mockClient } = setupCapture();
688
- const provider = new AnthropicModel({ client: mockClient });
689
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
690
- await collectIterator(provider.stream(messages));
691
- expect(captured.options).toBeUndefined();
692
- provider.updateConfig({ betas: ['interleaved-thinking-2025-05-14'] });
693
- await collectIterator(provider.stream(messages));
694
- expect(captured.options).toEqual({
695
- headers: { 'anthropic-beta': 'interleaved-thinking-2025-05-14' },
696
- });
697
- });
698
- });
699
- });
700
- describe('countTokens', () => {
701
- const messages = [new Message({ role: 'user', content: [new TextBlock('hello')] })];
702
- const toolSpecs = [
703
- { name: 'test_tool', description: 'A test tool', inputSchema: { type: 'object', properties: {} } },
704
- ];
705
- function createCountTokensClient(mockCountTokens) {
706
- return {
707
- messages: {
708
- stream: vi.fn(),
709
- countTokens: mockCountTokens,
710
- },
711
- };
712
- }
713
- it('should use heuristic by default when useNativeTokenCount is not set', async () => {
714
- const mockCountTokens = vi.fn();
715
- const client = createCountTokensClient(mockCountTokens);
716
- const model = new AnthropicModel({ client, modelId: 'claude-sonnet-4-6' });
717
- const result = await model.countTokens(messages);
718
- expect(mockCountTokens).not.toHaveBeenCalled();
719
- expect(result).toBe(2); // heuristic: Math.ceil('hello'.length / 4)
720
- });
721
- it('should return native token count on success', async () => {
722
- const mockCountTokens = vi.fn(async () => ({ input_tokens: 42 }));
723
- const client = createCountTokensClient(mockCountTokens);
724
- const model = new AnthropicModel({ client, modelId: 'claude-sonnet-4-6', useNativeTokenCount: true });
725
- const result = await model.countTokens(messages);
726
- expect(result).toBe(42);
727
- expect(mockCountTokens).toHaveBeenCalledOnce();
728
- });
729
- it('should include system prompt in request', async () => {
730
- const mockCountTokens = vi.fn(async () => ({ input_tokens: 55 }));
731
- const client = createCountTokensClient(mockCountTokens);
732
- const model = new AnthropicModel({ client, modelId: 'claude-sonnet-4-6', useNativeTokenCount: true });
733
- const result = await model.countTokens(messages, { systemPrompt: 'Be helpful.' });
734
- expect(result).toBe(55);
735
- expect(mockCountTokens).toHaveBeenCalledWith({
736
- model: 'claude-sonnet-4-6',
737
- messages: [{ role: 'user', content: [{ type: 'text', text: 'hello' }] }],
738
- system: 'Be helpful.',
739
- });
740
- });
741
- it('should include tool specs in request', async () => {
742
- const mockCountTokens = vi.fn(async () => ({ input_tokens: 100 }));
743
- const client = createCountTokensClient(mockCountTokens);
744
- const model = new AnthropicModel({ client, modelId: 'claude-sonnet-4-6', useNativeTokenCount: true });
745
- const result = await model.countTokens(messages, { toolSpecs });
746
- expect(result).toBe(100);
747
- expect(mockCountTokens).toHaveBeenCalledWith({
748
- model: 'claude-sonnet-4-6',
749
- messages: [{ role: 'user', content: [{ type: 'text', text: 'hello' }] }],
750
- tools: [{ name: 'test_tool', description: 'A test tool', input_schema: { type: 'object', properties: {} } }],
751
- });
752
- });
753
- it('should strip max_tokens from request', async () => {
754
- const mockCountTokens = vi.fn(async () => ({ input_tokens: 10 }));
755
- const client = createCountTokensClient(mockCountTokens);
756
- const model = new AnthropicModel({ client, modelId: 'claude-sonnet-4-6', useNativeTokenCount: true });
757
- await model.countTokens(messages);
758
- expect(mockCountTokens).toHaveBeenCalledWith({
759
- model: 'claude-sonnet-4-6',
760
- messages: [{ role: 'user', content: [{ type: 'text', text: 'hello' }] }],
761
- });
762
- });
763
- it('should fall back to estimation on API error', async () => {
764
- const mockCountTokens = vi.fn(async () => {
765
- throw new Error('Unsupported');
766
- });
767
- const client = createCountTokensClient(mockCountTokens);
768
- const model = new AnthropicModel({ client, modelId: 'claude-sonnet-4-6', useNativeTokenCount: true });
769
- const result = await model.countTokens(messages);
770
- expect(typeof result).toBe('number');
771
- expect(result).toBeGreaterThanOrEqual(0);
772
- });
773
- it('should fall back to estimation on generic exception', async () => {
774
- const mockCountTokens = vi.fn(async () => {
775
- throw new Error('Connection failed');
776
- });
777
- const client = createCountTokensClient(mockCountTokens);
778
- const model = new AnthropicModel({ client, modelId: 'claude-sonnet-4-6', useNativeTokenCount: true });
779
- const result = await model.countTokens(messages);
780
- expect(typeof result).toBe('number');
781
- expect(result).toBeGreaterThanOrEqual(0);
782
- });
783
- it('should skip native API and use heuristic when useNativeTokenCount is false', async () => {
784
- const mockCountTokens = vi.fn();
785
- const client = createCountTokensClient(mockCountTokens);
786
- const model = new AnthropicModel({ client, modelId: 'claude-sonnet-4-6', useNativeTokenCount: false });
787
- const result = await model.countTokens(messages);
788
- expect(mockCountTokens).not.toHaveBeenCalled();
789
- expect(result).toBe(2); // heuristic: Math.ceil('hello'.length / 4)
790
- });
791
- });
792
- });
793
- //# sourceMappingURL=anthropic.test.js.map