@automatalabs/acp-agents 0.32.2 → 0.34.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.
Files changed (49) hide show
  1. package/dist/acp-client.d.ts +4 -1
  2. package/dist/acp-client.d.ts.map +1 -1
  3. package/dist/acp-client.js +38 -4
  4. package/dist/auth/auth-profile.d.ts +28 -0
  5. package/dist/auth/auth-profile.d.ts.map +1 -0
  6. package/dist/auth/auth-profile.js +1 -0
  7. package/dist/auth/auth-profiles.d.ts +5 -64
  8. package/dist/auth/auth-profiles.d.ts.map +1 -1
  9. package/dist/auth/auth-profiles.js +6 -66
  10. package/dist/backend.d.ts +3 -6
  11. package/dist/backend.d.ts.map +1 -1
  12. package/dist/backends/builtins.d.ts +14 -0
  13. package/dist/backends/builtins.d.ts.map +1 -0
  14. package/dist/backends/builtins.js +26 -0
  15. package/dist/backends/claude.d.ts +6 -2
  16. package/dist/backends/claude.d.ts.map +1 -1
  17. package/dist/backends/claude.js +40 -4
  18. package/dist/backends/codex.d.ts +6 -3
  19. package/dist/backends/codex.d.ts.map +1 -1
  20. package/dist/backends/codex.js +51 -4
  21. package/dist/backends/custom.d.ts +0 -1
  22. package/dist/backends/custom.d.ts.map +1 -1
  23. package/dist/backends/custom.js +0 -1
  24. package/dist/backends/define.d.ts +64 -0
  25. package/dist/backends/define.d.ts.map +1 -0
  26. package/dist/backends/define.js +36 -0
  27. package/dist/backends/opencode.d.ts +6 -3
  28. package/dist/backends/opencode.d.ts.map +1 -1
  29. package/dist/backends/opencode.js +31 -4
  30. package/dist/backends/pi.d.ts +6 -3
  31. package/dist/backends/pi.d.ts.map +1 -1
  32. package/dist/backends/pi.js +44 -4
  33. package/dist/events.d.ts +3 -1
  34. package/dist/events.d.ts.map +1 -1
  35. package/dist/index.d.ts +7 -4
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +2 -1
  38. package/dist/interactive.d.ts.map +1 -1
  39. package/dist/interactive.js +3 -0
  40. package/dist/protocol-coverage.d.ts +20 -14
  41. package/dist/protocol-coverage.d.ts.map +1 -1
  42. package/dist/protocol-coverage.js +30 -13
  43. package/dist/provider-store.d.ts +20 -1
  44. package/dist/provider-store.d.ts.map +1 -1
  45. package/dist/provider-store.js +11 -1
  46. package/dist/runner.d.ts +10 -1
  47. package/dist/runner.d.ts.map +1 -1
  48. package/dist/runner.js +37 -29
  49. package/package.json +4 -4
@@ -4,7 +4,7 @@ import { AGENT_METHODS, CLIENT_METHODS } from "@agentclientprotocol/sdk";
4
4
  * Agent side: 16 operational methods are driven (plus initialize), 0 are guarded, and the
5
5
  * passthrough remainder is nes/*, document/*, and mcp/message. The raw escape hatch remains
6
6
  * blocked for session-stateful new/load/resume/fork even though each has a driven wrapper. */
