@strands-agents/sdk 1.0.0-rc.1 → 1.0.0-rc.3

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 (133) hide show
  1. package/README.md +4 -0
  2. package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
  3. package/dist/src/__fixtures__/agent-helpers.js +1 -0
  4. package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
  5. package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
  6. package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
  7. package/dist/src/agent/__tests__/agent-as-tool.test.d.ts +2 -0
  8. package/dist/src/agent/__tests__/agent-as-tool.test.d.ts.map +1 -0
  9. package/dist/src/agent/__tests__/agent-as-tool.test.js +347 -0
  10. package/dist/src/agent/__tests__/agent-as-tool.test.js.map +1 -0
  11. package/dist/src/agent/__tests__/agent.cancel.test.d.ts +2 -0
  12. package/dist/src/agent/__tests__/agent.cancel.test.d.ts.map +1 -0
  13. package/dist/src/agent/__tests__/agent.cancel.test.js +337 -0
  14. package/dist/src/agent/__tests__/agent.cancel.test.js.map +1 -0
  15. package/dist/src/agent/__tests__/agent.hook.test.js +4 -2
  16. package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -1
  17. package/dist/src/agent/__tests__/agent.test.js +4 -1
  18. package/dist/src/agent/__tests__/agent.test.js.map +1 -1
  19. package/dist/src/agent/__tests__/snapshot.test.js +12 -1
  20. package/dist/src/agent/__tests__/snapshot.test.js.map +1 -1
  21. package/dist/src/agent/agent-as-tool.d.ts +96 -0
  22. package/dist/src/agent/agent-as-tool.d.ts.map +1 -0
  23. package/dist/src/agent/agent-as-tool.js +135 -0
  24. package/dist/src/agent/agent-as-tool.js.map +1 -0
  25. package/dist/src/agent/agent.d.ts +90 -4
  26. package/dist/src/agent/agent.d.ts.map +1 -1
  27. package/dist/src/agent/agent.js +191 -8
  28. package/dist/src/agent/agent.js.map +1 -1
  29. package/dist/src/agent/snapshot.d.ts +1 -33
  30. package/dist/src/agent/snapshot.d.ts.map +1 -1
  31. package/dist/src/agent/snapshot.js +4 -4
  32. package/dist/src/agent/snapshot.js.map +1 -1
  33. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +4 -4
  34. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +1 -1
  35. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +2 -2
  36. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +1 -1
  37. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +7 -4
  38. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -1
  39. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.d.ts +2 -0
  40. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.d.ts.map +1 -0
  41. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js +267 -0
  42. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js.map +1 -0
  43. package/dist/src/conversation-manager/conversation-manager.d.ts +9 -2
  44. package/dist/src/conversation-manager/conversation-manager.d.ts.map +1 -1
  45. package/dist/src/conversation-manager/conversation-manager.js +2 -2
  46. package/dist/src/conversation-manager/conversation-manager.js.map +1 -1
  47. package/dist/src/conversation-manager/index.d.ts +1 -0
  48. package/dist/src/conversation-manager/index.d.ts.map +1 -1
  49. package/dist/src/conversation-manager/index.js +1 -0
  50. package/dist/src/conversation-manager/index.js.map +1 -1
  51. package/dist/src/conversation-manager/sliding-window-conversation-manager.js +1 -1
  52. package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -1
  53. package/dist/src/conversation-manager/summarizing-conversation-manager.d.ts +77 -0
  54. package/dist/src/conversation-manager/summarizing-conversation-manager.d.ts.map +1 -0
  55. package/dist/src/conversation-manager/summarizing-conversation-manager.js +170 -0
  56. package/dist/src/conversation-manager/summarizing-conversation-manager.js.map +1 -0
  57. package/dist/src/errors.d.ts +15 -0
  58. package/dist/src/errors.d.ts.map +1 -1
  59. package/dist/src/errors.js +19 -0
  60. package/dist/src/errors.js.map +1 -1
  61. package/dist/src/hooks/__tests__/events.test.js +18 -15
  62. package/dist/src/hooks/__tests__/events.test.js.map +1 -1
  63. package/dist/src/hooks/events.d.ts +5 -0
  64. package/dist/src/hooks/events.d.ts.map +1 -1
  65. package/dist/src/hooks/events.js +4 -0
  66. package/dist/src/hooks/events.js.map +1 -1
  67. package/dist/src/index.d.ts +4 -2
  68. package/dist/src/index.d.ts.map +1 -1
  69. package/dist/src/index.js +3 -0
  70. package/dist/src/index.js.map +1 -1
  71. package/dist/src/models/__tests__/bedrock.test.js +109 -0
  72. package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
  73. package/dist/src/models/__tests__/vercel.test.d.ts +2 -0
  74. package/dist/src/models/__tests__/vercel.test.d.ts.map +1 -0
  75. package/dist/src/models/__tests__/vercel.test.js +740 -0
  76. package/dist/src/models/__tests__/vercel.test.js.map +1 -0
  77. package/dist/src/models/bedrock.d.ts +10 -0
  78. package/dist/src/models/bedrock.d.ts.map +1 -1
  79. package/dist/src/models/bedrock.js +39 -5
  80. package/dist/src/models/bedrock.js.map +1 -1
  81. package/dist/src/models/vercel.d.ts +77 -0
  82. package/dist/src/models/vercel.d.ts.map +1 -0
  83. package/dist/src/models/vercel.js +553 -0
  84. package/dist/src/models/vercel.js.map +1 -0
  85. package/dist/src/multiagent/__tests__/snapshot.test.d.ts +2 -0
  86. package/dist/src/multiagent/__tests__/snapshot.test.d.ts.map +1 -0
  87. package/dist/src/multiagent/__tests__/snapshot.test.js +161 -0
  88. package/dist/src/multiagent/__tests__/snapshot.test.js.map +1 -0
  89. package/dist/src/multiagent/__tests__/state.test.d.ts +2 -0
  90. package/dist/src/multiagent/__tests__/state.test.d.ts.map +1 -0
  91. package/dist/src/multiagent/__tests__/state.test.js +388 -0
  92. package/dist/src/multiagent/__tests__/state.test.js.map +1 -0
  93. package/dist/src/multiagent/plugins.d.ts +8 -8
  94. package/dist/src/multiagent/plugins.d.ts.map +1 -1
  95. package/dist/src/multiagent/plugins.js +1 -30
  96. package/dist/src/multiagent/plugins.js.map +1 -1
  97. package/dist/src/multiagent/snapshot.d.ts +51 -0
  98. package/dist/src/multiagent/snapshot.d.ts.map +1 -0
  99. package/dist/src/multiagent/snapshot.js +69 -0
  100. package/dist/src/multiagent/snapshot.js.map +1 -0
  101. package/dist/src/multiagent/state.d.ts +24 -6
  102. package/dist/src/multiagent/state.d.ts.map +1 -1
  103. package/dist/src/multiagent/state.js +110 -4
  104. package/dist/src/multiagent/state.js.map +1 -1
  105. package/dist/src/session/__tests__/session-manager.test.js +246 -1
  106. package/dist/src/session/__tests__/session-manager.test.js.map +1 -1
  107. package/dist/src/session/index.d.ts +2 -2
  108. package/dist/src/session/index.d.ts.map +1 -1
  109. package/dist/src/session/session-manager.d.ts +42 -4
  110. package/dist/src/session/session-manager.d.ts.map +1 -1
  111. package/dist/src/session/session-manager.js +64 -10
  112. package/dist/src/session/session-manager.js.map +1 -1
  113. package/dist/src/session/types.d.ts +1 -1
  114. package/dist/src/tools/noop-tool.d.ts +13 -0
  115. package/dist/src/tools/noop-tool.d.ts.map +1 -0
  116. package/dist/src/tools/noop-tool.js +16 -0
  117. package/dist/src/tools/noop-tool.js.map +1 -0
  118. package/dist/src/tools/tool.d.ts +1 -1
  119. package/dist/src/tsconfig.tsbuildinfo +1 -1
  120. package/dist/src/types/agent.d.ts +77 -1
  121. package/dist/src/types/agent.d.ts.map +1 -1
  122. package/dist/src/types/agent.js.map +1 -1
  123. package/dist/src/types/messages.d.ts +2 -1
  124. package/dist/src/types/messages.d.ts.map +1 -1
  125. package/dist/src/types/messages.js.map +1 -1
  126. package/dist/src/types/snapshot.d.ts +28 -0
  127. package/dist/src/types/snapshot.d.ts.map +1 -0
  128. package/dist/src/types/snapshot.js +8 -0
  129. package/dist/src/types/snapshot.js.map +1 -0
  130. package/dist/src/vended-tools/http-request/http-request.d.ts.map +1 -1
  131. package/dist/src/vended-tools/http-request/http-request.js +7 -22
  132. package/dist/src/vended-tools/http-request/http-request.js.map +1 -1
  133. package/package.json +13 -2
