@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 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 will
54
- override `permissionMode` to `'default'` for that turn and route each tool call through the SDK's
55
- `tool-approval-request` flow.
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
- `canUseTool` callback that:
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 with `interrupt: true` after `ClaudeHarnessFactoryConfig.toolApprovalTimeoutMs`
102
- (default `600_000`, i.e. 10 minutes — matching the Mastra MCP timeout default). When the timeout fires:
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 permission Promise resolves with
105
- `{ behavior: 'deny', message: 'Tool approval timed out.', interrupt: true }`, killing the underlying Claude
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;AAI5C,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,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;KACpD,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
+ {"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
- constructor(logBus?: LogBus);
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
- constructor(logBus) {
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: block.is_error,
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: block.is_error,
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":"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"}
@@ -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 { LLMGatewayClient } from '@salesforce/llm-gateway-sdk';
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
- stream(agentId: string, threadId: string, message: string, streamOptions?: StreamOptions): Promise<ChatStreamResult>;
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