@automatalabs/acp-agents 0.28.1 → 0.30.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 +25 -14
- package/dist/acp-client.d.ts +15 -0
- package/dist/acp-client.d.ts.map +1 -1
- package/dist/acp-client.js +46 -1
- package/dist/auth/auth-profiles.d.ts +1 -0
- package/dist/auth/auth-profiles.d.ts.map +1 -1
- package/dist/auth/auth-profiles.js +20 -0
- package/dist/backend.d.ts +2 -2
- package/dist/backend.d.ts.map +1 -1
- package/dist/backends/pi.d.ts +20 -0
- package/dist/backends/pi.d.ts.map +1 -0
- package/dist/backends/pi.js +84 -0
- package/dist/events.d.ts +1 -1
- package/dist/events.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/pool.d.ts +8 -0
- package/dist/pool.d.ts.map +1 -1
- package/dist/pool.js +22 -1
- package/dist/protocol-coverage.d.ts +10 -0
- package/dist/protocol-coverage.d.ts.map +1 -1
- package/dist/protocol-coverage.js +17 -0
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +139 -42
- package/dist/usage.d.ts +8 -0
- package/dist/usage.d.ts.map +1 -1
- package/dist/usage.js +30 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @automatalabs/acp-agents
|
|
2
2
|
|
|
3
|
-
Low-level building block: the [Agent Client Protocol](https://agentclientprotocol.com) (ACP) client plus Claude, Codex, OpenCode, and custom backends that implement the `AgentRunner` seam from `@automatalabs/shared-types`. It spawns an ACP server as a child process, drives one subagent turn to completion, and returns structured output or text.
|
|
3
|
+
Low-level building block: the [Agent Client Protocol](https://agentclientprotocol.com) (ACP) client plus Claude, Codex, OpenCode, pi, and custom backends that implement the `AgentRunner` seam from `@automatalabs/shared-types`. It spawns an ACP server as a child process, drives one subagent turn to completion, and returns structured output or text.
|
|
4
4
|
|
|
5
5
|
This is the layer `@automatalabs/workflows` and `@automatalabs/mcp-server` are built on.
|
|
6
6
|
|
|
@@ -12,12 +12,12 @@ If you are orchestrating a workflow, use [`@automatalabs/workflows`](../workflow
|
|
|
12
12
|
npm install @automatalabs/acp-agents
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
Claude and
|
|
15
|
+
Claude, Codex, and pi adapters are dependencies of this package. OpenCode is resolved from an
|
|
16
16
|
`opencode-ai` installation or an `opencode` executable on `PATH` only when selected.
|
|
17
17
|
|
|
18
18
|
## Standalone use: drive one agent
|
|
19
19
|
|
|
20
|
-
`createAcpRunner().run(prompt, options)` runs a single agent to completion. Pass a [typebox](https://github.com/sinclairzx81/typebox) `schema` to get a validated object back (typed as `Static<typeof schema>`); omit it to get the final assistant text as a `string`. The Claude, Codex, OpenCode, or registered custom backend is selected from `model` / `tier`. Whoever constructs the runner owns it: call `dispose()` (or use `await using`) when you're done to tear down the pooled child processes.
|
|
20
|
+
`createAcpRunner().run(prompt, options)` runs a single agent to completion. Pass a [typebox](https://github.com/sinclairzx81/typebox) `schema` to get a validated object back (typed as `Static<typeof schema>`); omit it to get the final assistant text as a `string`. The Claude, Codex, OpenCode, pi, or registered custom backend is selected from `model` / `tier`. Whoever constructs the runner owns it: call `dispose()` (or use `await using`) when you're done to tear down the pooled child processes.
|
|
21
21
|
|
|
22
22
|
```ts
|
|
23
23
|
import { createAcpRunner } from "@automatalabs/acp-agents";
|
|
@@ -48,9 +48,9 @@ try {
|
|
|
48
48
|
}
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
`run()` accepts the full `RunOptions` seam: `schema`, `model`, `mode`, `configOptions`, `tier`, `cwd`, `instructions`, `label`, `signal` (cancellation), `toolNames` / `disallowedToolNames`, `maxSchemaRetries`, `mcpServers`, `images` (see below), `runId`, `backends`, `meta` / `promptMeta`, `baseInstructions` / `developerInstructions` (Codex-only, see below), `keepSession`, `onSessionOpen`, `onUsage`, `onModelResolved`, `onModelFallback`, and `onHistory`. See `@automatalabs/shared-types` for the field-by-field contract.
|
|
51
|
+
`run()` accepts the full `RunOptions` seam: `schema`, `model`, `mode`, `configOptions`, `tier`, `cwd`, `instructions`, `label`, `signal` (cancellation), `toolNames` / `disallowedToolNames`, `maxSchemaRetries`, `mcpServers`, `images` (see below), `runId`, `backends`, `meta` / `promptMeta`, `baseInstructions` / `developerInstructions` (Codex-only, see below), `keepSession`, the resume-only `continueFromSession` directive, `onSessionOpen`, `onUsage`, `onResultProvenance`, `onModelResolved`, `onModelFallback`, and `onHistory`. See `@automatalabs/shared-types` for the field-by-field contract.
|
|
52
52
|
|
|
53
|
-
Model routing uses only the first `/`-delimited segment. An ASCII-case-insensitive `claude`, `codex`, `opencode`, or registered custom name selects that harness and is stripped exactly once; custom registrations win on collision. A harness name alone is backend-only and issues no model config call. Otherwise the whole string goes unchanged to `AGENTPRISM_DEFAULT_BACKEND` (default `claude`). Any remaining id is sent byte-for-byte as `configId: "model"`: catalogs are not matched, brackets and provider prefixes are ordinary characters, no sibling effort/Fast option is driven, and harness errors propagate through the normal agent-error path. Live-catalog-verified examples are `claude/opus[1m]`, `codex/gpt-5.6-sol`, and `opencode/zai/glm-5.2`;
|
|
53
|
+
Model routing uses only the first `/`-delimited segment. An ASCII-case-insensitive `claude`, `codex`, `opencode`, `pi`, or registered custom name selects that harness and is stripped exactly once; custom registrations win on collision. A harness name alone is backend-only and issues no model config call. Otherwise the whole string goes unchanged to `AGENTPRISM_DEFAULT_BACKEND` (default `claude`). Any remaining id is sent byte-for-byte as `configId: "model"`: catalogs are not matched, brackets and provider prefixes are ordinary characters, no sibling effort/Fast option is driven, and harness errors propagate through the normal agent-error path. Live-catalog-verified examples are `claude/opus[1m]`, `codex/gpt-5.6-sol`, and `opencode/zai/glm-5.2`; pi uses `pi/<provider>/<model-id>`. Use backend-only forms for harness-configured models.
|
|
54
54
|
|
|
55
55
|
`configOptions` exposes every other ACP session option verbatim. Its exact ids and string/boolean
|
|
56
56
|
values are sent in ascending id order after model selection and before the prompt, with no aliases,
|
|
@@ -170,11 +170,21 @@ from errors and events, and are zeroized on logout.
|
|
|
170
170
|
|
|
171
171
|
## Session handoff
|
|
172
172
|
|
|
173
|
-
Use `onSessionOpen` to capture the backend/session/cwd re-attach handle.
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
173
|
+
Use `onSessionOpen` to capture the backend/session/cwd re-attach handle. It fires exactly once for
|
|
174
|
+
the winning acquisition: a fresh `session/new`, a successful `session/resume`/`session/load`, or the
|
|
175
|
+
fresh fallback after a reopen failure. Set `keepSession: true` when the host intends to reopen a
|
|
176
|
+
successful call; pause-class `PROVIDER_USAGE_LIMIT` and `AUTH_REQUIRED` failures are kept open
|
|
177
|
+
automatically so managed resume can continue the interrupted turn.
|
|
178
|
+
|
|
179
|
+
When `continueFromSession` is supplied, `run()` first verifies the recorded backend and effective
|
|
180
|
+
`poolKey`, prefers the current connection's `session/resume` capability, and falls back to
|
|
181
|
+
`session/load`. A missing capability or rejected reopen reports a typed continuation skip through
|
|
182
|
+
`onResultProvenance`, cleans up the partial acquisition, and runs the original prompt in a fresh
|
|
183
|
+
session. Once reopen succeeds, the runner reports `reattached` before post-open setup and sends a
|
|
184
|
+
fixed continue-the-interrupted-task instruction instead of repeating the original prompt. Load
|
|
185
|
+
transcript usage is baselined away, so only continuation-turn usage is reported. Caller cancellation
|
|
186
|
+
never opens the fresh fallback. The runner also exposes `listSessions()` and `deleteSession()` where
|
|
187
|
+
advertised; inspect `reopen` rather than assuming every ACP agent persists state.
|
|
178
188
|
|
|
179
189
|
## Listening in: live ACP events
|
|
180
190
|
|
|
@@ -212,15 +222,15 @@ From [`src/index.ts`](./src/index.ts):
|
|
|
212
222
|
- **`InteractiveSession` / `InteractiveSessionOptions` / `InteractiveTurn`** — the held-open multi-turn session surface returned by `openSession()`.
|
|
213
223
|
- **`ProbedConfigOptions` / `SessionConfigOption`** — the routed probe result and verbatim ACP advertised-option wire shape.
|
|
214
224
|
- **`AcpRunnerOptions.onElicitation`** — runner-wide ACP elicitation responder; sessions can override with `InteractiveSessionOptions.onElicitation`.
|
|
215
|
-
- **`selectBackend({ model, tier }, registry?)`** — deterministic first-segment routing; registered custom names take priority, then the
|
|
216
|
-
- **`ClaudeBackend` / `CodexBackend` / `OpenCodeBackend`** — the
|
|
225
|
+
- **`selectBackend({ model, tier }, registry?)`** — deterministic first-segment routing; registered custom names take priority, then the four built-ins, otherwise the configured default.
|
|
226
|
+
- **`ClaudeBackend` / `CodexBackend` / `OpenCodeBackend` / `PiBackend`** — the four built-in backend strategies (spawn config + per-backend schema/auth wiring). OpenCode is host-resolved rather than bundled; pi uses bundled `@automatalabs/pi-acp`.
|
|
217
227
|
- **`CustomAcpBackend` / `resolveBackendRegistry` / `BACKENDS_ENV`** — the custom-backend registry: run **any** ACP agent as a named backend via `createAcpRunner({ backends: { name: { command, args?, env?, sessionMeta?, customCapabilities? } } })` or the `AGENTPRISM_BACKENDS` env var (JSON, same shape; the option wins per name; names may shadow built-ins). Custom backends carry a `schema` as turn-level `_meta.outputSchema` and read the result off the final message as JSON. `customCapabilities: { namespace, gatedKeys }` declares the agent's `agentCapabilities._meta` negotiation contract: once the agent advertises that namespace, each declared bare `_meta` key is sent only when its same-named flag is `true` (no declaration = never gated).
|
|
218
228
|
- **Auth contracts and lifecycle** — `AuthStore`, `BackendAuthMachine`, `buildAuthDescriptors`, the built-in auth profiles, and the `AuthContext` / `AuthResolution` / `AuthMethodDescriptor` / `AuthCapableRunner` types.
|
|
219
229
|
- **`PermissionResolver`** — async human-in-the-loop permission resolution for runner-wide or interactive sessions.
|
|
220
230
|
- **`clientCapabilitiesFor` + the `ClientHandlers` / `FsHandlers` / `TerminalHandlers` / `AcpSessionContext` types** — the client-side fs/terminal interposition surface (see above).
|
|
221
231
|
- **`negotiateCapabilities` / `adaptPromptContent` / `gateCustomMeta` / `unsupportedMcpServer` + `NegotiatedCapabilities`** — the `initialize` capability-negotiation primitives; the negotiated record for a live connection is exposed on `PooledConnection.capabilities`.
|
|
222
232
|
- **`AGENT_METHOD_COVERAGE` / `CLIENT_METHOD_COVERAGE`** — manifests classifying the installed ACP SDK method surface; enforced by tests so SDK bumps cannot silently drift.
|
|
223
|
-
- **`toJsonSchema(schema)` / `toStrictJsonSchema(schema)`** — turn a typebox schema into the on-the-wire shapes:
|
|
233
|
+
- **`toJsonSchema(schema)` / `toStrictJsonSchema(schema)`** — turn a typebox schema into the on-the-wire shapes: plain JSON Schema for Claude/pi native channels, and an OpenAI-strict-normalized schema for Codex `outputSchema`.
|
|
224
234
|
|
|
225
235
|
Also exported: `AcpAgentPool` / `resolvePoolSize`, `PooledConnection` / `SessionHandle`, `decidePermission`, `UsageAccumulator`, `resolveStructuredOutput` / `extractValidated` / `findJsonBlock` / `validateValue`, `errorText` / `mapThrownError`, and the event surface `TypedEventEmitter` / `AcpRunnerEventMap` / `AcpEventName` / `AcpEventListener` / `AcpEventContext` / `AcpSessionUpdate` (+ the per-event payload types, including `AcpPermissionPendingEvent`), plus their associated types.
|
|
226
236
|
|
|
@@ -228,7 +238,7 @@ Also exported: `AcpAgentPool` / `resolvePoolSize`, `PooledConnection` / `Session
|
|
|
228
238
|
|
|
229
239
|
| Variable | Effect |
|
|
230
240
|
| --- | --- |
|
|
231
|
-
| `AGENTPRISM_DEFAULT_BACKEND` | Backend for specs whose first segment is not registered (`codex`
|
|
241
|
+
| `AGENTPRISM_DEFAULT_BACKEND` | Backend for specs whose first segment is not registered (`claude`, `codex`, `opencode`, `pi`, or a registered custom name; unknown values fall back to Claude). |
|
|
232
242
|
| `AGENTPRISM_BACKENDS` | Custom ACP backends as JSON: `{"<name>": {"command": "…", "args": […], "env": {…}, "sessionMeta": {…}, "customCapabilities": {"namespace": "…", "gatedKeys": […]}}}`. |
|
|
233
243
|
| `AGENTPRISM_ACP_INIT_TIMEOUT_MS` | Deadline (default `60000`) for a backend's one-time ACP `initialize` handshake — a non-ACP command fails fast instead of hanging. |
|
|
234
244
|
| `AGENTPRISM_ACP_POOL_SIZE` | Long-lived processes to keep per backend (default `1`). |
|
|
@@ -236,6 +246,7 @@ Also exported: `AcpAgentPool` / `resolvePoolSize`, `PooledConnection` / `Session
|
|
|
236
246
|
| `AGENTPRISM_CODEX_ACP_CMD` / `AGENTPRISM_CODEX_ACP_ARGS` | Override the command (and args) used to spawn the Codex ACP server. |
|
|
237
247
|
| `AGENTPRISM_CODEX_ACP_BIN` | Override only the resolved Codex ACP bin path (keeps the default node launcher). |
|
|
238
248
|
| `AGENTPRISM_OPENCODE_ACP_CMD` / `AGENTPRISM_OPENCODE_ACP_ARGS` | Override the command (and args) used to spawn the OpenCode ACP server. |
|
|
249
|
+
| `AGENTPRISM_PI_ACP_CMD` / `AGENTPRISM_PI_ACP_ARGS` | Override the command (and args) used to spawn the bundled pi ACP server. |
|
|
239
250
|
|
|
240
251
|
## License
|
|
241
252
|
|
package/dist/acp-client.d.ts
CHANGED
|
@@ -61,6 +61,13 @@ declare class SessionState {
|
|
|
61
61
|
* release/cancel/death after its ACP session is gone. */
|
|
62
62
|
settlePendingElicitations(): void;
|
|
63
63
|
}
|
|
64
|
+
/** Internal typed sentinel for the continuation path. It is deliberately thrown only after
|
|
65
|
+
* initialize completes and before any session/load or session/resume wire request is sent. */
|
|
66
|
+
export declare class ReattachCapabilityUnavailable extends Error {
|
|
67
|
+
readonly backendId: BackendId;
|
|
68
|
+
readonly sessionId: string;
|
|
69
|
+
constructor(backendId: BackendId, sessionId: string);
|
|
70
|
+
}
|
|
64
71
|
export interface AcpSessionOptions {
|
|
65
72
|
/** Absolute working directory for the ACP session (worktree isolation). */
|
|
66
73
|
cwd: string;
|
|
@@ -250,6 +257,12 @@ export declare class PooledConnection {
|
|
|
250
257
|
/** Reserve a session slot before initialize, then let the caller shape session/new with
|
|
251
258
|
* negotiated capabilities in hand. */
|
|
252
259
|
openPreparedSession(prepare: (connection: PooledConnection) => AcpSessionOptions | Promise<AcpSessionOptions>): Promise<SessionHandle>;
|
|
260
|
+
/** Reserve one connection slot, await initialize, choose the best currently-advertised reopen
|
|
261
|
+
* method, prepare against that same ready connection, and reattach under the single reservation. */
|
|
262
|
+
openPreparedReattachedSession(sessionId: string, prepare: (connection: PooledConnection) => AcpSessionOptions | Promise<AcpSessionOptions>): Promise<{
|
|
263
|
+
handle: SessionHandle;
|
|
264
|
+
method: "resume" | "load";
|
|
265
|
+
}>;
|
|
253
266
|
private openReadySession;
|
|
254
267
|
/** Reopen an existing session and replay its transcript through the router before resolving. */
|
|
255
268
|
loadSession(sessionId: string, opts: AcpSessionOptions): Promise<SessionHandle>;
|
|
@@ -259,6 +272,8 @@ export declare class PooledConnection {
|
|
|
259
272
|
forkSession(sourceSessionId: string, opts: AcpSessionOptions): Promise<SessionHandle>;
|
|
260
273
|
private rawAgentRequest;
|
|
261
274
|
private reattachSession;
|
|
275
|
+
/** Reattach under a reservation already owned by the caller. */
|
|
276
|
+
private reattachReadySession;
|
|
262
277
|
/** session/list on a dedicated connection, gated on the initialize advertisement. */
|
|
263
278
|
listSessions(request: ListSessionsRequest, label?: string): Promise<ListSessionsResponse>;
|
|
264
279
|
/** session/delete on a dedicated connection, gated on the initialize advertisement. */
|
package/dist/acp-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acp-client.d.ts","sourceRoot":"","sources":["../src/acp-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acp-client.d.ts","sourceRoot":"","sources":["../src/acp-client.ts"],"names":[],"mappings":"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"}
|
package/dist/acp-client.js
CHANGED
|
@@ -629,6 +629,19 @@ function lifecycleCapabilityError(backendId, method, capabilities, label) {
|
|
|
629
629
|
: "initialize did not complete";
|
|
630
630
|
return new WorkflowError(`ACP agent (${backendId}) does not advertise ${method}; advertised lifecycle capabilities: ${advertised}`, WorkflowErrorCode.SCRIPT_VALIDATION_ERROR, { recoverable: false, agentLabel: label });
|
|
631
631
|
}
|
|
632
|
+
/** Internal typed sentinel for the continuation path. It is deliberately thrown only after
|
|
633
|
+
* initialize completes and before any session/load or session/resume wire request is sent. */
|
|
634
|
+
export class ReattachCapabilityUnavailable extends Error {
|
|
635
|
+
backendId;
|
|
636
|
+
sessionId;
|
|
637
|
+
constructor(backendId, sessionId) {
|
|
638
|
+
super(`ACP agent (${backendId}) cannot reattach session ${sessionId}: ` +
|
|
639
|
+
"neither session/resume nor session/load is advertised");
|
|
640
|
+
this.backendId = backendId;
|
|
641
|
+
this.sessionId = sessionId;
|
|
642
|
+
this.name = "ReattachCapabilityUnavailable";
|
|
643
|
+
}
|
|
644
|
+
}
|
|
632
645
|
function authProviderCapabilityError(backendId, method, capabilities, label) {
|
|
633
646
|
const advertised = capabilities
|
|
634
647
|
? describeAuthProviderAdvertisement(capabilities.agent, capabilities.authMethods)
|
|
@@ -1139,6 +1152,29 @@ export class PooledConnection {
|
|
|
1139
1152
|
throw error;
|
|
1140
1153
|
}
|
|
1141
1154
|
}
|
|
1155
|
+
/** Reserve one connection slot, await initialize, choose the best currently-advertised reopen
|
|
1156
|
+
* method, prepare against that same ready connection, and reattach under the single reservation. */
|
|
1157
|
+
async openPreparedReattachedSession(sessionId, prepare) {
|
|
1158
|
+
this._activeSessions += 1;
|
|
1159
|
+
try {
|
|
1160
|
+
await this.ready;
|
|
1161
|
+
const caps = this.negotiated;
|
|
1162
|
+
const method = caps?.supportsResumeSession
|
|
1163
|
+
? "resume"
|
|
1164
|
+
: caps?.supportsLoadSession
|
|
1165
|
+
? "load"
|
|
1166
|
+
: undefined;
|
|
1167
|
+
if (method === undefined)
|
|
1168
|
+
throw new ReattachCapabilityUnavailable(this.backendId, sessionId);
|
|
1169
|
+
const opts = await prepare(this);
|
|
1170
|
+
const handle = await this.reattachReadySession(method === "resume" ? AGENT_METHODS.session_resume : AGENT_METHODS.session_load, sessionId, opts);
|
|
1171
|
+
return { handle, method };
|
|
1172
|
+
}
|
|
1173
|
+
catch (error) {
|
|
1174
|
+
this._activeSessions -= 1;
|
|
1175
|
+
throw error;
|
|
1176
|
+
}
|
|
1177
|
+
}
|
|
1142
1178
|
async openReadySession(opts) {
|
|
1143
1179
|
// Capability gate: reject a client-provided MCP server whose transport the connected agent
|
|
1144
1180
|
// does not advertise (http/sse gated on mcpCapabilities; stdio is always serviceable).
|
|
@@ -1215,6 +1251,16 @@ export class PooledConnection {
|
|
|
1215
1251
|
}
|
|
1216
1252
|
async reattachSession(method, sessionId, opts) {
|
|
1217
1253
|
this._activeSessions += 1;
|
|
1254
|
+
try {
|
|
1255
|
+
return await this.reattachReadySession(method, sessionId, opts);
|
|
1256
|
+
}
|
|
1257
|
+
catch (error) {
|
|
1258
|
+
this._activeSessions -= 1;
|
|
1259
|
+
throw error;
|
|
1260
|
+
}
|
|
1261
|
+
}
|
|
1262
|
+
/** Reattach under a reservation already owned by the caller. */
|
|
1263
|
+
async reattachReadySession(method, sessionId, opts) {
|
|
1218
1264
|
let registered = false;
|
|
1219
1265
|
const state = new SessionState(opts.cwd, opts.policy, opts.permissionResolver, opts.elicitationResolver, opts.label, opts.runId, opts.callIndex, undefined, acpMcpServerIds(opts.mcpServers), opts.retainSessionLog ?? true);
|
|
1220
1266
|
try {
|
|
@@ -1247,7 +1293,6 @@ export class PooledConnection {
|
|
|
1247
1293
|
catch (error) {
|
|
1248
1294
|
if (registered)
|
|
1249
1295
|
this.client.unregister(sessionId);
|
|
1250
|
-
this._activeSessions -= 1;
|
|
1251
1296
|
throw error;
|
|
1252
1297
|
}
|
|
1253
1298
|
}
|
|
@@ -61,4 +61,5 @@ export declare const codexAuthProfile: AuthProfile;
|
|
|
61
61
|
* always false. `describe` is client-side identity; no `buildMeta` (no meta method) and no
|
|
62
62
|
* `spawnAuthEnv` (no `DEFAULT_AUTH_REQUEST` analog; §3.4 spawn-time). */
|
|
63
63
|
export declare const opencodeAuthProfile: AuthProfile;
|
|
64
|
+
export declare const piAuthProfile: AuthProfile;
|
|
64
65
|
//# sourceMappingURL=auth-profiles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-profiles.d.ts","sourceRoot":"","sources":["../../src/auth/auth-profiles.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;gDACgD;AAChD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;qFAEqF;AACrF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;4FAEwF;IACxF,sBAAsB,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACtG;;2CAEuC;IACvC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,GAAG,oBAAoB,CAAC;IAC/E,mFAAmF;IACnF,cAAc,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC,GAAG,cAAc,CAAC;IACnF,2FAA2F;IAC3F,SAAS,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,cAAc,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClH;;kBAEc;IACd,YAAY,CAAC,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CACvE;AAED;;;;;;mDAMmD;AACnD,eAAO,MAAM,iBAAiB,EAAE,WAK/B,CAAC;AAEF;;;;;;4CAM4C;AAC5C,eAAO,MAAM,gBAAgB,EAAE,WAc9B,CAAC;AAEF;;;;0EAI0E;AAC1E,eAAO,MAAM,mBAAmB,EAAE,WAIjC,CAAC"}
|
|
1
|
+
{"version":3,"file":"auth-profiles.d.ts","sourceRoot":"","sources":["../../src/auth/auth-profiles.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;gDACgD;AAChD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;qFAEqF;AACrF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;4FAEwF;IACxF,sBAAsB,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACtG;;2CAEuC;IACvC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,GAAG,oBAAoB,CAAC;IAC/E,mFAAmF;IACnF,cAAc,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC,GAAG,cAAc,CAAC;IACnF,2FAA2F;IAC3F,SAAS,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,cAAc,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClH;;kBAEc;IACd,YAAY,CAAC,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CACvE;AAED;;;;;;mDAMmD;AACnD,eAAO,MAAM,iBAAiB,EAAE,WAK/B,CAAC;AAEF;;;;;;4CAM4C;AAC5C,eAAO,MAAM,gBAAgB,EAAE,WAc9B,CAAC;AAEF;;;;0EAI0E;AAC1E,eAAO,MAAM,mBAAmB,EAAE,WAIjC,CAAC;AAgBF,eAAO,MAAM,aAAa,EAAE,WAO3B,CAAC"}
|
|
@@ -44,3 +44,23 @@ export const opencodeAuthProfile = {
|
|
|
44
44
|
clientAuthCapabilities: ({ terminal }) => ({ terminal, gateway: false }),
|
|
45
45
|
describe: (_method, base) => base,
|
|
46
46
|
};
|
|
47
|
+
/** pi — `@automatalabs/pi-acp` (§9.5 of the frozen server contract). The server advertises five
|
|
48
|
+
* `env_var` methods and one bare `agent` method for its ambient `~/.pi/agent/auth.json` store.
|
|
49
|
+
* None is terminal- or gateway-gated, so the client advertises neither optional capability.
|
|
50
|
+
* `describe` contributes method-specific remediation without changing the base dispatch type. */
|
|
51
|
+
const PI_AUTH_REMEDIATION = {
|
|
52
|
+
"anthropic-api-key": "Set ANTHROPIC_API_KEY, then retry or resume the workflow.",
|
|
53
|
+
"openai-api-key": "Set OPENAI_API_KEY, then retry or resume the workflow.",
|
|
54
|
+
"gemini-api-key": "Set GEMINI_API_KEY, then retry or resume the workflow.",
|
|
55
|
+
"xai-api-key": "Set XAI_API_KEY, then retry or resume the workflow.",
|
|
56
|
+
"openrouter-api-key": "Set OPENROUTER_API_KEY, then retry or resume the workflow.",
|
|
57
|
+
"pi-stored-credentials": "Configure pi credentials in ~/.pi/agent/auth.json, then retry or resume the workflow.",
|
|
58
|
+
};
|
|
59
|
+
export const piAuthProfile = {
|
|
60
|
+
backendId: "pi",
|
|
61
|
+
clientAuthCapabilities: () => ({ terminal: false, gateway: false }),
|
|
62
|
+
describe: (method, base) => ({
|
|
63
|
+
...base,
|
|
64
|
+
...(PI_AUTH_REMEDIATION[method.id] ? { description: PI_AUTH_REMEDIATION[method.id] } : {}),
|
|
65
|
+
}),
|
|
66
|
+
};
|
package/dist/backend.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { TSchema } from "typebox";
|
|
|
2
2
|
import type { ProviderUsageLimitContext } from "@automatalabs/shared-types";
|
|
3
3
|
import type { AuthProfile } from "./auth/auth-profiles.js";
|
|
4
4
|
/** The built-in backends. Custom registry backends extend the id space beyond these. */
|
|
5
|
-
export type BuiltinBackendId = "claude" | "codex" | "opencode";
|
|
5
|
+
export type BuiltinBackendId = "claude" | "codex" | "opencode" | "pi";
|
|
6
6
|
/** A backend id: one of the built-ins, or the registered name of a custom ACP backend
|
|
7
7
|
* (see registry.ts). The pool keys connections by this id, so ids must be stable. */
|
|
8
8
|
export type BackendId = string;
|
|
@@ -69,7 +69,7 @@ export interface Backend {
|
|
|
69
69
|
readonly gatedKeys: readonly string[];
|
|
70
70
|
};
|
|
71
71
|
/** Per-agent auth adapter (§3.1). UNDEFINED for custom backends → the type-driven base auth flow
|
|
72
|
-
* runs verbatim (conformance-by-absence, §1.4). The
|
|
72
|
+
* runs verbatim (conformance-by-absence, §1.4). The four built-in backends wire their pure-data
|
|
73
73
|
* profile (§3.2–§3.4); the lifecycle spine (§2) reads it when computing `spawnEnvFor` (§2.8), the
|
|
74
74
|
* runner consults `profile.describe`/`buildMeta` (§1.3/§2.9), and the connection refines client
|
|
75
75
|
* auth capabilities through `profile.clientAuthCapabilities` (§1.2). */
|
package/dist/backend.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,wFAAwF;AACxF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,wFAAwF;AACxF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,IAAI,CAAC;AACtE;sFACsF;AACtF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAE/B,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AAED,8FAA8F;AAC9F,MAAM,WAAW,gBAAgB;IAC/B,8FAA8F;IAC9F,eAAe,IAAI,MAAM,CAAC;IAC1B;;;4FAGwF;IACxF,gBAAgB,IAAI,MAAM,CAAC;IAC3B,uGAAuG;IACvG,mBAAmB,IAAI,OAAO,CAAC;CAChC;AAED;+EAC+E;AAC/E,MAAM,WAAW,iBAAiB;IAChC,yFAAyF;IACzF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sFAAsF;IACtF,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,8FAA8F;AAC9F,MAAM,WAAW,qBAAqB;IACpC,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,gFAAgF;AAChF,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,OAAO,EAAE,yBAAyB,CAAC;CACpC,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB;;;0EAGsE;IACtE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;uEACmE;IACnE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC;;;;kGAI8F;IAC9F,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC;;qFAEiF;IACjF,QAAQ,CAAC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAC9C;;sFAEkF;IAClF,QAAQ,CAAC,kBAAkB,CAAC,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;IACpG;;;;6EAIyE;IACzE,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC;mGAC+F;IAC/F,qBAAqB,CAAC,CACpB,KAAK,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,2BAA2B,GAAG,SAAS,CAAC;IAC3C,0DAA0D;IAC1D,WAAW,IAAI,WAAW,CAAC;IAC3B;;sEAEkE;IAClE,mBAAmB,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC5D;;;mGAG+F;IAC/F,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC1G,kGAAkG;IAClG,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC7E,oGAAoG;IACpG,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC;CACrD;AAED,6FAA6F;AAC7F,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAE7D"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { TSchema } from "typebox";
|
|
2
|
+
import type { Backend, ProviderErrorClassification, ProviderErrorMetadata, SpawnConfig, StructuredSource } from "../backend.js";
|
|
3
|
+
export declare class PiBackend implements Backend {
|
|
4
|
+
readonly id: "pi";
|
|
5
|
+
/** Pure-data pi auth profile: five provider env keys plus ambient pi stored credentials. */
|
|
6
|
+
readonly authProfile: import("../auth/auth-profiles.js").AuthProfile;
|
|
7
|
+
readonly stripsRoutingPrefix = true;
|
|
8
|
+
readonly embedSchemaInPrompt = false;
|
|
9
|
+
readonly injectStructuredOutputTool = false;
|
|
10
|
+
readonly customCapabilities: {
|
|
11
|
+
readonly namespace: "@automatalabs/pi-acp";
|
|
12
|
+
readonly gatedKeys: readonly ["outputSchema"];
|
|
13
|
+
};
|
|
14
|
+
classifyProviderError(error: unknown, metadata?: ProviderErrorMetadata): ProviderErrorClassification | undefined;
|
|
15
|
+
spawnConfig(): SpawnConfig;
|
|
16
|
+
sessionMeta(): Record<string, unknown> | undefined;
|
|
17
|
+
promptMeta(schema: TSchema | undefined): Record<string, unknown> | undefined;
|
|
18
|
+
nativeStructured(source: StructuredSource): unknown;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=pi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/backends/pi.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,KAAK,EACV,OAAO,EACP,2BAA2B,EAC3B,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAQvB,qBAAa,SAAU,YAAW,OAAO;IACvC,QAAQ,CAAC,EAAE,EAAG,IAAI,CAAU;IAC5B,4FAA4F;IAC5F,QAAQ,CAAC,WAAW,iDAAiB;IACrC,QAAQ,CAAC,mBAAmB,QAAQ;IACpC,QAAQ,CAAC,mBAAmB,SAAS;IACrC,QAAQ,CAAC,0BAA0B,SAAS;IAC5C,QAAQ,CAAC,kBAAkB;;;MAGhB;IAEX,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,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAK5E,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO;CAGpD"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// PiBackend — drives @automatalabs/pi-acp, the ACP server for the pi coding agent.
|
|
2
|
+
// pi-acp advertises a native outputSchema channel under its package namespace and emits the
|
|
3
|
+
// captured structured value as the final assistant message, so the runner sends plain JSON Schema
|
|
4
|
+
// on session/prompt and parses only that final message. No prompt embedding or client-hosted MCP
|
|
5
|
+
// tool is needed.
|
|
6
|
+
import { dirname, join } from "node:path";
|
|
7
|
+
import { createRequire } from "node:module";
|
|
8
|
+
import { META_KEYS } from "@automatalabs/shared-types";
|
|
9
|
+
import { splitArgs } from "../backend.js";
|
|
10
|
+
import { piAuthProfile } from "../auth/auth-profiles.js";
|
|
11
|
+
import { toJsonSchema } from "../schema-strict.js";
|
|
12
|
+
import { parseFinalJson } from "../structured-output.js";
|
|
13
|
+
const require = createRequire(import.meta.url);
|
|
14
|
+
export class PiBackend {
|
|
15
|
+
id = "pi";
|
|
16
|
+
/** Pure-data pi auth profile: five provider env keys plus ambient pi stored credentials. */
|
|
17
|
+
authProfile = piAuthProfile;
|
|
18
|
+
stripsRoutingPrefix = true;
|
|
19
|
+
embedSchemaInPrompt = false;
|
|
20
|
+
injectStructuredOutputTool = false;
|
|
21
|
+
customCapabilities = {
|
|
22
|
+
namespace: "@automatalabs/pi-acp",
|
|
23
|
+
gatedKeys: [META_KEYS.outputSchema],
|
|
24
|
+
};
|
|
25
|
+
classifyProviderError(error, metadata) {
|
|
26
|
+
const providerCode = errorDataString(error, "errorKind");
|
|
27
|
+
if (providerCode === "rate_limit" || providerCode === "billing_error") {
|
|
28
|
+
return {
|
|
29
|
+
kind: "provider_usage_limit",
|
|
30
|
+
context: {
|
|
31
|
+
backendId: "pi",
|
|
32
|
+
source: "provider",
|
|
33
|
+
providerCode,
|
|
34
|
+
resetAt: metadata?.resetAt,
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
// auth_error is reserved to the server's -32000 authRequired response and is classified
|
|
39
|
+
// before this hook. provider_error remains a recoverable execution failure.
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
spawnConfig() {
|
|
43
|
+
const env = process.env;
|
|
44
|
+
const override = env.AGENTPRISM_PI_ACP_CMD;
|
|
45
|
+
if (override) {
|
|
46
|
+
return { command: override, args: splitArgs(env.AGENTPRISM_PI_ACP_ARGS), env };
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
// The package's side-effect-free main is dist/lib.js; its declared bin is the sibling
|
|
50
|
+
// dist/index.js. Run that resolved package bin under this process's Node executable.
|
|
51
|
+
const library = require.resolve("@automatalabs/pi-acp");
|
|
52
|
+
const bin = join(dirname(library), "index.js");
|
|
53
|
+
return { command: process.execPath, args: [bin], env };
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return { command: "npx", args: ["-y", "@automatalabs/pi-acp"], env };
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
sessionMeta() {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
promptMeta(schema) {
|
|
63
|
+
if (!schema)
|
|
64
|
+
return undefined;
|
|
65
|
+
return { [META_KEYS.outputSchema]: toJsonSchema(schema) };
|
|
66
|
+
}
|
|
67
|
+
nativeStructured(source) {
|
|
68
|
+
return parseFinalJson(source.finalMessageText());
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function errorDataString(error, key) {
|
|
72
|
+
try {
|
|
73
|
+
if (!error || typeof error !== "object")
|
|
74
|
+
return undefined;
|
|
75
|
+
const data = error.data;
|
|
76
|
+
if (!data || typeof data !== "object")
|
|
77
|
+
return undefined;
|
|
78
|
+
const value = data[key];
|
|
79
|
+
return typeof value === "string" ? value : undefined;
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
}
|
package/dist/events.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export type AcpUpdateKind = AcpSessionUpdate["sessionUpdate"];
|
|
|
9
9
|
export interface AcpEventContext {
|
|
10
10
|
/** ACP session id this event pertains to. */
|
|
11
11
|
sessionId: string;
|
|
12
|
-
/** Backend that produced it ("claude" | "codex" | "opencode" | custom name). */
|
|
12
|
+
/** Backend that produced it ("claude" | "codex" | "opencode" | "pi" | custom name). */
|
|
13
13
|
backendId: BackendId;
|
|
14
14
|
/** `RunOptions.label` of the originating run(), if one was set. */
|
|
15
15
|
label?: string;
|
package/dist/events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,+BAA+B,EAC/B,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,+FAA+F;AAC/F,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AAC7D,qGAAqG;AACrG,MAAM,MAAM,aAAa,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;AAE9D;oGACoG;AACpG,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export { AuthStore, BackendAuthMachine, classifyCredential, redactSecrets, } fro
|
|
|
6
6
|
export type { AuthEvent, AuthIntent, AuthMethodType, BackendAuthState, ConnectionAuthStamp, CredentialClass, RedactedIntent, } from "./auth/auth-store.js";
|
|
7
7
|
export { ProviderStore } from "./provider-store.js";
|
|
8
8
|
export type { ProviderIntent } from "./provider-store.js";
|
|
9
|
-
export { claudeAuthProfile, codexAuthProfile, opencodeAuthProfile } from "./auth/auth-profiles.js";
|
|
9
|
+
export { claudeAuthProfile, codexAuthProfile, opencodeAuthProfile, piAuthProfile } from "./auth/auth-profiles.js";
|
|
10
10
|
export type { AuthProfile, TerminalLaunch } from "./auth/auth-profiles.js";
|
|
11
11
|
export { InteractiveSession } from "./interactive.js";
|
|
12
12
|
export type { InteractiveSessionOptions, InteractiveTurn } from "./interactive.js";
|
|
@@ -16,7 +16,7 @@ export { BACKENDS_ENV, registryWithRunBackends, resolveBackendRegistry } from ".
|
|
|
16
16
|
export type { BackendRegistry, CustomBackendConfig, RegisteredBackend } from "./registry.js";
|
|
17
17
|
export { PooledConnection, SessionHandle } from "./acp-client.js";
|
|
18
18
|
export type { AcpSessionOptions, PooledConnectionDeps } from "./acp-client.js";
|
|
19
|
-
export { AGENT_METHOD_COVERAGE, ACP_AUTH_REQUIRED_CODE_EXCLUSIVE, AUTH_CAPABILITY_KEYS, AUTH_META_CONVENTION_KEYS, AUTH_META_MATRIX, CLIENT_METHOD_COVERAGE, CODEX_SPAWN_AUTH_ENV, HANDLED_AUTH_METHOD_TYPES, assertAuthCapabilityShape, } from "./protocol-coverage.js";
|
|
19
|
+
export { AGENT_METHOD_COVERAGE, ACP_AUTH_REQUIRED_CODE_EXCLUSIVE, AUTH_CAPABILITY_KEYS, AUTH_META_CONVENTION_KEYS, AUTH_META_MATRIX, CLIENT_METHOD_COVERAGE, CODEX_SPAWN_AUTH_ENV, HANDLED_AUTH_METHOD_TYPES, PI_ACP_PROTOCOL_CONTRACT, assertAuthCapabilityShape, } from "./protocol-coverage.js";
|
|
20
20
|
export type { AgentMethodCoverage, AuthMetaMatrixRow, ClientMethodCoverage } from "./protocol-coverage.js";
|
|
21
21
|
export { GATED_CUSTOM_META_KEYS, adaptPromptContent, gateCustomMeta, isSupportedProtocolVersion, negotiateCapabilities, unsupportedMcpServer, } from "./capabilities.js";
|
|
22
22
|
export type { NegotiatedCapabilities } from "./capabilities.js";
|
|
@@ -30,6 +30,7 @@ export type { Backend, BackendId, BuiltinBackendId, ProviderErrorClassification,
|
|
|
30
30
|
export { ClaudeBackend } from "./backends/claude.js";
|
|
31
31
|
export { CodexBackend } from "./backends/codex.js";
|
|
32
32
|
export { OpenCodeBackend } from "./backends/opencode.js";
|
|
33
|
+
export { PiBackend } from "./backends/pi.js";
|
|
33
34
|
export { CustomAcpBackend } from "./backends/custom.js";
|
|
34
35
|
export { decidePermission, resolvePermission, withPersist } from "./permissions.js";
|
|
35
36
|
export type { ElicitationResolver, PermissionPersist, PermissionResolution, PermissionResolver, ToolPolicy, } from "./permissions.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,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,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -13,13 +13,13 @@ export { AuthStore, BackendAuthMachine, classifyCredential, redactSecrets, } fro
|
|
|
13
13
|
export { ProviderStore } from "./provider-store.js";
|
|
14
14
|
// Per-agent auth profiles (§3): the pure-data adapters wired onto the built-in backends. Custom
|
|
15
15
|
// backends supply none (conformance-by-absence, §3.5).
|
|
16
|
-
export { claudeAuthProfile, codexAuthProfile, opencodeAuthProfile } from "./auth/auth-profiles.js";
|
|
16
|
+
export { claudeAuthProfile, codexAuthProfile, opencodeAuthProfile, piAuthProfile } from "./auth/auth-profiles.js";
|
|
17
17
|
export { InteractiveSession } from "./interactive.js";
|
|
18
18
|
export { AGENT_METHODS, CLIENT_METHODS } from "@agentclientprotocol/sdk";
|
|
19
19
|
// The custom-backend registry: run ANY ACP agent as an agent() target.
|
|
20
20
|
export { BACKENDS_ENV, registryWithRunBackends, resolveBackendRegistry } from "./registry.js";
|
|
21
21
|
export { PooledConnection, SessionHandle } from "./acp-client.js";
|
|
22
|
-
export { AGENT_METHOD_COVERAGE, ACP_AUTH_REQUIRED_CODE_EXCLUSIVE, AUTH_CAPABILITY_KEYS, AUTH_META_CONVENTION_KEYS, AUTH_META_MATRIX, CLIENT_METHOD_COVERAGE, CODEX_SPAWN_AUTH_ENV, HANDLED_AUTH_METHOD_TYPES, assertAuthCapabilityShape, } from "./protocol-coverage.js";
|
|
22
|
+
export { AGENT_METHOD_COVERAGE, ACP_AUTH_REQUIRED_CODE_EXCLUSIVE, AUTH_CAPABILITY_KEYS, AUTH_META_CONVENTION_KEYS, AUTH_META_MATRIX, CLIENT_METHOD_COVERAGE, CODEX_SPAWN_AUTH_ENV, HANDLED_AUTH_METHOD_TYPES, PI_ACP_PROTOCOL_CONTRACT, assertAuthCapabilityShape, } from "./protocol-coverage.js";
|
|
23
23
|
// ACP capability negotiation: parse/validate the initialize response and gate what the client
|
|
24
24
|
// sends (custom `_meta` keys, MCP transports) on what the connected agent advertised.
|
|
25
25
|
export { GATED_CUSTOM_META_KEYS, adaptPromptContent, gateCustomMeta, isSupportedProtocolVersion, negotiateCapabilities, unsupportedMcpServer, } from "./capabilities.js";
|
|
@@ -32,6 +32,7 @@ export { ACP_CROSS_CUTTING_EVENT_NAMES, TypedEventEmitter, emitSessionUpdate } f
|
|
|
32
32
|
export { ClaudeBackend } from "./backends/claude.js";
|
|
33
33
|
export { CodexBackend } from "./backends/codex.js";
|
|
34
34
|
export { OpenCodeBackend } from "./backends/opencode.js";
|
|
35
|
+
export { PiBackend } from "./backends/pi.js";
|
|
35
36
|
export { CustomAcpBackend } from "./backends/custom.js";
|
|
36
37
|
export { decidePermission, resolvePermission, withPersist } from "./permissions.js";
|
|
37
38
|
export { UsageAccumulator } from "./usage.js";
|
package/dist/pool.d.ts
CHANGED
|
@@ -52,6 +52,14 @@ export declare class AcpAgentPool {
|
|
|
52
52
|
signal?: AbortSignal;
|
|
53
53
|
label?: string;
|
|
54
54
|
}): Promise<SessionHandle>;
|
|
55
|
+
/** Acquire a ready connection slot and reattach by the best capability negotiated on it. */
|
|
56
|
+
acquirePreparedReattach(backend: Backend, sessionId: string, prepare: (connection: PooledConnection) => AcpSessionOptions | Promise<AcpSessionOptions>, context?: {
|
|
57
|
+
signal?: AbortSignal;
|
|
58
|
+
label?: string;
|
|
59
|
+
}): Promise<{
|
|
60
|
+
handle: SessionHandle;
|
|
61
|
+
method: "resume" | "load";
|
|
62
|
+
}>;
|
|
55
63
|
/**
|
|
56
64
|
* Pick the connection to host the next session. Runs SYNCHRONOUSLY (no await) through to the
|
|
57
65
|
* synchronous load-reservation in openSession(), so concurrent acquires never over-spawn or
|
package/dist/pool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,OAAO,EAAa,MAAM,cAAc,CAAC;AACvD,OAAO,
|
|
1
|
+
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"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"}
|
package/dist/pool.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PooledConnection } from "./acp-client.js";
|
|
1
|
+
import { PooledConnection, ReattachCapabilityUnavailable, } from "./acp-client.js";
|
|
2
2
|
import { validateClientHandlers } from "./client-handlers.js";
|
|
3
3
|
import { mapThrownError } from "./errors-map.js";
|
|
4
4
|
const DEFAULT_POOL_SIZE = 1;
|
|
@@ -68,6 +68,27 @@ export class AcpAgentPool {
|
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
+
/** Acquire a ready connection slot and reattach by the best capability negotiated on it. */
|
|
72
|
+
async acquirePreparedReattach(backend, sessionId, prepare, context = {}) {
|
|
73
|
+
if (this.disposed)
|
|
74
|
+
throw new Error("ACP agent pool is disposed");
|
|
75
|
+
const connection = this.selectConnection(backend);
|
|
76
|
+
try {
|
|
77
|
+
return await connection.openPreparedReattachedSession(sessionId, prepare);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
if (context.signal?.aborted)
|
|
81
|
+
throw error;
|
|
82
|
+
if (error instanceof ReattachCapabilityUnavailable)
|
|
83
|
+
throw error;
|
|
84
|
+
throw mapThrownError(error, {
|
|
85
|
+
label: context.label,
|
|
86
|
+
backendId: connection.backendId,
|
|
87
|
+
backend,
|
|
88
|
+
authMethods: connection.capabilities?.authMethods,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
71
92
|
/**
|
|
72
93
|
* Pick the connection to host the next session. Runs SYNCHRONOUSLY (no await) through to the
|
|
73
94
|
* synchronous load-reservation in openSession(), so concurrent acquires never over-spawn or
|
|
@@ -64,6 +64,16 @@ export declare const CODEX_SPAWN_AUTH_ENV: "DEFAULT_AUTH_REQUEST";
|
|
|
64
64
|
/** JSON-RPC `-32000` is reserved EXCLUSIVELY for `authRequired` (SDK `jsonrpc.js:818-823`) — the
|
|
65
65
|
* guarantee the code-only §1.5 matcher relies on (§4.6.4 item 5). */
|
|
66
66
|
export declare const ACP_AUTH_REQUIRED_CODE_EXCLUSIVE: -32000;
|
|
67
|
+
/** Frozen pi-acp wire surface consumed by the first-class backend. Keeping these literals in the
|
|
68
|
+
* executable protocol-coverage module makes capability/auth/error drift visible in tests instead
|
|
69
|
+
* of leaving the built-in coupled only through prose. */
|
|
70
|
+
export declare const PI_ACP_PROTOCOL_CONTRACT: {
|
|
71
|
+
readonly customCapabilityNamespace: "@automatalabs/pi-acp";
|
|
72
|
+
readonly outputSchemaKey: "outputSchema";
|
|
73
|
+
readonly mcpCapabilities: {};
|
|
74
|
+
readonly authMethodIds: readonly ["anthropic-api-key", "openai-api-key", "gemini-api-key", "xai-api-key", "openrouter-api-key", "pi-stored-credentials"];
|
|
75
|
+
readonly providerErrorKinds: readonly ["auth_error", "rate_limit", "billing_error", "provider_error"];
|
|
76
|
+
};
|
|
67
77
|
/** One row of the §3.6 full `_meta` support matrix, landed as executable data (not prose) so an
|
|
68
78
|
* SDK/agent bump that changes a `_meta` surface trips the drift suite (§4.6.4 item 4). */
|
|
69
79
|
export interface AuthMetaMatrixRow {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol-coverage.d.ts","sourceRoot":"","sources":["../src/protocol-coverage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"protocol-coverage.d.ts","sourceRoot":"","sources":["../src/protocol-coverage.ts"],"names":[],"mappings":"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"}
|
|
@@ -90,6 +90,23 @@ export const CODEX_SPAWN_AUTH_ENV = "DEFAULT_AUTH_REQUEST";
|
|
|
90
90
|
/** JSON-RPC `-32000` is reserved EXCLUSIVELY for `authRequired` (SDK `jsonrpc.js:818-823`) — the
|
|
91
91
|
* guarantee the code-only §1.5 matcher relies on (§4.6.4 item 5). */
|
|
92
92
|
export const ACP_AUTH_REQUIRED_CODE_EXCLUSIVE = -32000;
|
|
93
|
+
/** Frozen pi-acp wire surface consumed by the first-class backend. Keeping these literals in the
|
|
94
|
+
* executable protocol-coverage module makes capability/auth/error drift visible in tests instead
|
|
95
|
+
* of leaving the built-in coupled only through prose. */
|
|
96
|
+
export const PI_ACP_PROTOCOL_CONTRACT = {
|
|
97
|
+
customCapabilityNamespace: "@automatalabs/pi-acp",
|
|
98
|
+
outputSchemaKey: "outputSchema",
|
|
99
|
+
mcpCapabilities: {},
|
|
100
|
+
authMethodIds: [
|
|
101
|
+
"anthropic-api-key",
|
|
102
|
+
"openai-api-key",
|
|
103
|
+
"gemini-api-key",
|
|
104
|
+
"xai-api-key",
|
|
105
|
+
"openrouter-api-key",
|
|
106
|
+
"pi-stored-credentials",
|
|
107
|
+
],
|
|
108
|
+
providerErrorKinds: ["auth_error", "rate_limit", "billing_error", "provider_error"],
|
|
109
|
+
};
|
|
93
110
|
/** The §3.6 auth `_meta` matrix as executable rows — the exact surfaces §4.6.4 item 4 enumerates
|
|
94
111
|
* (claude gateway/terminal-auth, codex api-key/gateway/DEFAULT_AUTH_REQUEST, opencode terminal-auth),
|
|
95
112
|
* plus the codex tool-approval `persist` and the cross-agent provider-env passthrough. Each
|
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,
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/runner.js
CHANGED
|
@@ -18,13 +18,14 @@
|
|
|
18
18
|
// and re-throw on abort, but never implement our own timeout.
|
|
19
19
|
import { isAbsolute } from "node:path";
|
|
20
20
|
import { isWorkflowError, WorkflowError, WorkflowErrorCode, } from "@automatalabs/shared-types";
|
|
21
|
-
import { PooledConnection } from "./acp-client.js";
|
|
21
|
+
import { PooledConnection, ReattachCapabilityUnavailable, } from "./acp-client.js";
|
|
22
22
|
import { AcpAgentPool } from "./pool.js";
|
|
23
23
|
import { TypedEventEmitter, } from "./events.js";
|
|
24
24
|
import { InteractiveSession } from "./interactive.js";
|
|
25
25
|
import { ClaudeBackend } from "./backends/claude.js";
|
|
26
26
|
import { CodexBackend } from "./backends/codex.js";
|
|
27
27
|
import { OpenCodeBackend } from "./backends/opencode.js";
|
|
28
|
+
import { PiBackend } from "./backends/pi.js";
|
|
28
29
|
import { CustomAcpBackend } from "./backends/custom.js";
|
|
29
30
|
import { registryWithRunBackends, resolveBackendRegistry, } from "./registry.js";
|
|
30
31
|
import { mapThrownError } from "./errors-map.js";
|
|
@@ -35,6 +36,10 @@ import { resolveStructuredOutput } from "./structured-output.js";
|
|
|
35
36
|
import { STRUCTURED_OUTPUT_SERVER_NAME, StructuredOutputToolHost, } from "./structured-tool.js";
|
|
36
37
|
import { buildRunPrompt, mergeTurnMeta, promptWithImages, validatePromptImages, } from "./prompt.js";
|
|
37
38
|
const STRUCTURED_TOOL_REPROMPT_TEXT = "You did not call the StructuredOutput tool. Call the StructuredOutput tool now, exactly once, with your final answer as its arguments conforming to its parameter schema. Do not reply with plain text.";
|
|
39
|
+
const CONTINUATION_INSTRUCTION = "Your previous turn was interrupted before it finished — the provider paused it for a usage " +
|
|
40
|
+
"limit or expired credentials, not because the task was complete. The full task and all prior " +
|
|
41
|
+
"context are already in this session's history; do not restart or repeat work you already did. " +
|
|
42
|
+
"Continue from where you stopped and produce the COMPLETE final answer to the original task now.";
|
|
38
43
|
/**
|
|
39
44
|
* ACP-backed AgentRunner implementation. The caller that constructs an AcpAgentRunner owns it:
|
|
40
45
|
* pass it into managers/runs as needed, then call dispose() (or use `await using`) when that
|
|
@@ -237,7 +242,7 @@ export class AcpAgentRunner {
|
|
|
237
242
|
}
|
|
238
243
|
/** Ids of every configured backend (built-ins + AcpRunnerOptions.backends). */
|
|
239
244
|
listBackends() {
|
|
240
|
-
const ids = new Set(["claude", "codex", "opencode"]);
|
|
245
|
+
const ids = new Set(["claude", "codex", "opencode", "pi"]);
|
|
241
246
|
for (const name of this.backends.keys())
|
|
242
247
|
ids.add(name);
|
|
243
248
|
return [...ids];
|
|
@@ -462,6 +467,42 @@ export class AcpAgentRunner {
|
|
|
462
467
|
let structuredTool;
|
|
463
468
|
let structuredToolActive = false;
|
|
464
469
|
let releaseStructuredToolTurn;
|
|
470
|
+
let continuationUsageBaseline;
|
|
471
|
+
let continuationMethod;
|
|
472
|
+
let keepOpenOnRelease = opts.keepSession === true;
|
|
473
|
+
const reportContinuation = (continuation) => {
|
|
474
|
+
try {
|
|
475
|
+
opts.onResultProvenance?.({ source: "live", continuation });
|
|
476
|
+
}
|
|
477
|
+
catch {
|
|
478
|
+
// Provenance is diagnostic; a throwing observer never changes the live call outcome.
|
|
479
|
+
}
|
|
480
|
+
};
|
|
481
|
+
const cleanupFailedAcquisition = async () => {
|
|
482
|
+
try {
|
|
483
|
+
releaseStructuredToolTurn?.();
|
|
484
|
+
}
|
|
485
|
+
catch {
|
|
486
|
+
// best-effort cleanup before another acquire.
|
|
487
|
+
}
|
|
488
|
+
releaseStructuredToolTurn = undefined;
|
|
489
|
+
try {
|
|
490
|
+
structuredTool?.release();
|
|
491
|
+
}
|
|
492
|
+
catch {
|
|
493
|
+
// best-effort cleanup before another acquire.
|
|
494
|
+
}
|
|
495
|
+
structuredTool = undefined;
|
|
496
|
+
structuredToolActive = false;
|
|
497
|
+
const discarded = session;
|
|
498
|
+
session = undefined;
|
|
499
|
+
try {
|
|
500
|
+
await discarded?.release({ keepOpen: false });
|
|
501
|
+
}
|
|
502
|
+
catch {
|
|
503
|
+
// best-effort cleanup before another acquire.
|
|
504
|
+
}
|
|
505
|
+
};
|
|
465
506
|
try {
|
|
466
507
|
const prepare = async (connection) => {
|
|
467
508
|
let sessionOptions = prepared.sessionOptions;
|
|
@@ -493,40 +534,68 @@ export class AcpAgentRunner {
|
|
|
493
534
|
}
|
|
494
535
|
return sessionOptions;
|
|
495
536
|
};
|
|
537
|
+
// Continuation is a one-shot acquisition before and outside the fresh inline-auth loop.
|
|
538
|
+
if (opts.continueFromSession) {
|
|
539
|
+
const recorded = opts.continueFromSession;
|
|
540
|
+
const recordedPoolKey = recorded.poolKey ?? recorded.backendId;
|
|
541
|
+
const resolvedPoolKey = prepared.backend.poolKey ?? prepared.backend.id;
|
|
542
|
+
let skipReason;
|
|
543
|
+
if (recorded.backendId !== prepared.backend.id || recordedPoolKey !== resolvedPoolKey) {
|
|
544
|
+
skipReason = "backend-mismatch";
|
|
545
|
+
}
|
|
546
|
+
else {
|
|
547
|
+
try {
|
|
548
|
+
const reattached = await this.pool.acquirePreparedReattach(prepared.backend, recorded.sessionId, prepare, { signal: opts.signal, label: opts.label });
|
|
549
|
+
session = reattached.handle;
|
|
550
|
+
continuationMethod = reattached.method;
|
|
551
|
+
// Provenance is committed at the reopen-handle boundary, before any post-open setup.
|
|
552
|
+
reportContinuation({ reattached: true, method: reattached.method });
|
|
553
|
+
continuationUsageBaseline = session.usage.baseline();
|
|
554
|
+
}
|
|
555
|
+
catch (error) {
|
|
556
|
+
if (opts.signal?.aborted)
|
|
557
|
+
throw error;
|
|
558
|
+
skipReason = error instanceof ReattachCapabilityUnavailable
|
|
559
|
+
? "capability-missing"
|
|
560
|
+
: "reattach-failed";
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
if (skipReason) {
|
|
564
|
+
await cleanupFailedAcquisition();
|
|
565
|
+
// An abort that landed during acquire/cleanup wins before skip provenance is reported.
|
|
566
|
+
opts.signal?.throwIfAborted();
|
|
567
|
+
reportContinuation({ reattached: false, reason: skipReason });
|
|
568
|
+
// Mandated checked boundary immediately before the fresh acquire loop.
|
|
569
|
+
opts.signal?.throwIfAborted();
|
|
570
|
+
}
|
|
571
|
+
}
|
|
496
572
|
// Inline resolve-and-retry-once (§2.11): when `onAuth` is set, a -32000 at session/new is
|
|
497
573
|
// resolved via the resolver and the acquire retried EXACTLY once — the run never pauses. A
|
|
498
574
|
// second -32000 propagates as AUTH_REQUIRED. When `onAuth` is unset this loop runs once and
|
|
499
575
|
// the error propagates unchanged (the PR4 pause-and-resume path), byte-identical to today.
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
authRetried
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
// best-effort cleanup between attempts.
|
|
576
|
+
if (!session) {
|
|
577
|
+
let authRetried = false;
|
|
578
|
+
for (;;) {
|
|
579
|
+
try {
|
|
580
|
+
session = await this.pool.acquirePrepared(prepared.backend, prepare, {
|
|
581
|
+
signal: opts.signal,
|
|
582
|
+
label: opts.label,
|
|
583
|
+
});
|
|
584
|
+
break;
|
|
585
|
+
}
|
|
586
|
+
catch (error) {
|
|
587
|
+
if (this.onAuth && !authRetried && !opts.signal?.aborted && isAuthRequiredError(error)) {
|
|
588
|
+
authRetried = true;
|
|
589
|
+
// Discard the failed attempt's partial structured-tool registration so the retry's
|
|
590
|
+
// prepare re-registers cleanly (the failure happened at session/new, after prepare ran).
|
|
591
|
+
await cleanupFailedAcquisition();
|
|
592
|
+
const resolved = await this.resolveInlineAuth(prepared.backend, opts, error);
|
|
593
|
+
if (!resolved)
|
|
594
|
+
throw error; // cancelled/unresolved -> propagate AUTH_REQUIRED
|
|
595
|
+
continue;
|
|
521
596
|
}
|
|
522
|
-
|
|
523
|
-
structuredToolActive = false;
|
|
524
|
-
const resolved = await this.resolveInlineAuth(prepared.backend, opts, error);
|
|
525
|
-
if (!resolved)
|
|
526
|
-
throw error; // cancelled/unresolved -> propagate AUTH_REQUIRED
|
|
527
|
-
continue;
|
|
597
|
+
throw error;
|
|
528
598
|
}
|
|
529
|
-
throw error;
|
|
530
599
|
}
|
|
531
600
|
}
|
|
532
601
|
const activeSession = session;
|
|
@@ -536,7 +605,7 @@ export class AcpAgentRunner {
|
|
|
536
605
|
// a throwing host callback never fails the run.
|
|
537
606
|
if (opts.onSessionOpen) {
|
|
538
607
|
try {
|
|
539
|
-
opts.onSessionOpen(sessionRefFor(activeSession, prepared.backend
|
|
608
|
+
opts.onSessionOpen(sessionRefFor(activeSession, prepared.backend, cwd));
|
|
540
609
|
}
|
|
541
610
|
catch {
|
|
542
611
|
// observer only; the run result never depends on it.
|
|
@@ -550,8 +619,12 @@ export class AcpAgentRunner {
|
|
|
550
619
|
opts.signal?.throwIfAborted();
|
|
551
620
|
if (opts.mode)
|
|
552
621
|
await activeSession.setMode(opts.mode);
|
|
553
|
-
const text = buildRunPrompt(prompt, opts, schema, prepared.backend, structuredToolActive);
|
|
554
|
-
const initialPrompt =
|
|
622
|
+
const text = buildRunPrompt(continuationMethod ? CONTINUATION_INSTRUCTION : prompt, opts, schema, prepared.backend, structuredToolActive);
|
|
623
|
+
const initialPrompt = continuationMethod
|
|
624
|
+
? text
|
|
625
|
+
: opts.images && opts.images.length > 0
|
|
626
|
+
? promptWithImages(text, opts.images)
|
|
627
|
+
: text;
|
|
555
628
|
// Generic turn-scoped _meta passthrough merged UNDER the backend-computed keys (e.g. the
|
|
556
629
|
// outputSchema forward when a schema is set) — user meta never clobbers the schema channel.
|
|
557
630
|
const promptMeta = mergeTurnMeta(opts.promptMeta, prepared.backend.promptMeta(schema));
|
|
@@ -596,21 +669,31 @@ export class AcpAgentRunner {
|
|
|
596
669
|
// Abort is the engine's concern (throwIfAborted before/after the call) — re-throw it raw.
|
|
597
670
|
if (opts.signal?.aborted)
|
|
598
671
|
throw error;
|
|
599
|
-
|
|
672
|
+
const mapped = mapThrownError(error, {
|
|
600
673
|
label: opts.label,
|
|
601
674
|
backendId: prepared.backend.id,
|
|
602
675
|
backend: prepared.backend,
|
|
603
676
|
providerErrorMetadata: session?.providerErrorMetadata,
|
|
604
677
|
authMethods: session?.capabilities?.authMethods,
|
|
605
678
|
});
|
|
679
|
+
if (isProviderUsageLimitError(mapped) || isAuthRequiredError(mapped))
|
|
680
|
+
keepOpenOnRelease = true;
|
|
681
|
+
throw mapped;
|
|
606
682
|
}
|
|
607
683
|
finally {
|
|
608
684
|
try {
|
|
609
|
-
|
|
685
|
+
try {
|
|
686
|
+
structuredTool?.release();
|
|
687
|
+
}
|
|
688
|
+
catch {
|
|
689
|
+
// best-effort tool cleanup; never mask the run result, error, or caller cancellation.
|
|
690
|
+
}
|
|
610
691
|
if (session) {
|
|
611
692
|
// Read real usage on BOTH success and error so partial usage is never lost.
|
|
612
693
|
try {
|
|
613
|
-
opts.onUsage?.(
|
|
694
|
+
opts.onUsage?.(continuationUsageBaseline
|
|
695
|
+
? session.usage.delta(continuationUsageBaseline)
|
|
696
|
+
: session.usage.toAgentUsage());
|
|
614
697
|
}
|
|
615
698
|
catch {
|
|
616
699
|
// usage is best-effort; never let it mask the real result/error.
|
|
@@ -624,7 +707,7 @@ export class AcpAgentRunner {
|
|
|
624
707
|
// Release the SESSION (best-effort session/close) WITHOUT killing the pooled process.
|
|
625
708
|
// keepSession skips the close so the agent-persisted session stays re-openable.
|
|
626
709
|
try {
|
|
627
|
-
await session.release({ keepOpen:
|
|
710
|
+
await session.release({ keepOpen: keepOpenOnRelease });
|
|
628
711
|
}
|
|
629
712
|
catch {
|
|
630
713
|
// release is best-effort (session already untracked); never mask the real result/error.
|
|
@@ -634,7 +717,12 @@ export class AcpAgentRunner {
|
|
|
634
717
|
finally {
|
|
635
718
|
// The injected-tool turn spans the WHOLE run incl. session close, so the next queued
|
|
636
719
|
// schema run's session/new (same-name registry replacement) never overlaps this one.
|
|
637
|
-
|
|
720
|
+
try {
|
|
721
|
+
releaseStructuredToolTurn?.();
|
|
722
|
+
}
|
|
723
|
+
catch {
|
|
724
|
+
// best-effort turn release; never mask the run outcome.
|
|
725
|
+
}
|
|
638
726
|
}
|
|
639
727
|
}
|
|
640
728
|
}
|
|
@@ -1014,6 +1102,8 @@ function builtinBackend(id) {
|
|
|
1014
1102
|
return new CodexBackend();
|
|
1015
1103
|
case "opencode":
|
|
1016
1104
|
return new OpenCodeBackend();
|
|
1105
|
+
case "pi":
|
|
1106
|
+
return new PiBackend();
|
|
1017
1107
|
}
|
|
1018
1108
|
}
|
|
1019
1109
|
/** Resolve routing and the verbatim model value together so backend choice and prefix stripping
|
|
@@ -1027,7 +1117,10 @@ function resolveModelRoute(spec, registry) {
|
|
|
1027
1117
|
const custom = registry?.get(firstSegment);
|
|
1028
1118
|
if (custom)
|
|
1029
1119
|
return { backend: new CustomAcpBackend(custom), modelSpec: inner };
|
|
1030
|
-
if (firstSegment === "claude" ||
|
|
1120
|
+
if (firstSegment === "claude" ||
|
|
1121
|
+
firstSegment === "codex" ||
|
|
1122
|
+
firstSegment === "opencode" ||
|
|
1123
|
+
firstSegment === "pi") {
|
|
1031
1124
|
return { backend: builtinBackend(firstSegment), modelSpec: inner };
|
|
1032
1125
|
}
|
|
1033
1126
|
return { backend: defaultBackend(registry), modelSpec: spec };
|
|
@@ -1035,11 +1128,12 @@ function resolveModelRoute(spec, registry) {
|
|
|
1035
1128
|
/** The re-attach handle for an open session: id + backend routing name + cwd + the
|
|
1036
1129
|
* agent-advertised reopen surface. Contains no secrets; JSON-round-trippable. `backendId`
|
|
1037
1130
|
* doubles as the `model` routing spec for loadSession/resumeSession/listSessions. */
|
|
1038
|
-
function sessionRefFor(session,
|
|
1131
|
+
function sessionRefFor(session, backend, cwd) {
|
|
1039
1132
|
const caps = session.capabilities;
|
|
1040
1133
|
return {
|
|
1041
1134
|
sessionId: session.sessionId,
|
|
1042
|
-
backendId,
|
|
1135
|
+
backendId: backend.id,
|
|
1136
|
+
poolKey: backend.poolKey ?? backend.id,
|
|
1043
1137
|
cwd,
|
|
1044
1138
|
reopen: {
|
|
1045
1139
|
load: caps?.supportsLoadSession === true,
|
|
@@ -1074,6 +1168,9 @@ function validateRequiredString(value, label, methodName, fieldName) {
|
|
|
1074
1168
|
function isAuthRequiredError(error) {
|
|
1075
1169
|
return isWorkflowError(error) && error.code === WorkflowErrorCode.AUTH_REQUIRED;
|
|
1076
1170
|
}
|
|
1171
|
+
function isProviderUsageLimitError(error) {
|
|
1172
|
+
return isWorkflowError(error) && error.code === WorkflowErrorCode.PROVIDER_USAGE_LIMIT;
|
|
1173
|
+
}
|
|
1077
1174
|
/** The SDK types a missing `type` discriminant as `agent`. */
|
|
1078
1175
|
/** Dispatch each advertised method through the base §1.3 dispatcher, then hand the result to the
|
|
1079
1176
|
* backend's pure-data `AuthProfile.describe` (§3.1) for label enrichment. A custom backend has NO
|
|
@@ -1135,7 +1232,7 @@ function defaultBackend(registry) {
|
|
|
1135
1232
|
if (config)
|
|
1136
1233
|
return new CustomAcpBackend(config);
|
|
1137
1234
|
}
|
|
1138
|
-
if (name === "opencode" || name === "codex")
|
|
1235
|
+
if (name === "opencode" || name === "codex" || name === "pi")
|
|
1139
1236
|
return builtinBackend(name);
|
|
1140
1237
|
return builtinBackend("claude");
|
|
1141
1238
|
}
|
package/dist/usage.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { AgentUsage } from "@automatalabs/shared-types";
|
|
2
2
|
import type { Cost, Usage } from "@agentclientprotocol/sdk";
|
|
3
|
+
export interface UsageBaseline {
|
|
4
|
+
costAmount: number;
|
|
5
|
+
contextUsedTokens: number;
|
|
6
|
+
}
|
|
3
7
|
export declare class UsageAccumulator {
|
|
4
8
|
private promptUsage;
|
|
5
9
|
private costAmount;
|
|
@@ -16,6 +20,10 @@ export declare class UsageAccumulator {
|
|
|
16
20
|
* so AgentUsage.total is non-zero whenever the backend reported ANY token count.
|
|
17
21
|
*/
|
|
18
22
|
recordContextTokens(used: number | null | undefined, size?: number | null | undefined): void;
|
|
23
|
+
/** Snapshot the cumulative/gauge channels before a continuation turn begins. */
|
|
24
|
+
baseline(): UsageBaseline;
|
|
25
|
+
/** Report only usage observed after a reopened session's replay/setup boundary. */
|
|
26
|
+
delta(baseline: UsageBaseline): AgentUsage;
|
|
19
27
|
toAgentUsage(): AgentUsage;
|
|
20
28
|
}
|
|
21
29
|
//# sourceMappingURL=usage.d.ts.map
|
package/dist/usage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAE5D,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,iBAAiB,CAAK;IAE9B,2EAA2E;IAC3E,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAIxD,uFAAuF;IACvF,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAM/C;;;;;OAKG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAK5F,YAAY,IAAI,UAAU;CAuB3B"}
|
|
1
|
+
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,iBAAiB,CAAK;IAE9B,2EAA2E;IAC3E,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAIxD,uFAAuF;IACvF,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAM/C;;;;;OAKG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAK5F,gFAAgF;IAChF,QAAQ,IAAI,aAAa;IAOzB,mFAAmF;IACnF,KAAK,CAAC,QAAQ,EAAE,aAAa,GAAG,UAAU;IAuB1C,YAAY,IAAI,UAAU;CAuB3B"}
|
package/dist/usage.js
CHANGED
|
@@ -26,6 +26,36 @@ export class UsageAccumulator {
|
|
|
26
26
|
if (typeof size === "number" && Number.isFinite(size) && size >= 0)
|
|
27
27
|
this.contextSizeTokens = size;
|
|
28
28
|
}
|
|
29
|
+
/** Snapshot the cumulative/gauge channels before a continuation turn begins. */
|
|
30
|
+
baseline() {
|
|
31
|
+
return {
|
|
32
|
+
costAmount: this.costAmount,
|
|
33
|
+
contextUsedTokens: this.contextUsedTokens,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/** Report only usage observed after a reopened session's replay/setup boundary. */
|
|
37
|
+
delta(baseline) {
|
|
38
|
+
const cost = Math.max(0, this.costAmount - baseline.costAmount);
|
|
39
|
+
const u = this.promptUsage;
|
|
40
|
+
if (u) {
|
|
41
|
+
return {
|
|
42
|
+
input: u.inputTokens ?? 0,
|
|
43
|
+
output: u.outputTokens ?? 0,
|
|
44
|
+
cacheRead: u.cachedReadTokens ?? 0,
|
|
45
|
+
cacheWrite: u.cachedWriteTokens ?? 0,
|
|
46
|
+
total: u.totalTokens ?? 0,
|
|
47
|
+
cost,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
return {
|
|
51
|
+
input: 0,
|
|
52
|
+
output: 0,
|
|
53
|
+
cacheRead: 0,
|
|
54
|
+
cacheWrite: 0,
|
|
55
|
+
total: Math.max(0, this.contextUsedTokens - baseline.contextUsedTokens),
|
|
56
|
+
cost,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
29
59
|
toAgentUsage() {
|
|
30
60
|
const u = this.promptUsage;
|
|
31
61
|
if (u) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@automatalabs/acp-agents",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.30.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=22"
|
|
@@ -32,7 +32,8 @@
|
|
|
32
32
|
"@automatalabs/codex-acp": "1.6.5",
|
|
33
33
|
"@modelcontextprotocol/sdk": "^1.29",
|
|
34
34
|
"typebox": "1.3.2",
|
|
35
|
-
"@automatalabs/
|
|
35
|
+
"@automatalabs/pi-acp": "0.1.2",
|
|
36
|
+
"@automatalabs/shared-types": "0.24.0"
|
|
36
37
|
},
|
|
37
38
|
"scripts": {
|
|
38
39
|
"build": "tsc -b",
|