@automatalabs/acp-agents 0.37.3 → 0.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/acp-client.d.ts +2 -2
- package/dist/acp-client.js +4 -4
- package/dist/auth/auth-store.d.ts +9 -6
- package/dist/auth/auth-store.d.ts.map +1 -1
- package/dist/auth/auth-store.js +1 -3
- package/dist/auth/auth-types.d.ts +0 -16
- package/dist/auth/auth-types.d.ts.map +1 -1
- package/dist/auth/auth-types.js +1 -24
- package/dist/backends/pi.d.ts +1 -1
- package/dist/backends/pi.d.ts.map +1 -1
- package/dist/backends/pi.js +4 -7
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/pool.d.ts +1 -1
- package/dist/pool.d.ts.map +1 -1
- package/dist/pool.js +2 -2
- package/dist/protocol-coverage.d.ts +18 -13
- package/dist/protocol-coverage.d.ts.map +1 -1
- package/dist/protocol-coverage.js +8 -11
- package/dist/runner.js +4 -3
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -229,7 +229,7 @@ try {
|
|
|
229
229
|
## Authentication lifecycle
|
|
230
230
|
|
|
231
231
|
The built-in runner is auth-capable without widening the minimal `AgentRunner` interface.
|
|
232
|
-
`describeAuthMethods()` returns normalized `agent` / `terminal`
|
|
232
|
+
`describeAuthMethods()` returns normalized `agent` / `terminal` descriptors;
|
|
233
233
|
`completeAuth()` applies a host resolution; and `runner.auth.status()`, `.authenticate()`, and
|
|
234
234
|
`.logout()` provide the controller form. Construct the runner with `authCapabilities` to advertise
|
|
235
235
|
what the host can complete and `onAuth` to resolve an `AuthContext` inline.
|
package/dist/acp-client.d.ts
CHANGED
|
@@ -358,7 +358,7 @@ export interface PooledConnectionDeps {
|
|
|
358
358
|
};
|
|
359
359
|
/** The runner's single auth store (§2). When present, this connection reconciles to the current
|
|
360
360
|
* intent at the end of `initialize` (replay for in-process creds), overlays the spawn env with
|
|
361
|
-
* collected
|
|
361
|
+
* host-collected env values, and carries a generation stamp the pool gates selection on.
|
|
362
362
|
* Undefined => no auth wiring, byte-identical to the pre-auth baseline (default-OFF). */
|
|
363
363
|
authStore?: AuthStore;
|
|
364
364
|
/** The runner's single provider-intent store. When present, this connection replays the recorded
|
|
@@ -473,7 +473,7 @@ export declare class PooledConnection {
|
|
|
473
473
|
* re-primed with an authenticate RPC replay instead of being recycled (§2.6). */
|
|
474
474
|
canLiveReapply(machine: BackendAuthMachine): boolean;
|
|
475
475
|
/** Reconcile this connection to the current intent at the end of `initialize` (§2.5). For an
|
|
476
|
-
* in-process cred, replay `authenticate({methodId,_meta})`; for disk
|
|
476
|
+
* in-process cred, replay `authenticate({methodId,_meta})`; for disk (incl. env-at-spawn) a fresh process
|
|
477
477
|
* already carries the credential, so only stamp it current. */
|
|
478
478
|
private applyAuthIntent;
|
|
479
479
|
/** Idle in-process connection: re-send `authenticate` and re-stamp so the next session opens under
|
package/dist/acp-client.js
CHANGED
|
@@ -1275,7 +1275,7 @@ export class PooledConnection {
|
|
|
1275
1275
|
};
|
|
1276
1276
|
this.client = new MultiplexClient(this.backendId, this.onEvent, deps.clientHandlers, deps.permissionResolver, deps.elicitationResolver);
|
|
1277
1277
|
const { command, args, env } = backend.spawnConfig();
|
|
1278
|
-
// Spawn-env auth overlay (§2.8): host-collected
|
|
1278
|
+
// Spawn-env auth overlay (§2.8): host-collected env values (and, for a profiled backend,
|
|
1279
1279
|
// its `spawnAuthEnv` contribution) stacked ABOVE the backend's own env. Undefined when nothing is
|
|
1280
1280
|
// held — byte-identical to today. Passed straight to spawn; never logged (§2.14, Principle 9).
|
|
1281
1281
|
const authOverlay = this.authStore?.spawnEnvFor(backend.poolKey ?? backend.id);
|
|
@@ -1492,7 +1492,7 @@ export class PooledConnection {
|
|
|
1492
1492
|
return machine.currentKlassIsInProcess();
|
|
1493
1493
|
}
|
|
1494
1494
|
/** Reconcile this connection to the current intent at the end of `initialize` (§2.5). For an
|
|
1495
|
-
* in-process cred, replay `authenticate({methodId,_meta})`; for disk
|
|
1495
|
+
* in-process cred, replay `authenticate({methodId,_meta})`; for disk (incl. env-at-spawn) a fresh process
|
|
1496
1496
|
* already carries the credential, so only stamp it current. */
|
|
1497
1497
|
async applyAuthIntent(machine) {
|
|
1498
1498
|
if (machine.state !== "credentials_held" && machine.state !== "authenticated") {
|
|
@@ -1501,7 +1501,7 @@ export class PooledConnection {
|
|
|
1501
1501
|
}
|
|
1502
1502
|
const intent = machine.intentView();
|
|
1503
1503
|
if (intent?.klass !== "in-process") {
|
|
1504
|
-
// disk (native store
|
|
1504
|
+
// disk (native store, or env injected at spawn) needs no RPC — a fresh process already has them.
|
|
1505
1505
|
this.stampApplied(machine.generation);
|
|
1506
1506
|
return;
|
|
1507
1507
|
}
|
|
@@ -1601,7 +1601,7 @@ export class PooledConnection {
|
|
|
1601
1601
|
// Reconcile this connection to the current auth intent (§2.5). Runs identically on pooled,
|
|
1602
1602
|
// dedicated, and interactive connections — the intent is durable in the AuthStore, so a fresh
|
|
1603
1603
|
// process always re-primes an in-process (gateway) credential here, which is the direct fix
|
|
1604
|
-
// for the dispose-after-authenticate bug (gap 3). Disk
|
|
1604
|
+
// for the dispose-after-authenticate bug (gap 3). Disk intents are only stamped.
|
|
1605
1605
|
const machine = this.authMachine();
|
|
1606
1606
|
if (machine) {
|
|
1607
1607
|
machine.send({ t: "initialize_ok", connectionId: this.id, advertised: negotiated.authMethods });
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import type { AuthMethod } from "@agentclientprotocol/sdk";
|
|
2
2
|
import type { AuthProfile } from "./auth-profiles.js";
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
/** The SDK `AuthMethod.type` discriminants (ACP schema 1.21.0: `agent` | `terminal`; the former
|
|
4
|
+
* `env_var` variant was removed upstream — agentclientprotocol/agent-client-protocol #1796/#2000). */
|
|
5
|
+
export type AuthMethodType = "agent" | "terminal";
|
|
6
|
+
/** The two credential classes (§2.1):
|
|
5
7
|
* "disk" -> disk-persisted; apply on a fresh connection = NOTHING.
|
|
6
8
|
* "in-process" -> per-spawn via authenticate RPC replay (§2.5).
|
|
7
|
-
*
|
|
8
|
-
|
|
9
|
+
* Host-supplied env values (`AuthIntent.envValues`) ride a `disk` intent and are injected at spawn
|
|
10
|
+
* via the §2.8 overlay; the former `spawn-env` class went with the removed `env_var` method. */
|
|
11
|
+
export type CredentialClass = "disk" | "in-process";
|
|
9
12
|
/** Type-driven, agent-agnostic classification (§2.1). Keys ONLY on the method type + whether the
|
|
10
13
|
* advertised `_meta` is gateway-shaped — never on an agent id. */
|
|
11
14
|
export declare function classifyCredential(methodType: AuthMethodType, advertisedMeta: Record<string, unknown> | null | undefined): {
|
|
@@ -25,7 +28,7 @@ export interface AuthIntent {
|
|
|
25
28
|
* or codex `{ "api-key": { apiKey } }`). Populated for BOTH in-process and disk intents; how it is
|
|
26
29
|
* consumed depends on `klass`, not on whether it is set. */
|
|
27
30
|
readonly authenticateMeta?: Record<string, unknown>;
|
|
28
|
-
/** SECRET;
|
|
31
|
+
/** SECRET; `env` resolutions only. Env values injected at agent spawn (§2.8 overlay). */
|
|
29
32
|
readonly envValues?: Record<string, string>;
|
|
30
33
|
/** klass === "disk": a fresh process re-reads the native store; survives cold resume (§2.13). */
|
|
31
34
|
readonly diskBacked: boolean;
|
|
@@ -103,7 +106,7 @@ export declare class AuthStore {
|
|
|
103
106
|
existing(poolKey: string): BackendAuthMachine | undefined;
|
|
104
107
|
/** Every `poolKey` that has a machine (the touched backends). */
|
|
105
108
|
poolKeys(): string[];
|
|
106
|
-
/** The spawn-env overlay (§2.8): the machine's `
|
|
109
|
+
/** The spawn-env overlay (§2.8): the machine's host-collected `envValues` merged with the backend
|
|
107
110
|
* profile's `spawnAuthEnv(intent)` contribution. Undefined when neither applies. Secret — passed
|
|
108
111
|
* straight to `spawn`, never logged. */
|
|
109
112
|
spawnEnvFor(poolKey: string): Record<string, string> | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-store.d.ts","sourceRoot":"","sources":["../../src/auth/auth-store.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"auth-store.d.ts","sourceRoot":"","sources":["../../src/auth/auth-store.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/auth-store.js
CHANGED
|
@@ -3,8 +3,6 @@ import { isGatewayShapedMeta } from "./auth-types.js";
|
|
|
3
3
|
* advertised `_meta` is gateway-shaped — never on an agent id. */
|
|
4
4
|
export function classifyCredential(methodType, advertisedMeta) {
|
|
5
5
|
switch (methodType) {
|
|
6
|
-
case "env_var":
|
|
7
|
-
return { klass: "spawn-env", diskBacked: false };
|
|
8
6
|
case "terminal":
|
|
9
7
|
return { klass: "disk", diskBacked: true };
|
|
10
8
|
case "agent":
|
|
@@ -139,7 +137,7 @@ export class AuthStore {
|
|
|
139
137
|
poolKeys() {
|
|
140
138
|
return [...this.machines.keys()];
|
|
141
139
|
}
|
|
142
|
-
/** The spawn-env overlay (§2.8): the machine's `
|
|
140
|
+
/** The spawn-env overlay (§2.8): the machine's host-collected `envValues` merged with the backend
|
|
143
141
|
* profile's `spawnAuthEnv(intent)` contribution. Undefined when neither applies. Secret — passed
|
|
144
142
|
* straight to `spawn`, never logged. */
|
|
145
143
|
spawnEnvFor(poolKey) {
|
|
@@ -31,22 +31,6 @@ export type AuthMethodDescriptor = {
|
|
|
31
31
|
label?: string;
|
|
32
32
|
};
|
|
33
33
|
meta?: Record<string, unknown>;
|
|
34
|
-
} | {
|
|
35
|
-
type: "env_var";
|
|
36
|
-
id: string;
|
|
37
|
-
name: string;
|
|
38
|
-
description?: string;
|
|
39
|
-
link?: string;
|
|
40
|
-
/** Per-var `meta` carries the SDK-first-class `AuthEnvVar._meta` through unchanged, so no
|
|
41
|
-
* env_var surface is silently dropped (Principle 3, §3.6). */
|
|
42
|
-
vars: Array<{
|
|
43
|
-
name: string;
|
|
44
|
-
label?: string;
|
|
45
|
-
secret: boolean;
|
|
46
|
-
optional: boolean;
|
|
47
|
-
meta?: Record<string, unknown>;
|
|
48
|
-
}>;
|
|
49
|
-
meta?: Record<string, unknown>;
|
|
50
34
|
};
|
|
51
35
|
/** The host-collected outcome of one auth step. `env`/`meta` payloads are SECRET (Principle 9). */
|
|
52
36
|
export type AuthResolution = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-types.d.ts","sourceRoot":"","sources":["../../src/auth/auth-types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth-types.d.ts","sourceRoot":"","sources":["../../src/auth/auth-types.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,wGAAwG;AACxG,MAAM,MAAM,oBAAoB,GAC5B;IACE,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;oDAEgD;IAChD,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B;;;4DAGwD;IACxD,WAAW,EAAE,OAAO,CAAC;CACtB,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;0EAEsE;IACtE,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1F,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,CAAC;AAEN,mGAAmG;AACnG,MAAM,MAAM,cAAc,GAEtB;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAE3C;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAG5C;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAErE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACpE;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAE7B,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAClD,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,mGAAmG;AACnG,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC;AAM1F;;mEAEmE;AACnE,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAE1C;;8FAE8F;AAC9F,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAE7F;AAgCD;;sDAEsD;AACtD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,oBAAoB,EAAE,CAE/G;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,GAAG,oBAAoB,CAuChG"}
|
package/dist/auth/auth-types.js
CHANGED
|
@@ -35,11 +35,8 @@ function terminalAuthHint(meta) {
|
|
|
35
35
|
* `opencode-login` becomes a `terminal` descriptor for us, while codex's `gateway` (which carries
|
|
36
36
|
* `_meta.gateway`, not `terminal-auth`) does not (§3.1 decision). */
|
|
37
37
|
function isTerminalShaped(method) {
|
|
38
|
-
|
|
39
|
-
if (type === "terminal")
|
|
38
|
+
if (typeOf(method) === "terminal")
|
|
40
39
|
return true;
|
|
41
|
-
if (type === "env_var")
|
|
42
|
-
return false;
|
|
43
40
|
return terminalAuthHint(metaOf(method)) !== undefined;
|
|
44
41
|
}
|
|
45
42
|
/** Pure, agent-agnostic per-method dispatcher (§1.3): maps each advertised `AuthMethod` to an
|
|
@@ -74,26 +71,6 @@ export function buildAuthDescriptor(method, spawn) {
|
|
|
74
71
|
...(meta ? { meta } : {}),
|
|
75
72
|
};
|
|
76
73
|
}
|
|
77
|
-
if (type === "env_var") {
|
|
78
|
-
const envMethod = method;
|
|
79
|
-
const vars = (envMethod.vars ?? []).map((v) => ({
|
|
80
|
-
name: v.name,
|
|
81
|
-
...(v.label != null ? { label: v.label } : {}),
|
|
82
|
-
// SDK defaults: `secret` defaults TRUE, `optional` defaults FALSE.
|
|
83
|
-
secret: v.secret ?? true,
|
|
84
|
-
optional: v.optional ?? false,
|
|
85
|
-
...(v._meta ? { meta: v._meta } : {}),
|
|
86
|
-
}));
|
|
87
|
-
return {
|
|
88
|
-
type: "env_var",
|
|
89
|
-
id: method.id,
|
|
90
|
-
name: method.name,
|
|
91
|
-
...(description ? { description } : {}),
|
|
92
|
-
...(envMethod.link != null ? { link: envMethod.link } : {}),
|
|
93
|
-
vars,
|
|
94
|
-
...(meta ? { meta } : {}),
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
74
|
// agent (AuthMethodAgent, or the default when `type` is absent):
|
|
98
75
|
const expectsMeta = meta != null;
|
|
99
76
|
return {
|
package/dist/backends/pi.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { TSchema } from "typebox";
|
|
2
2
|
import type { AuthProfile } from "../auth/auth-profile.js";
|
|
3
3
|
import type { Backend, ProviderErrorClassification, ProviderErrorMetadata, SpawnConfig } from "../backend.js";
|
|
4
|
-
/** Pi auth adaptation for provider environment keys
|
|
4
|
+
/** Pi auth adaptation for its ambient credential store (provider environment keys or ~/.pi/agent/auth.json). */
|
|
5
5
|
export declare const piAuthProfile: AuthProfile;
|
|
6
6
|
export declare class PiBackend implements Backend {
|
|
7
7
|
readonly authProfile: AuthProfile;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/backends/pi.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EACV,OAAO,EACP,2BAA2B,EAC3B,qBAAqB,EACrB,WAAW,EACZ,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/backends/pi.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EACV,OAAO,EACP,2BAA2B,EAC3B,qBAAqB,EACrB,WAAW,EACZ,MAAM,eAAe,CAAC;AAcvB,gHAAgH;AAChH,eAAO,MAAM,aAAa,EAAE,WAS3B,CAAC;AAEF,qBAAa,SAAU,YAAW,OAAO;IAG3B,QAAQ,CAAC,WAAW,EAAE,WAAW;IAF7C,QAAQ,CAAC,EAAE,EAAG,IAAI,CAAU;gBAEP,WAAW,GAAE,WAA2B;IAE7D,QAAQ,CAAC,mBAAmB,QAAQ;IACpC,QAAQ,CAAC,0BAA0B,QAAQ;IAE3C,qBAAqB,CACnB,KAAK,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,2BAA2B,GAAG,SAAS;IAkB1C,WAAW,IAAI,WAAW;IAkB1B,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAIlD,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;CAG9E;AAED,eAAO,MAAM,mBAAmB,sDA0B9B,CAAC"}
|
package/dist/backends/pi.js
CHANGED
|
@@ -6,15 +6,12 @@ import { splitArgs } from "../backend.js";
|
|
|
6
6
|
import { BUILTIN_PROTOCOL_COVERAGE } from "../protocol-coverage.js";
|
|
7
7
|
import { defineBuiltinBackend } from "./define.js";
|
|
8
8
|
const require = createRequire(import.meta.url);
|
|
9
|
+
// pi-acp advertises a single ambient method since ACP schema 1.21.0 removed the `env_var` variant
|
|
10
|
+
// the five provider API-key methods used; provider keys remain ambient spawn-environment credentials.
|
|
9
11
|
const PI_AUTH_REMEDIATION = {
|
|
10
|
-
"
|
|
11
|
-
"openai-api-key": "Set OPENAI_API_KEY, then retry or resume the workflow.",
|
|
12
|
-
"gemini-api-key": "Set GEMINI_API_KEY, then retry or resume the workflow.",
|
|
13
|
-
"xai-api-key": "Set XAI_API_KEY, then retry or resume the workflow.",
|
|
14
|
-
"openrouter-api-key": "Set OPENROUTER_API_KEY, then retry or resume the workflow.",
|
|
15
|
-
"pi-stored-credentials": "Configure pi credentials in ~/.pi/agent/auth.json, then retry or resume the workflow.",
|
|
12
|
+
"pi-stored-credentials": "Set a provider API key (ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY, XAI_API_KEY, or OPENROUTER_API_KEY) in the environment or configure pi credentials in ~/.pi/agent/auth.json, then retry or resume the workflow.",
|
|
16
13
|
};
|
|
17
|
-
/** Pi auth adaptation for provider environment keys
|
|
14
|
+
/** Pi auth adaptation for its ambient credential store (provider environment keys or ~/.pi/agent/auth.json). */
|
|
18
15
|
export const piAuthProfile = {
|
|
19
16
|
backendId: "pi",
|
|
20
17
|
clientAuthCapabilities: () => ({ terminal: false, gateway: false }),
|
package/dist/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export { InteractiveSession } from "./interactive.js";
|
|
|
12
12
|
export { LoadedTurnFailedError, LoadedTurnStillRunningError, isLoadedTurnFailedError, isLoadedTurnStillRunningError, } from "./interactive.js";
|
|
13
13
|
export type { InteractiveSessionOptions, InteractiveTurn } from "./interactive.js";
|
|
14
14
|
export { AGENT_METHODS, CLIENT_METHODS } from "@agentclientprotocol/sdk";
|
|
15
|
-
export type { AgentNotificationMethod, AgentNotificationParamsByMethod, AgentAuthCapabilities, AgentRequestMethod, AgentRequestParamsByMethod, AgentRequestResponsesByMethod, AuthCapabilities,
|
|
15
|
+
export type { AgentNotificationMethod, AgentNotificationParamsByMethod, AgentAuthCapabilities, AgentRequestMethod, AgentRequestParamsByMethod, AgentRequestResponsesByMethod, AuthCapabilities, AuthenticateRequest, AuthenticateResponse, AuthMethod, AuthMethodAgent, AuthMethodId, AuthMethodTerminal, DisableProviderRequest, DisableProviderResponse, CompleteElicitationNotification, ConnectMcpRequest, ConnectMcpResponse, CreateElicitationRequest, CreateElicitationResponse, DeleteSessionRequest, DeleteSessionResponse, DisconnectMcpRequest, DisconnectMcpResponse, ElicitationAcceptAction, ElicitationCapabilities, ElicitationContentValue, ElicitationFormCapabilities, ElicitationFormMode, ElicitationId, ElicitationPropertySchema, ElicitationRequestScope, ElicitationSchema, ElicitationSchemaType, ElicitationSessionScope, ElicitationUrlCapabilities, ElicitationUrlMode, ForkSessionRequest, ForkSessionResponse, ListProvidersRequest, ListProvidersResponse, ListSessionsRequest, ListSessionsResponse, LlmProtocol, LoadSessionRequest, LoadSessionResponse, LogoutCapabilities, LogoutRequest, LogoutResponse, McpConnectionId, McpServerAcp, McpServerAcpId, MessageMcpNotification, MessageMcpRequest, MessageMcpResponse, ResumeSessionRequest, ResumeSessionResponse, ProviderCurrentConfig, ProviderId, ProviderInfo, ProvidersCapabilities, SessionMode, SessionModeState, SessionConfigOption, SessionInfo, SendRequestOptions, SetProviderRequest, SetProviderResponse, } from "@agentclientprotocol/sdk";
|
|
16
16
|
export { BACKENDS_ENV, registryWithRunBackends, resolveBackendRegistry } from "./registry.js";
|
|
17
17
|
export type { BackendRegistry, CustomBackendConfig, RegisteredBackend } from "./registry.js";
|
|
18
18
|
export { CANCEL_NOT_HONORED_GRACE_MS, PI_CHILD_CLEANUP_DEADLINE_MS, PI_CLOSE_DELIVERY_MARGIN_MS, PI_CLOSE_SESSION_TIMEOUT_MS, PI_DISPOSE_SIGKILL_GRACE_MS, PI_PROCESS_EXIT_MARGIN_MS, PI_PROCESS_SHUTDOWN_ENVELOPE_MS, PooledConnection, SESSION_STEERING_METHOD, LOADED_TURN_QUERY_METHOD, LOADED_TURN_ENDED_METHOD, SessionHandle, isChildCleanupError, } from "./acp-client.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7E,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACtG,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC5G,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,SAAS,EACT,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,cAAc,GACf,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAClH,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACzE,YAAY,EACV,uBAAuB,EACvB,+BAA+B,EAC/B,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,EAC1B,6BAA6B,EAC7B,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/pool.d.ts
CHANGED
|
@@ -93,7 +93,7 @@ export declare class AcpAgentPool {
|
|
|
93
93
|
/** Reconcile every live connection for a key to the current provider-routing generation. There
|
|
94
94
|
* is no live re-apply lane here (provider changes are rare host-level config): an idle stale
|
|
95
95
|
* process is recycled now, a busy one drains and recycles on release — mirroring the
|
|
96
|
-
* disk
|
|
96
|
+
* disk branch of reconcileStale. Never blocks. */
|
|
97
97
|
private reconcileProviderStale;
|
|
98
98
|
/** Public: reconcile every live connection for a backend to the current generation (§2.6). Called
|
|
99
99
|
* by the runner immediately after a host-completed auth — or a provider-routing change — so a
|
package/dist/pool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAa,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,gBAAgB,EAEhB,aAAa,EACb,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,KAAK,EAAE,SAAS,EAAsB,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAYzD,UAAU,SAAS;IACjB,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG;QAAE,KAAK,CAAC,IAAI,IAAI,CAAA;KAAE,CAAC;IAC1D,KAAK,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,IAAI,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC7B,qGAAqG;IACrG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4FAA4F;IAC5F,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED;6FAC6F;AAC7F,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;4EACwE;IACxE,gBAAgB,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC7D;;iEAE6D;IAC7D,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;8CAG0C;IAC1C,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,kFAAkF;IAClF,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,kGAAkG;AAClG,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAUvD;AAED,qBAAa,YAAY;IAerB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAdvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;IACtE,4GAA4G;IAC5G,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA+B;IACpE,8FAA8F;IAC9F,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmD;IACrF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAS;gBAGvB,OAAO,GAAE,cAAmB,EACX,IAAI,GAAE,WAAgB;IAWzC,8FAA8F;IACxF,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAiBhF,2FAA2F;IACrF,eAAe,CACnB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,EACzF,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAO,GACzE,OAAO,CAAC,aAAa,CAAC;IAiBzB,4FAA4F;IACtF,uBAAuB,CAC3B,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,EACzF,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAO,GACzE,OAAO,CAAC;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAA;KAAE,CAAC;IAsBhE;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAwDxB;uFACmF;IACnF,OAAO,CAAC,gBAAgB;IAKxB;;iEAE6D;IAC7D,OAAO,CAAC,cAAc;IAatB;;;
|
|
1
|
+
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"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"}
|
package/dist/pool.js
CHANGED
|
@@ -172,7 +172,7 @@ export class AcpAgentPool {
|
|
|
172
172
|
c.scheduleReapply(machine); // in-process: re-auth the idle connection live
|
|
173
173
|
}
|
|
174
174
|
else if (c.activeSessions === 0) {
|
|
175
|
-
this.disposeAndDrop(key, c); // disk
|
|
175
|
+
this.disposeAndDrop(key, c); // disk (incl. env-at-spawn): recycle the idle process now
|
|
176
176
|
}
|
|
177
177
|
else {
|
|
178
178
|
c.markForRecycleWhenIdle(machine); // BUSY: drain, then recycle on release
|
|
@@ -182,7 +182,7 @@ export class AcpAgentPool {
|
|
|
182
182
|
/** Reconcile every live connection for a key to the current provider-routing generation. There
|
|
183
183
|
* is no live re-apply lane here (provider changes are rare host-level config): an idle stale
|
|
184
184
|
* process is recycled now, a busy one drains and recycles on release — mirroring the
|
|
185
|
-
* disk
|
|
185
|
+
* disk branch of reconcileStale. Never blocks. */
|
|
186
186
|
reconcileProviderStale(key) {
|
|
187
187
|
const store = this.deps.providerStore;
|
|
188
188
|
if (!store)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AGENT_METHODS, CLIENT_METHODS } from "@agentclientprotocol/sdk";
|
|
2
|
-
import type { AuthCapabilities, AuthMethod, AuthMethodAgent,
|
|
2
|
+
import type { AuthCapabilities, AuthMethod, AuthMethodAgent, AuthMethodTerminal, ClientCapabilities } from "@agentclientprotocol/sdk";
|
|
3
3
|
import { LOADED_TURN_QUERY_METHOD, SESSION_STEERING_METHOD } from "./acp-client.js";
|
|
4
4
|
type ValueOf<T> = T[keyof T];
|
|
5
5
|
type ClientMethod = ValueOf<typeof CLIENT_METHODS>;
|
|
@@ -31,27 +31,32 @@ export declare const AUTH_CAPABILITY_KEYS: readonly string[];
|
|
|
31
31
|
* `null`/absent `auth` (the default-OFF baseline) is vacuously conformant. Reads only structural
|
|
32
32
|
* keys — never any advertised value — so it is secret-free. */
|
|
33
33
|
export declare function assertAuthCapabilityShape(auth: ClientCapabilities["auth"]): void;
|
|
34
|
-
/** The
|
|
35
|
-
*
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
*
|
|
34
|
+
/** The two `AuthMethod` variants the base dispatcher handles (`agent`/`terminal`, §1.3). `agent` is
|
|
35
|
+
* the default when `type` is absent (`AuthMethodAgent` carries no `type`). ACP schema 1.21.0
|
|
36
|
+
* (`@agentclientprotocol/sdk` 1.4.0) removed the former `env_var` variant
|
|
37
|
+
* (agentclientprotocol/agent-client-protocol #1796/#2000); the tripwires below are retargeted to the
|
|
38
|
+
* two-variant union and additionally pin that `env_var` stays absent. */
|
|
39
|
+
export declare const HANDLED_AUTH_METHOD_TYPES: readonly ["agent", "terminal"];
|
|
40
|
+
/** §4.6.4 item 3 — the SDK `AuthMethod` union is EXACTLY the two variants the dispatcher handles;
|
|
41
|
+
* a third variant (a widened union) makes this `false` and fails `tsc`. */
|
|
39
42
|
export type _AuthMethodUnionPinned = Expect<[
|
|
40
43
|
AuthMethod
|
|
41
|
-
] extends [AuthMethodAgent | AuthMethodTerminal
|
|
42
|
-
/** The `terminal
|
|
43
|
-
*
|
|
44
|
-
*
|
|
44
|
+
] extends [AuthMethodAgent | AuthMethodTerminal] ? true : false>;
|
|
45
|
+
/** The `terminal` discriminant is still the literal the dispatcher branches on: the SDK intersects the
|
|
46
|
+
* bare method type with `{ type: "…" }` in the `AuthMethod` union, so a dropped discriminant makes
|
|
47
|
+
* `Extract` collapse to `never` and fails `tsc`. */
|
|
45
48
|
export type _AuthMethodTerminalDiscriminant = Expect<[
|
|
46
49
|
Extract<AuthMethod, {
|
|
47
50
|
type: "terminal";
|
|
48
51
|
}>
|
|
49
52
|
] extends [never] ? false : true>;
|
|
50
|
-
|
|
53
|
+
/** The removed `env_var` discriminant must STAY absent: if a future SDK reintroduces it, this fails
|
|
54
|
+
* `tsc` so the dispatcher/descriptor decision is re-made consciously, never by silent widening. */
|
|
55
|
+
export type _AuthMethodEnvVarAbsent = Expect<[
|
|
51
56
|
Extract<AuthMethod, {
|
|
52
57
|
type: "env_var";
|
|
53
58
|
}>
|
|
54
|
-
] extends [never] ?
|
|
59
|
+
] extends [never] ? true : false>;
|
|
55
60
|
/** The cross-agent `_meta` key conventions the base layer keys on (§1 intro; recognized by literal
|
|
56
61
|
* name, NOT SDK schema fields). `gateway` ⇒ in-process classification; `terminal-auth` ⇒ terminal
|
|
57
62
|
* launch hint; `api-key` ⇒ codex's disk api-key `_meta`. */
|
|
@@ -73,7 +78,7 @@ export declare const PI_ACP_PROTOCOL_CONTRACT: {
|
|
|
73
78
|
readonly http: true;
|
|
74
79
|
readonly sse: true;
|
|
75
80
|
};
|
|
76
|
-
readonly authMethodIds: readonly ["
|
|
81
|
+
readonly authMethodIds: readonly ["pi-stored-credentials"];
|
|
77
82
|
readonly providerErrorKinds: readonly ["auth_error", "rate_limit", "billing_error", "provider_error"];
|
|
78
83
|
};
|
|
79
84
|
/** One row of the §3.6 full `_meta` support matrix, landed as executable data (not prose) so an
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol-coverage.d.ts","sourceRoot":"","sources":["../src/protocol-coverage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"protocol-coverage.d.ts","sourceRoot":"","sources":["../src/protocol-coverage.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,9 +75,12 @@ export function assertAuthCapabilityShape(auth) {
|
|
|
75
75
|
// `@agentclientprotocol/sdk` bump that widens the method union, or an agent bump that moves a `_meta`
|
|
76
76
|
// surface, fails the build BEFORE release (bump-ACP-deps-every-release), never silently.
|
|
77
77
|
// ---------------------------------------------------------------------------------------------
|
|
78
|
-
/** The
|
|
79
|
-
*
|
|
80
|
-
|
|
78
|
+
/** The two `AuthMethod` variants the base dispatcher handles (`agent`/`terminal`, §1.3). `agent` is
|
|
79
|
+
* the default when `type` is absent (`AuthMethodAgent` carries no `type`). ACP schema 1.21.0
|
|
80
|
+
* (`@agentclientprotocol/sdk` 1.4.0) removed the former `env_var` variant
|
|
81
|
+
* (agentclientprotocol/agent-client-protocol #1796/#2000); the tripwires below are retargeted to the
|
|
82
|
+
* two-variant union and additionally pin that `env_var` stays absent. */
|
|
83
|
+
export const HANDLED_AUTH_METHOD_TYPES = ["agent", "terminal"];
|
|
81
84
|
/** The cross-agent `_meta` key conventions the base layer keys on (§1 intro; recognized by literal
|
|
82
85
|
* name, NOT SDK schema fields). `gateway` ⇒ in-process classification; `terminal-auth` ⇒ terminal
|
|
83
86
|
* launch hint; `api-key` ⇒ codex's disk api-key `_meta`. */
|
|
@@ -96,14 +99,8 @@ export const ACP_AUTH_REQUIRED_CODE_EXCLUSIVE = -32000;
|
|
|
96
99
|
* of leaving the built-in coupled only through prose. */
|
|
97
100
|
export const PI_ACP_PROTOCOL_CONTRACT = {
|
|
98
101
|
mcpCapabilities: { http: true, sse: true },
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
"openai-api-key",
|
|
102
|
-
"gemini-api-key",
|
|
103
|
-
"xai-api-key",
|
|
104
|
-
"openrouter-api-key",
|
|
105
|
-
"pi-stored-credentials",
|
|
106
|
-
],
|
|
102
|
+
// The five provider API-key methods were `env_var`-typed and left with that variant (ACP 1.21.0).
|
|
103
|
+
authMethodIds: ["pi-stored-credentials"],
|
|
107
104
|
providerErrorKinds: ["auth_error", "rate_limit", "billing_error", "provider_error"],
|
|
108
105
|
};
|
|
109
106
|
/** The §3.6 auth `_meta` matrix as executable rows — the exact surfaces §4.6.4 item 4 enumerates
|
package/dist/runner.js
CHANGED
|
@@ -906,7 +906,7 @@ export class AcpAgentRunner {
|
|
|
906
906
|
throw new WorkflowError("completeAuth requires a methodId to record the resolution", WorkflowErrorCode.SCRIPT_VALIDATION_ERROR, { recoverable: false, agentLabel: label });
|
|
907
907
|
}
|
|
908
908
|
const chosen = advertised.find((m) => m.id === methodId);
|
|
909
|
-
const methodType = chosen ? authMethodType(chosen) :
|
|
909
|
+
const methodType = chosen ? authMethodType(chosen) : "agent";
|
|
910
910
|
const advertisedMeta = chosen ? authMethodMeta(chosen) : undefined;
|
|
911
911
|
if (resolution.outcome === "agent-login") {
|
|
912
912
|
// The sole path from which the bare-`agent` login RPC ever fires (§2.9 step 3): the agent runs
|
|
@@ -1230,10 +1230,11 @@ function resolutionMethodId(resolution) {
|
|
|
1230
1230
|
return undefined;
|
|
1231
1231
|
}
|
|
1232
1232
|
/** Infer the target method for an env/completed resolution that did not name one: match by outcome
|
|
1233
|
-
* against the advertised methods (
|
|
1233
|
+
* against the advertised methods (an `env` resolution targets an `agent` method whose credential is
|
|
1234
|
+
* read from the spawn environment; there is typically exactly one terminal method). */
|
|
1234
1235
|
function inferMethodId(resolution, advertised) {
|
|
1235
1236
|
if (resolution.outcome === "env") {
|
|
1236
|
-
return advertised.find((m) => authMethodType(m) === "
|
|
1237
|
+
return advertised.find((m) => authMethodType(m) === "agent")?.id;
|
|
1237
1238
|
}
|
|
1238
1239
|
if (resolution.outcome === "completed") {
|
|
1239
1240
|
return (advertised.find((m) => authMethodType(m) === "terminal")?.id ??
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@automatalabs/acp-agents",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.38.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.
|
|
31
|
-
"@agentclientprotocol/sdk": "^1.
|
|
30
|
+
"@agentclientprotocol/claude-agent-acp": "0.70.0",
|
|
31
|
+
"@agentclientprotocol/sdk": "^1.4.0",
|
|
32
32
|
"@modelcontextprotocol/sdk": "^1.29",
|
|
33
33
|
"typebox": "1.3.2",
|
|
34
|
-
"@automatalabs/codex-acp": "1.9.
|
|
35
|
-
"@automatalabs/pi-acp": "0.
|
|
36
|
-
"@automatalabs/shared-types": "0.
|
|
34
|
+
"@automatalabs/codex-acp": "1.9.4",
|
|
35
|
+
"@automatalabs/pi-acp": "0.5.0",
|
|
36
|
+
"@automatalabs/shared-types": "0.31.0"
|
|
37
37
|
},
|
|
38
38
|
"scripts": {
|
|
39
39
|
"build": "tsc -b",
|