@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.
- package/dist/acp-client.d.ts +4 -1
- package/dist/acp-client.d.ts.map +1 -1
- package/dist/acp-client.js +38 -4
- package/dist/auth/auth-profile.d.ts +28 -0
- package/dist/auth/auth-profile.d.ts.map +1 -0
- package/dist/auth/auth-profile.js +1 -0
- package/dist/auth/auth-profiles.d.ts +5 -64
- package/dist/auth/auth-profiles.d.ts.map +1 -1
- package/dist/auth/auth-profiles.js +6 -66
- package/dist/backend.d.ts +3 -6
- package/dist/backend.d.ts.map +1 -1
- package/dist/backends/builtins.d.ts +14 -0
- package/dist/backends/builtins.d.ts.map +1 -0
- package/dist/backends/builtins.js +26 -0
- package/dist/backends/claude.d.ts +6 -2
- package/dist/backends/claude.d.ts.map +1 -1
- package/dist/backends/claude.js +40 -4
- package/dist/backends/codex.d.ts +6 -3
- package/dist/backends/codex.d.ts.map +1 -1
- package/dist/backends/codex.js +51 -4
- package/dist/backends/custom.d.ts +0 -1
- package/dist/backends/custom.d.ts.map +1 -1
- package/dist/backends/custom.js +0 -1
- package/dist/backends/define.d.ts +64 -0
- package/dist/backends/define.d.ts.map +1 -0
- package/dist/backends/define.js +36 -0
- package/dist/backends/opencode.d.ts +6 -3
- package/dist/backends/opencode.d.ts.map +1 -1
- package/dist/backends/opencode.js +31 -4
- package/dist/backends/pi.d.ts +6 -3
- package/dist/backends/pi.d.ts.map +1 -1
- package/dist/backends/pi.js +44 -4
- package/dist/events.d.ts +3 -1
- package/dist/events.d.ts.map +1 -1
- package/dist/index.d.ts +7 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/interactive.d.ts.map +1 -1
- package/dist/interactive.js +3 -0
- package/dist/protocol-coverage.d.ts +20 -14
- package/dist/protocol-coverage.d.ts.map +1 -1
- package/dist/protocol-coverage.js +30 -13
- package/dist/provider-store.d.ts +20 -1
- package/dist/provider-store.d.ts.map +1 -1
- package/dist/provider-store.js +11 -1
- package/dist/runner.d.ts +10 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +37 -29
- 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
|
-
|
|
117
|
-
{ agent: "claude", capability: "gateway", direction: "C↔A", status: "
|
|
118
|
-
{ agent: "claude", capability: "terminal-auth", direction: "C↔A", status: "
|
|
119
|
-
{ agent: "codex", capability: "api-key", direction: "A→C", status: "
|
|
120
|
-
{ agent: "codex", capability: "gateway", direction: "C↔A", status: "
|
|
121
|
-
{ agent: "codex", capability: "DEFAULT_AUTH_REQUEST", direction: "C→A", status: "
|
|
122
|
-
{ agent: "codex", capability: "persist", direction: "C→A", status: "
|
|
123
|
-
{ agent: "opencode", capability: "terminal-auth", direction: "C↔A", status: "
|
|
124
|
-
{ agent: "all", capability: "provider env keys", direction: "C→A", status: "
|
|
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
|
+
});
|
package/dist/provider-store.d.ts
CHANGED
|
@@ -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;;
|
|
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"}
|
package/dist/provider-store.js
CHANGED
|
@@ -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, {
|
|
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
|
|
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. */
|
package/dist/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAmBA,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,WAAW,EAGhB,KAAK,UAAU,EAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EAEV,sBAAsB,EACtB,uBAAuB,EAEvB,qBAAqB,EAErB,oBAAoB,EAEpB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EAEpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAQvC,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAGlB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,OAAO,
|
|
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 {
|
|
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(
|
|
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
|
|
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
|
-
...(
|
|
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
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
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
|
|
1268
|
-
|
|
1269
|
-
|
|
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.
|
|
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.
|
|
30
|
+
"@agentclientprotocol/claude-agent-acp": "0.60.0",
|
|
31
31
|
"@agentclientprotocol/sdk": "^1.2.1",
|
|
32
|
-
"@automatalabs/codex-acp": "1.6.
|
|
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.
|
|
36
|
+
"@automatalabs/shared-types": "0.26.0"
|
|
37
37
|
},
|
|
38
38
|
"scripts": {
|
|
39
39
|
"build": "tsc -b",
|