@salesforce/sfdx-agent-harness-claude 0.19.0 → 0.21.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 CHANGED
@@ -3,6 +3,19 @@
3
3
  All notable changes to `@salesforce/sfdx-agent-harness-claude` are documented in this file.
4
4
  Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
5
5
 
6
+ ## [0.21.0] - 2026-06-24
7
+
8
+ ### Chores
9
+ - update dependencies and disable Mastra PostHog telemetry @W-23054815 ([#619](https://github.com/forcedotcom/agentic-dx/pull/619))
10
+
11
+ ## [0.20.0] - 2026-06-23
12
+
13
+ ### Features
14
+ - **harness-claude**: add subprocessEnv for operational subprocess env vars @W-23145275 ([#618](https://github.com/forcedotcom/agentic-dx/pull/618))
15
+
16
+ ### Chores
17
+ - **deps-dev**: bump @types/node from 22.19.21 to 22.20.0 in the dev-dependencies group ([#613](https://github.com/forcedotcom/agentic-dx/pull/613))
18
+
6
19
  ## [0.19.0] - 2026-06-22
7
20
 
8
21
  ### Features
package/README.md CHANGED
@@ -41,7 +41,7 @@ internal architecture, see [ARCHITECTURE.md](ARCHITECTURE.md).
41
41
  | Export | Kind | Description |
42
42
  | ----------------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
43
43
  | `ClaudeHarnessFactory` | class | `HarnessFactory` that produces a Claude-backed `AgentHarness` bound to a storage root. |
44
- | `ClaudeHarnessFactoryConfig` | interface | Configuration for `ClaudeHarnessFactory` (`permissionMode`, optional `queryDefaults`, `toolApprovalTimeoutMs`, `bypassApprovalTools`, `dispatcher`). |
44
+ | `ClaudeHarnessFactoryConfig` | interface | Configuration for `ClaudeHarnessFactory` (`permissionMode`, optional `queryDefaults`, `toolApprovalTimeoutMs`, `bypassApprovalTools`, `subprocessEnv`). |
45
45
  | `ClaudeHarnessPermissionMode` | type | Narrowed permission mode: `'bypassPermissions' \| 'acceptEdits' \| 'plan'`. |
46
46
  | `ClaudeAgentHarness` | type | Branded `AgentHarness` subtype carrying the Claude-specific config inference. Inferred at `manager.createAgent` automatically — annotation rarely needed. |
47
47
  | `ClaudeAgentConfig` | type | `AgentConfig` extended with Claude-only fields (`skillSearch`, `toolSearch`). |
@@ -67,8 +67,8 @@ regardless of the factory-pinned permission mode.
67
67
 
68
68
  The harness honors `HTTPS_PROXY` / `HTTP_PROXY` / `NO_PROXY` (either casing) for the host-side MCP HTTP transport via
69
69
  `@salesforce/agentic-common`'s `resolveProxyDispatcher()`. When either proxy var is set at factory `create()` time, the
70
- harness wraps the transport `fetch` with an undici-backed routing function — no `globalThis` mutation. When no proxy
71
- env is set, `fetch` runs unwrapped (zero overhead).
70
+ harness wraps the transport `fetch` with an undici-backed routing function — no `globalThis` mutation. When no proxy env
71
+ is set, `fetch` runs unwrapped (zero overhead).
72
72
 
73
73
  The Claude subprocess inherits `HTTPS_PROXY` from the host env separately and is unaffected by the host-side wrapping.
74
74
  Subprocess-side proxy routing follows whatever env was set when the subprocess spawned.
@@ -236,6 +236,44 @@ The SDK ships two bundled resolvers and a documented extension point — see the
236
236
  The harness factory itself takes no resolver, gateway URL, or auth field — those concerns live entirely on the
237
237
  connectivity resolver.
238
238
 
239
+ ### Operational subprocess env (`subprocessEnv`)
240
+
241
+ **Rule:** `subprocessEnv` is for operational subprocess/runtime vars with no model-connectivity meaning — anything
242
+ dynamic or auth/endpoint-shaped belongs on the connectivity resolver. The map is **static for the factory's lifetime**;
243
+ per-spawn-dynamic values (a rotating key, a fresh trace id) belong on the resolver's `getHeaders()`, not here.
244
+
245
+ Connectivity (auth headers, gateway/endpoint URL, provider hint) flows through the connectivity resolver. Some
246
+ deployments also need to set operational environment variables on the Claude subprocess that aren't connectivity and
247
+ therefore have no home on `ModelConnectivityInfo`. `ClaudeHarnessFactoryConfig.subprocessEnv` is the injection point:
248
+
249
+ ```ts
250
+ const harnessFactory = new ClaudeHarnessFactory({
251
+ permissionMode: 'bypassPermissions',
252
+ subprocessEnv: {
253
+ NODE_EXTRA_CA_CERTS: '/etc/corp/ca-bundle.pem', // corporate-proxy CA trust
254
+ NODE_TLS_REJECT_UNAUTHORIZED: '1',
255
+ DISABLE_TELEMETRY: '1',
256
+ DISABLE_AUTOUPDATER: '1',
257
+ },
258
+ });
259
+ ```
260
+
261
+ Layering (last wins): inherited host env (with the dangerous auth vars stripped) → `subprocessEnv` →
262
+ connectivity-derived transport env → `CLAUDE_CONFIG_DIR`. Two consequences fall out of that order:
263
+
264
+ - **`subprocessEnv` overrides inherited host vars** — that's the point of the slot.
265
+ - **`subprocessEnv` cannot override auth / endpoint.** Connectivity is layered last, so a `subprocessEnv` entry for
266
+ `ANTHROPIC_BEDROCK_BASE_URL` / `ANTHROPIC_CUSTOM_HEADERS` / etc. is overwritten by the resolver-derived value. Keep
267
+ auth on the connectivity resolver; put only operational vars here.
268
+
269
+ The three dangerous vars stripped from inherited env (`ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, `ANTHROPIC_BASE_URL`)
270
+ are **not** stripped from `subprocessEnv` — a value placed there is an explicit consumer choice, not an accidental host
271
+ leak.
272
+
273
+ > **Note:** `ANTHROPIC_DEFAULT_{HAIKU,SONNET,OPUS}_MODEL` (the Claude CLI's internal tier-model ids) is a valid current
274
+ > use case for this slot. If a future consumer needs those resolved dynamically per model rather than statically per
275
+ > factory, that's the signal to grow `ModelConnectivityInfo` rather than widen this slot to accept a function.
276
+
239
277
  ### Per-server MCP reconnect (eager semantics)
240
278
 
241
279
  The Claude harness implements `Agent.reconnectMcpServer(name)` eagerly: the request closes the existing host-owned
@@ -35,6 +35,27 @@ export interface ClaudeHarnessFactoryConfig {
35
35
  * pre-#516 behavior (every tool reaches the broker).
36
36
  */
37
37
  bypassApprovalTools?: string[];
38
+ /**
39
+ * Static operational environment variables to set on every Claude
40
+ * subprocess spawn. Layered above the inherited host env (so these win
41
+ * over host vars) but below the connectivity-derived transport env (so
42
+ * they cannot override auth / endpoint, which are owned by the
43
+ * `AgentConnectivityResolver`'s `getHeaders()` + `baseUrl`).
44
+ *
45
+ * This is the injection point for subprocess-behavior vars that aren't
46
+ * connectivity and therefore have no home on `ModelConnectivityInfo` —
47
+ * e.g. `NODE_EXTRA_CA_CERTS` (corporate-proxy CA bundle),
48
+ * `NODE_TLS_REJECT_UNAUTHORIZED`, telemetry / auto-update disable flags
49
+ * (`DISABLE_TELEMETRY`, `DISABLE_AUTOUPDATER`), or the Claude CLI's
50
+ * internal tier-model ids (`ANTHROPIC_DEFAULT_SONNET_MODEL`, …).
51
+ *
52
+ * The three dangerous auth vars stripped from inherited env
53
+ * (`ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, `ANTHROPIC_BASE_URL`) are
54
+ * NOT stripped here — a value placed in `subprocessEnv` is an explicit
55
+ * consumer choice, not an accidental host leak. Auth still belongs on the
56
+ * connectivity resolver; only operational vars belong here.
57
+ */
58
+ subprocessEnv?: Record<string, string>;
38
59
  }
39
60
  export declare class ClaudeHarnessFactory implements HarnessFactory<ClaudeAgentHarness> {
40
61
  private readonly config;
@@ -25,7 +25,7 @@ export class ClaudeHarnessFactory {
25
25
  }
26
26
  async create(storageRootFolder) {
27
27
  const innerFetch = createProxyAwareFetch(resolveProxyDispatcher());
28
- const envBuilder = new ClaudeQueryEnvBuilder(storageRootFolder);
28
+ const envBuilder = new ClaudeQueryEnvBuilder(storageRootFolder, undefined, this.config.subprocessEnv);
29
29
  const permissionDefaults = {
30
30
  permissionMode: this.config.permissionMode,
31
31
  ...(this.config.permissionMode === 'bypassPermissions'
@@ -1 +1 @@
1
- {"version":3,"file":"claude-harness-factory.js","sourceRoot":"","sources":["../src/claude-harness-factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAG3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAA2B,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAa1D,MAAM,gCAAgC,GAAG,OAAO,CAAC;AA4BjD,MAAM,OAAO,oBAAoB;IAYA;IAXpB,SAAS,GAAG,QAAQ,CAAC;IACrB,eAAe,GAAG,CAAC,CAAC;IAC7B;;;;;;OAMG;IACM,sBAAsB,GAA4B,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAE9F,YAA6B,MAAkC;QAAlC,WAAM,GAAN,MAAM,CAA4B;IAAG,CAAC;IAEnE,KAAK,CAAC,MAAM,CAAC,iBAAyB;QAClC,MAAM,UAAU,GAAG,qBAAqB,CAAC,sBAAsB,EAAE,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,IAAI,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;QAChE,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,iEAAiE;QACjE,yEAAyE;QACzE,iEAAiE;QACjE,MAAM,gBAAgB,GAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAChE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAChD,OAAO,IAAI,aAAa,CACpB,UAAU,EACV,cAAc,EACd,IAAI,CAAC,MAAM,CAAC,qBAAqB,IAAI,gCAAgC,EACrE,iBAAiB,EACjB,EAAE,gBAAgB,EAAE,CACvB,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"claude-harness-factory.js","sourceRoot":"","sources":["../src/claude-harness-factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAG3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAA2B,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAa1D,MAAM,gCAAgC,GAAG,OAAO,CAAC;AAiDjD,MAAM,OAAO,oBAAoB;IAYA;IAXpB,SAAS,GAAG,QAAQ,CAAC;IACrB,eAAe,GAAG,CAAC,CAAC;IAC7B;;;;;;OAMG;IACM,sBAAsB,GAA4B,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAE9F,YAA6B,MAAkC;QAAlC,WAAM,GAAN,MAAM,CAA4B;IAAG,CAAC;IAEnE,KAAK,CAAC,MAAM,CAAC,iBAAyB;QAClC,MAAM,UAAU,GAAG,qBAAqB,CAAC,sBAAsB,EAAE,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,IAAI,qBAAqB,CAAC,iBAAiB,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACtG,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,iEAAiE;QACjE,yEAAyE;QACzE,iEAAiE;QACjE,MAAM,gBAAgB,GAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAChE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAChD,OAAO,IAAI,aAAa,CACpB,UAAU,EACV,cAAc,EACd,IAAI,CAAC,MAAM,CAAC,qBAAqB,IAAI,gCAAgC,EACrE,iBAAiB,EACjB,EAAE,gBAAgB,EAAE,CACvB,CAAC;IACN,CAAC;CACJ"}
@@ -9,7 +9,11 @@ export interface ClaudeQueryEnvBuildResult {
9
9
  *
10
10
  * Layering order (last wins):
11
11
  * 1. Inherited process env (with dangerous vars stripped)
12
- * 2. Connectivity-derived vars (auth headers, transport flags, endpoint config)
12
+ * 2. Consumer subprocess env (`ClaudeHarnessFactoryConfig.subprocessEnv`) — static
13
+ * operational vars the consumer needs on the subprocess (e.g.
14
+ * `NODE_EXTRA_CA_CERTS` for a corporate-proxy CA bundle, telemetry-disable
15
+ * flags). Overrides inherited env; does NOT override connectivity.
16
+ * 3. Connectivity-derived vars (auth headers, transport flags, endpoint config)
13
17
  *
14
18
  * The Claude CLI subprocess speaks Anthropic-shaped protocols only — either via
15
19
  * `ANTHROPIC_BEDROCK_BASE_URL` (Bedrock-Anthropic, the Salesforce LLM Gateway's
@@ -19,11 +23,36 @@ export interface ClaudeQueryEnvBuildResult {
19
23
  * api-key, the base URL, the native model id) lives on the bag and is
20
24
  * re-evaluated per `build()` call so JWT rotation lands on the next subprocess
21
25
  * spawn.
26
+ *
27
+ * Connectivity is layered LAST so the harness keeps final authority over
28
+ * auth / endpoint regardless of what the consumer's `subprocessEnv` carries —
29
+ * the consumer can inject operational vars but cannot silently redirect the
30
+ * subprocess at a different gateway or shadow the resolver's auth headers.
22
31
  */
23
32
  export declare class ClaudeQueryEnvBuilder {
24
33
  private readonly storageRootFolder?;
25
34
  private readonly processEnv;
26
- constructor(storageRootFolder?: string | undefined, processEnv?: Record<string, string | undefined>);
35
+ /**
36
+ * Static operational env vars to layer onto every subprocess spawn.
37
+ * Sourced from `ClaudeHarnessFactoryConfig.subprocessEnv`. Applied
38
+ * above inherited env (so it can override host vars) but below the
39
+ * connectivity-derived transport env (so it cannot override auth /
40
+ * endpoint). The three dangerous vars stripped from inherited env are
41
+ * NOT stripped here — a value placed in `subprocessEnv` is an explicit
42
+ * consumer choice, not an accidental host leak.
43
+ */
44
+ private readonly subprocessEnv;
45
+ constructor(storageRootFolder?: string | undefined, processEnv?: Record<string, string | undefined>,
46
+ /**
47
+ * Static operational env vars to layer onto every subprocess spawn.
48
+ * Sourced from `ClaudeHarnessFactoryConfig.subprocessEnv`. Applied
49
+ * above inherited env (so it can override host vars) but below the
50
+ * connectivity-derived transport env (so it cannot override auth /
51
+ * endpoint). The three dangerous vars stripped from inherited env are
52
+ * NOT stripped here — a value placed in `subprocessEnv` is an explicit
53
+ * consumer choice, not an accidental host leak.
54
+ */
55
+ subprocessEnv?: Record<string, string>);
27
56
  build(info: ModelConnectivityInfo): Promise<ClaudeQueryEnvBuildResult>;
28
57
  /**
29
58
  * Translates the bag into the env shape the Claude CLI wants for the
@@ -10,7 +10,11 @@ const STRIPPED_ENV_VARS = ['ANTHROPIC_API_KEY', 'ANTHROPIC_AUTH_TOKEN', 'ANTHROP
10
10
  *
11
11
  * Layering order (last wins):
12
12
  * 1. Inherited process env (with dangerous vars stripped)
13
- * 2. Connectivity-derived vars (auth headers, transport flags, endpoint config)
13
+ * 2. Consumer subprocess env (`ClaudeHarnessFactoryConfig.subprocessEnv`) — static
14
+ * operational vars the consumer needs on the subprocess (e.g.
15
+ * `NODE_EXTRA_CA_CERTS` for a corporate-proxy CA bundle, telemetry-disable
16
+ * flags). Overrides inherited env; does NOT override connectivity.
17
+ * 3. Connectivity-derived vars (auth headers, transport flags, endpoint config)
14
18
  *
15
19
  * The Claude CLI subprocess speaks Anthropic-shaped protocols only — either via
16
20
  * `ANTHROPIC_BEDROCK_BASE_URL` (Bedrock-Anthropic, the Salesforce LLM Gateway's
@@ -20,13 +24,30 @@ const STRIPPED_ENV_VARS = ['ANTHROPIC_API_KEY', 'ANTHROPIC_AUTH_TOKEN', 'ANTHROP
20
24
  * api-key, the base URL, the native model id) lives on the bag and is
21
25
  * re-evaluated per `build()` call so JWT rotation lands on the next subprocess
22
26
  * spawn.
27
+ *
28
+ * Connectivity is layered LAST so the harness keeps final authority over
29
+ * auth / endpoint regardless of what the consumer's `subprocessEnv` carries —
30
+ * the consumer can inject operational vars but cannot silently redirect the
31
+ * subprocess at a different gateway or shadow the resolver's auth headers.
23
32
  */
24
33
  export class ClaudeQueryEnvBuilder {
25
34
  storageRootFolder;
26
35
  processEnv;
27
- constructor(storageRootFolder, processEnv = process.env) {
36
+ subprocessEnv;
37
+ constructor(storageRootFolder, processEnv = process.env,
38
+ /**
39
+ * Static operational env vars to layer onto every subprocess spawn.
40
+ * Sourced from `ClaudeHarnessFactoryConfig.subprocessEnv`. Applied
41
+ * above inherited env (so it can override host vars) but below the
42
+ * connectivity-derived transport env (so it cannot override auth /
43
+ * endpoint). The three dangerous vars stripped from inherited env are
44
+ * NOT stripped here — a value placed in `subprocessEnv` is an explicit
45
+ * consumer choice, not an accidental host leak.
46
+ */
47
+ subprocessEnv = {}) {
28
48
  this.storageRootFolder = storageRootFolder;
29
49
  this.processEnv = processEnv;
50
+ this.subprocessEnv = subprocessEnv;
30
51
  }
31
52
  async build(info) {
32
53
  const env = { ...this.processEnv };
@@ -36,6 +57,7 @@ export class ClaudeQueryEnvBuilder {
36
57
  return {
37
58
  env: {
38
59
  ...env,
60
+ ...this.subprocessEnv,
39
61
  ...transportEnv,
40
62
  ...(this.storageRootFolder ? { CLAUDE_CONFIG_DIR: this.storageRootFolder } : {}),
41
63
  },
@@ -1 +1 @@
1
- {"version":3,"file":"claude-query-env-builder.js","sourceRoot":"","sources":["../src/claude-query-env-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-query-env-builder.js","sourceRoot":"","sources":["../src/claude-query-env-builder.ts"],"names":[],"mappings":"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"}