@strands-agents/sdk 0.0.1
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.
- package/LICENSE +175 -0
- package/README.md +185 -0
- package/dist/__fixtures__/model-test-helpers.d.ts +56 -0
- package/dist/__fixtures__/model-test-helpers.d.ts.map +1 -0
- package/dist/__fixtures__/model-test-helpers.js +85 -0
- package/dist/__fixtures__/model-test-helpers.js.map +1 -0
- package/dist/__fixtures__/tool-helpers.d.ts +15 -0
- package/dist/__fixtures__/tool-helpers.d.ts.map +1 -0
- package/dist/__fixtures__/tool-helpers.js +22 -0
- package/dist/__fixtures__/tool-helpers.js.map +1 -0
- package/dist/__tests__/errors.test.d.ts +2 -0
- package/dist/__tests__/errors.test.d.ts.map +1 -0
- package/dist/__tests__/errors.test.js +20 -0
- package/dist/__tests__/errors.test.js.map +1 -0
- package/dist/__tests__/index.test.d.ts +2 -0
- package/dist/__tests__/index.test.d.ts.map +1 -0
- package/dist/__tests__/index.test.js +27 -0
- package/dist/__tests__/index.test.js.map +1 -0
- package/dist/errors.d.ts +22 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +25 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/models/__tests__/bedrock.test.d.ts +2 -0
- package/dist/models/__tests__/bedrock.test.d.ts.map +1 -0
- package/dist/models/__tests__/bedrock.test.js +1161 -0
- package/dist/models/__tests__/bedrock.test.js.map +1 -0
- package/dist/models/__tests__/model.test.d.ts +2 -0
- package/dist/models/__tests__/model.test.d.ts.map +1 -0
- package/dist/models/__tests__/model.test.js +297 -0
- package/dist/models/__tests__/model.test.js.map +1 -0
- package/dist/models/__tests__/openai.test.d.ts +2 -0
- package/dist/models/__tests__/openai.test.d.ts.map +1 -0
- package/dist/models/__tests__/openai.test.js +1016 -0
- package/dist/models/__tests__/openai.test.js.map +1 -0
- package/dist/models/__tests__/test-utils.d.ts +10 -0
- package/dist/models/__tests__/test-utils.d.ts.map +1 -0
- package/dist/models/__tests__/test-utils.js +17 -0
- package/dist/models/__tests__/test-utils.js.map +1 -0
- package/dist/models/bedrock.d.ts +272 -0
- package/dist/models/bedrock.d.ts.map +1 -0
- package/dist/models/bedrock.js +679 -0
- package/dist/models/bedrock.js.map +1 -0
- package/dist/models/model.d.ts +89 -0
- package/dist/models/model.d.ts.map +1 -0
- package/dist/models/model.js +122 -0
- package/dist/models/model.js.map +1 -0
- package/dist/models/openai.d.ts +262 -0
- package/dist/models/openai.d.ts.map +1 -0
- package/dist/models/openai.js +625 -0
- package/dist/models/openai.js.map +1 -0
- package/dist/models/streaming.d.ts +226 -0
- package/dist/models/streaming.d.ts.map +1 -0
- package/dist/models/streaming.js +2 -0
- package/dist/models/streaming.js.map +1 -0
- package/dist/src/__fixtures__/agent-helpers.d.ts +29 -0
- package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -0
- package/dist/src/__fixtures__/agent-helpers.js +19 -0
- package/dist/src/__fixtures__/agent-helpers.js.map +1 -0
- package/dist/src/__fixtures__/environment.d.ts +12 -0
- package/dist/src/__fixtures__/environment.d.ts.map +1 -0
- package/dist/src/__fixtures__/environment.js +12 -0
- package/dist/src/__fixtures__/environment.js.map +1 -0
- package/dist/src/__fixtures__/mock-hook-provider.d.ts +14 -0
- package/dist/src/__fixtures__/mock-hook-provider.d.ts.map +1 -0
- package/dist/src/__fixtures__/mock-hook-provider.js +33 -0
- package/dist/src/__fixtures__/mock-hook-provider.js.map +1 -0
- package/dist/src/__fixtures__/mock-message-model.d.ts +93 -0
- package/dist/src/__fixtures__/mock-message-model.d.ts.map +1 -0
- package/dist/src/__fixtures__/mock-message-model.js +226 -0
- package/dist/src/__fixtures__/mock-message-model.js.map +1 -0
- package/dist/src/__fixtures__/model-test-helpers.d.ts +56 -0
- package/dist/src/__fixtures__/model-test-helpers.d.ts.map +1 -0
- package/dist/src/__fixtures__/model-test-helpers.js +85 -0
- package/dist/src/__fixtures__/model-test-helpers.js.map +1 -0
- package/dist/src/__fixtures__/tool-helpers.d.ts +37 -0
- package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -0
- package/dist/src/__fixtures__/tool-helpers.js +78 -0
- package/dist/src/__fixtures__/tool-helpers.js.map +1 -0
- package/dist/src/__tests__/errors.test.d.ts +2 -0
- package/dist/src/__tests__/errors.test.d.ts.map +1 -0
- package/dist/src/__tests__/errors.test.js +64 -0
- package/dist/src/__tests__/errors.test.js.map +1 -0
- package/dist/src/__tests__/index.test.d.ts +2 -0
- package/dist/src/__tests__/index.test.d.ts.map +1 -0
- package/dist/src/__tests__/index.test.js +27 -0
- package/dist/src/__tests__/index.test.js.map +1 -0
- package/dist/src/__tests__/mcp.test.d.ts +2 -0
- package/dist/src/__tests__/mcp.test.d.ts.map +1 -0
- package/dist/src/__tests__/mcp.test.js +166 -0
- package/dist/src/__tests__/mcp.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.hook.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.hook.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.hook.test.js +250 -0
- package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.test.js +414 -0
- package/dist/src/agent/__tests__/agent.test.js.map +1 -0
- package/dist/src/agent/__tests__/printer.test.d.ts +2 -0
- package/dist/src/agent/__tests__/printer.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/printer.test.js +152 -0
- package/dist/src/agent/__tests__/printer.test.js.map +1 -0
- package/dist/src/agent/__tests__/state.test.d.ts +2 -0
- package/dist/src/agent/__tests__/state.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/state.test.js +231 -0
- package/dist/src/agent/__tests__/state.test.js.map +1 -0
- package/dist/src/agent/agent.d.ts +207 -0
- package/dist/src/agent/agent.d.ts.map +1 -0
- package/dist/src/agent/agent.js +481 -0
- package/dist/src/agent/agent.js.map +1 -0
- package/dist/src/agent/printer.d.ts +73 -0
- package/dist/src/agent/printer.d.ts.map +1 -0
- package/dist/src/agent/printer.js +145 -0
- package/dist/src/agent/printer.js.map +1 -0
- package/dist/src/agent/state.d.ts +102 -0
- package/dist/src/agent/state.d.ts.map +1 -0
- package/dist/src/agent/state.js +73 -0
- package/dist/src/agent/state.js.map +1 -0
- package/dist/src/agent/streaming.d.ts +91 -0
- package/dist/src/agent/streaming.d.ts.map +1 -0
- package/dist/src/agent/streaming.js +2 -0
- package/dist/src/agent/streaming.js.map +1 -0
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts +2 -0
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts.map +1 -0
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +10 -0
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +1 -0
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.d.ts +2 -0
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.d.ts.map +1 -0
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +35 -0
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +1 -0
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.d.ts +2 -0
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.d.ts.map +1 -0
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +553 -0
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -0
- package/dist/src/conversation-manager/conversation-manager.d.ts +73 -0
- package/dist/src/conversation-manager/conversation-manager.d.ts.map +1 -0
- package/dist/src/conversation-manager/conversation-manager.js +24 -0
- package/dist/src/conversation-manager/conversation-manager.js.map +1 -0
- package/dist/src/conversation-manager/index.d.ts +8 -0
- package/dist/src/conversation-manager/index.d.ts.map +1 -0
- package/dist/src/conversation-manager/index.js +8 -0
- package/dist/src/conversation-manager/index.js.map +1 -0
- package/dist/src/conversation-manager/null-conversation-manager.d.ts +23 -0
- package/dist/src/conversation-manager/null-conversation-manager.d.ts.map +1 -0
- package/dist/src/conversation-manager/null-conversation-manager.js +23 -0
- package/dist/src/conversation-manager/null-conversation-manager.js.map +1 -0
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +105 -0
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -0
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js +212 -0
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -0
- package/dist/src/errors.d.ts +83 -0
- package/dist/src/errors.d.ts.map +1 -0
- package/dist/src/errors.js +97 -0
- package/dist/src/errors.js.map +1 -0
- package/dist/src/hooks/__tests__/events.test.d.ts +2 -0
- package/dist/src/hooks/__tests__/events.test.d.ts.map +1 -0
- package/dist/src/hooks/__tests__/events.test.js +347 -0
- package/dist/src/hooks/__tests__/events.test.js.map +1 -0
- package/dist/src/hooks/__tests__/registry.test.d.ts +2 -0
- package/dist/src/hooks/__tests__/registry.test.d.ts.map +1 -0
- package/dist/src/hooks/__tests__/registry.test.js +154 -0
- package/dist/src/hooks/__tests__/registry.test.js.map +1 -0
- package/dist/src/hooks/events.d.ts +199 -0
- package/dist/src/hooks/events.d.ts.map +1 -0
- package/dist/src/hooks/events.js +191 -0
- package/dist/src/hooks/events.js.map +1 -0
- package/dist/src/hooks/index.d.ts +11 -0
- package/dist/src/hooks/index.d.ts.map +1 -0
- package/dist/src/hooks/index.js +11 -0
- package/dist/src/hooks/index.js.map +1 -0
- package/dist/src/hooks/registry.d.ts +65 -0
- package/dist/src/hooks/registry.d.ts.map +1 -0
- package/dist/src/hooks/registry.js +65 -0
- package/dist/src/hooks/registry.js.map +1 -0
- package/dist/src/hooks/types.d.ts +49 -0
- package/dist/src/hooks/types.d.ts.map +1 -0
- package/dist/src/hooks/types.js +2 -0
- package/dist/src/hooks/types.js.map +1 -0
- package/dist/src/index.d.ts +32 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +29 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/mcp.d.ts +51 -0
- package/dist/src/mcp.d.ts.map +1 -0
- package/dist/src/mcp.js +91 -0
- package/dist/src/mcp.js.map +1 -0
- package/dist/src/models/__tests__/bedrock.test.d.ts +2 -0
- package/dist/src/models/__tests__/bedrock.test.d.ts.map +1 -0
- package/dist/src/models/__tests__/bedrock.test.js +1388 -0
- package/dist/src/models/__tests__/bedrock.test.js.map +1 -0
- package/dist/src/models/__tests__/model.test.d.ts +2 -0
- package/dist/src/models/__tests__/model.test.d.ts.map +1 -0
- package/dist/src/models/__tests__/model.test.js +342 -0
- package/dist/src/models/__tests__/model.test.js.map +1 -0
- package/dist/src/models/__tests__/openai.test.d.ts +2 -0
- package/dist/src/models/__tests__/openai.test.d.ts.map +1 -0
- package/dist/src/models/__tests__/openai.test.js +1189 -0
- package/dist/src/models/__tests__/openai.test.js.map +1 -0
- package/dist/src/models/__tests__/test-utils.d.ts +10 -0
- package/dist/src/models/__tests__/test-utils.d.ts.map +1 -0
- package/dist/src/models/__tests__/test-utils.js +17 -0
- package/dist/src/models/__tests__/test-utils.js.map +1 -0
- package/dist/src/models/bedrock.d.ts +289 -0
- package/dist/src/models/bedrock.d.ts.map +1 -0
- package/dist/src/models/bedrock.js +804 -0
- package/dist/src/models/bedrock.js.map +1 -0
- package/dist/src/models/model.d.ts +99 -0
- package/dist/src/models/model.d.ts.map +1 -0
- package/dist/src/models/model.js +169 -0
- package/dist/src/models/model.js.map +1 -0
- package/dist/src/models/openai.d.ts +262 -0
- package/dist/src/models/openai.d.ts.map +1 -0
- package/dist/src/models/openai.js +752 -0
- package/dist/src/models/openai.js.map +1 -0
- package/dist/src/models/streaming.d.ts +318 -0
- package/dist/src/models/streaming.d.ts.map +1 -0
- package/dist/src/models/streaming.js +122 -0
- package/dist/src/models/streaming.js.map +1 -0
- package/dist/src/registry/registry.d.ts +117 -0
- package/dist/src/registry/registry.d.ts.map +1 -0
- package/dist/src/registry/registry.js +298 -0
- package/dist/src/registry/registry.js.map +1 -0
- package/dist/src/registry/tool-registry.d.ts +34 -0
- package/dist/src/registry/tool-registry.d.ts.map +1 -0
- package/dist/src/registry/tool-registry.js +178 -0
- package/dist/src/registry/tool-registry.js.map +1 -0
- package/dist/src/tools/__tests__/tool.test.d.ts +2 -0
- package/dist/src/tools/__tests__/tool.test.d.ts.map +1 -0
- package/dist/src/tools/__tests__/tool.test.js +877 -0
- package/dist/src/tools/__tests__/tool.test.js.map +1 -0
- package/dist/src/tools/__tests__/zod-tool.test-d.d.ts +2 -0
- package/dist/src/tools/__tests__/zod-tool.test-d.d.ts.map +1 -0
- package/dist/src/tools/__tests__/zod-tool.test-d.js +227 -0
- package/dist/src/tools/__tests__/zod-tool.test-d.js.map +1 -0
- package/dist/src/tools/__tests__/zod-tool.test.d.ts +2 -0
- package/dist/src/tools/__tests__/zod-tool.test.d.ts.map +1 -0
- package/dist/src/tools/__tests__/zod-tool.test.js +372 -0
- package/dist/src/tools/__tests__/zod-tool.test.js.map +1 -0
- package/dist/src/tools/function-tool.d.ts +146 -0
- package/dist/src/tools/function-tool.d.ts.map +1 -0
- package/dist/src/tools/function-tool.js +188 -0
- package/dist/src/tools/function-tool.js.map +1 -0
- package/dist/src/tools/mcp-tool.d.ts +36 -0
- package/dist/src/tools/mcp-tool.d.ts.map +1 -0
- package/dist/src/tools/mcp-tool.js +78 -0
- package/dist/src/tools/mcp-tool.js.map +1 -0
- package/dist/src/tools/tool.d.ts +167 -0
- package/dist/src/tools/tool.d.ts.map +1 -0
- package/dist/src/tools/tool.js +68 -0
- package/dist/src/tools/tool.js.map +1 -0
- package/dist/src/tools/types.d.ts +62 -0
- package/dist/src/tools/types.d.ts.map +1 -0
- package/dist/src/tools/types.js +2 -0
- package/dist/src/tools/types.js.map +1 -0
- package/dist/src/tools/zod-tool.d.ts +70 -0
- package/dist/src/tools/zod-tool.d.ts.map +1 -0
- package/dist/src/tools/zod-tool.js +149 -0
- package/dist/src/tools/zod-tool.js.map +1 -0
- package/dist/src/types/__tests__/agent.test.d.ts +2 -0
- package/dist/src/types/__tests__/agent.test.d.ts.map +1 -0
- package/dist/src/types/__tests__/agent.test.js +155 -0
- package/dist/src/types/__tests__/agent.test.js.map +1 -0
- package/dist/src/types/__tests__/json.test.d.ts +2 -0
- package/dist/src/types/__tests__/json.test.d.ts.map +1 -0
- package/dist/src/types/__tests__/json.test.js +298 -0
- package/dist/src/types/__tests__/json.test.js.map +1 -0
- package/dist/src/types/__tests__/media.test.d.ts +2 -0
- package/dist/src/types/__tests__/media.test.d.ts.map +1 -0
- package/dist/src/types/__tests__/media.test.js +257 -0
- package/dist/src/types/__tests__/media.test.js.map +1 -0
- package/dist/src/types/__tests__/messages.test.d.ts +2 -0
- package/dist/src/types/__tests__/messages.test.d.ts.map +1 -0
- package/dist/src/types/__tests__/messages.test.js +364 -0
- package/dist/src/types/__tests__/messages.test.js.map +1 -0
- package/dist/src/types/__tests__/validation.test.d.ts +2 -0
- package/dist/src/types/__tests__/validation.test.d.ts.map +1 -0
- package/dist/src/types/__tests__/validation.test.js +30 -0
- package/dist/src/types/__tests__/validation.test.js.map +1 -0
- package/dist/src/types/agent.d.ts +57 -0
- package/dist/src/types/agent.d.ts.map +1 -0
- package/dist/src/types/agent.js +47 -0
- package/dist/src/types/agent.js.map +1 -0
- package/dist/src/types/json.d.ts +55 -0
- package/dist/src/types/json.d.ts.map +1 -0
- package/dist/src/types/json.js +72 -0
- package/dist/src/types/json.js.map +1 -0
- package/dist/src/types/media.d.ts +249 -0
- package/dist/src/types/media.d.ts.map +1 -0
- package/dist/src/types/media.js +173 -0
- package/dist/src/types/media.js.map +1 -0
- package/dist/src/types/messages.d.ts +438 -0
- package/dist/src/types/messages.d.ts.map +1 -0
- package/dist/src/types/messages.js +286 -0
- package/dist/src/types/messages.js.map +1 -0
- package/dist/src/types/validation.d.ts +10 -0
- package/dist/src/types/validation.d.ts.map +1 -0
- package/dist/src/types/validation.js +15 -0
- package/dist/src/types/validation.js.map +1 -0
- package/dist/tools/__tests__/registry.test.d.ts +2 -0
- package/dist/tools/__tests__/registry.test.d.ts.map +1 -0
- package/dist/tools/__tests__/registry.test.js +253 -0
- package/dist/tools/__tests__/registry.test.js.map +1 -0
- package/dist/tools/__tests__/tool.test.d.ts +2 -0
- package/dist/tools/__tests__/tool.test.d.ts.map +1 -0
- package/dist/tools/__tests__/tool.test.js +761 -0
- package/dist/tools/__tests__/tool.test.js.map +1 -0
- package/dist/tools/__tests__/zod-tool.test-d.d.ts +2 -0
- package/dist/tools/__tests__/zod-tool.test-d.d.ts.map +1 -0
- package/dist/tools/__tests__/zod-tool.test-d.js +227 -0
- package/dist/tools/__tests__/zod-tool.test-d.js.map +1 -0
- package/dist/tools/__tests__/zod-tool.test.d.ts +2 -0
- package/dist/tools/__tests__/zod-tool.test.d.ts.map +1 -0
- package/dist/tools/__tests__/zod-tool.test.js +342 -0
- package/dist/tools/__tests__/zod-tool.test.js.map +1 -0
- package/dist/tools/function-tool.d.ts +156 -0
- package/dist/tools/function-tool.d.ts.map +1 -0
- package/dist/tools/function-tool.js +237 -0
- package/dist/tools/function-tool.js.map +1 -0
- package/dist/tools/registry.d.ts +43 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +82 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/tool.d.ts +157 -0
- package/dist/tools/tool.d.ts.map +1 -0
- package/dist/tools/tool.js +2 -0
- package/dist/tools/tool.js.map +1 -0
- package/dist/tools/types.d.ts +119 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/zod-tool.d.ts +70 -0
- package/dist/tools/zod-tool.d.ts.map +1 -0
- package/dist/tools/zod-tool.js +96 -0
- package/dist/tools/zod-tool.js.map +1 -0
- package/dist/types/__tests__/json.test.d.ts +2 -0
- package/dist/types/__tests__/json.test.d.ts.map +1 -0
- package/dist/types/__tests__/json.test.js +129 -0
- package/dist/types/__tests__/json.test.js.map +1 -0
- package/dist/types/__tests__/validation.test.d.ts +2 -0
- package/dist/types/__tests__/validation.test.d.ts.map +1 -0
- package/dist/types/__tests__/validation.test.js +30 -0
- package/dist/types/__tests__/validation.test.js.map +1 -0
- package/dist/types/json.d.ts +45 -0
- package/dist/types/json.d.ts.map +1 -0
- package/dist/types/json.js +17 -0
- package/dist/types/json.js.map +1 -0
- package/dist/types/messages.d.ts +160 -0
- package/dist/types/messages.d.ts.map +1 -0
- package/dist/types/messages.js +2 -0
- package/dist/types/messages.js.map +1 -0
- package/dist/types/validation.d.ts +10 -0
- package/dist/types/validation.d.ts.map +1 -0
- package/dist/types/validation.js +15 -0
- package/dist/types/validation.js.map +1 -0
- package/dist/vended_tools/bash/__tests__/bash.test.d.ts +2 -0
- package/dist/vended_tools/bash/__tests__/bash.test.d.ts.map +1 -0
- package/dist/vended_tools/bash/__tests__/bash.test.js +333 -0
- package/dist/vended_tools/bash/__tests__/bash.test.js.map +1 -0
- package/dist/vended_tools/bash/bash.d.ts +33 -0
- package/dist/vended_tools/bash/bash.d.ts.map +1 -0
- package/dist/vended_tools/bash/bash.js +264 -0
- package/dist/vended_tools/bash/bash.js.map +1 -0
- package/dist/vended_tools/bash/index.d.ts +7 -0
- package/dist/vended_tools/bash/index.d.ts.map +1 -0
- package/dist/vended_tools/bash/index.js +6 -0
- package/dist/vended_tools/bash/index.js.map +1 -0
- package/dist/vended_tools/bash/types.d.ts +65 -0
- package/dist/vended_tools/bash/types.d.ts.map +1 -0
- package/dist/vended_tools/bash/types.js +22 -0
- package/dist/vended_tools/bash/types.js.map +1 -0
- package/dist/vended_tools/file_editor/__tests__/file-editor.test.d.ts +2 -0
- package/dist/vended_tools/file_editor/__tests__/file-editor.test.d.ts.map +1 -0
- package/dist/vended_tools/file_editor/__tests__/file-editor.test.js +359 -0
- package/dist/vended_tools/file_editor/__tests__/file-editor.test.js.map +1 -0
- package/dist/vended_tools/file_editor/file-editor.d.ts +31 -0
- package/dist/vended_tools/file_editor/file-editor.d.ts.map +1 -0
- package/dist/vended_tools/file_editor/file-editor.js +353 -0
- package/dist/vended_tools/file_editor/file-editor.js.map +1 -0
- package/dist/vended_tools/file_editor/index.d.ts +6 -0
- package/dist/vended_tools/file_editor/index.d.ts.map +1 -0
- package/dist/vended_tools/file_editor/index.js +5 -0
- package/dist/vended_tools/file_editor/index.js.map +1 -0
- package/dist/vended_tools/file_editor/types.d.ts +61 -0
- package/dist/vended_tools/file_editor/types.d.ts.map +1 -0
- package/dist/vended_tools/file_editor/types.js +2 -0
- package/dist/vended_tools/file_editor/types.js.map +1 -0
- package/dist/vended_tools/http_request/__tests__/http-request.test.d.ts +2 -0
- package/dist/vended_tools/http_request/__tests__/http-request.test.d.ts.map +1 -0
- package/dist/vended_tools/http_request/__tests__/http-request.test.js +189 -0
- package/dist/vended_tools/http_request/__tests__/http-request.test.js.map +1 -0
- package/dist/vended_tools/http_request/http-request.d.ts +35 -0
- package/dist/vended_tools/http_request/http-request.d.ts.map +1 -0
- package/dist/vended_tools/http_request/http-request.js +95 -0
- package/dist/vended_tools/http_request/http-request.js.map +1 -0
- package/dist/vended_tools/http_request/index.d.ts +6 -0
- package/dist/vended_tools/http_request/index.d.ts.map +1 -0
- package/dist/vended_tools/http_request/index.js +5 -0
- package/dist/vended_tools/http_request/index.js.map +1 -0
- package/dist/vended_tools/http_request/types.d.ts +47 -0
- package/dist/vended_tools/http_request/types.d.ts.map +1 -0
- package/dist/vended_tools/http_request/types.js +2 -0
- package/dist/vended_tools/http_request/types.js.map +1 -0
- package/dist/vended_tools/notebook/__tests__/notebook.test.d.ts +2 -0
- package/dist/vended_tools/notebook/__tests__/notebook.test.d.ts.map +1 -0
- package/dist/vended_tools/notebook/__tests__/notebook.test.js +371 -0
- package/dist/vended_tools/notebook/__tests__/notebook.test.js.map +1 -0
- package/dist/vended_tools/notebook/index.d.ts +6 -0
- package/dist/vended_tools/notebook/index.d.ts.map +1 -0
- package/dist/vended_tools/notebook/index.js +5 -0
- package/dist/vended_tools/notebook/index.js.map +1 -0
- package/dist/vended_tools/notebook/notebook.d.ts +29 -0
- package/dist/vended_tools/notebook/notebook.d.ts.map +1 -0
- package/dist/vended_tools/notebook/notebook.js +215 -0
- package/dist/vended_tools/notebook/notebook.js.map +1 -0
- package/dist/vended_tools/notebook/types.d.ts +79 -0
- package/dist/vended_tools/notebook/types.d.ts.map +1 -0
- package/dist/vended_tools/notebook/types.js +2 -0
- package/dist/vended_tools/notebook/types.js.map +1 -0
- package/package.json +112 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { InvokableTool, ToolContext } from './tool.js';
|
|
2
|
+
import type { JSONValue } from '../types/json.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
/**
|
|
5
|
+
* Configuration for creating a Zod-based tool.
|
|
6
|
+
*
|
|
7
|
+
* @typeParam TInput - Zod schema type for input validation
|
|
8
|
+
* @typeParam TReturn - Return type of the callback function
|
|
9
|
+
*/
|
|
10
|
+
export interface ToolConfig<TInput extends z.ZodType, TReturn extends JSONValue = JSONValue> {
|
|
11
|
+
/** The name of the tool */
|
|
12
|
+
name: string;
|
|
13
|
+
/** A description of what the tool does (optional) */
|
|
14
|
+
description?: string;
|
|
15
|
+
/** Zod schema for input validation and JSON schema generation */
|
|
16
|
+
inputSchema: TInput;
|
|
17
|
+
/**
|
|
18
|
+
* Callback function that implements the tool's functionality.
|
|
19
|
+
*
|
|
20
|
+
* @param input - Validated input matching the Zod schema
|
|
21
|
+
* @param context - Optional execution context
|
|
22
|
+
* @returns The result (can be a value, Promise, or AsyncGenerator)
|
|
23
|
+
*/
|
|
24
|
+
callback: (input: z.infer<TInput>, context?: ToolContext) => AsyncGenerator<unknown, TReturn, never> | Promise<TReturn> | TReturn;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Creates an InvokableTool from a Zod schema and callback function.
|
|
28
|
+
*
|
|
29
|
+
* The tool() function validates input against the schema and generates JSON schema
|
|
30
|
+
* for model providers using Zod v4's built-in z.toJSONSchema() method.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* import { tool } from '@strands-agents/sdk'
|
|
35
|
+
* import { z } from 'zod'
|
|
36
|
+
*
|
|
37
|
+
* const calculator = tool({
|
|
38
|
+
* name: 'calculator',
|
|
39
|
+
* description: 'Performs basic arithmetic',
|
|
40
|
+
* inputSchema: z.object({
|
|
41
|
+
* operation: z.enum(['add', 'subtract', 'multiply', 'divide']),
|
|
42
|
+
* a: z.number(),
|
|
43
|
+
* b: z.number()
|
|
44
|
+
* }),
|
|
45
|
+
* callback: (input) => {
|
|
46
|
+
* switch (input.operation) {
|
|
47
|
+
* case 'add': return input.a + input.b
|
|
48
|
+
* case 'subtract': return input.a - input.b
|
|
49
|
+
* case 'multiply': return input.a * input.b
|
|
50
|
+
* case 'divide': return input.a / input.b
|
|
51
|
+
* }
|
|
52
|
+
* }
|
|
53
|
+
* })
|
|
54
|
+
*
|
|
55
|
+
* // Direct invocation
|
|
56
|
+
* const result = await calculator.invoke({ operation: 'add', a: 5, b: 3 })
|
|
57
|
+
*
|
|
58
|
+
* // Agent usage
|
|
59
|
+
* for await (const event of calculator.stream(context)) {
|
|
60
|
+
* console.log(event)
|
|
61
|
+
* }
|
|
62
|
+
* ```
|
|
63
|
+
*
|
|
64
|
+
* @typeParam TInput - Zod schema type for input validation
|
|
65
|
+
* @typeParam TReturn - Return type of the callback function
|
|
66
|
+
* @param config - Tool configuration
|
|
67
|
+
* @returns An InvokableTool that implements the Tool interface with invoke() method
|
|
68
|
+
*/
|
|
69
|
+
export declare function tool<TInput extends z.ZodType, TReturn extends JSONValue = JSONValue>(config: ToolConfig<TInput, TReturn>): InvokableTool<z.infer<TInput>, TReturn>;
|
|
70
|
+
//# sourceMappingURL=zod-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-tool.d.ts","sourceRoot":"","sources":["../../../src/tools/zod-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAuB,MAAM,WAAW,CAAA;AAGhF,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;;;GAKG;AACH,MAAM,WAAW,UAAU,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,EAAE,OAAO,SAAS,SAAS,GAAG,SAAS;IACzF,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAA;IAEZ,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAA;IAEnB;;;;;;OAMG;IACH,QAAQ,EAAE,CACR,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EACtB,OAAO,CAAC,EAAE,WAAW,KAClB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;CAC1E;AA8HD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,EAAE,OAAO,SAAS,SAAS,GAAG,SAAS,EAClF,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAEzC"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { Tool } from './tool.js';
|
|
2
|
+
import { FunctionTool } from './function-tool.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
/**
|
|
5
|
+
* Internal implementation of a Zod-based tool.
|
|
6
|
+
* Extends Tool abstract class and implements InvokableTool interface.
|
|
7
|
+
*/
|
|
8
|
+
class ZodTool extends Tool {
|
|
9
|
+
/**
|
|
10
|
+
* Internal FunctionTool for delegating stream operations.
|
|
11
|
+
*/
|
|
12
|
+
_functionTool;
|
|
13
|
+
/**
|
|
14
|
+
* Zod schema for input validation.
|
|
15
|
+
*/
|
|
16
|
+
_inputSchema;
|
|
17
|
+
/**
|
|
18
|
+
* User callback function.
|
|
19
|
+
*/
|
|
20
|
+
_callback;
|
|
21
|
+
constructor(config) {
|
|
22
|
+
super();
|
|
23
|
+
const { name, description = '', inputSchema, callback } = config;
|
|
24
|
+
this._inputSchema = inputSchema;
|
|
25
|
+
this._callback = callback;
|
|
26
|
+
// Generate JSON Schema from Zod and strip $schema property to reduce token usage
|
|
27
|
+
const generatedSchema = z.toJSONSchema(inputSchema);
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
29
|
+
const { $schema, ...schemaWithoutMeta } = generatedSchema;
|
|
30
|
+
// Create a FunctionTool with a validation wrapper
|
|
31
|
+
this._functionTool = new FunctionTool({
|
|
32
|
+
name,
|
|
33
|
+
description,
|
|
34
|
+
inputSchema: schemaWithoutMeta,
|
|
35
|
+
callback: (input, toolContext) => {
|
|
36
|
+
// Validate input using Zod schema (throws on validation error)
|
|
37
|
+
const validatedInput = inputSchema.parse(input);
|
|
38
|
+
// Execute user callback with validated input
|
|
39
|
+
return callback(validatedInput, toolContext);
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The unique name of the tool.
|
|
45
|
+
*/
|
|
46
|
+
get name() {
|
|
47
|
+
return this._functionTool.name;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Human-readable description of what the tool does.
|
|
51
|
+
*/
|
|
52
|
+
get description() {
|
|
53
|
+
return this._functionTool.description;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* OpenAPI JSON specification for the tool.
|
|
57
|
+
*/
|
|
58
|
+
get toolSpec() {
|
|
59
|
+
return this._functionTool.toolSpec;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Executes the tool with streaming support.
|
|
63
|
+
* Delegates to internal FunctionTool implementation.
|
|
64
|
+
*
|
|
65
|
+
* @param toolContext - Context information including the tool use request and invocation state
|
|
66
|
+
* @returns Async generator that yields ToolStreamEvents and returns a ToolResultBlock
|
|
67
|
+
*/
|
|
68
|
+
stream(toolContext) {
|
|
69
|
+
return this._functionTool.stream(toolContext);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Invokes the tool directly with type-safe input and returns the unwrapped result.
|
|
73
|
+
*
|
|
74
|
+
* Unlike stream(), this method:
|
|
75
|
+
* - Returns the raw result (not wrapped in ToolResult)
|
|
76
|
+
* - Consumes async generators and returns only the final value
|
|
77
|
+
* - Lets errors throw naturally (not wrapped in error ToolResult)
|
|
78
|
+
*
|
|
79
|
+
* @param input - The input parameters for the tool
|
|
80
|
+
* @param context - Optional tool execution context
|
|
81
|
+
* @returns The unwrapped result
|
|
82
|
+
*/
|
|
83
|
+
async invoke(input, context) {
|
|
84
|
+
// Validate input using Zod schema (throws on validation error)
|
|
85
|
+
const validatedInput = this._inputSchema.parse(input);
|
|
86
|
+
// Execute callback with validated input
|
|
87
|
+
const result = this._callback(validatedInput, context);
|
|
88
|
+
// Handle different return types
|
|
89
|
+
if (result && typeof result === 'object' && Symbol.asyncIterator in result) {
|
|
90
|
+
// AsyncGenerator - consume all yielded values and return the last one
|
|
91
|
+
let lastValue = undefined;
|
|
92
|
+
for await (const value of result) {
|
|
93
|
+
lastValue = value;
|
|
94
|
+
}
|
|
95
|
+
return lastValue;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
// Regular value or Promise - return directly
|
|
99
|
+
return await result;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Creates an InvokableTool from a Zod schema and callback function.
|
|
105
|
+
*
|
|
106
|
+
* The tool() function validates input against the schema and generates JSON schema
|
|
107
|
+
* for model providers using Zod v4's built-in z.toJSONSchema() method.
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```typescript
|
|
111
|
+
* import { tool } from '@strands-agents/sdk'
|
|
112
|
+
* import { z } from 'zod'
|
|
113
|
+
*
|
|
114
|
+
* const calculator = tool({
|
|
115
|
+
* name: 'calculator',
|
|
116
|
+
* description: 'Performs basic arithmetic',
|
|
117
|
+
* inputSchema: z.object({
|
|
118
|
+
* operation: z.enum(['add', 'subtract', 'multiply', 'divide']),
|
|
119
|
+
* a: z.number(),
|
|
120
|
+
* b: z.number()
|
|
121
|
+
* }),
|
|
122
|
+
* callback: (input) => {
|
|
123
|
+
* switch (input.operation) {
|
|
124
|
+
* case 'add': return input.a + input.b
|
|
125
|
+
* case 'subtract': return input.a - input.b
|
|
126
|
+
* case 'multiply': return input.a * input.b
|
|
127
|
+
* case 'divide': return input.a / input.b
|
|
128
|
+
* }
|
|
129
|
+
* }
|
|
130
|
+
* })
|
|
131
|
+
*
|
|
132
|
+
* // Direct invocation
|
|
133
|
+
* const result = await calculator.invoke({ operation: 'add', a: 5, b: 3 })
|
|
134
|
+
*
|
|
135
|
+
* // Agent usage
|
|
136
|
+
* for await (const event of calculator.stream(context)) {
|
|
137
|
+
* console.log(event)
|
|
138
|
+
* }
|
|
139
|
+
* ```
|
|
140
|
+
*
|
|
141
|
+
* @typeParam TInput - Zod schema type for input validation
|
|
142
|
+
* @typeParam TReturn - Return type of the callback function
|
|
143
|
+
* @param config - Tool configuration
|
|
144
|
+
* @returns An InvokableTool that implements the Tool interface with invoke() method
|
|
145
|
+
*/
|
|
146
|
+
export function tool(config) {
|
|
147
|
+
return new ZodTool(config);
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=zod-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-tool.js","sourceRoot":"","sources":["../../../src/tools/zod-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAGhC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA+BvB;;;GAGG;AACH,MAAM,OACJ,SAAQ,IAAI;IAGZ;;OAEG;IACc,aAAa,CAAc;IAE5C;;OAEG;IACc,YAAY,CAAQ;IAErC;;OAEG;IACc,SAAS,CAG+C;IAEzE,YAAY,MAAmC;QAC7C,KAAK,EAAE,CAAA;QACP,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAA;QAEhE,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;QAC/B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;QAEzB,iFAAiF;QACjF,MAAM,eAAe,GAAG,CAAC,CAAC,YAAY,CAAC,WAAW,CAAsC,CAAA;QACxF,6DAA6D;QAC7D,MAAM,EAAE,OAAO,EAAE,GAAG,iBAAiB,EAAE,GAAG,eAAe,CAAA;QAEzD,kDAAkD;QAClD,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CAAC;YACpC,IAAI;YACJ,WAAW;YACX,WAAW,EAAE,iBAA+B;YAC5C,QAAQ,EAAE,CACR,KAAc,EACd,WAAwB,EACsD,EAAE;gBAChF,+DAA+D;gBAC/D,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBAC/C,6CAA6C;gBAC7C,OAAO,QAAQ,CAAC,cAAc,EAAE,WAAW,CAG9B,CAAA;YACf,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAA;IAChC,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAA;IACvC,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAA;IACpC,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,WAAwB;QAC7B,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAC/C,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,MAAM,CAAC,KAAsB,EAAE,OAAqB;QACxD,+DAA+D;QAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAErD,wCAAwC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;QAEtD,gCAAgC;QAChC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,EAAE,CAAC;YAC3E,sEAAsE;YACtE,IAAI,SAAS,GAAwB,SAAS,CAAA;YAC9C,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAqD,EAAE,CAAC;gBAChF,SAAS,GAAG,KAAgB,CAAA;YAC9B,CAAC;YACD,OAAO,SAAoB,CAAA;QAC7B,CAAC;aAAM,CAAC;YACN,6CAA6C;YAC7C,OAAO,MAAM,MAAM,CAAA;QACrB,CAAC;IACH,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,UAAU,IAAI,CAClB,MAAmC;IAEnC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.test.d.ts","sourceRoot":"","sources":["../../../../src/types/__tests__/agent.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { AgentResult } from '../agent.js';
|
|
3
|
+
import { Message } from '../messages.js';
|
|
4
|
+
import { TextBlock, ReasoningBlock, ToolUseBlock, ToolResultBlock, CachePointBlock } from '../messages.js';
|
|
5
|
+
describe('AgentResult', () => {
|
|
6
|
+
describe('toString', () => {
|
|
7
|
+
describe('when content is empty', () => {
|
|
8
|
+
it('returns empty string', () => {
|
|
9
|
+
const message = new Message({
|
|
10
|
+
role: 'assistant',
|
|
11
|
+
content: [],
|
|
12
|
+
});
|
|
13
|
+
const result = new AgentResult({
|
|
14
|
+
stopReason: 'endTurn',
|
|
15
|
+
lastMessage: message,
|
|
16
|
+
});
|
|
17
|
+
expect(result.toString()).toBe('');
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
describe('when content has single TextBlock', () => {
|
|
21
|
+
it('returns the text content', () => {
|
|
22
|
+
const message = new Message({
|
|
23
|
+
role: 'assistant',
|
|
24
|
+
content: [new TextBlock('Hello, world!')],
|
|
25
|
+
});
|
|
26
|
+
const result = new AgentResult({
|
|
27
|
+
stopReason: 'endTurn',
|
|
28
|
+
lastMessage: message,
|
|
29
|
+
});
|
|
30
|
+
expect(result.toString()).toBe('Hello, world!');
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
describe('when content has multiple TextBlocks', () => {
|
|
34
|
+
it('returns all text joined with newlines', () => {
|
|
35
|
+
const message = new Message({
|
|
36
|
+
role: 'assistant',
|
|
37
|
+
content: [new TextBlock('First line'), new TextBlock('Second line'), new TextBlock('Third line')],
|
|
38
|
+
});
|
|
39
|
+
const result = new AgentResult({
|
|
40
|
+
stopReason: 'endTurn',
|
|
41
|
+
lastMessage: message,
|
|
42
|
+
});
|
|
43
|
+
expect(result.toString()).toBe('First line\nSecond line\nThird line');
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
describe('when content has ReasoningBlock with text', () => {
|
|
47
|
+
it('returns the reasoning text with prefix', () => {
|
|
48
|
+
const message = new Message({
|
|
49
|
+
role: 'assistant',
|
|
50
|
+
content: [new ReasoningBlock({ text: 'Let me think about this...' })],
|
|
51
|
+
});
|
|
52
|
+
const result = new AgentResult({
|
|
53
|
+
stopReason: 'endTurn',
|
|
54
|
+
lastMessage: message,
|
|
55
|
+
});
|
|
56
|
+
expect(result.toString()).toBe('💠Reasoning:\n Let me think about this...');
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
describe('when content has ReasoningBlock without text', () => {
|
|
60
|
+
it('returns empty string (reasoning block is skipped)', () => {
|
|
61
|
+
const message = new Message({
|
|
62
|
+
role: 'assistant',
|
|
63
|
+
content: [new ReasoningBlock({ signature: 'abc123' })],
|
|
64
|
+
});
|
|
65
|
+
const result = new AgentResult({
|
|
66
|
+
stopReason: 'endTurn',
|
|
67
|
+
lastMessage: message,
|
|
68
|
+
});
|
|
69
|
+
expect(result.toString()).toBe('');
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
describe('when content has mixed TextBlock and ReasoningBlock', () => {
|
|
73
|
+
it('returns all text joined with newlines', () => {
|
|
74
|
+
const message = new Message({
|
|
75
|
+
role: 'assistant',
|
|
76
|
+
content: [
|
|
77
|
+
new TextBlock('Here is my response.'),
|
|
78
|
+
new ReasoningBlock({ text: 'I reasoned carefully.' }),
|
|
79
|
+
new TextBlock('Additional context.'),
|
|
80
|
+
],
|
|
81
|
+
});
|
|
82
|
+
const result = new AgentResult({
|
|
83
|
+
stopReason: 'endTurn',
|
|
84
|
+
lastMessage: message,
|
|
85
|
+
});
|
|
86
|
+
expect(result.toString()).toBe('Here is my response.\n💠Reasoning:\n I reasoned carefully.\nAdditional context.');
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
describe('when content has only non-text blocks', () => {
|
|
90
|
+
it('returns empty string', () => {
|
|
91
|
+
const message = new Message({
|
|
92
|
+
role: 'assistant',
|
|
93
|
+
content: [
|
|
94
|
+
new ToolUseBlock({ name: 'calc', toolUseId: 'id-1', input: { a: 1, b: 2 } }),
|
|
95
|
+
new ToolResultBlock({
|
|
96
|
+
toolUseId: 'id-1',
|
|
97
|
+
status: 'success',
|
|
98
|
+
content: [new TextBlock('3')],
|
|
99
|
+
}),
|
|
100
|
+
new CachePointBlock({ cacheType: 'default' }),
|
|
101
|
+
],
|
|
102
|
+
});
|
|
103
|
+
const result = new AgentResult({
|
|
104
|
+
stopReason: 'toolUse',
|
|
105
|
+
lastMessage: message,
|
|
106
|
+
});
|
|
107
|
+
expect(result.toString()).toBe('');
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
describe('when content has mixed text and non-text blocks', () => {
|
|
111
|
+
it('returns only text from TextBlock and ReasoningBlock', () => {
|
|
112
|
+
const message = new Message({
|
|
113
|
+
role: 'assistant',
|
|
114
|
+
content: [
|
|
115
|
+
new TextBlock('Before tool'),
|
|
116
|
+
new ToolUseBlock({ name: 'calc', toolUseId: 'id-1', input: { a: 1, b: 2 } }),
|
|
117
|
+
new ReasoningBlock({ text: 'Thinking...' }),
|
|
118
|
+
new CachePointBlock({ cacheType: 'default' }),
|
|
119
|
+
new TextBlock('After tool'),
|
|
120
|
+
],
|
|
121
|
+
});
|
|
122
|
+
const result = new AgentResult({
|
|
123
|
+
stopReason: 'toolUse',
|
|
124
|
+
lastMessage: message,
|
|
125
|
+
});
|
|
126
|
+
expect(result.toString()).toBe('Before tool\n💠Reasoning:\n Thinking...\nAfter tool');
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
describe('when called implicitly', () => {
|
|
130
|
+
it('works with String() conversion', () => {
|
|
131
|
+
const message = new Message({
|
|
132
|
+
role: 'assistant',
|
|
133
|
+
content: [new TextBlock('Hello')],
|
|
134
|
+
});
|
|
135
|
+
const result = new AgentResult({
|
|
136
|
+
stopReason: 'endTurn',
|
|
137
|
+
lastMessage: message,
|
|
138
|
+
});
|
|
139
|
+
expect(String(result)).toBe('Hello');
|
|
140
|
+
});
|
|
141
|
+
it('works with template literals', () => {
|
|
142
|
+
const message = new Message({
|
|
143
|
+
role: 'assistant',
|
|
144
|
+
content: [new TextBlock('World')],
|
|
145
|
+
});
|
|
146
|
+
const result = new AgentResult({
|
|
147
|
+
stopReason: 'endTurn',
|
|
148
|
+
lastMessage: message,
|
|
149
|
+
});
|
|
150
|
+
expect(`Response: ${result}`).toBe('Response: World');
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
//# sourceMappingURL=agent.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.test.js","sourceRoot":"","sources":["../../../../src/types/__tests__/agent.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.test.d.ts","sourceRoot":"","sources":["../../../../src/types/__tests__/json.test.ts"],"names":[],"mappings":""}
|