@salesforce/sfdx-agent-harness-claude 0.12.0 → 0.13.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/CHANGELOG.md +24 -0
- package/README.md +89 -2
- package/dist/claude-approval-coordinator.js +1 -1
- package/dist/claude-approval-coordinator.js.map +1 -1
- package/dist/claude-config.d.ts +94 -0
- package/dist/claude-config.js +6 -0
- package/dist/claude-config.js.map +1 -0
- package/dist/claude-harness-factory.d.ts +4 -3
- package/dist/claude-harness-factory.js.map +1 -1
- package/dist/claude-harness.d.ts +74 -1
- package/dist/claude-harness.js +231 -23
- package/dist/claude-harness.js.map +1 -1
- package/dist/claude-mcp-bridge.d.ts +11 -8
- package/dist/claude-mcp-bridge.js +21 -16
- package/dist/claude-mcp-bridge.js.map +1 -1
- package/dist/claude-query-options-builder.d.ts +1 -1
- package/dist/claude-query-options-builder.js +32 -23
- package/dist/claude-query-options-builder.js.map +1 -1
- package/dist/claude-skill-mcp-server.d.ts +32 -12
- package/dist/claude-skill-mcp-server.js +146 -66
- package/dist/claude-skill-mcp-server.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-error-classifier.js +2 -2
- package/dist/mcp-error-classifier.js.map +1 -1
- package/dist/skill-ranker.d.ts +35 -0
- package/dist/skill-ranker.js +106 -0
- package/dist/skill-ranker.js.map +1 -0
- package/dist/test/tsconfig.tsbuildinfo +1 -1
- package/package.json +15 -14
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to `@salesforce/sfdx-agent-harness-claude` are documented in this file.
|
|
4
|
+
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
5
|
+
|
|
6
|
+
## [0.13.0] - 2026-06-09
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
- **release**: auto-generate per-package CHANGELOG.md on publish ([#567](https://github.com/forcedotcom/agentic-dx/pull/567))
|
|
10
|
+
- unify tool-exposure policy under toolSearch.alwaysActive ([#566](https://github.com/forcedotcom/agentic-dx/pull/566))
|
|
11
|
+
- add ClaudeAgentConfig.skillSearch + decouple Mastra skillSearch from toolSearch ([#563](https://github.com/forcedotcom/agentic-dx/pull/563))
|
|
12
|
+
- **agent-sdk**: preserve MCP clients across updateAgentConfig ([#560](https://github.com/forcedotcom/agentic-dx/pull/560))
|
|
13
|
+
- **agent-sdk,harness-claude,harness-mastra**: first-class tool-result redaction ([#546](https://github.com/forcedotcom/agentic-dx/pull/546))
|
|
14
|
+
|
|
15
|
+
### Fixes
|
|
16
|
+
- **harness-claude,harness-mastra**: align event/log payload shapes ([#562](https://github.com/forcedotcom/agentic-dx/pull/562))
|
|
17
|
+
|
|
18
|
+
### Chores
|
|
19
|
+
- **harness-claude,harness-mastra**: re-enable monorepoLintPack at four offender sites ([#561](https://github.com/forcedotcom/agentic-dx/pull/561))
|
|
20
|
+
- **deps-dev**: bump the eslint group across 1 directory with 2 updates ([#553](https://github.com/forcedotcom/agentic-dx/pull/553))
|
|
21
|
+
- **deps-dev**: bump the dev-dependencies group across 1 directory with 4 updates ([#536](https://github.com/forcedotcom/agentic-dx/pull/536))
|
|
22
|
+
- **deps-dev**: bump the vitest group across 1 directory with 3 updates ([#552](https://github.com/forcedotcom/agentic-dx/pull/552))
|
|
23
|
+
- **deps**: bump @anthropic-ai/claude-agent-sdk from 0.3.148 to 0.3.160 ([#540](https://github.com/forcedotcom/agentic-dx/pull/540))
|
|
24
|
+
|
package/README.md
CHANGED
|
@@ -36,6 +36,10 @@ internal architecture, see [ARCHITECTURE.md](ARCHITECTURE.md).
|
|
|
36
36
|
| `ClaudeHarnessFactory` | class | `HarnessFactory` that produces a Claude-backed `AgentHarness` bound to a storage root. |
|
|
37
37
|
| `ClaudeHarnessFactoryConfig` | interface | Configuration for `ClaudeHarnessFactory` (`resolver`, `permissionMode`, optional `queryDefaults`, `toolApprovalTimeoutMs`, `bypassApprovalTools`). |
|
|
38
38
|
| `ClaudeHarnessPermissionMode` | type | Narrowed permission mode: `'bypassPermissions' \| 'acceptEdits' \| 'plan'`. |
|
|
39
|
+
| `ClaudeAgentHarness` | type | Branded `AgentHarness` subtype carrying the Claude-specific config inference. Inferred at `manager.createAgent` automatically — annotation rarely needed. |
|
|
40
|
+
| `ClaudeAgentConfig` | type | `AgentConfig` extended with Claude-only fields (`skillSearch`, `toolSearch`). |
|
|
41
|
+
| `ClaudeSkillSearchConfig` | type | Shape of `ClaudeAgentConfig.skillSearch` (`topK`). Opts the in-process `skill_bridge` MCP server into search-on-demand mode. |
|
|
42
|
+
| `ClaudeToolSearchConfig` | type | Shape of `ClaudeAgentConfig.toolSearch` (`alwaysActive`). Stamps `_meta['anthropic/alwaysLoad']` on matching tools so they bypass Claude tool-search deferral. |
|
|
39
43
|
| `ClaudeTransportResolver` | interface | Strategy for resolving transport env, auth, and native model ID for the subprocess. |
|
|
40
44
|
| `ClaudeTransportResolverResult` | type | Return type of `ClaudeTransportResolver.resolve()` (`env` + `nativeModelId`). |
|
|
41
45
|
| `ClaudeQueryDefaults` | type | Consumer-overridable defaults for the Claude `query()` call (excludes `model`). |
|
|
@@ -57,6 +61,74 @@ provide. For human-in-the-loop gating, set `StreamOptions.requireToolApproval: t
|
|
|
57
61
|
installs a `PreToolUse` SDK hook for that turn that gates every tool call through the SDK's `tool-approval-request` flow
|
|
58
62
|
regardless of the factory-pinned permission mode.
|
|
59
63
|
|
|
64
|
+
### Skill search
|
|
65
|
+
|
|
66
|
+
`AgentConfig.skills` is a cross-harness field; both Mastra and Claude surface configured skills to the model. By default
|
|
67
|
+
the Claude harness exposes the catalog via the in-process `skill_bridge` MCP server's `load_skill` tool, whose
|
|
68
|
+
description enumerates skill names and descriptions so the model can pick directly. That shape is the right call at
|
|
69
|
+
small N (no extra round-trip).
|
|
70
|
+
|
|
71
|
+
For larger catalogs, set `ClaudeAgentConfig.skillSearch` to switch the same in-process server into a
|
|
72
|
+
`search_skills(query) → topK` + `load_skill(name)` shape. The catalog is dropped from `load_skill`'s description so it
|
|
73
|
+
never sits in the prompt at rest, and the model is forced to discover skills via search. The opt-in field mirrors
|
|
74
|
+
`MastraAgentConfig.skillSearch` so cross-harness consumers configure the on-demand path the same way on both harnesses.
|
|
75
|
+
|
|
76
|
+
```ts
|
|
77
|
+
const agent = await manager.createAgent(projectRoot, {
|
|
78
|
+
instructions: '...',
|
|
79
|
+
skills: ['/path/to/skills'],
|
|
80
|
+
skillSearch: { topK: 5 }, // ranked, on-demand discovery; defaults to 5 if omitted
|
|
81
|
+
});
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
`skillSearch.topK` is advisory; defaults to 5. The ranker is an in-tree TF-style scorer with name-match boost — no
|
|
85
|
+
embedder dependency, no external service, deterministic across runs (alphabetical tie-break). The model sees both
|
|
86
|
+
`mcp__skill_bridge__search_skills` and `mcp__skill_bridge__load_skill` in its tool catalog and the existing always-load
|
|
87
|
+
meta keeps both tools exempt from Claude tool-search deferral.
|
|
88
|
+
|
|
89
|
+
When `skillSearch` is unset (the default), the existing description-enumeration behavior is preserved unchanged.
|
|
90
|
+
|
|
91
|
+
### Tool-exposure policy (`toolSearch.alwaysActive`)
|
|
92
|
+
|
|
93
|
+
The Claude Agent SDK enables tool-search deferral once the active tool surface crosses a threshold (≈ tens of tools);
|
|
94
|
+
once on, individual tools are hidden behind a `tool_search → load → invoke` round-trip until the model asks for them. On
|
|
95
|
+
the Salesforce LLM Gateway's Bedrock-Sonnet path that round-trip can stall the turn (see `ARCHITECTURE.md` →
|
|
96
|
+
`_meta['anthropic/alwaysLoad']`). To pin specific tools into the model's catalog regardless of how the surrounding
|
|
97
|
+
surface grows, list them on `ClaudeAgentConfig.toolSearch.alwaysActive`:
|
|
98
|
+
|
|
99
|
+
```ts
|
|
100
|
+
const agent = await manager.createAgent(projectRoot, {
|
|
101
|
+
instructions: '...',
|
|
102
|
+
mcpServers: {
|
|
103
|
+
sfdx: { type: 'stdio', command: '...' },
|
|
104
|
+
other: { type: 'stdio', command: '...' },
|
|
105
|
+
},
|
|
106
|
+
toolSearch: {
|
|
107
|
+
alwaysActive: [
|
|
108
|
+
{ serverName: 'sfdx' }, // every tool from this server (post-discovery)
|
|
109
|
+
{ serverName: 'other', toolName: 'lookup_account' }, // exactly one tool
|
|
110
|
+
{ toolName: 'resume_tool_operation' }, // any tool by this name, regardless of source
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Each entry covers one of three patterns:
|
|
117
|
+
|
|
118
|
+
| Entry shape | Matches |
|
|
119
|
+
| ------------------------------------ | ---------------------------------------------------------------------- |
|
|
120
|
+
| `{ serverName: 'X' }` | every tool advertised by server `X` |
|
|
121
|
+
| `{ serverName: 'X', toolName: 'Y' }` | exactly tool `Y` on server `X` |
|
|
122
|
+
| `{ toolName: 'Y' }` | any tool named `Y` regardless of source (built-ins, workspace, MCP, …) |
|
|
123
|
+
|
|
124
|
+
At least one of `serverName` / `toolName` must be present — empty `{}` rejects at config time. Mirrors
|
|
125
|
+
`MastraAgentConfig.toolSearch.alwaysActive` so cross-harness consumers configure tool-exposure policy the same way on
|
|
126
|
+
both harnesses.
|
|
127
|
+
|
|
128
|
+
**Caveat — Claude built-ins:** the Claude SDK has no host-side hook for stamping `_meta['anthropic/alwaysLoad']` on
|
|
129
|
+
built-in tools (`Bash`, `Read`, `Edit`, …). A `{ toolName: 'Bash' }` entry today is a no-op on built-ins and only takes
|
|
130
|
+
effect when a tool by that name comes from a configured MCP server or consumer-declared `AgentConfig.tools`.
|
|
131
|
+
|
|
60
132
|
### Multimodal input
|
|
61
133
|
|
|
62
134
|
`chatSession.chat()` / harness `stream()` accept a `MessagePart[]` carrying `image` (PNG/JPEG) and `file` (PDF) parts
|
|
@@ -163,8 +235,8 @@ const manager = await createAgentManager('/path/to/storage', harnessFactory);
|
|
|
163
235
|
|
|
164
236
|
JWT refresh works the same as elsewhere in the harness: each `resolve()` call eagerly reads `orgJwt.getValue()` /
|
|
165
237
|
`orgJwt.getTenantKey()` and freezes the result into the static subprocess headers. `Agent.updateAgentConfig({})` runs
|
|
166
|
-
`harness.
|
|
167
|
-
|
|
238
|
+
`harness.updateAgent`, the resolver re-reads the fresh JWT on the next `stream()`, and the next subprocess spawns with
|
|
239
|
+
the new headers — connected MCP clients are preserved through the rotation.
|
|
168
240
|
|
|
169
241
|
### Using a custom resolver
|
|
170
242
|
|
|
@@ -323,6 +395,21 @@ single-stream-per-turn contract).
|
|
|
323
395
|
When `bypassApprovalTools` is undefined or empty (default), every built-in / MCP tool call reaches the coordinator — no
|
|
324
396
|
behavior change for existing consumers. (Consumer-declared tools always bypass.)
|
|
325
397
|
|
|
398
|
+
### Tool-result redaction
|
|
399
|
+
|
|
400
|
+
Tool-result redaction is configured at the manager layer, not the factory. Pass a `hooksForAgent` callback to
|
|
401
|
+
`createAgentManager`; the SDK threads the resolved `AgentHooks` bag through `createAgent`'s `options.hooks`, and the
|
|
402
|
+
Claude harness wires `hooks.onToolResult` to the Claude Agent SDK's `PostToolUse` hook (`updatedToolOutput`)
|
|
403
|
+
automatically. The same `ToolResultRedactor` works on the Mastra harness. See the SDK README → "Tool-Result Redaction"
|
|
404
|
+
for the full pattern (including a `failClosed(...)` wrapper consumers can use to substitute a safe stub on throw).
|
|
405
|
+
|
|
406
|
+
**Bash gotcha.** Claude's built-in `Bash` tool requires the `{ stdout, stderr, interrupted }` shape on the redactor's
|
|
407
|
+
replacement output. A bare-string return is rejected by the Claude Agent SDK and the original leaks. The harness does
|
|
408
|
+
NOT validate this — the redactor knows what tool it's redacting.
|
|
409
|
+
|
|
410
|
+
If you also register your own `PostToolUse` hooks via `queryDefaults.hooks.PostToolUse`, both fire — the harness's hook
|
|
411
|
+
is appended **last** in the list so its `updatedToolOutput` has final say over the value the model sees.
|
|
412
|
+
|
|
326
413
|
## Development
|
|
327
414
|
|
|
328
415
|
See [DEVELOPING.md](DEVELOPING.md) for build, test, and packaging instructions.
|
|
@@ -137,7 +137,7 @@ export class ClaudeApprovalCoordinator {
|
|
|
137
137
|
this.aborted = true;
|
|
138
138
|
const abortError = new Error('The stream was aborted.');
|
|
139
139
|
abortError.name = 'AbortError';
|
|
140
|
-
this.teardown('abort', abortError, '
|
|
140
|
+
this.teardown('abort', abortError, 'abort');
|
|
141
141
|
}
|
|
142
142
|
dispose() {
|
|
143
143
|
if (this.disposed)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-approval-coordinator.js","sourceRoot":"","sources":["../src/claude-approval-coordinator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude-approval-coordinator.js","sourceRoot":"","sources":["../src/claude-approval-coordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import type { AgentConfig } from '@salesforce/sfdx-agent-sdk';
|
|
2
|
+
import type { AlwaysActiveEntry } from '@salesforce/sfdx-agent-sdk/harness';
|
|
3
|
+
/**
|
|
4
|
+
* Configuration for hiding a large skill catalog behind on-demand search
|
|
5
|
+
* meta-tools. When present on `ClaudeAgentConfig.skillSearch`, the
|
|
6
|
+
* harness's in-process `skill_bridge` MCP server exposes a
|
|
7
|
+
* `search_skills(query) → topK` tool alongside `load_skill(name)`, and
|
|
8
|
+
* removes the catalog enumeration from `load_skill`'s description so
|
|
9
|
+
* the model is forced to discover skills via search. When absent, the
|
|
10
|
+
* server falls back to the eager menu shape.
|
|
11
|
+
*
|
|
12
|
+
* Mirrors `MastraAgentConfig.skillSearch` so cross-harness consumers
|
|
13
|
+
* configure on-demand skill discovery the same way on both harnesses.
|
|
14
|
+
*/
|
|
15
|
+
export type ClaudeSkillSearchConfig = {
|
|
16
|
+
/**
|
|
17
|
+
* Max number of results returned per `search_skills` call (advisory).
|
|
18
|
+
* Defaults to 5 — same as Mastra's `SkillSearchProcessor` default,
|
|
19
|
+
* so cross-harness behavior matches when consumers leave it unset.
|
|
20
|
+
*/
|
|
21
|
+
topK?: number;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Tool-exposure policy on the Claude harness. The Claude Agent SDK
|
|
25
|
+
* auto-enables tool search when the active tool surface crosses a threshold,
|
|
26
|
+
* so this config is **purely declarative** for Claude — it doesn't toggle
|
|
27
|
+
* tool search on or off. `alwaysActive` is the load-bearing field: it stamps
|
|
28
|
+
* `_meta['anthropic/alwaysLoad'] = true` (equivalent to `defer_loading: false`
|
|
29
|
+
* on the API) on every matching tool the host bridge forwards, so those tools
|
|
30
|
+
* bypass the SDK's tool-search deferral regardless of how large the
|
|
31
|
+
* surrounding tool catalog grows.
|
|
32
|
+
*
|
|
33
|
+
* Mirrors `MastraAgentConfig.toolSearch`. The Mastra-specific knobs
|
|
34
|
+
* (`pool`, `topK`, `ttl`) are **not** declared here — they have no
|
|
35
|
+
* Claude-side meaning, and surfacing fields a consumer should ignore
|
|
36
|
+
* violates the SDK's design principle on options-bag fields. If a
|
|
37
|
+
* future Claude SDK version exposes a per-tool tunable that mirrors
|
|
38
|
+
* one of those knobs, add it here at that point.
|
|
39
|
+
*/
|
|
40
|
+
export type ClaudeToolSearchConfig = {
|
|
41
|
+
/**
|
|
42
|
+
* Tools that bypass tool-search deferral and are always present in the
|
|
43
|
+
* model's tool catalog. Each entry covers one of three patterns:
|
|
44
|
+
* - `{ serverName: 'X' }` — every tool from server `X`.
|
|
45
|
+
* - `{ serverName: 'X', toolName: 'Y' }` — exactly tool `Y` on server `X`.
|
|
46
|
+
* - `{ toolName: 'Y' }` — any tool named `Y`, regardless of source.
|
|
47
|
+
*
|
|
48
|
+
* The `{ toolName }` pattern matches built-in tools, workspace tools,
|
|
49
|
+
* consumer-declared tools (`AgentConfig.tools[i].name`), AND any MCP
|
|
50
|
+
* server's tool surface. **Caveat**: built-in tools (`Bash`, `Read`,
|
|
51
|
+
* `Edit`, …) cannot be opted out of tool-search deferral on the Claude
|
|
52
|
+
* subprocess today — the upstream SDK has no host-side hook for stamping
|
|
53
|
+
* `_meta['anthropic/alwaysLoad']` on built-ins. The harness logs a debug
|
|
54
|
+
* record per built-in match so the gap is observable.
|
|
55
|
+
*
|
|
56
|
+
* See {@link AlwaysActiveEntry} on `@salesforce/sfdx-agent-sdk/harness`
|
|
57
|
+
* for the full matching semantics. Mirrors
|
|
58
|
+
* `MastraAgentConfig.toolSearch.alwaysActive` — same shape, same rules.
|
|
59
|
+
*/
|
|
60
|
+
alwaysActive?: AlwaysActiveEntry[];
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Claude-flavored extension of {@link AgentConfig}, adding the Claude-only
|
|
64
|
+
* `skillSearch` and `toolSearch` fields. Consumers do not import or pass this
|
|
65
|
+
* type explicitly — `ClaudeHarness` brands itself with `ClaudeAgentConfig`
|
|
66
|
+
* via `WithAgentConfig`, so `manager.createAgent`'s config parameter
|
|
67
|
+
* resolves to this shape automatically and the fields autocomplete on the
|
|
68
|
+
* object literal.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```ts
|
|
72
|
+
* const agent = await manager.createAgent(projectRoot, {
|
|
73
|
+
* instructions: '...',
|
|
74
|
+
* skills: ['/path/to/skills'],
|
|
75
|
+
* skillSearch: { topK: 5 },
|
|
76
|
+
* toolSearch: {
|
|
77
|
+
* alwaysActive: [
|
|
78
|
+
* { serverName: 'sfdx' },
|
|
79
|
+
* { toolName: 'resume_tool_operation' },
|
|
80
|
+
* ],
|
|
81
|
+
* },
|
|
82
|
+
* });
|
|
83
|
+
* ```
|
|
84
|
+
*
|
|
85
|
+
* Extra fields ride through `toHarnessConfig`'s `...rest` spread to the
|
|
86
|
+
* harness, which reads `skillSearch` and `toolSearch` at its boundary via
|
|
87
|
+
* runtime narrowing — same pattern Mastra uses for its extension fields.
|
|
88
|
+
*/
|
|
89
|
+
export type ClaudeAgentConfig = AgentConfig & {
|
|
90
|
+
/** Hide skills behind on-demand `search_skills` / `load_skill`. */
|
|
91
|
+
skillSearch?: ClaudeSkillSearchConfig;
|
|
92
|
+
/** Tool-exposure policy. */
|
|
93
|
+
toolSearch?: ClaudeToolSearchConfig;
|
|
94
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-config.js","sourceRoot":"","sources":["../src/claude-config.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { HarnessFactory
|
|
1
|
+
import type { HarnessFactory } from '@salesforce/sfdx-agent-sdk';
|
|
2
2
|
import type { ClaudeTransportResolver } from './claude-transport-resolver.js';
|
|
3
3
|
import type { ClaudeQueryDefaults } from './claude-query-options-builder.js';
|
|
4
|
+
import { type ClaudeAgentHarness } from './claude-harness.js';
|
|
4
5
|
/**
|
|
5
6
|
* Subset of the Claude SDK's `PermissionMode` enum that the harness supports.
|
|
6
7
|
*
|
|
@@ -37,10 +38,10 @@ export interface ClaudeHarnessFactoryConfig {
|
|
|
37
38
|
*/
|
|
38
39
|
bypassApprovalTools?: string[];
|
|
39
40
|
}
|
|
40
|
-
export declare class ClaudeHarnessFactory implements HarnessFactory {
|
|
41
|
+
export declare class ClaudeHarnessFactory implements HarnessFactory<ClaudeAgentHarness> {
|
|
41
42
|
private readonly config;
|
|
42
43
|
readonly harnessId = "claude";
|
|
43
44
|
readonly protocolVersion = 1;
|
|
44
45
|
constructor(config: ClaudeHarnessFactoryConfig);
|
|
45
|
-
create(storageRootFolder: string): Promise<
|
|
46
|
+
create(storageRootFolder: string): Promise<ClaudeAgentHarness>;
|
|
46
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-harness-factory.js","sourceRoot":"","sources":["../src/claude-harness-factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"claude-harness-factory.js","sourceRoot":"","sources":["../src/claude-harness-factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAA2B,MAAM,qBAAqB,CAAC;AAa7E,MAAM,gCAAgC,GAAG,OAAO,CAAC;AA6BjD,MAAM,OAAO,oBAAoB;IAIA;IAHpB,SAAS,GAAG,QAAQ,CAAC;IACrB,eAAe,GAAG,CAAC,CAAC;IAE7B,YAA6B,MAAkC;QAAlC,WAAM,GAAN,MAAM,CAA4B;IAAG,CAAC;IAEnE,KAAK,CAAC,MAAM,CAAC,iBAAyB;QAClC,MAAM,UAAU,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACtF,MAAM,kBAAkB,GAAG;YACvB,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;YAC1C,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,KAAK,mBAAmB;gBAClD,CAAC,CAAC,EAAE,+BAA+B,EAAE,IAAa,EAAE;gBACpD,CAAC,CAAC,EAAE,CAAC;SACZ,CAAC;QACF,iEAAiE;QACjE,iEAAiE;QACjE,iEAAiE;QACjE,0DAA0D;QAC1D,kBAAkB;QAClB,MAAM,cAAc,GAAG,IAAI,yBAAyB,CAChD,EAAE,GAAG,kBAAkB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,EACvD,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,IAAI,EAAE,CAAC,CACjD,CAAC;QACF,OAAO,IAAI,aAAa,CACpB,UAAU,EACV,cAAc,EACd,IAAI,CAAC,MAAM,CAAC,qBAAqB,IAAI,gCAAgC,EACrE,iBAAiB,CACpB,CAAC;IACN,CAAC;CACJ"}
|
package/dist/claude-harness.d.ts
CHANGED
|
@@ -1,12 +1,41 @@
|
|
|
1
1
|
import { type Clock, type LogRecord, type UniqueIDGenerator, type Unsubscribe } from '@salesforce/agentic-common';
|
|
2
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 AgentHooks, type WithAgentConfig } from '@salesforce/sfdx-agent-sdk/harness';
|
|
4
|
+
import type { ClaudeAgentConfig } from './claude-config.js';
|
|
3
5
|
import { type LLMGatewayClient } from '@salesforce/llm-gateway-sdk';
|
|
4
6
|
import type { ClaudeQueryEnvBuilder } from './claude-query-env-builder.js';
|
|
5
7
|
import type { ClaudeQueryOptionsBuilder } from './claude-query-options-builder.js';
|
|
6
8
|
import { buildMcpClients } from './mcp-client-factory.js';
|
|
7
9
|
import { DiskBackedSessionStore } from './disk-backed-session-store.js';
|
|
8
10
|
import { ThreadContextStore } from './thread-context-store.js';
|
|
9
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Branded subtype consumers parameterize over to reach Claude-specific
|
|
13
|
+
* config fields through the typed `manager.createAgent` surface.
|
|
14
|
+
*
|
|
15
|
+
* Wrapped with `WithAgentConfig` so `manager.createAgent` autocompletes
|
|
16
|
+
* `ClaudeAgentConfig` fields (e.g. `skillSearch`) without an explicit
|
|
17
|
+
* type argument. The wrapper is type-only; it never exists at runtime.
|
|
18
|
+
*
|
|
19
|
+
* Usage:
|
|
20
|
+
* ```ts
|
|
21
|
+
* const manager = await createAgentManager(storageRootFolder, new ClaudeHarnessFactory(...));
|
|
22
|
+
* // manager.createAgent autocompletes `skillSearch` via WithAgentConfig:
|
|
23
|
+
* const agent = await manager.createAgent(projectRoot, {
|
|
24
|
+
* instructions: '...',
|
|
25
|
+
* skills: ['/path/to/skills'],
|
|
26
|
+
* skillSearch: { topK: 5 },
|
|
27
|
+
* });
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* Mirrors `MastraAgentHarness`'s shape; the two harnesses brand against
|
|
31
|
+
* different `*AgentConfig` types because their extension surfaces don't
|
|
32
|
+
* overlap (`MastraAgentConfig.toolSearch` is mastra-only;
|
|
33
|
+
* `ClaudeAgentConfig.skillSearch` is the only Claude-side extension today).
|
|
34
|
+
*/
|
|
35
|
+
export type ClaudeAgentHarness = WithAgentConfig<AgentHarness & {
|
|
36
|
+
readonly harnessId: 'claude';
|
|
37
|
+
}, ClaudeAgentConfig>;
|
|
38
|
+
export declare class ClaudeHarness implements ClaudeAgentHarness {
|
|
10
39
|
private readonly envBuilder;
|
|
11
40
|
private readonly optionsBuilder;
|
|
12
41
|
private readonly toolApprovalTimeoutMs;
|
|
@@ -50,6 +79,7 @@ export declare class ClaudeHarness implements AgentHarness {
|
|
|
50
79
|
onLog(callback: (record: LogRecord) => void): Unsubscribe;
|
|
51
80
|
createAgent(agentId: string, projectRoot: string, llmGatewayClient: LLMGatewayClient, config?: HarnessAgentConfig, options?: {
|
|
52
81
|
abortSignal?: AbortSignal;
|
|
82
|
+
hooks?: AgentHooks;
|
|
53
83
|
}): Promise<void>;
|
|
54
84
|
/**
|
|
55
85
|
* Enumerate Claude SDK sessionIds that have a JSONL on disk under
|
|
@@ -94,6 +124,32 @@ export declare class ClaudeHarness implements AgentHarness {
|
|
|
94
124
|
* telemetry; observe via `getMcpServerInfo()`.
|
|
95
125
|
*/
|
|
96
126
|
reconnectMcpServer(agentId: string, serverName: string): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Implementation of {@link AgentHarness.updateAgent}. Diffs `config.mcpServers`
|
|
129
|
+
* against the agent's currently-applied `state.config.mcpServers`, preserves
|
|
130
|
+
* any MCP client whose `MCPServerConfig` is structurally equal, and rebuilds
|
|
131
|
+
* the non-MCP slice (rules, skills, model) so subsequent `stream()` calls
|
|
132
|
+
* reflect the new config.
|
|
133
|
+
*
|
|
134
|
+
* The Claude harness reads `rulesAppend` / `skillMap` / `model` per stream
|
|
135
|
+
* (the `query()` options are assembled from agent state on every turn), so
|
|
136
|
+
* "apply non-MCP changes" reduces to mutating the relevant fields on
|
|
137
|
+
* `ClaudeAgentState`. No subprocess respawn is required — the next stream
|
|
138
|
+
* sees the updated state directly.
|
|
139
|
+
*
|
|
140
|
+
* State writes are per-server-incremental: each disconnect/connect mutates
|
|
141
|
+
* `state.mcpServers` and `state.config.mcpServers` synchronously after the
|
|
142
|
+
* corresponding harness work finishes. A re-entrant `updateAgent` call (e.g.
|
|
143
|
+
* SDK rollback against `previousConfig`) sees the harness's current truth
|
|
144
|
+
* and reverts only the actual deltas.
|
|
145
|
+
*
|
|
146
|
+
* `state.threads` is intentionally untouched — sessions are config-
|
|
147
|
+
* independent, so an `updateAgent` cannot invalidate them.
|
|
148
|
+
*/
|
|
149
|
+
updateAgent(agentId: string, llmGatewayClient: LLMGatewayClient, config?: HarnessAgentConfig, options?: {
|
|
150
|
+
abortSignal?: AbortSignal;
|
|
151
|
+
hooks?: AgentHooks;
|
|
152
|
+
}): Promise<void>;
|
|
97
153
|
createThread(agentId: string, threadId?: string): Promise<string>;
|
|
98
154
|
destroyThread(agentId: string, threadId: string): Promise<void>;
|
|
99
155
|
getThreadIds(agentId: string): Promise<string[]>;
|
|
@@ -210,6 +266,23 @@ export declare class ClaudeHarness implements AgentHarness {
|
|
|
210
266
|
* pre-built message) so failures reject the caller's `stream()` promise before any query starts.
|
|
211
267
|
*/
|
|
212
268
|
private buildMultimodalPrompt;
|
|
269
|
+
/**
|
|
270
|
+
* Build the per-stream `PostToolUse` hook that runs the consumer's
|
|
271
|
+
* {@link ToolResultRedactor} against every tool result before the
|
|
272
|
+
* Claude subprocess hands it back to the model. Returns
|
|
273
|
+
* `{ hookSpecificOutput: { updatedToolOutput } }` when the redactor
|
|
274
|
+
* returned a replacement; otherwise an empty hook output so the SDK
|
|
275
|
+
* forwards the original.
|
|
276
|
+
*
|
|
277
|
+
* **Throws are NOT swallowed by the harness.** A thrown redactor
|
|
278
|
+
* propagates through the Claude Agent SDK's hook-error path, which
|
|
279
|
+
* synthesizes a `tool_result(is_error=true)` so the failure is
|
|
280
|
+
* observable and the original output never reaches the model.
|
|
281
|
+
* Consumers requiring a richer fail-closed substitute wrap their
|
|
282
|
+
* redactor's body in try/catch themselves — see SDK README →
|
|
283
|
+
* "Tool-Result Redaction".
|
|
284
|
+
*/
|
|
285
|
+
private buildPostToolUseRedactionHook;
|
|
213
286
|
stream(agentId: string, threadId: string, message: string | MessagePart[], streamOptions?: StreamOptions): Promise<ChatStreamResult>;
|
|
214
287
|
/**
|
|
215
288
|
* Build the per-stream MCP bridge configs the Claude subprocess will
|