@strands-agents/sdk 0.4.0 → 0.6.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 (306) hide show
  1. package/dist/src/__fixtures__/agent-helpers.d.ts +10 -1
  2. package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
  3. package/dist/src/__fixtures__/agent-helpers.js +13 -2
  4. package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
  5. package/dist/src/__fixtures__/metrics-helpers.d.ts +25 -0
  6. package/dist/src/__fixtures__/metrics-helpers.d.ts.map +1 -0
  7. package/dist/src/__fixtures__/metrics-helpers.js +34 -0
  8. package/dist/src/__fixtures__/metrics-helpers.js.map +1 -0
  9. package/dist/src/__fixtures__/mock-message-model.d.ts.map +1 -1
  10. package/dist/src/__fixtures__/mock-message-model.js +12 -0
  11. package/dist/src/__fixtures__/mock-message-model.js.map +1 -1
  12. package/dist/src/__fixtures__/mock-span.d.ts +78 -0
  13. package/dist/src/__fixtures__/mock-span.d.ts.map +1 -0
  14. package/dist/src/__fixtures__/mock-span.js +93 -0
  15. package/dist/src/__fixtures__/mock-span.js.map +1 -0
  16. package/dist/src/__fixtures__/mock-storage-provider.d.ts +5 -0
  17. package/dist/src/__fixtures__/mock-storage-provider.d.ts.map +1 -1
  18. package/dist/src/__fixtures__/mock-storage-provider.js +23 -6
  19. package/dist/src/__fixtures__/mock-storage-provider.js.map +1 -1
  20. package/dist/src/__fixtures__/slim-types.d.ts +2 -1
  21. package/dist/src/__fixtures__/slim-types.d.ts.map +1 -1
  22. package/dist/src/__fixtures__/tool-helpers.d.ts +2 -2
  23. package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
  24. package/dist/src/__fixtures__/tool-helpers.js +4 -4
  25. package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
  26. package/dist/src/__tests__/app-state.test.d.ts +2 -0
  27. package/dist/src/__tests__/app-state.test.d.ts.map +1 -0
  28. package/dist/src/{agent/__tests__/state.test.js → __tests__/app-state.test.js} +46 -46
  29. package/dist/src/__tests__/app-state.test.js.map +1 -0
  30. package/dist/src/__tests__/mcp.test.js +129 -18
  31. package/dist/src/__tests__/mcp.test.js.map +1 -1
  32. package/dist/src/agent/__tests__/agent.test.js +119 -11
  33. package/dist/src/agent/__tests__/agent.test.js.map +1 -1
  34. package/dist/src/agent/__tests__/agent.tracer.test.d.ts +2 -0
  35. package/dist/src/agent/__tests__/agent.tracer.test.d.ts.map +1 -0
  36. package/dist/src/agent/__tests__/agent.tracer.test.js +470 -0
  37. package/dist/src/agent/__tests__/agent.tracer.test.js.map +1 -0
  38. package/dist/src/agent/agent.d.ts +79 -9
  39. package/dist/src/agent/agent.d.ts.map +1 -1
  40. package/dist/src/agent/agent.js +253 -68
  41. package/dist/src/agent/agent.js.map +1 -1
  42. package/dist/src/{agent/state.d.ts → app-state.d.ts} +7 -7
  43. package/dist/src/app-state.d.ts.map +1 -0
  44. package/dist/src/{agent/state.js → app-state.js} +6 -6
  45. package/dist/src/app-state.js.map +1 -0
  46. package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +1 -1
  47. package/dist/src/conversation-manager/sliding-window-conversation-manager.js +1 -1
  48. package/dist/src/errors.d.ts +6 -0
  49. package/dist/src/errors.d.ts.map +1 -1
  50. package/dist/src/errors.js +9 -0
  51. package/dist/src/errors.js.map +1 -1
  52. package/dist/src/hooks/__tests__/events.test.js +2 -0
  53. package/dist/src/hooks/__tests__/events.test.js.map +1 -1
  54. package/dist/src/hooks/events.d.ts +16 -0
  55. package/dist/src/hooks/events.d.ts.map +1 -1
  56. package/dist/src/hooks/events.js.map +1 -1
  57. package/dist/src/hooks/index.d.ts +1 -1
  58. package/dist/src/hooks/index.d.ts.map +1 -1
  59. package/dist/src/index.d.ts +23 -7
  60. package/dist/src/index.d.ts.map +1 -1
  61. package/dist/src/index.js +19 -2
  62. package/dist/src/index.js.map +1 -1
  63. package/dist/src/mcp.d.ts +41 -0
  64. package/dist/src/mcp.d.ts.map +1 -1
  65. package/dist/src/mcp.js +60 -6
  66. package/dist/src/mcp.js.map +1 -1
  67. package/dist/src/models/__tests__/bedrock.test.js +688 -0
  68. package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
  69. package/dist/src/models/__tests__/model.test.js +113 -0
  70. package/dist/src/models/__tests__/model.test.js.map +1 -1
  71. package/dist/src/models/__tests__/streaming.test.d.ts +2 -0
  72. package/dist/src/models/__tests__/streaming.test.d.ts.map +1 -0
  73. package/dist/src/models/__tests__/streaming.test.js +50 -0
  74. package/dist/src/models/__tests__/streaming.test.js.map +1 -0
  75. package/dist/src/models/bedrock.d.ts +80 -1
  76. package/dist/src/models/bedrock.d.ts.map +1 -1
  77. package/dist/src/models/bedrock.js +214 -5
  78. package/dist/src/models/bedrock.js.map +1 -1
  79. package/dist/src/models/model.d.ts +10 -0
  80. package/dist/src/models/model.d.ts.map +1 -1
  81. package/dist/src/models/model.js +58 -2
  82. package/dist/src/models/model.js.map +1 -1
  83. package/dist/src/models/streaming.d.ts +84 -3
  84. package/dist/src/models/streaming.d.ts.map +1 -1
  85. package/dist/src/models/streaming.js +26 -0
  86. package/dist/src/models/streaming.js.map +1 -1
  87. package/dist/src/multiagent/__tests__/events.test.d.ts +2 -0
  88. package/dist/src/multiagent/__tests__/events.test.d.ts.map +1 -0
  89. package/dist/src/multiagent/__tests__/events.test.js +205 -0
  90. package/dist/src/multiagent/__tests__/events.test.js.map +1 -0
  91. package/dist/src/multiagent/__tests__/graph.test.d.ts +2 -0
  92. package/dist/src/multiagent/__tests__/graph.test.d.ts.map +1 -0
  93. package/dist/src/multiagent/__tests__/graph.test.js +438 -0
  94. package/dist/src/multiagent/__tests__/graph.test.js.map +1 -0
  95. package/dist/src/multiagent/__tests__/nodes.test.js +105 -9
  96. package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -1
  97. package/dist/src/multiagent/__tests__/queue.test.d.ts +2 -0
  98. package/dist/src/multiagent/__tests__/queue.test.d.ts.map +1 -0
  99. package/dist/src/multiagent/__tests__/queue.test.js +118 -0
  100. package/dist/src/multiagent/__tests__/queue.test.js.map +1 -0
  101. package/dist/src/multiagent/__tests__/swarm.test.d.ts +2 -0
  102. package/dist/src/multiagent/__tests__/swarm.test.d.ts.map +1 -0
  103. package/dist/src/multiagent/__tests__/swarm.test.js +241 -0
  104. package/dist/src/multiagent/__tests__/swarm.test.js.map +1 -0
  105. package/dist/src/multiagent/base.d.ts +25 -0
  106. package/dist/src/multiagent/base.d.ts.map +1 -0
  107. package/dist/src/multiagent/base.js +2 -0
  108. package/dist/src/multiagent/base.js.map +1 -0
  109. package/dist/src/multiagent/edge.d.ts +36 -0
  110. package/dist/src/multiagent/edge.d.ts.map +1 -0
  111. package/dist/src/multiagent/edge.js +15 -0
  112. package/dist/src/multiagent/edge.js.map +1 -0
  113. package/dist/src/multiagent/events.d.ts +129 -4
  114. package/dist/src/multiagent/events.d.ts.map +1 -1
  115. package/dist/src/multiagent/events.js +140 -2
  116. package/dist/src/multiagent/events.js.map +1 -1
  117. package/dist/src/multiagent/graph.d.ts +125 -0
  118. package/dist/src/multiagent/graph.d.ts.map +1 -0
  119. package/dist/src/multiagent/graph.js +394 -0
  120. package/dist/src/multiagent/graph.js.map +1 -0
  121. package/dist/src/multiagent/index.d.ts +12 -6
  122. package/dist/src/multiagent/index.d.ts.map +1 -1
  123. package/dist/src/multiagent/index.js +6 -3
  124. package/dist/src/multiagent/index.js.map +1 -1
  125. package/dist/src/multiagent/nodes.d.ts +66 -16
  126. package/dist/src/multiagent/nodes.d.ts.map +1 -1
  127. package/dist/src/multiagent/nodes.js +82 -24
  128. package/dist/src/multiagent/nodes.js.map +1 -1
  129. package/dist/src/multiagent/queue.d.ts +73 -0
  130. package/dist/src/multiagent/queue.d.ts.map +1 -0
  131. package/dist/src/multiagent/queue.js +72 -0
  132. package/dist/src/multiagent/queue.js.map +1 -0
  133. package/dist/src/multiagent/state.d.ts +79 -10
  134. package/dist/src/multiagent/state.d.ts.map +1 -1
  135. package/dist/src/multiagent/state.js +101 -9
  136. package/dist/src/multiagent/state.js.map +1 -1
  137. package/dist/src/multiagent/swarm.d.ts +102 -0
  138. package/dist/src/multiagent/swarm.d.ts.map +1 -0
  139. package/dist/src/multiagent/swarm.js +238 -0
  140. package/dist/src/multiagent/swarm.js.map +1 -0
  141. package/dist/src/registry/__tests__/tool-registry.test.d.ts +2 -0
  142. package/dist/src/registry/__tests__/tool-registry.test.d.ts.map +1 -0
  143. package/dist/src/registry/__tests__/tool-registry.test.js +124 -0
  144. package/dist/src/registry/__tests__/tool-registry.test.js.map +1 -0
  145. package/dist/src/registry/tool-registry.d.ts +32 -20
  146. package/dist/src/registry/tool-registry.d.ts.map +1 -1
  147. package/dist/src/registry/tool-registry.js +60 -158
  148. package/dist/src/registry/tool-registry.js.map +1 -1
  149. package/dist/src/session/__tests__/file-storage.test.node.js +75 -15
  150. package/dist/src/session/__tests__/file-storage.test.node.js.map +1 -1
  151. package/dist/src/session/__tests__/s3-storage.test.d.ts +2 -0
  152. package/dist/src/session/__tests__/s3-storage.test.d.ts.map +1 -0
  153. package/dist/src/session/__tests__/{s3-storage.test.node.js → s3-storage.test.js} +161 -75
  154. package/dist/src/session/__tests__/s3-storage.test.js.map +1 -0
  155. package/dist/src/session/__tests__/session-manager.test.d.ts +2 -0
  156. package/dist/src/session/__tests__/session-manager.test.d.ts.map +1 -0
  157. package/dist/src/session/__tests__/session-manager.test.js +461 -0
  158. package/dist/src/session/__tests__/session-manager.test.js.map +1 -0
  159. package/dist/src/session/__tests__/validation.test.js +28 -1
  160. package/dist/src/session/__tests__/validation.test.js.map +1 -1
  161. package/dist/src/session/file-storage.d.ts +53 -27
  162. package/dist/src/session/file-storage.d.ts.map +1 -1
  163. package/dist/src/session/file-storage.js +103 -52
  164. package/dist/src/session/file-storage.js.map +1 -1
  165. package/dist/src/session/index.d.ts +6 -13
  166. package/dist/src/session/index.d.ts.map +1 -1
  167. package/dist/src/session/index.js +4 -12
  168. package/dist/src/session/index.js.map +1 -1
  169. package/dist/src/session/s3-storage.d.ts +49 -20
  170. package/dist/src/session/s3-storage.d.ts.map +1 -1
  171. package/dist/src/session/s3-storage.js +120 -35
  172. package/dist/src/session/s3-storage.js.map +1 -1
  173. package/dist/src/session/session-manager.d.ts +83 -0
  174. package/dist/src/session/session-manager.d.ts.map +1 -0
  175. package/dist/src/session/session-manager.js +122 -0
  176. package/dist/src/session/session-manager.js.map +1 -0
  177. package/dist/src/session/storage.d.ts +19 -11
  178. package/dist/src/session/storage.d.ts.map +1 -1
  179. package/dist/src/session/types.d.ts +6 -18
  180. package/dist/src/session/types.d.ts.map +1 -1
  181. package/dist/src/session/validation.d.ts +7 -0
  182. package/dist/src/session/validation.d.ts.map +1 -1
  183. package/dist/src/session/validation.js +12 -0
  184. package/dist/src/session/validation.js.map +1 -1
  185. package/dist/src/structured-output/__tests__/context.test.js +13 -13
  186. package/dist/src/structured-output/__tests__/context.test.js.map +1 -1
  187. package/dist/src/structured-output/context.js +1 -1
  188. package/dist/src/structured-output/context.js.map +1 -1
  189. package/dist/src/telemetry/__tests__/config.test.d.ts +2 -0
  190. package/dist/src/telemetry/__tests__/config.test.d.ts.map +1 -0
  191. package/dist/src/telemetry/__tests__/config.test.js +40 -0
  192. package/dist/src/telemetry/__tests__/config.test.js.map +1 -0
  193. package/dist/src/telemetry/__tests__/config.test.node.d.ts +2 -0
  194. package/dist/src/telemetry/__tests__/config.test.node.d.ts.map +1 -0
  195. package/dist/src/telemetry/__tests__/config.test.node.js +103 -0
  196. package/dist/src/telemetry/__tests__/config.test.node.js.map +1 -0
  197. package/dist/src/telemetry/__tests__/json.test.d.ts +2 -0
  198. package/dist/src/telemetry/__tests__/json.test.d.ts.map +1 -0
  199. package/dist/src/telemetry/__tests__/json.test.js +89 -0
  200. package/dist/src/telemetry/__tests__/json.test.js.map +1 -0
  201. package/dist/src/telemetry/__tests__/meter.test.d.ts +2 -0
  202. package/dist/src/telemetry/__tests__/meter.test.d.ts.map +1 -0
  203. package/dist/src/telemetry/__tests__/meter.test.js +457 -0
  204. package/dist/src/telemetry/__tests__/meter.test.js.map +1 -0
  205. package/dist/src/telemetry/__tests__/tracer.test.node.d.ts +2 -0
  206. package/dist/src/telemetry/__tests__/tracer.test.node.d.ts.map +1 -0
  207. package/dist/src/telemetry/__tests__/tracer.test.node.js +611 -0
  208. package/dist/src/telemetry/__tests__/tracer.test.node.js.map +1 -0
  209. package/dist/src/telemetry/config.d.ts +82 -0
  210. package/dist/src/telemetry/config.d.ts.map +1 -0
  211. package/dist/src/telemetry/config.js +133 -0
  212. package/dist/src/telemetry/config.js.map +1 -0
  213. package/dist/src/telemetry/index.d.ts +34 -0
  214. package/dist/src/telemetry/index.d.ts.map +1 -0
  215. package/dist/src/telemetry/index.js +33 -0
  216. package/dist/src/telemetry/index.js.map +1 -0
  217. package/dist/src/telemetry/json.d.ts +11 -0
  218. package/dist/src/telemetry/json.d.ts.map +1 -0
  219. package/dist/src/telemetry/json.js +25 -0
  220. package/dist/src/telemetry/json.js.map +1 -0
  221. package/dist/src/telemetry/meter.d.ts +277 -0
  222. package/dist/src/telemetry/meter.d.ts.map +1 -0
  223. package/dist/src/telemetry/meter.js +292 -0
  224. package/dist/src/telemetry/meter.js.map +1 -0
  225. package/dist/src/telemetry/tracer.d.ts +219 -0
  226. package/dist/src/telemetry/tracer.d.ts.map +1 -0
  227. package/dist/src/telemetry/tracer.js +610 -0
  228. package/dist/src/telemetry/tracer.js.map +1 -0
  229. package/dist/src/telemetry/types.d.ts +101 -0
  230. package/dist/src/telemetry/types.d.ts.map +1 -0
  231. package/dist/src/telemetry/types.js +5 -0
  232. package/dist/src/{multiagent → telemetry}/types.js.map +1 -1
  233. package/dist/src/tools/__tests__/tool-factory.test.d.ts +2 -0
  234. package/dist/src/tools/__tests__/tool-factory.test.d.ts.map +1 -0
  235. package/dist/src/tools/__tests__/tool-factory.test.js +98 -0
  236. package/dist/src/tools/__tests__/tool-factory.test.js.map +1 -0
  237. package/dist/src/tools/__tests__/zod-tool.test-d.js +1 -1
  238. package/dist/src/tools/__tests__/zod-tool.test-d.js.map +1 -1
  239. package/dist/src/tools/__tests__/zod-tool.test.js +3 -4
  240. package/dist/src/tools/__tests__/zod-tool.test.js.map +1 -1
  241. package/dist/src/tools/function-tool.d.ts +15 -2
  242. package/dist/src/tools/function-tool.d.ts.map +1 -1
  243. package/dist/src/tools/function-tool.js +24 -0
  244. package/dist/src/tools/function-tool.js.map +1 -1
  245. package/dist/src/tools/tool-factory.d.ts +22 -0
  246. package/dist/src/tools/tool-factory.d.ts.map +1 -0
  247. package/dist/src/tools/tool-factory.js +55 -0
  248. package/dist/src/tools/tool-factory.js.map +1 -0
  249. package/dist/src/tools/tool.d.ts +1 -1
  250. package/dist/src/tools/tool.js +1 -1
  251. package/dist/src/tools/zod-tool.d.ts +55 -52
  252. package/dist/src/tools/zod-tool.d.ts.map +1 -1
  253. package/dist/src/tools/zod-tool.js +7 -61
  254. package/dist/src/tools/zod-tool.js.map +1 -1
  255. package/dist/src/tsconfig.tsbuildinfo +1 -1
  256. package/dist/src/types/__tests__/agent.test.js +11 -0
  257. package/dist/src/types/__tests__/agent.test.js.map +1 -1
  258. package/dist/src/types/__tests__/citations.test.d.ts +2 -0
  259. package/dist/src/types/__tests__/citations.test.d.ts.map +1 -0
  260. package/dist/src/types/__tests__/citations.test.js +104 -0
  261. package/dist/src/types/__tests__/citations.test.js.map +1 -0
  262. package/dist/src/types/__tests__/messages.test.js +26 -0
  263. package/dist/src/types/__tests__/messages.test.js.map +1 -1
  264. package/dist/src/types/agent.d.ts +10 -3
  265. package/dist/src/types/agent.d.ts.map +1 -1
  266. package/dist/src/types/agent.js +9 -0
  267. package/dist/src/types/agent.js.map +1 -1
  268. package/dist/src/types/citations.d.ts +180 -0
  269. package/dist/src/types/citations.d.ts.map +1 -0
  270. package/dist/src/types/citations.js +45 -0
  271. package/dist/src/types/citations.js.map +1 -0
  272. package/dist/src/types/messages.d.ts +9 -5
  273. package/dist/src/types/messages.d.ts.map +1 -1
  274. package/dist/src/types/messages.js +5 -1
  275. package/dist/src/types/messages.js.map +1 -1
  276. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +2 -2
  277. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +1 -1
  278. package/dist/src/vended-tools/bash/bash.d.ts.map +1 -1
  279. package/dist/src/vended-tools/bash/bash.js +1 -2
  280. package/dist/src/vended-tools/bash/bash.js.map +1 -1
  281. package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.js +4 -4
  282. package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.js.map +1 -1
  283. package/dist/src/vended-tools/file_editor/file-editor.js +1 -1
  284. package/dist/src/vended-tools/file_editor/file-editor.js.map +1 -1
  285. package/dist/src/vended-tools/http_request/http-request.d.ts.map +1 -1
  286. package/dist/src/vended-tools/http_request/http-request.js +1 -2
  287. package/dist/src/vended-tools/http_request/http-request.js.map +1 -1
  288. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +2 -2
  289. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +1 -1
  290. package/dist/src/vended-tools/notebook/notebook.d.ts +1 -1
  291. package/package.json +25 -4
  292. package/dist/src/agent/__tests__/state.test.d.ts +0 -2
  293. package/dist/src/agent/__tests__/state.test.d.ts.map +0 -1
  294. package/dist/src/agent/__tests__/state.test.js.map +0 -1
  295. package/dist/src/agent/state.d.ts.map +0 -1
  296. package/dist/src/agent/state.js.map +0 -1
  297. package/dist/src/multiagent/types.d.ts +0 -5
  298. package/dist/src/multiagent/types.d.ts.map +0 -1
  299. package/dist/src/multiagent/types.js +0 -2
  300. package/dist/src/registry/registry.d.ts +0 -117
  301. package/dist/src/registry/registry.d.ts.map +0 -1
  302. package/dist/src/registry/registry.js +0 -298
  303. package/dist/src/registry/registry.js.map +0 -1
  304. package/dist/src/session/__tests__/s3-storage.test.node.d.ts +0 -2
  305. package/dist/src/session/__tests__/s3-storage.test.node.d.ts.map +0 -1
  306. package/dist/src/session/__tests__/s3-storage.test.node.js.map +0 -1