7
- export const CLIENT_METHOD_COVERAGE = {
7
+ export const CLIENT_METHOD_COVERAGE = Object.freeze({
8
8
  [CLIENT_METHODS.session_request_permission]: "served",
9
9
  [CLIENT_METHODS.session_update]: "served",
10
10
  [CLIENT_METHODS.fs_read_text_file]: "served",
@@ -19,8 +19,8 @@ export const CLIENT_METHOD_COVERAGE = {
19
19
  [CLIENT_METHODS.mcp_disconnect]: "served",
20
20
  [CLIENT_METHODS.elicitation_create]: "served",
21
21
  [CLIENT_METHODS.elicitation_complete]: "served",
22
- };
23
- export const AGENT_METHOD_COVERAGE = {
22
+ });
23
+ export const AGENT_METHOD_COVERAGE = Object.freeze({
24
24
  [AGENT_METHODS.initialize]: "driven",
25
25
  [AGENT_METHODS.authenticate]: "driven",
26
26
  [AGENT_METHODS.providers_list]: "driven",
@@ -49,7 +49,7 @@ export const AGENT_METHOD_COVERAGE = {
49
49
  [AGENT_METHODS.document_did_close]: "passthrough",
50
50
  [AGENT_METHODS.document_did_save]: "passthrough",
51
51
  [AGENT_METHODS.document_did_focus]: "passthrough",
52
- };
52
+ });
53
53
  /** The exact property set SDK 1.2.1 types on `AuthCapabilities` (§1.2). The runtime tripwire below
54
54
  * asserts `clientCapabilitiesFor({ auth })` emits ONLY these keys, so a bump that widens/renames
55
55
  * the shape trips the coverage suite. */
@@ -113,13 +113,30 @@ export const PI_ACP_PROTOCOL_CONTRACT = {
113
113
  * the installed agent dist — so neither the spec nor an agent bump can silently drift a `_meta`
114
114
  * surface. OpenCode ships a compiled binary with no consumable source (§3.4), so its row has no dist
115
115
  * probe (grounded instead by the §4.6.3 live-e2e). */
116
- export const AUTH_META_MATRIX = [
117
- { agent: "claude", capability: "gateway", direction: "C↔A", status: "work-item", owner: "§1.2-§1.3/PR2-PR3", distProbe: "claude" },
118
- { agent: "claude", capability: "terminal-auth", direction: "C↔A", status: "work-item", owner: "§1.2-§1.3/PR2-PR3", distProbe: "claude" },
119
- { agent: "codex", capability: "api-key", direction: "A→C", status: "work-item", owner: "§1.3/PR3", distProbe: "codex" },
120
- { agent: "codex", capability: "gateway", direction: "C↔A", status: "work-item", owner: "§1.2-§1.3/PR2-PR3", distProbe: "codex" },
121
- { agent: "codex", capability: "DEFAULT_AUTH_REQUEST", direction: "C→A", status: "work-item", owner: "§3.3/PR7", distProbe: "codex" },
122
- { agent: "codex", capability: "persist", direction: "C→A", status: "work-item", owner: "§3.6/PR7", distProbe: "codex" },
123
- { agent: "opencode", capability: "terminal-auth", direction: "C↔A", status: "work-item", owner: "§1.2-§1.3/PR2-PR3" },
124
- { agent: "all", capability: "provider env keys", direction: "C→A", status: "work-item", owner: "§2.8/§3.4/PR3" },
116
+ const AUTH_META_MATRIX_ROWS = [
117
+ { agent: "claude", capability: "gateway", direction: "C↔A", status: "supported-today", distProbe: "claude" },
118
+ { agent: "claude", capability: "terminal-auth", direction: "C↔A", status: "supported-today", distProbe: "claude" },
119
+ { agent: "codex", capability: "api-key", direction: "A→C", status: "supported-today", distProbe: "codex" },
120
+ { agent: "codex", capability: "gateway", direction: "C↔A", status: "supported-today", distProbe: "codex" },
121
+ { agent: "codex", capability: "DEFAULT_AUTH_REQUEST", direction: "C→A", status: "supported-today", distProbe: "codex" },
122
+ { agent: "codex", capability: "persist", direction: "C→A", status: "supported-today", distProbe: "codex" },
123
+ { agent: "opencode", capability: "terminal-auth", direction: "C↔A", status: "supported-today" },
124
+ { agent: "all", capability: "provider env keys", direction: "C→A", status: "supported-today" },
125
125
  ];
126
+ export const AUTH_META_MATRIX = Object.freeze(AUTH_META_MATRIX_ROWS.map((row) => Object.freeze(row)));
127
+ function coverageRow(id, installedDistProbes) {
128
+ return Object.freeze({
129
+ clientMethods: CLIENT_METHOD_COVERAGE,
130
+ agentMethods: AGENT_METHOD_COVERAGE,
131
+ authMeta: Object.freeze(AUTH_META_MATRIX.filter((row) => row.agent === id || row.agent === "all")),
132
+ installedDistProbes: Object.freeze([...installedDistProbes]),
133
+ liveProbes: Object.freeze([id]),
134
+ });
135
+ }
136
+ /** Central backend dispositions. Registry tests enforce exact key and reference parity. */
137
+ export const BUILTIN_PROTOCOL_COVERAGE = Object.freeze({
138
+ claude: coverageRow("claude", ["claude"]),
139
+ codex: coverageRow("codex", ["codex"]),
140
+ opencode: coverageRow("opencode", []),
141
+ pi: coverageRow("pi", []),
142
+ });
@@ -1,13 +1,32 @@
1
1
  import type { SetProviderRequest } from "@agentclientprotocol/sdk";
2
+ /** The durable Vertex routing config, shaped for the Claude agent's `providers/set` `_meta`
3
+ * (claude-agent-acp >= 0.60.0 reads `_meta.claudeCode.vertex.{projectId,region}`). Used to build
4
+ * the wire request on both the immediate call and every replay. */
5
+ export declare function providerVertexMeta(vertex: {
6
+ projectId: string;
7
+ region: string;
8
+ }): Record<string, unknown>;
2
9
  /** One recorded `providers/set` — the full replacement configuration for one provider. The
3
10
  * request-scoped `_meta` passthrough is deliberately NOT recorded: it rides the immediate wire
4
- * call only, while the intent captures the durable routing config. */
11
+ * call only, while the intent captures the durable routing config. The `vertex` project/region ARE
12
+ * durable routing config, not request-scoped: the Claude agent's `vertex` apiType
13
+ * (claude-agent-acp >= 0.60.0) reads them from `_meta.claudeCode.vertex` and stores them as
14
+ * provider config, so a replayed `providers/set` that dropped them would be rejected and every
15
+ * pooled connection would fail to route. They are carried as a typed field (not generic `_meta`)
16
+ * so the request-scoped-`_meta`-is-not-replayed contract is unchanged. Non-credential; secrets
17
+ * stay in `headers`. */
5
18
  export interface ProviderIntent {
6
19
  providerId: SetProviderRequest["providerId"];
7
20
  apiType: SetProviderRequest["apiType"];
8
21
  baseUrl: SetProviderRequest["baseUrl"];
9
22
  /** SECRET gateway headers, replayed verbatim and never surfaced anywhere else. */
10
23
  headers?: SetProviderRequest["headers"];
24
+ /** Durable Vertex project/region — replayed into `_meta.claudeCode.vertex` on every
25
+ * reconstructed `providers/set`. Present only for `apiType === "vertex"`. */
26
+ vertex?: {
27
+ projectId: string;
28
+ region: string;
29
+ };
11
30
  }
12
31
  /** The runner's single in-memory provider-intent store. Default-OFF by construction: until the
13
32
  * first successful `setProvider`, no entry exists, `isStale` is always false, and replay is a
@@ -1 +1 @@
1
- {"version":3,"file":"provider-store.d.ts","sourceRoot":"","sources":["../src/provider-store.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;uEAEuE;AACvE,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC7C,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACvC,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACvC,kFAAkF;IAClF,OAAO,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;CACzC;AAWD;;2DAE2D;AAC3D,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IAEvD;;0CAEsC;IACtC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;IAWrD;;;+BAG2B;IAC3B,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAQjD,gFAAgF;IAChF,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE;IAK7C,iFAAiF;IACjF,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAInC;uEACmE;IACnE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAIjD"}
1
+ {"version":3,"file":"provider-store.d.ts","sourceRoot":"","sources":["../src/provider-store.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;oEAEoE;AACpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzG;AAED;;;;;;;;yBAQyB;AACzB,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC7C,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACvC,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACvC,kFAAkF;IAClF,OAAO,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACxC;kFAC8E;IAC9E,MAAM,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD;AAWD;;2DAE2D;AAC3D,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IAEvD;;0CAEsC;IACtC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;IAerD;;;+BAG2B;IAC3B,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAQjD,gFAAgF;IAChF,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE;IAK7C,iFAAiF;IACjF,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAInC;uEACmE;IACnE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAIjD"}
@@ -1,3 +1,9 @@
1
+ /** The durable Vertex routing config, shaped for the Claude agent's `providers/set` `_meta`
2
+ * (claude-agent-acp >= 0.60.0 reads `_meta.claudeCode.vertex.{projectId,region}`). Used to build
3
+ * the wire request on both the immediate call and every replay. */
4
+ export function providerVertexMeta(vertex) {
5
+ return { claudeCode: { vertex: { projectId: vertex.projectId, region: vertex.region } } };
6
+ }
1
7
  /** The runner's single in-memory provider-intent store. Default-OFF by construction: until the
2
8
  * first successful `setProvider`, no entry exists, `isStale` is always false, and replay is a
3
9
  * no-op — byte-identical to the pre-provider baseline. */
@@ -13,7 +19,11 @@ export class ProviderStore {
13
19
  this.byPool.set(poolKey, entry);
14
20
  }
15
21
  zeroizeHeaders(entry.intents.get(intent.providerId));
16
- entry.intents.set(intent.providerId, { ...intent, ...(intent.headers ? { headers: { ...intent.headers } } : {}) });
22
+ entry.intents.set(intent.providerId, {
23
+ ...intent,
24
+ ...(intent.headers ? { headers: { ...intent.headers } } : {}),
25
+ ...(intent.vertex ? { vertex: { ...intent.vertex } } : {}),
26
+ });
17
27
  entry.generation += 1;
18
28
  }
19
29
  /** Drop the recorded intent for one provider (after a successful `providers/disable`) —
package/dist/runner.d.ts CHANGED
@@ -65,6 +65,13 @@ export interface SetProviderOptions extends AuthProviderRoutingOptions {
65
65
  apiType: SetProviderRequest["apiType"];
66
66
  baseUrl: SetProviderRequest["baseUrl"];
67
67
  headers?: SetProviderRequest["headers"];
68
+ /** Durable Vertex project/region — required by the Claude agent's `vertex` apiType
69
+ * (claude-agent-acp >= 0.60.0), sent as `_meta.claudeCode.vertex` on the wire AND recorded so
70
+ * every replayed `providers/set` on a fresh pooled connection is accepted. */
71
+ vertex?: {
72
+ projectId: string;
73
+ region: string;
74
+ };
68
75
  }
69
76
  /** Options for AcpAgentRunner.disableProvider(). */
70
77
  export interface DisableProviderOptions extends AuthProviderRoutingOptions {
@@ -277,7 +284,9 @@ export declare class AcpAgentRunner implements AgentRunner, AuthCapableRunner, P
277
284
  * so without the record this dedicated connection's dispose would silently discard it (the
278
285
  * providers/* sibling of the dispose-after-authenticate bug). Every later connection replays
279
286
  * the intent at initialize, and the pool recycles so no session runs under stale routing.
280
- * The request-scoped `meta` passthrough rides the immediate call only; it is not replayed. */
287
+ * The durable `meta` (e.g. the vertex `_meta.claudeCode.vertex` project/region that the 0.60.0+
288
+ * Claude agent stores as provider config) is recorded alongside and replayed verbatim, so a
289
+ * reconstructed `providers/set` on a fresh connection is accepted rather than rejected. */
281
290
  setProvider(opts: SetProviderOptions): Promise<SetProviderResponse | void>;
282
291
  /** Disable one provider on the selected backend, drop its recorded routing intent, and recycle
283
292
  * the pool so no future session replays it. Idempotent like the wire method. */
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
package/dist/runner.js CHANGED
@@ -22,16 +22,13 @@ import { PooledConnection, ReattachCapabilityUnavailable, isChildCleanupError, }
22
22
  import { AcpAgentPool } from "./pool.js";
23
23
  import { TypedEventEmitter, } from "./events.js";
24
24
  import { InteractiveSession } from "./interactive.js";
25
- import { ClaudeBackend } from "./backends/claude.js";
26
- import { CodexBackend } from "./backends/codex.js";
27
- import { OpenCodeBackend } from "./backends/opencode.js";
28
- import { PiBackend } from "./backends/pi.js";
25
+ import { BUILTIN_BACKENDS, BUILTIN_BACKEND_IDS, builtinBackend, } from "./backends/builtins.js";
29
26
  import { CustomAcpBackend } from "./backends/custom.js";
30
27
  import { registryWithRunBackends, resolveBackendRegistry, } from "./registry.js";
31
28
  import { mapThrownError } from "./errors-map.js";
32
29
  import { buildAuthDescriptor, } from "./auth/auth-types.js";
33
30
  import { AuthStore, classifyCredential, } from "./auth/auth-store.js";
34
- import { ProviderStore } from "./provider-store.js";
31
+ import { ProviderStore, providerVertexMeta } from "./provider-store.js";
35
32
  import { resolveStructuredOutput } from "./structured-output.js";
36
33
  import { STRUCTURED_OUTPUT_SERVER_NAME, StructuredOutputToolHost, } from "./structured-tool.js";
37
34
  import { buildRunPrompt, mergeTurnMeta, promptWithImages, validatePromptImages, } from "./prompt.js";
@@ -40,6 +37,22 @@ const CONTINUATION_INSTRUCTION = "Your previous turn was interrupted before it f
40
37
  "limit or expired credentials, not because the task was complete. The full task and all prior " +
41
38
  "context are already in this session's history; do not restart or repeat work you already did. " +
42
39
  "Continue from where you stopped and produce the COMPLETE final answer to the original task now.";
40
+ /** Combine the request-scoped `_meta` passthrough with the durable Vertex routing config for the
41
+ * immediate `providers/set` wire call. Generic `_meta` stays request-scoped (never recorded); the
42
+ * Vertex config is deep-merged under `claudeCode.vertex` so it survives both the call and replay.
43
+ * Returns undefined when neither is present. */
44
+ function mergeProviderMeta(meta, vertex) {
45
+ if (!vertex)
46
+ return meta;
47
+ const vertexMeta = providerVertexMeta(vertex);
48
+ if (!meta)
49
+ return vertexMeta;
50
+ const existingClaudeCode = typeof meta.claudeCode === "object" && meta.claudeCode !== null ? meta.claudeCode : {};
51
+ return {
52
+ ...meta,
53
+ claudeCode: { ...existingClaudeCode, vertex: vertexMeta.claudeCode.vertex },
54
+ };
55
+ }
43
56
  /**
44
57
  * ACP-backed AgentRunner implementation. The caller that constructs an AcpAgentRunner owns it:
45
58
  * pass it into managers/runs as needed, then call dispose() (or use `await using`) when that
@@ -244,7 +257,7 @@ export class AcpAgentRunner {
244
257
  }
245
258
  /** Ids of every configured backend (built-ins + AcpRunnerOptions.backends). */
246
259
  listBackends() {
247
- const ids = new Set(["claude", "codex", "opencode", "pi"]);
260
+ const ids = new Set(BUILTIN_BACKEND_IDS);
248
261
  for (const name of this.backends.keys())
249
262
  ids.add(name);
250
263
  return [...ids];
@@ -276,7 +289,9 @@ export class AcpAgentRunner {
276
289
  * so without the record this dedicated connection's dispose would silently discard it (the
277
290
  * providers/* sibling of the dispose-after-authenticate bug). Every later connection replays
278
291
  * the intent at initialize, and the pool recycles so no session runs under stale routing.
279
- * The request-scoped `meta` passthrough rides the immediate call only; it is not replayed. */
292
+ * The durable `meta` (e.g. the vertex `_meta.claudeCode.vertex` project/region that the 0.60.0+
293
+ * Claude agent stores as provider config) is recorded alongside and replayed verbatim, so a
294
+ * reconstructed `providers/set` on a fresh connection is accepted rather than rejected. */
280
295
  async setProvider(opts) {
281
296
  if (this.disposed)
282
297
  throw new Error("ACP agent runner is disposed");
@@ -287,12 +302,13 @@ export class AcpAgentRunner {
287
302
  const backend = selectBackend(opts, this.backends);
288
303
  const connection = this.createDedicatedConnection(backend, () => undefined);
289
304
  try {
305
+ const wireMeta = mergeProviderMeta(opts.meta, opts.vertex);
290
306
  const request = {
291
307
  providerId: opts.providerId,
292
308
  apiType: opts.apiType,
293
309
  baseUrl: opts.baseUrl,
294
310
  ...(opts.headers ? { headers: opts.headers } : {}),
295
- ...(opts.meta ? { _meta: opts.meta } : {}),
311
+ ...(wireMeta ? { _meta: wireMeta } : {}),
296
312
  };
297
313
  const response = await connection.setProvider(request, opts.label);
298
314
  this.providerStore.record(backend.poolKey ?? backend.id, {
@@ -300,6 +316,7 @@ export class AcpAgentRunner {
300
316
  apiType: opts.apiType,
301
317
  baseUrl: opts.baseUrl,
302
318
  ...(opts.headers ? { headers: opts.headers } : {}),
319
+ ...(opts.vertex ? { vertex: opts.vertex } : {}),
303
320
  });
304
321
  this.pool.recycle(backend.poolKey ?? backend.id);
305
322
  opts.signal?.throwIfAborted();
@@ -1126,18 +1143,6 @@ function assertNoModelConfigOption(configOptions, label) {
1126
1143
  export function selectBackend(opts, registry) {
1127
1144
  return resolveModelRoute(opts.model ?? opts.tier, registry).backend;
1128
1145
  }
1129
- function builtinBackend(id) {
1130
- switch (id) {
1131
- case "claude":
1132
- return new ClaudeBackend();
1133
- case "codex":
1134
- return new CodexBackend();
1135
- case "opencode":
1136
- return new OpenCodeBackend();
1137
- case "pi":
1138
- return new PiBackend();
1139
- }
1140
- }
1141
1146
  /** Resolve routing and the verbatim model value together so backend choice and prefix stripping
1142
1147
  * cannot drift. A registered custom name has priority over a built-in on collision. */
1143
1148
  function resolveModelRoute(spec, registry) {
@@ -1149,12 +1154,9 @@ function resolveModelRoute(spec, registry) {
1149
1154
  const custom = registry?.get(firstSegment);
1150
1155
  if (custom)
1151
1156
  return { backend: new CustomAcpBackend(custom), modelSpec: inner };
1152
- if (firstSegment === "claude" ||
1153
- firstSegment === "codex" ||
1154
- firstSegment === "opencode" ||
1155
- firstSegment === "pi") {
1156
- return { backend: builtinBackend(firstSegment), modelSpec: inner };
1157
- }
1157
+ const builtIn = builtinBackend(firstSegment);
1158
+ if (builtIn)
1159
+ return { backend: builtIn, modelSpec: inner };
1158
1160
  return { backend: defaultBackend(registry), modelSpec: spec };
1159
1161
  }
1160
1162
  /** The re-attach handle for an open session: id + backend routing name + cwd + the
@@ -1166,6 +1168,9 @@ function sessionRefFor(session, backend, cwd) {
1166
1168
  sessionId: session.sessionId,
1167
1169
  backendId: backend.id,
1168
1170
  poolKey: backend.poolKey ?? backend.id,
1171
+ ...(session.initializeMeta !== undefined
1172
+ ? { initializeMeta: session.initializeMeta }
1173
+ : {}),
1169
1174
  cwd,
1170
1175
  reopen: {
1171
1176
  load: caps?.supportsLoadSession === true,
@@ -1264,9 +1269,12 @@ function defaultBackend(registry) {
1264
1269
  if (config)
1265
1270
  return new CustomAcpBackend(config);
1266
1271
  }
1267
- if (name === "opencode" || name === "codex" || name === "pi")
1268
- return builtinBackend(name);
1269
- return builtinBackend("claude");
1272
+ if (name) {
1273
+ const builtIn = builtinBackend(name);
1274
+ if (builtIn)
1275
+ return builtIn;
1276
+ }
1277
+ return BUILTIN_BACKENDS.claude.create();
1270
1278
  }
1271
1279
  function asciiLowercase(value) {
1272
1280
  return value.replace(/[A-Z]/g, (character) => String.fromCharCode(character.charCodeAt(0) + 32));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@automatalabs/acp-agents",
3
- "version": "0.32.2",
3
+ "version": "0.34.0",
4
4
  "license": "Apache-2.0",
5
5
  "engines": {
6
6
  "node": ">=22"
@@ -27,13 +27,13 @@
27
27
  "access": "public"
28
28
  },
29
29
  "dependencies": {
30
- "@agentclientprotocol/claude-agent-acp": "0.59.0",
30
+ "@agentclientprotocol/claude-agent-acp": "0.60.0",
31
31
  "@agentclientprotocol/sdk": "^1.2.1",
32
- "@automatalabs/codex-acp": "1.6.7",
32
+ "@automatalabs/codex-acp": "1.6.8",
33
33
  "@modelcontextprotocol/sdk": "^1.29",
34
34
  "typebox": "1.3.2",
35
35
  "@automatalabs/pi-acp": "0.2.0",
36
- "@automatalabs/shared-types": "0.25.1"
36
+ "@automatalabs/shared-types": "0.26.0"
37
37
  },
38
38
  "scripts": {
39
39
  "build": "tsc -b",