@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,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error types for the Strands Agents TypeScript SDK.
|
|
3
|
+
*
|
|
4
|
+
* These error classes represent specific error conditions that can occur
|
|
5
|
+
* during agent execution and model provider interactions.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Error thrown when input exceeds the model's context window.
|
|
9
|
+
*
|
|
10
|
+
* This error indicates that the combined length of the input (prompt, messages,
|
|
11
|
+
* system prompt, and tool definitions) exceeds the maximum context window size
|
|
12
|
+
* supported by the model.
|
|
13
|
+
*/
|
|
14
|
+
export class ContextWindowOverflowError extends Error {
|
|
15
|
+
/**
|
|
16
|
+
* Creates a new ContextWindowOverflowError.
|
|
17
|
+
*
|
|
18
|
+
* @param message - Error message describing the context overflow
|
|
19
|
+
*/
|
|
20
|
+
constructor(message) {
|
|
21
|
+
super(message);
|
|
22
|
+
this.name = 'ContextWindowOverflowError';
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Error thrown when the model reaches its maximum token limit during generation.
|
|
27
|
+
*
|
|
28
|
+
* This error indicates that the model stopped generating content because it reached
|
|
29
|
+
* the maximum number of tokens allowed for the response. This is an unrecoverable
|
|
30
|
+
* state that requires intervention, such as reducing the input size or adjusting
|
|
31
|
+
* the max tokens parameter.
|
|
32
|
+
*/
|
|
33
|
+
export class MaxTokensError extends Error {
|
|
34
|
+
/**
|
|
35
|
+
* The partial assistant message that was generated before hitting the token limit.
|
|
36
|
+
* This can be useful for understanding what the model was trying to generate.
|
|
37
|
+
*/
|
|
38
|
+
partialMessage;
|
|
39
|
+
/**
|
|
40
|
+
* Creates a new MaxTokensError.
|
|
41
|
+
*
|
|
42
|
+
* @param message - Error message describing the max tokens condition
|
|
43
|
+
* @param partialMessage - The partial assistant message generated before the limit
|
|
44
|
+
*/
|
|
45
|
+
constructor(message, partialMessage) {
|
|
46
|
+
super(message);
|
|
47
|
+
this.name = 'MaxTokensError';
|
|
48
|
+
this.partialMessage = partialMessage;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Error thrown when attempting to serialize a value that is not JSON-serializable.
|
|
53
|
+
*
|
|
54
|
+
* This error indicates that a value contains non-serializable types such as functions,
|
|
55
|
+
* symbols, or undefined values that cannot be converted to JSON.
|
|
56
|
+
*/
|
|
57
|
+
export class JsonValidationError extends Error {
|
|
58
|
+
/**
|
|
59
|
+
* Creates a new JsonValidationError.
|
|
60
|
+
*
|
|
61
|
+
* @param message - Error message describing the validation failure
|
|
62
|
+
*/
|
|
63
|
+
constructor(message) {
|
|
64
|
+
super(message);
|
|
65
|
+
this.name = 'JsonValidationError';
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Error thrown when attempting to invoke an agent that is already processing an invocation.
|
|
70
|
+
*
|
|
71
|
+
* This error indicates that invoke() or stream() was called while the agent is already
|
|
72
|
+
* executing. Agents can only process one invocation at a time to prevent state corruption.
|
|
73
|
+
*/
|
|
74
|
+
export class ConcurrentInvocationError extends Error {
|
|
75
|
+
/**
|
|
76
|
+
* Creates a new ConcurrentInvocationError.
|
|
77
|
+
*
|
|
78
|
+
* @param message - Error message describing the concurrent invocation attempt
|
|
79
|
+
*/
|
|
80
|
+
constructor(message) {
|
|
81
|
+
super(message);
|
|
82
|
+
this.name = 'ConcurrentInvocationError';
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Normalizes an unknown error value to an Error instance.
|
|
87
|
+
*
|
|
88
|
+
* This helper ensures that any thrown value (Error, string, number, etc.)
|
|
89
|
+
* is converted to a proper Error object for consistent error handling.
|
|
90
|
+
*
|
|
91
|
+
* @param error - The error value to normalize
|
|
92
|
+
* @returns An Error instance
|
|
93
|
+
*/
|
|
94
|
+
export function normalizeError(error) {
|
|
95
|
+
return error instanceof Error ? error : new Error(String(error));
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;GAMG;AACH,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IACnD;;;;OAIG;IACH,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAA;IAC1C,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC;;;OAGG;IACa,cAAc,CAAS;IAEvC;;;;;OAKG;IACH,YAAY,OAAe,EAAE,cAAuB;QAClD,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;QAC5B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;IACtC,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C;;;;OAIG;IACH,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAA;IACnC,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD;;;;OAIG;IACH,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAA;IACzC,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;AAClE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.test.d.ts","sourceRoot":"","sources":["../../../../src/hooks/__tests__/events.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { AfterInvocationEvent, AfterModelCallEvent, AfterToolCallEvent, AfterToolsEvent, BeforeInvocationEvent, BeforeModelCallEvent, BeforeToolCallEvent, BeforeToolsEvent, MessageAddedEvent, ModelStreamEventHook, } from '../events.js';
|
|
3
|
+
import { Agent } from '../../agent/agent.js';
|
|
4
|
+
import { Message, TextBlock, ToolResultBlock } from '../../types/messages.js';
|
|
5
|
+
import { FunctionTool } from '../../tools/function-tool.js';
|
|
6
|
+
describe('BeforeInvocationEvent', () => {
|
|
7
|
+
it('creates instance with correct properties', () => {
|
|
8
|
+
const agent = new Agent();
|
|
9
|
+
const event = new BeforeInvocationEvent({ agent });
|
|
10
|
+
expect(event).toEqual({
|
|
11
|
+
type: 'beforeInvocationEvent',
|
|
12
|
+
agent: agent,
|
|
13
|
+
});
|
|
14
|
+
// @ts-expect-error verifying that property is readonly
|
|
15
|
+
event.agent = new Agent();
|
|
16
|
+
});
|
|
17
|
+
it('returns false for _shouldReverseCallbacks', () => {
|
|
18
|
+
const agent = new Agent();
|
|
19
|
+
const event = new BeforeInvocationEvent({ agent });
|
|
20
|
+
expect(event._shouldReverseCallbacks()).toBe(false);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
describe('AfterInvocationEvent', () => {
|
|
24
|
+
it('creates instance with correct properties', () => {
|
|
25
|
+
const agent = new Agent();
|
|
26
|
+
const event = new AfterInvocationEvent({ agent });
|
|
27
|
+
expect(event).toEqual({
|
|
28
|
+
type: 'afterInvocationEvent',
|
|
29
|
+
agent: agent,
|
|
30
|
+
});
|
|
31
|
+
// @ts-expect-error verifying that property is readonly
|
|
32
|
+
event.agent = new Agent();
|
|
33
|
+
});
|
|
34
|
+
it('returns true for _shouldReverseCallbacks', () => {
|
|
35
|
+
const agent = new Agent();
|
|
36
|
+
const event = new AfterInvocationEvent({ agent });
|
|
37
|
+
expect(event._shouldReverseCallbacks()).toBe(true);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
describe('MessageAddedEvent', () => {
|
|
41
|
+
it('creates instance with correct properties', () => {
|
|
42
|
+
const agent = new Agent();
|
|
43
|
+
const message = new Message({ role: 'assistant', content: [{ type: 'textBlock', text: 'Hello' }] });
|
|
44
|
+
const event = new MessageAddedEvent({ agent, message });
|
|
45
|
+
expect(event).toEqual({
|
|
46
|
+
type: 'messageAddedEvent',
|
|
47
|
+
agent: agent,
|
|
48
|
+
message: message,
|
|
49
|
+
});
|
|
50
|
+
// @ts-expect-error verifying that property is readonly
|
|
51
|
+
event.agent = new Agent();
|
|
52
|
+
// @ts-expect-error verifying that property is readonly
|
|
53
|
+
event.message = message;
|
|
54
|
+
});
|
|
55
|
+
it('returns false for _shouldReverseCallbacks', () => {
|
|
56
|
+
const agent = new Agent();
|
|
57
|
+
const message = new Message({ role: 'assistant', content: [] });
|
|
58
|
+
const event = new MessageAddedEvent({ agent, message });
|
|
59
|
+
expect(event._shouldReverseCallbacks()).toBe(false);
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
describe('BeforeToolCallEvent', () => {
|
|
63
|
+
it('creates instance with correct properties when tool is found', () => {
|
|
64
|
+
const agent = new Agent();
|
|
65
|
+
const tool = new FunctionTool({
|
|
66
|
+
name: 'testTool',
|
|
67
|
+
description: 'Test tool',
|
|
68
|
+
inputSchema: {},
|
|
69
|
+
callback: () => 'result',
|
|
70
|
+
});
|
|
71
|
+
const toolUse = {
|
|
72
|
+
name: 'testTool',
|
|
73
|
+
toolUseId: 'test-id',
|
|
74
|
+
input: { arg: 'value' },
|
|
75
|
+
};
|
|
76
|
+
const event = new BeforeToolCallEvent({ agent, toolUse, tool });
|
|
77
|
+
expect(event).toEqual({
|
|
78
|
+
type: 'beforeToolCallEvent',
|
|
79
|
+
agent: agent,
|
|
80
|
+
toolUse: toolUse,
|
|
81
|
+
tool: tool,
|
|
82
|
+
});
|
|
83
|
+
// @ts-expect-error verifying that property is readonly
|
|
84
|
+
event.agent = new Agent();
|
|
85
|
+
// @ts-expect-error verifying that property is readonly
|
|
86
|
+
event.toolUse = toolUse;
|
|
87
|
+
// @ts-expect-error verifying that property is readonly
|
|
88
|
+
event.tool = tool;
|
|
89
|
+
});
|
|
90
|
+
it('creates instance with undefined tool when tool is not found', () => {
|
|
91
|
+
const agent = new Agent();
|
|
92
|
+
const toolUse = {
|
|
93
|
+
name: 'unknownTool',
|
|
94
|
+
toolUseId: 'test-id',
|
|
95
|
+
input: {},
|
|
96
|
+
};
|
|
97
|
+
const event = new BeforeToolCallEvent({ agent, toolUse, tool: undefined });
|
|
98
|
+
expect(event).toEqual({
|
|
99
|
+
type: 'beforeToolCallEvent',
|
|
100
|
+
agent: agent,
|
|
101
|
+
toolUse: toolUse,
|
|
102
|
+
tool: undefined,
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
it('returns false for _shouldReverseCallbacks', () => {
|
|
106
|
+
const agent = new Agent();
|
|
107
|
+
const toolUse = { name: 'test', toolUseId: 'id', input: {} };
|
|
108
|
+
const event = new BeforeToolCallEvent({ agent, toolUse, tool: undefined });
|
|
109
|
+
expect(event._shouldReverseCallbacks()).toBe(false);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
describe('AfterToolCallEvent', () => {
|
|
113
|
+
it('creates instance with correct properties on success', () => {
|
|
114
|
+
const agent = new Agent();
|
|
115
|
+
const tool = new FunctionTool({
|
|
116
|
+
name: 'testTool',
|
|
117
|
+
description: 'Test tool',
|
|
118
|
+
inputSchema: {},
|
|
119
|
+
callback: () => 'result',
|
|
120
|
+
});
|
|
121
|
+
const toolUse = {
|
|
122
|
+
name: 'testTool',
|
|
123
|
+
toolUseId: 'test-id',
|
|
124
|
+
input: {},
|
|
125
|
+
};
|
|
126
|
+
const result = new ToolResultBlock({
|
|
127
|
+
toolUseId: 'test-id',
|
|
128
|
+
status: 'success',
|
|
129
|
+
content: [new TextBlock('Success')],
|
|
130
|
+
});
|
|
131
|
+
const event = new AfterToolCallEvent({ agent, toolUse, tool, result });
|
|
132
|
+
expect(event).toEqual({
|
|
133
|
+
type: 'afterToolCallEvent',
|
|
134
|
+
agent: agent,
|
|
135
|
+
toolUse: toolUse,
|
|
136
|
+
tool: tool,
|
|
137
|
+
result: result,
|
|
138
|
+
error: undefined,
|
|
139
|
+
});
|
|
140
|
+
// @ts-expect-error verifying that property is readonly
|
|
141
|
+
event.agent = new Agent();
|
|
142
|
+
// @ts-expect-error verifying that property is readonly
|
|
143
|
+
event.toolUse = toolUse;
|
|
144
|
+
// @ts-expect-error verifying that property is readonly
|
|
145
|
+
event.tool = tool;
|
|
146
|
+
// @ts-expect-error verifying that property is readonly
|
|
147
|
+
event.result = result;
|
|
148
|
+
});
|
|
149
|
+
it('creates instance with error property when tool execution fails', () => {
|
|
150
|
+
const agent = new Agent();
|
|
151
|
+
const toolUse = { name: 'test', toolUseId: 'id', input: {} };
|
|
152
|
+
const result = new ToolResultBlock({
|
|
153
|
+
toolUseId: 'id',
|
|
154
|
+
status: 'error',
|
|
155
|
+
content: [new TextBlock('Error')],
|
|
156
|
+
});
|
|
157
|
+
const error = new Error('Tool failed');
|
|
158
|
+
const event = new AfterToolCallEvent({ agent, toolUse, tool: undefined, result, error });
|
|
159
|
+
expect(event).toEqual({
|
|
160
|
+
type: 'afterToolCallEvent',
|
|
161
|
+
agent: agent,
|
|
162
|
+
toolUse: toolUse,
|
|
163
|
+
tool: undefined,
|
|
164
|
+
result: result,
|
|
165
|
+
error: error,
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
it('returns true for _shouldReverseCallbacks', () => {
|
|
169
|
+
const agent = new Agent();
|
|
170
|
+
const toolUse = { name: 'test', toolUseId: 'id', input: {} };
|
|
171
|
+
const result = new ToolResultBlock({
|
|
172
|
+
toolUseId: 'id',
|
|
173
|
+
status: 'success',
|
|
174
|
+
content: [],
|
|
175
|
+
});
|
|
176
|
+
const event = new AfterToolCallEvent({ agent, toolUse, tool: undefined, result });
|
|
177
|
+
expect(event._shouldReverseCallbacks()).toBe(true);
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
describe('BeforeModelCallEvent', () => {
|
|
181
|
+
it('creates instance with correct properties', () => {
|
|
182
|
+
const agent = new Agent();
|
|
183
|
+
const event = new BeforeModelCallEvent({ agent });
|
|
184
|
+
expect(event).toEqual({
|
|
185
|
+
type: 'beforeModelCallEvent',
|
|
186
|
+
agent: agent,
|
|
187
|
+
});
|
|
188
|
+
// @ts-expect-error verifying that property is readonly
|
|
189
|
+
event.agent = new Agent();
|
|
190
|
+
});
|
|
191
|
+
it('returns false for _shouldReverseCallbacks', () => {
|
|
192
|
+
const agent = new Agent();
|
|
193
|
+
const event = new BeforeModelCallEvent({ agent });
|
|
194
|
+
expect(event._shouldReverseCallbacks()).toBe(false);
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
describe('AfterModelCallEvent', () => {
|
|
198
|
+
it('creates instance with correct properties on success', () => {
|
|
199
|
+
const agent = new Agent();
|
|
200
|
+
const message = new Message({ role: 'assistant', content: [{ type: 'textBlock', text: 'Response' }] });
|
|
201
|
+
const stopReason = 'endTurn';
|
|
202
|
+
const response = { message, stopReason };
|
|
203
|
+
const event = new AfterModelCallEvent({ agent, stopData: response });
|
|
204
|
+
expect(event).toEqual({
|
|
205
|
+
type: 'afterModelCallEvent',
|
|
206
|
+
agent: agent,
|
|
207
|
+
stopData: response,
|
|
208
|
+
error: undefined,
|
|
209
|
+
});
|
|
210
|
+
// @ts-expect-error verifying that property is readonly
|
|
211
|
+
event.agent = new Agent();
|
|
212
|
+
// @ts-expect-error verifying that property is readonly
|
|
213
|
+
event.stopData = response;
|
|
214
|
+
});
|
|
215
|
+
it('creates instance with error property when model invocation fails', () => {
|
|
216
|
+
const agent = new Agent();
|
|
217
|
+
const message = new Message({ role: 'assistant', content: [] });
|
|
218
|
+
const error = new Error('Model failed');
|
|
219
|
+
const response = { message, stopReason: 'error' };
|
|
220
|
+
const event = new AfterModelCallEvent({ agent, stopData: response, error });
|
|
221
|
+
expect(event).toEqual({
|
|
222
|
+
type: 'afterModelCallEvent',
|
|
223
|
+
agent: agent,
|
|
224
|
+
stopData: response,
|
|
225
|
+
error: error,
|
|
226
|
+
});
|
|
227
|
+
});
|
|
228
|
+
it('returns true for _shouldReverseCallbacks', () => {
|
|
229
|
+
const agent = new Agent();
|
|
230
|
+
const message = new Message({ role: 'assistant', content: [] });
|
|
231
|
+
const response = { message, stopReason: 'endTurn' };
|
|
232
|
+
const event = new AfterModelCallEvent({ agent, stopData: response });
|
|
233
|
+
expect(event._shouldReverseCallbacks()).toBe(true);
|
|
234
|
+
});
|
|
235
|
+
it('allows retryModelCall to be set when error is present', () => {
|
|
236
|
+
const agent = new Agent();
|
|
237
|
+
const error = new Error('Model failed');
|
|
238
|
+
const event = new AfterModelCallEvent({ agent, error });
|
|
239
|
+
// Initially undefined
|
|
240
|
+
expect(event.retryModelCall).toBeUndefined();
|
|
241
|
+
// Can be set to true
|
|
242
|
+
event.retryModelCall = true;
|
|
243
|
+
expect(event.retryModelCall).toBe(true);
|
|
244
|
+
// Can be set to false
|
|
245
|
+
event.retryModelCall = false;
|
|
246
|
+
expect(event.retryModelCall).toBe(false);
|
|
247
|
+
});
|
|
248
|
+
it('retryModelCall is optional and defaults to undefined', () => {
|
|
249
|
+
const agent = new Agent();
|
|
250
|
+
const error = new Error('Model failed');
|
|
251
|
+
const event = new AfterModelCallEvent({ agent, error });
|
|
252
|
+
expect(event.retryModelCall).toBeUndefined();
|
|
253
|
+
});
|
|
254
|
+
});
|
|
255
|
+
describe('ModelStreamEventHook', () => {
|
|
256
|
+
it('creates instance with correct properties', () => {
|
|
257
|
+
const agent = new Agent();
|
|
258
|
+
const streamEvent = {
|
|
259
|
+
type: 'modelMessageStartEvent',
|
|
260
|
+
role: 'assistant',
|
|
261
|
+
};
|
|
262
|
+
const hookEvent = new ModelStreamEventHook({ agent, event: streamEvent });
|
|
263
|
+
expect(hookEvent).toEqual({
|
|
264
|
+
type: 'modelStreamEventHook',
|
|
265
|
+
agent: agent,
|
|
266
|
+
event: streamEvent,
|
|
267
|
+
});
|
|
268
|
+
// @ts-expect-error verifying that property is readonly
|
|
269
|
+
hookEvent.agent = new Agent();
|
|
270
|
+
// @ts-expect-error verifying that property is readonly
|
|
271
|
+
hookEvent.event = streamEvent;
|
|
272
|
+
});
|
|
273
|
+
it('returns false for _shouldReverseCallbacks', () => {
|
|
274
|
+
const agent = new Agent();
|
|
275
|
+
const streamEvent = {
|
|
276
|
+
type: 'modelMessageStartEvent',
|
|
277
|
+
role: 'assistant',
|
|
278
|
+
};
|
|
279
|
+
const hookEvent = new ModelStreamEventHook({ agent, event: streamEvent });
|
|
280
|
+
expect(hookEvent._shouldReverseCallbacks()).toBe(false);
|
|
281
|
+
});
|
|
282
|
+
});
|
|
283
|
+
describe('BeforeToolsEvent', () => {
|
|
284
|
+
it('creates instance with correct properties', () => {
|
|
285
|
+
const agent = new Agent();
|
|
286
|
+
const message = new Message({
|
|
287
|
+
role: 'assistant',
|
|
288
|
+
content: [
|
|
289
|
+
{
|
|
290
|
+
type: 'toolUseBlock',
|
|
291
|
+
name: 'testTool',
|
|
292
|
+
toolUseId: 'test-id',
|
|
293
|
+
input: { arg: 'value' },
|
|
294
|
+
},
|
|
295
|
+
],
|
|
296
|
+
});
|
|
297
|
+
const event = new BeforeToolsEvent({ agent, message });
|
|
298
|
+
expect(event).toEqual({
|
|
299
|
+
type: 'beforeToolsEvent',
|
|
300
|
+
agent: agent,
|
|
301
|
+
message: message,
|
|
302
|
+
});
|
|
303
|
+
// @ts-expect-error verifying that property is readonly
|
|
304
|
+
event.agent = new Agent();
|
|
305
|
+
// @ts-expect-error verifying that property is readonly
|
|
306
|
+
event.message = message;
|
|
307
|
+
});
|
|
308
|
+
it('returns false for _shouldReverseCallbacks', () => {
|
|
309
|
+
const agent = new Agent();
|
|
310
|
+
const message = new Message({ role: 'assistant', content: [] });
|
|
311
|
+
const event = new BeforeToolsEvent({ agent, message });
|
|
312
|
+
expect(event._shouldReverseCallbacks()).toBe(false);
|
|
313
|
+
});
|
|
314
|
+
});
|
|
315
|
+
describe('AfterToolsEvent', () => {
|
|
316
|
+
it('creates instance with correct properties', () => {
|
|
317
|
+
const agent = new Agent();
|
|
318
|
+
const message = new Message({
|
|
319
|
+
role: 'user',
|
|
320
|
+
content: [
|
|
321
|
+
{
|
|
322
|
+
type: 'toolResultBlock',
|
|
323
|
+
toolUseId: 'test-id',
|
|
324
|
+
status: 'success',
|
|
325
|
+
content: [{ type: 'textBlock', text: 'Result' }],
|
|
326
|
+
},
|
|
327
|
+
],
|
|
328
|
+
});
|
|
329
|
+
const event = new AfterToolsEvent({ agent, message });
|
|
330
|
+
expect(event).toEqual({
|
|
331
|
+
type: 'afterToolsEvent',
|
|
332
|
+
agent: agent,
|
|
333
|
+
message: message,
|
|
334
|
+
});
|
|
335
|
+
// @ts-expect-error verifying that property is readonly
|
|
336
|
+
event.agent = new Agent();
|
|
337
|
+
// @ts-expect-error verifying that property is readonly
|
|
338
|
+
event.message = message;
|
|
339
|
+
});
|
|
340
|
+
it('returns true for _shouldReverseCallbacks', () => {
|
|
341
|
+
const agent = new Agent();
|
|
342
|
+
const message = new Message({ role: 'user', content: [] });
|
|
343
|
+
const event = new AfterToolsEvent({ agent, message });
|
|
344
|
+
expect(event._shouldReverseCallbacks()).toBe(true);
|
|
345
|
+
});
|
|
346
|
+
});
|
|
347
|
+
//# sourceMappingURL=events.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.test.js","sourceRoot":"","sources":["../../../../src/hooks/__tests__/events.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.test.d.ts","sourceRoot":"","sources":["../../../../src/hooks/__tests__/registry.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, it } from 'vitest';
|
|
2
|
+
import { HookRegistryImplementation } from '../registry.js';
|
|
3
|
+
import { AfterInvocationEvent, BeforeInvocationEvent } from '../events.js';
|
|
4
|
+
import { Agent } from '../../agent/agent.js';
|
|
5
|
+
describe('HookRegistryImplementation', () => {
|
|
6
|
+
let registry;
|
|
7
|
+
let mockAgent;
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
registry = new HookRegistryImplementation();
|
|
10
|
+
mockAgent = new Agent();
|
|
11
|
+
});
|
|
12
|
+
describe('addCallback', () => {
|
|
13
|
+
it('registers callback for event type', async () => {
|
|
14
|
+
let called = false;
|
|
15
|
+
const callback = () => {
|
|
16
|
+
called = true;
|
|
17
|
+
};
|
|
18
|
+
registry.addCallback(BeforeInvocationEvent, callback);
|
|
19
|
+
await registry.invokeCallbacks(new BeforeInvocationEvent({ agent: mockAgent }));
|
|
20
|
+
expect(called).toBe(true);
|
|
21
|
+
});
|
|
22
|
+
it('registers multiple callbacks for same event type', async () => {
|
|
23
|
+
const callOrder = [];
|
|
24
|
+
const callback1 = () => {
|
|
25
|
+
callOrder.push(1);
|
|
26
|
+
};
|
|
27
|
+
const callback2 = () => {
|
|
28
|
+
callOrder.push(2);
|
|
29
|
+
};
|
|
30
|
+
registry.addCallback(BeforeInvocationEvent, callback1);
|
|
31
|
+
registry.addCallback(BeforeInvocationEvent, callback2);
|
|
32
|
+
await registry.invokeCallbacks(new BeforeInvocationEvent({ agent: mockAgent }));
|
|
33
|
+
expect(callOrder).toEqual([1, 2]);
|
|
34
|
+
});
|
|
35
|
+
it('registers callbacks for different event types separately', async () => {
|
|
36
|
+
let beforeCalled = false;
|
|
37
|
+
let afterCalled = false;
|
|
38
|
+
const beforeCallback = () => {
|
|
39
|
+
beforeCalled = true;
|
|
40
|
+
};
|
|
41
|
+
const afterCallback = () => {
|
|
42
|
+
afterCalled = true;
|
|
43
|
+
};
|
|
44
|
+
registry.addCallback(BeforeInvocationEvent, beforeCallback);
|
|
45
|
+
registry.addCallback(AfterInvocationEvent, afterCallback);
|
|
46
|
+
await registry.invokeCallbacks(new BeforeInvocationEvent({ agent: mockAgent }));
|
|
47
|
+
expect(beforeCalled).toBe(true);
|
|
48
|
+
expect(afterCalled).toBe(false);
|
|
49
|
+
await registry.invokeCallbacks(new AfterInvocationEvent({ agent: mockAgent }));
|
|
50
|
+
expect(afterCalled).toBe(true);
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
describe('addHook', () => {
|
|
54
|
+
it('registers all callbacks from provider', async () => {
|
|
55
|
+
let beforeCalled = false;
|
|
56
|
+
let afterCalled = false;
|
|
57
|
+
const beforeCallback = () => {
|
|
58
|
+
beforeCalled = true;
|
|
59
|
+
};
|
|
60
|
+
const afterCallback = () => {
|
|
61
|
+
afterCalled = true;
|
|
62
|
+
};
|
|
63
|
+
const provider = {
|
|
64
|
+
registerCallbacks: (reg) => {
|
|
65
|
+
reg.addCallback(BeforeInvocationEvent, beforeCallback);
|
|
66
|
+
reg.addCallback(AfterInvocationEvent, afterCallback);
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
registry.addHook(provider);
|
|
70
|
+
await registry.invokeCallbacks(new BeforeInvocationEvent({ agent: mockAgent }));
|
|
71
|
+
expect(beforeCalled).toBe(true);
|
|
72
|
+
await registry.invokeCallbacks(new AfterInvocationEvent({ agent: mockAgent }));
|
|
73
|
+
expect(afterCalled).toBe(true);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
describe('invokeCallbacks', () => {
|
|
77
|
+
it('calls registered callbacks in order', async () => {
|
|
78
|
+
const callOrder = [];
|
|
79
|
+
const callback1 = () => {
|
|
80
|
+
callOrder.push(1);
|
|
81
|
+
};
|
|
82
|
+
const callback2 = () => {
|
|
83
|
+
callOrder.push(2);
|
|
84
|
+
};
|
|
85
|
+
registry.addCallback(BeforeInvocationEvent, callback1);
|
|
86
|
+
registry.addCallback(BeforeInvocationEvent, callback2);
|
|
87
|
+
await registry.invokeCallbacks(new BeforeInvocationEvent({ agent: mockAgent }));
|
|
88
|
+
expect(callOrder).toEqual([1, 2]);
|
|
89
|
+
});
|
|
90
|
+
it('reverses callback order for After events', async () => {
|
|
91
|
+
const callOrder = [];
|
|
92
|
+
const callback1 = () => {
|
|
93
|
+
callOrder.push(1);
|
|
94
|
+
};
|
|
95
|
+
const callback2 = () => {
|
|
96
|
+
callOrder.push(2);
|
|
97
|
+
};
|
|
98
|
+
registry.addCallback(AfterInvocationEvent, callback1);
|
|
99
|
+
registry.addCallback(AfterInvocationEvent, callback2);
|
|
100
|
+
await registry.invokeCallbacks(new AfterInvocationEvent({ agent: mockAgent }));
|
|
101
|
+
expect(callOrder).toEqual([2, 1]);
|
|
102
|
+
});
|
|
103
|
+
it('awaits async callbacks', async () => {
|
|
104
|
+
let completed = false;
|
|
105
|
+
const callback = async () => {
|
|
106
|
+
await new Promise((resolve) => globalThis.setTimeout(resolve, 10));
|
|
107
|
+
completed = true;
|
|
108
|
+
};
|
|
109
|
+
registry.addCallback(BeforeInvocationEvent, callback);
|
|
110
|
+
await registry.invokeCallbacks(new BeforeInvocationEvent({ agent: mockAgent }));
|
|
111
|
+
expect(completed).toBe(true);
|
|
112
|
+
});
|
|
113
|
+
it('propagates callback errors', async () => {
|
|
114
|
+
const callback = () => {
|
|
115
|
+
throw new Error('Hook failed');
|
|
116
|
+
};
|
|
117
|
+
registry.addCallback(BeforeInvocationEvent, callback);
|
|
118
|
+
await expect(registry.invokeCallbacks(new BeforeInvocationEvent({ agent: mockAgent }))).rejects.toThrow('Hook failed');
|
|
119
|
+
});
|
|
120
|
+
it('stops execution on first error', async () => {
|
|
121
|
+
let secondCallbackCalled = false;
|
|
122
|
+
const callback1 = () => {
|
|
123
|
+
throw new Error('First callback failed');
|
|
124
|
+
};
|
|
125
|
+
const callback2 = () => {
|
|
126
|
+
secondCallbackCalled = true;
|
|
127
|
+
};
|
|
128
|
+
registry.addCallback(BeforeInvocationEvent, callback1);
|
|
129
|
+
registry.addCallback(BeforeInvocationEvent, callback2);
|
|
130
|
+
await expect(registry.invokeCallbacks(new BeforeInvocationEvent({ agent: mockAgent }))).rejects.toThrow('First callback failed');
|
|
131
|
+
expect(secondCallbackCalled).toBe(false);
|
|
132
|
+
});
|
|
133
|
+
it('handles mixed sync and async callbacks', async () => {
|
|
134
|
+
const callOrder = [];
|
|
135
|
+
const syncCallback = () => {
|
|
136
|
+
callOrder.push('sync');
|
|
137
|
+
};
|
|
138
|
+
const asyncCallback = async () => {
|
|
139
|
+
await new Promise((resolve) => globalThis.globalThis.setTimeout(resolve, 10));
|
|
140
|
+
callOrder.push('async');
|
|
141
|
+
};
|
|
142
|
+
registry.addCallback(BeforeInvocationEvent, syncCallback);
|
|
143
|
+
registry.addCallback(BeforeInvocationEvent, asyncCallback);
|
|
144
|
+
await registry.invokeCallbacks(new BeforeInvocationEvent({ agent: mockAgent }));
|
|
145
|
+
expect(callOrder).toEqual(['sync', 'async']);
|
|
146
|
+
});
|
|
147
|
+
it('returns the event after invocation', async () => {
|
|
148
|
+
const event = new BeforeInvocationEvent({ agent: mockAgent });
|
|
149
|
+
const result = await registry.invokeCallbacks(event);
|
|
150
|
+
expect(result).toBe(event);
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
//# sourceMappingURL=registry.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.test.js","sourceRoot":"","sources":["../../../../src/hooks/__tests__/registry.test.ts"],"names":[],"mappings":"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"}
|