@strands-agents/sdk 1.7.0 → 1.8.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/dist/src/agent/agent.d.ts +1 -1
- package/dist/src/agent/agent.d.ts.map +1 -1
- package/dist/src/agent/agent.js +1 -1
- package/dist/src/agent/agent.js.map +1 -1
- package/dist/src/context-manager/modes/agentic/agentic-context.d.ts +3 -3
- package/dist/src/context-manager/modes/agentic/agentic-context.d.ts.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/index.node.d.ts.map +1 -1
- package/dist/src/index.node.js +3 -0
- package/dist/src/index.node.js.map +1 -1
- package/dist/src/interventions/actions.d.ts.map +1 -1
- package/dist/src/interventions/actions.js.map +1 -1
- package/dist/src/{mcp.d.ts → mcp/client.d.ts} +13 -4
- package/dist/src/mcp/client.d.ts.map +1 -0
- package/dist/src/{mcp.js → mcp/client.js} +15 -3
- package/dist/src/mcp/client.js.map +1 -0
- package/dist/src/mcp/config.d.ts +52 -0
- package/dist/src/mcp/config.d.ts.map +1 -0
- package/dist/src/mcp/config.js +12 -0
- package/dist/src/mcp/config.js.map +1 -0
- package/dist/src/mcp/config.node.d.ts +16 -0
- package/dist/src/mcp/config.node.d.ts.map +1 -0
- package/dist/src/mcp/config.node.js +145 -0
- package/dist/src/mcp/config.node.js.map +1 -0
- package/dist/src/mcp/index.d.ts +3 -0
- package/dist/src/mcp/index.d.ts.map +1 -0
- package/dist/src/mcp/index.js +2 -0
- package/dist/src/mcp/index.js.map +1 -0
- package/dist/src/models/model.d.ts.map +1 -1
- package/dist/src/models/model.js +2 -1
- package/dist/src/models/model.js.map +1 -1
- package/dist/src/multiagent/graph.d.ts +7 -0
- package/dist/src/multiagent/graph.d.ts.map +1 -1
- package/dist/src/multiagent/graph.js +22 -1
- package/dist/src/multiagent/graph.js.map +1 -1
- package/dist/src/multiagent/nodes.d.ts +5 -0
- package/dist/src/multiagent/nodes.d.ts.map +1 -1
- package/dist/src/multiagent/nodes.js +15 -0
- package/dist/src/multiagent/nodes.js.map +1 -1
- package/dist/src/multiagent/state.d.ts.map +1 -1
- package/dist/src/multiagent/state.js.map +1 -1
- package/dist/src/tools/function-tool.d.ts +1 -1
- package/dist/src/tools/function-tool.d.ts.map +1 -1
- package/dist/src/tools/function-tool.js +4 -12
- package/dist/src/tools/function-tool.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +2 -1
- package/dist/src/tools/mcp-tool.d.ts.map +1 -1
- package/dist/src/tools/mcp-tool.js +1 -0
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/tool-factory.d.ts +1 -1
- package/dist/src/tools/tool-factory.d.ts.map +1 -1
- package/dist/src/tools/types.d.ts +4 -0
- package/dist/src/tools/types.d.ts.map +1 -1
- package/dist/src/tools/zod-tool.d.ts +4 -2
- package/dist/src/tools/zod-tool.d.ts.map +1 -1
- package/dist/src/tools/zod-tool.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types/media.d.ts.map +1 -1
- package/dist/src/types/media.js.map +1 -1
- package/dist/src/types/messages.d.ts.map +1 -1
- package/dist/src/types/messages.js.map +1 -1
- package/dist/src/vended-memory-stores/local/index.d.ts +2 -0
- package/dist/src/vended-memory-stores/local/index.d.ts.map +1 -0
- package/dist/src/vended-memory-stores/local/index.js +2 -0
- package/dist/src/vended-memory-stores/local/index.js.map +1 -0
- package/dist/src/vended-memory-stores/local/store.d.ts +122 -0
- package/dist/src/vended-memory-stores/local/store.d.ts.map +1 -0
- package/dist/src/vended-memory-stores/local/store.js +281 -0
- package/dist/src/vended-memory-stores/local/store.js.map +1 -0
- package/dist/src/vended-plugins/context-offloader/search.d.ts.map +1 -1
- package/dist/src/vended-plugins/context-offloader/search.js +4 -2
- package/dist/src/vended-plugins/context-offloader/search.js.map +1 -1
- package/dist/src/vended-plugins/context-offloader/storage.js +1 -1
- package/dist/src/vended-plugins/context-offloader/storage.js.map +1 -1
- package/dist/src/vended-plugins/skills/skill.d.ts.map +1 -1
- package/dist/src/vended-plugins/skills/skill.js.map +1 -1
- package/dist/src/vended-tools/notebook/notebook.d.ts +1 -1
- package/package.json +21 -14
- package/dist/src/__fixtures__/agent-helpers.d.ts +0 -136
- package/dist/src/__fixtures__/agent-helpers.d.ts.map +0 -1
- package/dist/src/__fixtures__/agent-helpers.js +0 -156
- package/dist/src/__fixtures__/agent-helpers.js.map +0 -1
- package/dist/src/__fixtures__/environment.d.ts +0 -12
- package/dist/src/__fixtures__/environment.d.ts.map +0 -1
- package/dist/src/__fixtures__/environment.js +0 -12
- package/dist/src/__fixtures__/environment.js.map +0 -1
- package/dist/src/__fixtures__/metrics-helpers.d.ts +0 -55
- package/dist/src/__fixtures__/metrics-helpers.d.ts.map +0 -1
- package/dist/src/__fixtures__/metrics-helpers.js +0 -57
- package/dist/src/__fixtures__/metrics-helpers.js.map +0 -1
- package/dist/src/__fixtures__/mock-message-model.d.ts +0 -103
- package/dist/src/__fixtures__/mock-message-model.d.ts.map +0 -1
- package/dist/src/__fixtures__/mock-message-model.js +0 -245
- package/dist/src/__fixtures__/mock-message-model.js.map +0 -1
- package/dist/src/__fixtures__/mock-meter.d.ts +0 -32
- package/dist/src/__fixtures__/mock-meter.d.ts.map +0 -1
- package/dist/src/__fixtures__/mock-meter.js +0 -47
- package/dist/src/__fixtures__/mock-meter.js.map +0 -1
- package/dist/src/__fixtures__/mock-plugin.d.ts +0 -13
- package/dist/src/__fixtures__/mock-plugin.d.ts.map +0 -1
- package/dist/src/__fixtures__/mock-plugin.js +0 -35
- package/dist/src/__fixtures__/mock-plugin.js.map +0 -1
- package/dist/src/__fixtures__/mock-span.d.ts +0 -78
- package/dist/src/__fixtures__/mock-span.d.ts.map +0 -1
- package/dist/src/__fixtures__/mock-span.js +0 -93
- package/dist/src/__fixtures__/mock-span.js.map +0 -1
- package/dist/src/__fixtures__/mock-storage-provider.d.ts +0 -42
- package/dist/src/__fixtures__/mock-storage-provider.d.ts.map +0 -1
- package/dist/src/__fixtures__/mock-storage-provider.js +0 -122
- package/dist/src/__fixtures__/mock-storage-provider.js.map +0 -1
- package/dist/src/__fixtures__/model-test-helpers.d.ts +0 -56
- package/dist/src/__fixtures__/model-test-helpers.d.ts.map +0 -1
- package/dist/src/__fixtures__/model-test-helpers.js +0 -85
- package/dist/src/__fixtures__/model-test-helpers.js.map +0 -1
- package/dist/src/__fixtures__/register-node-defaults.d.ts +0 -2
- package/dist/src/__fixtures__/register-node-defaults.d.ts.map +0 -1
- package/dist/src/__fixtures__/register-node-defaults.js +0 -6
- package/dist/src/__fixtures__/register-node-defaults.js.map +0 -1
- package/dist/src/__fixtures__/slim-types.d.ts +0 -51
- package/dist/src/__fixtures__/slim-types.d.ts.map +0 -1
- package/dist/src/__fixtures__/slim-types.js +0 -6
- package/dist/src/__fixtures__/slim-types.js.map +0 -1
- package/dist/src/__fixtures__/test-sandbox.node.d.ts +0 -15
- package/dist/src/__fixtures__/test-sandbox.node.d.ts.map +0 -1
- package/dist/src/__fixtures__/test-sandbox.node.js +0 -23
- package/dist/src/__fixtures__/test-sandbox.node.js.map +0 -1
- package/dist/src/__fixtures__/tool-helpers.d.ts +0 -45
- package/dist/src/__fixtures__/tool-helpers.d.ts.map +0 -1
- package/dist/src/__fixtures__/tool-helpers.js +0 -101
- package/dist/src/__fixtures__/tool-helpers.js.map +0 -1
- package/dist/src/__tests__/default-slot.test.d.ts +0 -2
- package/dist/src/__tests__/default-slot.test.d.ts.map +0 -1
- package/dist/src/__tests__/default-slot.test.js +0 -33
- package/dist/src/__tests__/default-slot.test.js.map +0 -1
- package/dist/src/__tests__/errors.test.d.ts +0 -2
- package/dist/src/__tests__/errors.test.d.ts.map +0 -1
- package/dist/src/__tests__/errors.test.js +0 -170
- package/dist/src/__tests__/errors.test.js.map +0 -1
- package/dist/src/__tests__/index.test.d.ts +0 -2
- package/dist/src/__tests__/index.test.d.ts.map +0 -1
- package/dist/src/__tests__/index.test.js +0 -48
- package/dist/src/__tests__/index.test.js.map +0 -1
- package/dist/src/__tests__/interrupt.test.d.ts +0 -2
- package/dist/src/__tests__/interrupt.test.d.ts.map +0 -1
- package/dist/src/__tests__/interrupt.test.js +0 -264
- package/dist/src/__tests__/interrupt.test.js.map +0 -1
- package/dist/src/__tests__/mcp.test.d.ts +0 -2
- package/dist/src/__tests__/mcp.test.d.ts.map +0 -1
- package/dist/src/__tests__/mcp.test.js +0 -1003
- package/dist/src/__tests__/mcp.test.js.map +0 -1
- package/dist/src/__tests__/mime.test.d.ts +0 -2
- package/dist/src/__tests__/mime.test.d.ts.map +0 -1
- package/dist/src/__tests__/mime.test.js +0 -83
- package/dist/src/__tests__/mime.test.js.map +0 -1
- package/dist/src/__tests__/state-store.test.d.ts +0 -2
- package/dist/src/__tests__/state-store.test.d.ts.map +0 -1
- package/dist/src/__tests__/state-store.test.js +0 -285
- package/dist/src/__tests__/state-store.test.js.map +0 -1
- package/dist/src/a2a/__tests__/a2a-agent.test.d.ts +0 -2
- package/dist/src/a2a/__tests__/a2a-agent.test.d.ts.map +0 -1
- package/dist/src/a2a/__tests__/a2a-agent.test.js +0 -383
- package/dist/src/a2a/__tests__/a2a-agent.test.js.map +0 -1
- package/dist/src/a2a/__tests__/adapters.test.d.ts +0 -2
- package/dist/src/a2a/__tests__/adapters.test.d.ts.map +0 -1
- package/dist/src/a2a/__tests__/adapters.test.js +0 -151
- package/dist/src/a2a/__tests__/adapters.test.js.map +0 -1
- package/dist/src/a2a/__tests__/async-lock.test.d.ts +0 -2
- package/dist/src/a2a/__tests__/async-lock.test.d.ts.map +0 -1
- package/dist/src/a2a/__tests__/async-lock.test.js +0 -137
- package/dist/src/a2a/__tests__/async-lock.test.js.map +0 -1
- package/dist/src/a2a/__tests__/events.test.d.ts +0 -2
- package/dist/src/a2a/__tests__/events.test.d.ts.map +0 -1
- package/dist/src/a2a/__tests__/events.test.js +0 -68
- package/dist/src/a2a/__tests__/events.test.js.map +0 -1
- package/dist/src/a2a/__tests__/executor.test.d.ts +0 -2
- package/dist/src/a2a/__tests__/executor.test.d.ts.map +0 -1
- package/dist/src/a2a/__tests__/executor.test.js +0 -345
- package/dist/src/a2a/__tests__/executor.test.js.map +0 -1
- package/dist/src/a2a/__tests__/server.test.d.ts +0 -2
- package/dist/src/a2a/__tests__/server.test.d.ts.map +0 -1
- package/dist/src/a2a/__tests__/server.test.js +0 -71
- package/dist/src/a2a/__tests__/server.test.js.map +0 -1
- package/dist/src/a2a/__tests__/server.test.node.d.ts +0 -2
- package/dist/src/a2a/__tests__/server.test.node.d.ts.map +0 -1
- package/dist/src/a2a/__tests__/server.test.node.js +0 -110
- package/dist/src/a2a/__tests__/server.test.node.js.map +0 -1
- package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts +0 -2
- package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts.map +0 -1
- package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js +0 -23
- package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js.map +0 -1
- package/dist/src/agent/__tests__/agent-as-tool.test.d.ts +0 -2
- package/dist/src/agent/__tests__/agent-as-tool.test.d.ts.map +0 -1
- package/dist/src/agent/__tests__/agent-as-tool.test.js +0 -347
- package/dist/src/agent/__tests__/agent-as-tool.test.js.map +0 -1
- package/dist/src/agent/__tests__/agent.cancel.test.d.ts +0 -2
- package/dist/src/agent/__tests__/agent.cancel.test.d.ts.map +0 -1
- package/dist/src/agent/__tests__/agent.cancel.test.js +0 -337
- package/dist/src/agent/__tests__/agent.cancel.test.js.map +0 -1
- package/dist/src/agent/__tests__/agent.concurrent.test.d.ts +0 -2
- package/dist/src/agent/__tests__/agent.concurrent.test.d.ts.map +0 -1
- package/dist/src/agent/__tests__/agent.concurrent.test.js +0 -488
- package/dist/src/agent/__tests__/agent.concurrent.test.js.map +0 -1
- package/dist/src/agent/__tests__/agent.context-manager.test.d.ts +0 -2
- package/dist/src/agent/__tests__/agent.context-manager.test.d.ts.map +0 -1
- package/dist/src/agent/__tests__/agent.context-manager.test.js +0 -106
- package/dist/src/agent/__tests__/agent.context-manager.test.js.map +0 -1
- package/dist/src/agent/__tests__/agent.hook.test.d.ts +0 -2
- package/dist/src/agent/__tests__/agent.hook.test.d.ts.map +0 -1
- package/dist/src/agent/__tests__/agent.hook.test.js +0 -1332
- package/dist/src/agent/__tests__/agent.hook.test.js.map +0 -1
- package/dist/src/agent/__tests__/agent.interrupt.test.d.ts +0 -2
- package/dist/src/agent/__tests__/agent.interrupt.test.d.ts.map +0 -1
- package/dist/src/agent/__tests__/agent.interrupt.test.js +0 -779
- package/dist/src/agent/__tests__/agent.interrupt.test.js.map +0 -1
- package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts +0 -2
- package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts.map +0 -1
- package/dist/src/agent/__tests__/agent.invocation-state.test.js +0 -219
- package/dist/src/agent/__tests__/agent.invocation-state.test.js.map +0 -1
- package/dist/src/agent/__tests__/agent.model-retry.test.d.ts +0 -2
- package/dist/src/agent/__tests__/agent.model-retry.test.d.ts.map +0 -1
- package/dist/src/agent/__tests__/agent.model-retry.test.js +0 -161
- package/dist/src/agent/__tests__/agent.model-retry.test.js.map +0 -1
- package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts +0 -2
- package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts.map +0 -1
- package/dist/src/agent/__tests__/agent.stateful-model.test.js +0 -169
- package/dist/src/agent/__tests__/agent.stateful-model.test.js.map +0 -1
- package/dist/src/agent/__tests__/agent.test.d.ts +0 -2
- package/dist/src/agent/__tests__/agent.test.d.ts.map +0 -1
- package/dist/src/agent/__tests__/agent.test.js +0 -1624
- package/dist/src/agent/__tests__/agent.test.js.map +0 -1
- package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts +0 -2
- package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts.map +0 -1
- package/dist/src/agent/__tests__/agent.tracer.test.node.js +0 -535
- package/dist/src/agent/__tests__/agent.tracer.test.node.js.map +0 -1
- package/dist/src/agent/__tests__/printer.test.d.ts +0 -2
- package/dist/src/agent/__tests__/printer.test.d.ts.map +0 -1
- package/dist/src/agent/__tests__/printer.test.js +0 -188
- package/dist/src/agent/__tests__/printer.test.js.map +0 -1
- package/dist/src/agent/__tests__/snapshot.test.d.ts +0 -2
- package/dist/src/agent/__tests__/snapshot.test.d.ts.map +0 -1
- package/dist/src/agent/__tests__/snapshot.test.js +0 -442
- package/dist/src/agent/__tests__/snapshot.test.js.map +0 -1
- package/dist/src/agent/__tests__/tool-caller.test.d.ts +0 -2
- package/dist/src/agent/__tests__/tool-caller.test.d.ts.map +0 -1
- package/dist/src/agent/__tests__/tool-caller.test.js +0 -459
- package/dist/src/agent/__tests__/tool-caller.test.js.map +0 -1
- package/dist/src/conversation-manager/__tests__/agentic-context.test.d.ts +0 -2
- package/dist/src/conversation-manager/__tests__/agentic-context.test.d.ts.map +0 -1
- package/dist/src/conversation-manager/__tests__/agentic-context.test.js +0 -332
- package/dist/src/conversation-manager/__tests__/agentic-context.test.js.map +0 -1
- package/dist/src/conversation-manager/__tests__/context-compression.test.d.ts +0 -2
- package/dist/src/conversation-manager/__tests__/context-compression.test.d.ts.map +0 -1
- package/dist/src/conversation-manager/__tests__/context-compression.test.js +0 -176
- package/dist/src/conversation-manager/__tests__/context-compression.test.js.map +0 -1
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts +0 -2
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts.map +0 -1
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +0 -321
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +0 -1
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.d.ts +0 -2
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.d.ts.map +0 -1
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +0 -64
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +0 -1
- package/dist/src/conversation-manager/__tests__/pin.test.d.ts +0 -2
- package/dist/src/conversation-manager/__tests__/pin.test.d.ts.map +0 -1
- package/dist/src/conversation-manager/__tests__/pin.test.js +0 -119
- package/dist/src/conversation-manager/__tests__/pin.test.js.map +0 -1
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.d.ts +0 -2
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.d.ts.map +0 -1
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +0 -1080
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +0 -1
- package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.d.ts +0 -2
- package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.d.ts.map +0 -1
- package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js +0 -400
- package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js.map +0 -1
- package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.d.ts +0 -2
- package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.d.ts.map +0 -1
- package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.js +0 -138
- package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.js.map +0 -1
- package/dist/src/hooks/__tests__/events.test.d.ts +0 -2
- package/dist/src/hooks/__tests__/events.test.d.ts.map +0 -1
- package/dist/src/hooks/__tests__/events.test.js +0 -1060
- package/dist/src/hooks/__tests__/events.test.js.map +0 -1
- package/dist/src/hooks/__tests__/registry.test.d.ts +0 -2
- package/dist/src/hooks/__tests__/registry.test.d.ts.map +0 -1
- package/dist/src/hooks/__tests__/registry.test.js +0 -325
- package/dist/src/hooks/__tests__/registry.test.js.map +0 -1
- package/dist/src/injection/__tests__/message-injection.test.d.ts +0 -2
- package/dist/src/injection/__tests__/message-injection.test.d.ts.map +0 -1
- package/dist/src/injection/__tests__/message-injection.test.js +0 -200
- package/dist/src/injection/__tests__/message-injection.test.js.map +0 -1
- package/dist/src/interventions/__tests__/handler.test.d.ts +0 -2
- package/dist/src/interventions/__tests__/handler.test.d.ts.map +0 -1
- package/dist/src/interventions/__tests__/handler.test.js +0 -35
- package/dist/src/interventions/__tests__/handler.test.js.map +0 -1
- package/dist/src/interventions/__tests__/registry.test.d.ts +0 -2
- package/dist/src/interventions/__tests__/registry.test.d.ts.map +0 -1
- package/dist/src/interventions/__tests__/registry.test.js +0 -692
- package/dist/src/interventions/__tests__/registry.test.js.map +0 -1
- package/dist/src/logging/__tests__/logger.test.d.ts +0 -2
- package/dist/src/logging/__tests__/logger.test.d.ts.map +0 -1
- package/dist/src/logging/__tests__/logger.test.js +0 -70
- package/dist/src/logging/__tests__/logger.test.js.map +0 -1
- package/dist/src/logging/__tests__/warn-once.test.d.ts +0 -2
- package/dist/src/logging/__tests__/warn-once.test.d.ts.map +0 -1
- package/dist/src/logging/__tests__/warn-once.test.js +0 -30
- package/dist/src/logging/__tests__/warn-once.test.js.map +0 -1
- package/dist/src/mcp.d.ts.map +0 -1
- package/dist/src/mcp.js.map +0 -1
- package/dist/src/memory/__tests__/memory-manager.test.d.ts +0 -2
- package/dist/src/memory/__tests__/memory-manager.test.d.ts.map +0 -1
- package/dist/src/memory/__tests__/memory-manager.test.js +0 -679
- package/dist/src/memory/__tests__/memory-manager.test.js.map +0 -1
- package/dist/src/memory/__tests__/memory-tracing.test.d.ts +0 -2
- package/dist/src/memory/__tests__/memory-tracing.test.d.ts.map +0 -1
- package/dist/src/memory/__tests__/memory-tracing.test.js +0 -250
- package/dist/src/memory/__tests__/memory-tracing.test.js.map +0 -1
- package/dist/src/memory/extraction/__tests__/extraction.test.d.ts +0 -2
- package/dist/src/memory/extraction/__tests__/extraction.test.d.ts.map +0 -1
- package/dist/src/memory/extraction/__tests__/extraction.test.js +0 -639
- package/dist/src/memory/extraction/__tests__/extraction.test.js.map +0 -1
- package/dist/src/memory/extraction/__tests__/model-extractor.test.d.ts +0 -2
- package/dist/src/memory/extraction/__tests__/model-extractor.test.d.ts.map +0 -1
- package/dist/src/memory/extraction/__tests__/model-extractor.test.js +0 -104
- package/dist/src/memory/extraction/__tests__/model-extractor.test.js.map +0 -1
- package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.d.ts +0 -2
- package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.d.ts.map +0 -1
- package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.js +0 -81
- package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.js.map +0 -1
- package/dist/src/middleware/__tests__/agent-middleware.test.d.ts +0 -2
- package/dist/src/middleware/__tests__/agent-middleware.test.d.ts.map +0 -1
- package/dist/src/middleware/__tests__/agent-middleware.test.js +0 -1206
- package/dist/src/middleware/__tests__/agent-middleware.test.js.map +0 -1
- package/dist/src/middleware/__tests__/copy-on-input.test.d.ts +0 -2
- package/dist/src/middleware/__tests__/copy-on-input.test.d.ts.map +0 -1
- package/dist/src/middleware/__tests__/copy-on-input.test.js +0 -379
- package/dist/src/middleware/__tests__/copy-on-input.test.js.map +0 -1
- package/dist/src/middleware/__tests__/custom-stages.test.d.ts +0 -2
- package/dist/src/middleware/__tests__/custom-stages.test.d.ts.map +0 -1
- package/dist/src/middleware/__tests__/custom-stages.test.js +0 -97
- package/dist/src/middleware/__tests__/custom-stages.test.js.map +0 -1
- package/dist/src/middleware/__tests__/middleware-interrupts.test.d.ts +0 -2
- package/dist/src/middleware/__tests__/middleware-interrupts.test.d.ts.map +0 -1
- package/dist/src/middleware/__tests__/middleware-interrupts.test.js +0 -267
- package/dist/src/middleware/__tests__/middleware-interrupts.test.js.map +0 -1
- package/dist/src/middleware/__tests__/registry.test.d.ts +0 -2
- package/dist/src/middleware/__tests__/registry.test.d.ts.map +0 -1
- package/dist/src/middleware/__tests__/registry.test.js +0 -525
- package/dist/src/middleware/__tests__/registry.test.js.map +0 -1
- package/dist/src/models/__tests__/anthropic.test.d.ts +0 -2
- package/dist/src/models/__tests__/anthropic.test.d.ts.map +0 -1
- package/dist/src/models/__tests__/anthropic.test.js +0 -793
- package/dist/src/models/__tests__/anthropic.test.js.map +0 -1
- package/dist/src/models/__tests__/bedrock.test.d.ts +0 -2
- package/dist/src/models/__tests__/bedrock.test.d.ts.map +0 -1
- package/dist/src/models/__tests__/bedrock.test.js +0 -3964
- package/dist/src/models/__tests__/bedrock.test.js.map +0 -1
- package/dist/src/models/__tests__/defaults.test.d.ts +0 -2
- package/dist/src/models/__tests__/defaults.test.d.ts.map +0 -1
- package/dist/src/models/__tests__/defaults.test.js +0 -36
- package/dist/src/models/__tests__/defaults.test.js.map +0 -1
- package/dist/src/models/__tests__/google.test.d.ts +0 -2
- package/dist/src/models/__tests__/google.test.d.ts.map +0 -1
- package/dist/src/models/__tests__/google.test.js +0 -1145
- package/dist/src/models/__tests__/google.test.js.map +0 -1
- package/dist/src/models/__tests__/model.test.d.ts +0 -2
- package/dist/src/models/__tests__/model.test.d.ts.map +0 -1
- package/dist/src/models/__tests__/model.test.js +0 -921
- package/dist/src/models/__tests__/model.test.js.map +0 -1
- package/dist/src/models/__tests__/streaming.test.d.ts +0 -2
- package/dist/src/models/__tests__/streaming.test.d.ts.map +0 -1
- package/dist/src/models/__tests__/streaming.test.js +0 -50
- package/dist/src/models/__tests__/streaming.test.js.map +0 -1
- package/dist/src/models/__tests__/test-utils.d.ts +0 -10
- package/dist/src/models/__tests__/test-utils.d.ts.map +0 -1
- package/dist/src/models/__tests__/test-utils.js +0 -17
- package/dist/src/models/__tests__/test-utils.js.map +0 -1
- package/dist/src/models/__tests__/vercel.test.d.ts +0 -2
- package/dist/src/models/__tests__/vercel.test.d.ts.map +0 -1
- package/dist/src/models/__tests__/vercel.test.js +0 -740
- package/dist/src/models/__tests__/vercel.test.js.map +0 -1
- package/dist/src/models/openai/__tests__/chat.test.d.ts +0 -2
- package/dist/src/models/openai/__tests__/chat.test.d.ts.map +0 -1
- package/dist/src/models/openai/__tests__/chat.test.js +0 -1586
- package/dist/src/models/openai/__tests__/chat.test.js.map +0 -1
- package/dist/src/models/openai/__tests__/errors.test.d.ts +0 -2
- package/dist/src/models/openai/__tests__/errors.test.d.ts.map +0 -1
- package/dist/src/models/openai/__tests__/errors.test.js +0 -39
- package/dist/src/models/openai/__tests__/errors.test.js.map +0 -1
- package/dist/src/models/openai/__tests__/mantle.test.d.ts +0 -2
- package/dist/src/models/openai/__tests__/mantle.test.d.ts.map +0 -1
- package/dist/src/models/openai/__tests__/mantle.test.js +0 -189
- package/dist/src/models/openai/__tests__/mantle.test.js.map +0 -1
- package/dist/src/models/openai/__tests__/responses.test.d.ts +0 -2
- package/dist/src/models/openai/__tests__/responses.test.d.ts.map +0 -1
- package/dist/src/models/openai/__tests__/responses.test.js +0 -709
- package/dist/src/models/openai/__tests__/responses.test.js.map +0 -1
- package/dist/src/multiagent/__tests__/events.test.d.ts +0 -2
- package/dist/src/multiagent/__tests__/events.test.d.ts.map +0 -1
- package/dist/src/multiagent/__tests__/events.test.js +0 -493
- package/dist/src/multiagent/__tests__/events.test.js.map +0 -1
- package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts +0 -2
- package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts.map +0 -1
- package/dist/src/multiagent/__tests__/graph.invocation-state.test.js +0 -95
- package/dist/src/multiagent/__tests__/graph.invocation-state.test.js.map +0 -1
- package/dist/src/multiagent/__tests__/graph.test.d.ts +0 -2
- package/dist/src/multiagent/__tests__/graph.test.d.ts.map +0 -1
- package/dist/src/multiagent/__tests__/graph.test.js +0 -698
- package/dist/src/multiagent/__tests__/graph.test.js.map +0 -1
- package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts +0 -2
- package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts.map +0 -1
- package/dist/src/multiagent/__tests__/graph.tracer.test.js +0 -218
- package/dist/src/multiagent/__tests__/graph.tracer.test.js.map +0 -1
- package/dist/src/multiagent/__tests__/interrupts.test.d.ts +0 -2
- package/dist/src/multiagent/__tests__/interrupts.test.d.ts.map +0 -1
- package/dist/src/multiagent/__tests__/interrupts.test.js +0 -390
- package/dist/src/multiagent/__tests__/interrupts.test.js.map +0 -1
- package/dist/src/multiagent/__tests__/nodes.test.d.ts +0 -2
- package/dist/src/multiagent/__tests__/nodes.test.d.ts.map +0 -1
- package/dist/src/multiagent/__tests__/nodes.test.js +0 -321
- package/dist/src/multiagent/__tests__/nodes.test.js.map +0 -1
- package/dist/src/multiagent/__tests__/queue.test.d.ts +0 -2
- package/dist/src/multiagent/__tests__/queue.test.d.ts.map +0 -1
- package/dist/src/multiagent/__tests__/queue.test.js +0 -118
- package/dist/src/multiagent/__tests__/queue.test.js.map +0 -1
- package/dist/src/multiagent/__tests__/snapshot.test.d.ts +0 -2
- package/dist/src/multiagent/__tests__/snapshot.test.d.ts.map +0 -1
- package/dist/src/multiagent/__tests__/snapshot.test.js +0 -161
- package/dist/src/multiagent/__tests__/snapshot.test.js.map +0 -1
- package/dist/src/multiagent/__tests__/state.test.d.ts +0 -2
- package/dist/src/multiagent/__tests__/state.test.d.ts.map +0 -1
- package/dist/src/multiagent/__tests__/state.test.js +0 -526
- package/dist/src/multiagent/__tests__/state.test.js.map +0 -1
- package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts +0 -2
- package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts.map +0 -1
- package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js +0 -56
- package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js.map +0 -1
- package/dist/src/multiagent/__tests__/swarm.test.d.ts +0 -2
- package/dist/src/multiagent/__tests__/swarm.test.d.ts.map +0 -1
- package/dist/src/multiagent/__tests__/swarm.test.js +0 -477
- package/dist/src/multiagent/__tests__/swarm.test.js.map +0 -1
- package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts +0 -2
- package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts.map +0 -1
- package/dist/src/multiagent/__tests__/swarm.tracer.test.js +0 -235
- package/dist/src/multiagent/__tests__/swarm.tracer.test.js.map +0 -1
- package/dist/src/plugins/__tests__/plugin.test.d.ts +0 -2
- package/dist/src/plugins/__tests__/plugin.test.d.ts.map +0 -1
- package/dist/src/plugins/__tests__/plugin.test.js +0 -114
- package/dist/src/plugins/__tests__/plugin.test.js.map +0 -1
- package/dist/src/plugins/__tests__/registry.test.d.ts +0 -2
- package/dist/src/plugins/__tests__/registry.test.d.ts.map +0 -1
- package/dist/src/plugins/__tests__/registry.test.js +0 -147
- package/dist/src/plugins/__tests__/registry.test.js.map +0 -1
- package/dist/src/registry/__tests__/tool-registry.test.d.ts +0 -2
- package/dist/src/registry/__tests__/tool-registry.test.d.ts.map +0 -1
- package/dist/src/registry/__tests__/tool-registry.test.js +0 -210
- package/dist/src/registry/__tests__/tool-registry.test.js.map +0 -1
- package/dist/src/retry/__tests__/backoff-strategy.test.d.ts +0 -2
- package/dist/src/retry/__tests__/backoff-strategy.test.d.ts.map +0 -1
- package/dist/src/retry/__tests__/backoff-strategy.test.js +0 -116
- package/dist/src/retry/__tests__/backoff-strategy.test.js.map +0 -1
- package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts +0 -2
- package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts.map +0 -1
- package/dist/src/retry/__tests__/default-model-retry-strategy.test.js +0 -225
- package/dist/src/retry/__tests__/default-model-retry-strategy.test.js.map +0 -1
- package/dist/src/sandbox/__tests__/default.test.browser.d.ts +0 -2
- package/dist/src/sandbox/__tests__/default.test.browser.d.ts.map +0 -1
- package/dist/src/sandbox/__tests__/default.test.browser.js +0 -11
- package/dist/src/sandbox/__tests__/default.test.browser.js.map +0 -1
- package/dist/src/sandbox/__tests__/default.test.node.d.ts +0 -2
- package/dist/src/sandbox/__tests__/default.test.node.d.ts.map +0 -1
- package/dist/src/sandbox/__tests__/default.test.node.js +0 -23
- package/dist/src/sandbox/__tests__/default.test.node.js.map +0 -1
- package/dist/src/sandbox/__tests__/docker.test.node.d.ts +0 -2
- package/dist/src/sandbox/__tests__/docker.test.node.d.ts.map +0 -1
- package/dist/src/sandbox/__tests__/docker.test.node.js +0 -89
- package/dist/src/sandbox/__tests__/docker.test.node.js.map +0 -1
- package/dist/src/sandbox/__tests__/errors.test.node.d.ts +0 -2
- package/dist/src/sandbox/__tests__/errors.test.node.d.ts.map +0 -1
- package/dist/src/sandbox/__tests__/errors.test.node.js +0 -33
- package/dist/src/sandbox/__tests__/errors.test.node.js.map +0 -1
- package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.d.ts +0 -2
- package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.d.ts.map +0 -1
- package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.js +0 -124
- package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.js.map +0 -1
- package/dist/src/sandbox/__tests__/posix-shell.test.node.d.ts +0 -2
- package/dist/src/sandbox/__tests__/posix-shell.test.node.d.ts.map +0 -1
- package/dist/src/sandbox/__tests__/posix-shell.test.node.js +0 -298
- package/dist/src/sandbox/__tests__/posix-shell.test.node.js.map +0 -1
- package/dist/src/sandbox/__tests__/ssh.test.node.d.ts +0 -2
- package/dist/src/sandbox/__tests__/ssh.test.node.d.ts.map +0 -1
- package/dist/src/sandbox/__tests__/ssh.test.node.js +0 -262
- package/dist/src/sandbox/__tests__/ssh.test.node.js.map +0 -1
- package/dist/src/session/__tests__/file-storage.test.node.d.ts +0 -2
- package/dist/src/session/__tests__/file-storage.test.node.d.ts.map +0 -1
- package/dist/src/session/__tests__/file-storage.test.node.js +0 -278
- package/dist/src/session/__tests__/file-storage.test.node.js.map +0 -1
- package/dist/src/session/__tests__/s3-storage.test.d.ts +0 -2
- package/dist/src/session/__tests__/s3-storage.test.d.ts.map +0 -1
- package/dist/src/session/__tests__/s3-storage.test.js +0 -461
- package/dist/src/session/__tests__/s3-storage.test.js.map +0 -1
- package/dist/src/session/__tests__/session-manager.test.d.ts +0 -2
- package/dist/src/session/__tests__/session-manager.test.d.ts.map +0 -1
- package/dist/src/session/__tests__/session-manager.test.js +0 -832
- package/dist/src/session/__tests__/session-manager.test.js.map +0 -1
- package/dist/src/session/__tests__/validation.test.d.ts +0 -2
- package/dist/src/session/__tests__/validation.test.d.ts.map +0 -1
- package/dist/src/session/__tests__/validation.test.js +0 -47
- package/dist/src/session/__tests__/validation.test.js.map +0 -1
- package/dist/src/telemetry/__tests__/config.test.d.ts +0 -2
- package/dist/src/telemetry/__tests__/config.test.d.ts.map +0 -1
- package/dist/src/telemetry/__tests__/config.test.js +0 -64
- package/dist/src/telemetry/__tests__/config.test.js.map +0 -1
- package/dist/src/telemetry/__tests__/config.test.node.d.ts +0 -2
- package/dist/src/telemetry/__tests__/config.test.node.d.ts.map +0 -1
- package/dist/src/telemetry/__tests__/config.test.node.js +0 -164
- package/dist/src/telemetry/__tests__/config.test.node.js.map +0 -1
- package/dist/src/telemetry/__tests__/json.test.d.ts +0 -2
- package/dist/src/telemetry/__tests__/json.test.d.ts.map +0 -1
- package/dist/src/telemetry/__tests__/json.test.js +0 -89
- package/dist/src/telemetry/__tests__/json.test.js.map +0 -1
- package/dist/src/telemetry/__tests__/local-trace.test.d.ts +0 -2
- package/dist/src/telemetry/__tests__/local-trace.test.d.ts.map +0 -1
- package/dist/src/telemetry/__tests__/local-trace.test.js +0 -158
- package/dist/src/telemetry/__tests__/local-trace.test.js.map +0 -1
- package/dist/src/telemetry/__tests__/meter.test.d.ts +0 -2
- package/dist/src/telemetry/__tests__/meter.test.d.ts.map +0 -1
- package/dist/src/telemetry/__tests__/meter.test.js +0 -695
- package/dist/src/telemetry/__tests__/meter.test.js.map +0 -1
- package/dist/src/telemetry/__tests__/tracer.test.node.d.ts +0 -2
- package/dist/src/telemetry/__tests__/tracer.test.node.d.ts.map +0 -1
- package/dist/src/telemetry/__tests__/tracer.test.node.js +0 -958
- package/dist/src/telemetry/__tests__/tracer.test.node.js.map +0 -1
- package/dist/src/tools/__tests__/structured-output-tool.test.d.ts +0 -2
- package/dist/src/tools/__tests__/structured-output-tool.test.d.ts.map +0 -1
- package/dist/src/tools/__tests__/structured-output-tool.test.js +0 -84
- package/dist/src/tools/__tests__/structured-output-tool.test.js.map +0 -1
- package/dist/src/tools/__tests__/tool-factory.test.d.ts +0 -2
- package/dist/src/tools/__tests__/tool-factory.test.d.ts.map +0 -1
- package/dist/src/tools/__tests__/tool-factory.test.js +0 -98
- package/dist/src/tools/__tests__/tool-factory.test.js.map +0 -1
- package/dist/src/tools/__tests__/tool.test.d.ts +0 -2
- package/dist/src/tools/__tests__/tool.test.d.ts.map +0 -1
- package/dist/src/tools/__tests__/tool.test.js +0 -1043
- package/dist/src/tools/__tests__/tool.test.js.map +0 -1
- package/dist/src/tools/__tests__/zod-tool.test-d.d.ts +0 -2
- package/dist/src/tools/__tests__/zod-tool.test-d.d.ts.map +0 -1
- package/dist/src/tools/__tests__/zod-tool.test-d.js +0 -227
- package/dist/src/tools/__tests__/zod-tool.test-d.js.map +0 -1
- package/dist/src/tools/__tests__/zod-tool.test.d.ts +0 -2
- package/dist/src/tools/__tests__/zod-tool.test.d.ts.map +0 -1
- package/dist/src/tools/__tests__/zod-tool.test.js +0 -563
- package/dist/src/tools/__tests__/zod-tool.test.js.map +0 -1
- package/dist/src/types/__tests__/agent.test.d.ts +0 -2
- package/dist/src/types/__tests__/agent.test.d.ts.map +0 -1
- package/dist/src/types/__tests__/agent.test.js +0 -476
- package/dist/src/types/__tests__/agent.test.js.map +0 -1
- package/dist/src/types/__tests__/citations.test.d.ts +0 -2
- package/dist/src/types/__tests__/citations.test.d.ts.map +0 -1
- package/dist/src/types/__tests__/citations.test.js +0 -104
- package/dist/src/types/__tests__/citations.test.js.map +0 -1
- package/dist/src/types/__tests__/json.test.d.ts +0 -2
- package/dist/src/types/__tests__/json.test.d.ts.map +0 -1
- package/dist/src/types/__tests__/json.test.js +0 -298
- package/dist/src/types/__tests__/json.test.js.map +0 -1
- package/dist/src/types/__tests__/media.test.d.ts +0 -2
- package/dist/src/types/__tests__/media.test.d.ts.map +0 -1
- package/dist/src/types/__tests__/media.test.js +0 -478
- package/dist/src/types/__tests__/media.test.js.map +0 -1
- package/dist/src/types/__tests__/messages.test.d.ts +0 -2
- package/dist/src/types/__tests__/messages.test.d.ts.map +0 -1
- package/dist/src/types/__tests__/messages.test.js +0 -681
- package/dist/src/types/__tests__/messages.test.js.map +0 -1
- package/dist/src/types/__tests__/validation.test.d.ts +0 -2
- package/dist/src/types/__tests__/validation.test.d.ts.map +0 -1
- package/dist/src/types/__tests__/validation.test.js +0 -30
- package/dist/src/types/__tests__/validation.test.js.map +0 -1
- package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.d.ts +0 -2
- package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.d.ts.map +0 -1
- package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.js +0 -756
- package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.js.map +0 -1
- package/dist/src/vended-interventions/hitl/__tests__/hitl.test.d.ts +0 -2
- package/dist/src/vended-interventions/hitl/__tests__/hitl.test.d.ts.map +0 -1
- package/dist/src/vended-interventions/hitl/__tests__/hitl.test.js +0 -358
- package/dist/src/vended-interventions/hitl/__tests__/hitl.test.js.map +0 -1
- package/dist/src/vended-interventions/steering/__tests__/handler.test.d.ts +0 -2
- package/dist/src/vended-interventions/steering/__tests__/handler.test.d.ts.map +0 -1
- package/dist/src/vended-interventions/steering/__tests__/handler.test.js +0 -163
- package/dist/src/vended-interventions/steering/__tests__/handler.test.js.map +0 -1
- package/dist/src/vended-interventions/steering/__tests__/llm.test.d.ts +0 -2
- package/dist/src/vended-interventions/steering/__tests__/llm.test.d.ts.map +0 -1
- package/dist/src/vended-interventions/steering/__tests__/llm.test.js +0 -60
- package/dist/src/vended-interventions/steering/__tests__/llm.test.js.map +0 -1
- package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.d.ts +0 -2
- package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.d.ts.map +0 -1
- package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.js +0 -94
- package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.js.map +0 -1
- package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.d.ts +0 -2
- package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.d.ts.map +0 -1
- package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.js +0 -758
- package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.js.map +0 -1
- package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.d.ts +0 -2
- package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.d.ts.map +0 -1
- package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.js +0 -96
- package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.js.map +0 -1
- package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.d.ts +0 -2
- package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.d.ts.map +0 -1
- package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.js +0 -68
- package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.js.map +0 -1
- package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts +0 -2
- package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts.map +0 -1
- package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js +0 -539
- package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js.map +0 -1
- package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.d.ts +0 -2
- package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.d.ts.map +0 -1
- package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.js +0 -97
- package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.js.map +0 -1
- package/dist/src/vended-plugins/context-offloader/__tests__/search.test.d.ts +0 -2
- package/dist/src/vended-plugins/context-offloader/__tests__/search.test.d.ts.map +0 -1
- package/dist/src/vended-plugins/context-offloader/__tests__/search.test.js +0 -149
- package/dist/src/vended-plugins/context-offloader/__tests__/search.test.js.map +0 -1
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts +0 -2
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts.map +0 -1
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js +0 -216
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js.map +0 -1
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts +0 -2
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts.map +0 -1
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js +0 -78
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js.map +0 -1
- package/dist/src/vended-plugins/goal/__tests__/plugin.test.d.ts +0 -2
- package/dist/src/vended-plugins/goal/__tests__/plugin.test.d.ts.map +0 -1
- package/dist/src/vended-plugins/goal/__tests__/plugin.test.js +0 -736
- package/dist/src/vended-plugins/goal/__tests__/plugin.test.js.map +0 -1
- package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.d.ts +0 -2
- package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.d.ts.map +0 -1
- package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js +0 -482
- package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js.map +0 -1
- package/dist/src/vended-plugins/skills/__tests__/skill.test.node.d.ts +0 -2
- package/dist/src/vended-plugins/skills/__tests__/skill.test.node.d.ts.map +0 -1
- package/dist/src/vended-plugins/skills/__tests__/skill.test.node.js +0 -476
- package/dist/src/vended-plugins/skills/__tests__/skill.test.node.js.map +0 -1
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.d.ts +0 -2
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.d.ts.map +0 -1
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +0 -390
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +0 -1
- package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.d.ts +0 -2
- 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 +0 -452
- package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +0 -1
- package/dist/src/vended-tools/http-request/__tests__/http-request.test.d.ts +0 -2
- package/dist/src/vended-tools/http-request/__tests__/http-request.test.d.ts.map +0 -1
- package/dist/src/vended-tools/http-request/__tests__/http-request.test.js +0 -189
- package/dist/src/vended-tools/http-request/__tests__/http-request.test.js.map +0 -1
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.d.ts +0 -2
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.d.ts.map +0 -1
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +0 -388
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +0 -1
|
@@ -1,1060 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { InitializedEvent, AfterInvocationEvent, AfterModelCallEvent, AfterToolCallEvent, AfterToolsEvent, BeforeInvocationEvent, BeforeModelCallEvent, BeforeToolCallEvent, BeforeToolsEvent, MessageAddedEvent, ModelStreamUpdateEvent, ContentBlockEvent, ModelMessageEvent, ToolResultEvent, ToolStreamUpdateEvent, AgentResultEvent, } from '../events.js';
|
|
3
|
-
import { Agent } from '../../agent/agent.js';
|
|
4
|
-
import { AgentResult } from '../../types/agent.js';
|
|
5
|
-
import { AgentMetrics } from '../../telemetry/meter.js';
|
|
6
|
-
import { Message, TextBlock, ToolResultBlock, ToolUseBlock } from '../../types/messages.js';
|
|
7
|
-
import { FunctionTool } from '../../tools/function-tool.js';
|
|
8
|
-
import { ToolStreamEvent } from '../../tools/tool.js';
|
|
9
|
-
describe('InitializedEvent', () => {
|
|
10
|
-
it('creates instance with correct properties', () => {
|
|
11
|
-
const agent = new Agent();
|
|
12
|
-
const event = new InitializedEvent({ agent });
|
|
13
|
-
expect(event).toEqual({
|
|
14
|
-
type: 'initializedEvent',
|
|
15
|
-
agent: agent,
|
|
16
|
-
});
|
|
17
|
-
// @ts-expect-error verifying that property is readonly
|
|
18
|
-
event.agent = new Agent();
|
|
19
|
-
});
|
|
20
|
-
it('returns false for _shouldReverseCallbacks', () => {
|
|
21
|
-
const agent = new Agent();
|
|
22
|
-
const event = new InitializedEvent({ agent });
|
|
23
|
-
expect(event._shouldReverseCallbacks()).toBe(false);
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
describe('BeforeInvocationEvent', () => {
|
|
27
|
-
it('creates instance with correct properties', () => {
|
|
28
|
-
const agent = new Agent();
|
|
29
|
-
const event = new BeforeInvocationEvent({ agent, invocationState: {} });
|
|
30
|
-
expect(event).toEqual({
|
|
31
|
-
type: 'beforeInvocationEvent',
|
|
32
|
-
agent: agent,
|
|
33
|
-
cancel: false,
|
|
34
|
-
invocationState: {},
|
|
35
|
-
});
|
|
36
|
-
// @ts-expect-error verifying that property is readonly
|
|
37
|
-
event.agent = new Agent();
|
|
38
|
-
});
|
|
39
|
-
it('returns false for _shouldReverseCallbacks', () => {
|
|
40
|
-
const agent = new Agent();
|
|
41
|
-
const event = new BeforeInvocationEvent({ agent, invocationState: {} });
|
|
42
|
-
expect(event._shouldReverseCallbacks()).toBe(false);
|
|
43
|
-
});
|
|
44
|
-
it('allows cancel to be set to true', () => {
|
|
45
|
-
const agent = new Agent();
|
|
46
|
-
const event = new BeforeInvocationEvent({ agent, invocationState: {} });
|
|
47
|
-
expect(event.cancel).toBe(false);
|
|
48
|
-
event.cancel = true;
|
|
49
|
-
expect(event.cancel).toBe(true);
|
|
50
|
-
});
|
|
51
|
-
it('allows cancel to be set to a string message', () => {
|
|
52
|
-
const agent = new Agent();
|
|
53
|
-
const event = new BeforeInvocationEvent({ agent, invocationState: {} });
|
|
54
|
-
event.cancel = 'unauthorized';
|
|
55
|
-
expect(event.cancel).toBe('unauthorized');
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
describe('AfterInvocationEvent', () => {
|
|
59
|
-
it('creates instance with correct properties', () => {
|
|
60
|
-
const agent = new Agent();
|
|
61
|
-
const event = new AfterInvocationEvent({ agent, invocationState: {} });
|
|
62
|
-
expect(event).toEqual({
|
|
63
|
-
type: 'afterInvocationEvent',
|
|
64
|
-
agent: agent,
|
|
65
|
-
invocationState: {},
|
|
66
|
-
resume: undefined,
|
|
67
|
-
});
|
|
68
|
-
// @ts-expect-error verifying that property is readonly
|
|
69
|
-
event.agent = new Agent();
|
|
70
|
-
});
|
|
71
|
-
it('returns true for _shouldReverseCallbacks', () => {
|
|
72
|
-
const agent = new Agent();
|
|
73
|
-
const event = new AfterInvocationEvent({ agent, invocationState: {} });
|
|
74
|
-
expect(event._shouldReverseCallbacks()).toBe(true);
|
|
75
|
-
});
|
|
76
|
-
it('allows resume to be set to new input', () => {
|
|
77
|
-
const agent = new Agent();
|
|
78
|
-
const event = new AfterInvocationEvent({ agent, invocationState: {} });
|
|
79
|
-
expect(event.resume).toBeUndefined();
|
|
80
|
-
event.resume = 'follow-up prompt';
|
|
81
|
-
expect(event.resume).toBe('follow-up prompt');
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
describe('MessageAddedEvent', () => {
|
|
85
|
-
it('creates instance with correct properties', () => {
|
|
86
|
-
const agent = new Agent();
|
|
87
|
-
const message = new Message({ role: 'assistant', content: [new TextBlock('Hello')] });
|
|
88
|
-
const event = new MessageAddedEvent({ agent, message, invocationState: {} });
|
|
89
|
-
expect(event).toEqual({
|
|
90
|
-
type: 'messageAddedEvent',
|
|
91
|
-
agent: agent,
|
|
92
|
-
message: message,
|
|
93
|
-
invocationState: {},
|
|
94
|
-
});
|
|
95
|
-
// @ts-expect-error verifying that property is readonly
|
|
96
|
-
event.agent = new Agent();
|
|
97
|
-
// @ts-expect-error verifying that property is readonly
|
|
98
|
-
event.message = message;
|
|
99
|
-
});
|
|
100
|
-
it('returns false for _shouldReverseCallbacks', () => {
|
|
101
|
-
const agent = new Agent();
|
|
102
|
-
const message = new Message({ role: 'assistant', content: [] });
|
|
103
|
-
const event = new MessageAddedEvent({ agent, message, invocationState: {} });
|
|
104
|
-
expect(event._shouldReverseCallbacks()).toBe(false);
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
describe('BeforeToolCallEvent', () => {
|
|
108
|
-
it('creates instance with correct properties when tool is found', () => {
|
|
109
|
-
const agent = new Agent();
|
|
110
|
-
const tool = new FunctionTool({
|
|
111
|
-
name: 'testTool',
|
|
112
|
-
description: 'Test tool',
|
|
113
|
-
inputSchema: {},
|
|
114
|
-
callback: () => 'result',
|
|
115
|
-
});
|
|
116
|
-
const toolUse = {
|
|
117
|
-
name: 'testTool',
|
|
118
|
-
toolUseId: 'test-id',
|
|
119
|
-
input: { arg: 'value' },
|
|
120
|
-
};
|
|
121
|
-
const event = new BeforeToolCallEvent({ agent, toolUse, tool, invocationState: {} });
|
|
122
|
-
expect(event).toEqual({
|
|
123
|
-
type: 'beforeToolCallEvent',
|
|
124
|
-
agent: agent,
|
|
125
|
-
toolUse: toolUse,
|
|
126
|
-
tool: tool,
|
|
127
|
-
cancel: false,
|
|
128
|
-
invocationState: {},
|
|
129
|
-
selectedTool: undefined,
|
|
130
|
-
});
|
|
131
|
-
// @ts-expect-error verifying that property is readonly
|
|
132
|
-
event.agent = new Agent();
|
|
133
|
-
// @ts-expect-error verifying that property is readonly
|
|
134
|
-
event.tool = tool;
|
|
135
|
-
});
|
|
136
|
-
it('creates instance with undefined tool when tool is not found', () => {
|
|
137
|
-
const agent = new Agent();
|
|
138
|
-
const toolUse = {
|
|
139
|
-
name: 'unknownTool',
|
|
140
|
-
toolUseId: 'test-id',
|
|
141
|
-
input: {},
|
|
142
|
-
};
|
|
143
|
-
const event = new BeforeToolCallEvent({ agent, toolUse, tool: undefined, invocationState: {} });
|
|
144
|
-
expect(event).toEqual({
|
|
145
|
-
type: 'beforeToolCallEvent',
|
|
146
|
-
agent: agent,
|
|
147
|
-
toolUse: toolUse,
|
|
148
|
-
tool: undefined,
|
|
149
|
-
cancel: false,
|
|
150
|
-
invocationState: {},
|
|
151
|
-
selectedTool: undefined,
|
|
152
|
-
});
|
|
153
|
-
});
|
|
154
|
-
it('returns false for _shouldReverseCallbacks', () => {
|
|
155
|
-
const agent = new Agent();
|
|
156
|
-
const toolUse = { name: 'test', toolUseId: 'id', input: {} };
|
|
157
|
-
const event = new BeforeToolCallEvent({ agent, toolUse, tool: undefined, invocationState: {} });
|
|
158
|
-
expect(event._shouldReverseCallbacks()).toBe(false);
|
|
159
|
-
});
|
|
160
|
-
it('allows cancel to be set to true', () => {
|
|
161
|
-
const agent = new Agent();
|
|
162
|
-
const toolUse = { name: 'test', toolUseId: 'id', input: {} };
|
|
163
|
-
const event = new BeforeToolCallEvent({ agent, toolUse, tool: undefined, invocationState: {} });
|
|
164
|
-
expect(event.cancel).toBe(false);
|
|
165
|
-
event.cancel = true;
|
|
166
|
-
expect(event.cancel).toBe(true);
|
|
167
|
-
});
|
|
168
|
-
it('allows cancel to be set to a string message', () => {
|
|
169
|
-
const agent = new Agent();
|
|
170
|
-
const toolUse = { name: 'test', toolUseId: 'id', input: {} };
|
|
171
|
-
const event = new BeforeToolCallEvent({ agent, toolUse, tool: undefined, invocationState: {} });
|
|
172
|
-
event.cancel = 'tool not allowed';
|
|
173
|
-
expect(event.cancel).toBe('tool not allowed');
|
|
174
|
-
});
|
|
175
|
-
it('allows selectedTool to be set to a replacement tool', () => {
|
|
176
|
-
const agent = new Agent();
|
|
177
|
-
const toolUse = { name: 'test', toolUseId: 'id', input: {} };
|
|
178
|
-
const event = new BeforeToolCallEvent({ agent, toolUse, tool: undefined, invocationState: {} });
|
|
179
|
-
expect(event.selectedTool).toBeUndefined();
|
|
180
|
-
const replacement = new FunctionTool({
|
|
181
|
-
name: 'replacement',
|
|
182
|
-
description: 'Replacement',
|
|
183
|
-
inputSchema: {},
|
|
184
|
-
callback: () => 'ok',
|
|
185
|
-
});
|
|
186
|
-
event.selectedTool = replacement;
|
|
187
|
-
expect(event.selectedTool).toBe(replacement);
|
|
188
|
-
});
|
|
189
|
-
it('allows mutating toolUse fields in-place', () => {
|
|
190
|
-
const agent = new Agent();
|
|
191
|
-
const toolUse = { name: 'orig', toolUseId: 'id', input: { a: 1 } };
|
|
192
|
-
const event = new BeforeToolCallEvent({ agent, toolUse, tool: undefined, invocationState: {} });
|
|
193
|
-
event.toolUse.input = { a: 2, b: 3 };
|
|
194
|
-
event.toolUse.name = 'renamed';
|
|
195
|
-
expect(event.toolUse).toEqual({ name: 'renamed', toolUseId: 'id', input: { a: 2, b: 3 } });
|
|
196
|
-
});
|
|
197
|
-
it('allows reassigning toolUse to a new object', () => {
|
|
198
|
-
const agent = new Agent();
|
|
199
|
-
const toolUse = { name: 'orig', toolUseId: 'id', input: {} };
|
|
200
|
-
const event = new BeforeToolCallEvent({ agent, toolUse, tool: undefined, invocationState: {} });
|
|
201
|
-
event.toolUse = { name: 'new', toolUseId: 'new-id', input: { x: 1 } };
|
|
202
|
-
expect(event.toolUse).toEqual({ name: 'new', toolUseId: 'new-id', input: { x: 1 } });
|
|
203
|
-
});
|
|
204
|
-
});
|
|
205
|
-
describe('AfterToolCallEvent', () => {
|
|
206
|
-
it('creates instance with correct properties on success', () => {
|
|
207
|
-
const agent = new Agent();
|
|
208
|
-
const tool = new FunctionTool({
|
|
209
|
-
name: 'testTool',
|
|
210
|
-
description: 'Test tool',
|
|
211
|
-
inputSchema: {},
|
|
212
|
-
callback: () => 'result',
|
|
213
|
-
});
|
|
214
|
-
const toolUse = {
|
|
215
|
-
name: 'testTool',
|
|
216
|
-
toolUseId: 'test-id',
|
|
217
|
-
input: {},
|
|
218
|
-
};
|
|
219
|
-
const result = new ToolResultBlock({
|
|
220
|
-
toolUseId: 'test-id',
|
|
221
|
-
status: 'success',
|
|
222
|
-
content: [new TextBlock('Success')],
|
|
223
|
-
});
|
|
224
|
-
const event = new AfterToolCallEvent({ agent, toolUse, tool, result, invocationState: {} });
|
|
225
|
-
expect(event).toEqual({
|
|
226
|
-
type: 'afterToolCallEvent',
|
|
227
|
-
agent: agent,
|
|
228
|
-
toolUse: toolUse,
|
|
229
|
-
tool: tool,
|
|
230
|
-
result: result,
|
|
231
|
-
error: undefined,
|
|
232
|
-
invocationState: {},
|
|
233
|
-
});
|
|
234
|
-
// @ts-expect-error verifying that property is readonly
|
|
235
|
-
event.agent = new Agent();
|
|
236
|
-
// @ts-expect-error verifying that property is readonly
|
|
237
|
-
event.toolUse = toolUse;
|
|
238
|
-
// @ts-expect-error verifying that property is readonly
|
|
239
|
-
event.tool = tool;
|
|
240
|
-
});
|
|
241
|
-
it('allows result to be replaced', () => {
|
|
242
|
-
const agent = new Agent();
|
|
243
|
-
const toolUse = { name: 'test', toolUseId: 'id', input: {} };
|
|
244
|
-
const result = new ToolResultBlock({ toolUseId: 'id', status: 'success', content: [new TextBlock('original')] });
|
|
245
|
-
const event = new AfterToolCallEvent({ agent, toolUse, tool: undefined, result, invocationState: {} });
|
|
246
|
-
const replacedResult = new ToolResultBlock({
|
|
247
|
-
toolUseId: 'id',
|
|
248
|
-
status: 'success',
|
|
249
|
-
content: [new TextBlock('replaced')],
|
|
250
|
-
});
|
|
251
|
-
event.result = replacedResult;
|
|
252
|
-
expect(event.result).toBe(replacedResult);
|
|
253
|
-
});
|
|
254
|
-
it('creates instance with error property when tool execution fails', () => {
|
|
255
|
-
const agent = new Agent();
|
|
256
|
-
const toolUse = { name: 'test', toolUseId: 'id', input: {} };
|
|
257
|
-
const result = new ToolResultBlock({
|
|
258
|
-
toolUseId: 'id',
|
|
259
|
-
status: 'error',
|
|
260
|
-
content: [new TextBlock('Error')],
|
|
261
|
-
});
|
|
262
|
-
const error = new Error('Tool failed');
|
|
263
|
-
const event = new AfterToolCallEvent({ agent, toolUse, tool: undefined, result, error, invocationState: {} });
|
|
264
|
-
expect(event).toEqual({
|
|
265
|
-
type: 'afterToolCallEvent',
|
|
266
|
-
agent: agent,
|
|
267
|
-
toolUse: toolUse,
|
|
268
|
-
tool: undefined,
|
|
269
|
-
result: result,
|
|
270
|
-
error: error,
|
|
271
|
-
invocationState: {},
|
|
272
|
-
});
|
|
273
|
-
});
|
|
274
|
-
it('returns true for _shouldReverseCallbacks', () => {
|
|
275
|
-
const agent = new Agent();
|
|
276
|
-
const toolUse = { name: 'test', toolUseId: 'id', input: {} };
|
|
277
|
-
const result = new ToolResultBlock({
|
|
278
|
-
toolUseId: 'id',
|
|
279
|
-
status: 'success',
|
|
280
|
-
content: [],
|
|
281
|
-
});
|
|
282
|
-
const event = new AfterToolCallEvent({ agent, toolUse, tool: undefined, result, invocationState: {} });
|
|
283
|
-
expect(event._shouldReverseCallbacks()).toBe(true);
|
|
284
|
-
});
|
|
285
|
-
it('allows retry to be set when error is present', () => {
|
|
286
|
-
const agent = new Agent();
|
|
287
|
-
const toolUse = { name: 'test', toolUseId: 'id', input: {} };
|
|
288
|
-
const result = new ToolResultBlock({
|
|
289
|
-
toolUseId: 'id',
|
|
290
|
-
status: 'error',
|
|
291
|
-
content: [new TextBlock('Error')],
|
|
292
|
-
});
|
|
293
|
-
const error = new Error('Tool failed');
|
|
294
|
-
const event = new AfterToolCallEvent({ agent, toolUse, tool: undefined, result, error, invocationState: {} });
|
|
295
|
-
expect(event.retry).toBeUndefined();
|
|
296
|
-
event.retry = true;
|
|
297
|
-
expect(event.retry).toBe(true);
|
|
298
|
-
event.retry = false;
|
|
299
|
-
expect(event.retry).toBe(false);
|
|
300
|
-
});
|
|
301
|
-
it('allows retry to be set on success', () => {
|
|
302
|
-
const agent = new Agent();
|
|
303
|
-
const toolUse = { name: 'test', toolUseId: 'id', input: {} };
|
|
304
|
-
const result = new ToolResultBlock({
|
|
305
|
-
toolUseId: 'id',
|
|
306
|
-
status: 'success',
|
|
307
|
-
content: [new TextBlock('Success')],
|
|
308
|
-
});
|
|
309
|
-
const event = new AfterToolCallEvent({ agent, toolUse, tool: undefined, result, invocationState: {} });
|
|
310
|
-
expect(event.retry).toBeUndefined();
|
|
311
|
-
event.retry = true;
|
|
312
|
-
expect(event.retry).toBe(true);
|
|
313
|
-
});
|
|
314
|
-
});
|
|
315
|
-
describe('BeforeModelCallEvent', () => {
|
|
316
|
-
it('creates instance with correct properties', () => {
|
|
317
|
-
const agent = new Agent();
|
|
318
|
-
const event = new BeforeModelCallEvent({ agent, model: agent.model, invocationState: {} });
|
|
319
|
-
expect(event).toEqual({
|
|
320
|
-
type: 'beforeModelCallEvent',
|
|
321
|
-
agent: agent,
|
|
322
|
-
model: agent.model,
|
|
323
|
-
cancel: false,
|
|
324
|
-
invocationState: {},
|
|
325
|
-
});
|
|
326
|
-
// @ts-expect-error verifying that property is readonly
|
|
327
|
-
event.agent = new Agent();
|
|
328
|
-
});
|
|
329
|
-
it('includes projectedInputTokens when provided', () => {
|
|
330
|
-
const agent = new Agent();
|
|
331
|
-
const event = new BeforeModelCallEvent({
|
|
332
|
-
agent,
|
|
333
|
-
model: agent.model,
|
|
334
|
-
invocationState: {},
|
|
335
|
-
projectedInputTokens: 500,
|
|
336
|
-
});
|
|
337
|
-
expect(event).toEqual({
|
|
338
|
-
type: 'beforeModelCallEvent',
|
|
339
|
-
agent,
|
|
340
|
-
model: agent.model,
|
|
341
|
-
cancel: false,
|
|
342
|
-
invocationState: {},
|
|
343
|
-
projectedInputTokens: 500,
|
|
344
|
-
});
|
|
345
|
-
expect(event.toJSON()).toStrictEqual({
|
|
346
|
-
type: 'beforeModelCallEvent',
|
|
347
|
-
projectedInputTokens: 500,
|
|
348
|
-
});
|
|
349
|
-
});
|
|
350
|
-
it('excludes projectedInputTokens from toJSON when not provided', () => {
|
|
351
|
-
const agent = new Agent();
|
|
352
|
-
const event = new BeforeModelCallEvent({ agent, model: agent.model, invocationState: {} });
|
|
353
|
-
expect(event.projectedInputTokens).toBeUndefined();
|
|
354
|
-
expect(event.toJSON()).toStrictEqual({ type: 'beforeModelCallEvent' });
|
|
355
|
-
});
|
|
356
|
-
it('returns false for _shouldReverseCallbacks', () => {
|
|
357
|
-
const agent = new Agent();
|
|
358
|
-
const event = new BeforeModelCallEvent({ agent, model: agent.model, invocationState: {} });
|
|
359
|
-
expect(event._shouldReverseCallbacks()).toBe(false);
|
|
360
|
-
});
|
|
361
|
-
it('allows cancel to be set to true', () => {
|
|
362
|
-
const agent = new Agent();
|
|
363
|
-
const event = new BeforeModelCallEvent({ agent, model: agent.model, invocationState: {} });
|
|
364
|
-
expect(event.cancel).toBe(false);
|
|
365
|
-
event.cancel = true;
|
|
366
|
-
expect(event.cancel).toBe(true);
|
|
367
|
-
});
|
|
368
|
-
it('allows cancel to be set to a string message', () => {
|
|
369
|
-
const agent = new Agent();
|
|
370
|
-
const event = new BeforeModelCallEvent({ agent, model: agent.model, invocationState: {} });
|
|
371
|
-
event.cancel = 'rate limited';
|
|
372
|
-
expect(event.cancel).toBe('rate limited');
|
|
373
|
-
});
|
|
374
|
-
});
|
|
375
|
-
describe('AfterModelCallEvent', () => {
|
|
376
|
-
it('creates instance with correct properties on success', () => {
|
|
377
|
-
const agent = new Agent();
|
|
378
|
-
const message = new Message({ role: 'assistant', content: [new TextBlock('Response')] });
|
|
379
|
-
const stopReason = 'endTurn';
|
|
380
|
-
const response = { message, stopReason };
|
|
381
|
-
const event = new AfterModelCallEvent({
|
|
382
|
-
agent,
|
|
383
|
-
model: agent.model,
|
|
384
|
-
attemptCount: 1,
|
|
385
|
-
stopData: response,
|
|
386
|
-
invocationState: {},
|
|
387
|
-
});
|
|
388
|
-
expect(event).toEqual({
|
|
389
|
-
type: 'afterModelCallEvent',
|
|
390
|
-
agent: agent,
|
|
391
|
-
model: agent.model,
|
|
392
|
-
attemptCount: 1,
|
|
393
|
-
stopData: response,
|
|
394
|
-
error: undefined,
|
|
395
|
-
invocationState: {},
|
|
396
|
-
});
|
|
397
|
-
// @ts-expect-error verifying that property is readonly
|
|
398
|
-
event.agent = new Agent();
|
|
399
|
-
// @ts-expect-error verifying that property is readonly
|
|
400
|
-
event.stopData = response;
|
|
401
|
-
});
|
|
402
|
-
it('creates instance with error property when model invocation fails', () => {
|
|
403
|
-
const agent = new Agent();
|
|
404
|
-
const message = new Message({ role: 'assistant', content: [] });
|
|
405
|
-
const error = new Error('Model failed');
|
|
406
|
-
const response = { message, stopReason: 'error' };
|
|
407
|
-
const event = new AfterModelCallEvent({
|
|
408
|
-
agent,
|
|
409
|
-
model: agent.model,
|
|
410
|
-
attemptCount: 1,
|
|
411
|
-
stopData: response,
|
|
412
|
-
error,
|
|
413
|
-
invocationState: {},
|
|
414
|
-
});
|
|
415
|
-
expect(event).toEqual({
|
|
416
|
-
type: 'afterModelCallEvent',
|
|
417
|
-
agent: agent,
|
|
418
|
-
model: agent.model,
|
|
419
|
-
attemptCount: 1,
|
|
420
|
-
stopData: response,
|
|
421
|
-
error: error,
|
|
422
|
-
invocationState: {},
|
|
423
|
-
});
|
|
424
|
-
});
|
|
425
|
-
it('returns true for _shouldReverseCallbacks', () => {
|
|
426
|
-
const agent = new Agent();
|
|
427
|
-
const message = new Message({ role: 'assistant', content: [] });
|
|
428
|
-
const response = { message, stopReason: 'endTurn' };
|
|
429
|
-
const event = new AfterModelCallEvent({
|
|
430
|
-
agent,
|
|
431
|
-
model: agent.model,
|
|
432
|
-
attemptCount: 1,
|
|
433
|
-
stopData: response,
|
|
434
|
-
invocationState: {},
|
|
435
|
-
});
|
|
436
|
-
expect(event._shouldReverseCallbacks()).toBe(true);
|
|
437
|
-
});
|
|
438
|
-
it('allows retry to be set when error is present', () => {
|
|
439
|
-
const agent = new Agent();
|
|
440
|
-
const error = new Error('Model failed');
|
|
441
|
-
const event = new AfterModelCallEvent({ agent, model: agent.model, attemptCount: 1, error, invocationState: {} });
|
|
442
|
-
// Initially undefined
|
|
443
|
-
expect(event.retry).toBeUndefined();
|
|
444
|
-
// Can be set to true
|
|
445
|
-
event.retry = true;
|
|
446
|
-
expect(event.retry).toBe(true);
|
|
447
|
-
// Can be set to false
|
|
448
|
-
event.retry = false;
|
|
449
|
-
expect(event.retry).toBe(false);
|
|
450
|
-
});
|
|
451
|
-
it('retry is optional and defaults to undefined', () => {
|
|
452
|
-
const agent = new Agent();
|
|
453
|
-
const error = new Error('Model failed');
|
|
454
|
-
const event = new AfterModelCallEvent({ agent, model: agent.model, attemptCount: 1, error, invocationState: {} });
|
|
455
|
-
expect(event.retry).toBeUndefined();
|
|
456
|
-
});
|
|
457
|
-
});
|
|
458
|
-
describe('ModelStreamUpdateEvent', () => {
|
|
459
|
-
it('creates instance with correct properties', () => {
|
|
460
|
-
const agent = new Agent();
|
|
461
|
-
const streamEvent = {
|
|
462
|
-
type: 'modelMessageStartEvent',
|
|
463
|
-
role: 'assistant',
|
|
464
|
-
};
|
|
465
|
-
const hookEvent = new ModelStreamUpdateEvent({ agent, event: streamEvent, invocationState: {} });
|
|
466
|
-
expect(hookEvent).toEqual({
|
|
467
|
-
type: 'modelStreamUpdateEvent',
|
|
468
|
-
agent: agent,
|
|
469
|
-
event: streamEvent,
|
|
470
|
-
invocationState: {},
|
|
471
|
-
});
|
|
472
|
-
// @ts-expect-error verifying that property is readonly
|
|
473
|
-
hookEvent.agent = new Agent();
|
|
474
|
-
// @ts-expect-error verifying that property is readonly
|
|
475
|
-
hookEvent.event = streamEvent;
|
|
476
|
-
});
|
|
477
|
-
});
|
|
478
|
-
describe('ContentBlockEvent', () => {
|
|
479
|
-
it('creates instance with correct properties', () => {
|
|
480
|
-
const agent = new Agent();
|
|
481
|
-
const contentBlock = new TextBlock('Hello');
|
|
482
|
-
const event = new ContentBlockEvent({ agent, contentBlock, invocationState: {} });
|
|
483
|
-
expect(event).toEqual({
|
|
484
|
-
type: 'contentBlockEvent',
|
|
485
|
-
agent: agent,
|
|
486
|
-
contentBlock: contentBlock,
|
|
487
|
-
invocationState: {},
|
|
488
|
-
});
|
|
489
|
-
// @ts-expect-error verifying that property is readonly
|
|
490
|
-
event.agent = new Agent();
|
|
491
|
-
// @ts-expect-error verifying that property is readonly
|
|
492
|
-
event.contentBlock = contentBlock;
|
|
493
|
-
});
|
|
494
|
-
});
|
|
495
|
-
describe('ModelMessageEvent', () => {
|
|
496
|
-
it('creates instance with correct properties', () => {
|
|
497
|
-
const agent = new Agent();
|
|
498
|
-
const message = new Message({ role: 'assistant', content: [new TextBlock('Hello')] });
|
|
499
|
-
const event = new ModelMessageEvent({ agent, message, stopReason: 'endTurn', invocationState: {} });
|
|
500
|
-
expect(event).toEqual({
|
|
501
|
-
type: 'modelMessageEvent',
|
|
502
|
-
agent: agent,
|
|
503
|
-
message: message,
|
|
504
|
-
stopReason: 'endTurn',
|
|
505
|
-
invocationState: {},
|
|
506
|
-
});
|
|
507
|
-
// @ts-expect-error verifying that property is readonly
|
|
508
|
-
event.agent = new Agent();
|
|
509
|
-
// @ts-expect-error verifying that property is readonly
|
|
510
|
-
event.message = message;
|
|
511
|
-
// @ts-expect-error verifying that property is readonly
|
|
512
|
-
event.stopReason = 'endTurn';
|
|
513
|
-
});
|
|
514
|
-
});
|
|
515
|
-
describe('ToolResultEvent', () => {
|
|
516
|
-
it('creates instance with correct properties', () => {
|
|
517
|
-
const agent = new Agent();
|
|
518
|
-
const toolResult = new ToolResultBlock({
|
|
519
|
-
toolUseId: 'test-id',
|
|
520
|
-
status: 'success',
|
|
521
|
-
content: [new TextBlock('Result')],
|
|
522
|
-
});
|
|
523
|
-
const event = new ToolResultEvent({ agent, result: toolResult, invocationState: {} });
|
|
524
|
-
expect(event).toEqual({
|
|
525
|
-
type: 'toolResultEvent',
|
|
526
|
-
agent: agent,
|
|
527
|
-
result: toolResult,
|
|
528
|
-
invocationState: {},
|
|
529
|
-
});
|
|
530
|
-
// @ts-expect-error verifying that property is readonly
|
|
531
|
-
event.agent = new Agent();
|
|
532
|
-
// @ts-expect-error verifying that property is readonly
|
|
533
|
-
event.result = toolResult;
|
|
534
|
-
});
|
|
535
|
-
});
|
|
536
|
-
describe('ToolStreamUpdateEvent', () => {
|
|
537
|
-
it('creates instance with correct properties', () => {
|
|
538
|
-
const agent = new Agent();
|
|
539
|
-
const toolStreamEvent = new ToolStreamEvent({ data: 'progress' });
|
|
540
|
-
const event = new ToolStreamUpdateEvent({ agent, event: toolStreamEvent, invocationState: {} });
|
|
541
|
-
expect(event).toEqual({
|
|
542
|
-
type: 'toolStreamUpdateEvent',
|
|
543
|
-
agent: agent,
|
|
544
|
-
event: toolStreamEvent,
|
|
545
|
-
invocationState: {},
|
|
546
|
-
});
|
|
547
|
-
// @ts-expect-error verifying that property is readonly
|
|
548
|
-
event.agent = new Agent();
|
|
549
|
-
// @ts-expect-error verifying that property is readonly
|
|
550
|
-
event.event = toolStreamEvent;
|
|
551
|
-
});
|
|
552
|
-
});
|
|
553
|
-
describe('AgentResultEvent', () => {
|
|
554
|
-
it('creates instance with correct properties', () => {
|
|
555
|
-
const agent = new Agent();
|
|
556
|
-
const result = new AgentResult({
|
|
557
|
-
stopReason: 'endTurn',
|
|
558
|
-
lastMessage: new Message({ role: 'assistant', content: [new TextBlock('Done')] }),
|
|
559
|
-
metrics: new AgentMetrics(),
|
|
560
|
-
invocationState: {},
|
|
561
|
-
});
|
|
562
|
-
const event = new AgentResultEvent({ agent, result, invocationState: {} });
|
|
563
|
-
expect(event).toEqual({
|
|
564
|
-
type: 'agentResultEvent',
|
|
565
|
-
agent: agent,
|
|
566
|
-
result: result,
|
|
567
|
-
invocationState: {},
|
|
568
|
-
});
|
|
569
|
-
// @ts-expect-error verifying that property is readonly
|
|
570
|
-
event.agent = new Agent();
|
|
571
|
-
// @ts-expect-error verifying that property is readonly
|
|
572
|
-
event.result = result;
|
|
573
|
-
});
|
|
574
|
-
});
|
|
575
|
-
describe('BeforeToolsEvent', () => {
|
|
576
|
-
it('creates instance with correct properties', () => {
|
|
577
|
-
const agent = new Agent();
|
|
578
|
-
const message = new Message({
|
|
579
|
-
role: 'assistant',
|
|
580
|
-
content: [
|
|
581
|
-
new ToolUseBlock({
|
|
582
|
-
name: 'testTool',
|
|
583
|
-
toolUseId: 'test-id',
|
|
584
|
-
input: { arg: 'value' },
|
|
585
|
-
}),
|
|
586
|
-
],
|
|
587
|
-
});
|
|
588
|
-
const event = new BeforeToolsEvent({ agent, message, invocationState: {} });
|
|
589
|
-
expect(event).toEqual({
|
|
590
|
-
type: 'beforeToolsEvent',
|
|
591
|
-
agent: agent,
|
|
592
|
-
message: message,
|
|
593
|
-
cancel: false,
|
|
594
|
-
invocationState: {},
|
|
595
|
-
});
|
|
596
|
-
// @ts-expect-error verifying that property is readonly
|
|
597
|
-
event.agent = new Agent();
|
|
598
|
-
// @ts-expect-error verifying that property is readonly
|
|
599
|
-
event.message = message;
|
|
600
|
-
});
|
|
601
|
-
it('returns false for _shouldReverseCallbacks', () => {
|
|
602
|
-
const agent = new Agent();
|
|
603
|
-
const message = new Message({ role: 'assistant', content: [] });
|
|
604
|
-
const event = new BeforeToolsEvent({ agent, message, invocationState: {} });
|
|
605
|
-
expect(event._shouldReverseCallbacks()).toBe(false);
|
|
606
|
-
});
|
|
607
|
-
it('allows cancel to be set to true', () => {
|
|
608
|
-
const agent = new Agent();
|
|
609
|
-
const message = new Message({ role: 'assistant', content: [] });
|
|
610
|
-
const event = new BeforeToolsEvent({ agent, message, invocationState: {} });
|
|
611
|
-
expect(event.cancel).toBe(false);
|
|
612
|
-
event.cancel = true;
|
|
613
|
-
expect(event.cancel).toBe(true);
|
|
614
|
-
});
|
|
615
|
-
it('allows cancel to be set to a string message', () => {
|
|
616
|
-
const agent = new Agent();
|
|
617
|
-
const message = new Message({ role: 'assistant', content: [] });
|
|
618
|
-
const event = new BeforeToolsEvent({ agent, message, invocationState: {} });
|
|
619
|
-
event.cancel = 'tools not allowed';
|
|
620
|
-
expect(event.cancel).toBe('tools not allowed');
|
|
621
|
-
});
|
|
622
|
-
});
|
|
623
|
-
describe('AfterToolsEvent', () => {
|
|
624
|
-
it('creates instance with correct properties', () => {
|
|
625
|
-
const agent = new Agent();
|
|
626
|
-
const message = new Message({
|
|
627
|
-
role: 'user',
|
|
628
|
-
content: [
|
|
629
|
-
new ToolResultBlock({
|
|
630
|
-
toolUseId: 'test-id',
|
|
631
|
-
status: 'success',
|
|
632
|
-
content: [new TextBlock('Result')],
|
|
633
|
-
}),
|
|
634
|
-
],
|
|
635
|
-
});
|
|
636
|
-
const event = new AfterToolsEvent({ agent, message, invocationState: {} });
|
|
637
|
-
expect(event).toEqual({
|
|
638
|
-
type: 'afterToolsEvent',
|
|
639
|
-
agent: agent,
|
|
640
|
-
message: message,
|
|
641
|
-
invocationState: {},
|
|
642
|
-
endTurn: false,
|
|
643
|
-
});
|
|
644
|
-
// @ts-expect-error verifying that property is readonly
|
|
645
|
-
event.agent = new Agent();
|
|
646
|
-
// @ts-expect-error verifying that property is readonly
|
|
647
|
-
event.message = message;
|
|
648
|
-
});
|
|
649
|
-
it('returns true for _shouldReverseCallbacks', () => {
|
|
650
|
-
const agent = new Agent();
|
|
651
|
-
const message = new Message({ role: 'user', content: [] });
|
|
652
|
-
const event = new AfterToolsEvent({ agent, message, invocationState: {} });
|
|
653
|
-
expect(event._shouldReverseCallbacks()).toBe(true);
|
|
654
|
-
});
|
|
655
|
-
it('defaults endTurn to false and accepts boolean or string', () => {
|
|
656
|
-
const agent = new Agent();
|
|
657
|
-
const message = new Message({ role: 'user', content: [] });
|
|
658
|
-
const event = new AfterToolsEvent({ agent, message, invocationState: {} });
|
|
659
|
-
expect(event.endTurn).toBe(false);
|
|
660
|
-
event.endTurn = true;
|
|
661
|
-
expect(event.endTurn).toBe(true);
|
|
662
|
-
event.endTurn = 'enough information gathered';
|
|
663
|
-
expect(event.endTurn).toBe('enough information gathered');
|
|
664
|
-
});
|
|
665
|
-
});
|
|
666
|
-
// ===================== toJSON serialization tests =====================
|
|
667
|
-
describe('toJSON serialization', () => {
|
|
668
|
-
describe('InitializedEvent', () => {
|
|
669
|
-
it('excludes agent and returns only type', () => {
|
|
670
|
-
const agent = new Agent();
|
|
671
|
-
const event = new InitializedEvent({ agent });
|
|
672
|
-
const json = JSON.parse(JSON.stringify(event));
|
|
673
|
-
expect(json).toStrictEqual({ type: 'initializedEvent' });
|
|
674
|
-
});
|
|
675
|
-
});
|
|
676
|
-
describe('BeforeInvocationEvent', () => {
|
|
677
|
-
it('excludes agent and returns only type', () => {
|
|
678
|
-
const agent = new Agent();
|
|
679
|
-
const event = new BeforeInvocationEvent({ agent, invocationState: {} });
|
|
680
|
-
const json = JSON.parse(JSON.stringify(event));
|
|
681
|
-
expect(json).toStrictEqual({ type: 'beforeInvocationEvent' });
|
|
682
|
-
});
|
|
683
|
-
});
|
|
684
|
-
describe('AfterInvocationEvent', () => {
|
|
685
|
-
it('excludes agent and returns only type', () => {
|
|
686
|
-
const agent = new Agent();
|
|
687
|
-
const event = new AfterInvocationEvent({ agent, invocationState: {} });
|
|
688
|
-
const json = JSON.parse(JSON.stringify(event));
|
|
689
|
-
expect(json).toStrictEqual({ type: 'afterInvocationEvent' });
|
|
690
|
-
});
|
|
691
|
-
});
|
|
692
|
-
describe('BeforeModelCallEvent', () => {
|
|
693
|
-
it('excludes agent and model and returns only type', () => {
|
|
694
|
-
const agent = new Agent();
|
|
695
|
-
const event = new BeforeModelCallEvent({ agent, model: agent.model, invocationState: {} });
|
|
696
|
-
const json = JSON.parse(JSON.stringify(event));
|
|
697
|
-
expect(json).toStrictEqual({ type: 'beforeModelCallEvent' });
|
|
698
|
-
});
|
|
699
|
-
});
|
|
700
|
-
describe('MessageAddedEvent', () => {
|
|
701
|
-
it('includes message and excludes agent', () => {
|
|
702
|
-
const agent = new Agent();
|
|
703
|
-
const message = new Message({ role: 'assistant', content: [new TextBlock('Hello')] });
|
|
704
|
-
const event = new MessageAddedEvent({ agent, message, invocationState: {} });
|
|
705
|
-
const json = JSON.parse(JSON.stringify(event));
|
|
706
|
-
expect(json).toStrictEqual({
|
|
707
|
-
type: 'messageAddedEvent',
|
|
708
|
-
message: { role: 'assistant', content: [{ text: 'Hello' }] },
|
|
709
|
-
});
|
|
710
|
-
});
|
|
711
|
-
});
|
|
712
|
-
describe('ModelStreamUpdateEvent', () => {
|
|
713
|
-
it('includes stream event and excludes agent', () => {
|
|
714
|
-
const agent = new Agent();
|
|
715
|
-
const streamEvent = {
|
|
716
|
-
type: 'modelContentBlockDeltaEvent',
|
|
717
|
-
delta: { type: 'textDelta', text: 'Hi' },
|
|
718
|
-
};
|
|
719
|
-
const event = new ModelStreamUpdateEvent({ agent, event: streamEvent, invocationState: {} });
|
|
720
|
-
const json = JSON.parse(JSON.stringify(event));
|
|
721
|
-
expect(json).toStrictEqual({
|
|
722
|
-
type: 'modelStreamUpdateEvent',
|
|
723
|
-
event: { type: 'modelContentBlockDeltaEvent', delta: { type: 'textDelta', text: 'Hi' } },
|
|
724
|
-
});
|
|
725
|
-
});
|
|
726
|
-
});
|
|
727
|
-
describe('ContentBlockEvent', () => {
|
|
728
|
-
it('includes content block and excludes agent', () => {
|
|
729
|
-
const agent = new Agent();
|
|
730
|
-
const contentBlock = new TextBlock('Hello world');
|
|
731
|
-
const event = new ContentBlockEvent({ agent, contentBlock, invocationState: {} });
|
|
732
|
-
const json = JSON.parse(JSON.stringify(event));
|
|
733
|
-
expect(json).toStrictEqual({
|
|
734
|
-
type: 'contentBlockEvent',
|
|
735
|
-
contentBlock: { text: 'Hello world' },
|
|
736
|
-
});
|
|
737
|
-
});
|
|
738
|
-
});
|
|
739
|
-
describe('ModelMessageEvent', () => {
|
|
740
|
-
it('includes message and stopReason, excludes agent', () => {
|
|
741
|
-
const agent = new Agent();
|
|
742
|
-
const message = new Message({ role: 'assistant', content: [new TextBlock('Done')] });
|
|
743
|
-
const event = new ModelMessageEvent({ agent, message, stopReason: 'endTurn', invocationState: {} });
|
|
744
|
-
const json = JSON.parse(JSON.stringify(event));
|
|
745
|
-
expect(json).toStrictEqual({
|
|
746
|
-
type: 'modelMessageEvent',
|
|
747
|
-
message: { role: 'assistant', content: [{ text: 'Done' }] },
|
|
748
|
-
stopReason: 'endTurn',
|
|
749
|
-
});
|
|
750
|
-
});
|
|
751
|
-
});
|
|
752
|
-
describe('ToolResultEvent', () => {
|
|
753
|
-
it('includes result and excludes agent', () => {
|
|
754
|
-
const agent = new Agent();
|
|
755
|
-
const result = new ToolResultBlock({
|
|
756
|
-
toolUseId: 'tool-1',
|
|
757
|
-
status: 'success',
|
|
758
|
-
content: [new TextBlock('42')],
|
|
759
|
-
});
|
|
760
|
-
const event = new ToolResultEvent({ agent, result, invocationState: {} });
|
|
761
|
-
const json = JSON.parse(JSON.stringify(event));
|
|
762
|
-
expect(json).toStrictEqual({
|
|
763
|
-
type: 'toolResultEvent',
|
|
764
|
-
result: { toolResult: { toolUseId: 'tool-1', status: 'success', content: [{ text: '42' }] } },
|
|
765
|
-
});
|
|
766
|
-
});
|
|
767
|
-
});
|
|
768
|
-
describe('ToolStreamUpdateEvent', () => {
|
|
769
|
-
it('includes tool stream event and excludes agent', () => {
|
|
770
|
-
const agent = new Agent();
|
|
771
|
-
const toolStreamEvent = new ToolStreamEvent({ data: { progress: 50 } });
|
|
772
|
-
const event = new ToolStreamUpdateEvent({ agent, event: toolStreamEvent, invocationState: {} });
|
|
773
|
-
const json = JSON.parse(JSON.stringify(event));
|
|
774
|
-
expect(json).toStrictEqual({
|
|
775
|
-
type: 'toolStreamUpdateEvent',
|
|
776
|
-
event: { type: 'toolStreamEvent', data: { progress: 50 } },
|
|
777
|
-
});
|
|
778
|
-
});
|
|
779
|
-
});
|
|
780
|
-
describe('AgentResultEvent', () => {
|
|
781
|
-
it('includes result and excludes agent', () => {
|
|
782
|
-
const agent = new Agent();
|
|
783
|
-
const result = new AgentResult({
|
|
784
|
-
stopReason: 'endTurn',
|
|
785
|
-
lastMessage: new Message({ role: 'assistant', content: [new TextBlock('Done')] }),
|
|
786
|
-
metrics: new AgentMetrics(),
|
|
787
|
-
invocationState: {},
|
|
788
|
-
});
|
|
789
|
-
const event = new AgentResultEvent({ agent, result, invocationState: {} });
|
|
790
|
-
const json = JSON.parse(JSON.stringify(event));
|
|
791
|
-
expect(json).toStrictEqual({
|
|
792
|
-
type: 'agentResultEvent',
|
|
793
|
-
result: {
|
|
794
|
-
type: 'agentResult',
|
|
795
|
-
stopReason: 'endTurn',
|
|
796
|
-
lastMessage: { role: 'assistant', content: [{ text: 'Done' }] },
|
|
797
|
-
},
|
|
798
|
-
});
|
|
799
|
-
});
|
|
800
|
-
});
|
|
801
|
-
describe('BeforeToolCallEvent', () => {
|
|
802
|
-
it('includes toolUse and excludes agent, tool, and cancel', () => {
|
|
803
|
-
const agent = new Agent();
|
|
804
|
-
const tool = new FunctionTool({
|
|
805
|
-
name: 'testTool',
|
|
806
|
-
description: 'Test',
|
|
807
|
-
inputSchema: {},
|
|
808
|
-
callback: () => 'result',
|
|
809
|
-
});
|
|
810
|
-
const toolUse = { name: 'testTool', toolUseId: 'id-1', input: { query: 'hello' } };
|
|
811
|
-
const event = new BeforeToolCallEvent({ agent, toolUse, tool, invocationState: {} });
|
|
812
|
-
const json = JSON.parse(JSON.stringify(event));
|
|
813
|
-
expect(json).toStrictEqual({
|
|
814
|
-
type: 'beforeToolCallEvent',
|
|
815
|
-
toolUse: { name: 'testTool', toolUseId: 'id-1', input: { query: 'hello' } },
|
|
816
|
-
});
|
|
817
|
-
});
|
|
818
|
-
});
|
|
819
|
-
describe('AfterToolCallEvent', () => {
|
|
820
|
-
it('includes toolUse and result, excludes agent and tool on success', () => {
|
|
821
|
-
const agent = new Agent();
|
|
822
|
-
const toolUse = { name: 'calc', toolUseId: 'id-1', input: {} };
|
|
823
|
-
const result = new ToolResultBlock({
|
|
824
|
-
toolUseId: 'id-1',
|
|
825
|
-
status: 'success',
|
|
826
|
-
content: [new TextBlock('42')],
|
|
827
|
-
});
|
|
828
|
-
const event = new AfterToolCallEvent({ agent, toolUse, tool: undefined, result, invocationState: {} });
|
|
829
|
-
const json = JSON.parse(JSON.stringify(event));
|
|
830
|
-
expect(json).toStrictEqual({
|
|
831
|
-
type: 'afterToolCallEvent',
|
|
832
|
-
toolUse: { name: 'calc', toolUseId: 'id-1', input: {} },
|
|
833
|
-
result: { toolResult: { toolUseId: 'id-1', status: 'success', content: [{ text: '42' }] } },
|
|
834
|
-
});
|
|
835
|
-
});
|
|
836
|
-
it('converts error to message string and excludes retry', () => {
|
|
837
|
-
const agent = new Agent();
|
|
838
|
-
const toolUse = { name: 'calc', toolUseId: 'id-1', input: {} };
|
|
839
|
-
const result = new ToolResultBlock({
|
|
840
|
-
toolUseId: 'id-1',
|
|
841
|
-
status: 'error',
|
|
842
|
-
content: [new TextBlock('Error')],
|
|
843
|
-
});
|
|
844
|
-
const error = new Error('Tool crashed');
|
|
845
|
-
const event = new AfterToolCallEvent({ agent, toolUse, tool: undefined, result, error, invocationState: {} });
|
|
846
|
-
event.retry = true;
|
|
847
|
-
const json = JSON.parse(JSON.stringify(event));
|
|
848
|
-
expect(json).toStrictEqual({
|
|
849
|
-
type: 'afterToolCallEvent',
|
|
850
|
-
toolUse: { name: 'calc', toolUseId: 'id-1', input: {} },
|
|
851
|
-
result: { toolResult: { toolUseId: 'id-1', status: 'error', content: [{ text: 'Error' }] } },
|
|
852
|
-
error: { message: 'Tool crashed' },
|
|
853
|
-
});
|
|
854
|
-
});
|
|
855
|
-
});
|
|
856
|
-
describe('AfterModelCallEvent', () => {
|
|
857
|
-
it('includes stopData and attemptCount and excludes agent and model on success', () => {
|
|
858
|
-
const agent = new Agent();
|
|
859
|
-
const message = new Message({ role: 'assistant', content: [new TextBlock('Hi')] });
|
|
860
|
-
const stopData = { message, stopReason: 'endTurn' };
|
|
861
|
-
const event = new AfterModelCallEvent({
|
|
862
|
-
agent,
|
|
863
|
-
model: agent.model,
|
|
864
|
-
attemptCount: 2,
|
|
865
|
-
stopData,
|
|
866
|
-
invocationState: {},
|
|
867
|
-
});
|
|
868
|
-
const json = JSON.parse(JSON.stringify(event));
|
|
869
|
-
expect(json).toStrictEqual({
|
|
870
|
-
type: 'afterModelCallEvent',
|
|
871
|
-
attemptCount: 2,
|
|
872
|
-
stopData: {
|
|
873
|
-
message: { role: 'assistant', content: [{ text: 'Hi' }] },
|
|
874
|
-
stopReason: 'endTurn',
|
|
875
|
-
},
|
|
876
|
-
});
|
|
877
|
-
});
|
|
878
|
-
it('converts error to message string and excludes retry', () => {
|
|
879
|
-
const agent = new Agent();
|
|
880
|
-
const error = new Error('Model failed');
|
|
881
|
-
const event = new AfterModelCallEvent({ agent, model: agent.model, attemptCount: 1, error, invocationState: {} });
|
|
882
|
-
event.retry = true;
|
|
883
|
-
const json = JSON.parse(JSON.stringify(event));
|
|
884
|
-
expect(json).toStrictEqual({
|
|
885
|
-
type: 'afterModelCallEvent',
|
|
886
|
-
attemptCount: 1,
|
|
887
|
-
error: { message: 'Model failed' },
|
|
888
|
-
});
|
|
889
|
-
});
|
|
890
|
-
});
|
|
891
|
-
describe('BeforeToolsEvent', () => {
|
|
892
|
-
it('includes message and excludes agent and cancel', () => {
|
|
893
|
-
const agent = new Agent();
|
|
894
|
-
const message = new Message({
|
|
895
|
-
role: 'assistant',
|
|
896
|
-
content: [new ToolUseBlock({ name: 'calc', toolUseId: 'id-1', input: {} })],
|
|
897
|
-
});
|
|
898
|
-
const event = new BeforeToolsEvent({ agent, message, invocationState: {} });
|
|
899
|
-
event.cancel = 'not allowed';
|
|
900
|
-
const json = JSON.parse(JSON.stringify(event));
|
|
901
|
-
expect(json).toStrictEqual({
|
|
902
|
-
type: 'beforeToolsEvent',
|
|
903
|
-
message: { role: 'assistant', content: [{ toolUse: { name: 'calc', toolUseId: 'id-1', input: {} } }] },
|
|
904
|
-
});
|
|
905
|
-
});
|
|
906
|
-
});
|
|
907
|
-
describe('AfterToolsEvent', () => {
|
|
908
|
-
it('includes message and excludes agent', () => {
|
|
909
|
-
const agent = new Agent();
|
|
910
|
-
const message = new Message({
|
|
911
|
-
role: 'user',
|
|
912
|
-
content: [
|
|
913
|
-
new ToolResultBlock({
|
|
914
|
-
toolUseId: 'id-1',
|
|
915
|
-
status: 'success',
|
|
916
|
-
content: [new TextBlock('Done')],
|
|
917
|
-
}),
|
|
918
|
-
],
|
|
919
|
-
});
|
|
920
|
-
const event = new AfterToolsEvent({ agent, message, invocationState: {} });
|
|
921
|
-
const json = JSON.parse(JSON.stringify(event));
|
|
922
|
-
expect(json).toStrictEqual({
|
|
923
|
-
type: 'afterToolsEvent',
|
|
924
|
-
message: {
|
|
925
|
-
role: 'user',
|
|
926
|
-
content: [{ toolResult: { toolUseId: 'id-1', status: 'success', content: [{ text: 'Done' }] } }],
|
|
927
|
-
},
|
|
928
|
-
});
|
|
929
|
-
});
|
|
930
|
-
});
|
|
931
|
-
describe('agent reference is never serialized', () => {
|
|
932
|
-
it('JSON.stringify output never contains agent properties', () => {
|
|
933
|
-
const agent = new Agent();
|
|
934
|
-
// Add messages to make agent heavy
|
|
935
|
-
agent.messages.push(new Message({ role: 'user', content: [new TextBlock('Hello '.repeat(100))] }));
|
|
936
|
-
const event = new ModelStreamUpdateEvent({
|
|
937
|
-
agent,
|
|
938
|
-
event: { type: 'modelContentBlockDeltaEvent', delta: { type: 'textDelta', text: 'Hi' } },
|
|
939
|
-
invocationState: {},
|
|
940
|
-
});
|
|
941
|
-
const json = JSON.stringify(event);
|
|
942
|
-
// Should be small (no agent serialized)
|
|
943
|
-
expect(json.length).toBeLessThan(200);
|
|
944
|
-
expect(json).not.toContain('Hello Hello');
|
|
945
|
-
expect(json).not.toContain('appState');
|
|
946
|
-
expect(json).not.toContain('toolRegistry');
|
|
947
|
-
});
|
|
948
|
-
});
|
|
949
|
-
});
|
|
950
|
-
// ===================== Serialization completeness tests =====================
|
|
951
|
-
// Ensures that if a new field is added to an event class, it must either be
|
|
952
|
-
// included in toJSON() or explicitly added to the exclusion set.
|
|
953
|
-
describe('toJSON serialization completeness', () => {
|
|
954
|
-
/**
|
|
955
|
-
* Fields that should NEVER appear in toJSON() output.
|
|
956
|
-
* If you add a new field to an event and it should be excluded from wire serialization,
|
|
957
|
-
* add it here. Otherwise, add it to toJSON() so it gets serialized.
|
|
958
|
-
*/
|
|
959
|
-
const EXCLUDED_FIELDS = new Set([
|
|
960
|
-
'agent',
|
|
961
|
-
'model',
|
|
962
|
-
'tool',
|
|
963
|
-
'cancel',
|
|
964
|
-
'retry',
|
|
965
|
-
'invocationState',
|
|
966
|
-
'selectedTool',
|
|
967
|
-
'resume',
|
|
968
|
-
'endTurn',
|
|
969
|
-
]);
|
|
970
|
-
/**
|
|
971
|
-
* Fields where toJSON() transforms the value (e.g., Error to message object).
|
|
972
|
-
* These appear in both instance and JSON but with different shapes.
|
|
973
|
-
*/
|
|
974
|
-
const TRANSFORMED_FIELDS = new Set(['error']);
|
|
975
|
-
// Helper: create a fully-populated instance of each event class
|
|
976
|
-
function createEventInstances() {
|
|
977
|
-
const agent = new Agent();
|
|
978
|
-
const message = new Message({ role: 'assistant', content: [new TextBlock('test')] });
|
|
979
|
-
const toolUse = { name: 'test', toolUseId: 'id-1', input: {} };
|
|
980
|
-
const result = new ToolResultBlock({ toolUseId: 'id-1', status: 'success', content: [new TextBlock('ok')] });
|
|
981
|
-
const tool = new FunctionTool({ name: 'test', description: 'Test', inputSchema: {}, callback: () => 'ok' });
|
|
982
|
-
const error = new Error('test error');
|
|
983
|
-
const stopData = { message, stopReason: 'endTurn' };
|
|
984
|
-
const streamEvent = {
|
|
985
|
-
type: 'modelContentBlockDeltaEvent',
|
|
986
|
-
delta: { type: 'textDelta', text: 'Hi' },
|
|
987
|
-
};
|
|
988
|
-
const contentBlock = new TextBlock('test');
|
|
989
|
-
const toolStreamEvent = new ToolStreamEvent({ data: { progress: 50 } });
|
|
990
|
-
const agentResult = new AgentResult({
|
|
991
|
-
stopReason: 'endTurn',
|
|
992
|
-
lastMessage: message,
|
|
993
|
-
metrics: new AgentMetrics(),
|
|
994
|
-
invocationState: {},
|
|
995
|
-
});
|
|
996
|
-
return [
|
|
997
|
-
{ name: 'InitializedEvent', event: new InitializedEvent({ agent }) },
|
|
998
|
-
{ name: 'BeforeInvocationEvent', event: new BeforeInvocationEvent({ agent, invocationState: {} }) },
|
|
999
|
-
{ name: 'AfterInvocationEvent', event: new AfterInvocationEvent({ agent, invocationState: {} }) },
|
|
1000
|
-
{
|
|
1001
|
-
name: 'BeforeModelCallEvent',
|
|
1002
|
-
event: new BeforeModelCallEvent({
|
|
1003
|
-
agent,
|
|
1004
|
-
model: agent.model,
|
|
1005
|
-
invocationState: {},
|
|
1006
|
-
projectedInputTokens: 100,
|
|
1007
|
-
}),
|
|
1008
|
-
},
|
|
1009
|
-
{
|
|
1010
|
-
name: 'AfterModelCallEvent',
|
|
1011
|
-
event: Object.assign(new AfterModelCallEvent({ agent, model: agent.model, attemptCount: 1, stopData, error, invocationState: {} }), { retry: true }),
|
|
1012
|
-
},
|
|
1013
|
-
{ name: 'MessageAddedEvent', event: new MessageAddedEvent({ agent, message, invocationState: {} }) },
|
|
1014
|
-
{
|
|
1015
|
-
name: 'ModelStreamUpdateEvent',
|
|
1016
|
-
event: new ModelStreamUpdateEvent({ agent, event: streamEvent, invocationState: {} }),
|
|
1017
|
-
},
|
|
1018
|
-
{ name: 'ContentBlockEvent', event: new ContentBlockEvent({ agent, contentBlock, invocationState: {} }) },
|
|
1019
|
-
{
|
|
1020
|
-
name: 'ModelMessageEvent',
|
|
1021
|
-
event: new ModelMessageEvent({ agent, message, stopReason: 'endTurn', invocationState: {} }),
|
|
1022
|
-
},
|
|
1023
|
-
{ name: 'ToolResultEvent', event: new ToolResultEvent({ agent, result, invocationState: {} }) },
|
|
1024
|
-
{
|
|
1025
|
-
name: 'ToolStreamUpdateEvent',
|
|
1026
|
-
event: new ToolStreamUpdateEvent({ agent, event: toolStreamEvent, invocationState: {} }),
|
|
1027
|
-
},
|
|
1028
|
-
{ name: 'AgentResultEvent', event: new AgentResultEvent({ agent, result: agentResult, invocationState: {} }) },
|
|
1029
|
-
{ name: 'BeforeToolCallEvent', event: new BeforeToolCallEvent({ agent, toolUse, tool, invocationState: {} }) },
|
|
1030
|
-
{
|
|
1031
|
-
name: 'AfterToolCallEvent',
|
|
1032
|
-
event: Object.assign(new AfterToolCallEvent({ agent, toolUse, tool, result, error, invocationState: {} }), {
|
|
1033
|
-
retry: true,
|
|
1034
|
-
}),
|
|
1035
|
-
},
|
|
1036
|
-
{ name: 'BeforeToolsEvent', event: new BeforeToolsEvent({ agent, message, invocationState: {} }) },
|
|
1037
|
-
{ name: 'AfterToolsEvent', event: new AfterToolsEvent({ agent, message, invocationState: {} }) },
|
|
1038
|
-
];
|
|
1039
|
-
}
|
|
1040
|
-
const eventInstances = createEventInstances();
|
|
1041
|
-
it.each(eventInstances)('$name: toJSON() includes all fields except known exclusions', ({ event }) => {
|
|
1042
|
-
const instanceKeys = new Set(Object.keys(event));
|
|
1043
|
-
const jsonKeys = new Set(Object.keys(event.toJSON()));
|
|
1044
|
-
// Every instance key should either be in JSON output, in the exclusion set, or transformed
|
|
1045
|
-
for (const key of instanceKeys) {
|
|
1046
|
-
if (!jsonKeys.has(key) && !TRANSFORMED_FIELDS.has(key)) {
|
|
1047
|
-
expect(EXCLUDED_FIELDS).toContain(key);
|
|
1048
|
-
}
|
|
1049
|
-
}
|
|
1050
|
-
// Every JSON key should come from the instance or be a known transformation
|
|
1051
|
-
for (const key of jsonKeys) {
|
|
1052
|
-
expect(instanceKeys.has(key) || TRANSFORMED_FIELDS.has(key)).toBe(true);
|
|
1053
|
-
}
|
|
1054
|
-
});
|
|
1055
|
-
it.each(eventInstances)('$name: toJSON() never includes agent', ({ event }) => {
|
|
1056
|
-
const json = event.toJSON();
|
|
1057
|
-
expect(json).not.toHaveProperty('agent');
|
|
1058
|
-
});
|
|
1059
|
-
});
|
|
1060
|
-
//# sourceMappingURL=events.test.js.map
|