package/README.md CHANGED
@@ -308,6 +308,10 @@ For detailed guidance, tutorials, and concept overviews, please visit:
308
308
  - **[Official Documentation](https://strandsagents.com/)**: Comprehensive guides and tutorials
309
309
  - **[API Reference](https://strandsagents.com/latest/documentation/docs/api-reference/typescript/)**: Complete API documentation
310
310
  - **[Examples](./examples/)**: Sample applications
311
+ - **[First Agent](./examples/first-agent/)**: Basic Node.js agent
312
+ - **[MCP](./examples/mcp/)**: MCP integration example
313
+ - **[Browser Agent](./examples/browser-agent/)**: Browser-based agent with DOM manipulation
314
+
311
315
  - **[Contributing Guide](CONTRIBUTING.md)**: Development setup and guidelines
312
316
 
313
317
  ---
@@ -1 +1 @@
1
- {"version":3,"file":"agent-helpers.d.ts","sourceRoot":"","sources":["../../../src/__fixtures__/agent-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,OAAO,EAAa,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC/E,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEjF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,wBAAwB,CAAC,aAAa,CAAC,CAAA;IAClD,QAAQ,EAAE,YAAY,CAAC,aAAa,CAAC,CAAA;CACtC,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACpC;;OAEG;IACH,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG;IAAE,YAAY,EAAE,WAAW,EAAE,CAAA;CAAE,CAAA;AAE/D;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAgB/D;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAM1G;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,kBAAkB,EAAE,YAAY,CAAC;IAChF;;OAEG;IACH,UAAU,EAAE,UAAU,CAAA;IAEtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAElB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CA+B1E"}
1
+ {"version":3,"file":"agent-helpers.d.ts","sourceRoot":"","sources":["../../../src/__fixtures__/agent-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,OAAO,EAAa,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC/E,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEjF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,wBAAwB,CAAC,aAAa,CAAC,CAAA;IAClD,QAAQ,EAAE,YAAY,CAAC,aAAa,CAAC,CAAA;CACtC,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACpC;;OAEG;IACH,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG;IAAE,YAAY,EAAE,WAAW,EAAE,CAAA;CAAE,CAAA;AAE/D;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAiB/D;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAM1G;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,kBAAkB,EAAE,YAAY,CAAC;IAChF;;OAEG;IACH,UAAU,EAAE,UAAU,CAAA;IAEtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAElB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CA+B1E"}
@@ -21,6 +21,7 @@ export function createMockAgent(data) {
21
21
  messages: data?.messages ?? [],
22
22
  appState: new StateStore(data?.appState ?? {}),
23
23
  toolRegistry: data?.toolRegistry ?? new ToolRegistry(),
24
+ cancelSignal: new AbortController().signal,
24
25
  addHook: (eventType, callback) => {
25
26
  trackedHooks.push({
26
27
  eventType: eventType,
@@ -1 +1 @@
1
- {"version":3,"file":"agent-helpers.js","sourceRoot":"","sources":["../../../src/__fixtures__/agent-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-helpers.js","sourceRoot":"","sources":["../../../src/__fixtures__/agent-helpers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-helpers.d.ts","sourceRoot":"","sources":["../../../src/__fixtures__/tool-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAE3D;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,EAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GACnC,WAAW,CAWb;AAED;;GAEG;AACH,KAAK,YAAY,GAAG,MAAM,oBAAoB,GAAG,cAAc,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAA;AAEnG;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,CA8BzE;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAWpD"}
1
+ {"version":3,"file":"tool-helpers.d.ts","sourceRoot":"","sources":["../../../src/__fixtures__/tool-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAG3D;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,EAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GACnC,WAAW,CAWb;AAED;;GAEG;AACH,KAAK,YAAY,GAAG,MAAM,oBAAoB,GAAG,cAAc,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAA;AAEnG;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,CA8BzE;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAWpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-helpers.js","sourceRoot":"","sources":["../../../src/__fixtures__/tool-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAG3D;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAA8D,EAC9D,QAAoC;IAEpC,OAAO;QACL,OAAO;QACP,KAAK,EAAE;YACL,EAAE,EAAE,YAAY;YAChB,QAAQ,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC;YAClC,QAAQ,EAAE,EAAE;YACZ,YAAY,EAAE,IAAI,YAAY,EAAE;YAChC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC;SACxB;KACF,CAAA;AACH,CAAC;AAOD;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,QAAsB;IACjE,OAAO;QACL,IAAI;QACJ,WAAW,EAAE,aAAa,IAAI,EAAE;QAChC,QAAQ,EAAE;YACR,IAAI;YACJ,WAAW,EAAE,aAAa,IAAI,EAAE;YAChC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;SAChD;QACD,yCAAyC;QACzC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ;YACpB,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAA;YACzB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,EAAE,CAAC;gBACpF,mCAAmC;gBACnC,MAAM,GAAG,GAAG,MAAuD,CAAA;gBACnE,IAAI,IAAI,GAAG,KAAK,CAAA;gBAChB,OAAO,CAAC,IAAI,EAAE,CAAC;oBACb,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;oBAChD,IAAI,GAAG,MAAM,IAAI,KAAK,CAAA;oBACtB,IAAI,IAAI,EAAE,CAAC;wBACT,OAAO,KAAK,CAAA;oBACd,CAAC;gBACH,CAAC;gBACD,6DAA6D;gBAC7D,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;YACjD,CAAC;iBAAM,CAAC;gBACN,OAAO,MAAyB,CAAA;YAClC,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAC5C,MAAM,QAAQ,GAAG,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;IACvD,OAAO,cAAc,CACnB,QAAQ,EACR,GAAG,EAAE,CACH,IAAI,eAAe,CAAC;QAClB,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,SAAkB;QAC1B,OAAO,EAAE,EAAE;KACZ,CAAC,CACL,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"tool-helpers.js","sourceRoot":"","sources":["../../../src/__fixtures__/tool-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAI3D;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAA8D,EAC9D,QAAoC;IAEpC,OAAO;QACL,OAAO;QACP,KAAK,EAAE;YACL,EAAE,EAAE,YAAY;YAChB,QAAQ,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC;YAClC,QAAQ,EAAE,EAAE;YACZ,YAAY,EAAE,IAAI,YAAY,EAAE;YAChC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC;SACC;KAC3B,CAAA;AACH,CAAC;AAOD;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,QAAsB;IACjE,OAAO;QACL,IAAI;QACJ,WAAW,EAAE,aAAa,IAAI,EAAE;QAChC,QAAQ,EAAE;YACR,IAAI;YACJ,WAAW,EAAE,aAAa,IAAI,EAAE;YAChC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;SAChD;QACD,yCAAyC;QACzC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ;YACpB,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAA;YACzB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,EAAE,CAAC;gBACpF,mCAAmC;gBACnC,MAAM,GAAG,GAAG,MAAuD,CAAA;gBACnE,IAAI,IAAI,GAAG,KAAK,CAAA;gBAChB,OAAO,CAAC,IAAI,EAAE,CAAC;oBACb,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;oBAChD,IAAI,GAAG,MAAM,IAAI,KAAK,CAAA;oBACtB,IAAI,IAAI,EAAE,CAAC;wBACT,OAAO,KAAK,CAAA;oBACd,CAAC;gBACH,CAAC;gBACD,6DAA6D;gBAC7D,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;YACjD,CAAC;iBAAM,CAAC;gBACN,OAAO,MAAyB,CAAA;YAClC,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAC5C,MAAM,QAAQ,GAAG,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;IACvD,OAAO,cAAc,CACnB,QAAQ,EACR,GAAG,EAAE,CACH,IAAI,eAAe,CAAC;QAClB,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,SAAkB;QAC1B,OAAO,EAAE,EAAE;KACZ,CAAC,CACL,CAAA;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=agent-as-tool.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-as-tool.test.d.ts","sourceRoot":"","sources":["../../../../src/agent/__tests__/agent-as-tool.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,347 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { Agent } from '../agent.js';
3
+ import { AgentAsTool } from '../agent-as-tool.js';
4
+ import { MockMessageModel } from '../../__fixtures__/mock-message-model.js';
5
+ import { collectGenerator } from '../../__fixtures__/model-test-helpers.js';
6
+ import { createMockContext } from '../../__fixtures__/tool-helpers.js';
7
+ import { ToolValidationError } from '../../errors.js';
8
+ import { Tool, ToolStreamEvent } from '../../tools/tool.js';
9
+ import { ToolResultBlock } from '../../types/messages.js';
10
+ import { SessionManager } from '../../session/session-manager.js';
11
+ describe('AgentAsTool', () => {
12
+ describe('properties', () => {
13
+ it('uses agent name as default tool name', () => {
14
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Hi' });
15
+ const agent = new Agent({ model, name: 'researcher' });
16
+ const tool = new AgentAsTool({ agent });
17
+ expect(tool.name).toBe('researcher');
18
+ });
19
+ it('allows overriding the tool name', () => {
20
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Hi' });
21
+ const agent = new Agent({ model, name: 'researcher' });
22
+ const tool = new AgentAsTool({ agent, name: 'research-tool' });
23
+ expect(tool.name).toBe('research-tool');
24
+ });
25
+ it('uses agent description as default tool description', () => {
26
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Hi' });
27
+ const agent = new Agent({ model, name: 'researcher', description: 'Finds information' });
28
+ const tool = new AgentAsTool({ agent });
29
+ expect(tool.description).toBe('Finds information');
30
+ });
31
+ it('falls back to generic description when agent has no description', () => {
32
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Hi' });
33
+ const agent = new Agent({ model, name: 'researcher' });
34
+ const tool = new AgentAsTool({ agent });
35
+ expect(tool.description).toBe('Use the researcher agent by providing a natural language input');
36
+ });
37
+ it('allows overriding the tool description', () => {
38
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Hi' });
39
+ const agent = new Agent({ model, name: 'researcher' });
40
+ const tool = new AgentAsTool({ agent, description: 'Custom description' });
41
+ expect(tool.description).toBe('Custom description');
42
+ });
43
+ it('exposes the wrapped agent via getter', () => {
44
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Hi' });
45
+ const agent = new Agent({ model, name: 'researcher' });
46
+ const tool = new AgentAsTool({ agent });
47
+ expect(tool.agent).toBe(agent);
48
+ });
49
+ it('has correct toolSpec shape', () => {
50
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Hi' });
51
+ const agent = new Agent({ model, name: 'researcher', description: 'Finds info' });
52
+ const tool = new AgentAsTool({ agent });
53
+ expect(tool.toolSpec).toEqual({
54
+ name: 'researcher',
55
+ description: 'Finds info',
56
+ inputSchema: {
57
+ type: 'object',
58
+ properties: {
59
+ input: {
60
+ type: 'string',
61
+ description: 'The natural language input to send to the agent.',
62
+ },
63
+ },
64
+ required: ['input'],
65
+ },
66
+ });
67
+ });
68
+ });
69
+ describe('name validation', () => {
70
+ it('throws when registered with agent name containing spaces', () => {
71
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Hi' });
72
+ const subAgent = new Agent({ model, name: 'Strands Agent' });
73
+ expect(() => new Agent({ model, tools: [subAgent] })).toThrow(ToolValidationError);
74
+ });
75
+ it('throws when registered with explicit name containing invalid characters', () => {
76
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Hi' });
77
+ const subAgent = new Agent({ model, name: 'researcher' });
78
+ expect(() => new Agent({ model, tools: [subAgent.asTool({ name: 'has spaces' })] })).toThrow(ToolValidationError);
79
+ });
80
+ it('accepts valid name with hyphens and underscores', () => {
81
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Hi' });
82
+ const agent = new Agent({ model, name: 'my_research-agent' });
83
+ const tool = new AgentAsTool({ agent });
84
+ expect(tool.name).toBe('my_research-agent');
85
+ });
86
+ });
87
+ describe('stream', () => {
88
+ it('invokes the wrapped agent and returns text result', async () => {
89
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Agent response' });
90
+ const agent = new Agent({ model, name: 'test-agent', printer: false });
91
+ const tool = new AgentAsTool({ agent });
92
+ const context = createMockContext({
93
+ name: 'test-agent',
94
+ toolUseId: 'tool-1',
95
+ input: { input: 'Hello agent' },
96
+ });
97
+ const { result } = await collectGenerator(tool.stream(context));
98
+ expect(result.toolUseId).toBe('tool-1');
99
+ expect(result.status).toBe('success');
100
+ expect(result.content).toHaveLength(1);
101
+ expect(result.content[0]).toEqual(expect.objectContaining({
102
+ type: 'textBlock',
103
+ text: 'Agent response',
104
+ }));
105
+ });
106
+ it('yields ToolStreamEvents wrapping sub-agent events', async () => {
107
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Hello' });
108
+ const agent = new Agent({ model, name: 'test-agent', printer: false });
109
+ const tool = new AgentAsTool({ agent });
110
+ const context = createMockContext({
111
+ name: 'test-agent',
112
+ toolUseId: 'tool-1',
113
+ input: { input: 'Hi' },
114
+ });
115
+ const { items } = await collectGenerator(tool.stream(context));
116
+ expect(items.length).toBeGreaterThan(0);
117
+ for (const item of items) {
118
+ expect(item).toBeInstanceOf(ToolStreamEvent);
119
+ }
120
+ });
121
+ it('unwraps toolStreamUpdateEvent by yielding inner ToolStreamEvent directly', async () => {
122
+ // Create a tool that yields ToolStreamEvents during execution.
123
+ // When the sub-agent runs this tool, the agent loop wraps each yielded
124
+ // ToolStreamEvent in a ToolStreamUpdateEvent. The AgentAsTool should
125
+ // unwrap these back to bare ToolStreamEvents instead of double-wrapping.
126
+ const streamingTool = {
127
+ name: 'streaming-tool',
128
+ description: 'A tool that yields stream events',
129
+ toolSpec: {
130
+ name: 'streaming-tool',
131
+ description: 'A tool that yields stream events',
132
+ inputSchema: { type: 'object', properties: {} },
133
+ },
134
+ async *stream(context) {
135
+ yield new ToolStreamEvent({ data: 'progress-1' });
136
+ yield new ToolStreamEvent({ data: 'progress-2' });
137
+ return new ToolResultBlock({
138
+ toolUseId: context.toolUse.toolUseId,
139
+ status: 'success',
140
+ content: [],
141
+ });
142
+ },
143
+ };
144
+ // Turn 1: model requests tool use → triggers the streaming tool
145
+ // Turn 2: model responds with text after tool result
146
+ const model = new MockMessageModel()
147
+ .addTurn({
148
+ type: 'toolUseBlock',
149
+ name: 'streaming-tool',
150
+ toolUseId: 'sub-tool-1',
151
+ input: {},
152
+ })
153
+ .addTurn({ type: 'textBlock', text: 'Final response' });
154
+ const agent = new Agent({ model, name: 'test-agent', tools: [streamingTool], printer: false });
155
+ const tool = new AgentAsTool({ agent });
156
+ const context = createMockContext({
157
+ name: 'test-agent',
158
+ toolUseId: 'outer-tool-1',
159
+ input: { input: 'Do something' },
160
+ });
161
+ const { items } = await collectGenerator(tool.stream(context));
162
+ // All yielded items should be ToolStreamEvent instances
163
+ for (const item of items) {
164
+ expect(item).toBeInstanceOf(ToolStreamEvent);
165
+ }
166
+ // Find the unwrapped events from the streaming tool.
167
+ // If unwrapping works correctly, data is the original string.
168
+ // If double-wrapped, data would be a ToolStreamUpdateEvent object.
169
+ const progressEvents = items.filter((item) => item.data === 'progress-1' || item.data === 'progress-2');
170
+ expect(progressEvents).toHaveLength(2);
171
+ expect(progressEvents[0].data).toBe('progress-1');
172
+ expect(progressEvents[1].data).toBe('progress-2');
173
+ });
174
+ it('returns error result on agent failure', async () => {
175
+ const model = new MockMessageModel().addTurn(new Error('Model failed'));
176
+ const agent = new Agent({ model, name: 'test-agent', printer: false });
177
+ const tool = new AgentAsTool({ agent });
178
+ const context = createMockContext({
179
+ name: 'test-agent',
180
+ toolUseId: 'tool-1',
181
+ input: { input: 'Hello' },
182
+ });
183
+ const { result } = await collectGenerator(tool.stream(context));
184
+ expect(result.toolUseId).toBe('tool-1');
185
+ expect(result.status).toBe('error');
186
+ });
187
+ it('returns error result when agent is already busy', async () => {
188
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Slow response' });
189
+ const agent = new Agent({ model, name: 'test-agent', printer: false });
190
+ const tool = new AgentAsTool({ agent });
191
+ const context1 = createMockContext({
192
+ name: 'test-agent',
193
+ toolUseId: 'tool-1',
194
+ input: { input: 'First call' },
195
+ });
196
+ const context2 = createMockContext({
197
+ name: 'test-agent',
198
+ toolUseId: 'tool-2',
199
+ input: { input: 'Second call' },
200
+ });
201
+ // Start first call but don't fully consume it
202
+ const gen1 = tool.stream(context1);
203
+ await gen1.next();
204
+ // Second call should get an error immediately
205
+ const { result } = await collectGenerator(tool.stream(context2));
206
+ expect(result.toolUseId).toBe('tool-2');
207
+ expect(result.status).toBe('error');
208
+ expect(result.content[0]).toEqual(expect.objectContaining({
209
+ type: 'textBlock',
210
+ text: expect.stringContaining('already processing'),
211
+ }));
212
+ // Clean up first generator
213
+ await collectGenerator(gen1);
214
+ });
215
+ });
216
+ describe('preserveContext', () => {
217
+ it('resets agent state between invocations when false (default)', async () => {
218
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Response' });
219
+ const agent = new Agent({ model, name: 'test-agent', printer: false });
220
+ const tool = new AgentAsTool({ agent });
221
+ const context1 = createMockContext({
222
+ name: 'test-agent',
223
+ toolUseId: 'tool-1',
224
+ input: { input: 'Hello' },
225
+ });
226
+ const context2 = createMockContext({
227
+ name: 'test-agent',
228
+ toolUseId: 'tool-2',
229
+ input: { input: 'Hello again' },
230
+ });
231
+ await collectGenerator(tool.stream(context1));
232
+ const messagesAfterFirst = agent.messages.length;
233
+ await collectGenerator(tool.stream(context2));
234
+ const messagesAfterSecond = agent.messages.length;
235
+ // State is reset so both produce the same message count
236
+ expect(messagesAfterSecond).toBe(messagesAfterFirst);
237
+ });
238
+ it('preserves agent state across invocations when true', async () => {
239
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Response' });
240
+ const agent = new Agent({ model, name: 'test-agent', printer: false });
241
+ const tool = new AgentAsTool({ agent, preserveContext: true });
242
+ const context1 = createMockContext({
243
+ name: 'test-agent',
244
+ toolUseId: 'tool-1',
245
+ input: { input: 'Hello' },
246
+ });
247
+ const context2 = createMockContext({
248
+ name: 'test-agent',
249
+ toolUseId: 'tool-2',
250
+ input: { input: 'Hello again' },
251
+ });
252
+ await collectGenerator(tool.stream(context1));
253
+ const messagesAfterFirst = agent.messages.length;
254
+ await collectGenerator(tool.stream(context2));
255
+ const messagesAfterSecond = agent.messages.length;
256
+ // Messages should accumulate across invocations
257
+ expect(messagesAfterSecond).toBeGreaterThan(messagesAfterFirst);
258
+ });
259
+ it('snapshots at construction time, not first invocation', async () => {
260
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Response' });
261
+ const agent = new Agent({ model, name: 'test-agent', printer: false });
262
+ const tool = new AgentAsTool({ agent });
263
+ const messagesAtConstruction = agent.messages.length;
264
+ // Modify agent state after tool creation
265
+ await agent.invoke('Direct invocation');
266
+ expect(agent.messages.length).toBeGreaterThan(messagesAtConstruction);
267
+ // First tool call restores to construction-time state, then runs
268
+ const context1 = createMockContext({
269
+ name: 'test-agent',
270
+ toolUseId: 'tool-1',
271
+ input: { input: 'Hello' },
272
+ });
273
+ await collectGenerator(tool.stream(context1));
274
+ const messagesAfterFirstTool = agent.messages.length;
275
+ // Second tool call should produce the same count — both reset to construction baseline
276
+ const context2 = createMockContext({
277
+ name: 'test-agent',
278
+ toolUseId: 'tool-2',
279
+ input: { input: 'Hello again' },
280
+ });
281
+ await collectGenerator(tool.stream(context2));
282
+ expect(agent.messages.length).toBe(messagesAfterFirstTool);
283
+ });
284
+ });
285
+ describe('sessionManager validation', () => {
286
+ const mockStorage = {
287
+ saveSnapshot: async () => { },
288
+ loadSnapshot: async () => null,
289
+ listSnapshotIds: async () => [],
290
+ deleteSession: async () => { },
291
+ loadManifest: async () => ({ schemaVersion: '1.0', updatedAt: '12:00:00' }),
292
+ saveManifest: async () => { },
293
+ };
294
+ it('throws when preserveContext is false and agent has a sessionManager', () => {
295
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Hi' });
296
+ const sessionManager = new SessionManager({ storage: { snapshot: mockStorage } });
297
+ const agent = new Agent({ model, name: 'test-agent', sessionManager });
298
+ expect(() => new AgentAsTool({ agent })).toThrow(/SessionManager.*conflicts with preserveContext=false/);
299
+ });
300
+ it('throws when preserveContext is explicitly false and agent has a sessionManager', () => {
301
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Hi' });
302
+ const sessionManager = new SessionManager({ storage: { snapshot: mockStorage } });
303
+ const agent = new Agent({ model, name: 'test-agent', sessionManager });
304
+ expect(() => new AgentAsTool({ agent, preserveContext: false })).toThrow(/SessionManager.*conflicts with preserveContext=false/);
305
+ });
306
+ it('allows preserveContext true with sessionManager', () => {
307
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Hi' });
308
+ const sessionManager = new SessionManager({ storage: { snapshot: mockStorage } });
309
+ const agent = new Agent({ model, name: 'test-agent', sessionManager });
310
+ expect(() => new AgentAsTool({ agent, preserveContext: true })).not.toThrow();
311
+ });
312
+ });
313
+ describe('Agent.asTool', () => {
314
+ it('returns an AgentAsTool instance', () => {
315
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Hi' });
316
+ const agent = new Agent({ model, name: 'researcher' });
317
+ const tool = agent.asTool();
318
+ expect(tool).toBeInstanceOf(AgentAsTool);
319
+ expect(tool.name).toBe('researcher');
320
+ });
321
+ it('passes options through to AgentAsTool', () => {
322
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Hi' });
323
+ const agent = new Agent({ model, name: 'researcher' });
324
+ const tool = agent.asTool({ name: 'custom-name', description: 'Custom desc' });
325
+ expect(tool.name).toBe('custom-name');
326
+ expect(tool.description).toBe('Custom desc');
327
+ });
328
+ });
329
+ describe('Agent in ToolList', () => {
330
+ it('auto-wraps Agent as AgentAsTool when passed in tools array', () => {
331
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Hi' });
332
+ const subAgent = new Agent({ model, name: 'sub-agent', description: 'A sub agent' });
333
+ const parentAgent = new Agent({ model, tools: [subAgent] });
334
+ const registeredTool = parentAgent.toolRegistry.get('sub-agent');
335
+ expect(registeredTool).toBeInstanceOf(AgentAsTool);
336
+ expect(registeredTool.name).toBe('sub-agent');
337
+ });
338
+ it('auto-wraps Agent in nested tools arrays', () => {
339
+ const model = new MockMessageModel().addTurn({ type: 'textBlock', text: 'Hi' });
340
+ const subAgent = new Agent({ model, name: 'nested-agent' });
341
+ const parentAgent = new Agent({ model, tools: [[subAgent]] });
342
+ const registeredTool = parentAgent.toolRegistry.get('nested-agent');
343
+ expect(registeredTool).toBeInstanceOf(AgentAsTool);
344
+ });
345
+ });
346
+ });
347
+ //# sourceMappingURL=agent-as-tool.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-as-tool.test.js","sourceRoot":"","sources":["../../../../src/agent/__tests__/agent-as-tool.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=agent.cancel.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.cancel.test.d.ts","sourceRoot":"","sources":["../../../../src/agent/__tests__/agent.cancel.test.ts"],"names":[],"mappings":""}