@automatalabs/acp-agents 0.36.4 → 0.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/acp-client.d.ts +53 -0
- package/dist/acp-client.d.ts.map +1 -1
- package/dist/acp-client.js +101 -0
- package/dist/backend.d.ts +10 -0
- package/dist/backend.d.ts.map +1 -1
- package/dist/backends/codex.d.ts +10 -0
- package/dist/backends/codex.d.ts.map +1 -1
- package/dist/backends/codex.js +11 -0
- package/dist/backends/pi.d.ts.map +1 -1
- package/dist/backends/pi.js +8 -1
- package/dist/client-handlers.d.ts +6 -1
- package/dist/client-handlers.d.ts.map +1 -1
- package/dist/client-handlers.js +7 -1
- package/dist/errors-map.d.ts +28 -0
- package/dist/errors-map.d.ts.map +1 -1
- package/dist/errors-map.js +88 -10
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/typed-failures.d.ts +59 -0
- package/dist/typed-failures.d.ts.map +1 -0
- package/dist/typed-failures.js +99 -0
- package/package.json +2 -2
package/dist/acp-client.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ import { UsageAccumulator } from "./usage.js";
|
|
|
9
9
|
import { type ClientHandlers } from "./client-handlers.js";
|
|
10
10
|
import { type AuthStore, type BackendAuthMachine, type ConnectionAuthStamp } from "./auth/auth-store.js";
|
|
11
11
|
import type { ProviderStore } from "./provider-store.js";
|
|
12
|
+
import { type TypedSessionFailure } from "./typed-failures.js";
|
|
12
13
|
/** Cross-agent vendor extension for injecting content into a live prompt turn. */
|
|
13
14
|
export declare const SESSION_STEERING_METHOD: "_session/steering";
|
|
14
15
|
/** Cross-agent vendor extension carrying turn-TERMINAL state for LOADED sessions (the re-attach
|
|
@@ -93,6 +94,16 @@ declare class SessionState {
|
|
|
93
94
|
rawResultSuccess: RawResultSuccess | undefined;
|
|
94
95
|
providerErrorMetadata: ProviderErrorMetadata | undefined;
|
|
95
96
|
modes: SessionModeState | null | undefined;
|
|
97
|
+
/** The latched typed session failure (codex-acp's negotiated extension — see typed-failures.ts):
|
|
98
|
+
* the newest failure record the server has published for THIS session over the asynchronous
|
|
99
|
+
* `session_info_update` channel, or undefined when it never published one. Kept in the
|
|
100
|
+
* server's own vocabulary (including the `cleared` phase) rather than collapsed to a boolean,
|
|
101
|
+
* because the revision/identity rules are what make a duplicated or reordered frame harmless. */
|
|
102
|
+
private typedSessionFailure;
|
|
103
|
+
/** The latch as it stood when the current turn began. The server keeps the same snapshot for the
|
|
104
|
+
* same reason (`recoverableSessionFailure` in its prompt path): it is what distinguishes a
|
|
105
|
+
* failure this turn RAISED from one it merely inherited from an earlier turn. */
|
|
106
|
+
private turnStartTypedSessionFailure;
|
|
96
107
|
private turnStartIndex;
|
|
97
108
|
private finalMessageStartIndex;
|
|
98
109
|
/** The re-attach arm's transcript probe (phase D): where the LOADED
|
|
@@ -161,6 +172,28 @@ declare class SessionState {
|
|
|
161
172
|
finalMessageText(): string;
|
|
162
173
|
applyUpdate(update: SessionNotification["update"]): void;
|
|
163
174
|
applyRawMessage(message: RawResultSuccess | undefined): void;
|
|
175
|
+
/**
|
|
176
|
+
* Fold one typed-session-failure frame (from any ACP `_meta`) into the latch. A `_meta` that
|
|
177
|
+
* carries none — every other backend's, every older codex-acp's — leaves the latch untouched.
|
|
178
|
+
*
|
|
179
|
+
* SUPERSESSION. A frame for the same `id` at a revision we have already seen is stale and is
|
|
180
|
+
* dropped, so a duplicate or a reordered delivery can neither re-raise a cleared failure nor
|
|
181
|
+
* roll one back to an older category. A `cleared` frame that DOES supersede drops the latch
|
|
182
|
+
* outright rather than latching a cleared record: nothing downstream should ever have to ask
|
|
183
|
+
* "is the latched failure still in force?".
|
|
184
|
+
*
|
|
185
|
+
* Returns the frame that was READ (whether or not it superseded the latch), so a caller holding
|
|
186
|
+
* an authoritative frame — a turn's own terminal failure, which is authoritative for that turn
|
|
187
|
+
* by construction — can act on it without re-parsing.
|
|
188
|
+
*/
|
|
189
|
+
applyTypedSessionFailure(meta: unknown): TypedSessionFailure | undefined;
|
|
190
|
+
/**
|
|
191
|
+
* The typed session failure this turn RAISED, or undefined when the session has none active or
|
|
192
|
+
* only carries one inherited from an earlier turn. Compared against the turn-start snapshot by
|
|
193
|
+
* the same (id, revision) rule the server uses to decide whether a failure is still the one it
|
|
194
|
+
* saw when the turn began.
|
|
195
|
+
*/
|
|
196
|
+
turnTypedSessionFailure(): TypedSessionFailure | undefined;
|
|
164
197
|
/** The loaded-session founding-turn observability probe: whether the
|
|
165
198
|
* transcript shows a turn ever started (a user message) and the KIND of
|
|
166
199
|
* the trailing content event. The trailing kind is PROGRESS evidence,
|
|
@@ -598,6 +631,26 @@ export declare class SessionHandle implements StructuredSource {
|
|
|
598
631
|
setMode(modeId: string): Promise<void>;
|
|
599
632
|
/** Send a prompt turn and drain it; returns the final PromptResponse. */
|
|
600
633
|
prompt(content: string | ContentBlock[], promptMeta?: Record<string, unknown>): Promise<PromptResponse>;
|
|
634
|
+
/**
|
|
635
|
+
* The typed session failure that ended this turn, if any (codex-acp's negotiated extension —
|
|
636
|
+
* see typed-failures.ts). Two channels, in priority order:
|
|
637
|
+
*
|
|
638
|
+
* 1. `PromptResponse._meta` — the TERMINAL failure. Unambiguous: the server put it there
|
|
639
|
+
* instead of rejecting the request or streaming the provider's prose as assistant output,
|
|
640
|
+
* so the turn resolved `end_turn` with nothing to show for itself. Always fails the turn.
|
|
641
|
+
* 2. the asynchronous latch — a failure published on `session_info_update` that this turn
|
|
642
|
+
* RAISED (not one inherited from an earlier turn). The server does not treat these as
|
|
643
|
+
* terminal, and neither do we while the turn still produced output: a late unattributed
|
|
644
|
+
* error must not retroactively fail a turn that answered. It IS applied to a turn that
|
|
645
|
+
* produced no assistant text, where it is the only account of why — strictly better than
|
|
646
|
+
* the AGENT_EMPTY_OUTPUT / schema-repair-ladder path that would otherwise run blind.
|
|
647
|
+
* Assistant text is the whole of this backend's output surface (its structured results are
|
|
648
|
+
* read off the same stream), so an empty accumulator really does mean nothing came back.
|
|
649
|
+
*
|
|
650
|
+
* Usage is recorded before this runs, so a walled turn still reports the tokens it burned.
|
|
651
|
+
*/
|
|
652
|
+
private terminalTypedSessionFailure;
|
|
653
|
+
private typedSessionFailureError;
|
|
601
654
|
/** Inject content into the currently running prompt turn through the negotiated steering
|
|
602
655
|
* extension. This deliberately owns no turn state: it does not begin/replace a turn, accumulate
|
|
603
656
|
* output, record usage, or retry a late `startedNewTurn` outcome. */
|
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
|
@@ -32,6 +32,8 @@ import { UsageAccumulator } from "./usage.js";
|
|
|
32
32
|
import { clientCapabilitiesFor, hasFullMcpHandlers, } from "./client-handlers.js";
|
|
33
33
|
import { redactSecrets, } from "./auth/auth-store.js";
|
|
34
34
|
import { providerVertexMeta } from "./provider-store.js";
|
|
35
|
+
import { mapTypedSessionFailure } from "./errors-map.js";
|
|
36
|
+
import { readTypedSessionFailure, supersedesTypedSessionFailure, } from "./typed-failures.js";
|
|
35
37
|
/** A benign client identity. NOT JetBrains/IntelliJ 2026.1 — that exact identity makes
|
|
36
38
|
* codex-acp disable session config options (including the model-selection channel). */
|
|
37
39
|
const CLIENT_INFO = {
|
|
@@ -207,6 +209,16 @@ class SessionState {
|
|
|
207
209
|
rawResultSuccess;
|
|
208
210
|
providerErrorMetadata;
|
|
209
211
|
modes;
|
|
212
|
+
/** The latched typed session failure (codex-acp's negotiated extension — see typed-failures.ts):
|
|
213
|
+
* the newest failure record the server has published for THIS session over the asynchronous
|
|
214
|
+
* `session_info_update` channel, or undefined when it never published one. Kept in the
|
|
215
|
+
* server's own vocabulary (including the `cleared` phase) rather than collapsed to a boolean,
|
|
216
|
+
* because the revision/identity rules are what make a duplicated or reordered frame harmless. */
|
|
217
|
+
typedSessionFailure;
|
|
218
|
+
/** The latch as it stood when the current turn began. The server keeps the same snapshot for the
|
|
219
|
+
* same reason (`recoverableSessionFailure` in its prompt path): it is what distinguishes a
|
|
220
|
+
* failure this turn RAISED from one it merely inherited from an earlier turn. */
|
|
221
|
+
turnStartTypedSessionFailure;
|
|
210
222
|
turnStartIndex = 0;
|
|
211
223
|
finalMessageStartIndex = 0;
|
|
212
224
|
/** The re-attach arm's transcript probe (phase D): where the LOADED
|
|
@@ -290,6 +302,7 @@ class SessionState {
|
|
|
290
302
|
this.finalMessageStartIndex = this.turnStartIndex;
|
|
291
303
|
this.rawResultSuccess = undefined;
|
|
292
304
|
this.providerErrorMetadata = undefined;
|
|
305
|
+
this.turnStartTypedSessionFailure = this.typedSessionFailure;
|
|
293
306
|
}
|
|
294
307
|
currentTurnText() {
|
|
295
308
|
return this.textChunks.slice(this.turnStartIndex).join("");
|
|
@@ -381,6 +394,16 @@ class SessionState {
|
|
|
381
394
|
};
|
|
382
395
|
break;
|
|
383
396
|
}
|
|
397
|
+
case "session_info_update": {
|
|
398
|
+
// The ASYNCHRONOUS half of codex-acp's negotiated typed-failure channel: failures the
|
|
399
|
+
// server could not attribute to a running turn (late/idle terminal errors, and errors
|
|
400
|
+
// buffered before a turn had an identity), plus the `cleared` frame it publishes once a
|
|
401
|
+
// later turn recovers. Parsed unconditionally like the Claude `_meta` readers above — the
|
|
402
|
+
// namespace is vendor-unique, so this is inert for every other agent and for every
|
|
403
|
+
// codex-acp that did not accept our advertisement.
|
|
404
|
+
this.applyTypedSessionFailure(update._meta);
|
|
405
|
+
break;
|
|
406
|
+
}
|
|
384
407
|
default:
|
|
385
408
|
break;
|
|
386
409
|
}
|
|
@@ -395,6 +418,42 @@ class SessionState {
|
|
|
395
418
|
this.rawResultSuccess = message;
|
|
396
419
|
}
|
|
397
420
|
}
|
|
421
|
+
/**
|
|
422
|
+
* Fold one typed-session-failure frame (from any ACP `_meta`) into the latch. A `_meta` that
|
|
423
|
+
* carries none — every other backend's, every older codex-acp's — leaves the latch untouched.
|
|
424
|
+
*
|
|
425
|
+
* SUPERSESSION. A frame for the same `id` at a revision we have already seen is stale and is
|
|
426
|
+
* dropped, so a duplicate or a reordered delivery can neither re-raise a cleared failure nor
|
|
427
|
+
* roll one back to an older category. A `cleared` frame that DOES supersede drops the latch
|
|
428
|
+
* outright rather than latching a cleared record: nothing downstream should ever have to ask
|
|
429
|
+
* "is the latched failure still in force?".
|
|
430
|
+
*
|
|
431
|
+
* Returns the frame that was READ (whether or not it superseded the latch), so a caller holding
|
|
432
|
+
* an authoritative frame — a turn's own terminal failure, which is authoritative for that turn
|
|
433
|
+
* by construction — can act on it without re-parsing.
|
|
434
|
+
*/
|
|
435
|
+
applyTypedSessionFailure(meta) {
|
|
436
|
+
const failure = readTypedSessionFailure(meta);
|
|
437
|
+
if (failure && supersedesTypedSessionFailure(this.typedSessionFailure, failure)) {
|
|
438
|
+
this.typedSessionFailure = failure.phase === "cleared" ? undefined : failure;
|
|
439
|
+
}
|
|
440
|
+
return failure;
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* The typed session failure this turn RAISED, or undefined when the session has none active or
|
|
444
|
+
* only carries one inherited from an earlier turn. Compared against the turn-start snapshot by
|
|
445
|
+
* the same (id, revision) rule the server uses to decide whether a failure is still the one it
|
|
446
|
+
* saw when the turn began.
|
|
447
|
+
*/
|
|
448
|
+
turnTypedSessionFailure() {
|
|
449
|
+
const failure = this.typedSessionFailure;
|
|
450
|
+
if (!failure)
|
|
451
|
+
return undefined;
|
|
452
|
+
const baseline = this.turnStartTypedSessionFailure;
|
|
453
|
+
if (baseline && baseline.id === failure.id && failure.revision <= baseline.revision)
|
|
454
|
+
return undefined;
|
|
455
|
+
return failure;
|
|
456
|
+
}
|
|
398
457
|
/** The loaded-session founding-turn observability probe: whether the
|
|
399
458
|
* transcript shows a turn ever started (a user message) and the KIND of
|
|
400
459
|
* the trailing content event. The trailing kind is PROGRESS evidence,
|
|
@@ -1464,6 +1523,9 @@ export class PooledConnection {
|
|
|
1464
1523
|
elicitation: this.advertiseElicitation,
|
|
1465
1524
|
// Per-backend profile refinement (§1.2/§3.1); undefined => no `auth` key emitted (default-OFF).
|
|
1466
1525
|
auth: this.effectiveAuthCapabilities(),
|
|
1526
|
+
// Backend-declared vendor extensions THIS client implements (codex: typed session
|
|
1527
|
+
// failures). Undefined for backends that negotiate none => byte-identical handshake.
|
|
1528
|
+
...(this.backend.clientCapabilityMeta ? { meta: this.backend.clientCapabilityMeta } : {}),
|
|
1467
1529
|
}),
|
|
1468
1530
|
clientInfo: { ...CLIENT_INFO },
|
|
1469
1531
|
})),
|
|
@@ -2174,6 +2236,9 @@ export class SessionHandle {
|
|
|
2174
2236
|
try {
|
|
2175
2237
|
const response = await this.pooled.prompt(request);
|
|
2176
2238
|
this.state.usage.recordPromptUsage(response.usage);
|
|
2239
|
+
const failure = this.terminalTypedSessionFailure(response);
|
|
2240
|
+
if (failure)
|
|
2241
|
+
throw this.typedSessionFailureError(failure);
|
|
2177
2242
|
return response;
|
|
2178
2243
|
}
|
|
2179
2244
|
finally {
|
|
@@ -2182,6 +2247,42 @@ export class SessionHandle {
|
|
|
2182
2247
|
turn.resolveEnded();
|
|
2183
2248
|
}
|
|
2184
2249
|
}
|
|
2250
|
+
/**
|
|
2251
|
+
* The typed session failure that ended this turn, if any (codex-acp's negotiated extension —
|
|
2252
|
+
* see typed-failures.ts). Two channels, in priority order:
|
|
2253
|
+
*
|
|
2254
|
+
* 1. `PromptResponse._meta` — the TERMINAL failure. Unambiguous: the server put it there
|
|
2255
|
+
* instead of rejecting the request or streaming the provider's prose as assistant output,
|
|
2256
|
+
* so the turn resolved `end_turn` with nothing to show for itself. Always fails the turn.
|
|
2257
|
+
* 2. the asynchronous latch — a failure published on `session_info_update` that this turn
|
|
2258
|
+
* RAISED (not one inherited from an earlier turn). The server does not treat these as
|
|
2259
|
+
* terminal, and neither do we while the turn still produced output: a late unattributed
|
|
2260
|
+
* error must not retroactively fail a turn that answered. It IS applied to a turn that
|
|
2261
|
+
* produced no assistant text, where it is the only account of why — strictly better than
|
|
2262
|
+
* the AGENT_EMPTY_OUTPUT / schema-repair-ladder path that would otherwise run blind.
|
|
2263
|
+
* Assistant text is the whole of this backend's output surface (its structured results are
|
|
2264
|
+
* read off the same stream), so an empty accumulator really does mean nothing came back.
|
|
2265
|
+
*
|
|
2266
|
+
* Usage is recorded before this runs, so a walled turn still reports the tokens it burned.
|
|
2267
|
+
*/
|
|
2268
|
+
terminalTypedSessionFailure(response) {
|
|
2269
|
+
// Fold the terminal record into the latch as well: it is the newest state of the same
|
|
2270
|
+
// failure, and a later turn's `cleared` frame is written against its (id, revision).
|
|
2271
|
+
const terminal = this.state.applyTypedSessionFailure(response._meta);
|
|
2272
|
+
if (terminal?.phase === "active")
|
|
2273
|
+
return terminal;
|
|
2274
|
+
if (this.state.currentTurnText().trim().length > 0)
|
|
2275
|
+
return undefined;
|
|
2276
|
+
return this.state.turnTypedSessionFailure();
|
|
2277
|
+
}
|
|
2278
|
+
typedSessionFailureError(failure) {
|
|
2279
|
+
return mapTypedSessionFailure(failure, {
|
|
2280
|
+
label: this.opts.label,
|
|
2281
|
+
backendId: this.pooled.backendId,
|
|
2282
|
+
providerErrorMetadata: this.state.providerErrorMetadata,
|
|
2283
|
+
authMethods: this.pooled.capabilities?.authMethods,
|
|
2284
|
+
});
|
|
2285
|
+
}
|
|
2185
2286
|
/** Inject content into the currently running prompt turn through the negotiated steering
|
|
2186
2287
|
* extension. This deliberately owns no turn state: it does not begin/replace a turn, accumulate
|
|
2187
2288
|
* output, record usage, or retry a late `startedNewTurn` outcome. */
|
package/dist/backend.d.ts
CHANGED
|
@@ -65,6 +65,16 @@ export interface Backend {
|
|
|
65
65
|
readonly namespace: string;
|
|
66
66
|
readonly gatedKeys: readonly string[];
|
|
67
67
|
};
|
|
68
|
+
/** OPTIONAL `initialize.clientCapabilities._meta` this backend adds: the namespaced vendor
|
|
69
|
+
* extensions THIS CLIENT implements for that agent, so the agent may turn them on. The mirror
|
|
70
|
+
* image of `customCapabilities` (which reads what the AGENT advertised). Backend-scoped on
|
|
71
|
+
* purpose — advertising a capability to an agent that does not implement it is noise, and
|
|
72
|
+
* advertising one this client does not consume would be a lie. Undefined for every backend that
|
|
73
|
+
* negotiates no client-side extension, which keeps its handshake byte-identical.
|
|
74
|
+
* Folded into the top-level `_meta` alongside the auth layer's own `terminal-auth` key; the two
|
|
75
|
+
* never collide because an extension owns a namespace of its own. Codex sets it to turn on the
|
|
76
|
+
* typed-session-failures extension. */
|
|
77
|
+
readonly clientCapabilityMeta?: Readonly<Record<string, unknown>>;
|
|
68
78
|
/** Per-agent auth adapter (§3.1). UNDEFINED for custom backends → the type-driven base auth flow
|
|
69
79
|
* runs verbatim (conformance-by-absence, §1.4). The four built-in backends wire their pure-data
|
|
70
80
|
* profile (§3.2–§3.4); the lifecycle spine (§2) reads it when computing `spawnEnvFor` (§2.8), the
|
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,wBAAwB,CAAC;AAE1D,iGAAiG;AACjG,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D;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;;;;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,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC;CACtD;AAED,6FAA6F;AAC7F,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAE7D"}
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
|
package/dist/backends/codex.d.ts
CHANGED
|
@@ -11,6 +11,16 @@ export declare class CodexBackend implements Backend {
|
|
|
11
11
|
readonly namespace: "@automatalabs/codex-acp";
|
|
12
12
|
readonly gatedKeys: readonly string[];
|
|
13
13
|
};
|
|
14
|
+
/** Turn on codex-acp's negotiated typed-session-failures extension at `initialize` (see
|
|
15
|
+
* typed-failures.ts). Truthful: SessionHandle consumes BOTH delivery channels the server opens
|
|
16
|
+
* in response — the terminal failure on `PromptResponse._meta` and the asynchronous one on
|
|
17
|
+
* `session_info_update`. An older codex-acp ignores the block and keeps its legacy behavior. */
|
|
18
|
+
readonly clientCapabilityMeta: Readonly<Record<string, unknown>>;
|
|
19
|
+
/** The LEGACY (thrown) provider-wall channel. Still load-bearing with the typed extension
|
|
20
|
+
* negotiated: it classifies every rejection the typed channel does not cover — an older
|
|
21
|
+
* codex-acp, and any `session/prompt` rejection raised outside a turn's terminal-failure path
|
|
22
|
+
* (the server converts only process-exit / unexpected throws into typed responses). The typed
|
|
23
|
+
* channel's own equivalents are mapped by `mapTypedSessionFailure`. */
|
|
14
24
|
classifyProviderError(error: unknown, metadata?: ProviderErrorMetadata): ProviderErrorClassification | undefined;
|
|
15
25
|
spawnConfig(): SpawnConfig;
|
|
16
26
|
sessionMeta(_schema: TSchema | undefined, inputs?: SessionMetaInputs): Record<string, unknown> | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/backends/codex.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EACV,OAAO,EACP,2BAA2B,EAC3B,qBAAqB,EACrB,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EACjB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/backends/codex.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EACV,OAAO,EACP,2BAA2B,EAC3B,qBAAqB,EACrB,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAWvB,6FAA6F;AAC7F,eAAO,MAAM,gBAAgB,EAAE,WAe9B,CAAC;AAEF,qBAAa,YAAa,YAAW,OAAO;IAG9B,QAAQ,CAAC,WAAW,EAAE,WAAW;IAF7C,QAAQ,CAAC,EAAE,EAAG,OAAO,CAAU;gBAEV,WAAW,GAAE,WAA8B;IAEhE,QAAQ,CAAC,kBAAkB;;;MAGhB;IAEX;;;qGAGiG;IACjG,QAAQ,CAAC,oBAAoB,oCAA2C;IAExE;;;;4EAIwE;IACxE,qBAAqB,CACnB,KAAK,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,2BAA2B,GAAG,SAAS;IAW1C,WAAW,IAAI,WAAW;IAe1B,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAY1G,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAK5E,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO;CAMpD;AAED,eAAO,MAAM,sBAAsB,yDAuBjC,CAAC"}
|
package/dist/backends/codex.js
CHANGED
|
@@ -15,6 +15,7 @@ import { GATED_CUSTOM_META_KEYS } from "../capabilities.js";
|
|
|
15
15
|
import { BUILTIN_PROTOCOL_COVERAGE } from "../protocol-coverage.js";
|
|
16
16
|
import { toStrictJsonSchema } from "../schema-strict.js";
|
|
17
17
|
import { parseFinalJson } from "../structured-output.js";
|
|
18
|
+
import { TYPED_SESSION_FAILURE_CLIENT_CAPABILITY } from "../typed-failures.js";
|
|
18
19
|
import { defineBuiltinBackend } from "./define.js";
|
|
19
20
|
const require = createRequire(import.meta.url);
|
|
20
21
|
/** Codex auth adaptation, including its existing spawn-time pre-auth environment channel. */
|
|
@@ -45,6 +46,16 @@ export class CodexBackend {
|
|
|
45
46
|
namespace: CODEX_CUSTOM_CAPABILITY_NAMESPACE,
|
|
46
47
|
gatedKeys: GATED_CUSTOM_META_KEYS,
|
|
47
48
|
};
|
|
49
|
+
/** Turn on codex-acp's negotiated typed-session-failures extension at `initialize` (see
|
|
50
|
+
* typed-failures.ts). Truthful: SessionHandle consumes BOTH delivery channels the server opens
|
|
51
|
+
* in response — the terminal failure on `PromptResponse._meta` and the asynchronous one on
|
|
52
|
+
* `session_info_update`. An older codex-acp ignores the block and keeps its legacy behavior. */
|
|
53
|
+
clientCapabilityMeta = TYPED_SESSION_FAILURE_CLIENT_CAPABILITY;
|
|
54
|
+
/** The LEGACY (thrown) provider-wall channel. Still load-bearing with the typed extension
|
|
55
|
+
* negotiated: it classifies every rejection the typed channel does not cover — an older
|
|
56
|
+
* codex-acp, and any `session/prompt` rejection raised outside a turn's terminal-failure path
|
|
57
|
+
* (the server converts only process-exit / unexpected throws into typed responses). The typed
|
|
58
|
+
* channel's own equivalents are mapped by `mapTypedSessionFailure`. */
|
|
48
59
|
classifyProviderError(error, metadata) {
|
|
49
60
|
const info = errorData(error)?.codexErrorInfo;
|
|
50
61
|
if (info === "usageLimitExceeded") {
|
|
@@ -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;AAiBvB,yFAAyF;AACzF,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,
|
|
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;AAiBvB,yFAAyF;AACzF,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
|
@@ -87,7 +87,14 @@ export const piBackendDefinition = defineBuiltinBackend({
|
|
|
87
87
|
path: "packages/pi-acp",
|
|
88
88
|
},
|
|
89
89
|
freshness: {
|
|
90
|
-
npm: [
|
|
90
|
+
npm: [
|
|
91
|
+
"@agentclientprotocol/sdk",
|
|
92
|
+
"@earendil-works/pi-ai",
|
|
93
|
+
"@earendil-works/pi-coding-agent",
|
|
94
|
+
// Test-surface runtime dep of pi-acp: exact-pinned on the same upstream version line as
|
|
95
|
+
// pi-ai/pi-coding-agent, so it must move in lockstep or the suite tests a stale runtime.
|
|
96
|
+
"@earendil-works/pi-agent-core",
|
|
97
|
+
],
|
|
91
98
|
sourceUpstreams: [],
|
|
92
99
|
wrappedRuntimes: [],
|
|
93
100
|
},
|
|
@@ -40,11 +40,16 @@ export interface ClientCapabilityOptions {
|
|
|
40
40
|
terminal?: boolean;
|
|
41
41
|
gateway?: boolean;
|
|
42
42
|
};
|
|
43
|
+
/** Backend-declared namespaced vendor-extension advertisement (`Backend.clientCapabilityMeta`),
|
|
44
|
+
* folded into the top-level `_meta`. Same fixed-for-the-connection discipline as `elicitation`
|
|
45
|
+
* and `auth`: it is a property of the client build, not of any one session. */
|
|
46
|
+
meta?: Readonly<Record<string, unknown>>;
|
|
43
47
|
}
|
|
44
48
|
/** The client capability advertisement: fs/terminal derived solely from registered consumer
|
|
45
49
|
* handlers, plus the capabilities this client supports natively regardless of handlers —
|
|
46
50
|
* boolean session config options (SessionHandle drives the catalog programmatically and
|
|
47
|
-
* handles `type: "boolean"` entries, e.g. codex-acp's Fast-mode toggle)
|
|
51
|
+
* handles `type: "boolean"` entries, e.g. codex-acp's Fast-mode toggle) — plus the connecting
|
|
52
|
+
* backend's declared vendor-extension `_meta` (`options.meta`). The installed ACP SDK
|
|
48
53
|
* has no ClientCapabilities field for MCP-over-ACP; support is declared by sending
|
|
49
54
|
* `mcpServers[{ type: "acp" }]` on session/new and then gated against handlers at that site. */
|
|
50
55
|
export declare function clientCapabilitiesFor(handlers: ClientHandlers | undefined, options?: ClientCapabilityOptions): ClientCapabilities;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-handlers.d.ts","sourceRoot":"","sources":["../src/client-handlers.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,CACX,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,oBAAoB,CAAC,GAAG,oBAAoB,CAAC;IACxD,aAAa,CAAC,CACZ,MAAM,EAAE,oBAAoB,EAC5B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,qBAAqB,GAAG,IAAI,CAAC;CACzE;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CACZ,MAAM,EAAE,qBAAqB,EAC7B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,sBAAsB,CAAC,GAAG,sBAAsB,CAAC;IAC5D,cAAc,CACZ,MAAM,EAAE,qBAAqB,EAC7B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,sBAAsB,CAAC,GAAG,sBAAsB,CAAC;IAC5D,mBAAmB,CACjB,MAAM,EAAE,0BAA0B,EAClC,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,2BAA2B,CAAC,GAAG,2BAA2B,CAAC;IACtE,YAAY,CACV,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,oBAAoB,GAAG,IAAI,CAAC;IACtE,eAAe,CACb,MAAM,EAAE,sBAAsB,EAC9B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,GAAG,uBAAuB,GAAG,IAAI,CAAC;CAC7E;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CACL,MAAM,EAAE,iBAAiB,EACzB,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAAC;IACpD,OAAO,CACL,MAAM,EAAE,iBAAiB,EACzB,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAAC;IACpD,UAAU,CACR,MAAM,EAAE,oBAAoB,EAC5B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,qBAAqB,GAAG,IAAI,CAAC;CACzE;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,GAAG,CAAC,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC;;0EAEsE;IACtE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;uGAImG;IACnG,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"client-handlers.d.ts","sourceRoot":"","sources":["../src/client-handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/client-handlers.js
CHANGED
|
@@ -9,7 +9,8 @@ const MCP_HANDLER_METHODS = ["connect", "message", "disconnect"];
|
|
|
9
9
|
/** The client capability advertisement: fs/terminal derived solely from registered consumer
|
|
10
10
|
* handlers, plus the capabilities this client supports natively regardless of handlers —
|
|
11
11
|
* boolean session config options (SessionHandle drives the catalog programmatically and
|
|
12
|
-
* handles `type: "boolean"` entries, e.g. codex-acp's Fast-mode toggle)
|
|
12
|
+
* handles `type: "boolean"` entries, e.g. codex-acp's Fast-mode toggle) — plus the connecting
|
|
13
|
+
* backend's declared vendor-extension `_meta` (`options.meta`). The installed ACP SDK
|
|
13
14
|
* has no ClientCapabilities field for MCP-over-ACP; support is declared by sending
|
|
14
15
|
* `mcpServers[{ type: "acp" }]` on session/new and then gated against handlers at that site. */
|
|
15
16
|
export function clientCapabilitiesFor(handlers, options = {}) {
|
|
@@ -33,6 +34,11 @@ export function clientCapabilitiesFor(handlers, options = {}) {
|
|
|
33
34
|
capabilities._meta = { ...(capabilities._meta ?? {}), "terminal-auth": true };
|
|
34
35
|
}
|
|
35
36
|
}
|
|
37
|
+
// Backend-declared vendor extensions this client implements. Applied before the no-handlers
|
|
38
|
+
// early return for the same reason `auth` is: it is host/backend-declared, not handler-derived.
|
|
39
|
+
if (options.meta && Object.keys(options.meta).length > 0) {
|
|
40
|
+
capabilities._meta = { ...(capabilities._meta ?? {}), ...options.meta };
|
|
41
|
+
}
|
|
36
42
|
if (!handlers)
|
|
37
43
|
return capabilities;
|
|
38
44
|
const fs = handlers.fs;
|
package/dist/errors-map.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { WorkflowError } from "@automatalabs/shared-types";
|
|
2
2
|
import type { AuthMethod } from "@agentclientprotocol/sdk";
|
|
3
3
|
import type { Backend, ProviderErrorMetadata } from "./backend.js";
|
|
4
|
+
import type { TypedSessionFailure } from "./typed-failures.js";
|
|
4
5
|
export declare const ACP_AUTH_REQUIRED_ERROR_CODE = -32000;
|
|
5
6
|
export interface ErrorMapContext {
|
|
6
7
|
label?: string;
|
|
@@ -12,4 +13,31 @@ export interface ErrorMapContext {
|
|
|
12
13
|
export declare function errorText(error: unknown): string;
|
|
13
14
|
/** Map any thrown error from the run path onto a seam-level WorkflowError. */
|
|
14
15
|
export declare function mapThrownError(error: unknown, labelOrContext?: string | ErrorMapContext): WorkflowError;
|
|
16
|
+
/**
|
|
17
|
+
* Map a NEGOTIATED codex-acp typed session failure (see typed-failures.ts) onto the same seam
|
|
18
|
+
* contract `mapThrownError` produces for the legacy channel. The typed payload is the PRIMARY
|
|
19
|
+
* signal: `category` selects the code and `retryable` decides recoverability, so nothing here reads
|
|
20
|
+
* provider prose. `actions` are advisory — they ride `details` (machine-readable) and the message
|
|
21
|
+
* suffix (human-readable), never the classification.
|
|
22
|
+
*
|
|
23
|
+
* The three codes and why:
|
|
24
|
+
* • auth_required -> AUTH_REQUIRED. Byte-equivalent to the legacy path, where the
|
|
25
|
+
* server raised `RequestError.authRequired` (-32000) for the same condition. The machine
|
|
26
|
+
* surface (`authContext`) and message shape are built by the same helpers as that path.
|
|
27
|
+
* • rate_limited | quota_exhausted -> PROVIDER_USAGE_LIMIT. These are the typed forms of exactly
|
|
28
|
+
* the two conditions CodexBackend.classifyProviderError already walls on (`usageLimitExceeded`
|
|
29
|
+
* and an HTTP 429 from the app-server). The code's contract is "non-recoverable => the engine
|
|
30
|
+
* PAUSES and resumes", so `recoverable` is false here regardless of `retryable`: a rate limit
|
|
31
|
+
* IS retryable, but retrying it immediately walks back into the same wall — pausing is the
|
|
32
|
+
* stronger, resumable behavior, and it is what the legacy path already did.
|
|
33
|
+
* `providerCode` carries the typed category; the raw `codexErrorInfo` discriminant the legacy
|
|
34
|
+
* path reported is deliberately withheld from this sanitized channel.
|
|
35
|
+
* • everything else -> AGENT_EXECUTION_ERROR with `recoverable = retryable`. That
|
|
36
|
+
* splits the categories the legacy path could only stream as prose: transport_lost / overloaded
|
|
37
|
+
* / provider_error / internal_error retry, while context_exhausted / budget_exhausted /
|
|
38
|
+
* policy_denied / bad_request fail fast instead of burning the engine's retry budget on a wall
|
|
39
|
+
* the server has already said is not retryable. An UNRECOGNIZED category from a newer server
|
|
40
|
+
* lands here too and is classified by `retryable` alone.
|
|
41
|
+
*/
|
|
42
|
+
export declare function mapTypedSessionFailure(failure: TypedSessionFailure, context?: ErrorMapContext): WorkflowError;
|
|
15
43
|
//# sourceMappingURL=errors-map.d.ts.map
|
package/dist/errors-map.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors-map.d.ts","sourceRoot":"","sources":["../src/errors-map.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors-map.d.ts","sourceRoot":"","sources":["../src/errors-map.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAmB,aAAa,EAAqB,MAAM,4BAA4B,CAAC;AAE/F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAA+B,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,eAAO,MAAM,4BAA4B,SAAS,CAAC;AAQnD,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,WAAW,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;CACrC;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAWhD;AA6BD,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,aAAa,CA6CvG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE,eAAoB,GAC5B,aAAa,CAqCf"}
|
package/dist/errors-map.js
CHANGED
|
@@ -9,6 +9,11 @@
|
|
|
9
9
|
// Everything else is a recoverable AGENT_EXECUTION_ERROR (transient process/ACP faults that
|
|
10
10
|
// the engine retries). WorkflowErrors raised inside the ladder (SCHEMA_NONCOMPLIANCE,
|
|
11
11
|
// AGENT_EMPTY_OUTPUT) pass through unchanged.
|
|
12
|
+
//
|
|
13
|
+
// One backend can deliver a hard failure WITHOUT rejecting: codex-acp, once its typed-session-
|
|
14
|
+
// failures extension is negotiated, resolves the turn and reports the failure structurally
|
|
15
|
+
// (see typed-failures.ts). `mapTypedSessionFailure` maps that channel onto the SAME contract, so
|
|
16
|
+
// both channels produce identical seam semantics for the conditions they share.
|
|
12
17
|
import { isWorkflowError, WorkflowError, WorkflowErrorCode } from "@automatalabs/shared-types";
|
|
13
18
|
export const ACP_AUTH_REQUIRED_ERROR_CODE = -32000;
|
|
14
19
|
// JSON-RPC codes the SDK reserves for NON-auth failures (jsonrpc.js:764-829). A different reserved
|
|
@@ -76,19 +81,10 @@ export function mapThrownError(error, labelOrContext) {
|
|
|
76
81
|
});
|
|
77
82
|
}
|
|
78
83
|
if (isAcpAuthRequired(error, message)) {
|
|
79
|
-
// authContext sources ONLY agent-advertised AuthMethod fields (ids/types/names) — never our
|
|
80
|
-
// sent _meta/env values (Principle 9). This is the machine-readable contract every downstream
|
|
81
|
-
// host reads; the enriched message is human-readable only.
|
|
82
|
-
const methods = (context.authMethods ?? []).map((m) => ({
|
|
83
|
-
id: m.id,
|
|
84
|
-
// AuthMethodAgent carries no `type` field (the SDK treats a missing discriminant as "agent").
|
|
85
|
-
type: ("type" in m ? m.type : undefined) ?? "agent",
|
|
86
|
-
name: m.name,
|
|
87
|
-
}));
|
|
88
84
|
return new WorkflowError(authRequiredMessage(message, context), WorkflowErrorCode.AUTH_REQUIRED, {
|
|
89
85
|
recoverable: false,
|
|
90
86
|
agentLabel: context.label,
|
|
91
|
-
authContext:
|
|
87
|
+
authContext: authErrorContext(context),
|
|
92
88
|
details: error,
|
|
93
89
|
});
|
|
94
90
|
}
|
|
@@ -111,6 +107,88 @@ export function mapThrownError(error, labelOrContext) {
|
|
|
111
107
|
details: error,
|
|
112
108
|
});
|
|
113
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Map a NEGOTIATED codex-acp typed session failure (see typed-failures.ts) onto the same seam
|
|
112
|
+
* contract `mapThrownError` produces for the legacy channel. The typed payload is the PRIMARY
|
|
113
|
+
* signal: `category` selects the code and `retryable` decides recoverability, so nothing here reads
|
|
114
|
+
* provider prose. `actions` are advisory — they ride `details` (machine-readable) and the message
|
|
115
|
+
* suffix (human-readable), never the classification.
|
|
116
|
+
*
|
|
117
|
+
* The three codes and why:
|
|
118
|
+
* • auth_required -> AUTH_REQUIRED. Byte-equivalent to the legacy path, where the
|
|
119
|
+
* server raised `RequestError.authRequired` (-32000) for the same condition. The machine
|
|
120
|
+
* surface (`authContext`) and message shape are built by the same helpers as that path.
|
|
121
|
+
* • rate_limited | quota_exhausted -> PROVIDER_USAGE_LIMIT. These are the typed forms of exactly
|
|
122
|
+
* the two conditions CodexBackend.classifyProviderError already walls on (`usageLimitExceeded`
|
|
123
|
+
* and an HTTP 429 from the app-server). The code's contract is "non-recoverable => the engine
|
|
124
|
+
* PAUSES and resumes", so `recoverable` is false here regardless of `retryable`: a rate limit
|
|
125
|
+
* IS retryable, but retrying it immediately walks back into the same wall — pausing is the
|
|
126
|
+
* stronger, resumable behavior, and it is what the legacy path already did.
|
|
127
|
+
* `providerCode` carries the typed category; the raw `codexErrorInfo` discriminant the legacy
|
|
128
|
+
* path reported is deliberately withheld from this sanitized channel.
|
|
129
|
+
* • everything else -> AGENT_EXECUTION_ERROR with `recoverable = retryable`. That
|
|
130
|
+
* splits the categories the legacy path could only stream as prose: transport_lost / overloaded
|
|
131
|
+
* / provider_error / internal_error retry, while context_exhausted / budget_exhausted /
|
|
132
|
+
* policy_denied / bad_request fail fast instead of burning the engine's retry budget on a wall
|
|
133
|
+
* the server has already said is not retryable. An UNRECOGNIZED category from a newer server
|
|
134
|
+
* lands here too and is classified by `retryable` alone.
|
|
135
|
+
*/
|
|
136
|
+
export function mapTypedSessionFailure(failure, context = {}) {
|
|
137
|
+
const message = typedFailureMessage(failure);
|
|
138
|
+
switch (failure.category) {
|
|
139
|
+
case "auth_required":
|
|
140
|
+
return new WorkflowError(authRequiredMessage(failure.safeMessage, context), WorkflowErrorCode.AUTH_REQUIRED, {
|
|
141
|
+
recoverable: false,
|
|
142
|
+
agentLabel: context.label,
|
|
143
|
+
authContext: authErrorContext(context),
|
|
144
|
+
details: failure,
|
|
145
|
+
});
|
|
146
|
+
case "rate_limited":
|
|
147
|
+
case "quota_exhausted": {
|
|
148
|
+
const resetAt = context.providerErrorMetadata?.resetAt;
|
|
149
|
+
return new WorkflowError(message, WorkflowErrorCode.PROVIDER_USAGE_LIMIT, {
|
|
150
|
+
recoverable: false,
|
|
151
|
+
agentLabel: context.label,
|
|
152
|
+
...(resetAt ? { resetHint: `Resets at ${resetAt}` } : {}),
|
|
153
|
+
providerUsageLimitContext: {
|
|
154
|
+
backendId: context.backendId ?? failure.source,
|
|
155
|
+
source: "provider",
|
|
156
|
+
providerCode: failure.category,
|
|
157
|
+
...(resetAt ? { resetAt } : {}),
|
|
158
|
+
},
|
|
159
|
+
details: failure,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
default:
|
|
163
|
+
return new WorkflowError(message, WorkflowErrorCode.AGENT_EXECUTION_ERROR, {
|
|
164
|
+
recoverable: failure.retryable,
|
|
165
|
+
agentLabel: context.label,
|
|
166
|
+
details: failure,
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/** `<sanitized server text> (codex typed failure: <category>; suggested: …)`. The category and
|
|
171
|
+
* actions are appended because the sanitized text alone ("Codex is temporarily overloaded.")
|
|
172
|
+
* carries neither the discriminant a log reader needs nor the recovery the server proposed. */
|
|
173
|
+
function typedFailureMessage(failure) {
|
|
174
|
+
const suggested = failure.actions.length > 0 ? `; suggested: ${failure.actions.join(", ")}` : "";
|
|
175
|
+
const detail = `(${failure.source} typed failure: ${failure.category}${suggested})`;
|
|
176
|
+
return failure.safeMessage ? `${failure.safeMessage} ${detail}` : detail;
|
|
177
|
+
}
|
|
178
|
+
/** The machine-readable AUTH_REQUIRED surface. Sources ONLY agent-advertised AuthMethod fields
|
|
179
|
+
* (ids/types/names) — never our sent _meta/env values (Principle 9). Every downstream host reads
|
|
180
|
+
* this; the enriched message is human-readable only. */
|
|
181
|
+
function authErrorContext(context) {
|
|
182
|
+
return {
|
|
183
|
+
backendId: context.backendId,
|
|
184
|
+
methods: (context.authMethods ?? []).map((m) => ({
|
|
185
|
+
id: m.id,
|
|
186
|
+
// AuthMethodAgent carries no `type` field (the SDK treats a missing discriminant as "agent").
|
|
187
|
+
type: ("type" in m ? m.type : undefined) ?? "agent",
|
|
188
|
+
name: m.name,
|
|
189
|
+
})),
|
|
190
|
+
};
|
|
191
|
+
}
|
|
114
192
|
function isChildCleanupError(error) {
|
|
115
193
|
if (!error || typeof error !== "object")
|
|
116
194
|
return false;
|
package/dist/index.d.ts
CHANGED
|
@@ -43,6 +43,8 @@ export type { AgentSessionRef, McpAcpServerConfig, McpServerConfig } from "@auto
|
|
|
43
43
|
export { toAnthropicJsonSchema, toJsonSchema, toStrictJsonSchema } from "./schema-strict.js";
|
|
44
44
|
export { extractValidated, findJsonBlock, parseFinalJson, resolveStructuredOutput, validateValue, } from "./structured-output.js";
|
|
45
45
|
export type { ResolveOptions, StructuredSession } from "./structured-output.js";
|
|
46
|
-
export { ACP_AUTH_REQUIRED_ERROR_CODE, errorText, mapThrownError } from "./errors-map.js";
|
|
46
|
+
export { ACP_AUTH_REQUIRED_ERROR_CODE, errorText, mapThrownError, mapTypedSessionFailure } from "./errors-map.js";
|
|
47
47
|
export type { ErrorMapContext } from "./errors-map.js";
|
|
48
|
+
export { TYPED_SESSION_FAILURE_CLIENT_CAPABILITY, readTypedSessionFailure, supersedesTypedSessionFailure, } from "./typed-failures.js";
|
|
49
|
+
export type { TypedSessionFailure, TypedSessionFailureAction, TypedSessionFailureCategory, } from "./typed-failures.js";
|
|
48
50
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -40,4 +40,8 @@ export { decidePermission, resolvePermission, withPersist } from "./permissions.
|
|
|
40
40
|
export { UsageAccumulator } from "./usage.js";
|
|
41
41
|
export { toAnthropicJsonSchema, toJsonSchema, toStrictJsonSchema } from "./schema-strict.js";
|
|
42
42
|
export { extractValidated, findJsonBlock, parseFinalJson, resolveStructuredOutput, validateValue, } from "./structured-output.js";
|
|
43
|
-
export { ACP_AUTH_REQUIRED_ERROR_CODE, errorText, mapThrownError } from "./errors-map.js";
|
|
43
|
+
export { ACP_AUTH_REQUIRED_ERROR_CODE, errorText, mapThrownError, mapTypedSessionFailure } from "./errors-map.js";
|
|
44
|
+
// codex-acp's negotiated typed-session-failures extension: the client advertisement the codex
|
|
45
|
+
// backend sends at initialize, plus the wire parse / supersession rules the session accumulator
|
|
46
|
+
// applies to both delivery channels.
|
|
47
|
+
export { TYPED_SESSION_FAILURE_CLIENT_CAPABILITY, readTypedSessionFailure, supersedesTypedSessionFailure, } from "./typed-failures.js";
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/** The failure categories codex-acp emits today (`SESSION_FAILURE_PRESENTATION` in its
|
|
2
|
+
* CodexEventHandler). A newer server could add one: an unrecognized category is carried through
|
|
3
|
+
* verbatim and classified by `retryable` alone, never dropped. */
|
|
4
|
+
export type TypedSessionFailureCategory = "transport_lost" | "auth_required" | "rate_limited" | "quota_exhausted" | "overloaded" | "context_exhausted" | "budget_exhausted" | "policy_denied" | "bad_request" | "provider_error" | "internal_error";
|
|
5
|
+
/** The recovery actions the server suggests for a failure. Advisory: they ride the mapped
|
|
6
|
+
* WorkflowError's `details` (and its message) so a host can act, but the seam classification is
|
|
7
|
+
* driven by `category` + `retryable`. */
|
|
8
|
+
export type TypedSessionFailureAction = "retry" | "reconnect" | "login" | "new_turn" | "new_session";
|
|
9
|
+
/** One typed session failure, exactly as codex-acp puts it on the wire.
|
|
10
|
+
*
|
|
11
|
+
* IDENTITY + REVISION. `id` is restart-safe: it is derived from the owning turn
|
|
12
|
+
* (`<turnId>:error`) or, for an unattributed failure, from the session plus the server's process
|
|
13
|
+
* epoch — so a restarted server never reuses an id. `revision` counts monotonically WITHIN one
|
|
14
|
+
* `id`; the server bumps it every time it re-records the same failure and once more when it
|
|
15
|
+
* clears it. A frame for the same `id` at a revision we have already seen is stale and must not
|
|
16
|
+
* overwrite newer state. */
|
|
17
|
+
export interface TypedSessionFailure {
|
|
18
|
+
readonly id: string;
|
|
19
|
+
readonly revision: number;
|
|
20
|
+
/** `active` = the session is in this failed state; `cleared` = the server recovered from it
|
|
21
|
+
* (a later turn succeeded) and the client must drop the latch. */
|
|
22
|
+
readonly phase: "active" | "cleared";
|
|
23
|
+
readonly category: TypedSessionFailureCategory | (string & {});
|
|
24
|
+
/** The failure's origin as the server names it (`codex` today). */
|
|
25
|
+
readonly source: string;
|
|
26
|
+
/** Server-sanitized, display-safe text. Raw provider prose, stderr, and stack detail are
|
|
27
|
+
* deliberately withheld from this channel — never expect them here. */
|
|
28
|
+
readonly safeMessage: string;
|
|
29
|
+
/** Whether re-running is meaningful at all. The PRIMARY recoverability signal. */
|
|
30
|
+
readonly retryable: boolean;
|
|
31
|
+
readonly actions: readonly TypedSessionFailureAction[];
|
|
32
|
+
/** The turn this failure belongs to, when the server could attribute it. */
|
|
33
|
+
readonly turnId?: string;
|
|
34
|
+
}
|
|
35
|
+
/** The `initialize.clientCapabilities._meta` block that turns the extension on. Its shape is
|
|
36
|
+
* exactly what codex-acp's `clientSupportsTypedSessionFailures` gate parses: an integer `version`
|
|
37
|
+
* at or above the server's own, and a `capabilities` array containing the session-failure key. */
|
|
38
|
+
export declare const TYPED_SESSION_FAILURE_CLIENT_CAPABILITY: Readonly<Record<string, unknown>>;
|
|
39
|
+
/**
|
|
40
|
+
* Read a typed session failure out of any ACP `_meta` (a PromptResponse's or a session update's).
|
|
41
|
+
* Returns undefined for every `_meta` that does not carry one — which is every `_meta` from every
|
|
42
|
+
* other backend, every older codex-acp, and every codex-acp turn that did not fail. Strict and
|
|
43
|
+
* defensive in the house style of `advertisesSteering`/`advertisesLoadedTurn`: a malformed payload
|
|
44
|
+
* is treated as absent rather than half-trusted, so the legacy classification path stays intact.
|
|
45
|
+
*
|
|
46
|
+
* The version bound is `1..CODEX_AIR_EXTENSION_VERSION`: negotiation already guarantees a server
|
|
47
|
+
* never emits a version above the one we advertised, so a higher version means a contract we do
|
|
48
|
+
* not implement and must not guess at.
|
|
49
|
+
*/
|
|
50
|
+
export declare function readTypedSessionFailure(meta: unknown): TypedSessionFailure | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* Whether `incoming` is newer than the currently latched `latched` (see the revision/identity notes
|
|
53
|
+
* on TypedSessionFailure). Same id => strictly greater revision wins, so a duplicated or reordered
|
|
54
|
+
* frame can never resurrect a stale state — including a stale `cleared` frame over a newer `active`
|
|
55
|
+
* one. A DIFFERENT id is always newer: the server holds exactly one session failure at a time and
|
|
56
|
+
* only ever mints a fresh id when it replaces the previous record.
|
|
57
|
+
*/
|
|
58
|
+
export declare function supersedesTypedSessionFailure(latched: TypedSessionFailure | undefined, incoming: TypedSessionFailure): boolean;
|
|
59
|
+
//# sourceMappingURL=typed-failures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-failures.d.ts","sourceRoot":"","sources":["../src/typed-failures.ts"],"names":[],"mappings":"AAeA;;mEAEmE;AACnE,MAAM,MAAM,2BAA2B,GACnC,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,iBAAiB,GACjB,YAAY,GACZ,mBAAmB,GACnB,kBAAkB,GAClB,eAAe,GACf,aAAa,GACb,gBAAgB,GAChB,gBAAgB,CAAC;AAErB;;0CAE0C;AAC1C,MAAM,MAAM,yBAAyB,GAAG,OAAO,GAAG,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,aAAa,CAAC;AAErG;;;;;;;6BAO6B;AAC7B,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;uEACmE;IACnE,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC/D,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;4EACwE;IACxE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACvD,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;mGAEmG;AACnG,eAAO,MAAM,uCAAuC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOpF,CAAC;AAIH;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,mBAAmB,GAAG,SAAS,CAwCtF;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,mBAAmB,GAAG,SAAS,EACxC,QAAQ,EAAE,mBAAmB,GAC5B,OAAO,CAGT"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// The codex-acp NEGOTIATED typed-session-failures extension ("AIR"), client side.
|
|
2
|
+
//
|
|
3
|
+
// WHAT CHANGES WHEN IT IS NEGOTIATED. Without the advertisement, codex-acp reports a terminal turn
|
|
4
|
+
// failure the legacy way: `usageLimitExceeded`/auth errors REJECT `session/prompt` with a
|
|
5
|
+
// RequestError whose `data.codexErrorInfo` the thrown-error mapper classifies, and every other
|
|
6
|
+
// terminal error is appended to the turn as assistant PROSE. With the advertisement accepted, the
|
|
7
|
+
// server stops doing both: the turn resolves `end_turn` carrying a sanitized, structured
|
|
8
|
+
// `sessionFailure` on `PromptResponse._meta`, and failures it cannot attribute to a running turn
|
|
9
|
+
// arrive asynchronously on a `session_info_update`. So a client that advertises the capability MUST
|
|
10
|
+
// consume both channels — otherwise a walled turn looks like an empty successful one.
|
|
11
|
+
//
|
|
12
|
+
// This module owns the wire shape (parse + supersession rules). The failure -> WorkflowError
|
|
13
|
+
// classification lives with every other ACP failure mapping in errors-map.ts.
|
|
14
|
+
import { CODEX_AIR_EXTENSION_VERSION, CODEX_AIR_META_KEYS } from "@automatalabs/shared-types";
|
|
15
|
+
/** The `initialize.clientCapabilities._meta` block that turns the extension on. Its shape is
|
|
16
|
+
* exactly what codex-acp's `clientSupportsTypedSessionFailures` gate parses: an integer `version`
|
|
17
|
+
* at or above the server's own, and a `capabilities` array containing the session-failure key. */
|
|
18
|
+
export const TYPED_SESSION_FAILURE_CLIENT_CAPABILITY = Object.freeze({
|
|
19
|
+
[CODEX_AIR_META_KEYS.namespace]: Object.freeze({
|
|
20
|
+
[CODEX_AIR_META_KEYS.extension]: Object.freeze({
|
|
21
|
+
[CODEX_AIR_META_KEYS.version]: CODEX_AIR_EXTENSION_VERSION,
|
|
22
|
+
[CODEX_AIR_META_KEYS.capabilities]: Object.freeze([CODEX_AIR_META_KEYS.sessionFailure]),
|
|
23
|
+
}),
|
|
24
|
+
}),
|
|
25
|
+
});
|
|
26
|
+
const KNOWN_ACTIONS = ["retry", "reconnect", "login", "new_turn", "new_session"];
|
|
27
|
+
/**
|
|
28
|
+
* Read a typed session failure out of any ACP `_meta` (a PromptResponse's or a session update's).
|
|
29
|
+
* Returns undefined for every `_meta` that does not carry one — which is every `_meta` from every
|
|
30
|
+
* other backend, every older codex-acp, and every codex-acp turn that did not fail. Strict and
|
|
31
|
+
* defensive in the house style of `advertisesSteering`/`advertisesLoadedTurn`: a malformed payload
|
|
32
|
+
* is treated as absent rather than half-trusted, so the legacy classification path stays intact.
|
|
33
|
+
*
|
|
34
|
+
* The version bound is `1..CODEX_AIR_EXTENSION_VERSION`: negotiation already guarantees a server
|
|
35
|
+
* never emits a version above the one we advertised, so a higher version means a contract we do
|
|
36
|
+
* not implement and must not guess at.
|
|
37
|
+
*/
|
|
38
|
+
export function readTypedSessionFailure(meta) {
|
|
39
|
+
const extension = record(record(meta)?.[CODEX_AIR_META_KEYS.namespace])?.[CODEX_AIR_META_KEYS.extension];
|
|
40
|
+
const block = record(extension);
|
|
41
|
+
if (!block)
|
|
42
|
+
return undefined;
|
|
43
|
+
const version = block[CODEX_AIR_META_KEYS.version];
|
|
44
|
+
if (typeof version !== "number" ||
|
|
45
|
+
!Number.isInteger(version) ||
|
|
46
|
+
version < 1 ||
|
|
47
|
+
version > CODEX_AIR_EXTENSION_VERSION) {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
const failure = record(block[CODEX_AIR_META_KEYS.sessionFailure]);
|
|
51
|
+
if (!failure)
|
|
52
|
+
return undefined;
|
|
53
|
+
const { id, revision, phase, category, source, safeMessage, retryable, actions, turnId } = failure;
|
|
54
|
+
if (typeof id !== "string" || id.length === 0)
|
|
55
|
+
return undefined;
|
|
56
|
+
if (typeof revision !== "number" || !Number.isInteger(revision))
|
|
57
|
+
return undefined;
|
|
58
|
+
if (phase !== "active" && phase !== "cleared")
|
|
59
|
+
return undefined;
|
|
60
|
+
if (typeof category !== "string" || category.length === 0)
|
|
61
|
+
return undefined;
|
|
62
|
+
if (typeof source !== "string")
|
|
63
|
+
return undefined;
|
|
64
|
+
if (typeof safeMessage !== "string")
|
|
65
|
+
return undefined;
|
|
66
|
+
if (typeof retryable !== "boolean")
|
|
67
|
+
return undefined;
|
|
68
|
+
if (!Array.isArray(actions))
|
|
69
|
+
return undefined;
|
|
70
|
+
return Object.freeze({
|
|
71
|
+
id,
|
|
72
|
+
revision,
|
|
73
|
+
phase,
|
|
74
|
+
category,
|
|
75
|
+
source,
|
|
76
|
+
safeMessage,
|
|
77
|
+
retryable,
|
|
78
|
+
// Unknown actions are dropped rather than surfaced as suggestions this client cannot describe.
|
|
79
|
+
actions: Object.freeze(actions.filter((action) => typeof action === "string" && KNOWN_ACTIONS.includes(action))),
|
|
80
|
+
...(typeof turnId === "string" ? { turnId } : {}),
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Whether `incoming` is newer than the currently latched `latched` (see the revision/identity notes
|
|
85
|
+
* on TypedSessionFailure). Same id => strictly greater revision wins, so a duplicated or reordered
|
|
86
|
+
* frame can never resurrect a stale state — including a stale `cleared` frame over a newer `active`
|
|
87
|
+
* one. A DIFFERENT id is always newer: the server holds exactly one session failure at a time and
|
|
88
|
+
* only ever mints a fresh id when it replaces the previous record.
|
|
89
|
+
*/
|
|
90
|
+
export function supersedesTypedSessionFailure(latched, incoming) {
|
|
91
|
+
if (!latched)
|
|
92
|
+
return true;
|
|
93
|
+
return latched.id === incoming.id ? incoming.revision > latched.revision : true;
|
|
94
|
+
}
|
|
95
|
+
function record(value) {
|
|
96
|
+
return value !== null && typeof value === "object" && !Array.isArray(value)
|
|
97
|
+
? value
|
|
98
|
+
: undefined;
|
|
99
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@automatalabs/acp-agents",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.37.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=22"
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"typebox": "1.3.2",
|
|
34
34
|
"@automatalabs/codex-acp": "1.9.0",
|
|
35
35
|
"@automatalabs/pi-acp": "0.4.0",
|
|
36
|
-
"@automatalabs/shared-types": "0.
|
|
36
|
+
"@automatalabs/shared-types": "0.30.0"
|
|
37
37
|
},
|
|
38
38
|
"scripts": {
|
|
39
39
|
"build": "tsc -b",
|