@strands-agents/sdk 1.0.0-rc.5 → 1.1.0
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 +340 -0
- package/dist/src/__fixtures__/agent-helpers.d.ts +22 -1
- package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/agent-helpers.js +45 -1
- package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
- package/dist/src/__fixtures__/mock-plugin.d.ts.map +1 -1
- package/dist/src/__fixtures__/mock-plugin.js +3 -1
- package/dist/src/__fixtures__/mock-plugin.js.map +1 -1
- package/dist/src/__fixtures__/tool-helpers.d.ts +5 -2
- package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/tool-helpers.js +23 -4
- package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
- package/dist/src/__tests__/interrupt.test.d.ts +2 -0
- package/dist/src/__tests__/interrupt.test.d.ts.map +1 -0
- package/dist/src/__tests__/interrupt.test.js +259 -0
- package/dist/src/__tests__/interrupt.test.js.map +1 -0
- package/dist/src/__tests__/mcp.test.js +448 -2
- package/dist/src/__tests__/mcp.test.js.map +1 -1
- package/dist/src/a2a/__tests__/events.test.js +2 -0
- package/dist/src/a2a/__tests__/events.test.js.map +1 -1
- package/dist/src/a2a/__tests__/executor.test.js +16 -5
- package/dist/src/a2a/__tests__/executor.test.js.map +1 -1
- package/dist/src/a2a/a2a-agent.d.ts +8 -3
- package/dist/src/a2a/a2a-agent.d.ts.map +1 -1
- package/dist/src/a2a/a2a-agent.js +12 -6
- package/dist/src/a2a/a2a-agent.js.map +1 -1
- package/dist/src/a2a/executor.d.ts +13 -0
- package/dist/src/a2a/executor.d.ts.map +1 -1
- package/dist/src/a2a/executor.js +19 -1
- package/dist/src/a2a/executor.js.map +1 -1
- package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js +23 -0
- package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.cancel.test.js +1 -1
- package/dist/src/agent/__tests__/agent.cancel.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.concurrent.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.concurrent.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.concurrent.test.js +488 -0
- package/dist/src/agent/__tests__/agent.concurrent.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.hook.test.js +724 -12
- package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.interrupt.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.interrupt.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.interrupt.test.js +730 -0
- package/dist/src/agent/__tests__/agent.interrupt.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.invocation-state.test.js +219 -0
- package/dist/src/agent/__tests__/agent.invocation-state.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.model-retry.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.model-retry.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.model-retry.test.js +161 -0
- package/dist/src/agent/__tests__/agent.model-retry.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.stateful-model.test.js +169 -0
- package/dist/src/agent/__tests__/agent.stateful-model.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.test.js +217 -2
- package/dist/src/agent/__tests__/agent.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.tracer.test.node.js +39 -0
- package/dist/src/agent/__tests__/agent.tracer.test.node.js.map +1 -1
- package/dist/src/agent/__tests__/snapshot.test.js +51 -4
- package/dist/src/agent/__tests__/snapshot.test.js.map +1 -1
- package/dist/src/agent/agent-as-tool.d.ts.map +1 -1
- package/dist/src/agent/agent-as-tool.js +4 -2
- package/dist/src/agent/agent-as-tool.js.map +1 -1
- package/dist/src/agent/agent.d.ts +109 -4
- package/dist/src/agent/agent.d.ts.map +1 -1
- package/dist/src/agent/agent.js +790 -224
- package/dist/src/agent/agent.js.map +1 -1
- package/dist/src/agent/snapshot.d.ts +2 -2
- package/dist/src/agent/snapshot.d.ts.map +1 -1
- package/dist/src/agent/snapshot.js +20 -2
- package/dist/src/agent/snapshot.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +230 -9
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +19 -6
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +58 -4
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js +76 -1
- package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/conversation-manager.d.ts +67 -22
- package/dist/src/conversation-manager/conversation-manager.d.ts.map +1 -1
- package/dist/src/conversation-manager/conversation-manager.js +65 -13
- package/dist/src/conversation-manager/conversation-manager.js.map +1 -1
- package/dist/src/conversation-manager/index.d.ts +1 -1
- package/dist/src/conversation-manager/index.d.ts.map +1 -1
- package/dist/src/conversation-manager/index.js +1 -1
- package/dist/src/conversation-manager/index.js.map +1 -1
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +17 -3
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -1
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js +10 -4
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -1
- package/dist/src/conversation-manager/summarizing-conversation-manager.d.ts +23 -1
- package/dist/src/conversation-manager/summarizing-conversation-manager.d.ts.map +1 -1
- package/dist/src/conversation-manager/summarizing-conversation-manager.js +39 -17
- package/dist/src/conversation-manager/summarizing-conversation-manager.js.map +1 -1
- package/dist/src/errors.d.ts +11 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +12 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/hooks/__tests__/events.test.js +267 -73
- package/dist/src/hooks/__tests__/events.test.js.map +1 -1
- package/dist/src/hooks/__tests__/registry.test.js +182 -18
- package/dist/src/hooks/__tests__/registry.test.js.map +1 -1
- package/dist/src/hooks/events.d.ts +193 -51
- package/dist/src/hooks/events.d.ts.map +1 -1
- package/dist/src/hooks/events.js +182 -26
- package/dist/src/hooks/events.js.map +1 -1
- package/dist/src/hooks/index.d.ts +3 -2
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +1 -0
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/hooks/registry.d.ts +12 -12
- package/dist/src/hooks/registry.d.ts.map +1 -1
- package/dist/src/hooks/registry.js +55 -15
- package/dist/src/hooks/registry.js.map +1 -1
- package/dist/src/hooks/types.d.ts +23 -0
- package/dist/src/hooks/types.d.ts.map +1 -1
- package/dist/src/hooks/types.js +17 -1
- package/dist/src/hooks/types.js.map +1 -1
- package/dist/src/index.d.ts +12 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/interrupt.d.ts +220 -0
- package/dist/src/interrupt.d.ts.map +1 -0
- package/dist/src/interrupt.js +274 -0
- package/dist/src/interrupt.js.map +1 -0
- package/dist/src/logging/__tests__/warn-once.test.d.ts +2 -0
- package/dist/src/logging/__tests__/warn-once.test.d.ts.map +1 -0
- package/dist/src/logging/__tests__/warn-once.test.js +30 -0
- package/dist/src/logging/__tests__/warn-once.test.js.map +1 -0
- package/dist/src/logging/warn-once.d.ts +13 -0
- package/dist/src/logging/warn-once.d.ts.map +1 -0
- package/dist/src/logging/warn-once.js +18 -0
- package/dist/src/logging/warn-once.js.map +1 -0
- package/dist/src/mcp.d.ts +43 -3
- package/dist/src/mcp.d.ts.map +1 -1
- package/dist/src/mcp.js +85 -17
- package/dist/src/mcp.js.map +1 -1
- package/dist/src/mime.d.ts +2 -1
- package/dist/src/mime.d.ts.map +1 -1
- package/dist/src/mime.js +1 -0
- package/dist/src/mime.js.map +1 -1
- package/dist/src/models/__tests__/anthropic.test.js +147 -3
- package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
- package/dist/src/models/__tests__/bedrock.test.js +228 -2
- package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
- package/dist/src/models/__tests__/defaults.test.d.ts +2 -0
- package/dist/src/models/__tests__/defaults.test.d.ts.map +1 -0
- package/dist/src/models/__tests__/defaults.test.js +36 -0
- package/dist/src/models/__tests__/defaults.test.js.map +1 -0
- package/dist/src/models/__tests__/google.test.js +135 -0
- package/dist/src/models/__tests__/google.test.js.map +1 -1
- package/dist/src/models/__tests__/model.test.js +149 -1
- package/dist/src/models/__tests__/model.test.js.map +1 -1
- package/dist/src/models/anthropic.d.ts +20 -1
- package/dist/src/models/anthropic.d.ts.map +1 -1
- package/dist/src/models/anthropic.js +42 -8
- package/dist/src/models/anthropic.js.map +1 -1
- package/dist/src/models/bedrock.d.ts +27 -1
- package/dist/src/models/bedrock.d.ts.map +1 -1
- package/dist/src/models/bedrock.js +100 -12
- package/dist/src/models/bedrock.js.map +1 -1
- package/dist/src/models/defaults.d.ts +47 -0
- package/dist/src/models/defaults.d.ts.map +1 -0
- package/dist/src/models/defaults.js +170 -0
- package/dist/src/models/defaults.js.map +1 -0
- package/dist/src/models/google/model.d.ts +14 -1
- package/dist/src/models/google/model.d.ts.map +1 -1
- package/dist/src/models/google/model.js +54 -8
- package/dist/src/models/google/model.js.map +1 -1
- package/dist/src/models/google/types.d.ts +8 -0
- package/dist/src/models/google/types.d.ts.map +1 -1
- package/dist/src/models/model.d.ts +65 -0
- package/dist/src/models/model.d.ts.map +1 -1
- package/dist/src/models/model.js +138 -0
- package/dist/src/models/model.js.map +1 -1
- package/dist/src/models/openai/__tests__/chat.test.d.ts +2 -0
- package/dist/src/models/openai/__tests__/chat.test.d.ts.map +1 -0
- package/dist/src/models/{__tests__/openai.test.js → openai/__tests__/chat.test.js} +117 -7
- package/dist/src/models/openai/__tests__/chat.test.js.map +1 -0
- package/dist/src/models/openai/__tests__/responses.test.d.ts +2 -0
- package/dist/src/models/openai/__tests__/responses.test.d.ts.map +1 -0
- package/dist/src/models/openai/__tests__/responses.test.js +668 -0
- package/dist/src/models/openai/__tests__/responses.test.js.map +1 -0
- package/dist/src/models/openai/chat-adapter.d.ts +33 -0
- package/dist/src/models/openai/chat-adapter.d.ts.map +1 -0
- package/dist/src/models/openai/chat-adapter.js +383 -0
- package/dist/src/models/openai/chat-adapter.js.map +1 -0
- package/dist/src/models/openai/errors.d.ts +16 -0
- package/dist/src/models/openai/errors.d.ts.map +1 -0
- package/dist/src/models/openai/errors.js +40 -0
- package/dist/src/models/openai/errors.js.map +1 -0
- package/dist/src/models/openai/formatting.d.ts +18 -0
- package/dist/src/models/openai/formatting.d.ts.map +1 -0
- package/dist/src/models/openai/formatting.js +38 -0
- package/dist/src/models/openai/formatting.js.map +1 -0
- package/dist/src/models/openai/index.d.ts +19 -0
- package/dist/src/models/openai/index.d.ts.map +1 -0
- package/dist/src/models/openai/index.js +18 -0
- package/dist/src/models/openai/index.js.map +1 -0
- package/dist/src/models/openai/model.d.ts +77 -0
- package/dist/src/models/openai/model.d.ts.map +1 -0
- package/dist/src/models/openai/model.js +211 -0
- package/dist/src/models/openai/model.js.map +1 -0
- package/dist/src/models/openai/responses-adapter.d.ts +78 -0
- package/dist/src/models/openai/responses-adapter.d.ts.map +1 -0
- package/dist/src/models/openai/responses-adapter.js +467 -0
- package/dist/src/models/openai/responses-adapter.js.map +1 -0
- package/dist/src/models/openai/types.d.ts +131 -0
- package/dist/src/models/openai/types.d.ts.map +1 -0
- package/dist/src/models/openai/types.js +5 -0
- package/dist/src/models/openai/types.js.map +1 -0
- package/dist/src/multiagent/__tests__/events.test.js +122 -28
- package/dist/src/multiagent/__tests__/events.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/graph.invocation-state.test.js +95 -0
- package/dist/src/multiagent/__tests__/graph.invocation-state.test.js.map +1 -0
- package/dist/src/multiagent/__tests__/graph.test.js +69 -0
- package/dist/src/multiagent/__tests__/graph.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/nodes.test.js +18 -2
- package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js +56 -0
- package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js.map +1 -0
- package/dist/src/multiagent/__tests__/swarm.test.js +77 -0
- package/dist/src/multiagent/__tests__/swarm.test.js.map +1 -1
- package/dist/src/multiagent/events.d.ts +19 -1
- package/dist/src/multiagent/events.d.ts.map +1 -1
- package/dist/src/multiagent/events.js +18 -0
- package/dist/src/multiagent/events.js.map +1 -1
- package/dist/src/multiagent/graph.d.ts +27 -5
- package/dist/src/multiagent/graph.d.ts.map +1 -1
- package/dist/src/multiagent/graph.js +61 -15
- package/dist/src/multiagent/graph.js.map +1 -1
- package/dist/src/multiagent/index.d.ts +1 -1
- package/dist/src/multiagent/index.d.ts.map +1 -1
- package/dist/src/multiagent/multiagent.d.ts +21 -6
- package/dist/src/multiagent/multiagent.d.ts.map +1 -1
- package/dist/src/multiagent/nodes.d.ts +28 -3
- package/dist/src/multiagent/nodes.d.ts.map +1 -1
- package/dist/src/multiagent/nodes.js +42 -7
- package/dist/src/multiagent/nodes.js.map +1 -1
- package/dist/src/multiagent/swarm.d.ts +20 -4
- package/dist/src/multiagent/swarm.d.ts.map +1 -1
- package/dist/src/multiagent/swarm.js +65 -16
- package/dist/src/multiagent/swarm.js.map +1 -1
- package/dist/src/plugins/__tests__/registry.test.js +1 -1
- package/dist/src/plugins/__tests__/registry.test.js.map +1 -1
- package/dist/src/plugins/model-plugin.d.ts +20 -0
- package/dist/src/plugins/model-plugin.d.ts.map +1 -0
- package/dist/src/plugins/model-plugin.js +29 -0
- package/dist/src/plugins/model-plugin.js.map +1 -0
- package/dist/src/registry/__tests__/tool-registry.test.js +11 -0
- package/dist/src/registry/__tests__/tool-registry.test.js.map +1 -1
- package/dist/src/registry/tool-registry.d.ts +4 -0
- package/dist/src/registry/tool-registry.d.ts.map +1 -1
- package/dist/src/registry/tool-registry.js +6 -0
- package/dist/src/registry/tool-registry.js.map +1 -1
- package/dist/src/retry/__tests__/backoff-strategy.test.d.ts +2 -0
- package/dist/src/retry/__tests__/backoff-strategy.test.d.ts.map +1 -0
- package/dist/src/retry/__tests__/backoff-strategy.test.js +116 -0
- package/dist/src/retry/__tests__/backoff-strategy.test.js.map +1 -0
- package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts +2 -0
- package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts.map +1 -0
- package/dist/src/retry/__tests__/default-model-retry-strategy.test.js +225 -0
- package/dist/src/retry/__tests__/default-model-retry-strategy.test.js.map +1 -0
- package/dist/src/retry/backoff-strategy.d.ts +108 -0
- package/dist/src/retry/backoff-strategy.d.ts.map +1 -0
- package/dist/src/retry/backoff-strategy.js +86 -0
- package/dist/src/retry/backoff-strategy.js.map +1 -0
- package/dist/src/retry/default-model-retry-strategy.d.ts +76 -0
- package/dist/src/retry/default-model-retry-strategy.d.ts.map +1 -0
- package/dist/src/retry/default-model-retry-strategy.js +104 -0
- package/dist/src/retry/default-model-retry-strategy.js.map +1 -0
- package/dist/src/retry/index.d.ts +8 -0
- package/dist/src/retry/index.d.ts.map +1 -0
- package/dist/src/retry/index.js +7 -0
- package/dist/src/retry/index.js.map +1 -0
- package/dist/src/retry/model-retry-strategy.d.ts +80 -0
- package/dist/src/retry/model-retry-strategy.d.ts.map +1 -0
- package/dist/src/retry/model-retry-strategy.js +85 -0
- package/dist/src/retry/model-retry-strategy.js.map +1 -0
- package/dist/src/retry/retry-strategy.d.ts +34 -0
- package/dist/src/retry/retry-strategy.d.ts.map +1 -0
- package/dist/src/retry/retry-strategy.js +25 -0
- package/dist/src/retry/retry-strategy.js.map +1 -0
- package/dist/src/session/__tests__/session-manager.test.js +52 -11
- package/dist/src/session/__tests__/session-manager.test.js.map +1 -1
- package/dist/src/session/session-manager.d.ts +6 -0
- package/dist/src/session/session-manager.d.ts.map +1 -1
- package/dist/src/session/session-manager.js +17 -0
- package/dist/src/session/session-manager.js.map +1 -1
- package/dist/src/telemetry/__tests__/meter.test.js +23 -0
- package/dist/src/telemetry/__tests__/meter.test.js.map +1 -1
- package/dist/src/telemetry/meter.d.ts +15 -0
- package/dist/src/telemetry/meter.d.ts.map +1 -1
- package/dist/src/telemetry/meter.js +14 -0
- package/dist/src/telemetry/meter.js.map +1 -1
- package/dist/src/tools/__tests__/tool.test.js +24 -1
- package/dist/src/tools/__tests__/tool.test.js.map +1 -1
- package/dist/src/tools/function-tool.d.ts.map +1 -1
- package/dist/src/tools/function-tool.js +6 -1
- package/dist/src/tools/function-tool.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +24 -3
- package/dist/src/tools/mcp-tool.d.ts.map +1 -1
- package/dist/src/tools/mcp-tool.js +103 -31
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/tool.d.ts +21 -2
- package/dist/src/tools/tool.d.ts.map +1 -1
- package/dist/src/tools/tool.js +12 -0
- package/dist/src/tools/tool.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types/__tests__/agent.test.js +48 -0
- package/dist/src/types/__tests__/agent.test.js.map +1 -1
- package/dist/src/types/agent.d.ts +77 -9
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/agent.js +30 -6
- package/dist/src/types/agent.js.map +1 -1
- package/dist/src/types/elicitation.d.ts +15 -0
- package/dist/src/types/elicitation.d.ts.map +1 -0
- package/dist/src/types/elicitation.js +2 -0
- package/dist/src/types/elicitation.js.map +1 -0
- package/dist/src/types/interrupt.d.ts +103 -0
- package/dist/src/types/interrupt.d.ts.map +1 -0
- package/dist/src/types/interrupt.js +63 -0
- package/dist/src/types/interrupt.js.map +1 -0
- package/dist/src/types/messages.d.ts +2 -1
- package/dist/src/types/messages.d.ts.map +1 -1
- package/dist/src/types/messages.js.map +1 -1
- package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts +2 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts.map +1 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js +292 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js.map +1 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts +2 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts.map +1 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js +148 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js.map +1 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts +2 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts.map +1 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js +78 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js.map +1 -0
- package/dist/src/vended-plugins/context-offloader/index.d.ts +23 -0
- package/dist/src/vended-plugins/context-offloader/index.d.ts.map +1 -0
- package/dist/src/vended-plugins/context-offloader/index.js +21 -0
- package/dist/src/vended-plugins/context-offloader/index.js.map +1 -0
- package/dist/src/vended-plugins/context-offloader/plugin.d.ts +48 -0
- package/dist/src/vended-plugins/context-offloader/plugin.d.ts.map +1 -0
- package/dist/src/vended-plugins/context-offloader/plugin.js +244 -0
- package/dist/src/vended-plugins/context-offloader/plugin.js.map +1 -0
- package/dist/src/vended-plugins/context-offloader/storage.d.ts +114 -0
- package/dist/src/vended-plugins/context-offloader/storage.d.ts.map +1 -0
- package/dist/src/vended-plugins/context-offloader/storage.js +204 -0
- package/dist/src/vended-plugins/context-offloader/storage.js.map +1 -0
- package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js +21 -5
- package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js.map +1 -1
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +4 -0
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +1 -1
- package/dist/src/vended-tools/bash/bash.d.ts.map +1 -1
- package/dist/src/vended-tools/bash/bash.js +0 -3
- package/dist/src/vended-tools/bash/bash.js.map +1 -1
- package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js +4 -0
- package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +1 -1
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +4 -0
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +1 -1
- package/package.json +17 -9
- package/dist/src/models/__tests__/openai.test.d.ts +0 -2
- package/dist/src/models/__tests__/openai.test.d.ts.map +0 -1
- package/dist/src/models/__tests__/openai.test.js.map +0 -1
- package/dist/src/models/openai.d.ts +0 -312
- package/dist/src/models/openai.d.ts.map +0 -1
- package/dist/src/models/openai.js +0 -789
- package/dist/src/models/openai.js.map +0 -1
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
2
2
|
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
3
|
-
import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import { McpError, ErrorCode, ElicitRequestSchema, UrlElicitationRequiredError, } from '@modelcontextprotocol/sdk/types.js';
|
|
4
4
|
import { McpClient } from '../mcp.js';
|
|
5
5
|
import { McpTool } from '../tools/mcp-tool.js';
|
|
6
6
|
import { JsonBlock } from '../types/messages.js';
|
|
7
|
+
import { ImageBlock } from '../types/media.js';
|
|
7
8
|
import { context, propagation, trace, TraceFlags } from '@opentelemetry/api';
|
|
9
|
+
import { logger } from '../logging/index.js';
|
|
8
10
|
/**
|
|
9
11
|
* Helper to create a mock async generator that yields a result message.
|
|
10
12
|
* This simulates the behavior of callToolStream returning a stream that ends with a result.
|
|
@@ -21,6 +23,11 @@ vi.mock('@modelcontextprotocol/sdk/client/index.js', () => ({
|
|
|
21
23
|
close: vi.fn(),
|
|
22
24
|
listTools: vi.fn(),
|
|
23
25
|
callTool: vi.fn(),
|
|
26
|
+
setRequestHandler: vi.fn(),
|
|
27
|
+
setNotificationHandler: vi.fn(),
|
|
28
|
+
getServerCapabilities: vi.fn(),
|
|
29
|
+
getServerVersion: vi.fn(),
|
|
30
|
+
getInstructions: vi.fn(),
|
|
24
31
|
experimental: {
|
|
25
32
|
tasks: {
|
|
26
33
|
callToolStream: vi.fn(),
|
|
@@ -81,6 +88,22 @@ describe('MCP Integration', () => {
|
|
|
81
88
|
afterEach(() => {
|
|
82
89
|
vi.restoreAllMocks();
|
|
83
90
|
});
|
|
91
|
+
function createElicitationClient(callback) {
|
|
92
|
+
const resultsLengthBefore = vi.mocked(Client).mock.results.length;
|
|
93
|
+
const elicitClient = new McpClient({
|
|
94
|
+
applicationName: 'TestApp',
|
|
95
|
+
transport: mockTransport,
|
|
96
|
+
elicitationCallback: callback,
|
|
97
|
+
});
|
|
98
|
+
const elicitSdkClientMock = vi.mocked(Client).mock.results[resultsLengthBefore].value;
|
|
99
|
+
return { elicitClient, elicitSdkClientMock };
|
|
100
|
+
}
|
|
101
|
+
async function connectAndGetElicitationHandler(callback) {
|
|
102
|
+
const { elicitClient, elicitSdkClientMock } = createElicitationClient(callback);
|
|
103
|
+
await elicitClient.connect();
|
|
104
|
+
const handler = elicitSdkClientMock.setRequestHandler.mock.calls[0][1];
|
|
105
|
+
return { handler, elicitSdkClientMock };
|
|
106
|
+
}
|
|
84
107
|
describe('McpClient', () => {
|
|
85
108
|
let client;
|
|
86
109
|
let sdkClientMock;
|
|
@@ -92,7 +115,7 @@ describe('MCP Integration', () => {
|
|
|
92
115
|
sdkClientMock = vi.mocked(Client).mock.results[0].value;
|
|
93
116
|
});
|
|
94
117
|
it('initializes SDK client with correct configuration', () => {
|
|
95
|
-
expect(Client).toHaveBeenCalledWith({ name: 'TestApp', version: '0.0.1' });
|
|
118
|
+
expect(Client).toHaveBeenCalledWith({ name: 'TestApp', version: '0.0.1' }, undefined);
|
|
96
119
|
});
|
|
97
120
|
it('injects trace context into tool arguments when active span exists', async () => {
|
|
98
121
|
mockActiveSpan();
|
|
@@ -180,6 +203,41 @@ describe('MCP Integration', () => {
|
|
|
180
203
|
expect(tools[0]).toBeInstanceOf(McpTool);
|
|
181
204
|
expect(tools[0].name).toBe('weather');
|
|
182
205
|
});
|
|
206
|
+
it('paginates through all pages of tools', async () => {
|
|
207
|
+
sdkClientMock.listTools
|
|
208
|
+
.mockResolvedValueOnce({
|
|
209
|
+
tools: [{ name: 'tool_a', description: 'A', inputSchema: {} }],
|
|
210
|
+
nextCursor: 'page2',
|
|
211
|
+
})
|
|
212
|
+
.mockResolvedValueOnce({
|
|
213
|
+
tools: [{ name: 'tool_b', description: 'B', inputSchema: {} }],
|
|
214
|
+
nextCursor: 'page3',
|
|
215
|
+
})
|
|
216
|
+
.mockResolvedValueOnce({
|
|
217
|
+
tools: [{ name: 'tool_c', description: 'C', inputSchema: {} }],
|
|
218
|
+
});
|
|
219
|
+
const tools = await client.listTools();
|
|
220
|
+
expect(tools).toHaveLength(3);
|
|
221
|
+
expect(tools.map((t) => t.name)).toEqual(['tool_a', 'tool_b', 'tool_c']);
|
|
222
|
+
expect(sdkClientMock.listTools).toHaveBeenCalledTimes(3);
|
|
223
|
+
expect(sdkClientMock.listTools).toHaveBeenNthCalledWith(1, undefined);
|
|
224
|
+
expect(sdkClientMock.listTools).toHaveBeenNthCalledWith(2, { cursor: 'page2' });
|
|
225
|
+
expect(sdkClientMock.listTools).toHaveBeenNthCalledWith(3, { cursor: 'page3' });
|
|
226
|
+
});
|
|
227
|
+
it('generates description fallback when description is missing', async () => {
|
|
228
|
+
sdkClientMock.listTools.mockResolvedValue({
|
|
229
|
+
tools: [{ name: 'my_tool', inputSchema: {} }],
|
|
230
|
+
});
|
|
231
|
+
const tools = await client.listTools();
|
|
232
|
+
expect(tools[0].description).toBe('Tool which performs my_tool');
|
|
233
|
+
});
|
|
234
|
+
it('generates description fallback when description is empty string', async () => {
|
|
235
|
+
sdkClientMock.listTools.mockResolvedValue({
|
|
236
|
+
tools: [{ name: 'my_tool', description: '', inputSchema: {} }],
|
|
237
|
+
});
|
|
238
|
+
const tools = await client.listTools();
|
|
239
|
+
expect(tools[0].description).toBe('Tool which performs my_tool');
|
|
240
|
+
});
|
|
183
241
|
it('uses callTool when tasksConfig is undefined (default)', async () => {
|
|
184
242
|
const tool = new McpTool({ name: 'calc', description: '', inputSchema: {}, client });
|
|
185
243
|
sdkClientMock.callTool.mockResolvedValue({ content: [] });
|
|
@@ -228,6 +286,93 @@ describe('MCP Integration', () => {
|
|
|
228
286
|
expect(sdkClientMock.close).toHaveBeenCalled();
|
|
229
287
|
expect(mockTransport.close).toHaveBeenCalled();
|
|
230
288
|
});
|
|
289
|
+
it('supports Symbol.asyncDispose for await using pattern', async () => {
|
|
290
|
+
await client[Symbol.asyncDispose]();
|
|
291
|
+
expect(sdkClientMock.close).toHaveBeenCalled();
|
|
292
|
+
expect(mockTransport.close).toHaveBeenCalled();
|
|
293
|
+
});
|
|
294
|
+
it('registers elicitation handler before connecting when callback is provided', async () => {
|
|
295
|
+
const resultsLengthBefore = vi.mocked(Client).mock.results.length;
|
|
296
|
+
const callback = vi.fn();
|
|
297
|
+
const elicitClient = new McpClient({
|
|
298
|
+
applicationName: 'TestApp',
|
|
299
|
+
transport: mockTransport,
|
|
300
|
+
elicitationCallback: callback,
|
|
301
|
+
});
|
|
302
|
+
const elicitSdkClientMock = vi.mocked(Client).mock.results[resultsLengthBefore].value;
|
|
303
|
+
await elicitClient.connect();
|
|
304
|
+
expect(elicitSdkClientMock.setRequestHandler).toHaveBeenCalledWith(ElicitRequestSchema, expect.any(Function));
|
|
305
|
+
const setHandlerOrder = elicitSdkClientMock.setRequestHandler.mock.invocationCallOrder[0];
|
|
306
|
+
const connectOrder = elicitSdkClientMock.connect.mock.invocationCallOrder[0];
|
|
307
|
+
expect(setHandlerOrder).toBeLessThan(connectOrder);
|
|
308
|
+
});
|
|
309
|
+
it('does not register elicitation handler when no callback is provided', async () => {
|
|
310
|
+
await client.connect();
|
|
311
|
+
expect(sdkClientMock.setRequestHandler).not.toHaveBeenCalled();
|
|
312
|
+
});
|
|
313
|
+
it('passes elicitation capabilities to Client when callback is provided', () => {
|
|
314
|
+
const callback = vi.fn();
|
|
315
|
+
new McpClient({
|
|
316
|
+
applicationName: 'TestApp',
|
|
317
|
+
transport: mockTransport,
|
|
318
|
+
elicitationCallback: callback,
|
|
319
|
+
});
|
|
320
|
+
const lastCall = vi.mocked(Client).mock.calls.at(-1);
|
|
321
|
+
expect(lastCall[1]).toEqual({ capabilities: { elicitation: { form: {}, url: {} } } });
|
|
322
|
+
});
|
|
323
|
+
it('elicitation handler returns accepted result with content', async () => {
|
|
324
|
+
const callbackResult = { action: 'accept', content: { username: 'alice' } };
|
|
325
|
+
const callback = vi.fn().mockResolvedValue(callbackResult);
|
|
326
|
+
const { handler } = await connectAndGetElicitationHandler(callback);
|
|
327
|
+
const request = {
|
|
328
|
+
method: 'elicitation/create',
|
|
329
|
+
params: { message: 'Enter username', requestedSchema: { type: 'object' } },
|
|
330
|
+
};
|
|
331
|
+
const extra = { signal: new AbortController().signal };
|
|
332
|
+
const result = await handler(request, extra);
|
|
333
|
+
expect(callback).toHaveBeenCalledWith(extra, request.params);
|
|
334
|
+
expect(result).toEqual({ action: 'accept', content: { username: 'alice' } });
|
|
335
|
+
});
|
|
336
|
+
it.each([{ action: 'decline' }, { action: 'cancel' }])('elicitation handler returns $action result', async (callbackResult) => {
|
|
337
|
+
const callback = vi.fn().mockResolvedValue(callbackResult);
|
|
338
|
+
const { handler } = await connectAndGetElicitationHandler(callback);
|
|
339
|
+
const request = {
|
|
340
|
+
method: 'elicitation/create',
|
|
341
|
+
params: { message: 'Enter username', requestedSchema: { type: 'object' } },
|
|
342
|
+
};
|
|
343
|
+
const extra = { signal: new AbortController().signal };
|
|
344
|
+
const result = await handler(request, extra);
|
|
345
|
+
expect(callback).toHaveBeenCalledWith(extra, request.params);
|
|
346
|
+
expect(result).toEqual({ action: callbackResult.action });
|
|
347
|
+
});
|
|
348
|
+
it('elicitation handler works for URL mode params', async () => {
|
|
349
|
+
const callbackResult = { action: 'accept' };
|
|
350
|
+
const callback = vi.fn().mockResolvedValue(callbackResult);
|
|
351
|
+
const { handler } = await connectAndGetElicitationHandler(callback);
|
|
352
|
+
const request = {
|
|
353
|
+
method: 'elicitation/create',
|
|
354
|
+
params: {
|
|
355
|
+
mode: 'url',
|
|
356
|
+
message: 'Please authenticate',
|
|
357
|
+
url: 'https://example.com/auth',
|
|
358
|
+
elicitationId: 'elicit-123',
|
|
359
|
+
},
|
|
360
|
+
};
|
|
361
|
+
const extra = { signal: new AbortController().signal };
|
|
362
|
+
const result = await handler(request, extra);
|
|
363
|
+
expect(callback).toHaveBeenCalledWith(extra, request.params);
|
|
364
|
+
expect(result).toEqual({ action: 'accept' });
|
|
365
|
+
});
|
|
366
|
+
it('elicitation callback errors propagate', async () => {
|
|
367
|
+
const callback = vi.fn().mockRejectedValue(new Error('User cancelled'));
|
|
368
|
+
const { handler } = await connectAndGetElicitationHandler(callback);
|
|
369
|
+
const request = {
|
|
370
|
+
method: 'elicitation/create',
|
|
371
|
+
params: { message: 'Confirm?' },
|
|
372
|
+
};
|
|
373
|
+
const extra = { signal: new AbortController().signal };
|
|
374
|
+
await expect(handler(request, extra)).rejects.toThrow('User cancelled');
|
|
375
|
+
});
|
|
231
376
|
});
|
|
232
377
|
describe('McpTool', () => {
|
|
233
378
|
const mockClientWrapper = { callTool: vi.fn() };
|
|
@@ -240,6 +385,10 @@ describe('MCP Integration', () => {
|
|
|
240
385
|
const toolContext = {
|
|
241
386
|
toolUse: { toolUseId: 'id-123', name: 'weather', input: { city: 'NYC' } },
|
|
242
387
|
agent: {},
|
|
388
|
+
invocationState: {},
|
|
389
|
+
interrupt: () => {
|
|
390
|
+
throw new Error('interrupt not available in mock context');
|
|
391
|
+
},
|
|
243
392
|
};
|
|
244
393
|
it('returns text results on success', async () => {
|
|
245
394
|
vi.mocked(mockClientWrapper.callTool).mockResolvedValue({
|
|
@@ -286,6 +435,84 @@ describe('MCP Integration', () => {
|
|
|
286
435
|
expect(result.status).toBe('error');
|
|
287
436
|
expect(result.content[0].text).toContain('missing content array');
|
|
288
437
|
});
|
|
438
|
+
it('maps MCP image content to ImageBlock', async () => {
|
|
439
|
+
// "iVBOR..." is a minimal base64 PNG prefix
|
|
440
|
+
const base64Data = 'iVBORw0KGgoAAAANSUhEUg==';
|
|
441
|
+
vi.mocked(mockClientWrapper.callTool).mockResolvedValue({
|
|
442
|
+
content: [{ type: 'image', data: base64Data, mimeType: 'image/png' }],
|
|
443
|
+
});
|
|
444
|
+
const result = await runTool(tool.stream(toolContext));
|
|
445
|
+
expect(result.status).toBe('success');
|
|
446
|
+
expect(result.content).toHaveLength(1);
|
|
447
|
+
const imageBlock = result.content[0];
|
|
448
|
+
expect(imageBlock).toBeInstanceOf(ImageBlock);
|
|
449
|
+
expect(imageBlock.format).toBe('png');
|
|
450
|
+
expect(imageBlock.source.type).toBe('imageSourceBytes');
|
|
451
|
+
});
|
|
452
|
+
it('falls back to JsonBlock for unsupported image mime type', async () => {
|
|
453
|
+
vi.mocked(mockClientWrapper.callTool).mockResolvedValue({
|
|
454
|
+
content: [{ type: 'image', data: 'abc123', mimeType: 'image/bmp' }],
|
|
455
|
+
});
|
|
456
|
+
const result = await runTool(tool.stream(toolContext));
|
|
457
|
+
expect(result.content[0]).toBeInstanceOf(JsonBlock);
|
|
458
|
+
});
|
|
459
|
+
it('falls back to JsonBlock for image content missing data', async () => {
|
|
460
|
+
vi.mocked(mockClientWrapper.callTool).mockResolvedValue({
|
|
461
|
+
content: [{ type: 'image', mimeType: 'image/png' }],
|
|
462
|
+
});
|
|
463
|
+
const result = await runTool(tool.stream(toolContext));
|
|
464
|
+
expect(result.content[0]).toBeInstanceOf(JsonBlock);
|
|
465
|
+
});
|
|
466
|
+
it('maps MCP text resource to TextBlock', async () => {
|
|
467
|
+
vi.mocked(mockClientWrapper.callTool).mockResolvedValue({
|
|
468
|
+
content: [
|
|
469
|
+
{ type: 'resource', resource: { uri: 'file:///doc.txt', text: 'hello world', mimeType: 'text/plain' } },
|
|
470
|
+
],
|
|
471
|
+
});
|
|
472
|
+
const result = await runTool(tool.stream(toolContext));
|
|
473
|
+
expect(result.status).toBe('success');
|
|
474
|
+
expect(result.content[0].text).toBe('hello world');
|
|
475
|
+
});
|
|
476
|
+
it('maps MCP blob resource with image mime type to ImageBlock', async () => {
|
|
477
|
+
const base64Data = 'iVBORw0KGgoAAAANSUhEUg==';
|
|
478
|
+
vi.mocked(mockClientWrapper.callTool).mockResolvedValue({
|
|
479
|
+
content: [{ type: 'resource', resource: { uri: 'file:///img.png', blob: base64Data, mimeType: 'image/jpeg' } }],
|
|
480
|
+
});
|
|
481
|
+
const result = await runTool(tool.stream(toolContext));
|
|
482
|
+
expect(result.content[0]).toBeInstanceOf(ImageBlock);
|
|
483
|
+
expect(result.content[0].format).toBe('jpeg');
|
|
484
|
+
});
|
|
485
|
+
it('falls back to JsonBlock for blob resource with non-image mime type', async () => {
|
|
486
|
+
vi.mocked(mockClientWrapper.callTool).mockResolvedValue({
|
|
487
|
+
content: [
|
|
488
|
+
{ type: 'resource', resource: { uri: 'file:///doc.pdf', blob: 'abc123', mimeType: 'application/pdf' } },
|
|
489
|
+
],
|
|
490
|
+
});
|
|
491
|
+
const result = await runTool(tool.stream(toolContext));
|
|
492
|
+
expect(result.content[0]).toBeInstanceOf(JsonBlock);
|
|
493
|
+
});
|
|
494
|
+
it('falls back to JsonBlock for resource with neither text nor blob', async () => {
|
|
495
|
+
vi.mocked(mockClientWrapper.callTool).mockResolvedValue({
|
|
496
|
+
content: [{ type: 'resource', resource: { uri: 'file:///unknown' } }],
|
|
497
|
+
});
|
|
498
|
+
const result = await runTool(tool.stream(toolContext));
|
|
499
|
+
expect(result.content[0]).toBeInstanceOf(JsonBlock);
|
|
500
|
+
});
|
|
501
|
+
it('handles mixed content types in a single result', async () => {
|
|
502
|
+
const base64Data = 'iVBORw0KGgoAAAANSUhEUg==';
|
|
503
|
+
vi.mocked(mockClientWrapper.callTool).mockResolvedValue({
|
|
504
|
+
content: [
|
|
505
|
+
{ type: 'text', text: 'Here is the image:' },
|
|
506
|
+
{ type: 'image', data: base64Data, mimeType: 'image/png' },
|
|
507
|
+
{ type: 'resource', resource: { uri: 'file:///notes.txt', text: 'Some notes' } },
|
|
508
|
+
],
|
|
509
|
+
});
|
|
510
|
+
const result = await runTool(tool.stream(toolContext));
|
|
511
|
+
expect(result.content).toHaveLength(3);
|
|
512
|
+
expect(result.content[0].text).toBe('Here is the image:');
|
|
513
|
+
expect(result.content[1]).toBeInstanceOf(ImageBlock);
|
|
514
|
+
expect(result.content[2].text).toBe('Some notes');
|
|
515
|
+
});
|
|
289
516
|
it('surfaces elicitation data for McpError with code -32042', async () => {
|
|
290
517
|
const elicitations = [
|
|
291
518
|
{
|
|
@@ -331,6 +558,47 @@ describe('MCP Integration', () => {
|
|
|
331
558
|
expect(result.status).toBe('error');
|
|
332
559
|
expect(result.content[0].text).toBe('MCP error -32042: Authorization required');
|
|
333
560
|
});
|
|
561
|
+
it('surfaces elicitation data for UrlElicitationRequiredError', async () => {
|
|
562
|
+
const elicitations = [
|
|
563
|
+
{
|
|
564
|
+
mode: 'url',
|
|
565
|
+
message: 'Please authorize',
|
|
566
|
+
elicitationId: 'e-1',
|
|
567
|
+
url: 'https://example.com/auth',
|
|
568
|
+
},
|
|
569
|
+
];
|
|
570
|
+
const error = new UrlElicitationRequiredError(elicitations, 'Auth required');
|
|
571
|
+
vi.mocked(mockClientWrapper.callTool).mockRejectedValue(error);
|
|
572
|
+
const result = await runTool(tool.stream(toolContext));
|
|
573
|
+
expect(result.status).toBe('error');
|
|
574
|
+
expect(result.content[0].text).toContain('MCP Elicitation required');
|
|
575
|
+
expect(result.content[0].text).toContain('https://example.com/auth');
|
|
576
|
+
});
|
|
577
|
+
it('falls through to generic error for McpError -32042 with undefined data', async () => {
|
|
578
|
+
const mcpError = new McpError(ErrorCode.UrlElicitationRequired, 'Auth required');
|
|
579
|
+
vi.mocked(mockClientWrapper.callTool).mockRejectedValue(mcpError);
|
|
580
|
+
const result = await runTool(tool.stream(toolContext));
|
|
581
|
+
expect(result.status).toBe('error');
|
|
582
|
+
expect(result.content[0].text).toBe('MCP error -32042: Auth required');
|
|
583
|
+
});
|
|
584
|
+
it('falls through to generic error for McpError -32042 with non-array elicitations', async () => {
|
|
585
|
+
const mcpError = new McpError(ErrorCode.UrlElicitationRequired, 'Auth required', {
|
|
586
|
+
elicitations: 'not-an-array',
|
|
587
|
+
});
|
|
588
|
+
vi.mocked(mockClientWrapper.callTool).mockRejectedValue(mcpError);
|
|
589
|
+
const result = await runTool(tool.stream(toolContext));
|
|
590
|
+
expect(result.status).toBe('error');
|
|
591
|
+
expect(result.content[0].text).toBe('MCP error -32042: Auth required');
|
|
592
|
+
});
|
|
593
|
+
it('falls through to generic error for McpError -32042 with empty elicitations', async () => {
|
|
594
|
+
const mcpError = new McpError(ErrorCode.UrlElicitationRequired, 'Auth required', {
|
|
595
|
+
elicitations: [],
|
|
596
|
+
});
|
|
597
|
+
vi.mocked(mockClientWrapper.callTool).mockRejectedValue(mcpError);
|
|
598
|
+
const result = await runTool(tool.stream(toolContext));
|
|
599
|
+
expect(result.status).toBe('error');
|
|
600
|
+
expect(result.content[0].text).toBe('MCP error -32042: Auth required');
|
|
601
|
+
});
|
|
334
602
|
it('falls through to generic error for McpError with a different code', async () => {
|
|
335
603
|
const mcpError = new McpError(ErrorCode.InvalidRequest, 'Bad request');
|
|
336
604
|
vi.mocked(mockClientWrapper.callTool).mockRejectedValue(mcpError);
|
|
@@ -340,4 +608,182 @@ describe('MCP Integration', () => {
|
|
|
340
608
|
});
|
|
341
609
|
});
|
|
342
610
|
});
|
|
611
|
+
describe('server metadata getters', () => {
|
|
612
|
+
let client;
|
|
613
|
+
let sdkClientMock;
|
|
614
|
+
beforeEach(() => {
|
|
615
|
+
vi.clearAllMocks();
|
|
616
|
+
client = new McpClient({ applicationName: 'TestApp', transport: mockTransport });
|
|
617
|
+
sdkClientMock = vi.mocked(Client).mock.results.at(-1).value;
|
|
618
|
+
});
|
|
619
|
+
afterEach(() => {
|
|
620
|
+
vi.restoreAllMocks();
|
|
621
|
+
});
|
|
622
|
+
it('returns undefined for all getters before connect', () => {
|
|
623
|
+
sdkClientMock.getServerCapabilities.mockReturnValue(undefined);
|
|
624
|
+
sdkClientMock.getServerVersion.mockReturnValue(undefined);
|
|
625
|
+
sdkClientMock.getInstructions.mockReturnValue(undefined);
|
|
626
|
+
expect(client.serverCapabilities).toBeUndefined();
|
|
627
|
+
expect(client.serverVersion).toBeUndefined();
|
|
628
|
+
expect(client.serverInstructions).toBeUndefined();
|
|
629
|
+
});
|
|
630
|
+
it('returns serverCapabilities after connect', async () => {
|
|
631
|
+
const caps = { tools: {} };
|
|
632
|
+
sdkClientMock.getServerCapabilities.mockReturnValue(caps);
|
|
633
|
+
await client.connect();
|
|
634
|
+
expect(client.serverCapabilities).toBe(caps);
|
|
635
|
+
});
|
|
636
|
+
it('returns serverVersion after connect', async () => {
|
|
637
|
+
const version = { name: 'my-server', version: '1.2.3' };
|
|
638
|
+
sdkClientMock.getServerVersion.mockReturnValue(version);
|
|
639
|
+
await client.connect();
|
|
640
|
+
expect(client.serverVersion).toBe(version);
|
|
641
|
+
});
|
|
642
|
+
it('returns serverInstructions after connect', async () => {
|
|
643
|
+
sdkClientMock.getInstructions.mockReturnValue('Use this server for X.');
|
|
644
|
+
await client.connect();
|
|
645
|
+
expect(client.serverInstructions).toBe('Use this server for X.');
|
|
646
|
+
});
|
|
647
|
+
it('connectionState is disconnected before connect', () => {
|
|
648
|
+
expect(client.connectionState).toBe('disconnected');
|
|
649
|
+
});
|
|
650
|
+
it('connectionState is connected after successful connect', async () => {
|
|
651
|
+
await client.connect();
|
|
652
|
+
expect(client.connectionState).toBe('connected');
|
|
653
|
+
});
|
|
654
|
+
});
|
|
655
|
+
describe('failOpen', () => {
|
|
656
|
+
let sdkClientMock;
|
|
657
|
+
beforeEach(() => {
|
|
658
|
+
vi.clearAllMocks();
|
|
659
|
+
});
|
|
660
|
+
afterEach(() => {
|
|
661
|
+
vi.restoreAllMocks();
|
|
662
|
+
});
|
|
663
|
+
it('throws on connection failure by default', async () => {
|
|
664
|
+
const client = new McpClient({ applicationName: 'TestApp', transport: mockTransport });
|
|
665
|
+
sdkClientMock = vi.mocked(Client).mock.results.at(-1).value;
|
|
666
|
+
sdkClientMock.connect.mockRejectedValue(new Error('connection refused'));
|
|
667
|
+
await expect(client.connect()).rejects.toThrow('connection refused');
|
|
668
|
+
});
|
|
669
|
+
it('swallows connection failure when failOpen is true', async () => {
|
|
670
|
+
const client = new McpClient({ applicationName: 'TestApp', transport: mockTransport, failOpen: true });
|
|
671
|
+
sdkClientMock = vi.mocked(Client).mock.results.at(-1).value;
|
|
672
|
+
sdkClientMock.connect.mockRejectedValue(new Error('connection refused'));
|
|
673
|
+
await expect(client.connect()).resolves.toBeUndefined();
|
|
674
|
+
});
|
|
675
|
+
it('logs a warning when failOpen swallows a connection failure', async () => {
|
|
676
|
+
const warnSpy = vi.spyOn(logger, 'warn').mockImplementation(() => { });
|
|
677
|
+
const client = new McpClient({ applicationName: 'TestApp', transport: mockTransport, failOpen: true });
|
|
678
|
+
sdkClientMock = vi.mocked(Client).mock.results.at(-1).value;
|
|
679
|
+
sdkClientMock.connect.mockRejectedValue(new Error('connection refused'));
|
|
680
|
+
await client.connect();
|
|
681
|
+
expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('MCP server failed to connect'));
|
|
682
|
+
});
|
|
683
|
+
it('listTools returns empty array when failOpen and connection failed', async () => {
|
|
684
|
+
const client = new McpClient({ applicationName: 'TestApp', transport: mockTransport, failOpen: true });
|
|
685
|
+
sdkClientMock = vi.mocked(Client).mock.results.at(-1).value;
|
|
686
|
+
sdkClientMock.connect.mockRejectedValue(new Error('connection refused'));
|
|
687
|
+
const tools = await client.listTools();
|
|
688
|
+
expect(tools).toEqual([]);
|
|
689
|
+
});
|
|
690
|
+
it('callTool throws when failOpen and connection failed', async () => {
|
|
691
|
+
const client = new McpClient({ applicationName: 'TestApp', transport: mockTransport, failOpen: true });
|
|
692
|
+
sdkClientMock = vi.mocked(Client).mock.results.at(-1).value;
|
|
693
|
+
sdkClientMock.connect.mockRejectedValue(new Error('connection refused'));
|
|
694
|
+
const tool = new McpTool({ name: 'my_tool', description: '', inputSchema: {}, client });
|
|
695
|
+
await expect(client.callTool(tool, {})).rejects.toThrow('MCP server failed to connect. Call connect(true) to retry.');
|
|
696
|
+
});
|
|
697
|
+
it('does not retry connection on subsequent calls after failOpen failure', async () => {
|
|
698
|
+
const client = new McpClient({ applicationName: 'TestApp', transport: mockTransport, failOpen: true });
|
|
699
|
+
sdkClientMock = vi.mocked(Client).mock.results.at(-1).value;
|
|
700
|
+
sdkClientMock.connect.mockRejectedValue(new Error('connection refused'));
|
|
701
|
+
await client.listTools();
|
|
702
|
+
await client.listTools();
|
|
703
|
+
expect(sdkClientMock.connect).toHaveBeenCalledTimes(1);
|
|
704
|
+
});
|
|
705
|
+
it('recovers after explicit connect(true) when server comes back', async () => {
|
|
706
|
+
const client = new McpClient({ applicationName: 'TestApp', transport: mockTransport, failOpen: true });
|
|
707
|
+
sdkClientMock = vi.mocked(Client).mock.results.at(-1).value;
|
|
708
|
+
sdkClientMock.connect.mockRejectedValueOnce(new Error('connection refused'));
|
|
709
|
+
sdkClientMock.listTools.mockResolvedValue({ tools: [] });
|
|
710
|
+
const firstTools = await client.listTools();
|
|
711
|
+
expect(firstTools).toEqual([]);
|
|
712
|
+
expect(client.connectionState).toBe('failed');
|
|
713
|
+
await client.connect(true);
|
|
714
|
+
const secondTools = await client.listTools();
|
|
715
|
+
expect(secondTools).toEqual([]);
|
|
716
|
+
expect(client.connectionState).toBe('connected');
|
|
717
|
+
expect(sdkClientMock.connect).toHaveBeenCalledTimes(2);
|
|
718
|
+
});
|
|
719
|
+
});
|
|
720
|
+
describe('log routing', () => {
|
|
721
|
+
let notificationHandler;
|
|
722
|
+
let sdkClientMock;
|
|
723
|
+
beforeEach(() => {
|
|
724
|
+
vi.clearAllMocks();
|
|
725
|
+
new McpClient({ applicationName: 'TestApp', transport: mockTransport });
|
|
726
|
+
sdkClientMock = vi.mocked(Client).mock.results.at(-1).value;
|
|
727
|
+
// Handler is registered in the constructor — read it from the first setNotificationHandler call
|
|
728
|
+
notificationHandler = sdkClientMock.setNotificationHandler.mock.calls[0][1];
|
|
729
|
+
});
|
|
730
|
+
afterEach(() => {
|
|
731
|
+
vi.restoreAllMocks();
|
|
732
|
+
});
|
|
733
|
+
it('routes debug level to logger.debug', () => {
|
|
734
|
+
const spy = vi.spyOn(logger, 'debug').mockImplementation(() => { });
|
|
735
|
+
notificationHandler({ params: { level: 'debug', data: 'hello' } });
|
|
736
|
+
expect(spy).toHaveBeenCalledWith(expect.stringContaining('hello'));
|
|
737
|
+
});
|
|
738
|
+
it('routes info level to logger.info', () => {
|
|
739
|
+
const spy = vi.spyOn(logger, 'info').mockImplementation(() => { });
|
|
740
|
+
notificationHandler({ params: { level: 'info', data: 'hello' } });
|
|
741
|
+
expect(spy).toHaveBeenCalledWith(expect.stringContaining('hello'));
|
|
742
|
+
});
|
|
743
|
+
it('routes notice level to logger.info', () => {
|
|
744
|
+
const spy = vi.spyOn(logger, 'info').mockImplementation(() => { });
|
|
745
|
+
notificationHandler({ params: { level: 'notice', data: 'hello' } });
|
|
746
|
+
expect(spy).toHaveBeenCalledWith(expect.stringContaining('hello'));
|
|
747
|
+
});
|
|
748
|
+
it('routes warning level to logger.warn', () => {
|
|
749
|
+
const spy = vi.spyOn(logger, 'warn').mockImplementation(() => { });
|
|
750
|
+
notificationHandler({ params: { level: 'warning', data: 'hello' } });
|
|
751
|
+
expect(spy).toHaveBeenCalledWith(expect.stringContaining('hello'));
|
|
752
|
+
});
|
|
753
|
+
it('routes error level to logger.error', () => {
|
|
754
|
+
const spy = vi.spyOn(logger, 'error').mockImplementation(() => { });
|
|
755
|
+
notificationHandler({ params: { level: 'error', data: 'hello' } });
|
|
756
|
+
expect(spy).toHaveBeenCalledWith(expect.stringContaining('hello'));
|
|
757
|
+
});
|
|
758
|
+
it('routes critical level to logger.error', () => {
|
|
759
|
+
const spy = vi.spyOn(logger, 'error').mockImplementation(() => { });
|
|
760
|
+
notificationHandler({ params: { level: 'critical', data: 'hello' } });
|
|
761
|
+
expect(spy).toHaveBeenCalledWith(expect.stringContaining('hello'));
|
|
762
|
+
});
|
|
763
|
+
it('routes alert level to logger.error', () => {
|
|
764
|
+
const spy = vi.spyOn(logger, 'error').mockImplementation(() => { });
|
|
765
|
+
notificationHandler({ params: { level: 'alert', data: 'hello' } });
|
|
766
|
+
expect(spy).toHaveBeenCalledWith(expect.stringContaining('hello'));
|
|
767
|
+
});
|
|
768
|
+
it('routes emergency level to logger.error', () => {
|
|
769
|
+
const spy = vi.spyOn(logger, 'error').mockImplementation(() => { });
|
|
770
|
+
notificationHandler({ params: { level: 'emergency', data: 'hello' } });
|
|
771
|
+
expect(spy).toHaveBeenCalledWith(expect.stringContaining('hello'));
|
|
772
|
+
});
|
|
773
|
+
it('includes logger name and data in the message', () => {
|
|
774
|
+
const spy = vi.spyOn(logger, 'info').mockImplementation(() => { });
|
|
775
|
+
notificationHandler({ params: { level: 'info', logger: 'my-server', data: { key: 'val' } } });
|
|
776
|
+
expect(spy).toHaveBeenCalledWith(expect.stringContaining('my-server'));
|
|
777
|
+
expect(spy).toHaveBeenCalledWith(expect.stringContaining('key'));
|
|
778
|
+
});
|
|
779
|
+
it('calls custom logHandler when provided', () => {
|
|
780
|
+
const customHandler = vi.fn();
|
|
781
|
+
new McpClient({ applicationName: 'TestApp', transport: mockTransport, logHandler: customHandler });
|
|
782
|
+
const customSdkMock = vi.mocked(Client).mock.results.at(-1).value;
|
|
783
|
+
const capturedHandler = customSdkMock.setNotificationHandler.mock.calls[0][1];
|
|
784
|
+
const params = { level: 'info', data: 'test' };
|
|
785
|
+
capturedHandler({ params });
|
|
786
|
+
expect(customHandler).toHaveBeenCalledWith(params);
|
|
787
|
+
});
|
|
788
|
+
});
|
|
343
789
|
//# sourceMappingURL=mcp.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.test.js","sourceRoot":"","sources":["../../../src/__tests__/mcp.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp.test.js","sourceRoot":"","sources":["../../../src/__tests__/mcp.test.ts"],"names":[],"mappings":"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"}
|