@strands-agents/sdk 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +175 -0
- package/README.md +185 -0
- package/dist/__fixtures__/model-test-helpers.d.ts +56 -0
- package/dist/__fixtures__/model-test-helpers.d.ts.map +1 -0
- package/dist/__fixtures__/model-test-helpers.js +85 -0
- package/dist/__fixtures__/model-test-helpers.js.map +1 -0
- package/dist/__fixtures__/tool-helpers.d.ts +15 -0
- package/dist/__fixtures__/tool-helpers.d.ts.map +1 -0
- package/dist/__fixtures__/tool-helpers.js +22 -0
- package/dist/__fixtures__/tool-helpers.js.map +1 -0
- package/dist/__tests__/errors.test.d.ts +2 -0
- package/dist/__tests__/errors.test.d.ts.map +1 -0
- package/dist/__tests__/errors.test.js +20 -0
- package/dist/__tests__/errors.test.js.map +1 -0
- package/dist/__tests__/index.test.d.ts +2 -0
- package/dist/__tests__/index.test.d.ts.map +1 -0
- package/dist/__tests__/index.test.js +27 -0
- package/dist/__tests__/index.test.js.map +1 -0
- package/dist/errors.d.ts +22 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +25 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/models/__tests__/bedrock.test.d.ts +2 -0
- package/dist/models/__tests__/bedrock.test.d.ts.map +1 -0
- package/dist/models/__tests__/bedrock.test.js +1161 -0
- package/dist/models/__tests__/bedrock.test.js.map +1 -0
- package/dist/models/__tests__/model.test.d.ts +2 -0
- package/dist/models/__tests__/model.test.d.ts.map +1 -0
- package/dist/models/__tests__/model.test.js +297 -0
- package/dist/models/__tests__/model.test.js.map +1 -0
- package/dist/models/__tests__/openai.test.d.ts +2 -0
- package/dist/models/__tests__/openai.test.d.ts.map +1 -0
- package/dist/models/__tests__/openai.test.js +1016 -0
- package/dist/models/__tests__/openai.test.js.map +1 -0
- package/dist/models/__tests__/test-utils.d.ts +10 -0
- package/dist/models/__tests__/test-utils.d.ts.map +1 -0
- package/dist/models/__tests__/test-utils.js +17 -0
- package/dist/models/__tests__/test-utils.js.map +1 -0
- package/dist/models/bedrock.d.ts +272 -0
- package/dist/models/bedrock.d.ts.map +1 -0
- package/dist/models/bedrock.js +679 -0
- package/dist/models/bedrock.js.map +1 -0
- package/dist/models/model.d.ts +89 -0
- package/dist/models/model.d.ts.map +1 -0
- package/dist/models/model.js +122 -0
- package/dist/models/model.js.map +1 -0
- package/dist/models/openai.d.ts +262 -0
- package/dist/models/openai.d.ts.map +1 -0
- package/dist/models/openai.js +625 -0
- package/dist/models/openai.js.map +1 -0
- package/dist/models/streaming.d.ts +226 -0
- package/dist/models/streaming.d.ts.map +1 -0
- package/dist/models/streaming.js +2 -0
- package/dist/models/streaming.js.map +1 -0
- package/dist/src/__fixtures__/agent-helpers.d.ts +29 -0
- package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -0
- package/dist/src/__fixtures__/agent-helpers.js +19 -0
- package/dist/src/__fixtures__/agent-helpers.js.map +1 -0
- package/dist/src/__fixtures__/environment.d.ts +12 -0
- package/dist/src/__fixtures__/environment.d.ts.map +1 -0
- package/dist/src/__fixtures__/environment.js +12 -0
- package/dist/src/__fixtures__/environment.js.map +1 -0
- package/dist/src/__fixtures__/mock-hook-provider.d.ts +14 -0
- package/dist/src/__fixtures__/mock-hook-provider.d.ts.map +1 -0
- package/dist/src/__fixtures__/mock-hook-provider.js +33 -0
- package/dist/src/__fixtures__/mock-hook-provider.js.map +1 -0
- package/dist/src/__fixtures__/mock-message-model.d.ts +93 -0
- package/dist/src/__fixtures__/mock-message-model.d.ts.map +1 -0
- package/dist/src/__fixtures__/mock-message-model.js +226 -0
- package/dist/src/__fixtures__/mock-message-model.js.map +1 -0
- package/dist/src/__fixtures__/model-test-helpers.d.ts +56 -0
- package/dist/src/__fixtures__/model-test-helpers.d.ts.map +1 -0
- package/dist/src/__fixtures__/model-test-helpers.js +85 -0
- package/dist/src/__fixtures__/model-test-helpers.js.map +1 -0
- package/dist/src/__fixtures__/tool-helpers.d.ts +37 -0
- package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -0
- package/dist/src/__fixtures__/tool-helpers.js +78 -0
- package/dist/src/__fixtures__/tool-helpers.js.map +1 -0
- package/dist/src/__tests__/errors.test.d.ts +2 -0
- package/dist/src/__tests__/errors.test.d.ts.map +1 -0
- package/dist/src/__tests__/errors.test.js +64 -0
- package/dist/src/__tests__/errors.test.js.map +1 -0
- package/dist/src/__tests__/index.test.d.ts +2 -0
- package/dist/src/__tests__/index.test.d.ts.map +1 -0
- package/dist/src/__tests__/index.test.js +27 -0
- package/dist/src/__tests__/index.test.js.map +1 -0
- package/dist/src/__tests__/mcp.test.d.ts +2 -0
- package/dist/src/__tests__/mcp.test.d.ts.map +1 -0
- package/dist/src/__tests__/mcp.test.js +166 -0
- package/dist/src/__tests__/mcp.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.hook.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.hook.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.hook.test.js +250 -0
- package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.test.js +414 -0
- package/dist/src/agent/__tests__/agent.test.js.map +1 -0
- package/dist/src/agent/__tests__/printer.test.d.ts +2 -0
- package/dist/src/agent/__tests__/printer.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/printer.test.js +152 -0
- package/dist/src/agent/__tests__/printer.test.js.map +1 -0
- package/dist/src/agent/__tests__/state.test.d.ts +2 -0
- package/dist/src/agent/__tests__/state.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/state.test.js +231 -0
- package/dist/src/agent/__tests__/state.test.js.map +1 -0
- package/dist/src/agent/agent.d.ts +207 -0
- package/dist/src/agent/agent.d.ts.map +1 -0
- package/dist/src/agent/agent.js +481 -0
- package/dist/src/agent/agent.js.map +1 -0
- package/dist/src/agent/printer.d.ts +73 -0
- package/dist/src/agent/printer.d.ts.map +1 -0
- package/dist/src/agent/printer.js +145 -0
- package/dist/src/agent/printer.js.map +1 -0
- package/dist/src/agent/state.d.ts +102 -0
- package/dist/src/agent/state.d.ts.map +1 -0
- package/dist/src/agent/state.js +73 -0
- package/dist/src/agent/state.js.map +1 -0
- package/dist/src/agent/streaming.d.ts +91 -0
- package/dist/src/agent/streaming.d.ts.map +1 -0
- package/dist/src/agent/streaming.js +2 -0
- package/dist/src/agent/streaming.js.map +1 -0
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts +2 -0
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts.map +1 -0
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +10 -0
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +1 -0
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.d.ts +2 -0
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.d.ts.map +1 -0
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +35 -0
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +1 -0
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.d.ts +2 -0
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.d.ts.map +1 -0
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +553 -0
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -0
- package/dist/src/conversation-manager/conversation-manager.d.ts +73 -0
- package/dist/src/conversation-manager/conversation-manager.d.ts.map +1 -0
- package/dist/src/conversation-manager/conversation-manager.js +24 -0
- package/dist/src/conversation-manager/conversation-manager.js.map +1 -0
- package/dist/src/conversation-manager/index.d.ts +8 -0
- package/dist/src/conversation-manager/index.d.ts.map +1 -0
- package/dist/src/conversation-manager/index.js +8 -0
- package/dist/src/conversation-manager/index.js.map +1 -0
- package/dist/src/conversation-manager/null-conversation-manager.d.ts +23 -0
- package/dist/src/conversation-manager/null-conversation-manager.d.ts.map +1 -0
- package/dist/src/conversation-manager/null-conversation-manager.js +23 -0
- package/dist/src/conversation-manager/null-conversation-manager.js.map +1 -0
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +105 -0
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -0
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js +212 -0
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -0
- package/dist/src/errors.d.ts +83 -0
- package/dist/src/errors.d.ts.map +1 -0
- package/dist/src/errors.js +97 -0
- package/dist/src/errors.js.map +1 -0
- package/dist/src/hooks/__tests__/events.test.d.ts +2 -0
- package/dist/src/hooks/__tests__/events.test.d.ts.map +1 -0
- package/dist/src/hooks/__tests__/events.test.js +347 -0
- package/dist/src/hooks/__tests__/events.test.js.map +1 -0
- package/dist/src/hooks/__tests__/registry.test.d.ts +2 -0
- package/dist/src/hooks/__tests__/registry.test.d.ts.map +1 -0
- package/dist/src/hooks/__tests__/registry.test.js +154 -0
- package/dist/src/hooks/__tests__/registry.test.js.map +1 -0
- package/dist/src/hooks/events.d.ts +199 -0
- package/dist/src/hooks/events.d.ts.map +1 -0
- package/dist/src/hooks/events.js +191 -0
- package/dist/src/hooks/events.js.map +1 -0
- package/dist/src/hooks/index.d.ts +11 -0
- package/dist/src/hooks/index.d.ts.map +1 -0
- package/dist/src/hooks/index.js +11 -0
- package/dist/src/hooks/index.js.map +1 -0
- package/dist/src/hooks/registry.d.ts +65 -0
- package/dist/src/hooks/registry.d.ts.map +1 -0
- package/dist/src/hooks/registry.js +65 -0
- package/dist/src/hooks/registry.js.map +1 -0
- package/dist/src/hooks/types.d.ts +49 -0
- package/dist/src/hooks/types.d.ts.map +1 -0
- package/dist/src/hooks/types.js +2 -0
- package/dist/src/hooks/types.js.map +1 -0
- package/dist/src/index.d.ts +32 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +29 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/mcp.d.ts +51 -0
- package/dist/src/mcp.d.ts.map +1 -0
- package/dist/src/mcp.js +91 -0
- package/dist/src/mcp.js.map +1 -0
- package/dist/src/models/__tests__/bedrock.test.d.ts +2 -0
- package/dist/src/models/__tests__/bedrock.test.d.ts.map +1 -0
- package/dist/src/models/__tests__/bedrock.test.js +1388 -0
- package/dist/src/models/__tests__/bedrock.test.js.map +1 -0
- package/dist/src/models/__tests__/model.test.d.ts +2 -0
- package/dist/src/models/__tests__/model.test.d.ts.map +1 -0
- package/dist/src/models/__tests__/model.test.js +342 -0
- package/dist/src/models/__tests__/model.test.js.map +1 -0
- package/dist/src/models/__tests__/openai.test.d.ts +2 -0
- package/dist/src/models/__tests__/openai.test.d.ts.map +1 -0
- package/dist/src/models/__tests__/openai.test.js +1189 -0
- package/dist/src/models/__tests__/openai.test.js.map +1 -0
- package/dist/src/models/__tests__/test-utils.d.ts +10 -0
- package/dist/src/models/__tests__/test-utils.d.ts.map +1 -0
- package/dist/src/models/__tests__/test-utils.js +17 -0
- package/dist/src/models/__tests__/test-utils.js.map +1 -0
- package/dist/src/models/bedrock.d.ts +289 -0
- package/dist/src/models/bedrock.d.ts.map +1 -0
- package/dist/src/models/bedrock.js +804 -0
- package/dist/src/models/bedrock.js.map +1 -0
- package/dist/src/models/model.d.ts +99 -0
- package/dist/src/models/model.d.ts.map +1 -0
- package/dist/src/models/model.js +169 -0
- package/dist/src/models/model.js.map +1 -0
- package/dist/src/models/openai.d.ts +262 -0
- package/dist/src/models/openai.d.ts.map +1 -0
- package/dist/src/models/openai.js +752 -0
- package/dist/src/models/openai.js.map +1 -0
- package/dist/src/models/streaming.d.ts +318 -0
- package/dist/src/models/streaming.d.ts.map +1 -0
- package/dist/src/models/streaming.js +122 -0
- package/dist/src/models/streaming.js.map +1 -0
- package/dist/src/registry/registry.d.ts +117 -0
- package/dist/src/registry/registry.d.ts.map +1 -0
- package/dist/src/registry/registry.js +298 -0
- package/dist/src/registry/registry.js.map +1 -0
- package/dist/src/registry/tool-registry.d.ts +34 -0
- package/dist/src/registry/tool-registry.d.ts.map +1 -0
- package/dist/src/registry/tool-registry.js +178 -0
- package/dist/src/registry/tool-registry.js.map +1 -0
- package/dist/src/tools/__tests__/tool.test.d.ts +2 -0
- package/dist/src/tools/__tests__/tool.test.d.ts.map +1 -0
- package/dist/src/tools/__tests__/tool.test.js +877 -0
- package/dist/src/tools/__tests__/tool.test.js.map +1 -0
- package/dist/src/tools/__tests__/zod-tool.test-d.d.ts +2 -0
- package/dist/src/tools/__tests__/zod-tool.test-d.d.ts.map +1 -0
- package/dist/src/tools/__tests__/zod-tool.test-d.js +227 -0
- package/dist/src/tools/__tests__/zod-tool.test-d.js.map +1 -0
- package/dist/src/tools/__tests__/zod-tool.test.d.ts +2 -0
- package/dist/src/tools/__tests__/zod-tool.test.d.ts.map +1 -0
- package/dist/src/tools/__tests__/zod-tool.test.js +372 -0
- package/dist/src/tools/__tests__/zod-tool.test.js.map +1 -0
- package/dist/src/tools/function-tool.d.ts +146 -0
- package/dist/src/tools/function-tool.d.ts.map +1 -0
- package/dist/src/tools/function-tool.js +188 -0
- package/dist/src/tools/function-tool.js.map +1 -0
- package/dist/src/tools/mcp-tool.d.ts +36 -0
- package/dist/src/tools/mcp-tool.d.ts.map +1 -0
- package/dist/src/tools/mcp-tool.js +78 -0
- package/dist/src/tools/mcp-tool.js.map +1 -0
- package/dist/src/tools/tool.d.ts +167 -0
- package/dist/src/tools/tool.d.ts.map +1 -0
- package/dist/src/tools/tool.js +68 -0
- package/dist/src/tools/tool.js.map +1 -0
- package/dist/src/tools/types.d.ts +62 -0
- package/dist/src/tools/types.d.ts.map +1 -0
- package/dist/src/tools/types.js +2 -0
- package/dist/src/tools/types.js.map +1 -0
- package/dist/src/tools/zod-tool.d.ts +70 -0
- package/dist/src/tools/zod-tool.d.ts.map +1 -0
- package/dist/src/tools/zod-tool.js +149 -0
- package/dist/src/tools/zod-tool.js.map +1 -0
- package/dist/src/types/__tests__/agent.test.d.ts +2 -0
- package/dist/src/types/__tests__/agent.test.d.ts.map +1 -0
- package/dist/src/types/__tests__/agent.test.js +155 -0
- package/dist/src/types/__tests__/agent.test.js.map +1 -0
- package/dist/src/types/__tests__/json.test.d.ts +2 -0
- package/dist/src/types/__tests__/json.test.d.ts.map +1 -0
- package/dist/src/types/__tests__/json.test.js +298 -0
- package/dist/src/types/__tests__/json.test.js.map +1 -0
- package/dist/src/types/__tests__/media.test.d.ts +2 -0
- package/dist/src/types/__tests__/media.test.d.ts.map +1 -0
- package/dist/src/types/__tests__/media.test.js +257 -0
- package/dist/src/types/__tests__/media.test.js.map +1 -0
- package/dist/src/types/__tests__/messages.test.d.ts +2 -0
- package/dist/src/types/__tests__/messages.test.d.ts.map +1 -0
- package/dist/src/types/__tests__/messages.test.js +364 -0
- package/dist/src/types/__tests__/messages.test.js.map +1 -0
- package/dist/src/types/__tests__/validation.test.d.ts +2 -0
- package/dist/src/types/__tests__/validation.test.d.ts.map +1 -0
- package/dist/src/types/__tests__/validation.test.js +30 -0
- package/dist/src/types/__tests__/validation.test.js.map +1 -0
- package/dist/src/types/agent.d.ts +57 -0
- package/dist/src/types/agent.d.ts.map +1 -0
- package/dist/src/types/agent.js +47 -0
- package/dist/src/types/agent.js.map +1 -0
- package/dist/src/types/json.d.ts +55 -0
- package/dist/src/types/json.d.ts.map +1 -0
- package/dist/src/types/json.js +72 -0
- package/dist/src/types/json.js.map +1 -0
- package/dist/src/types/media.d.ts +249 -0
- package/dist/src/types/media.d.ts.map +1 -0
- package/dist/src/types/media.js +173 -0
- package/dist/src/types/media.js.map +1 -0
- package/dist/src/types/messages.d.ts +438 -0
- package/dist/src/types/messages.d.ts.map +1 -0
- package/dist/src/types/messages.js +286 -0
- package/dist/src/types/messages.js.map +1 -0
- package/dist/src/types/validation.d.ts +10 -0
- package/dist/src/types/validation.d.ts.map +1 -0
- package/dist/src/types/validation.js +15 -0
- package/dist/src/types/validation.js.map +1 -0
- package/dist/tools/__tests__/registry.test.d.ts +2 -0
- package/dist/tools/__tests__/registry.test.d.ts.map +1 -0
- package/dist/tools/__tests__/registry.test.js +253 -0
- package/dist/tools/__tests__/registry.test.js.map +1 -0
- package/dist/tools/__tests__/tool.test.d.ts +2 -0
- package/dist/tools/__tests__/tool.test.d.ts.map +1 -0
- package/dist/tools/__tests__/tool.test.js +761 -0
- package/dist/tools/__tests__/tool.test.js.map +1 -0
- package/dist/tools/__tests__/zod-tool.test-d.d.ts +2 -0
- package/dist/tools/__tests__/zod-tool.test-d.d.ts.map +1 -0
- package/dist/tools/__tests__/zod-tool.test-d.js +227 -0
- package/dist/tools/__tests__/zod-tool.test-d.js.map +1 -0
- package/dist/tools/__tests__/zod-tool.test.d.ts +2 -0
- package/dist/tools/__tests__/zod-tool.test.d.ts.map +1 -0
- package/dist/tools/__tests__/zod-tool.test.js +342 -0
- package/dist/tools/__tests__/zod-tool.test.js.map +1 -0
- package/dist/tools/function-tool.d.ts +156 -0
- package/dist/tools/function-tool.d.ts.map +1 -0
- package/dist/tools/function-tool.js +237 -0
- package/dist/tools/function-tool.js.map +1 -0
- package/dist/tools/registry.d.ts +43 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +82 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/tool.d.ts +157 -0
- package/dist/tools/tool.d.ts.map +1 -0
- package/dist/tools/tool.js +2 -0
- package/dist/tools/tool.js.map +1 -0
- package/dist/tools/types.d.ts +119 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/zod-tool.d.ts +70 -0
- package/dist/tools/zod-tool.d.ts.map +1 -0
- package/dist/tools/zod-tool.js +96 -0
- package/dist/tools/zod-tool.js.map +1 -0
- package/dist/types/__tests__/json.test.d.ts +2 -0
- package/dist/types/__tests__/json.test.d.ts.map +1 -0
- package/dist/types/__tests__/json.test.js +129 -0
- package/dist/types/__tests__/json.test.js.map +1 -0
- package/dist/types/__tests__/validation.test.d.ts +2 -0
- package/dist/types/__tests__/validation.test.d.ts.map +1 -0
- package/dist/types/__tests__/validation.test.js +30 -0
- package/dist/types/__tests__/validation.test.js.map +1 -0
- package/dist/types/json.d.ts +45 -0
- package/dist/types/json.d.ts.map +1 -0
- package/dist/types/json.js +17 -0
- package/dist/types/json.js.map +1 -0
- package/dist/types/messages.d.ts +160 -0
- package/dist/types/messages.d.ts.map +1 -0
- package/dist/types/messages.js +2 -0
- package/dist/types/messages.js.map +1 -0
- package/dist/types/validation.d.ts +10 -0
- package/dist/types/validation.d.ts.map +1 -0
- package/dist/types/validation.js +15 -0
- package/dist/types/validation.js.map +1 -0
- package/dist/vended_tools/bash/__tests__/bash.test.d.ts +2 -0
- package/dist/vended_tools/bash/__tests__/bash.test.d.ts.map +1 -0
- package/dist/vended_tools/bash/__tests__/bash.test.js +333 -0
- package/dist/vended_tools/bash/__tests__/bash.test.js.map +1 -0
- package/dist/vended_tools/bash/bash.d.ts +33 -0
- package/dist/vended_tools/bash/bash.d.ts.map +1 -0
- package/dist/vended_tools/bash/bash.js +264 -0
- package/dist/vended_tools/bash/bash.js.map +1 -0
- package/dist/vended_tools/bash/index.d.ts +7 -0
- package/dist/vended_tools/bash/index.d.ts.map +1 -0
- package/dist/vended_tools/bash/index.js +6 -0
- package/dist/vended_tools/bash/index.js.map +1 -0
- package/dist/vended_tools/bash/types.d.ts +65 -0
- package/dist/vended_tools/bash/types.d.ts.map +1 -0
- package/dist/vended_tools/bash/types.js +22 -0
- package/dist/vended_tools/bash/types.js.map +1 -0
- package/dist/vended_tools/file_editor/__tests__/file-editor.test.d.ts +2 -0
- package/dist/vended_tools/file_editor/__tests__/file-editor.test.d.ts.map +1 -0
- package/dist/vended_tools/file_editor/__tests__/file-editor.test.js +359 -0
- package/dist/vended_tools/file_editor/__tests__/file-editor.test.js.map +1 -0
- package/dist/vended_tools/file_editor/file-editor.d.ts +31 -0
- package/dist/vended_tools/file_editor/file-editor.d.ts.map +1 -0
- package/dist/vended_tools/file_editor/file-editor.js +353 -0
- package/dist/vended_tools/file_editor/file-editor.js.map +1 -0
- package/dist/vended_tools/file_editor/index.d.ts +6 -0
- package/dist/vended_tools/file_editor/index.d.ts.map +1 -0
- package/dist/vended_tools/file_editor/index.js +5 -0
- package/dist/vended_tools/file_editor/index.js.map +1 -0
- package/dist/vended_tools/file_editor/types.d.ts +61 -0
- package/dist/vended_tools/file_editor/types.d.ts.map +1 -0
- package/dist/vended_tools/file_editor/types.js +2 -0
- package/dist/vended_tools/file_editor/types.js.map +1 -0
- package/dist/vended_tools/http_request/__tests__/http-request.test.d.ts +2 -0
- package/dist/vended_tools/http_request/__tests__/http-request.test.d.ts.map +1 -0
- package/dist/vended_tools/http_request/__tests__/http-request.test.js +189 -0
- package/dist/vended_tools/http_request/__tests__/http-request.test.js.map +1 -0
- package/dist/vended_tools/http_request/http-request.d.ts +35 -0
- package/dist/vended_tools/http_request/http-request.d.ts.map +1 -0
- package/dist/vended_tools/http_request/http-request.js +95 -0
- package/dist/vended_tools/http_request/http-request.js.map +1 -0
- package/dist/vended_tools/http_request/index.d.ts +6 -0
- package/dist/vended_tools/http_request/index.d.ts.map +1 -0
- package/dist/vended_tools/http_request/index.js +5 -0
- package/dist/vended_tools/http_request/index.js.map +1 -0
- package/dist/vended_tools/http_request/types.d.ts +47 -0
- package/dist/vended_tools/http_request/types.d.ts.map +1 -0
- package/dist/vended_tools/http_request/types.js +2 -0
- package/dist/vended_tools/http_request/types.js.map +1 -0
- package/dist/vended_tools/notebook/__tests__/notebook.test.d.ts +2 -0
- package/dist/vended_tools/notebook/__tests__/notebook.test.d.ts.map +1 -0
- package/dist/vended_tools/notebook/__tests__/notebook.test.js +371 -0
- package/dist/vended_tools/notebook/__tests__/notebook.test.js.map +1 -0
- package/dist/vended_tools/notebook/index.d.ts +6 -0
- package/dist/vended_tools/notebook/index.d.ts.map +1 -0
- package/dist/vended_tools/notebook/index.js +5 -0
- package/dist/vended_tools/notebook/index.js.map +1 -0
- package/dist/vended_tools/notebook/notebook.d.ts +29 -0
- package/dist/vended_tools/notebook/notebook.d.ts.map +1 -0
- package/dist/vended_tools/notebook/notebook.js +215 -0
- package/dist/vended_tools/notebook/notebook.js.map +1 -0
- package/dist/vended_tools/notebook/types.d.ts +79 -0
- package/dist/vended_tools/notebook/types.d.ts.map +1 -0
- package/dist/vended_tools/notebook/types.js +2 -0
- package/dist/vended_tools/notebook/types.js.map +1 -0
- package/package.json +112 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { InvokableTool, ToolContext } from './tool';
|
|
2
|
+
import type { JSONValue } from '../types/json';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
/**
|
|
5
|
+
* Configuration for creating a Zod-based tool.
|
|
6
|
+
*
|
|
7
|
+
* @typeParam TInput - Zod schema type for input validation
|
|
8
|
+
* @typeParam TReturn - Return type of the callback function
|
|
9
|
+
*/
|
|
10
|
+
export interface ToolConfig<TInput extends z.ZodType, TReturn extends JSONValue = JSONValue> {
|
|
11
|
+
/** The name of the tool */
|
|
12
|
+
name: string;
|
|
13
|
+
/** A description of what the tool does (optional) */
|
|
14
|
+
description?: string;
|
|
15
|
+
/** Zod schema for input validation and JSON schema generation */
|
|
16
|
+
inputSchema: TInput;
|
|
17
|
+
/**
|
|
18
|
+
* Callback function that implements the tool's functionality.
|
|
19
|
+
*
|
|
20
|
+
* @param input - Validated input matching the Zod schema
|
|
21
|
+
* @param context - Optional execution context
|
|
22
|
+
* @returns The result (can be a value, Promise, or AsyncGenerator)
|
|
23
|
+
*/
|
|
24
|
+
callback: (input: z.infer<TInput>, context?: ToolContext) => AsyncGenerator<unknown, TReturn, never> | Promise<TReturn> | TReturn;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Creates an InvokableTool from a Zod schema and callback function.
|
|
28
|
+
*
|
|
29
|
+
* The tool() function validates input against the schema and generates JSON schema
|
|
30
|
+
* for model providers using Zod v4's built-in z.toJSONSchema() method.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* import { tool } from '@strands-agents/sdk'
|
|
35
|
+
* import { z } from 'zod'
|
|
36
|
+
*
|
|
37
|
+
* const calculator = tool({
|
|
38
|
+
* name: 'calculator',
|
|
39
|
+
* description: 'Performs basic arithmetic',
|
|
40
|
+
* inputSchema: z.object({
|
|
41
|
+
* operation: z.enum(['add', 'subtract', 'multiply', 'divide']),
|
|
42
|
+
* a: z.number(),
|
|
43
|
+
* b: z.number()
|
|
44
|
+
* }),
|
|
45
|
+
* callback: (input) => {
|
|
46
|
+
* switch (input.operation) {
|
|
47
|
+
* case 'add': return input.a + input.b
|
|
48
|
+
* case 'subtract': return input.a - input.b
|
|
49
|
+
* case 'multiply': return input.a * input.b
|
|
50
|
+
* case 'divide': return input.a / input.b
|
|
51
|
+
* }
|
|
52
|
+
* }
|
|
53
|
+
* })
|
|
54
|
+
*
|
|
55
|
+
* // Direct invocation
|
|
56
|
+
* const result = await calculator.invoke({ operation: 'add', a: 5, b: 3 })
|
|
57
|
+
*
|
|
58
|
+
* // Agent usage
|
|
59
|
+
* for await (const event of calculator.stream(context)) {
|
|
60
|
+
* console.log(event)
|
|
61
|
+
* }
|
|
62
|
+
* ```
|
|
63
|
+
*
|
|
64
|
+
* @typeParam TInput - Zod schema type for input validation
|
|
65
|
+
* @typeParam TReturn - Return type of the callback function
|
|
66
|
+
* @param config - Tool configuration
|
|
67
|
+
* @returns An InvokableTool that implements the Tool interface with invoke() method
|
|
68
|
+
*/
|
|
69
|
+
export declare function tool<TInput extends z.ZodType, TReturn extends JSONValue = JSONValue>(config: ToolConfig<TInput, TReturn>): InvokableTool<z.infer<TInput>, TReturn>;
|
|
70
|
+
//# sourceMappingURL=zod-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-tool.d.ts","sourceRoot":"","sources":["../../src/tools/zod-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAuB,MAAM,QAAQ,CAAA;AAC7E,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,eAAe,CAAA;AAE1D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;;;GAKG;AACH,MAAM,WAAW,UAAU,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,EAAE,OAAO,SAAS,SAAS,GAAG,SAAS;IACzF,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAA;IAEZ,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAA;IAEnB;;;;;;OAMG;IACH,QAAQ,EAAE,CACR,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EACtB,OAAO,CAAC,EAAE,WAAW,KAClB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;CAC1E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,EAAE,OAAO,SAAS,SAAS,GAAG,SAAS,EAClF,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CA8DzC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { FunctionTool } from './function-tool';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/**
|
|
4
|
+
* Creates an InvokableTool from a Zod schema and callback function.
|
|
5
|
+
*
|
|
6
|
+
* The tool() function validates input against the schema and generates JSON schema
|
|
7
|
+
* for model providers using Zod v4's built-in z.toJSONSchema() method.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { tool } from '@strands-agents/sdk'
|
|
12
|
+
* import { z } from 'zod'
|
|
13
|
+
*
|
|
14
|
+
* const calculator = tool({
|
|
15
|
+
* name: 'calculator',
|
|
16
|
+
* description: 'Performs basic arithmetic',
|
|
17
|
+
* inputSchema: z.object({
|
|
18
|
+
* operation: z.enum(['add', 'subtract', 'multiply', 'divide']),
|
|
19
|
+
* a: z.number(),
|
|
20
|
+
* b: z.number()
|
|
21
|
+
* }),
|
|
22
|
+
* callback: (input) => {
|
|
23
|
+
* switch (input.operation) {
|
|
24
|
+
* case 'add': return input.a + input.b
|
|
25
|
+
* case 'subtract': return input.a - input.b
|
|
26
|
+
* case 'multiply': return input.a * input.b
|
|
27
|
+
* case 'divide': return input.a / input.b
|
|
28
|
+
* }
|
|
29
|
+
* }
|
|
30
|
+
* })
|
|
31
|
+
*
|
|
32
|
+
* // Direct invocation
|
|
33
|
+
* const result = await calculator.invoke({ operation: 'add', a: 5, b: 3 })
|
|
34
|
+
*
|
|
35
|
+
* // Agent usage
|
|
36
|
+
* for await (const event of calculator.stream(context)) {
|
|
37
|
+
* console.log(event)
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* @typeParam TInput - Zod schema type for input validation
|
|
42
|
+
* @typeParam TReturn - Return type of the callback function
|
|
43
|
+
* @param config - Tool configuration
|
|
44
|
+
* @returns An InvokableTool that implements the Tool interface with invoke() method
|
|
45
|
+
*/
|
|
46
|
+
export function tool(config) {
|
|
47
|
+
const { name, description = '', inputSchema, callback } = config;
|
|
48
|
+
// Generate JSON Schema from Zod and strip $schema property to reduce token usage
|
|
49
|
+
const generatedSchema = z.toJSONSchema(inputSchema);
|
|
50
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
51
|
+
const { $schema, ...schemaWithoutMeta } = generatedSchema;
|
|
52
|
+
// Create a FunctionTool with a validation wrapper
|
|
53
|
+
const functionTool = new FunctionTool({
|
|
54
|
+
name,
|
|
55
|
+
description,
|
|
56
|
+
inputSchema: schemaWithoutMeta,
|
|
57
|
+
callback: (input, toolContext) => {
|
|
58
|
+
// Validate input using Zod schema (throws on validation error)
|
|
59
|
+
const validatedInput = inputSchema.parse(input);
|
|
60
|
+
// Execute user callback with validated input
|
|
61
|
+
return callback(validatedInput, toolContext);
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
// Create an invokable tool that extends the FunctionTool
|
|
65
|
+
const invokableTool = {
|
|
66
|
+
toolName: functionTool.toolName,
|
|
67
|
+
description: functionTool.description,
|
|
68
|
+
toolSpec: functionTool.toolSpec,
|
|
69
|
+
// Delegate stream to FunctionTool
|
|
70
|
+
stream(toolContext) {
|
|
71
|
+
return functionTool.stream(toolContext);
|
|
72
|
+
},
|
|
73
|
+
// Type-safe invoke method
|
|
74
|
+
async invoke(input, context) {
|
|
75
|
+
// Validate input using Zod schema (throws on validation error)
|
|
76
|
+
const validatedInput = inputSchema.parse(input);
|
|
77
|
+
// Execute callback with validated input
|
|
78
|
+
const result = callback(validatedInput, context);
|
|
79
|
+
// Handle different return types
|
|
80
|
+
if (result && typeof result === 'object' && Symbol.asyncIterator in result) {
|
|
81
|
+
// AsyncGenerator - consume all yielded values and return the last one
|
|
82
|
+
let lastValue = undefined;
|
|
83
|
+
for await (const value of result) {
|
|
84
|
+
lastValue = value;
|
|
85
|
+
}
|
|
86
|
+
return lastValue;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
// Regular value or Promise - return directly
|
|
90
|
+
return await result;
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
return invokableTool;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=zod-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-tool.js","sourceRoot":"","sources":["../../src/tools/zod-tool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA+BvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,UAAU,IAAI,CAClB,MAAmC;IAEnC,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAA;IAEhE,iFAAiF;IACjF,MAAM,eAAe,GAAG,CAAC,CAAC,YAAY,CAAC,WAAW,CAAsC,CAAA;IACxF,6DAA6D;IAC7D,MAAM,EAAE,OAAO,EAAE,GAAG,iBAAiB,EAAE,GAAG,eAAe,CAAA;IAEzD,kDAAkD;IAClD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;QACpC,IAAI;QACJ,WAAW;QACX,WAAW,EAAE,iBAA+B;QAC5C,QAAQ,EAAE,CACR,KAAc,EACd,WAAwB,EACsD,EAAE;YAChF,+DAA+D;YAC/D,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAC/C,6CAA6C;YAC7C,OAAO,QAAQ,CAAC,cAAc,EAAE,WAAW,CAG9B,CAAA;QACf,CAAC;KACF,CAAC,CAAA;IAEF,yDAAyD;IACzD,MAAM,aAAa,GAA4C;QAC7D,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAE/B,kCAAkC;QAClC,MAAM,CAAC,WAAwB;YAC7B,OAAO,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QACzC,CAAC;QAED,0BAA0B;QAC1B,KAAK,CAAC,MAAM,CAAC,KAAsB,EAAE,OAAqB;YACxD,+DAA+D;YAC/D,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAE/C,wCAAwC;YACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;YAEhD,gCAAgC;YAChC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,EAAE,CAAC;gBAC3E,sEAAsE;gBACtE,IAAI,SAAS,GAAwB,SAAS,CAAA;gBAC9C,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAqD,EAAE,CAAC;oBAChF,SAAS,GAAG,KAAgB,CAAA;gBAC9B,CAAC;gBACD,OAAO,SAAoB,CAAA;YAC7B,CAAC;iBAAM,CAAC;gBACN,6CAA6C;gBAC7C,OAAO,MAAM,MAAM,CAAA;YACrB,CAAC;QACH,CAAC;KACF,CAAA;IAED,OAAO,aAAa,CAAA;AACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.test.d.ts","sourceRoot":"","sources":["../../../src/types/__tests__/json.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { deepCopy } from '../json';
|
|
3
|
+
describe('deepCopy', () => {
|
|
4
|
+
describe('primitive values', () => {
|
|
5
|
+
it('copies strings', () => {
|
|
6
|
+
const result = deepCopy('hello');
|
|
7
|
+
expect(result).toBe('hello');
|
|
8
|
+
});
|
|
9
|
+
it('copies numbers', () => {
|
|
10
|
+
const result = deepCopy(42);
|
|
11
|
+
expect(result).toBe(42);
|
|
12
|
+
});
|
|
13
|
+
it('copies booleans', () => {
|
|
14
|
+
const result = deepCopy(true);
|
|
15
|
+
expect(result).toBe(true);
|
|
16
|
+
});
|
|
17
|
+
it('copies null', () => {
|
|
18
|
+
const result = deepCopy(null);
|
|
19
|
+
expect(result).toBe(null);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
describe('object values', () => {
|
|
23
|
+
it('creates a deep copy of objects', () => {
|
|
24
|
+
const original = { nested: { value: 'test' } };
|
|
25
|
+
const copy = deepCopy(original);
|
|
26
|
+
expect(copy).toEqual(original);
|
|
27
|
+
expect(copy).not.toBe(original); // Different reference
|
|
28
|
+
// Verify deep copy - modifying original shouldn't affect copy
|
|
29
|
+
original.nested.value = 'changed';
|
|
30
|
+
expect(copy.nested.value).toBe('test');
|
|
31
|
+
});
|
|
32
|
+
it('copies empty objects', () => {
|
|
33
|
+
const result = deepCopy({});
|
|
34
|
+
expect(result).toEqual({});
|
|
35
|
+
});
|
|
36
|
+
it('copies objects with multiple properties', () => {
|
|
37
|
+
const original = { a: 1, b: 'two', c: true, d: null };
|
|
38
|
+
const copy = deepCopy(original);
|
|
39
|
+
expect(copy).toEqual(original);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
describe('array values', () => {
|
|
43
|
+
it('creates a deep copy of arrays', () => {
|
|
44
|
+
const original = [1, 2, 3, { nested: 'value' }];
|
|
45
|
+
const copy = deepCopy(original);
|
|
46
|
+
expect(copy).toEqual(original);
|
|
47
|
+
expect(copy).not.toBe(original); // Different reference
|
|
48
|
+
// Verify deep copy - modifying original shouldn't affect copy
|
|
49
|
+
original[0] = 999;
|
|
50
|
+
expect(copy[0]).toBe(1);
|
|
51
|
+
});
|
|
52
|
+
it('copies empty arrays', () => {
|
|
53
|
+
const result = deepCopy([]);
|
|
54
|
+
expect(result).toEqual([]);
|
|
55
|
+
});
|
|
56
|
+
it('copies nested arrays', () => {
|
|
57
|
+
const original = [
|
|
58
|
+
[1, 2],
|
|
59
|
+
[3, 4],
|
|
60
|
+
];
|
|
61
|
+
const copy = deepCopy(original);
|
|
62
|
+
expect(copy).toEqual(original);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
describe('error handling', () => {
|
|
66
|
+
it('throws error for circular references', () => {
|
|
67
|
+
const circular = {};
|
|
68
|
+
circular.self = circular;
|
|
69
|
+
expect(() => deepCopy(circular)).toThrow('Unable to serialize tool result');
|
|
70
|
+
});
|
|
71
|
+
it('silently drops functions from objects', () => {
|
|
72
|
+
const withFunction = {
|
|
73
|
+
normalProp: 'value',
|
|
74
|
+
funcProp: () => 'test',
|
|
75
|
+
};
|
|
76
|
+
const result = deepCopy(withFunction);
|
|
77
|
+
expect(result).toEqual({ normalProp: 'value' });
|
|
78
|
+
expect(result).not.toHaveProperty('funcProp');
|
|
79
|
+
});
|
|
80
|
+
it('silently drops symbols from objects', () => {
|
|
81
|
+
const sym = Symbol('test');
|
|
82
|
+
const withSymbol = {
|
|
83
|
+
normalProp: 'value',
|
|
84
|
+
[sym]: 'symbolValue',
|
|
85
|
+
};
|
|
86
|
+
const result = deepCopy(withSymbol);
|
|
87
|
+
expect(result).toEqual({ normalProp: 'value' });
|
|
88
|
+
// Symbols are dropped during JSON serialization
|
|
89
|
+
expect(Object.getOwnPropertySymbols(result)).toHaveLength(0);
|
|
90
|
+
});
|
|
91
|
+
it('silently drops undefined values from objects', () => {
|
|
92
|
+
const withUndefined = {
|
|
93
|
+
normalProp: 'value',
|
|
94
|
+
undefinedProp: undefined,
|
|
95
|
+
};
|
|
96
|
+
const result = deepCopy(withUndefined);
|
|
97
|
+
expect(result).toEqual({ normalProp: 'value' });
|
|
98
|
+
expect(result).not.toHaveProperty('undefinedProp');
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
describe('complex nested structures', () => {
|
|
102
|
+
it('copies deeply nested structures', () => {
|
|
103
|
+
const original = {
|
|
104
|
+
level1: {
|
|
105
|
+
level2: {
|
|
106
|
+
level3: {
|
|
107
|
+
array: [1, 2, { deep: 'value' }],
|
|
108
|
+
string: 'test',
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
const copy = deepCopy(original);
|
|
114
|
+
expect(copy).toEqual(original);
|
|
115
|
+
expect(copy).not.toBe(original);
|
|
116
|
+
});
|
|
117
|
+
it('copies arrays of objects', () => {
|
|
118
|
+
const original = [
|
|
119
|
+
{ id: 1, name: 'first' },
|
|
120
|
+
{ id: 2, name: 'second' },
|
|
121
|
+
{ id: 3, name: 'third' },
|
|
122
|
+
];
|
|
123
|
+
const copy = deepCopy(original);
|
|
124
|
+
expect(copy).toEqual(original);
|
|
125
|
+
expect(copy).not.toBe(original);
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
//# sourceMappingURL=json.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.test.js","sourceRoot":"","sources":["../../../src/types/__tests__/json.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.test.d.ts","sourceRoot":"","sources":["../../../src/types/__tests__/validation.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { ensureDefined } from '../validation';
|
|
3
|
+
describe('ensureDefined', () => {
|
|
4
|
+
describe('when value is defined', () => {
|
|
5
|
+
it('returns the value', () => {
|
|
6
|
+
const value = 'test';
|
|
7
|
+
const result = ensureDefined(value, 'testField');
|
|
8
|
+
expect(result).toBe('test');
|
|
9
|
+
});
|
|
10
|
+
it('returns zero', () => {
|
|
11
|
+
const result = ensureDefined(0, 'numberField');
|
|
12
|
+
expect(result).toBe(0);
|
|
13
|
+
});
|
|
14
|
+
it('returns empty string', () => {
|
|
15
|
+
const result = ensureDefined('', 'stringField');
|
|
16
|
+
expect(result).toBe('');
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
describe('when value is null', () => {
|
|
20
|
+
it('throws error with field name', () => {
|
|
21
|
+
expect(() => ensureDefined(null, 'testField')).toThrow('Expected testField to be defined, but got null');
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
describe('when value is undefined', () => {
|
|
25
|
+
it('throws error with field name', () => {
|
|
26
|
+
expect(() => ensureDefined(undefined, 'testField')).toThrow('Expected testField to be defined, but got undefined');
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=validation.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.test.js","sourceRoot":"","sources":["../../../src/types/__tests__/validation.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7C,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC3B,MAAM,KAAK,GAAG,MAAM,CAAA;YACpB,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC7B,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;YACtB,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;YAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;YAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAA;QAC1G,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAA;QACpH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { JSONSchema7 } from 'json-schema';
|
|
2
|
+
/**
|
|
3
|
+
* Represents any valid JSON value.
|
|
4
|
+
* This type ensures type safety for JSON-serializable data.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* const value: JSONValue = { key: 'value', nested: { arr: [1, 2, 3] } }
|
|
9
|
+
* const text: JSONValue = 'hello'
|
|
10
|
+
* const num: JSONValue = 42
|
|
11
|
+
* const bool: JSONValue = true
|
|
12
|
+
* const nothing: JSONValue = null
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export type JSONValue = string | number | boolean | null | {
|
|
16
|
+
[key: string]: JSONValue;
|
|
17
|
+
} | JSONValue[];
|
|
18
|
+
/**
|
|
19
|
+
* Represents a JSON Schema definition.
|
|
20
|
+
* Used for defining the structure of tool inputs and outputs.
|
|
21
|
+
*
|
|
22
|
+
* This is based on JSON Schema Draft 7 specification.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* const schema: JSONSchema = {
|
|
27
|
+
* type: 'object',
|
|
28
|
+
* properties: {
|
|
29
|
+
* name: { type: 'string' },
|
|
30
|
+
* age: { type: 'number' }
|
|
31
|
+
* },
|
|
32
|
+
* required: ['name']
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export type JSONSchema = JSONSchema7;
|
|
37
|
+
/**
|
|
38
|
+
* Creates a deep copy of a value using JSON serialization.
|
|
39
|
+
*
|
|
40
|
+
* @param value - The value to copy
|
|
41
|
+
* @returns A deep copy of the value
|
|
42
|
+
* @throws Error if the value cannot be JSON serialized
|
|
43
|
+
*/
|
|
44
|
+
export declare function deepCopy(value: unknown): JSONValue;
|
|
45
|
+
//# sourceMappingURL=json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/types/json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,SAAS,EAAE,CAAA;AAErG;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,UAAU,GAAG,WAAW,CAAA;AAEpC;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAOlD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a deep copy of a value using JSON serialization.
|
|
3
|
+
*
|
|
4
|
+
* @param value - The value to copy
|
|
5
|
+
* @returns A deep copy of the value
|
|
6
|
+
* @throws Error if the value cannot be JSON serialized
|
|
7
|
+
*/
|
|
8
|
+
export function deepCopy(value) {
|
|
9
|
+
try {
|
|
10
|
+
return JSON.parse(JSON.stringify(value));
|
|
11
|
+
}
|
|
12
|
+
catch (error) {
|
|
13
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
14
|
+
throw new Error(`Unable to serialize tool result: ${errorMessage}`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/types/json.ts"],"names":[],"mappings":"AAqCA;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAc,CAAA;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3E,MAAM,IAAI,KAAK,CAAC,oCAAoC,YAAY,EAAE,CAAC,CAAA;IACrE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import type { JSONValue } from './json';
|
|
2
|
+
import type { ToolResultContent } from '../tools/types';
|
|
3
|
+
/**
|
|
4
|
+
* A message in a conversation between user and assistant.
|
|
5
|
+
* Each message has a role (user or assistant) and an array of content blocks.
|
|
6
|
+
*/
|
|
7
|
+
export interface Message {
|
|
8
|
+
/**
|
|
9
|
+
* Discriminator for message type.
|
|
10
|
+
*/
|
|
11
|
+
type: 'message';
|
|
12
|
+
/**
|
|
13
|
+
* The role of the message sender.
|
|
14
|
+
*/
|
|
15
|
+
role: Role;
|
|
16
|
+
/**
|
|
17
|
+
* Array of content blocks that make up this message.
|
|
18
|
+
*/
|
|
19
|
+
content: ContentBlock[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Role of a message in a conversation.
|
|
23
|
+
* Can be either 'user' (human input) or 'assistant' (model response).
|
|
24
|
+
*/
|
|
25
|
+
export type Role = 'user' | 'assistant';
|
|
26
|
+
/**
|
|
27
|
+
* A block of content within a message.
|
|
28
|
+
* Content blocks can contain text, tool usage requests, tool results, reasoning content, or cache points.
|
|
29
|
+
*
|
|
30
|
+
* This is a discriminated union where the `type` field determines the content format.
|
|
31
|
+
*/
|
|
32
|
+
export type ContentBlock = TextBlock | ToolUseBlock | ToolResultBlock | ReasoningBlock | CachePointBlock;
|
|
33
|
+
/**
|
|
34
|
+
* Text content block within a message.
|
|
35
|
+
*/
|
|
36
|
+
export interface TextBlock {
|
|
37
|
+
/**
|
|
38
|
+
* Discriminator for text content.
|
|
39
|
+
*/
|
|
40
|
+
type: 'textBlock';
|
|
41
|
+
/**
|
|
42
|
+
* Plain text content.
|
|
43
|
+
*/
|
|
44
|
+
text: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Tool use content block within a message.
|
|
48
|
+
*/
|
|
49
|
+
export interface ToolUseBlock {
|
|
50
|
+
/**
|
|
51
|
+
* Discriminator for tool use content.
|
|
52
|
+
*/
|
|
53
|
+
type: 'toolUseBlock';
|
|
54
|
+
/**
|
|
55
|
+
* The name of the tool to execute.
|
|
56
|
+
*/
|
|
57
|
+
name: string;
|
|
58
|
+
/**
|
|
59
|
+
* Unique identifier for this tool use instance.
|
|
60
|
+
*/
|
|
61
|
+
toolUseId: string;
|
|
62
|
+
/**
|
|
63
|
+
* The input parameters for the tool.
|
|
64
|
+
* This can be any JSON-serializable value.
|
|
65
|
+
*/
|
|
66
|
+
input: JSONValue;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Tool result content block within a message.
|
|
70
|
+
*/
|
|
71
|
+
export interface ToolResultBlock {
|
|
72
|
+
/**
|
|
73
|
+
* Discriminator for tool result content.
|
|
74
|
+
*/
|
|
75
|
+
type: 'toolResultBlock';
|
|
76
|
+
/**
|
|
77
|
+
* The ID of the tool use that this result corresponds to.
|
|
78
|
+
*/
|
|
79
|
+
toolUseId: string;
|
|
80
|
+
/**
|
|
81
|
+
* Status of the tool execution.
|
|
82
|
+
*/
|
|
83
|
+
status: 'success' | 'error';
|
|
84
|
+
/**
|
|
85
|
+
* The content returned by the tool.
|
|
86
|
+
*/
|
|
87
|
+
content: ToolResultContent[];
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Reasoning content block within a message.
|
|
91
|
+
*/
|
|
92
|
+
export interface ReasoningBlock {
|
|
93
|
+
/**
|
|
94
|
+
* Discriminator for reasoning content.
|
|
95
|
+
*/
|
|
96
|
+
type: 'reasoningBlock';
|
|
97
|
+
/**
|
|
98
|
+
* The text content of the reasoning process.
|
|
99
|
+
*/
|
|
100
|
+
text?: string;
|
|
101
|
+
/**
|
|
102
|
+
* A cryptographic signature for verification purposes.
|
|
103
|
+
*/
|
|
104
|
+
signature?: string;
|
|
105
|
+
/**
|
|
106
|
+
* The redacted content of the reasoning process.
|
|
107
|
+
*/
|
|
108
|
+
redactedContent?: Uint8Array;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Cache point block for prompt caching.
|
|
112
|
+
* Marks a position in a message or system prompt where caching should occur.
|
|
113
|
+
*/
|
|
114
|
+
export interface CachePointBlock {
|
|
115
|
+
/**
|
|
116
|
+
* Discriminator for cache point.
|
|
117
|
+
*/
|
|
118
|
+
type: 'cachePointBlock';
|
|
119
|
+
/**
|
|
120
|
+
* The cache type. Currently only 'default' is supported.
|
|
121
|
+
*/
|
|
122
|
+
cacheType: 'default';
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Reason why the model stopped generating content.
|
|
126
|
+
*
|
|
127
|
+
* - `contentFiltered` - Content was filtered by safety mechanisms
|
|
128
|
+
* - `endTurn` - Natural end of the model's turn
|
|
129
|
+
* - `guardrailIntervened` - A guardrail policy stopped generation
|
|
130
|
+
* - `maxTokens` - Maximum token limit was reached
|
|
131
|
+
* - `stopSequence` - A stop sequence was encountered
|
|
132
|
+
* - `toolUse` - Model wants to use a tool
|
|
133
|
+
*/
|
|
134
|
+
export type StopReason = 'contentFiltered' | 'endTurn' | 'guardrailIntervened' | 'maxTokens' | 'stopSequence' | 'toolUse' | 'modelContextWindowExceeded' | string;
|
|
135
|
+
/**
|
|
136
|
+
* System prompt for guiding model behavior.
|
|
137
|
+
* Can be a simple string or an array of content blocks for advanced caching.
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```typescript
|
|
141
|
+
* // Simple string
|
|
142
|
+
* const prompt: SystemPrompt = 'You are a helpful assistant'
|
|
143
|
+
*
|
|
144
|
+
* // Array with cache points for advanced caching
|
|
145
|
+
* const prompt: SystemPrompt = [
|
|
146
|
+
* { type: 'textBlock', text: 'You are a helpful assistant' },
|
|
147
|
+
* { type: 'textBlock', text: largeContextDocument },
|
|
148
|
+
* { type: 'cachePointBlock', cacheType: 'default' }
|
|
149
|
+
* ]
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
export type SystemPrompt = string | SystemContentBlock[];
|
|
153
|
+
/**
|
|
154
|
+
* A block of content within a system prompt.
|
|
155
|
+
* Supports text content and cache points for prompt caching.
|
|
156
|
+
*
|
|
157
|
+
* This is a discriminated union where the `type` field determines the block format.
|
|
158
|
+
*/
|
|
159
|
+
export type SystemContentBlock = TextBlock | CachePointBlock;
|
|
160
|
+
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/types/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAEvD;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,IAAI,EAAE,SAAS,CAAA;IAEf;;OAEG;IACH,IAAI,EAAE,IAAI,CAAA;IAEV;;OAEG;IACH,OAAO,EAAE,YAAY,EAAE,CAAA;CACxB;AAED;;;GAGG;AACH,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,WAAW,CAAA;AAEvC;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,eAAe,GAAG,cAAc,GAAG,eAAe,CAAA;AAExG;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,IAAI,EAAE,WAAW,CAAA;IAEjB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,EAAE,cAAc,CAAA;IAEpB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;;OAGG;IACH,KAAK,EAAE,SAAS,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,IAAI,EAAE,iBAAiB,CAAA;IAEvB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,MAAM,EAAE,SAAS,GAAG,OAAO,CAAA;IAE3B;;OAEG;IACH,OAAO,EAAE,iBAAiB,EAAE,CAAA;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,EAAE,gBAAgB,CAAA;IAEtB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,eAAe,CAAC,EAAE,UAAU,CAAA;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,IAAI,EAAE,iBAAiB,CAAA;IAEvB;;OAEG;IACH,SAAS,EAAE,SAAS,CAAA;CACrB;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,UAAU,GAClB,iBAAiB,GACjB,SAAS,GACT,qBAAqB,GACrB,WAAW,GACX,cAAc,GACd,SAAS,GACT,4BAA4B,GAC5B,MAAM,CAAA;AAEV;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,kBAAkB,EAAE,CAAA;AAExD;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,eAAe,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/types/messages.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ensures a value is defined, throwing an error if it's null or undefined.
|
|
3
|
+
*
|
|
4
|
+
* @param value - The value to check
|
|
5
|
+
* @param fieldName - Name of the field for error reporting
|
|
6
|
+
* @returns The value if defined
|
|
7
|
+
* @throws Error if value is null or undefined
|
|
8
|
+
*/
|
|
9
|
+
export declare function ensureDefined<T>(value: T | null | undefined, fieldName: string): T;
|
|
10
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/types/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,CAKlF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ensures a value is defined, throwing an error if it's null or undefined.
|
|
3
|
+
*
|
|
4
|
+
* @param value - The value to check
|
|
5
|
+
* @param fieldName - Name of the field for error reporting
|
|
6
|
+
* @returns The value if defined
|
|
7
|
+
* @throws Error if value is null or undefined
|
|
8
|
+
*/
|
|
9
|
+
export function ensureDefined(value, fieldName) {
|
|
10
|
+
if (value == null) {
|
|
11
|
+
throw new Error(`Expected ${fieldName} to be defined, but got ${value}`);
|
|
12
|
+
}
|
|
13
|
+
return value;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/types/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAI,KAA2B,EAAE,SAAiB;IAC7E,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,YAAY,SAAS,2BAA2B,KAAK,EAAE,CAAC,CAAA;IAC1E,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bash.test.d.ts","sourceRoot":"","sources":["../../../../vended_tools/bash/__tests__/bash.test.ts"],"names":[],"mappings":""}
|