@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,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test message model provider for simplified agent testing.
|
|
3
|
+
* This module provides a content-focused test model that generates appropriate
|
|
4
|
+
* ModelStreamEvents from ContentBlock objects, eliminating the need to manually
|
|
5
|
+
* construct events in tests.
|
|
6
|
+
*/
|
|
7
|
+
import { Model } from '../models/model.js';
|
|
8
|
+
/**
|
|
9
|
+
* Test model provider that operates at the content block level.
|
|
10
|
+
* Simplifies agent loop tests by allowing specification of content blocks
|
|
11
|
+
* instead of manually yielding individual ModelStreamEvents.
|
|
12
|
+
*/
|
|
13
|
+
export class MockMessageModel extends Model {
|
|
14
|
+
_turns;
|
|
15
|
+
_currentTurnIndex;
|
|
16
|
+
_config;
|
|
17
|
+
/**
|
|
18
|
+
* Creates a new MockMessageModel.
|
|
19
|
+
*/
|
|
20
|
+
constructor() {
|
|
21
|
+
super();
|
|
22
|
+
this._config = { modelId: 'test-model' };
|
|
23
|
+
this._currentTurnIndex = 0;
|
|
24
|
+
this._turns = [];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The number of turns that have been invoked thus far.
|
|
28
|
+
*/
|
|
29
|
+
get callCount() {
|
|
30
|
+
return this._currentTurnIndex;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Adds a turn to the test sequence.
|
|
34
|
+
* Returns this for method chaining.
|
|
35
|
+
*
|
|
36
|
+
* @param turn - ContentBlock, ContentBlock[], or Error to add
|
|
37
|
+
* @param stopReason - Optional explicit stopReason (overrides auto-derivation)
|
|
38
|
+
* @returns This provider for chaining
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* provider
|
|
43
|
+
* .addTurn({ type: 'textBlock', text: 'Hello' }) // Single block
|
|
44
|
+
* .addTurn([{ type: 'toolUseBlock', ... }]) // Array of blocks
|
|
45
|
+
* .addTurn({ type: 'textBlock', text: 'Done' }, 'maxTokens') // Explicit stopReason
|
|
46
|
+
* .addTurn(new Error('Failed')) // Error turn
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
addTurn(turn, stopReason) {
|
|
50
|
+
this._turns.push(this._createTurn(turn, stopReason));
|
|
51
|
+
return this;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Updates the model configuration.
|
|
55
|
+
*
|
|
56
|
+
* @param modelConfig - Configuration to merge with existing config
|
|
57
|
+
*/
|
|
58
|
+
updateConfig(modelConfig) {
|
|
59
|
+
this._config = { ...this._config, ...modelConfig };
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Retrieves the current model configuration.
|
|
63
|
+
*
|
|
64
|
+
* @returns Current configuration object
|
|
65
|
+
*/
|
|
66
|
+
getConfig() {
|
|
67
|
+
return this._config;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Streams a conversation with the model.
|
|
71
|
+
* Generates appropriate ModelStreamEvents from the content blocks.
|
|
72
|
+
*
|
|
73
|
+
* Single-turn behavior: Reuses the same turn indefinitely
|
|
74
|
+
* Multi-turn behavior: Advances through turns and throws when exhausted
|
|
75
|
+
*
|
|
76
|
+
* @param _messages - Conversation messages (ignored by test provider)
|
|
77
|
+
* @param _options - Streaming options (ignored by test provider)
|
|
78
|
+
* @returns Async iterable of ModelStreamEvents
|
|
79
|
+
*/
|
|
80
|
+
async *stream(_messages, _options) {
|
|
81
|
+
// Determine which turn index to use
|
|
82
|
+
// For single turn, always use 0. For multiple turns, use current index
|
|
83
|
+
const turnIndex = this._turns.length === 1 ? 0 : this._currentTurnIndex;
|
|
84
|
+
// Advance turn index immediately for multi-turn scenarios
|
|
85
|
+
// This ensures that the next call to stream() will use the next turn
|
|
86
|
+
if (this._turns.length > 1) {
|
|
87
|
+
this._currentTurnIndex++;
|
|
88
|
+
}
|
|
89
|
+
// Check if we've exhausted all turns (after potential increment)
|
|
90
|
+
if (turnIndex >= this._turns.length) {
|
|
91
|
+
throw new Error('All turns have been consumed');
|
|
92
|
+
}
|
|
93
|
+
// Get the current turn
|
|
94
|
+
const turn = this._turns[turnIndex];
|
|
95
|
+
// Handle error turns
|
|
96
|
+
if (turn.type === 'error') {
|
|
97
|
+
throw turn.error;
|
|
98
|
+
}
|
|
99
|
+
// Generate events for content turn
|
|
100
|
+
yield* this._generateEventsForContent(turn.content, turn.stopReason);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Generates appropriate ModelStreamEvents for content blocks.
|
|
104
|
+
* All messages have role 'assistant' since this is for testing model responses.
|
|
105
|
+
*/
|
|
106
|
+
async *_generateEventsForContent(content, stopReason) {
|
|
107
|
+
// Yield message start event (always assistant role)
|
|
108
|
+
yield { type: 'modelMessageStartEvent', role: 'assistant' };
|
|
109
|
+
// Yield events for each content block
|
|
110
|
+
for (let i = 0; i < content.length; i++) {
|
|
111
|
+
const block = content[i];
|
|
112
|
+
yield* this._generateEventsForBlock(block);
|
|
113
|
+
}
|
|
114
|
+
// Yield message stop event
|
|
115
|
+
yield { type: 'modelMessageStopEvent', stopReason };
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Creates a Turn object from ContentBlock(s) or Error.
|
|
119
|
+
*/
|
|
120
|
+
_createTurn(turn, explicitStopReason) {
|
|
121
|
+
if (turn instanceof Error) {
|
|
122
|
+
return { type: 'error', error: turn };
|
|
123
|
+
}
|
|
124
|
+
// Normalize to array
|
|
125
|
+
const content = Array.isArray(turn) ? turn : [turn];
|
|
126
|
+
return {
|
|
127
|
+
type: 'content',
|
|
128
|
+
content,
|
|
129
|
+
stopReason: explicitStopReason ?? this._deriveStopReason(content),
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Auto-derives stopReason from content blocks.
|
|
134
|
+
* Returns 'toolUse' if content contains any ToolUseBlock, otherwise 'endTurn'.
|
|
135
|
+
*/
|
|
136
|
+
_deriveStopReason(content) {
|
|
137
|
+
const hasToolUse = content.some((block) => block.type === 'toolUseBlock');
|
|
138
|
+
return hasToolUse ? 'toolUse' : 'endTurn';
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Generates appropriate ModelStreamEvents for a message.
|
|
142
|
+
*/
|
|
143
|
+
async *_generateEventsForMessage(message, stopReason) {
|
|
144
|
+
// Yield message start event
|
|
145
|
+
yield { type: 'modelMessageStartEvent', role: message.role };
|
|
146
|
+
// Yield events for each content block
|
|
147
|
+
for (let i = 0; i < message.content.length; i++) {
|
|
148
|
+
const block = message.content[i];
|
|
149
|
+
yield* this._generateEventsForBlock(block);
|
|
150
|
+
}
|
|
151
|
+
// Yield message stop event
|
|
152
|
+
yield { type: 'modelMessageStopEvent', stopReason };
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Generates appropriate ModelStreamEvents for a content block.
|
|
156
|
+
*/
|
|
157
|
+
async *_generateEventsForBlock(block) {
|
|
158
|
+
switch (block.type) {
|
|
159
|
+
case 'textBlock':
|
|
160
|
+
yield { type: 'modelContentBlockStartEvent' };
|
|
161
|
+
yield {
|
|
162
|
+
type: 'modelContentBlockDeltaEvent',
|
|
163
|
+
delta: { type: 'textDelta', text: block.text },
|
|
164
|
+
};
|
|
165
|
+
yield { type: 'modelContentBlockStopEvent' };
|
|
166
|
+
break;
|
|
167
|
+
case 'toolUseBlock':
|
|
168
|
+
yield {
|
|
169
|
+
type: 'modelContentBlockStartEvent',
|
|
170
|
+
start: { type: 'toolUseStart', name: block.name, toolUseId: block.toolUseId },
|
|
171
|
+
};
|
|
172
|
+
yield {
|
|
173
|
+
type: 'modelContentBlockDeltaEvent',
|
|
174
|
+
delta: { type: 'toolUseInputDelta', input: JSON.stringify(block.input) },
|
|
175
|
+
};
|
|
176
|
+
yield { type: 'modelContentBlockStopEvent' };
|
|
177
|
+
break;
|
|
178
|
+
case 'reasoningBlock': {
|
|
179
|
+
yield { type: 'modelContentBlockStartEvent' };
|
|
180
|
+
// Build delta object with only defined properties
|
|
181
|
+
const delta = {
|
|
182
|
+
type: 'reasoningContentDelta',
|
|
183
|
+
};
|
|
184
|
+
if (block.text !== undefined) {
|
|
185
|
+
delta.text = block.text;
|
|
186
|
+
}
|
|
187
|
+
if (block.signature !== undefined) {
|
|
188
|
+
delta.signature = block.signature;
|
|
189
|
+
}
|
|
190
|
+
if (block.redactedContent !== undefined) {
|
|
191
|
+
delta.redactedContent = block.redactedContent;
|
|
192
|
+
}
|
|
193
|
+
yield {
|
|
194
|
+
type: 'modelContentBlockDeltaEvent',
|
|
195
|
+
delta,
|
|
196
|
+
};
|
|
197
|
+
yield { type: 'modelContentBlockStopEvent' };
|
|
198
|
+
break;
|
|
199
|
+
}
|
|
200
|
+
case 'cachePointBlock':
|
|
201
|
+
// CachePointBlock doesn't generate delta events
|
|
202
|
+
yield { type: 'modelContentBlockStartEvent' };
|
|
203
|
+
yield { type: 'modelContentBlockStopEvent' };
|
|
204
|
+
break;
|
|
205
|
+
case 'toolResultBlock':
|
|
206
|
+
// ToolResultBlock appears in user messages and doesn't generate model events
|
|
207
|
+
// This shouldn't normally be in assistant messages, but we'll handle it gracefully
|
|
208
|
+
break;
|
|
209
|
+
case 'guardContentBlock':
|
|
210
|
+
// GuardContentBlock is handled by guardrails and doesn't generate model events
|
|
211
|
+
// This is typically used in system prompts or message content for guardrail evaluation
|
|
212
|
+
break;
|
|
213
|
+
case 'imageBlock':
|
|
214
|
+
case 'videoBlock':
|
|
215
|
+
case 'documentBlock':
|
|
216
|
+
// These blocks don't generate events in mock - just skip them
|
|
217
|
+
break;
|
|
218
|
+
default: {
|
|
219
|
+
// Exhaustive check
|
|
220
|
+
const _exhaustive = block;
|
|
221
|
+
throw new Error(`Unknown content block type: ${_exhaustive.type}`);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=mock-message-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-message-model.js","sourceRoot":"","sources":["../../../src/__fixtures__/mock-message-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test fixtures and helpers for Model testing.
|
|
3
|
+
* This module provides utilities for testing Model implementations without
|
|
4
|
+
* requiring actual API clients.
|
|
5
|
+
*/
|
|
6
|
+
import { Model } from '../models/model.js';
|
|
7
|
+
import type { Message } from '../types/messages.js';
|
|
8
|
+
import type { ModelStreamEvent } from '../models/streaming.js';
|
|
9
|
+
import type { BaseModelConfig, StreamOptions } from '../models/model.js';
|
|
10
|
+
/**
|
|
11
|
+
* Test model provider that returns a predefined stream of events.
|
|
12
|
+
* Useful for testing Model.streamAggregated() and other Model functionality
|
|
13
|
+
* without requiring actual API calls.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const provider = new TestModelProvider(async function* () {
|
|
18
|
+
* yield { type: 'modelMessageStartEvent', role: 'assistant' }
|
|
19
|
+
* yield { type: 'modelContentBlockStartEvent' }
|
|
20
|
+
* yield { type: 'modelContentBlockDeltaEvent', delta: { type: 'textDelta', text: 'Hello' } }
|
|
21
|
+
* yield { type: 'modelContentBlockStopEvent' }
|
|
22
|
+
* yield { type: 'modelMessageStopEvent', stopReason: 'endTurn' }
|
|
23
|
+
* })
|
|
24
|
+
*
|
|
25
|
+
* const message = await collectAggregated(provider.streamAggregated(messages))
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare class TestModelProvider extends Model<BaseModelConfig> {
|
|
29
|
+
private eventGenerator;
|
|
30
|
+
private config;
|
|
31
|
+
constructor(eventGenerator?: () => AsyncGenerator<ModelStreamEvent>);
|
|
32
|
+
setEventGenerator(eventGenerator: () => AsyncGenerator<ModelStreamEvent>): void;
|
|
33
|
+
updateConfig(modelConfig: BaseModelConfig): void;
|
|
34
|
+
getConfig(): BaseModelConfig;
|
|
35
|
+
stream(_messages: Message[], _options?: StreamOptions): AsyncGenerator<ModelStreamEvent>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Helper function to collect events and result from an async generator.
|
|
39
|
+
* Properly handles AsyncGenerator where the final value is returned
|
|
40
|
+
* rather than yielded.
|
|
41
|
+
*
|
|
42
|
+
* @param generator - An async generator that yields items and returns a final result
|
|
43
|
+
* @returns Object with items array (yielded values) and result (return value)
|
|
44
|
+
*/
|
|
45
|
+
export declare function collectGenerator<E, R>(generator: AsyncGenerator<E, R, never>): Promise<{
|
|
46
|
+
items: E[];
|
|
47
|
+
result: R;
|
|
48
|
+
}>;
|
|
49
|
+
/**
|
|
50
|
+
* Helper function to collect all items from an async iterator.
|
|
51
|
+
*
|
|
52
|
+
* @param stream - An async iterable that yields items
|
|
53
|
+
* @returns Array of all yielded items
|
|
54
|
+
*/
|
|
55
|
+
export declare function collectIterator<T>(stream: AsyncIterable<T>): Promise<T[]>;
|
|
56
|
+
//# sourceMappingURL=model-test-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-test-helpers.d.ts","sourceRoot":"","sources":["../../../src/__fixtures__/model-test-helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAExE;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,iBAAkB,SAAQ,KAAK,CAAC,eAAe,CAAC;IAC3D,OAAO,CAAC,cAAc,CAAsD;IAC5E,OAAO,CAAC,MAAM,CAA6C;gBAE/C,cAAc,CAAC,EAAE,MAAM,cAAc,CAAC,gBAAgB,CAAC;IAKnE,iBAAiB,CAAC,cAAc,EAAE,MAAM,cAAc,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAI/E,YAAY,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI;IAIhD,SAAS,IAAI,eAAe;IAIrB,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,cAAc,CAAC,gBAAgB,CAAC;CAMhG;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EACzC,SAAS,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GACrC,OAAO,CAAC;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC,CAgBpC;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAM/E"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test fixtures and helpers for Model testing.
|
|
3
|
+
* This module provides utilities for testing Model implementations without
|
|
4
|
+
* requiring actual API clients.
|
|
5
|
+
*/
|
|
6
|
+
import { Model } from '../models/model.js';
|
|
7
|
+
/**
|
|
8
|
+
* Test model provider that returns a predefined stream of events.
|
|
9
|
+
* Useful for testing Model.streamAggregated() and other Model functionality
|
|
10
|
+
* without requiring actual API calls.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const provider = new TestModelProvider(async function* () {
|
|
15
|
+
* yield { type: 'modelMessageStartEvent', role: 'assistant' }
|
|
16
|
+
* yield { type: 'modelContentBlockStartEvent' }
|
|
17
|
+
* yield { type: 'modelContentBlockDeltaEvent', delta: { type: 'textDelta', text: 'Hello' } }
|
|
18
|
+
* yield { type: 'modelContentBlockStopEvent' }
|
|
19
|
+
* yield { type: 'modelMessageStopEvent', stopReason: 'endTurn' }
|
|
20
|
+
* })
|
|
21
|
+
*
|
|
22
|
+
* const message = await collectAggregated(provider.streamAggregated(messages))
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export class TestModelProvider extends Model {
|
|
26
|
+
eventGenerator;
|
|
27
|
+
config = { modelId: 'test-model' };
|
|
28
|
+
constructor(eventGenerator) {
|
|
29
|
+
super();
|
|
30
|
+
this.eventGenerator = eventGenerator;
|
|
31
|
+
}
|
|
32
|
+
setEventGenerator(eventGenerator) {
|
|
33
|
+
this.eventGenerator = eventGenerator;
|
|
34
|
+
}
|
|
35
|
+
updateConfig(modelConfig) {
|
|
36
|
+
this.config = { ...this.config, ...modelConfig };
|
|
37
|
+
}
|
|
38
|
+
getConfig() {
|
|
39
|
+
return this.config;
|
|
40
|
+
}
|
|
41
|
+
async *stream(_messages, _options) {
|
|
42
|
+
if (!this.eventGenerator) {
|
|
43
|
+
throw new Error('Event generator not set');
|
|
44
|
+
}
|
|
45
|
+
yield* this.eventGenerator();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Helper function to collect events and result from an async generator.
|
|
50
|
+
* Properly handles AsyncGenerator where the final value is returned
|
|
51
|
+
* rather than yielded.
|
|
52
|
+
*
|
|
53
|
+
* @param generator - An async generator that yields items and returns a final result
|
|
54
|
+
* @returns Object with items array (yielded values) and result (return value)
|
|
55
|
+
*/
|
|
56
|
+
export async function collectGenerator(generator) {
|
|
57
|
+
const items = [];
|
|
58
|
+
let done = false;
|
|
59
|
+
let result;
|
|
60
|
+
while (!done) {
|
|
61
|
+
const { value, done: isDone } = await generator.next();
|
|
62
|
+
done = isDone ?? false;
|
|
63
|
+
if (!done) {
|
|
64
|
+
items.push(value);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
result = value;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return { items, result: result };
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Helper function to collect all items from an async iterator.
|
|
74
|
+
*
|
|
75
|
+
* @param stream - An async iterable that yields items
|
|
76
|
+
* @returns Array of all yielded items
|
|
77
|
+
*/
|
|
78
|
+
export async function collectIterator(stream) {
|
|
79
|
+
const items = [];
|
|
80
|
+
for await (const item of stream) {
|
|
81
|
+
items.push(item);
|
|
82
|
+
}
|
|
83
|
+
return items;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=model-test-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-test-helpers.js","sourceRoot":"","sources":["../../../src/__fixtures__/model-test-helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAK1C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAsB;IACnD,cAAc,CAAsD;IACpE,MAAM,GAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,CAAA;IAE3D,YAAY,cAAuD;QACjE,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;IACtC,CAAC;IAED,iBAAiB,CAAC,cAAsD;QACtE,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;IACtC,CAAC;IAED,YAAY,CAAC,WAA4B;QACvC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,EAAE,CAAA;IAClD,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,SAAoB,EAAE,QAAwB;QAC1D,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAC5C,CAAC;QACD,KAAK,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAA;IAC9B,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,SAAsC;IAEtC,MAAM,KAAK,GAAQ,EAAE,CAAA;IACrB,IAAI,IAAI,GAAG,KAAK,CAAA;IAChB,IAAI,MAAqB,CAAA;IAEzB,OAAO,CAAC,IAAI,EAAE,CAAC;QACb,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;QACtD,IAAI,GAAG,MAAM,IAAI,KAAK,CAAA;QACtB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,KAAU,CAAC,CAAA;QACxB,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,KAAU,CAAA;QACrB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAO,EAAE,CAAA;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAI,MAAwB;IAC/D,MAAM,KAAK,GAAQ,EAAE,CAAA;IACrB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test fixtures and helpers for Tool testing.
|
|
3
|
+
* This module provides utilities for testing Tool implementations.
|
|
4
|
+
*/
|
|
5
|
+
import type { Tool, ToolContext } from '../tools/tool.js';
|
|
6
|
+
import { ToolResultBlock } from '../types/messages.js';
|
|
7
|
+
import type { JSONValue } from '../types/json.js';
|
|
8
|
+
/**
|
|
9
|
+
* Helper to create a mock ToolContext for testing.
|
|
10
|
+
*
|
|
11
|
+
* @param toolUse - The tool use request
|
|
12
|
+
* @param agentState - Optional initial agent state
|
|
13
|
+
* @returns Mock ToolContext object
|
|
14
|
+
*/
|
|
15
|
+
export declare function createMockContext(toolUse: {
|
|
16
|
+
name: string;
|
|
17
|
+
toolUseId: string;
|
|
18
|
+
input: JSONValue;
|
|
19
|
+
}, agentState?: Record<string, JSONValue>): ToolContext;
|
|
20
|
+
/**
|
|
21
|
+
* Helper to create a mock tool for testing.
|
|
22
|
+
*
|
|
23
|
+
* @param name - The name of the mock tool
|
|
24
|
+
* @param resultFn - Function that returns a ToolResultBlock or an AsyncGenerator that yields nothing and returns a ToolResultBlock
|
|
25
|
+
* @returns Mock Tool object
|
|
26
|
+
*/
|
|
27
|
+
export declare function createMockTool(name: string, resultFn: () => ToolResultBlock | AsyncGenerator<never, ToolResultBlock, never>): Tool;
|
|
28
|
+
/**
|
|
29
|
+
* Helper to create a simple mock tool with minimal configuration for testing.
|
|
30
|
+
* This is a lighter-weight version of createMockTool for scenarios where the tool's
|
|
31
|
+
* execution behavior is not relevant to the test.
|
|
32
|
+
*
|
|
33
|
+
* @param name - Optional name of the mock tool (defaults to a random UUID)
|
|
34
|
+
* @returns Mock Tool object
|
|
35
|
+
*/
|
|
36
|
+
export declare function createRandomTool(name?: string): Tool;
|
|
37
|
+
//# sourceMappingURL=tool-helpers.d.ts.map
|
|
@@ -0,0 +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;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGjD;;;;;;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,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GACrC,WAAW,CAQb;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,CAAC,GAC9E,IAAI,CA8BN;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAWpD"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test fixtures and helpers for Tool testing.
|
|
3
|
+
* This module provides utilities for testing Tool implementations.
|
|
4
|
+
*/
|
|
5
|
+
import { ToolResultBlock } from '../types/messages.js';
|
|
6
|
+
import { AgentState } from '../agent/state.js';
|
|
7
|
+
/**
|
|
8
|
+
* Helper to create a mock ToolContext for testing.
|
|
9
|
+
*
|
|
10
|
+
* @param toolUse - The tool use request
|
|
11
|
+
* @param agentState - Optional initial agent state
|
|
12
|
+
* @returns Mock ToolContext object
|
|
13
|
+
*/
|
|
14
|
+
export function createMockContext(toolUse, agentState) {
|
|
15
|
+
return {
|
|
16
|
+
toolUse,
|
|
17
|
+
agent: {
|
|
18
|
+
state: new AgentState(agentState),
|
|
19
|
+
messages: [],
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Helper to create a mock tool for testing.
|
|
25
|
+
*
|
|
26
|
+
* @param name - The name of the mock tool
|
|
27
|
+
* @param resultFn - Function that returns a ToolResultBlock or an AsyncGenerator that yields nothing and returns a ToolResultBlock
|
|
28
|
+
* @returns Mock Tool object
|
|
29
|
+
*/
|
|
30
|
+
export function createMockTool(name, resultFn) {
|
|
31
|
+
return {
|
|
32
|
+
name,
|
|
33
|
+
description: `Mock tool ${name}`,
|
|
34
|
+
toolSpec: {
|
|
35
|
+
name,
|
|
36
|
+
description: `Mock tool ${name}`,
|
|
37
|
+
inputSchema: { type: 'object', properties: {} },
|
|
38
|
+
},
|
|
39
|
+
// eslint-disable-next-line require-yield
|
|
40
|
+
async *stream(_context) {
|
|
41
|
+
const result = resultFn();
|
|
42
|
+
if (typeof result === 'object' && result !== null && Symbol.asyncIterator in result) {
|
|
43
|
+
// For generators that throw errors
|
|
44
|
+
const gen = result;
|
|
45
|
+
let done = false;
|
|
46
|
+
while (!done) {
|
|
47
|
+
const { value, done: isDone } = await gen.next();
|
|
48
|
+
done = isDone ?? false;
|
|
49
|
+
if (done) {
|
|
50
|
+
return value;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// This should never be reached but TypeScript needs a return
|
|
54
|
+
throw new Error('Generator ended unexpectedly');
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Helper to create a simple mock tool with minimal configuration for testing.
|
|
64
|
+
* This is a lighter-weight version of createMockTool for scenarios where the tool's
|
|
65
|
+
* execution behavior is not relevant to the test.
|
|
66
|
+
*
|
|
67
|
+
* @param name - Optional name of the mock tool (defaults to a random UUID)
|
|
68
|
+
* @returns Mock Tool object
|
|
69
|
+
*/
|
|
70
|
+
export function createRandomTool(name) {
|
|
71
|
+
const toolName = name ?? globalThis.crypto.randomUUID();
|
|
72
|
+
return createMockTool(toolName, () => new ToolResultBlock({
|
|
73
|
+
toolUseId: 'test-id',
|
|
74
|
+
status: 'success',
|
|
75
|
+
content: [],
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=tool-helpers.js.map
|
|
@@ -0,0 +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;AAE9C;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAA8D,EAC9D,UAAsC;IAEtC,OAAO;QACL,OAAO;QACP,KAAK,EAAE;YACL,KAAK,EAAE,IAAI,UAAU,CAAC,UAAU,CAAC;YACjC,QAAQ,EAAE,EAAE;SACb;KACF,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAY,EACZ,QAA+E;IAE/E,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 @@
|
|
|
1
|
+
{"version":3,"file":"errors.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/errors.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { ContextWindowOverflowError, normalizeError } from '../errors.js';
|
|
3
|
+
describe('ContextWindowOverflowError', () => {
|
|
4
|
+
describe('when instantiated with a message', () => {
|
|
5
|
+
it('creates an error with the correct message', () => {
|
|
6
|
+
const message = 'Context window overflow occurred';
|
|
7
|
+
const error = new ContextWindowOverflowError(message);
|
|
8
|
+
expect(error.message).toBe(message);
|
|
9
|
+
});
|
|
10
|
+
it('has the correct error name', () => {
|
|
11
|
+
const error = new ContextWindowOverflowError('test');
|
|
12
|
+
expect(error.name).toBe('ContextWindowOverflowError');
|
|
13
|
+
});
|
|
14
|
+
it('is an instance of Error', () => {
|
|
15
|
+
const error = new ContextWindowOverflowError('test');
|
|
16
|
+
expect(error).toBeInstanceOf(Error);
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
describe('normalizeError', () => {
|
|
21
|
+
describe('when given an Error instance', () => {
|
|
22
|
+
it('returns the same Error instance', () => {
|
|
23
|
+
const error = new Error('test error');
|
|
24
|
+
const result = normalizeError(error);
|
|
25
|
+
expect(result).toBe(error);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
describe('when given a string', () => {
|
|
29
|
+
it('wraps it in an Error', () => {
|
|
30
|
+
const result = normalizeError('test error');
|
|
31
|
+
expect(result).toBeInstanceOf(Error);
|
|
32
|
+
expect(result.message).toBe('test error');
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
describe('when given a number', () => {
|
|
36
|
+
it('converts it to string and wraps in Error', () => {
|
|
37
|
+
const result = normalizeError(42);
|
|
38
|
+
expect(result).toBeInstanceOf(Error);
|
|
39
|
+
expect(result.message).toBe('42');
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
describe('when given an object', () => {
|
|
43
|
+
it('converts it to string and wraps in Error', () => {
|
|
44
|
+
const result = normalizeError({ code: 'ERR_TEST' });
|
|
45
|
+
expect(result).toBeInstanceOf(Error);
|
|
46
|
+
expect(result.message).toBe('[object Object]');
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
describe('when given null', () => {
|
|
50
|
+
it('converts it to string and wraps in Error', () => {
|
|
51
|
+
const result = normalizeError(null);
|
|
52
|
+
expect(result).toBeInstanceOf(Error);
|
|
53
|
+
expect(result.message).toBe('null');
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
describe('when given undefined', () => {
|
|
57
|
+
it('converts it to string and wraps in Error', () => {
|
|
58
|
+
const result = normalizeError(undefined);
|
|
59
|
+
expect(result).toBeInstanceOf(Error);
|
|
60
|
+
expect(result.message).toBe('undefined');
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=errors.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../../../src/__tests__/errors.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAEzE,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAChD,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,OAAO,GAAG,kCAAkC,CAAA;YAClD,MAAM,KAAK,GAAG,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAA;YAErD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,KAAK,GAAG,IAAI,0BAA0B,CAAC,MAAM,CAAC,CAAA;YAEpD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;QACvD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;YACjC,MAAM,KAAK,GAAG,IAAI,0BAA0B,CAAC,MAAM,CAAC,CAAA;YAEpD,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC5C,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;YACrC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;YAEpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,MAAM,MAAM,GAAG,cAAc,CAAC,YAAY,CAAC,CAAA;YAE3C,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;YACpC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,CAAC,CAAA;YAEjC,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;YACpC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;YAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;YACpC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;YAEnC,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;YACpC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;YAExC,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;YACpC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/index.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import * as SDK from '../index.js';
|
|
3
|
+
describe('index', () => {
|
|
4
|
+
describe('when importing from main entry point', () => {
|
|
5
|
+
it('exports error classes', () => {
|
|
6
|
+
expect(SDK.ContextWindowOverflowError).toBeDefined();
|
|
7
|
+
});
|
|
8
|
+
it('exports BedrockModel', () => {
|
|
9
|
+
expect(SDK.BedrockModel).toBeDefined();
|
|
10
|
+
});
|
|
11
|
+
it('can instantiate BedrockModel', () => {
|
|
12
|
+
const provider = new SDK.BedrockModel({ region: 'us-west-2' });
|
|
13
|
+
expect(provider).toBeInstanceOf(SDK.BedrockModel);
|
|
14
|
+
expect(provider.getConfig()).toBeDefined();
|
|
15
|
+
});
|
|
16
|
+
it('exports all required types', () => {
|
|
17
|
+
// This test ensures all type exports compile correctly
|
|
18
|
+
// If any exports are missing, TypeScript will error
|
|
19
|
+
const _typeCheck = {
|
|
20
|
+
contextError: SDK.ContextWindowOverflowError,
|
|
21
|
+
provider: SDK.BedrockModel,
|
|
22
|
+
};
|
|
23
|
+
expect(_typeCheck).toBeDefined();
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/__tests__/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAElC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;QACpD,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC/B,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,WAAW,EAAE,CAAA;QACtD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAA;QACxC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAA;YAC9D,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YACjD,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;QAC5C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,uDAAuD;YACvD,oDAAoD;YACpD,MAAM,UAAU,GAKZ;gBACF,YAAY,EAAE,GAAG,CAAC,0BAA0B;gBAC5C,QAAQ,EAAE,GAAG,CAAC,YAAY;aAC3B,CAAA;YACD,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAA;QAClC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/mcp.test.ts"],"names":[],"mappings":""}
|