@@ -1,19 +1,19 @@
1
1
  import { describe, expect, it } from 'vitest';
2
- import { AgentState } from '../state.js';
3
- describe('AgentState', () => {
2
+ import { AppState } from '../app-state.js';
3
+ describe('AppState', () => {
4
4
  describe('constructor', () => {
5
5
  it('creates empty state when no initial state provided', () => {
6
- const state = new AgentState();
6
+ const state = new AppState();
7
7
  expect(state.keys()).toEqual([]);
8
8
  });
9
9
  it('creates state with initial values', () => {
10
- const state = new AgentState({ key1: 'value1', key2: 42 });
10
+ const state = new AppState({ key1: 'value1', key2: 42 });
11
11
  expect(state.get('key1')).toBe('value1');
12
12
  expect(state.get('key2')).toBe(42);
13
13
  });
14
14
  it('stores deep copy of initial state', () => {
15
15
  const initial = { nested: { value: 'test' } };
16
- const state = new AgentState(initial);
16
+ const state = new AppState(initial);
17
17
  // Mutate original
18
18
  initial.nested.value = 'changed';
19
19
  // State should not be affected
@@ -21,42 +21,42 @@ describe('AgentState', () => {
21
21
  });
22
22
  it('throws error for function in initial state', () => {
23
23
  const invalidState = { func: () => 'test', value: 'keep' };
24
- expect(() => new AgentState(invalidState)).toThrow('initialState.func contains a function which cannot be serialized');
24
+ expect(() => new AppState(invalidState)).toThrow('initialState.func contains a function which cannot be serialized');
25
25
  });
26
26
  it('throws error for symbol in initial state', () => {
27
27
  const sym = Symbol('test');
28
28
  const invalidState = { sym, value: 'keep' };
29
- expect(() => new AgentState(invalidState)).toThrow('initialState.sym contains a symbol which cannot be serialized');
29
+ expect(() => new AppState(invalidState)).toThrow('initialState.sym contains a symbol which cannot be serialized');
30
30
  });
31
31
  it('throws error for undefined in initial state', () => {
32
32
  const invalidState = { undef: undefined, value: 'keep' };
33
- expect(() => new AgentState(invalidState)).toThrow('initialState.undef is undefined which cannot be serialized');
33
+ expect(() => new AppState(invalidState)).toThrow('initialState.undef is undefined which cannot be serialized');
34
34
  });
35
35
  it('throws error for nested function in initial state', () => {
36
36
  const invalidState = { nested: { func: () => 'test' } };
37
- expect(() => new AgentState(invalidState)).toThrow('initialState.nested.func contains a function which cannot be serialized');
37
+ expect(() => new AppState(invalidState)).toThrow('initialState.nested.func contains a function which cannot be serialized');
38
38
  });
39
39
  it('throws error for function in array in initial state', () => {
40
40
  const invalidState = { arr: [1, () => 'test', 3] };
41
- expect(() => new AgentState(invalidState)).toThrow('initialState.arr[1] contains a function which cannot be serialized');
41
+ expect(() => new AppState(invalidState)).toThrow('initialState.arr[1] contains a function which cannot be serialized');
42
42
  });
43
43
  });
44
44
  describe('get', () => {
45
45
  it('throws error when key is null or undefined', () => {
46
- const state = new AgentState();
46
+ const state = new AppState();
47
47
  expect(() => state.get(null)).toThrow('key is required');
48
48
  expect(() => state.get(undefined)).toThrow('key is required');
49
49
  });
50
50
  it('returns undefined when key does not exist', () => {
51
- const state = new AgentState();
51
+ const state = new AppState();
52
52
  expect(state.get('nonexistent')).toBeUndefined();
53
53
  });
54
54
  it('returns value when key exists', () => {
55
- const state = new AgentState({ key1: 'value1' });
55
+ const state = new AppState({ key1: 'value1' });
56
56
  expect(state.get('key1')).toBe('value1');
57
57
  });
58
58
  it('returns deep copy that cannot mutate stored state', () => {
59
- const state = new AgentState({ nested: { value: 'test' } });
59
+ const state = new AppState({ nested: { value: 'test' } });
60
60
  const retrieved = state.get('nested');
61
61
  // Mutate retrieved value
62
62
  retrieved.value = 'changed';
@@ -64,7 +64,7 @@ describe('AgentState', () => {
64
64
  expect(state.get('nested')).toEqual({ value: 'test' });
65
65
  });
66
66
  it('infers correct type with generic state interface', () => {
67
- const state = new AgentState({ user: { name: 'John', age: 30 }, count: 5, items: ['a', 'b'] });
67
+ const state = new AppState({ user: { name: 'John', age: 30 }, count: 5, items: ['a', 'b'] });
68
68
  // Type inference tests
69
69
  const user = state.get('user');
70
70
  const count = state.get('count');
@@ -74,11 +74,11 @@ describe('AgentState', () => {
74
74
  expect(items).toEqual(['a', 'b']);
75
75
  });
76
76
  it('returns undefined for non-existent key with typed interface', () => {
77
- const state = new AgentState({ existing: 'value' });
77
+ const state = new AppState({ existing: 'value' });
78
78
  const result = state.get('existing');
79
79
  expect(result).toBe('value');
80
80
  // Non-existent key
81
- const state2 = new AgentState();
81
+ const state2 = new AppState();
82
82
  const missing = state2.get('existing');
83
83
  expect(missing).toBeUndefined();
84
84
  // @ts-expect-error properties not on the TestsState are an error
@@ -87,42 +87,42 @@ describe('AgentState', () => {
87
87
  });
88
88
  describe('set', () => {
89
89
  it('sets string value successfully', () => {
90
- const state = new AgentState();
90
+ const state = new AppState();
91
91
  state.set('key1', 'value1');
92
92
  expect(state.get('key1')).toBe('value1');
93
93
  });
94
94
  it('sets number value successfully', () => {
95
- const state = new AgentState();
95
+ const state = new AppState();
96
96
  state.set('key1', 42);
97
97
  expect(state.get('key1')).toBe(42);
98
98
  });
99
99
  it('sets boolean value successfully', () => {
100
- const state = new AgentState();
100
+ const state = new AppState();
101
101
  state.set('key1', true);
102
102
  expect(state.get('key1')).toBe(true);
103
103
  });
104
104
  it('sets null value successfully', () => {
105
- const state = new AgentState();
105
+ const state = new AppState();
106
106
  state.set('key1', null);
107
107
  expect(state.get('key1')).toBeNull();
108
108
  });
109
109
  it('sets object value successfully', () => {
110
- const state = new AgentState();
110
+ const state = new AppState();
111
111
  state.set('key1', { nested: 'value' });
112
112
  expect(state.get('key1')).toEqual({ nested: 'value' });
113
113
  });
114
114
  it('sets array value successfully', () => {
115
- const state = new AgentState();
115
+ const state = new AppState();
116
116
  state.set('key1', [1, 2, 3]);
117
117
  expect(state.get('key1')).toEqual([1, 2, 3]);
118
118
  });
119
119
  it('overwrites existing value', () => {
120
- const state = new AgentState({ key1: 'old' });
120
+ const state = new AppState({ key1: 'old' });
121
121
  state.set('key1', 'new');
122
122
  expect(state.get('key1')).toBe('new');
123
123
  });
124
124
  it('stores deep copy that cannot mutate stored state', () => {
125
- const state = new AgentState();
125
+ const state = new AppState();
126
126
  const value = { nested: { value: 'test' } };
127
127
  state.set('key1', value);
128
128
  // Mutate original
@@ -131,35 +131,35 @@ describe('AgentState', () => {
131
131
  expect(state.get('key1')).toEqual({ nested: { value: 'test' } });
132
132
  });
133
133
  it('throws error for function in value', () => {
134
- const state = new AgentState({ existing: 'value' });
134
+ const state = new AppState({ existing: 'value' });
135
135
  const obj = { func: () => 'test', value: 'keep' };
136
136
  expect(() => state.set('key1', obj)).toThrow('value for key "key1".func contains a function which cannot be serialized');
137
137
  });
138
138
  it('throws error for symbol in value', () => {
139
- const state = new AgentState();
139
+ const state = new AppState();
140
140
  const sym = Symbol('test');
141
141
  expect(() => state.set('key1', { sym })).toThrow('value for key "key1".sym contains a symbol which cannot be serialized');
142
142
  });
143
143
  it('throws error for nested function in value', () => {
144
- const state = new AgentState();
144
+ const state = new AppState();
145
145
  const obj = { nested: { func: () => 'test' } };
146
146
  expect(() => state.set('key1', obj)).toThrow('value for key "key1".nested.func contains a function which cannot be serialized');
147
147
  });
148
148
  it('throws error for function in array', () => {
149
- const state = new AgentState();
149
+ const state = new AppState();
150
150
  const arr = [1, () => 'test', 3];
151
151
  expect(() => state.set('key1', arr)).toThrow('value for key "key1"[1] contains a function which cannot be serialized');
152
152
  });
153
153
  it('throws error for top-level symbol values', () => {
154
- const state = new AgentState();
154
+ const state = new AppState();
155
155
  expect(() => state.set('key1', Symbol('test'))).toThrow('value for key "key1" contains a symbol which cannot be serialized');
156
156
  });
157
157
  it('throws error for top-level undefined values', () => {
158
- const state = new AgentState();
158
+ const state = new AppState();
159
159
  expect(() => state.set('key1', undefined)).toThrow('value for key "key1" is undefined which cannot be serialized');
160
160
  });
161
161
  it('accepts typed value with generic state interface', () => {
162
- const state = new AgentState();
162
+ const state = new AppState();
163
163
  state.set('user', { name: 'Alice', age: 25 });
164
164
  state.set('count', 10);
165
165
  expect(state.get('user')).toEqual({ name: 'Alice', age: 25 });
@@ -170,17 +170,17 @@ describe('AgentState', () => {
170
170
  });
171
171
  describe('delete', () => {
172
172
  it('removes existing key', () => {
173
- const state = new AgentState({ key1: 'value1', key2: 'value2' });
173
+ const state = new AppState({ key1: 'value1', key2: 'value2' });
174
174
  state.delete('key1');
175
175
  expect(state.get('key1')).toBeUndefined();
176
176
  expect(state.get('key2')).toBe('value2');
177
177
  });
178
178
  it('does not throw error for non-existent key', () => {
179
- const state = new AgentState();
179
+ const state = new AppState();
180
180
  expect(() => state.delete('nonexistent')).not.toThrow();
181
181
  });
182
182
  it('supports typed usage with generic state interface', () => {
183
- const state = new AgentState({ user: { name: 'Alice' }, count: 5 });
183
+ const state = new AppState({ user: { name: 'Alice' }, count: 5 });
184
184
  // Typed delete
185
185
  state.delete('user');
186
186
  expect(state.get('user')).toBeUndefined();
@@ -189,39 +189,39 @@ describe('AgentState', () => {
189
189
  });
190
190
  describe('clear', () => {
191
191
  it('removes all values', () => {
192
- const state = new AgentState({ key1: 'value1', key2: 'value2' });
192
+ const state = new AppState({ key1: 'value1', key2: 'value2' });
193
193
  state.clear();
194
194
  expect(state.keys()).toEqual([]);
195
195
  expect(state.get('key1')).toBeUndefined();
196
196
  expect(state.get('key2')).toBeUndefined();
197
197
  });
198
198
  it('works on empty state', () => {
199
- const state = new AgentState();
199
+ const state = new AppState();
200
200
  expect(() => state.clear()).not.toThrow();
201
201
  expect(state.keys()).toEqual([]);
202
202
  });
203
203
  });
204
204
  describe('getAll', () => {
205
205
  it('returns object with all state', () => {
206
- const state = new AgentState({ key1: 'value1', key2: 42 });
206
+ const state = new AppState({ key1: 'value1', key2: 42 });
207
207
  expect(state.getAll()).toEqual({ key1: 'value1', key2: 42 });
208
208
  });
209
209
  it('returns empty object for empty state', () => {
210
- const state = new AgentState();
210
+ const state = new AppState();
211
211
  expect(state.getAll()).toEqual({});
212
212
  });
213
213
  });
214
214
  describe('keys', () => {
215
215
  it('returns array of all keys', () => {
216
- const state = new AgentState({ key1: 'value1', key2: 'value2' });
216
+ const state = new AppState({ key1: 'value1', key2: 'value2' });
217
217
  expect(state.keys().sort()).toEqual(['key1', 'key2']);
218
218
  });
219
219
  it('returns empty array for empty state', () => {
220
- const state = new AgentState();
220
+ const state = new AppState();
221
221
  expect(state.keys()).toEqual([]);
222
222
  });
223
223
  it('returns new array each time', () => {
224
- const state = new AgentState({ key1: 'value1' });
224
+ const state = new AppState({ key1: 'value1' });
225
225
  const keys1 = state.keys();
226
226
  const keys2 = state.keys();
227
227
  expect(keys1).not.toBe(keys2);
@@ -229,22 +229,22 @@ describe('AgentState', () => {
229
229
  });
230
230
  describe('toJSON', () => {
231
231
  it('returns deep copy of state', () => {
232
- const state = new AgentState({ key1: 'value1', nested: { deep: true } });
232
+ const state = new AppState({ key1: 'value1', nested: { deep: true } });
233
233
  const json = state.toJSON();
234
234
  expect(json).toEqual({ key1: 'value1', nested: { deep: true } });
235
235
  });
236
236
  });
237
237
  describe('loadStateFromJson', () => {
238
238
  it('replaces state with json data', () => {
239
- const state = new AgentState({ old: 'data' });
239
+ const state = new AppState({ old: 'data' });
240
240
  state.loadStateFromJson({ new: 'data', count: 42 });
241
241
  expect(state.getAll()).toEqual({ new: 'data', count: 42 });
242
242
  });
243
243
  it('clears state when given non-object', () => {
244
- const state = new AgentState({ key: 'value' });
244
+ const state = new AppState({ key: 'value' });
245
245
  state.loadStateFromJson(null);
246
246
  expect(state.getAll()).toEqual({});
247
247
  });
248
248
  });
249
249
  });
250
- //# sourceMappingURL=state.test.js.map
250
+ //# sourceMappingURL=app-state.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-state.test.js","sourceRoot":"","sources":["../../../src/__tests__/app-state.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest';
1
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
2
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
3
3
  import { McpClient } from '../mcp.js';
4
4
  import { McpTool } from '../tools/mcp-tool.js';
5
5
  import { JsonBlock } from '../types/messages.js';
6
+ import { context, propagation, trace, TraceFlags } from '@opentelemetry/api';
6
7
  /**
7
8
  * Helper to create a mock async generator that yields a result message.
8
9
  * This simulates the behavior of callToolStream returning a stream that ends with a result.
@@ -18,6 +19,7 @@ vi.mock('@modelcontextprotocol/sdk/client/index.js', () => ({
18
19
  connect: vi.fn(),
19
20
  close: vi.fn(),
20
21
  listTools: vi.fn(),
22
+ callTool: vi.fn(),
21
23
  experimental: {
22
24
  tasks: {
23
25
  callToolStream: vi.fn(),
@@ -27,10 +29,8 @@ vi.mock('@modelcontextprotocol/sdk/client/index.js', () => ({
27
29
  }),
28
30
  }));
29
31
  vi.mock('../tools/tool.js', () => ({
30
- // Mock the abstract base class
31
32
  Tool: class {
32
33
  },
33
- // Mock helper to return a valid ToolResultBlock structure without prepending "Error: "
34
34
  createErrorResult: (err, toolUseId) => ({
35
35
  type: 'toolResultBlock',
36
36
  status: 'error',
@@ -38,20 +38,36 @@ vi.mock('../tools/tool.js', () => ({
38
38
  content: [{ type: 'textBlock', text: err instanceof Error ? err.message : String(err) }],
39
39
  }),
40
40
  }));
41
- vi.mock('../../__fixtures__/environment.js', () => ({ isNode: true }));
42
41
  /**
43
42
  * Executes a tool stream to completion and returns the final result.
44
- * We use a Generic <T> and cast the return value to ensure TypeScript
45
- * knows the result is defined (and matches the Tool's return type).
46
43
  */
47
44
  async function runTool(gen) {
48
45
  let result = await gen.next();
49
46
  while (!result.done) {
50
47
  result = await gen.next();
51
48
  }
52
- // Force cast because we know our McpTool always returns a value when done
53
49
  return result.value;
54
50
  }
51
+ /**
52
+ * Mock an active span with a valid trace ID via trace.getSpan,
53
+ * and stub propagation.inject to populate the carrier with a traceparent.
54
+ */
55
+ function mockActiveSpan(traceId = '1234567890abcdef1234567890abcdef', traceFlags = TraceFlags.SAMPLED) {
56
+ const mockSpan = {
57
+ spanContext: () => ({
58
+ traceId,
59
+ spanId: '1234567890abcdef',
60
+ traceFlags,
61
+ }),
62
+ };
63
+ vi.spyOn(trace, 'getSpan').mockReturnValue(mockSpan);
64
+ vi.spyOn(propagation, 'inject').mockImplementation((_context, carrier) => {
65
+ if (carrier && typeof carrier === 'object') {
66
+ ;
67
+ carrier.traceparent = `00-${traceId}-1234567890abcdef-01`;
68
+ }
69
+ });
70
+ }
55
71
  const mockTransport = {
56
72
  connect: vi.fn(),
57
73
  close: vi.fn(),
@@ -61,6 +77,9 @@ describe('MCP Integration', () => {
61
77
  beforeEach(() => {
62
78
  vi.clearAllMocks();
63
79
  });
80
+ afterEach(() => {
81
+ vi.restoreAllMocks();
82
+ });
64
83
  describe('McpClient', () => {
65
84
  let client;
66
85
  let sdkClientMock;
@@ -74,6 +93,70 @@ describe('MCP Integration', () => {
74
93
  it('initializes SDK client with correct configuration', () => {
75
94
  expect(Client).toHaveBeenCalledWith({ name: 'TestApp', version: '0.0.1' });
76
95
  });
96
+ it('injects trace context into tool arguments when active span exists', async () => {
97
+ mockActiveSpan();
98
+ const tool = new McpTool({ name: 'calc', description: '', inputSchema: {}, client });
99
+ sdkClientMock.callTool.mockResolvedValue({ content: [] });
100
+ await client.callTool(tool, { op: 'add' });
101
+ const callArgs = sdkClientMock.callTool.mock.calls[0][0];
102
+ expect(callArgs.arguments).toStrictEqual({
103
+ op: 'add',
104
+ _meta: { traceparent: '00-1234567890abcdef1234567890abcdef-1234567890abcdef-01' },
105
+ });
106
+ });
107
+ it('merges trace context with existing _meta field', async () => {
108
+ mockActiveSpan();
109
+ const tool = new McpTool({ name: 'calc', description: '', inputSchema: {}, client });
110
+ sdkClientMock.callTool.mockResolvedValue({ content: [] });
111
+ await client.callTool(tool, { op: 'add', _meta: { progressToken: 'tok-1' } });
112
+ const callArgs = sdkClientMock.callTool.mock.calls[0][0];
113
+ expect(callArgs.arguments).toStrictEqual({
114
+ op: 'add',
115
+ _meta: {
116
+ progressToken: 'tok-1',
117
+ traceparent: '00-1234567890abcdef1234567890abcdef-1234567890abcdef-01',
118
+ },
119
+ });
120
+ });
121
+ it('passes args unchanged when no active span exists', async () => {
122
+ const tool = new McpTool({ name: 'calc', description: '', inputSchema: {}, client });
123
+ sdkClientMock.callTool.mockResolvedValue({ content: [] });
124
+ await client.callTool(tool, { op: 'add' });
125
+ const callArgs = sdkClientMock.callTool.mock.calls[0][0];
126
+ expect(callArgs.arguments).toStrictEqual({ op: 'add' });
127
+ });
128
+ it('passes args unchanged when span has empty trace ID', async () => {
129
+ mockActiveSpan('', TraceFlags.NONE);
130
+ const tool = new McpTool({ name: 'calc', description: '', inputSchema: {}, client });
131
+ sdkClientMock.callTool.mockResolvedValue({ content: [] });
132
+ await client.callTool(tool, { op: 'add' });
133
+ const callArgs = sdkClientMock.callTool.mock.calls[0][0];
134
+ expect(callArgs.arguments).toStrictEqual({ op: 'add' });
135
+ });
136
+ it('passes args unchanged when context injection fails', async () => {
137
+ vi.spyOn(context, 'active').mockImplementation(() => {
138
+ throw new Error('Context error');
139
+ });
140
+ const tool = new McpTool({ name: 'calc', description: '', inputSchema: {}, client });
141
+ sdkClientMock.callTool.mockResolvedValue({ content: [] });
142
+ await client.callTool(tool, { op: 'add' });
143
+ const callArgs = sdkClientMock.callTool.mock.calls[0][0];
144
+ expect(callArgs.arguments).toStrictEqual({ op: 'add' });
145
+ });
146
+ it('skips trace context injection when disableMcpInstrumentation is true', async () => {
147
+ mockActiveSpan();
148
+ const noInstrClient = new McpClient({
149
+ applicationName: 'TestApp',
150
+ transport: mockTransport,
151
+ disableMcpInstrumentation: true,
152
+ });
153
+ const noInstrSdkMock = vi.mocked(Client).mock.results.at(-1).value;
154
+ noInstrSdkMock.callTool.mockResolvedValue({ content: [] });
155
+ const tool = new McpTool({ name: 'calc', description: '', inputSchema: {}, client: noInstrClient });
156
+ await noInstrClient.callTool(tool, { op: 'add' });
157
+ const callArgs = noInstrSdkMock.callTool.mock.calls[0][0];
158
+ expect(callArgs.arguments).toStrictEqual({ op: 'add' });
159
+ });
77
160
  it('manages connection state lazily', async () => {
78
161
  await client.connect();
79
162
  expect(sdkClientMock.connect).toHaveBeenCalledTimes(1);
@@ -96,15 +179,44 @@ describe('MCP Integration', () => {
96
179
  expect(tools[0]).toBeInstanceOf(McpTool);
97
180
  expect(tools[0].name).toBe('weather');
98
181
  });
99
- it('delegates invocation to SDK client via experimental.tasks.callToolStream', async () => {
182
+ it('uses callTool when tasksConfig is undefined (default)', async () => {
100
183
  const tool = new McpTool({ name: 'calc', description: '', inputSchema: {}, client });
101
- sdkClientMock.experimental.tasks.callToolStream.mockReturnValue(createMockCallToolStream({ content: [] })());
184
+ sdkClientMock.callTool.mockResolvedValue({ content: [] });
102
185
  await client.callTool(tool, { op: 'add' });
103
186
  expect(sdkClientMock.connect).toHaveBeenCalled();
104
- expect(sdkClientMock.experimental.tasks.callToolStream).toHaveBeenCalledWith({
187
+ expect(sdkClientMock.callTool).toHaveBeenCalledWith({
105
188
  name: 'calc',
106
189
  arguments: { op: 'add' },
107
190
  });
191
+ expect(sdkClientMock.experimental.tasks.callToolStream).not.toHaveBeenCalled();
192
+ });
193
+ it('uses callToolStream when tasksConfig is provided (empty object)', async () => {
194
+ const resultsLengthBefore = vi.mocked(Client).mock.results.length;
195
+ const taskClient = new McpClient({
196
+ applicationName: 'TestApp',
197
+ transport: mockTransport,
198
+ tasksConfig: {},
199
+ });
200
+ const taskSdkClientMock = vi.mocked(Client).mock.results[resultsLengthBefore].value;
201
+ const tool = new McpTool({ name: 'calc', description: '', inputSchema: {}, client: taskClient });
202
+ taskSdkClientMock.experimental.tasks.callToolStream.mockReturnValue(createMockCallToolStream({ content: [] })());
203
+ await taskClient.callTool(tool, { op: 'add' });
204
+ expect(taskSdkClientMock.connect).toHaveBeenCalled();
205
+ expect(taskSdkClientMock.experimental.tasks.callToolStream).toHaveBeenCalledWith({ name: 'calc', arguments: { op: 'add' } }, undefined, { timeout: 60000, maxTotalTimeout: 300000, resetTimeoutOnProgress: true });
206
+ expect(taskSdkClientMock.callTool).not.toHaveBeenCalled();
207
+ });
208
+ it('passes custom TTL and pollTimeout to callToolStream', async () => {
209
+ const resultsLengthBefore = vi.mocked(Client).mock.results.length;
210
+ const taskClient = new McpClient({
211
+ applicationName: 'TestApp',
212
+ transport: mockTransport,
213
+ tasksConfig: { ttl: 30000, pollTimeout: 120000 },
214
+ });
215
+ const taskSdkClientMock = vi.mocked(Client).mock.results[resultsLengthBefore].value;
216
+ const tool = new McpTool({ name: 'calc', description: '', inputSchema: {}, client: taskClient });
217
+ taskSdkClientMock.experimental.tasks.callToolStream.mockReturnValue(createMockCallToolStream({ content: [] })());
218
+ await taskClient.callTool(tool, { op: 'add' });
219
+ expect(taskSdkClientMock.experimental.tasks.callToolStream).toHaveBeenCalledWith({ name: 'calc', arguments: { op: 'add' } }, undefined, { timeout: 30000, maxTotalTimeout: 120000, resetTimeoutOnProgress: true });
108
220
  });
109
221
  it('validates tool arguments', async () => {
110
222
  const tool = new McpTool({ name: 't', description: '', inputSchema: {}, client });
@@ -124,7 +236,7 @@ describe('MCP Integration', () => {
124
236
  inputSchema: {},
125
237
  client: mockClientWrapper,
126
238
  });
127
- const context = {
239
+ const toolContext = {
128
240
  toolUse: { toolUseId: 'id-123', name: 'weather', input: { city: 'NYC' } },
129
241
  agent: {},
130
242
  };
@@ -132,8 +244,7 @@ describe('MCP Integration', () => {
132
244
  vi.mocked(mockClientWrapper.callTool).mockResolvedValue({
133
245
  content: [{ type: 'text', text: 'Sunny' }],
134
246
  });
135
- // runTool<ToolResultBlock> explicitly tells TS the return type
136
- const result = await runTool(tool.stream(context));
247
+ const result = await runTool(tool.stream(toolContext));
137
248
  expect(result).toBeDefined();
138
249
  expect(result.status).toBe('success');
139
250
  expect(result.content[0].text).toBe('Sunny');
@@ -143,14 +254,14 @@ describe('MCP Integration', () => {
143
254
  vi.mocked(mockClientWrapper.callTool).mockResolvedValue({
144
255
  content: [{ type: 'data', value: data }],
145
256
  });
146
- const result = await runTool(tool.stream(context));
257
+ const result = await runTool(tool.stream(toolContext));
147
258
  const content = result.content[0];
148
259
  expect(content).toBeInstanceOf(JsonBlock);
149
260
  expect(content.json).toEqual(expect.objectContaining({ value: data }));
150
261
  });
151
262
  it('provides default message for empty output', async () => {
152
263
  vi.mocked(mockClientWrapper.callTool).mockResolvedValue({ content: [] });
153
- const result = await runTool(tool.stream(context));
264
+ const result = await runTool(tool.stream(toolContext));
154
265
  expect(result.content[0].text).toContain('completed successfully');
155
266
  });
156
267
  it('handles protocol-level errors', async () => {
@@ -158,19 +269,19 @@ describe('MCP Integration', () => {
158
269
  isError: true,
159
270
  content: [{ type: 'text', text: 'Service Unavailable' }],
160
271
  });
161
- const result = await runTool(tool.stream(context));
272
+ const result = await runTool(tool.stream(toolContext));
162
273
  expect(result.status).toBe('error');
163
274
  expect(result.content[0].text).toBe('Service Unavailable');
164
275
  });
165
276
  it('catches and wraps client exceptions', async () => {
166
277
  vi.mocked(mockClientWrapper.callTool).mockRejectedValue(new Error('Network Error'));
167
- const result = await runTool(tool.stream(context));
278
+ const result = await runTool(tool.stream(toolContext));
168
279
  expect(result.status).toBe('error');
169
280
  expect(result.content[0].text).toBe('Network Error');
170
281
  });
171
282
  it('validates SDK response format', async () => {
172
283
  vi.mocked(mockClientWrapper.callTool).mockResolvedValue({ content: null });
173
- const result = await runTool(tool.stream(context));
284
+ const result = await runTool(tool.stream(toolContext));
174
285
  expect(result.status).toBe('error');
175
286
  expect(result.content[0].text).toContain('missing content array');
176
287
  });
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.test.js","sourceRoot":"","sources":["../../../src/__tests__/mcp.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.test.js","sourceRoot":"","sources":["../../../src/__tests__/mcp.test.ts"],"names":[],"mappings":"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"}