@salesforce/sfdx-agent-harness-claude 0.7.0 → 0.9.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 +20 -9
- package/dist/claude-consumer-tool-bridge.js +15 -0
- package/dist/claude-consumer-tool-bridge.js.map +1 -1
- package/dist/claude-event-adapter.d.ts +26 -2
- package/dist/claude-event-adapter.js +72 -3
- package/dist/claude-event-adapter.js.map +1 -1
- package/dist/claude-harness.d.ts +42 -3
- package/dist/claude-harness.js +284 -52
- package/dist/claude-harness.js.map +1 -1
- package/dist/claude-mcp-bridge.d.ts +8 -2
- package/dist/claude-mcp-bridge.js +21 -5
- package/dist/claude-mcp-bridge.js.map +1 -1
- package/dist/claude-query-options-builder.d.ts +2 -2
- package/dist/claude-query-options-builder.js +25 -15
- package/dist/claude-query-options-builder.js.map +1 -1
- package/dist/claude-skill-mcp-server.js +5 -0
- package/dist/claude-skill-mcp-server.js.map +1 -1
- package/dist/claude-stream-broker.d.ts +170 -5
- package/dist/claude-stream-broker.js +313 -19
- package/dist/claude-stream-broker.js.map +1 -1
- package/dist/mcp-meta-keys.d.ts +15 -0
- package/dist/mcp-meta-keys.js +20 -0
- package/dist/mcp-meta-keys.js.map +1 -0
- package/dist/test/tsconfig.tsbuildinfo +1 -1
- package/dist/transcript.js +20 -0
- package/dist/transcript.js.map +1 -1
- package/package.json +4 -8
package/README.md
CHANGED
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
Claude Agent SDK-backed `AgentHarness` implementation for [`@salesforce/sfdx-agent-sdk`](../sfdx-agent-sdk). Provides
|
|
4
4
|
`ClaudeHarnessFactory`, the entry point consumers pass to `createAgentManager`.
|
|
5
5
|
|
|
6
|
+
> **Closed source.** This package is published to npm under the [Salesforce Public Code License](../../LICENSE.txt) and
|
|
7
|
+
> is for use by Salesforce only.
|
|
8
|
+
|
|
6
9
|
## Install
|
|
7
10
|
|
|
8
11
|
```bash
|
|
@@ -50,14 +53,23 @@ prompt source:
|
|
|
50
53
|
- `'plan'` — planning mode; the model proposes actions without executing.
|
|
51
54
|
|
|
52
55
|
`'default'`, `'dontAsk'`, and `'auto'` are intentionally excluded because they require a prompt UI the harness does not
|
|
53
|
-
provide. For human-in-the-loop gating, set `StreamOptions.requireToolApproval: true` per-call instead — the harness
|
|
54
|
-
|
|
55
|
-
|
|
56
|
+
provide. For human-in-the-loop gating, set `StreamOptions.requireToolApproval: true` per-call instead — the harness
|
|
57
|
+
installs a `PreToolUse` SDK hook for that turn that gates every tool call through the SDK's `tool-approval-request` flow
|
|
58
|
+
regardless of the factory-pinned permission mode.
|
|
59
|
+
|
|
60
|
+
### Multimodal input
|
|
61
|
+
|
|
62
|
+
`chatSession.chat()` / harness `stream()` accept a `MessagePart[]` carrying `image` (PNG/JPEG) and `file` (PDF) parts
|
|
63
|
+
alongside text (see the SDK README for the part shapes). The harness lowers them to Anthropic `image` / `document`
|
|
64
|
+
content blocks sent over the Bedrock-native path. Files are validated pre-stream against the agent's gateway model
|
|
65
|
+
capabilities and caps — an unsupported format, an oversized file, or too many files rejects with
|
|
66
|
+
`AgentSDKError(MULTIMODAL_NOT_SUPPORTED)`; a malformed input part rejects with `INVALID_MESSAGE_CONTENT`. The caps
|
|
67
|
+
mirror the gateway SDK's conservative limits so a file behaves identically here and on the Mastra harness.
|
|
56
68
|
|
|
57
69
|
### Tool approval
|
|
58
70
|
|
|
59
71
|
When `StreamOptions.requireToolApproval: true` is set on `chatSession.send()`/`stream()`, the harness installs a
|
|
60
|
-
`
|
|
72
|
+
`PreToolUse` hook that:
|
|
61
73
|
|
|
62
74
|
1. Emits a `tool-approval-request` event on `ChatStreamResult.eventStream` carrying
|
|
63
75
|
`{ toolCall: { toolCallId, toolName, args } }`.
|
|
@@ -98,12 +110,11 @@ single `error` event (no `finish`) and the underlying Claude subprocess is kille
|
|
|
98
110
|
|
|
99
111
|
#### Approval timeout
|
|
100
112
|
|
|
101
|
-
Each pending approval is auto-denied
|
|
102
|
-
|
|
113
|
+
Each pending approval is auto-denied after `ClaudeHarnessFactoryConfig.toolApprovalTimeoutMs` (default `600_000`, i.e.
|
|
114
|
+
10 minutes — matching the Mastra MCP timeout default). When the timeout fires:
|
|
103
115
|
|
|
104
|
-
- The parked
|
|
105
|
-
|
|
106
|
-
subprocess.
|
|
116
|
+
- The parked `PreToolUse` hook Promise resolves with `permissionDecision: 'deny'` plus `decision: 'block'` so the
|
|
117
|
+
agentic loop terminates instead of letting the model retry the timed-out call.
|
|
107
118
|
- An `error` event with `code: 'tool-approval-timeout'` is emitted on the consumer's currently-active per-turn stream,
|
|
108
119
|
then that stream ends.
|
|
109
120
|
- Any subsequent `approveToolCall` / `declineToolCall` for the timed-out tool throws because the pending approval is no
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
*/
|
|
25
25
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
26
26
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
27
|
+
import { ALWAYS_LOAD_META_KEY } from './mcp-meta-keys.js';
|
|
27
28
|
const BRIDGE_VERSION = '1.0.0';
|
|
28
29
|
/**
|
|
29
30
|
* Logical server name the bridge advertises. The Claude SDK derives the
|
|
@@ -40,10 +41,24 @@ export function buildConsumerToolsBridge(tools, parker) {
|
|
|
40
41
|
if (tools.length === 0)
|
|
41
42
|
return undefined;
|
|
42
43
|
const instance = new McpServer({ name: CONSUMER_TOOLS_BRIDGE_SERVER_NAME, version: BRIDGE_VERSION }, { capabilities: { tools: {} } });
|
|
44
|
+
// Opt every consumer-declared tool out of tool-search deferral (#495).
|
|
45
|
+
// See ARCHITECTURE.md → "Harness-owned in-process MCP tools bypass
|
|
46
|
+
// Claude tool-search deferral".
|
|
47
|
+
//
|
|
48
|
+
// - **Set, not merge.** `ToolDefinition` has no `_meta` field today, so
|
|
49
|
+
// this assignment fully owns the slot. If `ToolDefinition` ever
|
|
50
|
+
// grows a consumer-supplied `_meta`, this would silently drop those
|
|
51
|
+
// keys and would need to switch to a merge.
|
|
52
|
+
// - **Unbounded.** Always-load is unconditional here; every entry in
|
|
53
|
+
// `AgentConfig.tools` lands in the prompt at rest. Fits the dominant
|
|
54
|
+
// consumer pattern (a small handful of consumer tools); a consumer
|
|
55
|
+
// with a very large tool catalog should reach for an external MCP
|
|
56
|
+
// server with `alwaysLoad: false` (the default) instead.
|
|
43
57
|
const mcpTools = tools.map((t) => ({
|
|
44
58
|
name: t.name,
|
|
45
59
|
description: t.description ?? '',
|
|
46
60
|
inputSchema: t.inputSchema,
|
|
61
|
+
_meta: { [ALWAYS_LOAD_META_KEY]: true },
|
|
47
62
|
}));
|
|
48
63
|
instance.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: mcpTools }));
|
|
49
64
|
instance.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-consumer-tool-bridge.js","sourceRoot":"","sources":["../src/claude-consumer-tool-bridge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EACH,qBAAqB,EACrB,sBAAsB,GAGzB,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-consumer-tool-bridge.js","sourceRoot":"","sources":["../src/claude-consumer-tool-bridge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EACH,qBAAqB,EACrB,sBAAsB,GAGzB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B;;;;GAIG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,+BAA+B,CAAC;AAajF;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACpC,KAAuB,EACvB,MAA8B;IAE9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAEzC,MAAM,QAAQ,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,iCAAiC,EAAE,OAAO,EAAE,cAAc,EAAE,EACpE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAClC,CAAC;IAEF,uEAAuE;IACvE,mEAAmE;IACnE,gCAAgC;IAChC,EAAE;IACF,wEAAwE;IACxE,kEAAkE;IAClE,sEAAsE;IACtE,8CAA8C;IAC9C,qEAAqE;IACrE,uEAAuE;IACvE,qEAAqE;IACrE,oEAAoE;IACpE,2DAA2D;IAC3D,MAAM,QAAQ,GAAW,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;QAChC,WAAW,EAAE,CAAC,CAAC,WAAkC;QACjD,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE;KAC1C,CAAC,CAAC,CAAC;IAEJ,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAE7F,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAA2B,EAAE;QAChG,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/D,MAAM,IAAI,GAAG,CAAC,QAAQ,IAAI,EAAE,CAA4B,CAAC;QAEzD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7D,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxC,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,iCAAiC,EAAE,QAAQ,EAAE,CAAC;AAC9E,CAAC;AAED,SAAS,eAAe,CAAC,MAAe;IACpC,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;AACL,CAAC"}
|
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
import type { SDKMessage } from '@anthropic-ai/claude-agent-sdk';
|
|
2
|
-
import type { ChatEvent, MessagePart } from '@salesforce/sfdx-agent-sdk';
|
|
2
|
+
import type { ChatEvent, McpToolAnnotations, MessagePart } from '@salesforce/sfdx-agent-sdk';
|
|
3
3
|
import type { LogBus } from '@salesforce/agentic-common';
|
|
4
|
+
/**
|
|
5
|
+
* Resolves the originating MCP server name and (optional) annotations for a
|
|
6
|
+
* Claude-namespaced tool name (`mcp__<server>__<tool>`). Returns `undefined`
|
|
7
|
+
* for non-MCP tools (built-ins like `Bash`, in-process bridges that aren't in
|
|
8
|
+
* the host-owned MCP catalog) so the adapter leaves both fields off the
|
|
9
|
+
* emitted ChatEvent — matching Mastra's shape on consumer-declared / workspace
|
|
10
|
+
* tools. See `claude-harness.ts` → `lookupMcpToolMetadata` for the wiring
|
|
11
|
+
* site.
|
|
12
|
+
*/
|
|
13
|
+
export type McpToolMetadataLookup = (toolName: string) => {
|
|
14
|
+
serverName: string;
|
|
15
|
+
annotations?: McpToolAnnotations;
|
|
16
|
+
} | undefined;
|
|
4
17
|
export declare class ClaudeEventAdapter {
|
|
5
18
|
private started;
|
|
6
19
|
private stepIndex;
|
|
@@ -20,7 +33,8 @@ export declare class ClaudeEventAdapter {
|
|
|
20
33
|
*/
|
|
21
34
|
private deferredStepFinish?;
|
|
22
35
|
private readonly logBus?;
|
|
23
|
-
|
|
36
|
+
private readonly lookupMcpToolMetadata?;
|
|
37
|
+
constructor(logBus?: LogBus, lookupMcpToolMetadata?: McpToolMetadataLookup);
|
|
24
38
|
mapMessage(msg: SDKMessage): ChatEvent[];
|
|
25
39
|
/**
|
|
26
40
|
* Native (non-MCP) tool results arrive on `user`-typed SDKMessages whose
|
|
@@ -33,6 +47,16 @@ export declare class ClaudeEventAdapter {
|
|
|
33
47
|
private mapStreamEvent;
|
|
34
48
|
private mapContentBlockStart;
|
|
35
49
|
private mapContentBlockStop;
|
|
50
|
+
/**
|
|
51
|
+
* Looks up the originating MCP server name and (optional) annotations for
|
|
52
|
+
* a tool name and returns them in the shape consumers spread onto a
|
|
53
|
+
* tool-call / tool-result / tool-approval-request ChatEvent. When no
|
|
54
|
+
* lookup is wired (e.g. unit tests that construct the adapter without
|
|
55
|
+
* one) or the tool is not in the agent's MCP catalog (built-ins,
|
|
56
|
+
* in-process bridges, consumer-declared tools), returns an empty object
|
|
57
|
+
* so the spread is a no-op and both fields stay `undefined`.
|
|
58
|
+
*/
|
|
59
|
+
private enrichmentFor;
|
|
36
60
|
private mapMessageDelta;
|
|
37
61
|
/**
|
|
38
62
|
* Decrement the outstanding-tool-result set for `toolCallId` and, when
|
|
@@ -21,8 +21,10 @@ export class ClaudeEventAdapter {
|
|
|
21
21
|
*/
|
|
22
22
|
deferredStepFinish;
|
|
23
23
|
logBus;
|
|
24
|
-
|
|
24
|
+
lookupMcpToolMetadata;
|
|
25
|
+
constructor(logBus, lookupMcpToolMetadata) {
|
|
25
26
|
this.logBus = logBus;
|
|
27
|
+
this.lookupMcpToolMetadata = lookupMcpToolMetadata;
|
|
26
28
|
}
|
|
27
29
|
mapMessage(msg) {
|
|
28
30
|
const events = [];
|
|
@@ -60,12 +62,19 @@ export class ClaudeEventAdapter {
|
|
|
60
62
|
if (block.type !== 'tool_result' || typeof block.tool_use_id !== 'string')
|
|
61
63
|
continue;
|
|
62
64
|
const toolName = this.toolCallNames.get(block.tool_use_id) ?? 'unknown';
|
|
65
|
+
const isError = block.is_error === true;
|
|
63
66
|
events.push({
|
|
64
67
|
type: 'tool-result',
|
|
65
68
|
toolCallId: block.tool_use_id,
|
|
66
69
|
toolName,
|
|
67
70
|
result: block.content,
|
|
68
|
-
isError
|
|
71
|
+
isError,
|
|
72
|
+
...(isError && block.content
|
|
73
|
+
? {
|
|
74
|
+
error: new Error(typeof block.content === 'string' ? block.content : JSON.stringify(block.content)),
|
|
75
|
+
}
|
|
76
|
+
: {}),
|
|
77
|
+
...this.enrichmentFor(toolName),
|
|
69
78
|
});
|
|
70
79
|
this.consumePendingToolResult(block.tool_use_id, events);
|
|
71
80
|
}
|
|
@@ -127,12 +136,19 @@ export class ClaudeEventAdapter {
|
|
|
127
136
|
}
|
|
128
137
|
else if (block.type === 'mcp_tool_result') {
|
|
129
138
|
const toolName = this.toolCallNames.get(block.tool_use_id) ?? 'unknown';
|
|
139
|
+
const isError = block.is_error === true;
|
|
130
140
|
events.push({
|
|
131
141
|
type: 'tool-result',
|
|
132
142
|
toolCallId: block.tool_use_id,
|
|
133
143
|
toolName,
|
|
134
144
|
result: block.content,
|
|
135
|
-
isError
|
|
145
|
+
isError,
|
|
146
|
+
...(isError && block.content
|
|
147
|
+
? {
|
|
148
|
+
error: new Error(typeof block.content === 'string' ? block.content : JSON.stringify(block.content)),
|
|
149
|
+
}
|
|
150
|
+
: {}),
|
|
151
|
+
...this.enrichmentFor(toolName),
|
|
136
152
|
});
|
|
137
153
|
this.consumePendingToolResult(block.tool_use_id, events);
|
|
138
154
|
}
|
|
@@ -157,8 +173,27 @@ export class ClaudeEventAdapter {
|
|
|
157
173
|
toolCallId: pending.id,
|
|
158
174
|
toolName: pending.name,
|
|
159
175
|
args,
|
|
176
|
+
...this.enrichmentFor(pending.name),
|
|
160
177
|
});
|
|
161
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* Looks up the originating MCP server name and (optional) annotations for
|
|
181
|
+
* a tool name and returns them in the shape consumers spread onto a
|
|
182
|
+
* tool-call / tool-result / tool-approval-request ChatEvent. When no
|
|
183
|
+
* lookup is wired (e.g. unit tests that construct the adapter without
|
|
184
|
+
* one) or the tool is not in the agent's MCP catalog (built-ins,
|
|
185
|
+
* in-process bridges, consumer-declared tools), returns an empty object
|
|
186
|
+
* so the spread is a no-op and both fields stay `undefined`.
|
|
187
|
+
*/
|
|
188
|
+
enrichmentFor(toolName) {
|
|
189
|
+
const metadata = this.lookupMcpToolMetadata?.(toolName);
|
|
190
|
+
if (!metadata)
|
|
191
|
+
return {};
|
|
192
|
+
return {
|
|
193
|
+
serverName: metadata.serverName,
|
|
194
|
+
...(metadata.annotations ? { annotations: metadata.annotations } : {}),
|
|
195
|
+
};
|
|
196
|
+
}
|
|
162
197
|
mapMessageDelta(event, events) {
|
|
163
198
|
const stepFinish = {
|
|
164
199
|
type: 'step-finish',
|
|
@@ -228,11 +263,13 @@ function buildResultUsage(usage) {
|
|
|
228
263
|
return undefined;
|
|
229
264
|
const safeInput = inputTokens ?? 0;
|
|
230
265
|
const safeOutput = outputTokens ?? 0;
|
|
266
|
+
const cacheWriteInputTokens = usage?.cache_creation_input_tokens ? usage.cache_creation_input_tokens : undefined;
|
|
231
267
|
return {
|
|
232
268
|
inputTokens: safeInput,
|
|
233
269
|
outputTokens: safeOutput,
|
|
234
270
|
totalTokens: safeInput + safeOutput,
|
|
235
271
|
...(cachedInputTokens ? { cachedInputTokens } : {}),
|
|
272
|
+
...(cacheWriteInputTokens ? { cacheWriteInputTokens } : {}),
|
|
236
273
|
};
|
|
237
274
|
}
|
|
238
275
|
/**
|
|
@@ -246,6 +283,7 @@ function buildMessageDeltaUsage(usage) {
|
|
|
246
283
|
const inputTokens = usage.input_tokens ?? undefined;
|
|
247
284
|
const outputTokens = usage.output_tokens ?? undefined;
|
|
248
285
|
const cachedInputTokens = usage.cache_read_input_tokens ?? undefined;
|
|
286
|
+
const cacheWriteInputTokens = usage.cache_creation_input_tokens ? usage.cache_creation_input_tokens : undefined;
|
|
249
287
|
if (inputTokens === undefined && outputTokens === undefined)
|
|
250
288
|
return undefined;
|
|
251
289
|
const safeInput = inputTokens ?? 0;
|
|
@@ -255,6 +293,7 @@ function buildMessageDeltaUsage(usage) {
|
|
|
255
293
|
outputTokens: safeOutput,
|
|
256
294
|
totalTokens: safeInput + safeOutput,
|
|
257
295
|
...(cachedInputTokens ? { cachedInputTokens } : {}),
|
|
296
|
+
...(cacheWriteInputTokens ? { cacheWriteInputTokens } : {}),
|
|
258
297
|
};
|
|
259
298
|
}
|
|
260
299
|
/**
|
|
@@ -333,6 +372,36 @@ export function mapSessionMessageContent(message) {
|
|
|
333
372
|
});
|
|
334
373
|
}
|
|
335
374
|
break;
|
|
375
|
+
case 'image': {
|
|
376
|
+
// Round-trip an Anthropic base64 image block back to an SDK ImagePart. Only
|
|
377
|
+
// base64 PNG/JPEG map cleanly; other shapes (URL sources, gif/webp) fall through to
|
|
378
|
+
// the placeholder default so we never inline a giant blob as text.
|
|
379
|
+
const src = block.source;
|
|
380
|
+
if (src?.type === 'base64' &&
|
|
381
|
+
typeof src.data === 'string' &&
|
|
382
|
+
(src.media_type === 'image/png' || src.media_type === 'image/jpeg')) {
|
|
383
|
+
parts.push({ type: 'image', mimeType: src.media_type, data: src.data });
|
|
384
|
+
}
|
|
385
|
+
else {
|
|
386
|
+
parts.push({ type: 'text', text: '[image]' });
|
|
387
|
+
}
|
|
388
|
+
break;
|
|
389
|
+
}
|
|
390
|
+
case 'document': {
|
|
391
|
+
const src = block.source;
|
|
392
|
+
if (src?.type === 'base64' && typeof src.data === 'string' && src.media_type === 'application/pdf') {
|
|
393
|
+
parts.push({
|
|
394
|
+
type: 'file',
|
|
395
|
+
mimeType: src.media_type,
|
|
396
|
+
data: src.data,
|
|
397
|
+
...(typeof block.title === 'string' ? { fileName: block.title } : {}),
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
else {
|
|
401
|
+
parts.push({ type: 'text', text: '[document]' });
|
|
402
|
+
}
|
|
403
|
+
break;
|
|
404
|
+
}
|
|
336
405
|
default:
|
|
337
406
|
parts.push({ type: 'text', text: JSON.stringify(block) });
|
|
338
407
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-event-adapter.js","sourceRoot":"","sources":["../src/claude-event-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude-event-adapter.js","sourceRoot":"","sources":["../src/claude-event-adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwCH,MAAM,OAAO,kBAAkB;IACnB,OAAO,GAAG,KAAK,CAAC;IAChB,SAAS,GAAG,CAAC,CAAC;IACd,gBAAgB,GAAG,IAAI,GAAG,EAA2B,CAAC;IACtD,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD;;;;;OAKG;IACK,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9C;;;;OAIG;IACK,kBAAkB,CAAmB;IAC5B,MAAM,CAAU;IAChB,qBAAqB,CAAyB;IAE/D,YAAY,MAAe,EAAE,qBAA6C;QACtE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;IACvD,CAAC;IAED,UAAU,CAAC,GAAe;QACtB,MAAM,MAAM,GAAgB,EAAE,CAAC;QAE/B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,GAAyB,EAAE,MAAM,CAAC,CAAC;QAC3D,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,2BAA2B,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACzE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QAChF,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACK,cAAc,CAAC,GAAkC,EAAE,MAAmB;QAC1E,MAAM,OAAO,GAAI,GAAG,CAAC,OAA6C,EAAE,OAAO,CAAC;QAC5E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO;QACpC,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,QAA0F,CAAC;YACzG,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;gBAAE,SAAS;YACpF,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC;YACxE,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,aAAa;gBACnB,UAAU,EAAE,KAAK,CAAC,WAAW;gBAC7B,QAAQ;gBACR,MAAM,EAAE,KAAK,CAAC,OAAO;gBACrB,OAAO;gBACP,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;oBACxB,CAAC,CAAC;wBACI,KAAK,EAAE,IAAI,KAAK,CACZ,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CACpF;qBACJ;oBACH,CAAC,CAAC,EAAE,CAAC;gBACT,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;aAClC,CAAC,CAAC;YACH,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC7D,CAAC;IACL,CAAC;IAEO,SAAS,CAAC,GAAqB,EAAE,MAAmB;QACxD,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,QAAQ;gBACd,YAAY,EAAE,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC;gBAC5C,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9B,CAAC,CAAC;YACH,OAAO;QACX,CAAC;QACD,IAAI,GAAG,CAAC,OAAO,KAAK,iBAAiB,EAAE,CAAC;YACpC,sEAAsE;YACtE,wEAAwE;YACxE,kCAAkC;YAClC,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,QAAQ;gBACd,YAAY,EAAE,WAAW;gBACzB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9B,CAAC,CAAC;YACH,OAAO;QACX,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,iBAAiB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1F,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3D,CAAC;IAEO,cAAc,CAAC,GAAuB,EAAE,MAAmB;QAC/D,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;QAEtB,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACnE,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC9C,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC9C,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YAC7C,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACxC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,4BAA4B,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5E,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QAClF,CAAC;IACL,CAAC;IAEO,oBAAoB,CAAC,KAAoC,EAAE,MAAmB;QAClF,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC;QAClC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC5B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACzF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC;YACxE,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,aAAa;gBACnB,UAAU,EAAE,KAAK,CAAC,WAAW;gBAC7B,QAAQ;gBACR,MAAM,EAAE,KAAK,CAAC,OAAO;gBACrB,OAAO;gBACP,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;oBACxB,CAAC,CAAC;wBACI,KAAK,EAAE,IAAI,KAAK,CACZ,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CACpF;qBACJ;oBACH,CAAC,CAAC,EAAE,CAAC;gBACT,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;aAClC,CAAC,CAAC;YACH,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC7D,CAAC;IACL,CAAC;IAEO,mBAAmB,CAAC,KAAmC,EAAE,MAAmB;QAChF,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,IAAI,GAA4B,EAAE,CAAC;QACvC,IAAI,CAAC;YACD,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACL,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,qCAAqC,EAAE;gBACrD,UAAU,EAAE,OAAO,CAAC,EAAE;gBACtB,QAAQ,EAAE,OAAO,CAAC,IAAI;aACzB,CAAC,CAAC;QACP,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,WAAW;YACjB,UAAU,EAAE,OAAO,CAAC,EAAE;YACtB,QAAQ,EAAE,OAAO,CAAC,IAAI;YACtB,IAAI;YACJ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC;SACtC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;OAQG;IACK,aAAa,CAAC,QAAgB;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,OAAO;YACH,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzE,CAAC;IACN,CAAC;IAEO,eAAe,CAAC,KAA+B,EAAE,MAAmB;QACxE,MAAM,UAAU,GAAoB;YAChC,IAAI,EAAE,aAAa;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;YACpD,KAAK,EAAE,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC;SAC7C,CAAC;QAEF,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAClC,0DAA0D;YAC1D,8DAA8D;YAC9D,8DAA8D;YAC9D,8DAA8D;YAC9D,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC;YACrC,OAAO;QACX,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACK,wBAAwB,CAAC,UAAkB,EAAE,MAAmB;QACpE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC/D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACrC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;YACpC,IAAI,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC;IACL,CAAC;IAEO,oBAAoB,CAAC,KAAoC,EAAE,MAAmB;QAClF,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QAExB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnE,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvD,IAAI,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC;YAC3C,CAAC;QACL,CAAC;IACL,CAAC;CACJ;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,gBAAgB,CAAC,KAAgC;IACtD,MAAM,WAAW,GAAG,KAAK,EAAE,YAAY,IAAI,SAAS,CAAC;IACrD,MAAM,YAAY,GAAG,KAAK,EAAE,aAAa,IAAI,SAAS,CAAC;IACvD,MAAM,iBAAiB,GAAG,KAAK,EAAE,uBAAuB,IAAI,SAAS,CAAC;IACtE,IAAI,WAAW,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC9E,MAAM,SAAS,GAAG,WAAW,IAAI,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,YAAY,IAAI,CAAC,CAAC;IACrC,MAAM,qBAAqB,GAAG,KAAK,EAAE,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,SAAS,CAAC;IACjH,OAAO;QACH,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,UAAU;QACxB,WAAW,EAAE,SAAS,GAAG,UAAU;QACnC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9D,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,SAAS,sBAAsB,CAAC,KAAwC;IACpE,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,IAAI,SAAS,CAAC;IACpD,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,IAAI,SAAS,CAAC;IACtD,MAAM,iBAAiB,GAAG,KAAK,CAAC,uBAAuB,IAAI,SAAS,CAAC;IACrE,MAAM,qBAAqB,GAAG,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,SAAS,CAAC;IAChH,IAAI,WAAW,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC9E,MAAM,SAAS,GAAG,WAAW,IAAI,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,YAAY,IAAI,CAAC,CAAC;IACrC,OAAO;QACH,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,UAAU;QACxB,WAAW,EAAE,SAAS,GAAG,UAAU;QACnC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9D,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,UAAyB;IAC5C,QAAQ,UAAU,EAAE,CAAC;QACjB,KAAK,UAAU,CAAC;QAChB,KAAK,eAAe;YAChB,qEAAqE;YACrE,iEAAiE;YACjE,OAAO,MAAM,CAAC;QAClB,KAAK,YAAY;YACb,OAAO,QAAQ,CAAC;QACpB,KAAK,UAAU;YACX,OAAO,YAAY,CAAC;QACxB,KAAK,SAAS;YACV,OAAO,gBAAgB,CAAC;QAC5B,mEAAmE;QACnE,sEAAsE;QACtE;YACI,OAAO,OAAO,CAAC;IACvB,CAAC;AACL,CAAC;AAmBD,SAAS,oBAAoB,CAAC,OAAgB;IAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC3C,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;QACjE,MAAM,OAAO,GAAI,OAAgC,CAAC,OAAO,CAAC;QAC1D,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1E,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACrD,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAEhD,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAE5C,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,MAAM;gBACP,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;oBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACnF,MAAM;YACV,KAAK,UAAU;gBACX,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;oBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAChG,MAAM;YACV,KAAK,UAAU;gBACX,IAAI,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACzB,sFAAsF;oBACtF,KAAK,CAAC,IAAI,CAAC;wBACP,IAAI,EAAE,WAAW;wBACjB,UAAU,EAAE,KAAK,CAAC,EAAE;wBACpB,QAAQ,EAAE,KAAK,CAAC,IAAI;wBACpB,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAA4B;qBACvD,CAAC,CAAC;gBACP,CAAC;gBACD,MAAM;YACV,KAAK,aAAa;gBACd,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;oBACpB,KAAK,CAAC,IAAI,CAAC;wBACP,IAAI,EAAE,aAAa;wBACnB,UAAU,EAAE,KAAK,CAAC,WAAW;wBAC7B,QAAQ,EAAE,EAAE;wBACZ,MAAM,EAAE,KAAK,CAAC,OAAO;qBACxB,CAAC,CAAC;gBACP,CAAC;gBACD,MAAM;YACV,KAAK,OAAO,CAAC,CAAC,CAAC;gBACX,4EAA4E;gBAC5E,oFAAoF;gBACpF,mEAAmE;gBACnE,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;gBACzB,IACI,GAAG,EAAE,IAAI,KAAK,QAAQ;oBACtB,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;oBAC5B,CAAC,GAAG,CAAC,UAAU,KAAK,WAAW,IAAI,GAAG,CAAC,UAAU,KAAK,YAAY,CAAC,EACrE,CAAC;oBACC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5E,CAAC;qBAAM,CAAC;oBACJ,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBAClD,CAAC;gBACD,MAAM;YACV,CAAC;YACD,KAAK,UAAU,CAAC,CAAC,CAAC;gBACd,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;gBACzB,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,iBAAiB,EAAE,CAAC;oBACjG,KAAK,CAAC,IAAI,CAAC;wBACP,IAAI,EAAE,MAAM;wBACZ,QAAQ,EAAE,GAAG,CAAC,UAAU;wBACxB,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,GAAG,CAAC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACxE,CAAC,CAAC;gBACP,CAAC;qBAAM,CAAC;oBACJ,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;gBACrD,CAAC;gBACD,MAAM;YACV,CAAC;YACD;gBACI,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC9D,CAAC"}
|
package/dist/claude-harness.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Clock, type LogRecord, type UniqueIDGenerator, type Unsubscribe } from '@salesforce/agentic-common';
|
|
2
|
-
import { type AgentHarness, type ChatStreamResult, type HarnessAgentConfig, type McpServerInfo, type Message, type StreamOptions, type TelemetryEventCallback, type ToolResultInfo } from '@salesforce/sfdx-agent-sdk';
|
|
3
|
-
import type
|
|
2
|
+
import { type AgentHarness, type ChatStreamResult, type HarnessAgentConfig, type McpServerInfo, type Message, type MessagePart, type StreamOptions, type TelemetryEventCallback, type ToolResultInfo } from '@salesforce/sfdx-agent-sdk';
|
|
3
|
+
import { type LLMGatewayClient } from '@salesforce/llm-gateway-sdk';
|
|
4
4
|
import { type SessionStore } from '@anthropic-ai/claude-agent-sdk';
|
|
5
5
|
import type { ClaudeQueryEnvBuilder } from './claude-query-env-builder.js';
|
|
6
6
|
import type { ClaudeQueryOptionsBuilder } from './claude-query-options-builder.js';
|
|
@@ -144,6 +144,21 @@ export declare class ClaudeHarness implements AgentHarness {
|
|
|
144
144
|
* non-empty paths.
|
|
145
145
|
*/
|
|
146
146
|
private destroyThreadBestEffort;
|
|
147
|
+
/**
|
|
148
|
+
* Pattern of upstream-Bedrock SSE-truncation strings the gateway
|
|
149
|
+
* occasionally surfaces as the assistant's `result.result` text instead
|
|
150
|
+
* of throwing. Observed empirically against the Salesforce LLM Gateway's
|
|
151
|
+
* Bedrock-Claude path: the same string also surfaces as a late-throw on
|
|
152
|
+
* the chat-stream path (see PR #424). When `summarize()` sees this
|
|
153
|
+
* pattern in the result body it retries instead of returning the error
|
|
154
|
+
* string verbatim as the "summary."
|
|
155
|
+
*
|
|
156
|
+
* Temporary workaround for an upstream LLM Gateway regression (#396 /
|
|
157
|
+
* #453 / #479). Remove together with the `stream()` post-finish
|
|
158
|
+
* swallow once the gateway team confirms the trailing-JSON shape is
|
|
159
|
+
* fixed end-to-end — cleanup tracked by #474.
|
|
160
|
+
*/
|
|
161
|
+
private static readonly UPSTREAM_TRUNCATION_PATTERN;
|
|
147
162
|
/**
|
|
148
163
|
* Issue a single non-agentic model call (`maxTurns: 1`) for one-shot
|
|
149
164
|
* summarization. Used internally by `compactThread()`; not part of the
|
|
@@ -154,6 +169,14 @@ export declare class ClaudeHarness implements AgentHarness {
|
|
|
154
169
|
* don't want the summary call leaking into the harness store.
|
|
155
170
|
* - no MCP servers, no consumer tools, no rules append, no
|
|
156
171
|
* `canUseTool` broker — the task is text-in / text-out.
|
|
172
|
+
*
|
|
173
|
+
* Retries up to 2 times on the upstream Bedrock SSE-truncation pattern
|
|
174
|
+
* (see {@link UPSTREAM_TRUNCATION_PATTERN}). The Salesforce LLM Gateway's
|
|
175
|
+
* Bedrock-Claude path occasionally returns a successful `result` whose
|
|
176
|
+
* body is the upstream truncation error string rather than a real
|
|
177
|
+
* summary; without retry the harness would happily seed the new thread
|
|
178
|
+
* with that error string. Each retry uses a fresh ephemeral session id
|
|
179
|
+
* and fresh `query()` invocation.
|
|
157
180
|
*/
|
|
158
181
|
private summarize;
|
|
159
182
|
/**
|
|
@@ -163,7 +186,23 @@ export declare class ClaudeHarness implements AgentHarness {
|
|
|
163
186
|
* summarized again into the final summary.
|
|
164
187
|
*/
|
|
165
188
|
private summarizeInChunks;
|
|
166
|
-
|
|
189
|
+
/**
|
|
190
|
+
* Validates a `MessagePart[]` and lowers it to a single-message `AsyncIterable<SDKUserMessage>`
|
|
191
|
+
* carrying Anthropic content blocks (`text`, `image`, `document`).
|
|
192
|
+
*
|
|
193
|
+
* Pre-stream validation and the input-part guard live in the SDK's {@link lowerStreamInput}:
|
|
194
|
+
* `image` / `file` parts are validated against the agent's gateway `Model.supportedFormats` and
|
|
195
|
+
* the global gateway caps via the shared `validateMultimodalFiles`, so a file is accepted or
|
|
196
|
+
* rejected identically on the Claude and Mastra paths (we deliberately mirror the SDK's
|
|
197
|
+
* conservative caps even though the underlying Bedrock models may accept more), and a
|
|
198
|
+
* `reasoning` / `tool-call` / `tool-result` part rejects with `INVALID_MESSAGE_CONTENT`. This
|
|
199
|
+
* method only supplies the Anthropic-specific lowering of each part.
|
|
200
|
+
*
|
|
201
|
+
* Validation and block construction run synchronously (the returned generator only yields the
|
|
202
|
+
* pre-built message) so failures reject the caller's `stream()` promise before any query starts.
|
|
203
|
+
*/
|
|
204
|
+
private buildMultimodalPrompt;
|
|
205
|
+
stream(agentId: string, threadId: string, message: string | MessagePart[], streamOptions?: StreamOptions): Promise<ChatStreamResult>;
|
|
167
206
|
/**
|
|
168
207
|
* Build the per-stream MCP bridge configs the Claude subprocess will
|
|
169
208
|
* receive on `query({ options.mcpServers })`. Each external-server
|