@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,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a default appender function for the current environment.
|
|
3
|
+
* Uses process.stdout.write in Node.js and console.log in browsers.
|
|
4
|
+
* @returns Appender function that writes text to the output destination
|
|
5
|
+
*/
|
|
6
|
+
export function getDefaultAppender() {
|
|
7
|
+
// Check if we're in Node.js environment with stdout
|
|
8
|
+
if (typeof process !== 'undefined' && process.stdout?.write) {
|
|
9
|
+
return (text) => process.stdout.write(text);
|
|
10
|
+
}
|
|
11
|
+
// Fall back to console.log for browser environment
|
|
12
|
+
return (text) => console.log(text);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Default implementation of the Printer interface.
|
|
16
|
+
* Outputs text, reasoning, and tool execution activity to the configured appender.
|
|
17
|
+
*/
|
|
18
|
+
export class AgentPrinter {
|
|
19
|
+
_appender;
|
|
20
|
+
_inReasoningBlock = false;
|
|
21
|
+
_toolCount = 0;
|
|
22
|
+
_needReasoningIndent = false;
|
|
23
|
+
/**
|
|
24
|
+
* Creates a new AgentPrinter.
|
|
25
|
+
* @param appender - Function that writes text to the output destination
|
|
26
|
+
*/
|
|
27
|
+
constructor(appender) {
|
|
28
|
+
this._appender = appender;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Write content to the output destination.
|
|
32
|
+
* @param content - The content to write
|
|
33
|
+
*/
|
|
34
|
+
write(content) {
|
|
35
|
+
this._appender(content);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Process a streaming event from the agent.
|
|
39
|
+
* Handles text deltas, reasoning content, and tool execution events.
|
|
40
|
+
* @param event - The event to process
|
|
41
|
+
*/
|
|
42
|
+
processEvent(event) {
|
|
43
|
+
switch (event.type) {
|
|
44
|
+
case 'modelContentBlockDeltaEvent':
|
|
45
|
+
this.handleContentBlockDelta(event);
|
|
46
|
+
break;
|
|
47
|
+
case 'modelContentBlockStartEvent':
|
|
48
|
+
this.handleContentBlockStart(event);
|
|
49
|
+
break;
|
|
50
|
+
case 'modelContentBlockStopEvent':
|
|
51
|
+
this.handleContentBlockStop();
|
|
52
|
+
break;
|
|
53
|
+
case 'toolResultBlock':
|
|
54
|
+
this.handleToolResult(event);
|
|
55
|
+
break;
|
|
56
|
+
// Ignore other event types
|
|
57
|
+
default:
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Handle content block delta events (text or reasoning).
|
|
63
|
+
*/
|
|
64
|
+
handleContentBlockDelta(event) {
|
|
65
|
+
const { delta } = event;
|
|
66
|
+
if (delta.type === 'textDelta') {
|
|
67
|
+
// Output text immediately
|
|
68
|
+
if (delta.text && delta.text.length > 0) {
|
|
69
|
+
this.write(delta.text);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else if (delta.type === 'reasoningContentDelta') {
|
|
73
|
+
// Start reasoning block if not already in one
|
|
74
|
+
if (!this._inReasoningBlock) {
|
|
75
|
+
this._inReasoningBlock = true;
|
|
76
|
+
this._needReasoningIndent = true;
|
|
77
|
+
this.write('\n💭 Reasoning:\n');
|
|
78
|
+
}
|
|
79
|
+
// Stream reasoning text with proper indentation
|
|
80
|
+
if (delta.text && delta.text.length > 0) {
|
|
81
|
+
this.writeReasoningText(delta.text);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Ignore toolUseInputDelta and other delta types
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Write reasoning text with proper indentation after newlines.
|
|
88
|
+
*/
|
|
89
|
+
writeReasoningText(text) {
|
|
90
|
+
let output = '';
|
|
91
|
+
for (let i = 0; i < text.length; i++) {
|
|
92
|
+
const char = text[i];
|
|
93
|
+
// Add indentation if needed (at start or after newline)
|
|
94
|
+
if (this._needReasoningIndent && char !== '\n') {
|
|
95
|
+
output += ' ';
|
|
96
|
+
this._needReasoningIndent = false;
|
|
97
|
+
}
|
|
98
|
+
output += char;
|
|
99
|
+
// Mark that we need indentation after a newline
|
|
100
|
+
if (char === '\n') {
|
|
101
|
+
this._needReasoningIndent = true;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
this.write(output);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Handle content block start events.
|
|
108
|
+
* Detects tool use starts.
|
|
109
|
+
*/
|
|
110
|
+
handleContentBlockStart(event) {
|
|
111
|
+
if (event.start?.type === 'toolUseStart') {
|
|
112
|
+
// Tool execution starting
|
|
113
|
+
this._toolCount++;
|
|
114
|
+
this.write(`\n🔧 Tool #${this._toolCount}: ${event.start.name}\n`);
|
|
115
|
+
}
|
|
116
|
+
// Don't assume reasoning blocks on contentBlockStart - wait for reasoningContentDelta
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Handle content block stop events.
|
|
120
|
+
* Closes reasoning blocks if we were in one.
|
|
121
|
+
*/
|
|
122
|
+
handleContentBlockStop() {
|
|
123
|
+
if (this._inReasoningBlock) {
|
|
124
|
+
// End reasoning block with a newline if we didn't just write one
|
|
125
|
+
if (!this._needReasoningIndent) {
|
|
126
|
+
this.write('\n');
|
|
127
|
+
}
|
|
128
|
+
this._inReasoningBlock = false;
|
|
129
|
+
this._needReasoningIndent = false;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Handle tool result events.
|
|
134
|
+
* Outputs completion status.
|
|
135
|
+
*/
|
|
136
|
+
handleToolResult(event) {
|
|
137
|
+
if (event.status === 'success') {
|
|
138
|
+
this.write('✓ Tool completed\n');
|
|
139
|
+
}
|
|
140
|
+
else if (event.status === 'error') {
|
|
141
|
+
this.write('✗ Tool failed\n');
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=printer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"printer.js","sourceRoot":"","sources":["../../../src/agent/printer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { type JSONValue } from '../types/json.js';
|
|
2
|
+
/**
|
|
3
|
+
* Agent state provides key-value storage outside conversation context.
|
|
4
|
+
* State is not passed to the model during inference but is accessible
|
|
5
|
+
* by tools (via ToolContext) and application logic.
|
|
6
|
+
*
|
|
7
|
+
* All values are deep copied on get/set operations to prevent reference mutations.
|
|
8
|
+
* Values must be JSON serializable.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const state = new AgentState({ userId: 'user-123' })
|
|
13
|
+
* state.set('sessionId', 'session-456')
|
|
14
|
+
* const userId = state.get('userId') // 'user-123'
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare class AgentState {
|
|
18
|
+
private _state;
|
|
19
|
+
/**
|
|
20
|
+
* Creates a new AgentState instance.
|
|
21
|
+
*
|
|
22
|
+
* @param initialState - Optional initial state values
|
|
23
|
+
* @throws Error if initialState is not JSON serializable
|
|
24
|
+
*/
|
|
25
|
+
constructor(initialState?: Record<string, JSONValue>);
|
|
26
|
+
/**
|
|
27
|
+
* Get a state value by key with optional type-safe property lookup.
|
|
28
|
+
* Returns a deep copy to prevent mutations.
|
|
29
|
+
*
|
|
30
|
+
* @typeParam TState - The complete state interface type
|
|
31
|
+
* @typeParam K - The property key (inferred from argument)
|
|
32
|
+
* @param key - Key to retrieve specific value
|
|
33
|
+
* @returns The value for the key, or undefined if key doesn't exist
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* // Typed usage
|
|
38
|
+
* const user = state.get<AppState>('user') // { name: string; age: number } | undefined
|
|
39
|
+
*
|
|
40
|
+
* // Untyped usage
|
|
41
|
+
* const value = state.get('someKey') // JSONValue | undefined
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
get<TState, K extends keyof TState = keyof TState>(key: K): TState[K] | undefined;
|
|
45
|
+
get(key: string): JSONValue | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* Set a state value with optional type-safe property validation.
|
|
48
|
+
* Validates JSON serializability and stores a deep copy.
|
|
49
|
+
*
|
|
50
|
+
* @typeParam TState - The complete state interface type
|
|
51
|
+
* @typeParam K - The property key (inferred from argument)
|
|
52
|
+
* @param key - The key to set
|
|
53
|
+
* @param value - The value to store (must be JSON serializable)
|
|
54
|
+
* @throws Error if value is not JSON serializable
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* // Typed usage
|
|
59
|
+
* state.set<AppState>('user', { name: 'Alice', age: 25 })
|
|
60
|
+
*
|
|
61
|
+
* // Untyped usage
|
|
62
|
+
* state.set('someKey', { any: 'value' })
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
set<TState, K extends keyof TState = keyof TState>(key: K, value: TState[K]): void;
|
|
66
|
+
set(key: string, value: unknown): void;
|
|
67
|
+
/**
|
|
68
|
+
* Delete a state value by key with optional type-safe property validation.
|
|
69
|
+
*
|
|
70
|
+
* @typeParam TState - The complete state interface type
|
|
71
|
+
* @typeParam K - The property key (inferred from argument)
|
|
72
|
+
* @param key - The key to delete
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```typescript
|
|
76
|
+
* // Typed usage
|
|
77
|
+
* state.delete<AppState>('user')
|
|
78
|
+
*
|
|
79
|
+
* // Untyped usage
|
|
80
|
+
* state.delete('someKey')
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
delete<TState, K extends keyof TState = keyof TState>(key: K): void;
|
|
84
|
+
delete(key: string): void;
|
|
85
|
+
/**
|
|
86
|
+
* Clear all state values.
|
|
87
|
+
*/
|
|
88
|
+
clear(): void;
|
|
89
|
+
/**
|
|
90
|
+
* Get a copy of all state as an object.
|
|
91
|
+
*
|
|
92
|
+
* @returns Deep copy of all state
|
|
93
|
+
*/
|
|
94
|
+
getAll(): Record<string, JSONValue>;
|
|
95
|
+
/**
|
|
96
|
+
* Get all state keys.
|
|
97
|
+
*
|
|
98
|
+
* @returns Array of state keys
|
|
99
|
+
*/
|
|
100
|
+
keys(): string[];
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/agent/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEnF;;;;;;;;;;;;;;GAcG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA2B;IAEzC;;;;;OAKG;gBACS,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;IAQpD;;;;;;;;;;;;;;;;;OAiBG;IACH,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS;IACjF,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAevC;;;;;;;;;;;;;;;;;;OAkBG;IACH,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;IAClF,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAKtC;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,MAAM,EAAE,CAAC,SAAS,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI;IACnE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKzB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;;OAIG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;IAInC;;;;OAIG;IACH,IAAI,IAAI,MAAM,EAAE;CAGjB"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { deepCopy, deepCopyWithValidation } from '../types/json.js';
|
|
2
|
+
/**
|
|
3
|
+
* Agent state provides key-value storage outside conversation context.
|
|
4
|
+
* State is not passed to the model during inference but is accessible
|
|
5
|
+
* by tools (via ToolContext) and application logic.
|
|
6
|
+
*
|
|
7
|
+
* All values are deep copied on get/set operations to prevent reference mutations.
|
|
8
|
+
* Values must be JSON serializable.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const state = new AgentState({ userId: 'user-123' })
|
|
13
|
+
* state.set('sessionId', 'session-456')
|
|
14
|
+
* const userId = state.get('userId') // 'user-123'
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export class AgentState {
|
|
18
|
+
_state;
|
|
19
|
+
/**
|
|
20
|
+
* Creates a new AgentState instance.
|
|
21
|
+
*
|
|
22
|
+
* @param initialState - Optional initial state values
|
|
23
|
+
* @throws Error if initialState is not JSON serializable
|
|
24
|
+
*/
|
|
25
|
+
constructor(initialState) {
|
|
26
|
+
if (initialState !== undefined) {
|
|
27
|
+
this._state = deepCopyWithValidation(initialState, 'initialState');
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
this._state = {};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
get(key) {
|
|
34
|
+
if (key == null) {
|
|
35
|
+
throw new Error('key is required');
|
|
36
|
+
}
|
|
37
|
+
const value = this._state[key];
|
|
38
|
+
if (value === undefined) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
// Return deep copy to prevent mutations
|
|
42
|
+
return deepCopy(value);
|
|
43
|
+
}
|
|
44
|
+
set(key, value) {
|
|
45
|
+
this._state[key] = deepCopyWithValidation(value, `value for key "${key}"`);
|
|
46
|
+
}
|
|
47
|
+
delete(key) {
|
|
48
|
+
delete this._state[key];
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Clear all state values.
|
|
52
|
+
*/
|
|
53
|
+
clear() {
|
|
54
|
+
this._state = {};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get a copy of all state as an object.
|
|
58
|
+
*
|
|
59
|
+
* @returns Deep copy of all state
|
|
60
|
+
*/
|
|
61
|
+
getAll() {
|
|
62
|
+
return deepCopy(this._state);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Get all state keys.
|
|
66
|
+
*
|
|
67
|
+
* @returns Array of state keys
|
|
68
|
+
*/
|
|
69
|
+
keys() {
|
|
70
|
+
return Object.keys(this._state);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/agent/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAkB,MAAM,kBAAkB,CAAA;AAEnF;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,UAAU;IACb,MAAM,CAA2B;IAEzC;;;;;OAKG;IACH,YAAY,YAAwC;QAClD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,sBAAsB,CAAC,YAAY,EAAE,cAAc,CAA8B,CAAA;QACjG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;QAClB,CAAC;IACH,CAAC;IAsBD,GAAG,CAAC,GAAW;QACb,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACpC,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,wCAAwC;QACxC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC;IAuBD,GAAG,CAAC,GAAW,EAAE,KAAc;QAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,GAAG,CAAC,CAAA;IAC5E,CAAC;IAoBD,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;IAClB,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAA8B,CAAA;IAC3D,CAAC;IAED;;;;OAIG;IACH,IAAI;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACjC,CAAC;CACF"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { ModelStreamEvent } from '../models/streaming.js';
|
|
2
|
+
import { ToolStreamEvent } from '../tools/tool.js';
|
|
3
|
+
import type { ContentBlock, Message } from '../types/messages.js';
|
|
4
|
+
/**
|
|
5
|
+
* Union type representing all possible streaming events from an agent.
|
|
6
|
+
* This includes model events, tool events, and agent-specific lifecycle events.
|
|
7
|
+
*
|
|
8
|
+
* This is a discriminated union where each event has a unique type field,
|
|
9
|
+
* allowing for type-safe event handling using switch statements.
|
|
10
|
+
*/
|
|
11
|
+
export type AgentStreamEvent = ModelStreamEvent | ContentBlock | ToolStreamEvent | BeforeModelEvent | AfterModelEvent | BeforeToolsEvent | AfterToolsEvent | BeforeInvocationEvent | AfterInvocationEvent;
|
|
12
|
+
/**
|
|
13
|
+
* Event emitted before invoking the model provider.
|
|
14
|
+
*/
|
|
15
|
+
export interface BeforeModelEvent {
|
|
16
|
+
/**
|
|
17
|
+
* Discriminator for before model events.
|
|
18
|
+
*/
|
|
19
|
+
type: 'beforeModelEvent';
|
|
20
|
+
/**
|
|
21
|
+
* The messages that will be sent to the model.
|
|
22
|
+
*/
|
|
23
|
+
messages: Message[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Event emitted after the model provider completes.
|
|
27
|
+
*/
|
|
28
|
+
export interface AfterModelEvent {
|
|
29
|
+
/**
|
|
30
|
+
* Discriminator for after model events.
|
|
31
|
+
*/
|
|
32
|
+
type: 'afterModelEvent';
|
|
33
|
+
/**
|
|
34
|
+
* The assistant message returned by the model.
|
|
35
|
+
*/
|
|
36
|
+
message: Message;
|
|
37
|
+
/**
|
|
38
|
+
* The stop reason from the model response.
|
|
39
|
+
*/
|
|
40
|
+
stopReason: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Event emitted before executing tools.
|
|
44
|
+
*/
|
|
45
|
+
export interface BeforeToolsEvent {
|
|
46
|
+
/**
|
|
47
|
+
* Discriminator for before tools events.
|
|
48
|
+
*/
|
|
49
|
+
type: 'beforeToolsEvent';
|
|
50
|
+
/**
|
|
51
|
+
* The assistant message containing tool use blocks.
|
|
52
|
+
*/
|
|
53
|
+
message: Message;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Event emitted after all tools complete execution.
|
|
57
|
+
*/
|
|
58
|
+
export interface AfterToolsEvent {
|
|
59
|
+
/**
|
|
60
|
+
* Discriminator for after tools events.
|
|
61
|
+
*/
|
|
62
|
+
type: 'afterToolsEvent';
|
|
63
|
+
/**
|
|
64
|
+
* The user message containing tool results that will be added to the message array.
|
|
65
|
+
*/
|
|
66
|
+
message: Message;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Event emitted at the start of the agent loop (before any iterations).
|
|
70
|
+
*/
|
|
71
|
+
export interface BeforeInvocationEvent {
|
|
72
|
+
/**
|
|
73
|
+
* Discriminator for before invocation events.
|
|
74
|
+
*/
|
|
75
|
+
type: 'beforeInvocationEvent';
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Event emitted at the end of the agent loop (after all iterations complete).
|
|
79
|
+
*/
|
|
80
|
+
export interface AfterInvocationEvent {
|
|
81
|
+
/**
|
|
82
|
+
* Discriminator for after invocation events.
|
|
83
|
+
*/
|
|
84
|
+
type: 'afterInvocationEvent';
|
|
85
|
+
/**
|
|
86
|
+
* Optional error that caused the loop to terminate.
|
|
87
|
+
* Present if the loop is completing due to an exception.
|
|
88
|
+
*/
|
|
89
|
+
error?: Error;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=streaming.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../../src/agent/streaming.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAEjE;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GACxB,gBAAgB,GAChB,YAAY,GACZ,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,qBAAqB,GACrB,oBAAoB,CAAA;AAExB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,IAAI,EAAE,kBAAkB,CAAA;IAExB;;OAEG;IACH,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,IAAI,EAAE,iBAAiB,CAAA;IAEvB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;IAEhB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,IAAI,EAAE,kBAAkB,CAAA;IAExB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,IAAI,EAAE,iBAAiB,CAAA;IAEvB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,IAAI,EAAE,uBAAuB,CAAA;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,IAAI,EAAE,sBAAsB,CAAA;IAE5B;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAA;CACd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../../src/agent/streaming.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-manager.test.d.ts","sourceRoot":"","sources":["../../../../src/conversation-manager/__tests__/conversation-manager.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { ConversationManager } from '../conversation-manager.js';
|
|
3
|
+
describe('ConversationManager', () => {
|
|
4
|
+
// ConversationManager is an abstract base class
|
|
5
|
+
// Specific implementations are tested in their own test files
|
|
6
|
+
it('is an abstract class', () => {
|
|
7
|
+
expect(ConversationManager).toBeDefined();
|
|
8
|
+
});
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=conversation-manager.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-manager.test.js","sourceRoot":"","sources":["../../../../src/conversation-manager/__tests__/conversation-manager.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEhE,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,gDAAgD;IAChD,8DAA8D;IAE9D,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,CAAC,mBAAmB,CAAC,CAAC,WAAW,EAAE,CAAA;IAC3C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"null-conversation-manager.test.d.ts","sourceRoot":"","sources":["../../../../src/conversation-manager/__tests__/null-conversation-manager.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { NullConversationManager } from '../null-conversation-manager.js';
|
|
3
|
+
import { Message, TextBlock } from '../../index.js';
|
|
4
|
+
import { HookRegistryImplementation } from '../../hooks/registry.js';
|
|
5
|
+
import { AfterInvocationEvent, AfterModelCallEvent } from '../../hooks/events.js';
|
|
6
|
+
import { ContextWindowOverflowError } from '../../errors.js';
|
|
7
|
+
import { createMockAgent } from '../../__fixtures__/agent-helpers.js';
|
|
8
|
+
describe('NullConversationManager', () => {
|
|
9
|
+
describe('behavior', () => {
|
|
10
|
+
it('does not modify conversation history', async () => {
|
|
11
|
+
const manager = new NullConversationManager();
|
|
12
|
+
const messages = [
|
|
13
|
+
new Message({ role: 'user', content: [new TextBlock('Hello')] }),
|
|
14
|
+
new Message({ role: 'assistant', content: [new TextBlock('Hi there')] }),
|
|
15
|
+
];
|
|
16
|
+
const mockAgent = createMockAgent({ messages });
|
|
17
|
+
const registry = new HookRegistryImplementation();
|
|
18
|
+
manager.registerCallbacks(registry);
|
|
19
|
+
await registry.invokeCallbacks(new AfterInvocationEvent({ agent: mockAgent }));
|
|
20
|
+
expect(mockAgent.messages).toHaveLength(2);
|
|
21
|
+
expect(mockAgent.messages[0].content[0]).toEqual({ type: 'textBlock', text: 'Hello' });
|
|
22
|
+
expect(mockAgent.messages[1].content[0]).toEqual({ type: 'textBlock', text: 'Hi there' });
|
|
23
|
+
});
|
|
24
|
+
it('does not set retryModelCall on context overflow', async () => {
|
|
25
|
+
const manager = new NullConversationManager();
|
|
26
|
+
const mockAgent = createMockAgent();
|
|
27
|
+
const error = new ContextWindowOverflowError('Context overflow');
|
|
28
|
+
const registry = new HookRegistryImplementation();
|
|
29
|
+
manager.registerCallbacks(registry);
|
|
30
|
+
const event = await registry.invokeCallbacks(new AfterModelCallEvent({ agent: mockAgent, error }));
|
|
31
|
+
expect(event.retryModelCall).toBeUndefined();
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=null-conversation-manager.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"null-conversation-manager.test.js","sourceRoot":"","sources":["../../../../src/conversation-manager/__tests__/null-conversation-manager.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AACzE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAErE,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,OAAO,GAAG,IAAI,uBAAuB,EAAE,CAAA;YAC7C,MAAM,QAAQ,GAAG;gBACf,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;gBAChE,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;aACzE,CAAA;YACD,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;YAE/C,MAAM,QAAQ,GAAG,IAAI,0BAA0B,EAAE,CAAA;YACjD,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;YAEnC,MAAM,QAAQ,CAAC,eAAe,CAAC,IAAI,oBAAoB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;YAE9E,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;YAC1C,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;YACvF,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;QAC5F,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,OAAO,GAAG,IAAI,uBAAuB,EAAE,CAAA;YAC7C,MAAM,SAAS,GAAG,eAAe,EAAE,CAAA;YACnC,MAAM,KAAK,GAAG,IAAI,0BAA0B,CAAC,kBAAkB,CAAC,CAAA;YAEhE,MAAM,QAAQ,GAAG,IAAI,0BAA0B,EAAE,CAAA;YACjD,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;YAEnC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,IAAI,mBAAmB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;YAElG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,aAAa,EAAE,CAAA;QAC9C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sliding-window-conversation-manager.test.d.ts","sourceRoot":"","sources":["../../../../src/conversation-manager/__tests__/sliding-window-conversation-manager.test.ts"],"names":[],"mappings":""}
|