@strands-agents/sdk 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -0
- package/dist/src/__fixtures__/agent-helpers.d.ts +10 -1
- package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/agent-helpers.js +13 -2
- package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
- package/dist/src/__fixtures__/mock-hook-provider.d.ts +3 -7
- package/dist/src/__fixtures__/mock-hook-provider.d.ts.map +1 -1
- package/dist/src/__fixtures__/mock-hook-provider.js +3 -9
- package/dist/src/__fixtures__/mock-hook-provider.js.map +1 -1
- package/dist/src/__fixtures__/mock-message-model.d.ts +8 -2
- package/dist/src/__fixtures__/mock-message-model.d.ts.map +1 -1
- package/dist/src/__fixtures__/mock-message-model.js +1 -0
- package/dist/src/__fixtures__/mock-message-model.js.map +1 -1
- package/dist/src/__fixtures__/mock-span.d.ts +78 -0
- package/dist/src/__fixtures__/mock-span.d.ts.map +1 -0
- package/dist/src/__fixtures__/mock-span.js +93 -0
- package/dist/src/__fixtures__/mock-span.js.map +1 -0
- package/dist/src/__fixtures__/mock-storage-provider.d.ts +37 -0
- package/dist/src/__fixtures__/mock-storage-provider.d.ts.map +1 -0
- package/dist/src/__fixtures__/mock-storage-provider.js +105 -0
- package/dist/src/__fixtures__/mock-storage-provider.js.map +1 -0
- package/dist/src/__fixtures__/slim-types.d.ts +50 -0
- package/dist/src/__fixtures__/slim-types.d.ts.map +1 -0
- package/dist/src/__fixtures__/slim-types.js +6 -0
- package/dist/src/__fixtures__/slim-types.js.map +1 -0
- package/dist/src/__fixtures__/tool-helpers.d.ts +10 -5
- package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/tool-helpers.js +5 -5
- package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
- package/dist/src/__tests__/app-state.test.d.ts +2 -0
- package/dist/src/__tests__/app-state.test.d.ts.map +1 -0
- package/dist/src/{agent/__tests__/state.test.js → __tests__/app-state.test.js} +62 -43
- package/dist/src/__tests__/app-state.test.js.map +1 -0
- package/dist/src/__tests__/mcp.test.js +96 -15
- package/dist/src/__tests__/mcp.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.hook.test.js +18 -18
- package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.test.js +234 -8
- package/dist/src/agent/__tests__/agent.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.tracer.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.tracer.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.tracer.test.js +470 -0
- package/dist/src/agent/__tests__/agent.tracer.test.js.map +1 -0
- package/dist/src/agent/__tests__/printer.test.js +5 -9
- package/dist/src/agent/__tests__/printer.test.js.map +1 -1
- package/dist/src/agent/__tests__/snapshot.test.d.ts +2 -0
- package/dist/src/agent/__tests__/snapshot.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/snapshot.test.js +249 -0
- package/dist/src/agent/__tests__/snapshot.test.js.map +1 -0
- package/dist/src/agent/agent.d.ts +78 -10
- package/dist/src/agent/agent.d.ts.map +1 -1
- package/dist/src/agent/agent.js +252 -55
- package/dist/src/agent/agent.js.map +1 -1
- package/dist/src/agent/printer.d.ts +4 -0
- package/dist/src/agent/printer.d.ts.map +1 -1
- package/dist/src/agent/printer.js +18 -6
- package/dist/src/agent/printer.js.map +1 -1
- package/dist/src/agent/snapshot.d.ts +132 -0
- package/dist/src/agent/snapshot.d.ts.map +1 -0
- package/dist/src/agent/snapshot.js +151 -0
- package/dist/src/agent/snapshot.js.map +1 -0
- package/dist/src/{agent/state.d.ts → app-state.d.ts} +19 -6
- package/dist/src/app-state.d.ts.map +1 -0
- package/dist/src/{agent/state.js → app-state.js} +27 -6
- package/dist/src/app-state.js.map +1 -0
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +1 -1
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js +1 -1
- package/dist/src/errors.d.ts +15 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +18 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/hooks/__tests__/events.test.js +102 -21
- package/dist/src/hooks/__tests__/events.test.js.map +1 -1
- package/dist/src/hooks/events.d.ts +156 -22
- package/dist/src/hooks/events.d.ts.map +1 -1
- package/dist/src/hooks/events.js +158 -18
- package/dist/src/hooks/events.js.map +1 -1
- package/dist/src/hooks/index.d.ts +12 -4
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +11 -3
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/hooks/registry.d.ts +5 -5
- package/dist/src/hooks/registry.d.ts.map +1 -1
- package/dist/src/hooks/registry.js.map +1 -1
- package/dist/src/hooks/types.d.ts +5 -5
- package/dist/src/hooks/types.d.ts.map +1 -1
- package/dist/src/index.d.ts +6 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +8 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp.d.ts +3 -0
- package/dist/src/mcp.d.ts.map +1 -1
- package/dist/src/mcp.js +38 -1
- package/dist/src/mcp.js.map +1 -1
- package/dist/src/models/__tests__/anthropic.test.js +31 -42
- package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
- package/dist/src/models/__tests__/bedrock.test.js +70 -107
- package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
- package/dist/src/models/__tests__/gemini.test.js +18 -18
- package/dist/src/models/__tests__/gemini.test.js.map +1 -1
- package/dist/src/models/__tests__/model.test.js +21 -13
- package/dist/src/models/__tests__/model.test.js.map +1 -1
- package/dist/src/models/__tests__/openai.test.js +73 -83
- package/dist/src/models/__tests__/openai.test.js.map +1 -1
- package/dist/src/models/model.d.ts +4 -0
- package/dist/src/models/model.d.ts.map +1 -1
- package/dist/src/models/model.js +6 -0
- package/dist/src/models/model.js.map +1 -1
- package/dist/src/models/streaming.d.ts +9 -1
- package/dist/src/models/streaming.d.ts.map +1 -1
- package/dist/src/models/streaming.js +17 -0
- package/dist/src/models/streaming.js.map +1 -1
- package/dist/src/multiagent/__tests__/events.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/events.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/events.test.js +189 -0
- package/dist/src/multiagent/__tests__/events.test.js.map +1 -0
- package/dist/src/multiagent/__tests__/nodes.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/nodes.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/nodes.test.js +194 -0
- package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -0
- package/dist/src/multiagent/__tests__/queue.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/queue.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/queue.test.js +96 -0
- package/dist/src/multiagent/__tests__/queue.test.js.map +1 -0
- package/dist/src/multiagent/base.d.ts +25 -0
- package/dist/src/multiagent/base.d.ts.map +1 -0
- package/dist/src/multiagent/base.js +2 -0
- package/dist/src/multiagent/base.js.map +1 -0
- package/dist/src/multiagent/edge.d.ts +29 -0
- package/dist/src/multiagent/edge.d.ts.map +1 -0
- package/dist/src/multiagent/edge.js +15 -0
- package/dist/src/multiagent/edge.js.map +1 -0
- package/dist/src/multiagent/events.d.ts +135 -0
- package/dist/src/multiagent/events.d.ts.map +1 -0
- package/dist/src/multiagent/events.js +140 -0
- package/dist/src/multiagent/events.js.map +1 -0
- package/dist/src/multiagent/index.d.ts +13 -0
- package/dist/src/multiagent/index.d.ts.map +1 -0
- package/dist/src/multiagent/index.js +8 -0
- package/dist/src/multiagent/index.js.map +1 -0
- package/dist/src/multiagent/nodes.d.ts +123 -0
- package/dist/src/multiagent/nodes.d.ts.map +1 -0
- package/dist/src/multiagent/nodes.js +148 -0
- package/dist/src/multiagent/nodes.js.map +1 -0
- package/dist/src/multiagent/queue.d.ts +67 -0
- package/dist/src/multiagent/queue.d.ts.map +1 -0
- package/dist/src/multiagent/queue.js +59 -0
- package/dist/src/multiagent/queue.js.map +1 -0
- package/dist/src/multiagent/state.d.ts +122 -0
- package/dist/src/multiagent/state.d.ts.map +1 -0
- package/dist/src/multiagent/state.js +132 -0
- package/dist/src/multiagent/state.js.map +1 -0
- package/dist/src/registry/tool-registry.d.ts +2 -1
- package/dist/src/registry/tool-registry.d.ts.map +1 -1
- package/dist/src/registry/tool-registry.js +4 -2
- package/dist/src/registry/tool-registry.js.map +1 -1
- package/dist/src/session/__tests__/file-storage.test.node.d.ts +2 -0
- package/dist/src/session/__tests__/file-storage.test.node.d.ts.map +1 -0
- package/dist/src/session/__tests__/file-storage.test.node.js +218 -0
- package/dist/src/session/__tests__/file-storage.test.node.js.map +1 -0
- package/dist/src/session/__tests__/s3-storage.test.node.d.ts +2 -0
- package/dist/src/session/__tests__/s3-storage.test.node.d.ts.map +1 -0
- package/dist/src/session/__tests__/s3-storage.test.node.js +375 -0
- package/dist/src/session/__tests__/s3-storage.test.node.js.map +1 -0
- package/dist/src/session/__tests__/validation.test.d.ts +2 -0
- package/dist/src/session/__tests__/validation.test.d.ts.map +1 -0
- package/dist/src/session/__tests__/validation.test.js +20 -0
- package/dist/src/session/__tests__/validation.test.js.map +1 -0
- package/dist/src/session/file-storage.d.ts +79 -0
- package/dist/src/session/file-storage.d.ts.map +1 -0
- package/dist/src/session/file-storage.js +144 -0
- package/dist/src/session/file-storage.js.map +1 -0
- package/dist/src/session/index.d.ts +19 -0
- package/dist/src/session/index.d.ts.map +1 -0
- package/dist/src/session/index.js +18 -0
- package/dist/src/session/index.js.map +1 -0
- package/dist/src/session/s3-storage.d.ts +93 -0
- package/dist/src/session/s3-storage.d.ts.map +1 -0
- package/dist/src/session/s3-storage.js +150 -0
- package/dist/src/session/s3-storage.js.map +1 -0
- package/dist/src/session/storage.d.ts +91 -0
- package/dist/src/session/storage.d.ts.map +1 -0
- package/dist/src/session/storage.js +2 -0
- package/dist/src/session/storage.js.map +1 -0
- package/dist/src/session/types.d.ts +49 -0
- package/dist/src/session/types.d.ts.map +1 -0
- package/dist/src/session/types.js +2 -0
- package/dist/src/session/types.js.map +1 -0
- package/dist/src/session/validation.d.ts +10 -0
- package/dist/src/session/validation.d.ts.map +1 -0
- package/dist/src/session/validation.js +16 -0
- package/dist/src/session/validation.js.map +1 -0
- package/dist/src/structured-output/__tests__/context.test.d.ts +2 -0
- package/dist/src/structured-output/__tests__/context.test.d.ts.map +1 -0
- package/dist/src/structured-output/__tests__/context.test.js +201 -0
- package/dist/src/structured-output/__tests__/context.test.js.map +1 -0
- package/dist/src/structured-output/__tests__/exceptions.test.d.ts +2 -0
- package/dist/src/structured-output/__tests__/exceptions.test.d.ts.map +1 -0
- package/dist/src/structured-output/__tests__/exceptions.test.js +103 -0
- package/dist/src/structured-output/__tests__/exceptions.test.js.map +1 -0
- package/dist/src/structured-output/__tests__/tool.test.d.ts +2 -0
- package/dist/src/structured-output/__tests__/tool.test.d.ts.map +1 -0
- package/dist/src/structured-output/__tests__/tool.test.js +256 -0
- package/dist/src/structured-output/__tests__/tool.test.js.map +1 -0
- package/dist/src/structured-output/__tests__/utils.test.d.ts +2 -0
- package/dist/src/structured-output/__tests__/utils.test.d.ts.map +1 -0
- package/dist/src/structured-output/__tests__/utils.test.js +183 -0
- package/dist/src/structured-output/__tests__/utils.test.js.map +1 -0
- package/dist/src/structured-output/context.d.ts +91 -0
- package/dist/src/structured-output/context.d.ts.map +1 -0
- package/dist/src/structured-output/context.js +112 -0
- package/dist/src/structured-output/context.js.map +1 -0
- package/dist/src/structured-output/exceptions.d.ts +18 -0
- package/dist/src/structured-output/exceptions.d.ts.map +1 -0
- package/dist/src/structured-output/exceptions.js +28 -0
- package/dist/src/structured-output/exceptions.js.map +1 -0
- package/dist/src/structured-output/tool.d.ts +33 -0
- package/dist/src/structured-output/tool.d.ts.map +1 -0
- package/dist/src/structured-output/tool.js +73 -0
- package/dist/src/structured-output/tool.js.map +1 -0
- package/dist/src/structured-output/utils.d.ts +23 -0
- package/dist/src/structured-output/utils.d.ts.map +1 -0
- package/dist/src/structured-output/utils.js +104 -0
- package/dist/src/structured-output/utils.js.map +1 -0
- package/dist/src/telemetry/__tests__/config.test.node.d.ts +2 -0
- package/dist/src/telemetry/__tests__/config.test.node.d.ts.map +1 -0
- package/dist/src/telemetry/__tests__/config.test.node.js +129 -0
- package/dist/src/telemetry/__tests__/config.test.node.js.map +1 -0
- package/dist/src/telemetry/__tests__/json.test.d.ts +2 -0
- package/dist/src/telemetry/__tests__/json.test.d.ts.map +1 -0
- package/dist/src/telemetry/__tests__/json.test.js +89 -0
- package/dist/src/telemetry/__tests__/json.test.js.map +1 -0
- package/dist/src/telemetry/__tests__/tracer.test.node.d.ts +2 -0
- package/dist/src/telemetry/__tests__/tracer.test.node.d.ts.map +1 -0
- package/dist/src/telemetry/__tests__/tracer.test.node.js +611 -0
- package/dist/src/telemetry/__tests__/tracer.test.node.js.map +1 -0
- package/dist/src/telemetry/config.d.ts +61 -0
- package/dist/src/telemetry/config.d.ts.map +1 -0
- package/dist/src/telemetry/config.js +101 -0
- package/dist/src/telemetry/config.js.map +1 -0
- package/dist/src/telemetry/index.d.ts +34 -0
- package/dist/src/telemetry/index.d.ts.map +1 -0
- package/dist/src/telemetry/index.js +33 -0
- package/dist/src/telemetry/index.js.map +1 -0
- package/dist/src/telemetry/json.d.ts +11 -0
- package/dist/src/telemetry/json.d.ts.map +1 -0
- package/dist/src/telemetry/json.js +25 -0
- package/dist/src/telemetry/json.js.map +1 -0
- package/dist/src/telemetry/tracer.d.ts +219 -0
- package/dist/src/telemetry/tracer.d.ts.map +1 -0
- package/dist/src/telemetry/tracer.js +610 -0
- package/dist/src/telemetry/tracer.js.map +1 -0
- package/dist/src/telemetry/types.d.ts +101 -0
- package/dist/src/telemetry/types.d.ts.map +1 -0
- package/dist/src/telemetry/types.js +5 -0
- package/dist/src/telemetry/types.js.map +1 -0
- package/dist/src/tools/tool.d.ts +1 -1
- package/dist/src/tools/tool.js +1 -1
- package/dist/src/tools/zod-tool.d.ts.map +1 -1
- package/dist/src/tools/zod-tool.js +2 -5
- package/dist/src/tools/zod-tool.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types/__tests__/media.test.js +216 -1
- package/dist/src/types/__tests__/media.test.js.map +1 -1
- package/dist/src/types/__tests__/messages.test.js +193 -4
- package/dist/src/types/__tests__/messages.test.js.map +1 -1
- package/dist/src/types/agent.d.ts +16 -10
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/agent.js +8 -1
- package/dist/src/types/agent.js.map +1 -1
- package/dist/src/types/json.d.ts +61 -0
- package/dist/src/types/json.d.ts.map +1 -1
- package/dist/src/types/json.js +24 -0
- package/dist/src/types/json.js.map +1 -1
- package/dist/src/types/media.d.ts +84 -4
- package/dist/src/types/media.d.ts.map +1 -1
- package/dist/src/types/media.js +194 -0
- package/dist/src/types/media.js.map +1 -1
- package/dist/src/types/messages.d.ts +152 -13
- package/dist/src/types/messages.d.ts.map +1 -1
- package/dist/src/types/messages.js +235 -8
- package/dist/src/types/messages.js.map +1 -1
- package/dist/src/types/serializable.d.ts +31 -0
- package/dist/src/types/serializable.d.ts.map +1 -0
- package/dist/src/types/serializable.js +19 -0
- package/dist/src/types/serializable.js.map +1 -0
- package/dist/src/utils/zod.d.ts +11 -0
- package/dist/src/utils/zod.d.ts.map +1 -0
- package/dist/src/utils/zod.js +14 -0
- package/dist/src/utils/zod.js.map +1 -0
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +2 -2
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +1 -1
- package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.js +4 -4
- package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.js.map +1 -1
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +2 -2
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +1 -1
- package/package.json +17 -3
- package/dist/src/agent/__tests__/state.test.d.ts +0 -2
- package/dist/src/agent/__tests__/state.test.d.ts.map +0 -1
- package/dist/src/agent/__tests__/state.test.js.map +0 -1
- package/dist/src/agent/state.d.ts.map +0 -1
- package/dist/src/agent/state.js.map +0 -1
package/dist/src/hooks/events.js
CHANGED
|
@@ -1,8 +1,66 @@
|
|
|
1
|
+
import { ToolStreamEvent } from '../tools/tool.js';
|
|
1
2
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
3
|
+
* Agent hook events.
|
|
4
|
+
*
|
|
5
|
+
* All events extend {@link StreamEvent} and carry `readonly agent: AgentData` with a
|
|
6
|
+
* `readonly type` discriminator (camelCase of the class name) for switch-based narrowing.
|
|
7
|
+
* Constructor takes a single data-object parameter. All properties are readonly except
|
|
8
|
+
* explicit mutable flags (`retry`).
|
|
9
|
+
*
|
|
10
|
+
* All current events extend {@link HookableEvent} (which itself extends {@link StreamEvent}),
|
|
11
|
+
* making them both streamable and subscribable via hook callbacks. {@link StreamEvent} exists
|
|
12
|
+
* as the base class for potential future events that should be stream-only without hookability.
|
|
13
|
+
*
|
|
14
|
+
* ## Event categories
|
|
15
|
+
*
|
|
16
|
+
* **Lifecycle events** — Before/After pairs that bracket agent operations.
|
|
17
|
+
* - Naming: `Before<Noun>Event` / `After<Noun>Event`
|
|
18
|
+
* - `After*` events override `_shouldReverseCallbacks()` → `true` for cleanup ordering.
|
|
19
|
+
* - Examples: {@link BeforeInvocationEvent}/{@link AfterInvocationEvent},
|
|
20
|
+
* {@link BeforeModelCallEvent}/{@link AfterModelCallEvent},
|
|
21
|
+
* {@link BeforeToolsEvent}/{@link AfterToolsEvent},
|
|
22
|
+
* {@link BeforeToolCallEvent}/{@link AfterToolCallEvent}
|
|
23
|
+
*
|
|
24
|
+
* **State-change events** — Signal that agent state was mutated.
|
|
25
|
+
* - Naming: `<Noun><PastTense>Event`
|
|
26
|
+
* - Examples: {@link InitializedEvent}, {@link MessageAddedEvent}
|
|
27
|
+
*
|
|
28
|
+
* **Data events** — Wrap data objects produced during agent execution.
|
|
29
|
+
* Two sub-categories:
|
|
30
|
+
*
|
|
31
|
+
* *Update events* — wrap transient streaming data from lower layers.
|
|
32
|
+
* - Naming: `<Source>StreamUpdateEvent`, payload field: `.event`
|
|
33
|
+
* - Examples: {@link ModelStreamUpdateEvent}, {@link ToolStreamUpdateEvent}
|
|
34
|
+
*
|
|
35
|
+
* *Completion events* — wrap finished data after processing completes.
|
|
36
|
+
* - Naming: descriptive `<Noun>Event`, payload field matches data type
|
|
37
|
+
* (`.result` for results, `.message` for messages, `.contentBlock` for content blocks).
|
|
38
|
+
* - Examples: {@link ContentBlockEvent}, {@link ModelMessageEvent},
|
|
39
|
+
* {@link ToolResultEvent}, {@link AgentResultEvent}
|
|
40
|
+
*
|
|
41
|
+
* ## Field naming conventions
|
|
42
|
+
*
|
|
43
|
+
* | Field | Usage |
|
|
44
|
+
* |----------------|---------------------------------------------|
|
|
45
|
+
* | `agent` | Present on every event (`AgentData`) |
|
|
46
|
+
* | `.event` | Inner event in update wrappers |
|
|
47
|
+
* | `.result` | Finished result object |
|
|
48
|
+
* | `.message` | Message object |
|
|
49
|
+
* | `.contentBlock`| Content block object |
|
|
50
|
+
*/
|
|
51
|
+
/**
|
|
52
|
+
* Base class for all events yielded by `agent.stream()`.
|
|
53
|
+
* Carries no hookability — subclasses that should be hookable extend {@link HookableEvent} instead.
|
|
4
54
|
*/
|
|
5
|
-
export class
|
|
55
|
+
export class StreamEvent {
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Base class for events that can be subscribed to via the hook system.
|
|
59
|
+
* Only events extending this class are dispatched to {@link HookRegistry} callbacks.
|
|
60
|
+
* All current events extend this class. {@link StreamEvent} exists as the base for
|
|
61
|
+
* potential future stream-only events that should not be hookable.
|
|
62
|
+
*/
|
|
63
|
+
export class HookableEvent extends StreamEvent {
|
|
6
64
|
/**
|
|
7
65
|
* @internal
|
|
8
66
|
* Check if callbacks should be reversed for this event.
|
|
@@ -16,7 +74,7 @@ export class HookEvent {
|
|
|
16
74
|
* Event triggered when an agent has finished initialization.
|
|
17
75
|
* Fired after the agent has been fully constructed and all built-in components have been initialized.
|
|
18
76
|
*/
|
|
19
|
-
export class InitializedEvent extends
|
|
77
|
+
export class InitializedEvent extends HookableEvent {
|
|
20
78
|
type = 'initializedEvent';
|
|
21
79
|
agent;
|
|
22
80
|
constructor(data) {
|
|
@@ -28,7 +86,7 @@ export class InitializedEvent extends HookEvent {
|
|
|
28
86
|
* Event triggered at the beginning of a new agent request.
|
|
29
87
|
* Fired before any model inference or tool execution occurs.
|
|
30
88
|
*/
|
|
31
|
-
export class BeforeInvocationEvent extends
|
|
89
|
+
export class BeforeInvocationEvent extends HookableEvent {
|
|
32
90
|
type = 'beforeInvocationEvent';
|
|
33
91
|
agent;
|
|
34
92
|
constructor(data) {
|
|
@@ -41,7 +99,7 @@ export class BeforeInvocationEvent extends HookEvent {
|
|
|
41
99
|
* Fired after all processing completes, regardless of success or error.
|
|
42
100
|
* Uses reverse callback ordering for proper cleanup semantics.
|
|
43
101
|
*/
|
|
44
|
-
export class AfterInvocationEvent extends
|
|
102
|
+
export class AfterInvocationEvent extends HookableEvent {
|
|
45
103
|
type = 'afterInvocationEvent';
|
|
46
104
|
agent;
|
|
47
105
|
constructor(data) {
|
|
@@ -57,7 +115,7 @@ export class AfterInvocationEvent extends HookEvent {
|
|
|
57
115
|
* Fired during the agent loop execution for framework-generated messages.
|
|
58
116
|
* Does not fire for initial messages from AgentConfig or user input messages.
|
|
59
117
|
*/
|
|
60
|
-
export class MessageAddedEvent extends
|
|
118
|
+
export class MessageAddedEvent extends HookableEvent {
|
|
61
119
|
type = 'messageAddedEvent';
|
|
62
120
|
agent;
|
|
63
121
|
message;
|
|
@@ -71,7 +129,7 @@ export class MessageAddedEvent extends HookEvent {
|
|
|
71
129
|
* Event triggered just before a tool is executed.
|
|
72
130
|
* Fired after tool lookup but before execution begins.
|
|
73
131
|
*/
|
|
74
|
-
export class BeforeToolCallEvent extends
|
|
132
|
+
export class BeforeToolCallEvent extends HookableEvent {
|
|
75
133
|
type = 'beforeToolCallEvent';
|
|
76
134
|
agent;
|
|
77
135
|
toolUse;
|
|
@@ -88,7 +146,7 @@ export class BeforeToolCallEvent extends HookEvent {
|
|
|
88
146
|
* Fired after tool execution finishes, whether successful or failed.
|
|
89
147
|
* Uses reverse callback ordering for proper cleanup semantics.
|
|
90
148
|
*/
|
|
91
|
-
export class AfterToolCallEvent extends
|
|
149
|
+
export class AfterToolCallEvent extends HookableEvent {
|
|
92
150
|
type = 'afterToolCallEvent';
|
|
93
151
|
agent;
|
|
94
152
|
toolUse;
|
|
@@ -118,7 +176,7 @@ export class AfterToolCallEvent extends HookEvent {
|
|
|
118
176
|
* Event triggered just before the model is invoked.
|
|
119
177
|
* Fired before sending messages to the model for inference.
|
|
120
178
|
*/
|
|
121
|
-
export class BeforeModelCallEvent extends
|
|
179
|
+
export class BeforeModelCallEvent extends HookableEvent {
|
|
122
180
|
type = 'beforeModelCallEvent';
|
|
123
181
|
agent;
|
|
124
182
|
constructor(data) {
|
|
@@ -133,7 +191,7 @@ export class BeforeModelCallEvent extends HookEvent {
|
|
|
133
191
|
*
|
|
134
192
|
* Note: stopData may be undefined if an error occurs before the model completes.
|
|
135
193
|
*/
|
|
136
|
-
export class AfterModelCallEvent extends
|
|
194
|
+
export class AfterModelCallEvent extends HookableEvent {
|
|
137
195
|
type = 'afterModelCallEvent';
|
|
138
196
|
agent;
|
|
139
197
|
stopData;
|
|
@@ -159,13 +217,81 @@ export class AfterModelCallEvent extends HookEvent {
|
|
|
159
217
|
}
|
|
160
218
|
/**
|
|
161
219
|
* Event triggered for each streaming event from the model.
|
|
162
|
-
*
|
|
163
|
-
*
|
|
220
|
+
* Wraps a {@link ModelStreamEvent} (transient streaming delta) during model inference.
|
|
221
|
+
* Completed content blocks are handled separately by {@link ContentBlockEvent}
|
|
222
|
+
* because they represent different granularities: partial deltas vs fully assembled results.
|
|
223
|
+
*/
|
|
224
|
+
export class ModelStreamUpdateEvent extends HookableEvent {
|
|
225
|
+
type = 'modelStreamUpdateEvent';
|
|
226
|
+
agent;
|
|
227
|
+
event;
|
|
228
|
+
constructor(data) {
|
|
229
|
+
super();
|
|
230
|
+
this.agent = data.agent;
|
|
231
|
+
this.event = data.event;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Event triggered when a content block completes during model inference.
|
|
236
|
+
* Wraps completed content blocks (TextBlock, ToolUseBlock, ReasoningBlock) from model streaming.
|
|
237
|
+
* This is intentionally separate from {@link ModelStreamUpdateEvent}. The model's
|
|
238
|
+
* `streamAggregated()` yields two kinds of output: {@link ModelStreamEvent} (transient
|
|
239
|
+
* streaming deltas — partial data arriving while the model generates) and
|
|
240
|
+
* {@link ContentBlock} (fully assembled results after all deltas accumulate).
|
|
241
|
+
* These represent different granularities with different semantics, so they are
|
|
242
|
+
* wrapped in distinct event classes rather than combined into a single event.
|
|
243
|
+
*/
|
|
244
|
+
export class ContentBlockEvent extends HookableEvent {
|
|
245
|
+
type = 'contentBlockEvent';
|
|
246
|
+
agent;
|
|
247
|
+
contentBlock;
|
|
248
|
+
constructor(data) {
|
|
249
|
+
super();
|
|
250
|
+
this.agent = data.agent;
|
|
251
|
+
this.contentBlock = data.contentBlock;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Event triggered when the model completes a full message.
|
|
256
|
+
* Wraps the assembled message and stop reason after model streaming finishes.
|
|
257
|
+
*/
|
|
258
|
+
export class ModelMessageEvent extends HookableEvent {
|
|
259
|
+
type = 'modelMessageEvent';
|
|
260
|
+
agent;
|
|
261
|
+
message;
|
|
262
|
+
stopReason;
|
|
263
|
+
constructor(data) {
|
|
264
|
+
super();
|
|
265
|
+
this.agent = data.agent;
|
|
266
|
+
this.message = data.message;
|
|
267
|
+
this.stopReason = data.stopReason;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Event triggered when a tool execution completes.
|
|
272
|
+
* Wraps the tool result block after a tool finishes execution.
|
|
273
|
+
*/
|
|
274
|
+
export class ToolResultEvent extends HookableEvent {
|
|
275
|
+
type = 'toolResultEvent';
|
|
276
|
+
agent;
|
|
277
|
+
result;
|
|
278
|
+
constructor(data) {
|
|
279
|
+
super();
|
|
280
|
+
this.agent = data.agent;
|
|
281
|
+
this.result = data.result;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Event triggered for each streaming progress event from a tool during execution.
|
|
286
|
+
* Wraps a {@link ToolStreamEvent} with agent context, keeping the tool authoring
|
|
287
|
+
* interface unchanged — tools construct `ToolStreamEvent` without knowledge of agents
|
|
288
|
+
* or hooks, and the agent layer wraps them at the boundary.
|
|
164
289
|
*
|
|
165
|
-
*
|
|
290
|
+
* Consistent with {@link ModelStreamUpdateEvent} which wraps model streaming events
|
|
291
|
+
* the same way.
|
|
166
292
|
*/
|
|
167
|
-
export class
|
|
168
|
-
type = '
|
|
293
|
+
export class ToolStreamUpdateEvent extends HookableEvent {
|
|
294
|
+
type = 'toolStreamUpdateEvent';
|
|
169
295
|
agent;
|
|
170
296
|
event;
|
|
171
297
|
constructor(data) {
|
|
@@ -174,11 +300,25 @@ export class ModelStreamEventHook extends HookEvent {
|
|
|
174
300
|
this.event = data.event;
|
|
175
301
|
}
|
|
176
302
|
}
|
|
303
|
+
/**
|
|
304
|
+
* Event triggered as the final event in the agent stream.
|
|
305
|
+
* Wraps the agent result containing the stop reason and last message.
|
|
306
|
+
*/
|
|
307
|
+
export class AgentResultEvent extends HookableEvent {
|
|
308
|
+
type = 'agentResultEvent';
|
|
309
|
+
agent;
|
|
310
|
+
result;
|
|
311
|
+
constructor(data) {
|
|
312
|
+
super();
|
|
313
|
+
this.agent = data.agent;
|
|
314
|
+
this.result = data.result;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
177
317
|
/**
|
|
178
318
|
* Event triggered before executing tools.
|
|
179
319
|
* Fired when the model returns tool use blocks that need to be executed.
|
|
180
320
|
*/
|
|
181
|
-
export class BeforeToolsEvent extends
|
|
321
|
+
export class BeforeToolsEvent extends HookableEvent {
|
|
182
322
|
type = 'beforeToolsEvent';
|
|
183
323
|
agent;
|
|
184
324
|
message;
|
|
@@ -193,7 +333,7 @@ export class BeforeToolsEvent extends HookEvent {
|
|
|
193
333
|
* Fired after tool results are collected and ready to be added to conversation.
|
|
194
334
|
* Uses reverse callback ordering for proper cleanup semantics.
|
|
195
335
|
*/
|
|
196
|
-
export class AfterToolsEvent extends
|
|
336
|
+
export class AfterToolsEvent extends HookableEvent {
|
|
197
337
|
type = 'afterToolsEvent';
|
|
198
338
|
agent;
|
|
199
339
|
message;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/hooks/events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/hooks/events.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAI7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH;;;GAGG;AACH,MAAM,OAAgB,WAAW;CAAG;AAEpC;;;;;GAKG;AACH,MAAM,OAAgB,aAAc,SAAQ,WAAW;IACrD;;;;OAIG;IACH,uBAAuB;QACrB,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IACxC,IAAI,GAAG,kBAA2B,CAAA;IAClC,KAAK,CAAW;IAEzB,YAAY,IAA0B;QACpC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACzB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,qBAAsB,SAAQ,aAAa;IAC7C,IAAI,GAAG,uBAAgC,CAAA;IACvC,KAAK,CAAW;IAEzB,YAAY,IAA0B;QACpC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACzB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,oBAAqB,SAAQ,aAAa;IAC5C,IAAI,GAAG,sBAA+B,CAAA;IACtC,KAAK,CAAW;IAEzB,YAAY,IAA0B;QACpC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACzB,CAAC;IAEQ,uBAAuB;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IACzC,IAAI,GAAG,mBAA4B,CAAA;IACnC,KAAK,CAAW;IAChB,OAAO,CAAS;IAEzB,YAAY,IAA4C;QACtD,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC7B,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IAC3C,IAAI,GAAG,qBAA8B,CAAA;IACrC,KAAK,CAAW;IAChB,OAAO,CAIf;IACQ,IAAI,CAAkB;IAE/B,YAAY,IAIX;QACC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;IACvB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,kBAAmB,SAAQ,aAAa;IAC1C,IAAI,GAAG,oBAA6B,CAAA;IACpC,KAAK,CAAW;IAChB,OAAO,CAIf;IACQ,IAAI,CAAkB;IACtB,MAAM,CAAiB;IACvB,KAAK,CAAQ;IAEtB;;;OAGG;IACH,KAAK,CAAU;IAEf,YAAY,IAMX;QACC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,CAAC;IACH,CAAC;IAEQ,uBAAuB;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,oBAAqB,SAAQ,aAAa;IAC5C,IAAI,GAAG,sBAA+B,CAAA;IACtC,KAAK,CAAW;IAEzB,YAAY,IAA0B;QACpC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACzB,CAAC;CACF;AAgBD;;;;;;GAMG;AACH,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IAC3C,IAAI,GAAG,qBAA8B,CAAA;IACrC,KAAK,CAAW;IAChB,QAAQ,CAAgB;IACxB,KAAK,CAAQ;IAEtB;;;OAGG;IACH,KAAK,CAAU;IAEf,YAAY,IAAmE;QAC7E,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC/B,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,CAAC;IACH,CAAC;IAEQ,uBAAuB;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,sBAAuB,SAAQ,aAAa;IAC9C,IAAI,GAAG,wBAAiC,CAAA;IACxC,KAAK,CAAW;IAChB,KAAK,CAAkB;IAEhC,YAAY,IAAmD;QAC7D,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACzB,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IACzC,IAAI,GAAG,mBAA4B,CAAA;IACnC,KAAK,CAAW;IAChB,YAAY,CAAc;IAEnC,YAAY,IAAsD;QAChE,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;IACvC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IACzC,IAAI,GAAG,mBAA4B,CAAA;IACnC,KAAK,CAAW;IAChB,OAAO,CAAS;IAChB,UAAU,CAAY;IAE/B,YAAY,IAAoE;QAC9E,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;IACnC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,aAAa;IACvC,IAAI,GAAG,iBAA0B,CAAA;IACjC,KAAK,CAAW;IAChB,MAAM,CAAiB;IAEhC,YAAY,IAAmD;QAC7D,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAC3B,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,qBAAsB,SAAQ,aAAa;IAC7C,IAAI,GAAG,uBAAgC,CAAA;IACvC,KAAK,CAAW;IAChB,KAAK,CAAiB;IAE/B,YAAY,IAAkD;QAC5D,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACzB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IACxC,IAAI,GAAG,kBAA2B,CAAA;IAClC,KAAK,CAAW;IAChB,MAAM,CAAa;IAE5B,YAAY,IAA+C;QACzD,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAC3B,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IACxC,IAAI,GAAG,kBAA2B,CAAA;IAClC,KAAK,CAAW;IAChB,OAAO,CAAS;IAEzB,YAAY,IAA4C;QACtD,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC7B,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,eAAgB,SAAQ,aAAa;IACvC,IAAI,GAAG,iBAA0B,CAAA;IACjC,KAAK,CAAW;IAChB,OAAO,CAAS;IAEzB,YAAY,IAA4C;QACtD,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC7B,CAAC;IAEQ,uBAAuB;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Hooks module for event-driven extensibility.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* This module has two concerns with distinct naming:
|
|
5
|
+
*
|
|
6
|
+
* - **Events** (`StreamEvent` and subclasses) — the data objects yielded by `agent.stream()`.
|
|
7
|
+
* Named `Stream*` because they are members of the agent stream.
|
|
8
|
+
* All current events extend {@link HookableEvent}, making them subscribable via hook callbacks.
|
|
9
|
+
* See {@link StreamEvent} and `events.ts` for the full taxonomy.
|
|
10
|
+
*
|
|
11
|
+
* - **Hook infrastructure** (`HookProvider`, `HookCallback`, `HookRegistry`, `HookCleanup`) —
|
|
12
|
+
* the subscription mechanism that lets providers register callbacks for {@link HookableEvent} types.
|
|
13
|
+
* Named `Hook*` because they describe the hooking/subscription pattern, not the events themselves.
|
|
6
14
|
*/
|
|
7
|
-
export {
|
|
15
|
+
export { StreamEvent, HookableEvent, InitializedEvent, BeforeInvocationEvent, AfterInvocationEvent, MessageAddedEvent, BeforeToolCallEvent, AfterToolCallEvent, BeforeModelCallEvent, AfterModelCallEvent, ModelStreamUpdateEvent, ContentBlockEvent, ModelMessageEvent, ToolResultEvent, ToolStreamUpdateEvent, AgentResultEvent, BeforeToolsEvent, AfterToolsEvent, } from './events.js';
|
|
8
16
|
export type { ModelStopData as ModelStopResponse } from './events.js';
|
|
9
17
|
export { HookRegistryImplementation as HookRegistry } from './registry.js';
|
|
10
|
-
export type { HookCallback, HookProvider,
|
|
18
|
+
export type { HookCallback, HookProvider, HookableEventConstructor, HookCleanup } from './types.js';
|
|
11
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EACL,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,aAAa,CAAA;AAGpB,YAAY,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGrE,OAAO,EAAE,0BAA0B,IAAI,YAAY,EAAE,MAAM,eAAe,CAAA;AAG1E,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA"}
|
package/dist/src/hooks/index.js
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Hooks module for event-driven extensibility.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* This module has two concerns with distinct naming:
|
|
5
|
+
*
|
|
6
|
+
* - **Events** (`StreamEvent` and subclasses) — the data objects yielded by `agent.stream()`.
|
|
7
|
+
* Named `Stream*` because they are members of the agent stream.
|
|
8
|
+
* All current events extend {@link HookableEvent}, making them subscribable via hook callbacks.
|
|
9
|
+
* See {@link StreamEvent} and `events.ts` for the full taxonomy.
|
|
10
|
+
*
|
|
11
|
+
* - **Hook infrastructure** (`HookProvider`, `HookCallback`, `HookRegistry`, `HookCleanup`) —
|
|
12
|
+
* the subscription mechanism that lets providers register callbacks for {@link HookableEvent} types.
|
|
13
|
+
* Named `Hook*` because they describe the hooking/subscription pattern, not the events themselves.
|
|
6
14
|
*/
|
|
7
15
|
// Event classes
|
|
8
|
-
export {
|
|
16
|
+
export { StreamEvent, HookableEvent, InitializedEvent, BeforeInvocationEvent, AfterInvocationEvent, MessageAddedEvent, BeforeToolCallEvent, AfterToolCallEvent, BeforeModelCallEvent, AfterModelCallEvent, ModelStreamUpdateEvent, ContentBlockEvent, ModelMessageEvent, ToolResultEvent, ToolStreamUpdateEvent, AgentResultEvent, BeforeToolsEvent, AfterToolsEvent, } from './events.js';
|
|
9
17
|
// Registry
|
|
10
18
|
export { HookRegistryImplementation as HookRegistry } from './registry.js';
|
|
11
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,gBAAgB;AAChB,OAAO,EACL,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,aAAa,CAAA;AAKpB,WAAW;AACX,OAAO,EAAE,0BAA0B,IAAI,YAAY,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { HookCallback, HookProvider,
|
|
1
|
+
import type { HookableEvent } from './events.js';
|
|
2
|
+
import type { HookCallback, HookProvider, HookableEventConstructor, HookCleanup } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Interface for hook registry operations.
|
|
5
5
|
* Enables registration of hook callbacks for event-driven extensibility.
|
|
@@ -12,7 +12,7 @@ export interface HookRegistry {
|
|
|
12
12
|
* @param callback - The callback function to invoke when the event occurs
|
|
13
13
|
* @returns Cleanup function that removes the callback when invoked
|
|
14
14
|
*/
|
|
15
|
-
addCallback<T extends
|
|
15
|
+
addCallback<T extends HookableEvent>(eventType: HookableEventConstructor<T>, callback: HookCallback<T>): HookCleanup;
|
|
16
16
|
/**
|
|
17
17
|
* Register all callbacks from a hook provider.
|
|
18
18
|
*
|
|
@@ -41,7 +41,7 @@ export declare class HookRegistryImplementation implements HookRegistry {
|
|
|
41
41
|
* @param callback - The callback function to invoke when the event occurs
|
|
42
42
|
* @returns Cleanup function that removes the callback when invoked
|
|
43
43
|
*/
|
|
44
|
-
addCallback<T extends
|
|
44
|
+
addCallback<T extends HookableEvent>(eventType: HookableEventConstructor<T>, callback: HookCallback<T>): HookCleanup;
|
|
45
45
|
/**
|
|
46
46
|
* Register all callbacks from a hook provider.
|
|
47
47
|
*
|
|
@@ -67,7 +67,7 @@ export declare class HookRegistryImplementation implements HookRegistry {
|
|
|
67
67
|
* @param event - The event to invoke callbacks for
|
|
68
68
|
* @returns The event after all callbacks have been invoked
|
|
69
69
|
*/
|
|
70
|
-
invokeCallbacks<T extends
|
|
70
|
+
invokeCallbacks<T extends HookableEvent>(event: T): Promise<T>;
|
|
71
71
|
/**
|
|
72
72
|
* Get callbacks for a specific event with proper ordering.
|
|
73
73
|
* Returns callbacks in reverse order if event should reverse callbacks.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/hooks/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/hooks/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAUnG;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,SAAS,aAAa,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAA;IAEpH;;;;OAIG;IACH,OAAO,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;IAErC;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;CACzC;AAED;;;GAGG;AACH,qBAAa,0BAA2B,YAAW,YAAY;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgD;IAC3E,OAAO,CAAC,gBAAgB,CAA0B;;IAOlD;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,SAAS,aAAa,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW;IAgBpH;;;;OAIG;IACH,OAAO,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAcrC;;;;OAIG;IACH,WAAW,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,IAAI;IAM5C;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAWxC;;;;;;OAMG;IACG,eAAe,CAAC,CAAC,SAAS,aAAa,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAQpE;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;CAKxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/hooks/registry.ts"],"names":[],"mappings":"AAwCA;;;GAGG;AACH,MAAM,OAAO,0BAA0B;IACpB,UAAU,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/hooks/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { HookableEvent } from './events.js';
|
|
2
2
|
import type { HookRegistry } from './registry.js';
|
|
3
3
|
/**
|
|
4
|
-
* Type for a constructor function that creates
|
|
4
|
+
* Type for a constructor function that creates HookableEvent instances.
|
|
5
5
|
*/
|
|
6
|
-
export type
|
|
6
|
+
export type HookableEventConstructor<T extends HookableEvent = HookableEvent> = new (...args: any[]) => T;
|
|
7
7
|
/**
|
|
8
|
-
* Type for callback functions that handle
|
|
8
|
+
* Type for callback functions that handle hookable events.
|
|
9
9
|
* Callbacks can be synchronous or asynchronous.
|
|
10
10
|
*
|
|
11
11
|
* @example
|
|
@@ -15,7 +15,7 @@ export type HookEventConstructor<T extends HookEvent = HookEvent> = new (...args
|
|
|
15
15
|
* }
|
|
16
16
|
* ```
|
|
17
17
|
*/
|
|
18
|
-
export type HookCallback<T extends
|
|
18
|
+
export type HookCallback<T extends HookableEvent> = (event: T) => void | Promise<void>;
|
|
19
19
|
/**
|
|
20
20
|
* Function that removes a previously registered hook callback.
|
|
21
21
|
* Safe to call multiple times (idempotent).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD;;GAEG;AAEH,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AAEzG;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAEtF;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAA;AAEpC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;CAChD"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* public APIs and functionality.
|
|
6
6
|
*/
|
|
7
7
|
export { Agent } from './agent/agent.js';
|
|
8
|
-
export
|
|
8
|
+
export { AppState } from './app-state.js';
|
|
9
9
|
export type { AgentData } from './types/agent.js';
|
|
10
10
|
export { AgentResult } from './types/agent.js';
|
|
11
11
|
export type { AgentConfig, ToolList } from './agent/agent.js';
|
|
@@ -21,16 +21,19 @@ export { Tool } from './tools/tool.js';
|
|
|
21
21
|
export { FunctionTool } from './tools/function-tool.js';
|
|
22
22
|
export { tool } from './tools/zod-tool.js';
|
|
23
23
|
export type { Usage, Metrics, ModelMessageStartEventData, ModelMessageStartEvent, ToolUseStart, ContentBlockStart, ModelContentBlockStartEventData, ModelContentBlockStartEvent, TextDelta, ToolUseInputDelta, ReasoningContentDelta, ContentBlockDelta, ModelContentBlockDeltaEventData, ModelContentBlockDeltaEvent, ModelContentBlockStopEvent, ModelMessageStopEventData, ModelMessageStopEvent, ModelMetadataEventData, ModelMetadataEvent, ModelStreamEvent, } from './models/streaming.js';
|
|
24
|
+
export { isModelStreamEvent } from './models/streaming.js';
|
|
24
25
|
export type { BaseModelConfig, StreamOptions } from './models/model.js';
|
|
25
26
|
export { Model } from './models/model.js';
|
|
26
27
|
export { BedrockModel as BedrockModel } from './models/bedrock.js';
|
|
27
28
|
export type { BedrockModelConfig, BedrockModelOptions } from './models/bedrock.js';
|
|
28
29
|
export type { AgentStreamEvent } from './types/agent.js';
|
|
29
|
-
export { HookRegistry,
|
|
30
|
-
export type { HookCallback, HookProvider,
|
|
30
|
+
export { HookRegistry, StreamEvent, HookableEvent, InitializedEvent, BeforeInvocationEvent, AfterInvocationEvent, MessageAddedEvent, BeforeToolCallEvent, AfterToolCallEvent, BeforeModelCallEvent, AfterModelCallEvent, BeforeToolsEvent, AfterToolsEvent, ContentBlockEvent, ModelMessageEvent, ToolResultEvent, ToolStreamUpdateEvent, AgentResultEvent, ModelStreamUpdateEvent, } from './hooks/index.js';
|
|
31
|
+
export type { HookCallback, HookProvider, HookableEventConstructor, ModelStopResponse } from './hooks/index.js';
|
|
31
32
|
export { NullConversationManager } from './conversation-manager/null-conversation-manager.js';
|
|
32
33
|
export { SlidingWindowConversationManager, type SlidingWindowConversationManagerConfig, } from './conversation-manager/sliding-window-conversation-manager.js';
|
|
33
34
|
export { configureLogging } from './logging/logger.js';
|
|
34
35
|
export type { Logger } from './logging/types.js';
|
|
35
36
|
export { type McpClientConfig, McpClient } from './mcp.js';
|
|
37
|
+
export { StructuredOutputException } from './structured-output/exceptions.js';
|
|
38
|
+
export * as telemetry from './telemetry/index.js';
|
|
36
39
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAGxC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
// Agent class
|
|
8
8
|
export { Agent } from './agent/agent.js';
|
|
9
|
+
// App state
|
|
10
|
+
export { AppState } from './app-state.js';
|
|
9
11
|
export { AgentResult } from './types/agent.js';
|
|
10
12
|
// Error types
|
|
11
13
|
export { ModelError, ContextWindowOverflowError, MaxTokensError, JsonValidationError, ConcurrentInvocationError, ModelThrottledError, } from './errors.js';
|
|
@@ -19,13 +21,12 @@ export { Tool } from './tools/tool.js';
|
|
|
19
21
|
export { FunctionTool } from './tools/function-tool.js';
|
|
20
22
|
// Tool factory function
|
|
21
23
|
export { tool } from './tools/zod-tool.js';
|
|
24
|
+
export { isModelStreamEvent } from './models/streaming.js';
|
|
22
25
|
export { Model } from './models/model.js';
|
|
23
26
|
// Bedrock model provider
|
|
24
27
|
export { BedrockModel as BedrockModel } from './models/bedrock.js';
|
|
25
28
|
// Hooks system
|
|
26
|
-
export { HookRegistry,
|
|
27
|
-
// ModelStreamEventHook # Disabled for now https://github.com/strands-agents/sdk-typescript/issues/288
|
|
28
|
-
} from './hooks/index.js';
|
|
29
|
+
export { HookRegistry, StreamEvent, HookableEvent, InitializedEvent, BeforeInvocationEvent, AfterInvocationEvent, MessageAddedEvent, BeforeToolCallEvent, AfterToolCallEvent, BeforeModelCallEvent, AfterModelCallEvent, BeforeToolsEvent, AfterToolsEvent, ContentBlockEvent, ModelMessageEvent, ToolResultEvent, ToolStreamUpdateEvent, AgentResultEvent, ModelStreamUpdateEvent, } from './hooks/index.js';
|
|
29
30
|
// Conversation Manager
|
|
30
31
|
export { NullConversationManager } from './conversation-manager/null-conversation-manager.js';
|
|
31
32
|
export { SlidingWindowConversationManager, } from './conversation-manager/sliding-window-conversation-manager.js';
|
|
@@ -33,4 +34,8 @@ export { SlidingWindowConversationManager, } from './conversation-manager/slidin
|
|
|
33
34
|
export { configureLogging } from './logging/logger.js';
|
|
34
35
|
// MCP Client types and implementations
|
|
35
36
|
export { McpClient } from './mcp.js';
|
|
37
|
+
// Structured output
|
|
38
|
+
export { StructuredOutputException } from './structured-output/exceptions.js';
|
|
39
|
+
// Telemetry
|
|
40
|
+
export * as telemetry from './telemetry/index.js';
|
|
36
41
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc;AACd,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc;AACd,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAExC,YAAY;AACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAIzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,cAAc;AACd,OAAO,EACL,UAAU,EACV,0BAA0B,EAC1B,cAAc,EACd,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,aAAa,CAAA;AA6BpB,kBAAkB;AAClB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,OAAO,EACP,SAAS,EACT,oBAAoB,GACrB,MAAM,qBAAqB,CAAA;AAE5B,gBAAgB;AAChB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAiCpF,kBAAkB;AAClB,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEtC,8BAA8B;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,wBAAwB;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAyB1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAK1D,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,yBAAyB;AACzB,OAAO,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAMlE,eAAe;AACf,OAAO,EACL,YAAY,EACZ,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AAGzB,uBAAuB;AACvB,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAA;AAC7F,OAAO,EACL,gCAAgC,GAEjC,MAAM,+DAA+D,CAAA;AAEtE,UAAU;AACV,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGtD,uCAAuC;AACvC,OAAO,EAAwB,SAAS,EAAE,MAAM,UAAU,CAAA;AAE1D,oBAAoB;AACpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAE7E,YAAY;AACZ,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA"}
|
package/dist/src/mcp.d.ts
CHANGED
|
@@ -10,6 +10,8 @@ export interface RuntimeConfig {
|
|
|
10
10
|
/** Arguments for configuring an MCP Client. */
|
|
11
11
|
export type McpClientConfig = RuntimeConfig & {
|
|
12
12
|
transport: Transport;
|
|
13
|
+
/** Disable OpenTelemetry MCP instrumentation. */
|
|
14
|
+
disableMcpInstrumentation?: boolean;
|
|
13
15
|
};
|
|
14
16
|
/** MCP Client for interacting with Model Context Protocol servers. */
|
|
15
17
|
export declare class McpClient {
|
|
@@ -18,6 +20,7 @@ export declare class McpClient {
|
|
|
18
20
|
private _transport;
|
|
19
21
|
private _connected;
|
|
20
22
|
private _client;
|
|
23
|
+
private _disableMcpInstrumentation;
|
|
21
24
|
constructor(args: McpClientConfig);
|
|
22
25
|
get client(): Client;
|
|
23
26
|
/**
|
package/dist/src/mcp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAG9E,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAG7C,8CAA8C;AAC9C,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,+CAA+C;AAC/C,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG;IAC5C,SAAS,EAAE,SAAS,CAAA;IAEpB,iDAAiD;IACjD,yBAAyB,CAAC,EAAE,OAAO,CAAA;CACpC,CAAA;AAED,sEAAsE;AACtE,qBAAa,SAAS;IACpB,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,UAAU,CAAW;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,0BAA0B,CAAS;gBAE/B,IAAI,EAAE,eAAe;IAajC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;;OAMG;IACU,OAAO,CAAC,SAAS,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAe/D;;;;OAIG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxC;;;;OAIG;IACU,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAgB5C;;;;;OAKG;IACU,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;CA2B1E"}
|
package/dist/src/mcp.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
2
2
|
import { takeResult } from '@modelcontextprotocol/sdk/shared/responseMessage.js';
|
|
3
|
+
import { context, propagation, trace } from '@opentelemetry/api';
|
|
3
4
|
import { McpTool } from './tools/mcp-tool.js';
|
|
5
|
+
import { logger } from './logging/index.js';
|
|
4
6
|
/** MCP Client for interacting with Model Context Protocol servers. */
|
|
5
7
|
export class McpClient {
|
|
6
8
|
_clientName;
|
|
@@ -8,6 +10,7 @@ export class McpClient {
|
|
|
8
10
|
_transport;
|
|
9
11
|
_connected;
|
|
10
12
|
_client;
|
|
13
|
+
_disableMcpInstrumentation;
|
|
11
14
|
constructor(args) {
|
|
12
15
|
this._clientName = args.applicationName || 'strands-agents-ts-sdk';
|
|
13
16
|
this._clientVersion = args.applicationVersion || '0.0.1';
|
|
@@ -17,6 +20,7 @@ export class McpClient {
|
|
|
17
20
|
name: this._clientName,
|
|
18
21
|
version: this._clientVersion,
|
|
19
22
|
});
|
|
23
|
+
this._disableMcpInstrumentation = args.disableMcpInstrumentation ?? false;
|
|
20
24
|
}
|
|
21
25
|
get client() {
|
|
22
26
|
return this._client;
|
|
@@ -82,15 +86,48 @@ export class McpClient {
|
|
|
82
86
|
if (typeof args !== 'object' || Array.isArray(args)) {
|
|
83
87
|
throw new Error(`MCP Protocol Error: Tool arguments must be a JSON Object (named parameters). Received: ${Array.isArray(args) ? 'Array' : typeof args}`);
|
|
84
88
|
}
|
|
89
|
+
// Inject OpenTelemetry trace context into tool arguments for distributed tracing
|
|
90
|
+
const enhancedArgs = this._disableMcpInstrumentation ? args : injectTraceContext(args);
|
|
85
91
|
// Using callToolStream which automatically handles both:
|
|
86
92
|
// - Regular (non-task) tools: returns result immediately
|
|
87
93
|
// - Task-augmented tools: handles taskCreated -> taskStatus -> result flow
|
|
88
94
|
const stream = this._client.experimental.tasks.callToolStream({
|
|
89
95
|
name: tool.name,
|
|
90
|
-
arguments:
|
|
96
|
+
arguments: enhancedArgs,
|
|
91
97
|
});
|
|
92
98
|
const result = await takeResult(stream);
|
|
93
99
|
return result;
|
|
94
100
|
}
|
|
95
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Injects OpenTelemetry trace context into MCP tool call arguments.
|
|
104
|
+
* Returns the args with a `_meta` field containing W3C traceparent headers.
|
|
105
|
+
* If no active span exists or injection fails, returns the original args unchanged.
|
|
106
|
+
*
|
|
107
|
+
* @param args - The tool call arguments (must be a non-null object)
|
|
108
|
+
* @returns The args with trace context injected, or the original args on failure
|
|
109
|
+
*/
|
|
110
|
+
function injectTraceContext(args) {
|
|
111
|
+
try {
|
|
112
|
+
const currentContext = context.active();
|
|
113
|
+
const currentSpan = trace.getSpan(currentContext);
|
|
114
|
+
if (!currentSpan || !currentSpan.spanContext().traceId) {
|
|
115
|
+
return args;
|
|
116
|
+
}
|
|
117
|
+
const carrier = {};
|
|
118
|
+
propagation.inject(currentContext, carrier);
|
|
119
|
+
const existingMeta = args._meta;
|
|
120
|
+
const mergedMeta = existingMeta && typeof existingMeta === 'object' && !Array.isArray(existingMeta)
|
|
121
|
+
? { ...existingMeta, ...carrier }
|
|
122
|
+
: carrier;
|
|
123
|
+
return {
|
|
124
|
+
...args,
|
|
125
|
+
_meta: mergedMeta,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
logger.warn(`error=<${error}> | failed to inject trace context into mcp tool call args`);
|
|
130
|
+
return args;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
96
133
|
//# sourceMappingURL=mcp.js.map
|