@strands-agents/sdk 0.6.0 → 1.0.0-rc.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/README.md +71 -7
- package/dist/src/__fixtures__/agent-helpers.d.ts +81 -4
- package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/agent-helpers.js +76 -4
- package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
- package/dist/src/__fixtures__/metrics-helpers.d.ts +30 -0
- package/dist/src/__fixtures__/metrics-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/metrics-helpers.js +29 -6
- package/dist/src/__fixtures__/metrics-helpers.js.map +1 -1
- package/dist/src/__fixtures__/mock-message-model.d.ts +8 -4
- package/dist/src/__fixtures__/mock-message-model.d.ts.map +1 -1
- package/dist/src/__fixtures__/mock-message-model.js +13 -7
- package/dist/src/__fixtures__/mock-message-model.js.map +1 -1
- package/dist/src/__fixtures__/mock-meter.d.ts +32 -0
- package/dist/src/__fixtures__/mock-meter.d.ts.map +1 -0
- package/dist/src/__fixtures__/mock-meter.js +47 -0
- package/dist/src/__fixtures__/mock-meter.js.map +1 -0
- package/dist/src/__fixtures__/mock-plugin.d.ts +13 -0
- package/dist/src/__fixtures__/mock-plugin.d.ts.map +1 -0
- package/dist/src/__fixtures__/{mock-hook-provider.js → mock-plugin.js} +11 -6
- package/dist/src/__fixtures__/mock-plugin.js.map +1 -0
- package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/tool-helpers.js +6 -2
- package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
- package/dist/src/__tests__/index.test.js +21 -0
- package/dist/src/__tests__/index.test.js.map +1 -1
- package/dist/src/__tests__/mcp.test.js.map +1 -1
- package/dist/src/__tests__/mime.test.d.ts +2 -0
- package/dist/src/__tests__/mime.test.d.ts.map +1 -0
- package/dist/src/__tests__/mime.test.js +83 -0
- package/dist/src/__tests__/mime.test.js.map +1 -0
- package/dist/src/__tests__/state-store.test.d.ts +2 -0
- package/dist/src/__tests__/state-store.test.d.ts.map +1 -0
- package/dist/src/__tests__/{app-state.test.js → state-store.test.js} +86 -51
- package/dist/src/__tests__/state-store.test.js.map +1 -0
- package/dist/src/a2a/__tests__/a2a-agent.test.d.ts +2 -0
- package/dist/src/a2a/__tests__/a2a-agent.test.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/a2a-agent.test.js +364 -0
- package/dist/src/a2a/__tests__/a2a-agent.test.js.map +1 -0
- package/dist/src/a2a/__tests__/adapters.test.d.ts +2 -0
- package/dist/src/a2a/__tests__/adapters.test.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/adapters.test.js +151 -0
- package/dist/src/a2a/__tests__/adapters.test.js.map +1 -0
- package/dist/src/a2a/__tests__/events.test.d.ts +2 -0
- package/dist/src/a2a/__tests__/events.test.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/events.test.js +66 -0
- package/dist/src/a2a/__tests__/events.test.js.map +1 -0
- package/dist/src/a2a/__tests__/executor.test.d.ts +2 -0
- package/dist/src/a2a/__tests__/executor.test.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/executor.test.js +196 -0
- package/dist/src/a2a/__tests__/executor.test.js.map +1 -0
- package/dist/src/a2a/__tests__/server.test.d.ts +2 -0
- package/dist/src/a2a/__tests__/server.test.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/server.test.js +51 -0
- package/dist/src/a2a/__tests__/server.test.js.map +1 -0
- package/dist/src/a2a/__tests__/server.test.node.d.ts +2 -0
- package/dist/src/a2a/__tests__/server.test.node.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/server.test.node.js +110 -0
- package/dist/src/a2a/__tests__/server.test.node.js.map +1 -0
- package/dist/src/a2a/a2a-agent.d.ts +132 -0
- package/dist/src/a2a/a2a-agent.d.ts.map +1 -0
- package/dist/src/a2a/a2a-agent.js +255 -0
- package/dist/src/a2a/a2a-agent.js.map +1 -0
- package/dist/src/a2a/adapters.d.ts +27 -0
- package/dist/src/a2a/adapters.d.ts.map +1 -0
- package/dist/src/a2a/adapters.js +175 -0
- package/dist/src/a2a/adapters.js.map +1 -0
- package/dist/src/a2a/events.d.ts +44 -0
- package/dist/src/a2a/events.d.ts.map +1 -0
- package/dist/src/a2a/events.js +41 -0
- package/dist/src/a2a/events.js.map +1 -0
- package/dist/src/a2a/executor.d.ts +57 -0
- package/dist/src/a2a/executor.d.ts.map +1 -0
- package/dist/src/a2a/executor.js +130 -0
- package/dist/src/a2a/executor.js.map +1 -0
- package/dist/src/a2a/express-server.d.ts +67 -0
- package/dist/src/a2a/express-server.d.ts.map +1 -0
- package/dist/src/a2a/express-server.js +95 -0
- package/dist/src/a2a/express-server.js.map +1 -0
- package/dist/src/a2a/index.d.ts +15 -0
- package/dist/src/a2a/index.d.ts.map +1 -0
- package/dist/src/a2a/index.js +15 -0
- package/dist/src/a2a/index.js.map +1 -0
- package/dist/src/a2a/logging.d.ts +8 -0
- package/dist/src/a2a/logging.d.ts.map +1 -0
- package/dist/src/a2a/logging.js +15 -0
- package/dist/src/a2a/logging.js.map +1 -0
- package/dist/src/a2a/server.d.ts +67 -0
- package/dist/src/a2a/server.d.ts.map +1 -0
- package/dist/src/a2a/server.js +67 -0
- package/dist/src/a2a/server.js.map +1 -0
- package/dist/src/agent/__tests__/agent.hook.test.js +315 -51
- package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.test.js +298 -48
- package/dist/src/agent/__tests__/agent.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts.map +1 -0
- package/dist/src/agent/__tests__/{agent.tracer.test.js → agent.tracer.test.node.js} +62 -50
- package/dist/src/agent/__tests__/agent.tracer.test.node.js.map +1 -0
- package/dist/src/agent/__tests__/printer.test.js +7 -7
- package/dist/src/agent/__tests__/printer.test.js.map +1 -1
- package/dist/src/agent/__tests__/snapshot.test.js +50 -13
- package/dist/src/agent/__tests__/snapshot.test.js.map +1 -1
- package/dist/src/agent/agent.d.ts +55 -44
- package/dist/src/agent/agent.d.ts.map +1 -1
- package/dist/src/agent/agent.js +230 -128
- package/dist/src/agent/agent.js.map +1 -1
- package/dist/src/agent/printer.d.ts.map +1 -1
- package/dist/src/agent/printer.js +3 -0
- package/dist/src/agent/printer.js.map +1 -1
- package/dist/src/agent/snapshot.d.ts +3 -3
- package/dist/src/agent/snapshot.d.ts.map +1 -1
- package/dist/src/agent/snapshot.js +16 -8
- package/dist/src/agent/snapshot.js.map +1 -1
- 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 +100 -0
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +1 -0
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +26 -10
- 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 +153 -64
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/conversation-manager.d.ts +87 -0
- package/dist/src/conversation-manager/conversation-manager.d.ts.map +1 -0
- package/dist/src/conversation-manager/conversation-manager.js +59 -0
- package/dist/src/conversation-manager/conversation-manager.js.map +1 -0
- package/dist/src/conversation-manager/index.d.ts +1 -0
- package/dist/src/conversation-manager/index.d.ts.map +1 -1
- package/dist/src/conversation-manager/index.js +1 -0
- package/dist/src/conversation-manager/index.js.map +1 -1
- package/dist/src/conversation-manager/null-conversation-manager.d.ts +12 -8
- package/dist/src/conversation-manager/null-conversation-manager.d.ts.map +1 -1
- package/dist/src/conversation-manager/null-conversation-manager.js +13 -7
- package/dist/src/conversation-manager/null-conversation-manager.js.map +1 -1
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +28 -19
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -1
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js +57 -42
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -1
- package/dist/src/errors.d.ts +8 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +11 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/hooks/__tests__/events.test.js +387 -0
- package/dist/src/hooks/__tests__/events.test.js.map +1 -1
- package/dist/src/hooks/__tests__/registry.test.js +10 -154
- package/dist/src/hooks/__tests__/registry.test.js.map +1 -1
- package/dist/src/hooks/events.d.ts +148 -44
- package/dist/src/hooks/events.d.ts.map +1 -1
- package/dist/src/hooks/events.js +148 -11
- package/dist/src/hooks/events.js.map +1 -1
- package/dist/src/hooks/index.d.ts +3 -3
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +2 -2
- package/dist/src/hooks/registry.d.ts +1 -32
- package/dist/src/hooks/registry.d.ts.map +1 -1
- package/dist/src/hooks/registry.js +1 -47
- package/dist/src/hooks/registry.js.map +1 -1
- package/dist/src/hooks/types.d.ts +0 -31
- package/dist/src/hooks/types.d.ts.map +1 -1
- package/dist/src/index.d.ts +14 -13
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +11 -9
- package/dist/src/index.js.map +1 -1
- package/dist/src/mime.d.ts +24 -0
- package/dist/src/mime.d.ts.map +1 -0
- package/dist/src/mime.js +82 -0
- package/dist/src/mime.js.map +1 -0
- package/dist/src/models/__tests__/anthropic.test.js +79 -3
- package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
- package/dist/src/models/__tests__/bedrock.test.js +1858 -627
- package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
- package/dist/src/models/__tests__/google.test.d.ts +2 -0
- package/dist/src/models/__tests__/google.test.d.ts.map +1 -0
- package/dist/src/models/__tests__/{gemini.test.js → google.test.js} +155 -22
- package/dist/src/models/__tests__/google.test.js.map +1 -0
- package/dist/src/models/__tests__/model.test.js +25 -0
- package/dist/src/models/__tests__/model.test.js.map +1 -1
- package/dist/src/models/__tests__/openai.test.js +255 -96
- package/dist/src/models/__tests__/openai.test.js.map +1 -1
- package/dist/src/models/anthropic.d.ts.map +1 -1
- package/dist/src/models/anthropic.js +14 -14
- package/dist/src/models/anthropic.js.map +1 -1
- package/dist/src/models/bedrock.d.ts +67 -13
- package/dist/src/models/bedrock.d.ts.map +1 -1
- package/dist/src/models/bedrock.js +207 -28
- package/dist/src/models/bedrock.js.map +1 -1
- package/dist/src/models/{gemini → google}/adapters.d.ts +3 -3
- package/dist/src/models/{gemini → google}/adapters.d.ts.map +1 -1
- package/dist/src/models/{gemini → google}/adapters.js +66 -15
- package/dist/src/models/google/adapters.js.map +1 -0
- package/dist/src/models/{gemini → google}/errors.d.ts +7 -7
- package/dist/src/models/google/errors.d.ts.map +1 -0
- package/dist/src/models/{gemini → google}/errors.js +11 -5
- package/dist/src/models/google/errors.js.map +1 -0
- package/dist/src/models/google/index.d.ts +15 -0
- package/dist/src/models/google/index.d.ts.map +1 -0
- package/dist/src/models/google/index.js +15 -0
- package/dist/src/models/google/index.js.map +1 -0
- package/dist/src/models/{gemini → google}/model.d.ts +18 -18
- package/dist/src/models/{gemini → google}/model.d.ts.map +1 -1
- package/dist/src/models/{gemini → google}/model.js +22 -19
- package/dist/src/models/google/model.js.map +1 -0
- package/dist/src/models/{gemini → google}/types.d.ts +9 -9
- package/dist/src/models/{gemini → google}/types.d.ts.map +1 -1
- package/dist/src/models/google/types.js +5 -0
- package/dist/src/models/google/types.js.map +1 -0
- package/dist/src/models/model.d.ts +12 -0
- package/dist/src/models/model.d.ts.map +1 -1
- package/dist/src/models/model.js +6 -10
- package/dist/src/models/model.js.map +1 -1
- package/dist/src/models/openai.d.ts +44 -11
- package/dist/src/models/openai.d.ts.map +1 -1
- package/dist/src/models/openai.js +133 -79
- package/dist/src/models/openai.js.map +1 -1
- package/dist/src/models/streaming.d.ts +18 -0
- package/dist/src/models/streaming.d.ts.map +1 -1
- package/dist/src/models/streaming.js +29 -0
- package/dist/src/models/streaming.js.map +1 -1
- package/dist/src/multiagent/__tests__/events.test.js +201 -7
- package/dist/src/multiagent/__tests__/events.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/graph.test.js +28 -13
- package/dist/src/multiagent/__tests__/graph.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/graph.tracer.test.js +204 -0
- package/dist/src/multiagent/__tests__/graph.tracer.test.js.map +1 -0
- package/dist/src/multiagent/__tests__/nodes.test.js +76 -15
- package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/swarm.test.js +67 -16
- package/dist/src/multiagent/__tests__/swarm.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/swarm.tracer.test.js +235 -0
- package/dist/src/multiagent/__tests__/swarm.tracer.test.js.map +1 -0
- package/dist/src/multiagent/events.d.ts +62 -14
- package/dist/src/multiagent/events.d.ts.map +1 -1
- package/dist/src/multiagent/events.js +45 -3
- package/dist/src/multiagent/events.js.map +1 -1
- package/dist/src/multiagent/graph.d.ts +25 -11
- package/dist/src/multiagent/graph.d.ts.map +1 -1
- package/dist/src/multiagent/graph.js +76 -44
- package/dist/src/multiagent/graph.js.map +1 -1
- package/dist/src/multiagent/index.d.ts +4 -3
- package/dist/src/multiagent/index.d.ts.map +1 -1
- package/dist/src/multiagent/index.js.map +1 -1
- package/dist/src/multiagent/multiagent.d.ts +41 -0
- package/dist/src/multiagent/multiagent.d.ts.map +1 -0
- package/dist/src/multiagent/multiagent.js +2 -0
- package/dist/src/multiagent/multiagent.js.map +1 -0
- package/dist/src/multiagent/nodes.d.ts +35 -24
- package/dist/src/multiagent/nodes.d.ts.map +1 -1
- package/dist/src/multiagent/nodes.js +50 -23
- package/dist/src/multiagent/nodes.js.map +1 -1
- package/dist/src/multiagent/plugins.d.ts +70 -0
- package/dist/src/multiagent/plugins.d.ts.map +1 -0
- package/dist/src/multiagent/plugins.js +70 -0
- package/dist/src/multiagent/plugins.js.map +1 -0
- package/dist/src/multiagent/state.d.ts +10 -5
- package/dist/src/multiagent/state.d.ts.map +1 -1
- package/dist/src/multiagent/state.js +20 -6
- package/dist/src/multiagent/state.js.map +1 -1
- package/dist/src/multiagent/swarm.d.ts +41 -17
- package/dist/src/multiagent/swarm.d.ts.map +1 -1
- package/dist/src/multiagent/swarm.js +101 -42
- package/dist/src/multiagent/swarm.js.map +1 -1
- package/dist/src/plugins/__tests__/plugin.test.d.ts +2 -0
- package/dist/src/plugins/__tests__/plugin.test.d.ts.map +1 -0
- package/dist/src/plugins/__tests__/plugin.test.js +114 -0
- package/dist/src/plugins/__tests__/plugin.test.js.map +1 -0
- package/dist/src/plugins/__tests__/registry.test.d.ts +2 -0
- package/dist/src/plugins/__tests__/registry.test.d.ts.map +1 -0
- package/dist/src/plugins/__tests__/registry.test.js +147 -0
- package/dist/src/plugins/__tests__/registry.test.js.map +1 -0
- package/dist/src/plugins/index.d.ts +30 -0
- package/dist/src/plugins/index.d.ts.map +1 -0
- package/dist/src/plugins/index.js +30 -0
- package/dist/src/plugins/index.js.map +1 -0
- package/dist/src/plugins/plugin.d.ts +74 -0
- package/dist/src/plugins/plugin.d.ts.map +1 -0
- package/dist/src/plugins/plugin.js +8 -0
- package/dist/src/plugins/plugin.js.map +1 -0
- package/dist/src/plugins/registry.d.ts +25 -0
- package/dist/src/plugins/registry.d.ts.map +1 -0
- package/dist/src/plugins/registry.js +41 -0
- package/dist/src/plugins/registry.js.map +1 -0
- package/dist/src/session/__tests__/session-manager.test.js +110 -92
- package/dist/src/session/__tests__/session-manager.test.js.map +1 -1
- package/dist/src/session/index.d.ts +0 -1
- package/dist/src/session/index.d.ts.map +1 -1
- package/dist/src/session/index.js +0 -1
- package/dist/src/session/index.js.map +1 -1
- package/dist/src/session/session-manager.d.ts +11 -8
- package/dist/src/session/session-manager.d.ts.map +1 -1
- package/dist/src/session/session-manager.js +24 -16
- package/dist/src/session/session-manager.js.map +1 -1
- package/dist/src/session/storage.d.ts +1 -1
- package/dist/src/session/storage.d.ts.map +1 -1
- package/dist/src/session/types.d.ts +2 -2
- package/dist/src/session/types.d.ts.map +1 -1
- package/dist/src/{app-state.d.ts → state-store.d.ts} +11 -11
- package/dist/src/state-store.d.ts.map +1 -0
- package/dist/src/{app-state.js → state-store.js} +8 -7
- package/dist/src/state-store.js.map +1 -0
- package/dist/src/telemetry/__tests__/config.test.js +24 -0
- package/dist/src/telemetry/__tests__/config.test.js.map +1 -1
- package/dist/src/telemetry/__tests__/config.test.node.js +56 -0
- package/dist/src/telemetry/__tests__/config.test.node.js.map +1 -1
- package/dist/src/telemetry/__tests__/local-trace.test.d.ts +2 -0
- package/dist/src/telemetry/__tests__/local-trace.test.d.ts.map +1 -0
- package/dist/src/telemetry/__tests__/local-trace.test.js +158 -0
- package/dist/src/telemetry/__tests__/local-trace.test.js.map +1 -0
- package/dist/src/telemetry/__tests__/meter.test.js +176 -9
- package/dist/src/telemetry/__tests__/meter.test.js.map +1 -1
- package/dist/src/telemetry/__tests__/tracer.test.node.js +151 -2
- package/dist/src/telemetry/__tests__/tracer.test.node.js.map +1 -1
- package/dist/src/telemetry/config.d.ts +72 -12
- package/dist/src/telemetry/config.d.ts.map +1 -1
- package/dist/src/telemetry/config.js +102 -25
- package/dist/src/telemetry/config.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +10 -7
- package/dist/src/telemetry/index.d.ts.map +1 -1
- package/dist/src/telemetry/index.js +9 -6
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/meter.d.ts +23 -17
- package/dist/src/telemetry/meter.d.ts.map +1 -1
- package/dist/src/telemetry/meter.js +86 -41
- package/dist/src/telemetry/meter.js.map +1 -1
- package/dist/src/telemetry/tracer.d.ts +134 -18
- package/dist/src/telemetry/tracer.d.ts.map +1 -1
- package/dist/src/telemetry/tracer.js +325 -38
- package/dist/src/telemetry/tracer.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +51 -0
- package/dist/src/telemetry/types.d.ts.map +1 -1
- package/dist/src/telemetry/utils.d.ts +10 -0
- package/dist/src/telemetry/utils.d.ts.map +1 -0
- package/dist/src/telemetry/utils.js +13 -0
- package/dist/src/telemetry/utils.js.map +1 -0
- package/dist/src/tools/__tests__/structured-output-tool.test.d.ts +2 -0
- package/dist/src/tools/__tests__/structured-output-tool.test.d.ts.map +1 -0
- package/dist/src/tools/__tests__/structured-output-tool.test.js +84 -0
- package/dist/src/tools/__tests__/structured-output-tool.test.js.map +1 -0
- package/dist/src/tools/__tests__/tool.test.js +22 -1
- package/dist/src/tools/__tests__/tool.test.js.map +1 -1
- package/dist/src/tools/function-tool.d.ts +11 -1
- package/dist/src/tools/function-tool.d.ts.map +1 -1
- package/dist/src/tools/function-tool.js +64 -3
- package/dist/src/tools/function-tool.js.map +1 -1
- package/dist/src/tools/structured-output-tool.d.ts +41 -0
- package/dist/src/tools/structured-output-tool.d.ts.map +1 -0
- package/dist/src/tools/structured-output-tool.js +82 -0
- package/dist/src/tools/structured-output-tool.js.map +1 -0
- package/dist/src/tools/tool.d.ts +2 -2
- package/dist/src/tools/tool.d.ts.map +1 -1
- package/dist/src/tools/zod-tool.js +1 -1
- package/dist/src/tools/zod-tool.js.map +1 -1
- package/dist/src/{utils/zod.d.ts → tools/zod-utils.d.ts} +1 -1
- package/dist/src/tools/zod-utils.d.ts.map +1 -0
- package/dist/src/{utils/zod.js → tools/zod-utils.js} +1 -1
- package/dist/src/tools/zod-utils.js.map +1 -0
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types/__tests__/agent.test.js +127 -0
- package/dist/src/types/__tests__/agent.test.js.map +1 -1
- package/dist/src/types/__tests__/media.test.js +22 -16
- package/dist/src/types/__tests__/media.test.js.map +1 -1
- package/dist/src/types/agent.d.ts +101 -7
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/agent.js +26 -0
- package/dist/src/types/agent.js.map +1 -1
- package/dist/src/types/media.d.ts +27 -30
- package/dist/src/types/media.d.ts.map +1 -1
- package/dist/src/types/media.js +15 -56
- package/dist/src/types/media.js.map +1 -1
- package/dist/src/types/messages.d.ts +18 -4
- package/dist/src/types/messages.d.ts.map +1 -1
- package/dist/src/types/messages.js +22 -26
- package/dist/src/types/messages.js.map +1 -1
- package/dist/src/types/serializable.d.ts +34 -4
- package/dist/src/types/serializable.d.ts.map +1 -1
- package/dist/src/types/serializable.js +31 -2
- package/dist/src/types/serializable.js.map +1 -1
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +17 -4
- 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 +16 -14
- package/dist/src/vended-tools/bash/bash.js.map +1 -1
- package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.d.ts.map +1 -0
- package/dist/src/vended-tools/{file_editor → file-editor}/__tests__/file-editor.test.node.js +11 -4
- package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +1 -0
- package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.d.ts +1 -1
- package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.d.ts.map +1 -1
- package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.js +2 -2
- package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.js.map +1 -1
- package/dist/src/vended-tools/{file_editor → file-editor}/index.d.ts.map +1 -1
- package/dist/src/vended-tools/file-editor/index.js.map +1 -0
- package/dist/src/vended-tools/{file_editor → file-editor}/types.d.ts.map +1 -1
- package/dist/src/vended-tools/file-editor/types.js.map +1 -0
- package/dist/src/vended-tools/http-request/__tests__/http-request.test.d.ts.map +1 -0
- package/dist/src/vended-tools/{http_request → http-request}/__tests__/http-request.test.js.map +1 -1
- package/dist/src/vended-tools/{http_request → http-request}/http-request.d.ts.map +1 -1
- package/dist/src/vended-tools/{http_request → http-request}/http-request.js.map +1 -1
- package/dist/src/vended-tools/{http_request → http-request}/index.d.ts.map +1 -1
- package/dist/src/vended-tools/http-request/index.js.map +1 -0
- package/dist/src/vended-tools/{http_request → http-request}/types.d.ts.map +1 -1
- package/dist/src/vended-tools/http-request/types.js.map +1 -0
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +5 -4
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +1 -1
- package/dist/src/vended-tools/notebook/notebook.js +2 -2
- package/dist/src/vended-tools/notebook/notebook.js.map +1 -1
- package/package.json +63 -17
- package/dist/src/__fixtures__/mock-hook-provider.d.ts +0 -10
- package/dist/src/__fixtures__/mock-hook-provider.d.ts.map +0 -1
- package/dist/src/__fixtures__/mock-hook-provider.js.map +0 -1
- package/dist/src/__tests__/app-state.test.d.ts +0 -2
- package/dist/src/__tests__/app-state.test.d.ts.map +0 -1
- package/dist/src/__tests__/app-state.test.js.map +0 -1
- package/dist/src/agent/__tests__/agent.tracer.test.d.ts +0 -2
- package/dist/src/agent/__tests__/agent.tracer.test.d.ts.map +0 -1
- package/dist/src/agent/__tests__/agent.tracer.test.js.map +0 -1
- package/dist/src/app-state.d.ts.map +0 -1
- package/dist/src/app-state.js.map +0 -1
- package/dist/src/models/__tests__/gemini.test.d.ts +0 -2
- package/dist/src/models/__tests__/gemini.test.d.ts.map +0 -1
- package/dist/src/models/__tests__/gemini.test.js.map +0 -1
- package/dist/src/models/gemini/adapters.js.map +0 -1
- package/dist/src/models/gemini/errors.d.ts.map +0 -1
- package/dist/src/models/gemini/errors.js.map +0 -1
- package/dist/src/models/gemini/model.js.map +0 -1
- package/dist/src/models/gemini/types.js +0 -5
- package/dist/src/models/gemini/types.js.map +0 -1
- package/dist/src/multiagent/base.d.ts +0 -25
- package/dist/src/multiagent/base.d.ts.map +0 -1
- package/dist/src/multiagent/base.js +0 -2
- package/dist/src/multiagent/base.js.map +0 -1
- package/dist/src/structured-output/__tests__/context.test.d.ts +0 -2
- package/dist/src/structured-output/__tests__/context.test.d.ts.map +0 -1
- package/dist/src/structured-output/__tests__/context.test.js +0 -201
- package/dist/src/structured-output/__tests__/context.test.js.map +0 -1
- package/dist/src/structured-output/__tests__/exceptions.test.d.ts +0 -2
- package/dist/src/structured-output/__tests__/exceptions.test.d.ts.map +0 -1
- package/dist/src/structured-output/__tests__/exceptions.test.js +0 -103
- package/dist/src/structured-output/__tests__/exceptions.test.js.map +0 -1
- package/dist/src/structured-output/__tests__/tool.test.d.ts +0 -2
- package/dist/src/structured-output/__tests__/tool.test.d.ts.map +0 -1
- package/dist/src/structured-output/__tests__/tool.test.js +0 -256
- package/dist/src/structured-output/__tests__/tool.test.js.map +0 -1
- package/dist/src/structured-output/__tests__/utils.test.d.ts +0 -2
- package/dist/src/structured-output/__tests__/utils.test.d.ts.map +0 -1
- package/dist/src/structured-output/__tests__/utils.test.js +0 -183
- package/dist/src/structured-output/__tests__/utils.test.js.map +0 -1
- package/dist/src/structured-output/context.d.ts +0 -91
- package/dist/src/structured-output/context.d.ts.map +0 -1
- package/dist/src/structured-output/context.js +0 -112
- package/dist/src/structured-output/context.js.map +0 -1
- package/dist/src/structured-output/exceptions.d.ts +0 -18
- package/dist/src/structured-output/exceptions.d.ts.map +0 -1
- package/dist/src/structured-output/exceptions.js +0 -28
- package/dist/src/structured-output/exceptions.js.map +0 -1
- package/dist/src/structured-output/tool.d.ts +0 -33
- package/dist/src/structured-output/tool.d.ts.map +0 -1
- package/dist/src/structured-output/tool.js +0 -73
- package/dist/src/structured-output/tool.js.map +0 -1
- package/dist/src/structured-output/utils.d.ts +0 -23
- package/dist/src/structured-output/utils.d.ts.map +0 -1
- package/dist/src/structured-output/utils.js +0 -104
- package/dist/src/structured-output/utils.js.map +0 -1
- package/dist/src/utils/zod.d.ts.map +0 -1
- package/dist/src/utils/zod.js.map +0 -1
- package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.d.ts.map +0 -1
- package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.js.map +0 -1
- package/dist/src/vended-tools/file_editor/index.js.map +0 -1
- package/dist/src/vended-tools/file_editor/types.js.map +0 -1
- package/dist/src/vended-tools/http_request/__tests__/http-request.test.d.ts.map +0 -1
- package/dist/src/vended-tools/http_request/index.js.map +0 -1
- package/dist/src/vended-tools/http_request/types.js.map +0 -1
- /package/dist/src/vended-tools/{file_editor → file-editor}/__tests__/file-editor.test.node.d.ts +0 -0
- /package/dist/src/vended-tools/{file_editor → file-editor}/index.d.ts +0 -0
- /package/dist/src/vended-tools/{file_editor → file-editor}/index.js +0 -0
- /package/dist/src/vended-tools/{file_editor → file-editor}/types.d.ts +0 -0
- /package/dist/src/vended-tools/{file_editor → file-editor}/types.js +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/__tests__/http-request.test.d.ts +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/__tests__/http-request.test.js +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/http-request.d.ts +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/http-request.js +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/index.d.ts +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/index.js +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/types.d.ts +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/types.js +0 -0
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Error handling utilities for the
|
|
2
|
+
* Error handling utilities for the Google model provider.
|
|
3
3
|
*
|
|
4
4
|
* @internal This module is not part of the public API.
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
7
|
-
* Recognized error types from
|
|
7
|
+
* Recognized error types from Google GenAI API responses.
|
|
8
8
|
*
|
|
9
9
|
* This union type will expand as more error types are supported
|
|
10
10
|
* (e.g., 'throttling', 'invalidRequest').
|
|
11
11
|
*/
|
|
12
|
-
export type
|
|
12
|
+
export type GoogleErrorType = 'contextOverflow' | 'throttling';
|
|
13
13
|
/**
|
|
14
14
|
* Configuration for handling a specific error status.
|
|
15
15
|
* If messagePatterns is provided, the error message must match one of the patterns.
|
|
16
16
|
* If messagePatterns is not provided, the status alone triggers the error type.
|
|
17
17
|
*/
|
|
18
18
|
export interface ErrorStatusConfig {
|
|
19
|
-
type:
|
|
19
|
+
type: GoogleErrorType;
|
|
20
20
|
messagePatterns?: Set<string>;
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
* Mapping of
|
|
23
|
+
* Mapping of Google GenAI API error statuses to error handling configuration.
|
|
24
24
|
* Maps status codes to either direct error types or message-pattern-based detection.
|
|
25
25
|
*/
|
|
26
26
|
export declare const ERROR_STATUS_MAP: Record<string, ErrorStatusConfig>;
|
|
27
27
|
/**
|
|
28
|
-
* Classifies a
|
|
28
|
+
* Classifies a Google GenAI API error based on status and message patterns.
|
|
29
29
|
* Returns the error type if recognized, undefined otherwise.
|
|
30
30
|
*
|
|
31
31
|
* @param error - The error to classify
|
|
@@ -33,5 +33,5 @@ export declare const ERROR_STATUS_MAP: Record<string, ErrorStatusConfig>;
|
|
|
33
33
|
*
|
|
34
34
|
* @internal
|
|
35
35
|
*/
|
|
36
|
-
export declare function
|
|
36
|
+
export declare function classifyGoogleError(error: Error): GoogleErrorType | undefined;
|
|
37
37
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/models/google/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG,YAAY,CAAA;AAE9D;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAA;IACrB,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC9B;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAW9D,CAAA;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,GAAG,SAAS,CAoC7E"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Error handling utilities for the
|
|
2
|
+
* Error handling utilities for the Google model provider.
|
|
3
3
|
*
|
|
4
4
|
* @internal This module is not part of the public API.
|
|
5
5
|
*/
|
|
6
6
|
import { logger } from '../../logging/logger.js';
|
|
7
7
|
/**
|
|
8
|
-
* Mapping of
|
|
8
|
+
* Mapping of Google GenAI API error statuses to error handling configuration.
|
|
9
9
|
* Maps status codes to either direct error types or message-pattern-based detection.
|
|
10
10
|
*/
|
|
11
11
|
export const ERROR_STATUS_MAP = {
|
|
@@ -13,9 +13,15 @@ export const ERROR_STATUS_MAP = {
|
|
|
13
13
|
type: 'contextOverflow',
|
|
14
14
|
messagePatterns: new Set(['exceeds the maximum number of tokens']),
|
|
15
15
|
},
|
|
16
|
+
RESOURCE_EXHAUSTED: {
|
|
17
|
+
type: 'throttling',
|
|
18
|
+
},
|
|
19
|
+
UNAVAILABLE: {
|
|
20
|
+
type: 'throttling',
|
|
21
|
+
},
|
|
16
22
|
};
|
|
17
23
|
/**
|
|
18
|
-
* Classifies a
|
|
24
|
+
* Classifies a Google GenAI API error based on status and message patterns.
|
|
19
25
|
* Returns the error type if recognized, undefined otherwise.
|
|
20
26
|
*
|
|
21
27
|
* @param error - The error to classify
|
|
@@ -23,7 +29,7 @@ export const ERROR_STATUS_MAP = {
|
|
|
23
29
|
*
|
|
24
30
|
* @internal
|
|
25
31
|
*/
|
|
26
|
-
export function
|
|
32
|
+
export function classifyGoogleError(error) {
|
|
27
33
|
if (!error.message) {
|
|
28
34
|
return undefined;
|
|
29
35
|
}
|
|
@@ -35,7 +41,7 @@ export function classifyGeminiError(error) {
|
|
|
35
41
|
message = parsed?.error?.message || '';
|
|
36
42
|
}
|
|
37
43
|
catch {
|
|
38
|
-
logger.debug(`error_message=<${error.message}> |
|
|
44
|
+
logger.debug(`error_message=<${error.message}> | google genai api returned non-json error`);
|
|
39
45
|
return undefined;
|
|
40
46
|
}
|
|
41
47
|
const config = ERROR_STATUS_MAP[status.toUpperCase()];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/models/google/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAoBhD;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAsC;IACjE,gBAAgB,EAAE;QAChB,IAAI,EAAE,iBAAiB;QACvB,eAAe,EAAE,IAAI,GAAG,CAAC,CAAC,sCAAsC,CAAC,CAAC;KACnE;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,YAAY;KACnB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,YAAY;KACnB;CACF,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAY;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,MAAc,CAAA;IAClB,IAAI,OAAe,CAAA;IAEnB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACxC,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,EAAE,CAAA;QACpC,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,CAAA;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,KAAK,CAAC,kBAAkB,KAAK,CAAC,OAAO,8CAA8C,CAAC,CAAA;QAC3F,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;IACrD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,0EAA0E;IAC1E,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,IAAI,CAAA;IACpB,CAAC;IAED,+CAA+C;IAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;IAC1C,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC7C,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,OAAO,MAAM,CAAC,IAAI,CAAA;QACpB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Google model provider.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* import { GoogleModel } from '@strands-agents/sdk/models/google'
|
|
7
|
+
*
|
|
8
|
+
* const model = new GoogleModel({
|
|
9
|
+
* apiKey: 'your-api-key',
|
|
10
|
+
* modelId: 'gemini-2.5-flash',
|
|
11
|
+
* })
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export { GoogleModel, type GoogleModelConfig, type GoogleModelOptions } from './model.js';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/models/google/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Google model provider.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* import { GoogleModel } from '@strands-agents/sdk/models/google'
|
|
7
|
+
*
|
|
8
|
+
* const model = new GoogleModel({
|
|
9
|
+
* apiKey: 'your-api-key',
|
|
10
|
+
* modelId: 'gemini-2.5-flash',
|
|
11
|
+
* })
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export { GoogleModel } from './model.js';
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/models/google/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,WAAW,EAAmD,MAAM,YAAY,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Google
|
|
2
|
+
* Google model provider implementation.
|
|
3
3
|
*
|
|
4
4
|
* This module provides integration with Google's Gemini API,
|
|
5
5
|
* supporting streaming responses and configurable model parameters.
|
|
@@ -10,17 +10,17 @@ import { Model } from '../model.js';
|
|
|
10
10
|
import type { StreamOptions } from '../model.js';
|
|
11
11
|
import type { Message } from '../../types/messages.js';
|
|
12
12
|
import type { ModelStreamEvent } from '../streaming.js';
|
|
13
|
-
import type {
|
|
14
|
-
export type {
|
|
13
|
+
import type { GoogleModelConfig, GoogleModelOptions } from './types.js';
|
|
14
|
+
export type { GoogleModelConfig, GoogleModelOptions };
|
|
15
15
|
/**
|
|
16
|
-
* Google
|
|
16
|
+
* Google model provider implementation.
|
|
17
17
|
*
|
|
18
|
-
* Implements the Model interface for Google
|
|
18
|
+
* Implements the Model interface for Google GenAI using the Generative AI API.
|
|
19
19
|
* Supports streaming responses and comprehensive configuration.
|
|
20
20
|
*
|
|
21
21
|
* @example
|
|
22
22
|
* ```typescript
|
|
23
|
-
* const provider = new
|
|
23
|
+
* const provider = new GoogleModel({
|
|
24
24
|
* apiKey: 'your-api-key',
|
|
25
25
|
* modelId: 'gemini-2.5-flash',
|
|
26
26
|
* params: { temperature: 0.7, maxOutputTokens: 1024 }
|
|
@@ -37,41 +37,41 @@ export type { GeminiModelConfig, GeminiModelOptions };
|
|
|
37
37
|
* }
|
|
38
38
|
* ```
|
|
39
39
|
*/
|
|
40
|
-
export declare class
|
|
40
|
+
export declare class GoogleModel extends Model<GoogleModelConfig> {
|
|
41
41
|
private _config;
|
|
42
42
|
private _client;
|
|
43
43
|
/**
|
|
44
|
-
* Creates a new
|
|
44
|
+
* Creates a new GoogleModel instance.
|
|
45
45
|
*
|
|
46
46
|
* @param options - Configuration for model and client
|
|
47
47
|
*
|
|
48
48
|
* @example
|
|
49
49
|
* ```typescript
|
|
50
50
|
* // Minimal configuration with API key
|
|
51
|
-
* const provider = new
|
|
51
|
+
* const provider = new GoogleModel({
|
|
52
52
|
* apiKey: 'your-api-key'
|
|
53
53
|
* })
|
|
54
54
|
*
|
|
55
55
|
* // With model configuration
|
|
56
|
-
* const provider = new
|
|
56
|
+
* const provider = new GoogleModel({
|
|
57
57
|
* apiKey: 'your-api-key',
|
|
58
58
|
* modelId: 'gemini-2.5-flash',
|
|
59
59
|
* params: { temperature: 0.8, maxOutputTokens: 2048 }
|
|
60
60
|
* })
|
|
61
61
|
*
|
|
62
62
|
* // Using environment variable for API key
|
|
63
|
-
* const provider = new
|
|
63
|
+
* const provider = new GoogleModel({
|
|
64
64
|
* modelId: 'gemini-2.5-flash'
|
|
65
65
|
* })
|
|
66
66
|
*
|
|
67
67
|
* // Using a pre-configured client instance
|
|
68
68
|
* const client = new GoogleGenAI({ apiKey: 'your-api-key' })
|
|
69
|
-
* const provider = new
|
|
69
|
+
* const provider = new GoogleModel({
|
|
70
70
|
* client
|
|
71
71
|
* })
|
|
72
72
|
* ```
|
|
73
73
|
*/
|
|
74
|
-
constructor(options?:
|
|
74
|
+
constructor(options?: GoogleModelOptions);
|
|
75
75
|
/**
|
|
76
76
|
* Updates the model configuration.
|
|
77
77
|
* Merges the provided configuration with existing settings.
|
|
@@ -86,7 +86,7 @@ export declare class GeminiModel extends Model<GeminiModelConfig> {
|
|
|
86
86
|
* })
|
|
87
87
|
* ```
|
|
88
88
|
*/
|
|
89
|
-
updateConfig(modelConfig:
|
|
89
|
+
updateConfig(modelConfig: GoogleModelConfig): void;
|
|
90
90
|
/**
|
|
91
91
|
* Retrieves the current model configuration.
|
|
92
92
|
*
|
|
@@ -98,9 +98,9 @@ export declare class GeminiModel extends Model<GeminiModelConfig> {
|
|
|
98
98
|
* console.log(config.modelId)
|
|
99
99
|
* ```
|
|
100
100
|
*/
|
|
101
|
-
getConfig():
|
|
101
|
+
getConfig(): GoogleModelConfig;
|
|
102
102
|
/**
|
|
103
|
-
* Streams a conversation with the
|
|
103
|
+
* Streams a conversation with the Google model.
|
|
104
104
|
* Returns an async iterable that yields streaming events as they occur.
|
|
105
105
|
*
|
|
106
106
|
* @param messages - Array of conversation messages
|
|
@@ -111,7 +111,7 @@ export declare class GeminiModel extends Model<GeminiModelConfig> {
|
|
|
111
111
|
*
|
|
112
112
|
* @example
|
|
113
113
|
* ```typescript
|
|
114
|
-
* const provider = new
|
|
114
|
+
* const provider = new GoogleModel({ apiKey: 'your-api-key' })
|
|
115
115
|
* const messages: Message[] = [
|
|
116
116
|
* { role: 'user', content: [{ type: 'textBlock', text: 'What is 2+2?' }] }
|
|
117
117
|
* ]
|
|
@@ -129,7 +129,7 @@ export declare class GeminiModel extends Model<GeminiModelConfig> {
|
|
|
129
129
|
*/
|
|
130
130
|
private static _getEnvApiKey;
|
|
131
131
|
/**
|
|
132
|
-
* Formats a request for the
|
|
132
|
+
* Formats a request for the Google GenAI API.
|
|
133
133
|
*/
|
|
134
134
|
private _formatRequest;
|
|
135
135
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/models/
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/models/google/model.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAqB,MAAM,YAAY,CAAA;AAC1F,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAA;AASrD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,WAAY,SAAQ,KAAK,CAAC,iBAAiB,CAAC;IACvD,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,OAAO,CAAa;IAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;gBACS,OAAO,CAAC,EAAE,kBAAkB;IAwBxC;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,WAAW,EAAE,iBAAiB,GAAG,IAAI;IAIlD;;;;;;;;;;OAUG;IACH,SAAS,IAAI,iBAAiB;IAI9B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACI,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC,gBAAgB,CAAC;IAkD5F;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAI5B;;OAEG;IACH,OAAO,CAAC,cAAc;CAwEvB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Google
|
|
2
|
+
* Google model provider implementation.
|
|
3
3
|
*
|
|
4
4
|
* This module provides integration with Google's Gemini API,
|
|
5
5
|
* supporting streaming responses and configurable model parameters.
|
|
@@ -8,22 +8,22 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { GoogleGenAI, FunctionCallingConfigMode, } from '@google/genai';
|
|
10
10
|
import { Model } from '../model.js';
|
|
11
|
-
import { ContextWindowOverflowError } from '../../errors.js';
|
|
12
|
-
import {
|
|
11
|
+
import { ContextWindowOverflowError, ModelThrottledError } from '../../errors.js';
|
|
12
|
+
import { classifyGoogleError } from './errors.js';
|
|
13
13
|
import { formatMessages, mapChunkToEvents } from './adapters.js';
|
|
14
14
|
/**
|
|
15
15
|
* Default Gemini model ID.
|
|
16
16
|
*/
|
|
17
17
|
const DEFAULT_GEMINI_MODEL_ID = 'gemini-2.5-flash';
|
|
18
18
|
/**
|
|
19
|
-
* Google
|
|
19
|
+
* Google model provider implementation.
|
|
20
20
|
*
|
|
21
|
-
* Implements the Model interface for Google
|
|
21
|
+
* Implements the Model interface for Google GenAI using the Generative AI API.
|
|
22
22
|
* Supports streaming responses and comprehensive configuration.
|
|
23
23
|
*
|
|
24
24
|
* @example
|
|
25
25
|
* ```typescript
|
|
26
|
-
* const provider = new
|
|
26
|
+
* const provider = new GoogleModel({
|
|
27
27
|
* apiKey: 'your-api-key',
|
|
28
28
|
* modelId: 'gemini-2.5-flash',
|
|
29
29
|
* params: { temperature: 0.7, maxOutputTokens: 1024 }
|
|
@@ -40,36 +40,36 @@ const DEFAULT_GEMINI_MODEL_ID = 'gemini-2.5-flash';
|
|
|
40
40
|
* }
|
|
41
41
|
* ```
|
|
42
42
|
*/
|
|
43
|
-
export class
|
|
43
|
+
export class GoogleModel extends Model {
|
|
44
44
|
_config;
|
|
45
45
|
_client;
|
|
46
46
|
/**
|
|
47
|
-
* Creates a new
|
|
47
|
+
* Creates a new GoogleModel instance.
|
|
48
48
|
*
|
|
49
49
|
* @param options - Configuration for model and client
|
|
50
50
|
*
|
|
51
51
|
* @example
|
|
52
52
|
* ```typescript
|
|
53
53
|
* // Minimal configuration with API key
|
|
54
|
-
* const provider = new
|
|
54
|
+
* const provider = new GoogleModel({
|
|
55
55
|
* apiKey: 'your-api-key'
|
|
56
56
|
* })
|
|
57
57
|
*
|
|
58
58
|
* // With model configuration
|
|
59
|
-
* const provider = new
|
|
59
|
+
* const provider = new GoogleModel({
|
|
60
60
|
* apiKey: 'your-api-key',
|
|
61
61
|
* modelId: 'gemini-2.5-flash',
|
|
62
62
|
* params: { temperature: 0.8, maxOutputTokens: 2048 }
|
|
63
63
|
* })
|
|
64
64
|
*
|
|
65
65
|
* // Using environment variable for API key
|
|
66
|
-
* const provider = new
|
|
66
|
+
* const provider = new GoogleModel({
|
|
67
67
|
* modelId: 'gemini-2.5-flash'
|
|
68
68
|
* })
|
|
69
69
|
*
|
|
70
70
|
* // Using a pre-configured client instance
|
|
71
71
|
* const client = new GoogleGenAI({ apiKey: 'your-api-key' })
|
|
72
|
-
* const provider = new
|
|
72
|
+
* const provider = new GoogleModel({
|
|
73
73
|
* client
|
|
74
74
|
* })
|
|
75
75
|
* ```
|
|
@@ -82,7 +82,7 @@ export class GeminiModel extends Model {
|
|
|
82
82
|
this._client = client;
|
|
83
83
|
}
|
|
84
84
|
else {
|
|
85
|
-
const resolvedApiKey = apiKey ||
|
|
85
|
+
const resolvedApiKey = apiKey || GoogleModel._getEnvApiKey();
|
|
86
86
|
if (!resolvedApiKey) {
|
|
87
87
|
throw new Error("Gemini API key is required. Provide it via the 'apiKey' option or set the GEMINI_API_KEY environment variable.");
|
|
88
88
|
}
|
|
@@ -124,7 +124,7 @@ export class GeminiModel extends Model {
|
|
|
124
124
|
return this._config;
|
|
125
125
|
}
|
|
126
126
|
/**
|
|
127
|
-
* Streams a conversation with the
|
|
127
|
+
* Streams a conversation with the Google model.
|
|
128
128
|
* Returns an async iterable that yields streaming events as they occur.
|
|
129
129
|
*
|
|
130
130
|
* @param messages - Array of conversation messages
|
|
@@ -135,7 +135,7 @@ export class GeminiModel extends Model {
|
|
|
135
135
|
*
|
|
136
136
|
* @example
|
|
137
137
|
* ```typescript
|
|
138
|
-
* const provider = new
|
|
138
|
+
* const provider = new GoogleModel({ apiKey: 'your-api-key' })
|
|
139
139
|
* const messages: Message[] = [
|
|
140
140
|
* { role: 'user', content: [{ type: 'textBlock', text: 'What is 2+2?' }] }
|
|
141
141
|
* ]
|
|
@@ -180,10 +180,13 @@ export class GeminiModel extends Model {
|
|
|
180
180
|
if (!(error instanceof Error)) {
|
|
181
181
|
throw error;
|
|
182
182
|
}
|
|
183
|
-
const errorType =
|
|
183
|
+
const errorType = classifyGoogleError(error);
|
|
184
184
|
if (errorType === 'contextOverflow') {
|
|
185
185
|
throw new ContextWindowOverflowError(error.message);
|
|
186
186
|
}
|
|
187
|
+
if (errorType === 'throttling') {
|
|
188
|
+
throw new ModelThrottledError(error.message, { cause: error });
|
|
189
|
+
}
|
|
187
190
|
throw error;
|
|
188
191
|
}
|
|
189
192
|
}
|
|
@@ -194,7 +197,7 @@ export class GeminiModel extends Model {
|
|
|
194
197
|
return globalThis?.process?.env?.GEMINI_API_KEY;
|
|
195
198
|
}
|
|
196
199
|
/**
|
|
197
|
-
* Formats a request for the
|
|
200
|
+
* Formats a request for the Google GenAI API.
|
|
198
201
|
*/
|
|
199
202
|
_formatRequest(messages, options) {
|
|
200
203
|
const contents = formatMessages(messages);
|
|
@@ -247,11 +250,11 @@ export class GeminiModel extends Model {
|
|
|
247
250
|
}
|
|
248
251
|
}
|
|
249
252
|
// Append built-in tools (e.g., GoogleSearch, CodeExecution)
|
|
250
|
-
if (this._config.
|
|
253
|
+
if (this._config.builtInTools && this._config.builtInTools.length > 0) {
|
|
251
254
|
if (!config.tools) {
|
|
252
255
|
config.tools = [];
|
|
253
256
|
}
|
|
254
|
-
config.tools.push(...this._config.
|
|
257
|
+
config.tools.push(...this._config.builtInTools);
|
|
255
258
|
}
|
|
256
259
|
// Spread params object for forward compatibility
|
|
257
260
|
if (this._config.params) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../src/models/google/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Type definitions for the
|
|
2
|
+
* Type definitions for the Google model provider.
|
|
3
3
|
*/
|
|
4
4
|
import type { GoogleGenAI, GoogleGenAIOptions, Tool } from '@google/genai';
|
|
5
5
|
import type { BaseModelConfig } from '../model.js';
|
|
6
6
|
/**
|
|
7
|
-
* Configuration interface for
|
|
7
|
+
* Configuration interface for Google model provider.
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
10
10
|
* ```typescript
|
|
11
|
-
* const config:
|
|
11
|
+
* const config: GoogleModelConfig = {
|
|
12
12
|
* modelId: 'gemini-2.5-flash',
|
|
13
13
|
* params: { temperature: 0.7, maxOutputTokens: 1024 }
|
|
14
14
|
* }
|
|
@@ -16,7 +16,7 @@ import type { BaseModelConfig } from '../model.js';
|
|
|
16
16
|
*
|
|
17
17
|
* @see https://ai.google.dev/api/generate-content#generationconfig
|
|
18
18
|
*/
|
|
19
|
-
export interface
|
|
19
|
+
export interface GoogleModelConfig extends BaseModelConfig {
|
|
20
20
|
/**
|
|
21
21
|
* Gemini model identifier (e.g., gemini-2.5-flash, gemini-2.5-pro).
|
|
22
22
|
*
|
|
@@ -31,17 +31,17 @@ export interface GeminiModelConfig extends BaseModelConfig {
|
|
|
31
31
|
*/
|
|
32
32
|
params?: Record<string, unknown>;
|
|
33
33
|
/**
|
|
34
|
-
*
|
|
34
|
+
* Built-in tools (e.g., GoogleSearch, CodeExecution, UrlContext).
|
|
35
35
|
* These are appended as separate Tool objects alongside any functionDeclarations.
|
|
36
36
|
*
|
|
37
37
|
* @see https://ai.google.dev/gemini-api/docs/function-calling
|
|
38
38
|
*/
|
|
39
|
-
|
|
39
|
+
builtInTools?: Tool[];
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
|
-
* Options interface for creating a
|
|
42
|
+
* Options interface for creating a GoogleModel instance.
|
|
43
43
|
*/
|
|
44
|
-
export interface
|
|
44
|
+
export interface GoogleModelOptions extends GoogleModelConfig {
|
|
45
45
|
/**
|
|
46
46
|
* Gemini API key (falls back to GEMINI_API_KEY environment variable).
|
|
47
47
|
*/
|
|
@@ -60,7 +60,7 @@ export interface GeminiModelOptions extends GeminiModelConfig {
|
|
|
60
60
|
/**
|
|
61
61
|
* Internal state for tracking streaming progress.
|
|
62
62
|
*/
|
|
63
|
-
export interface
|
|
63
|
+
export interface GoogleStreamState {
|
|
64
64
|
messageStarted: boolean;
|
|
65
65
|
textContentBlockStarted: boolean;
|
|
66
66
|
reasoningContentBlockStarted: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/models/
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/models/google/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAEhC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,IAAI,EAAE,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAA;IAEpB;;;OAGG;IACH,YAAY,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAA;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,OAAO,CAAA;IACvB,uBAAuB,EAAE,OAAO,CAAA;IAChC,4BAA4B,EAAE,OAAO,CAAA;IACrC,YAAY,EAAE,OAAO,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/models/google/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -2,6 +2,18 @@ import { type ContentBlock, Message, type StopReason, type SystemPrompt } from '
|
|
|
2
2
|
import type { ToolChoice, ToolSpec } from '../tools/types.js';
|
|
3
3
|
import { ModelMetadataEvent, type ModelStreamEvent } from './streaming.js';
|
|
4
4
|
import type { Redaction } from '../hooks/events.js';
|
|
5
|
+
/**
|
|
6
|
+
* Configuration for prompt caching.
|
|
7
|
+
*/
|
|
8
|
+
export interface CacheConfig {
|
|
9
|
+
/**
|
|
10
|
+
* Caching strategy to use.
|
|
11
|
+
* - "auto": Automatically inject cache points at optimal positions based on model ID detection
|
|
12
|
+
* (after tools, after last user message)
|
|
13
|
+
* - "anthropic": Force enable Anthropic-style caching (useful for application inference profiles)
|
|
14
|
+
*/
|
|
15
|
+
strategy: 'auto' | 'anthropic';
|
|
16
|
+
}
|
|
5
17
|
/**
|
|
6
18
|
* Base configuration interface for all model providers.
|
|
7
19
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/models/model.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,OAAO,EAGP,KAAK,UAAU,EACf,KAAK,YAAY,EAGlB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAML,kBAAkB,EAElB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/models/model.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,OAAO,EAGP,KAAK,UAAU,EACf,KAAK,YAAY,EAGlB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAML,kBAAkB,EAElB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAsBnD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAA;CAC/B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAA;IAE3B;;OAEG;IACH,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IAEtB;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;IAEhB;;OAEG;IACH,UAAU,EAAE,UAAU,CAAA;IAEtB;;OAEG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAE7B;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED;;;;;;;;GAQG;AACH,8BAAsB,KAAK,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe;IACrE;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI;IAE3C;;;;OAIG;IACH,QAAQ,CAAC,SAAS,IAAI,CAAC;IAEvB;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC,gBAAgB,CAAC;IAE9F;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAqB/B;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACI,gBAAgB,CACrB,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,aAAa,GACtB,cAAc,CAAC,gBAAgB,GAAG,YAAY,EAAE,sBAAsB,EAAE,SAAS,CAAC;CA8KtF"}
|
package/dist/src/models/model.js
CHANGED
|
@@ -2,6 +2,7 @@ import { Message, ReasoningBlock, TextBlock, ToolUseBlock, } from '../types/mess
|
|
|
2
2
|
import { CitationsBlock } from '../types/citations.js';
|
|
3
3
|
import { ModelContentBlockDeltaEvent, ModelContentBlockStartEvent, ModelContentBlockStopEvent, ModelMessageStartEvent, ModelMessageStopEvent, ModelMetadataEvent, ModelRedactionEvent, } from './streaming.js';
|
|
4
4
|
import { MaxTokensError, ModelError, normalizeError } from '../errors.js';
|
|
5
|
+
import { logger } from '../logging/logger.js';
|
|
5
6
|
class CitationAccumulator {
|
|
6
7
|
citations = [];
|
|
7
8
|
content = [];
|
|
@@ -56,7 +57,7 @@ export class Model {
|
|
|
56
57
|
case 'modelRedactionEvent':
|
|
57
58
|
return new ModelRedactionEvent(event_data);
|
|
58
59
|
default:
|
|
59
|
-
throw new Error(`Unsupported event type: ${event_data}`);
|
|
60
|
+
throw new Error(`Unsupported event type: ${event_data.type}`);
|
|
60
61
|
}
|
|
61
62
|
}
|
|
62
63
|
/**
|
|
@@ -98,7 +99,6 @@ export class Model {
|
|
|
98
99
|
let toolReasoningSignature = '';
|
|
99
100
|
let accumulatedReasoning = {};
|
|
100
101
|
const accumulatedCitations = new CitationAccumulator();
|
|
101
|
-
let errorToThrow = undefined;
|
|
102
102
|
let stoppedMessage = null;
|
|
103
103
|
let finalStopReason = null;
|
|
104
104
|
let metadata = undefined;
|
|
@@ -181,8 +181,8 @@ export class Model {
|
|
|
181
181
|
}
|
|
182
182
|
catch (e) {
|
|
183
183
|
if (e instanceof SyntaxError) {
|
|
184
|
-
|
|
185
|
-
|
|
184
|
+
logger.error('unable to parse JSON string', e);
|
|
185
|
+
throw e;
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
break;
|
|
@@ -222,15 +222,11 @@ export class Model {
|
|
|
222
222
|
}
|
|
223
223
|
if (!stoppedMessage || !finalStopReason) {
|
|
224
224
|
// If we exit the loop without completing a message or stop reason, throw an error
|
|
225
|
-
throw new ModelError('Stream ended without completing a message'
|
|
225
|
+
throw new ModelError('Stream ended without completing a message');
|
|
226
226
|
}
|
|
227
227
|
// Handle stop reason
|
|
228
228
|
if (finalStopReason === 'maxTokens') {
|
|
229
|
-
|
|
230
|
-
errorToThrow = maxTokensError;
|
|
231
|
-
}
|
|
232
|
-
if (errorToThrow !== undefined) {
|
|
233
|
-
throw errorToThrow;
|
|
229
|
+
throw new MaxTokensError('Model reached maximum token limit. This is an unrecoverable state that requires intervention.', stoppedMessage);
|
|
234
230
|
}
|
|
235
231
|
// Return the final message with stop reason and optional metadata
|
|
236
232
|
const result = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/models/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EACP,cAAc,EAId,SAAS,EACT,YAAY,GACb,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAGtD,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,GAEpB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/models/model.ts"],"names":[],"mappings":"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"}
|