@ai0x0/codex-ts 0.6.5 → 0.7.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 +22 -3
- package/dist/core/src/codex_thread.d.ts +6 -0
- package/dist/core/src/codex_thread.d.ts.map +1 -1
- package/dist/core/src/codex_thread.js +62 -7
- package/dist/core/src/codex_thread.js.map +1 -1
- package/dist/core/src/compact.d.ts +12 -2
- package/dist/core/src/compact.d.ts.map +1 -1
- package/dist/core/src/compact.js +28 -11
- package/dist/core/src/compact.js.map +1 -1
- package/dist/core/src/index.d.ts +4 -4
- package/dist/core/src/index.d.ts.map +1 -1
- package/dist/core/src/index.js +3 -3
- package/dist/core/src/index.js.map +1 -1
- package/dist/core/src/session/retry.d.ts +47 -5
- package/dist/core/src/session/retry.d.ts.map +1 -1
- package/dist/core/src/session/retry.js +143 -6
- package/dist/core/src/session/retry.js.map +1 -1
- package/dist/core/src/session/turn.d.ts +6 -0
- package/dist/core/src/session/turn.d.ts.map +1 -1
- package/dist/core/src/session/turn.js +77 -27
- package/dist/core/src/session/turn.js.map +1 -1
- package/dist/core/src/skills.d.ts +35 -2
- package/dist/core/src/skills.d.ts.map +1 -1
- package/dist/core/src/skills.js +146 -41
- package/dist/core/src/skills.js.map +1 -1
- package/dist/core/src/state/auto_compact_window.d.ts +58 -4
- package/dist/core/src/state/auto_compact_window.d.ts.map +1 -1
- package/dist/core/src/state/auto_compact_window.js +89 -5
- package/dist/core/src/state/auto_compact_window.js.map +1 -1
- package/dist/core/src/tools/handlers/request_user_input_spec.d.ts +10 -1
- package/dist/core/src/tools/handlers/request_user_input_spec.d.ts.map +1 -1
- package/dist/core/src/tools/handlers/request_user_input_spec.js +30 -2
- package/dist/core/src/tools/handlers/request_user_input_spec.js.map +1 -1
- package/dist/core/src/tools/router.d.ts.map +1 -1
- package/dist/core/src/tools/router.js +12 -2
- package/dist/core/src/tools/router.js.map +1 -1
- package/dist/core/tests/suite/compact.test.js +64 -7
- package/dist/core/tests/suite/compact.test.js.map +1 -1
- package/dist/core/tests/suite/goal.test.js +18 -2
- package/dist/core/tests/suite/goal.test.js.map +1 -1
- package/dist/core/tests/suite/image_input.test.js +23 -0
- package/dist/core/tests/suite/image_input.test.js.map +1 -1
- package/dist/core/tests/suite/reasoning_delta.test.d.ts +11 -0
- package/dist/core/tests/suite/reasoning_delta.test.d.ts.map +1 -0
- package/dist/core/tests/suite/reasoning_delta.test.js +85 -0
- package/dist/core/tests/suite/reasoning_delta.test.js.map +1 -0
- package/dist/core/tests/suite/request_user_input.test.js +78 -1
- package/dist/core/tests/suite/request_user_input.test.js.map +1 -1
- package/dist/core/tests/suite/skills.test.js +30 -2
- package/dist/core/tests/suite/skills.test.js.map +1 -1
- package/dist/core/tests/suite/stream_failure.test.d.ts +11 -0
- package/dist/core/tests/suite/stream_failure.test.d.ts.map +1 -0
- package/dist/core/tests/suite/stream_failure.test.js +162 -0
- package/dist/core/tests/suite/stream_failure.test.js.map +1 -0
- package/dist/core/tests/suite/token_count.test.js +8 -1
- package/dist/core/tests/suite/token_count.test.js.map +1 -1
- package/dist/ext/goal/src/spec.d.ts.map +1 -1
- package/dist/ext/goal/src/spec.js +14 -9
- package/dist/ext/goal/src/spec.js.map +1 -1
- package/dist/ext/goal/src/tool.d.ts.map +1 -1
- package/dist/ext/goal/src/tool.js +39 -15
- package/dist/ext/goal/src/tool.js.map +1 -1
- package/dist/protocol/src/index.d.ts +2 -1
- package/dist/protocol/src/index.d.ts.map +1 -1
- package/dist/protocol/src/index.js +1 -1
- package/dist/protocol/src/index.js.map +1 -1
- package/dist/protocol/src/protocol.d.ts +114 -5
- package/dist/protocol/src/protocol.d.ts.map +1 -1
- package/dist/protocol/src/protocol.js +13 -1
- package/dist/protocol/src/protocol.js.map +1 -1
- package/dist/protocol/src/request_user_input.d.ts +15 -0
- package/dist/protocol/src/request_user_input.d.ts.map +1 -1
- package/dist/protocol/src/user_input.d.ts +11 -0
- package/dist/protocol/src/user_input.d.ts.map +1 -1
- package/dist/state/src/runtime/goals.d.ts +15 -1
- package/dist/state/src/runtime/goals.d.ts.map +1 -1
- package/dist/state/src/runtime/goals.js +36 -3
- package/dist/state/src/runtime/goals.js.map +1 -1
- package/dist/thread-store/src/types.d.ts +5 -0
- package/dist/thread-store/src/types.d.ts.map +1 -1
- package/dist/tools/src/json_schema.d.ts +2 -0
- package/dist/tools/src/json_schema.d.ts.map +1 -1
- package/dist/tools/src/json_schema.js +4 -0
- package/dist/tools/src/json_schema.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -36,18 +36,37 @@ streamed** and is transient:
|
|
|
36
36
|
- a network error (fetch rejects: connection reset, DNS, CORS-masked failure…);
|
|
37
37
|
- an HTTP `408`, `409`, `429`, or any `5xx` (e.g. a `502` during a deploy
|
|
38
38
|
window);
|
|
39
|
-
- the SSE stream dropping before the first text delta
|
|
39
|
+
- the SSE stream dropping before the first text delta;
|
|
40
|
+
- a `response.failed` event whose error code is transient (e.g.
|
|
41
|
+
`rate_limit_exceeded`) or unrecognised — matching codex-rs, which defaults
|
|
42
|
+
`response.failed` to retryable;
|
|
43
|
+
- a `response.incomplete` event (surfaced as a stream error carrying
|
|
44
|
+
`incomplete_details.reason`).
|
|
40
45
|
|
|
41
46
|
A failure is **not retried** when:
|
|
42
47
|
|
|
43
48
|
- visible output has already streamed (a re-stream would duplicate text);
|
|
44
49
|
- the error is terminal — `4xx` other than the above (e.g. `400`, `401`), or the
|
|
45
50
|
turn was interrupted (`AbortError`);
|
|
51
|
+
- a `response.failed` event carries a terminal error code — `insufficient_quota`,
|
|
52
|
+
`usage_not_included`, `cyber_policy`, `invalid_prompt`, `bio_policy`,
|
|
53
|
+
`server_is_overloaded`, `slow_down` (mirrors the non-retryable `CodexErr`
|
|
54
|
+
variants in `protocol/src/error.rs`), or `context_length_exceeded`, which
|
|
55
|
+
instead triggers compaction / the context self-heal;
|
|
46
56
|
- the retry budget (`maxRetries`) is exhausted.
|
|
47
57
|
|
|
48
58
|
Each retry waits an exponential backoff — `200ms × 2^(n-1)` with ±10% jitter —
|
|
49
|
-
honoring a server `Retry-After` header when present
|
|
50
|
-
|
|
59
|
+
honoring a server `Retry-After` header when present, or a provider
|
|
60
|
+
`…please try again in 1.5s` hint on a rate limit (mirrors `try_parse_retry_after`).
|
|
61
|
+
A `Warning` event (`Reconnecting... n/m`) is emitted before each attempt so the UI
|
|
62
|
+
can surface it.
|
|
63
|
+
|
|
64
|
+
When the retries are exhausted (or the failure was terminal), the turn emits an
|
|
65
|
+
`Error` event whose `codex_error_info` classifies the cause, followed by a final
|
|
66
|
+
`TurnComplete` carrying the same error — so a loop awaiting `TurnComplete` always
|
|
67
|
+
terminates. An **interrupted** turn instead ends with `TurnAborted`
|
|
68
|
+
(`reason: "interrupted"`), mirroring codex-rs, which never sends `TurnComplete`
|
|
69
|
+
for an aborted turn.
|
|
51
70
|
|
|
52
71
|
### Configuration
|
|
53
72
|
|
|
@@ -106,6 +106,12 @@ export interface CodexThreadConfig {
|
|
|
106
106
|
* stream/request_max_retries. Defaults to 5; pass 0 to disable retries.
|
|
107
107
|
*/
|
|
108
108
|
maxRetries?: number | undefined;
|
|
109
|
+
/**
|
|
110
|
+
* Overrides the inline-compaction summarization prompt (mirrors codex-rs
|
|
111
|
+
* `config.compact_prompt`, compact.rs:118). Omit for the bundled
|
|
112
|
+
* SUMMARIZATION_PROMPT ported from prompts/templates/compact/prompt.md.
|
|
113
|
+
*/
|
|
114
|
+
compactPrompt?: string | undefined;
|
|
109
115
|
}
|
|
110
116
|
export declare class CodexThread {
|
|
111
117
|
private readonly config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex_thread.d.ts","sourceRoot":"","sources":["../../../core/src/codex_thread.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,KAAK,EAEL,EAAE,
|
|
1
|
+
{"version":3,"file":"codex_thread.d.ts","sourceRoot":"","sources":["../../../core/src/codex_thread.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,8 @@ import { runTurn } from "./session/turn.js";
|
|
|
16
16
|
import { AutoCompactWindow } from "./state/auto_compact_window.js";
|
|
17
17
|
import { SessionTokenState } from "./state/token_state.js";
|
|
18
18
|
import { DEFAULT_BASE_INSTRUCTIONS } from "./base_instructions.js";
|
|
19
|
-
import {
|
|
19
|
+
import { renderAvailableSkills } from "./skills.js";
|
|
20
|
+
import { codexErrorInfoFor, isAbortError } from "./session/retry.js";
|
|
20
21
|
class AsyncQueue {
|
|
21
22
|
buf = [];
|
|
22
23
|
waiters = [];
|
|
@@ -94,6 +95,7 @@ export class CodexThread {
|
|
|
94
95
|
autoCompactTokenLimit: config.autoCompactTokenLimit,
|
|
95
96
|
contextWindow: config.contextWindow,
|
|
96
97
|
maxRetries: config.maxRetries,
|
|
98
|
+
compactPrompt: config.compactPrompt,
|
|
97
99
|
};
|
|
98
100
|
this.threadId = config.threadId ?? nextId();
|
|
99
101
|
// Resolve ThreadStore: explicit > ioBackend shorthand > in-memory
|
|
@@ -163,13 +165,21 @@ export class CodexThread {
|
|
|
163
165
|
],
|
|
164
166
|
});
|
|
165
167
|
}
|
|
166
|
-
// skills catalog message (codex-rs available-skills fragment).
|
|
167
|
-
|
|
168
|
-
|
|
168
|
+
// skills catalog message (codex-rs available-skills fragment). The
|
|
169
|
+
// budget warning is NOT part of the model-visible body — codex-rs sends
|
|
170
|
+
// it as EventMsg::Warning (session/mod.rs:3393-3402), so we do too.
|
|
171
|
+
const availableSkills = renderAvailableSkills(this.config.skills);
|
|
172
|
+
if (availableSkills.body) {
|
|
169
173
|
contextItems.push({
|
|
170
174
|
type: "message",
|
|
171
175
|
role: "user",
|
|
172
|
-
content: [{ type: "input_text", text:
|
|
176
|
+
content: [{ type: "input_text", text: availableSkills.body }],
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
if (availableSkills.warningMessage) {
|
|
180
|
+
this.pushEvent(submissionId, {
|
|
181
|
+
type: "Warning",
|
|
182
|
+
event: { message: availableSkills.warningMessage },
|
|
173
183
|
});
|
|
174
184
|
}
|
|
175
185
|
const turnConfig = {
|
|
@@ -196,9 +206,16 @@ export class CodexThread {
|
|
|
196
206
|
...(this.config.maxRetries !== undefined
|
|
197
207
|
? { maxRetries: this.config.maxRetries }
|
|
198
208
|
: {}),
|
|
209
|
+
...(this.config.compactPrompt !== undefined
|
|
210
|
+
? { compactPrompt: this.config.compactPrompt }
|
|
211
|
+
: {}),
|
|
199
212
|
};
|
|
200
213
|
const abortController = new AbortController();
|
|
201
214
|
this.currentTurnAbort = abortController;
|
|
215
|
+
// Unix seconds, mirroring TurnStartedEvent.started_at /
|
|
216
|
+
// TurnCompleteEvent.started_at (protocol.rs:2019).
|
|
217
|
+
const startedAtMs = Date.now();
|
|
218
|
+
const startedAt = Math.floor(startedAtMs / 1000);
|
|
202
219
|
this.pushEvent(submissionId, {
|
|
203
220
|
type: "TurnStarted",
|
|
204
221
|
event: { turn_id: turnId },
|
|
@@ -212,13 +229,51 @@ export class CodexThread {
|
|
|
212
229
|
event: {
|
|
213
230
|
turn_id: turnId,
|
|
214
231
|
last_agent_message: lastAgentMessage || undefined,
|
|
232
|
+
started_at: startedAt,
|
|
233
|
+
completed_at: Math.floor(Date.now() / 1000),
|
|
234
|
+
duration_ms: Date.now() - startedAtMs,
|
|
215
235
|
},
|
|
216
236
|
});
|
|
217
237
|
})
|
|
218
238
|
.catch((err) => {
|
|
239
|
+
const completedAt = Math.floor(Date.now() / 1000);
|
|
240
|
+
const durationMs = Date.now() - startedAtMs;
|
|
241
|
+
const error = {
|
|
242
|
+
message: String(err),
|
|
243
|
+
codex_error_info: codexErrorInfoFor(err),
|
|
244
|
+
turn_id: turnId,
|
|
245
|
+
};
|
|
246
|
+
// The Error event is emitted for every failure mode, including an
|
|
247
|
+
// interrupt — pre-existing codex-ts behaviour that hosts key off.
|
|
248
|
+
this.pushEvent(submissionId, { type: "Error", event: error });
|
|
249
|
+
// mirrors tasks/mod.rs:785-794: an ABORTED turn terminates with
|
|
250
|
+
// TurnAborted, never TurnComplete.
|
|
251
|
+
if (isAbortError(err)) {
|
|
252
|
+
this.pushEvent(submissionId, {
|
|
253
|
+
type: "TurnAborted",
|
|
254
|
+
event: {
|
|
255
|
+
turn_id: turnId,
|
|
256
|
+
reason: "interrupted",
|
|
257
|
+
started_at: startedAt,
|
|
258
|
+
completed_at: completedAt,
|
|
259
|
+
duration_ms: durationMs,
|
|
260
|
+
},
|
|
261
|
+
});
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
// mirrors tasks/mod.rs:795-813: a failed turn still completes the
|
|
265
|
+
// turn lifecycle, with the terminal error attached to TurnComplete
|
|
266
|
+
// (rs reads it from turn_context.terminal_error). Without that
|
|
267
|
+
// second event a host awaiting TurnComplete would hang on failure.
|
|
219
268
|
this.pushEvent(submissionId, {
|
|
220
|
-
type: "
|
|
221
|
-
event: {
|
|
269
|
+
type: "TurnComplete",
|
|
270
|
+
event: {
|
|
271
|
+
turn_id: turnId,
|
|
272
|
+
error,
|
|
273
|
+
started_at: startedAt,
|
|
274
|
+
completed_at: completedAt,
|
|
275
|
+
duration_ms: durationMs,
|
|
276
|
+
},
|
|
222
277
|
});
|
|
223
278
|
})
|
|
224
279
|
.finally(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex_thread.js","sourceRoot":"","sources":["../../../core/src/codex_thread.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"codex_thread.js","sourceRoot":"","sources":["../../../core/src/codex_thread.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,8 +13,18 @@ export declare const SUMMARIZATION_PROMPT: string;
|
|
|
13
13
|
/** mirrors prompts/templates/compact/summary_prefix.md */
|
|
14
14
|
export declare const SUMMARY_PREFIX: string;
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
17
|
-
* mirrors
|
|
16
|
+
* True when a user message is itself a previous compaction summary.
|
|
17
|
+
* mirrors is_summary_message (compact.rs:550).
|
|
18
|
+
*/
|
|
19
|
+
export declare function isSummaryMessage(message: string): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Extract plain-text content from all user messages in history, skipping
|
|
22
|
+
* previous compaction summaries.
|
|
23
|
+
* mirrors collect_user_messages (compact.rs:525): a message that starts with
|
|
24
|
+
* SUMMARY_PREFIX is dropped, so a second compaction does not re-collect the
|
|
25
|
+
* first summary as a "user message" and stack summaries on top of each other.
|
|
26
|
+
* Note the summary produced by THIS compaction is appended separately by
|
|
27
|
+
* buildCompactedHistory.
|
|
18
28
|
*/
|
|
19
29
|
export declare function collectUserMessages(history: ConversationItem[]): string[];
|
|
20
30
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../../core/src/compact.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../../core/src/compact.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAiBpD,kDAAkD;AAClD,eAAO,MAAM,oBAAoB,QAQ4D,CAAC;AAE9F,0DAA0D;AAC1D,eAAO,MAAM,cAAc,QAK8D,CAAC;AAmB1F;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,EAAE,CAiBzE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EAAE,EACtB,WAAW,EAAE,MAAM,GAClB,gBAAgB,EAAE,CAmCpB;AAID;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,gBAAgB,EAAE,EAC3B,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,MAAM,CAAC,CAqIjB"}
|
package/dist/core/src/compact.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* request and replace history with the summary + recent user messages.
|
|
8
8
|
*/
|
|
9
9
|
import { parseSseStream } from "./session/sse.js";
|
|
10
|
-
import { computeRetryDelay, DEFAULT_MAX_RETRIES, isContextWindowExceededError, isRetryableError, parseRetryAfter, ResponsesApiError, sleep, } from "./session/retry.js";
|
|
10
|
+
import { classifyStreamFailure, computeRetryDelay, DEFAULT_MAX_RETRIES, isContextWindowExceededError, isRetryableError, parseRetryAfter, ResponsesApiError, sleep, } from "./session/retry.js";
|
|
11
11
|
import { normalizeHistory, removeCorrespondingFor } from "./normalize.js";
|
|
12
12
|
import { estimateItemsTokenCount } from "./state/token_state.js";
|
|
13
13
|
// ─── Prompt constants (verbatim from codex-rs templates) ──────────────────────
|
|
@@ -39,8 +39,20 @@ function truncateToTokens(text, maxTokens) {
|
|
|
39
39
|
}
|
|
40
40
|
// ─── History helpers ─────────────────────────────────────────────────────────
|
|
41
41
|
/**
|
|
42
|
-
*
|
|
43
|
-
* mirrors
|
|
42
|
+
* True when a user message is itself a previous compaction summary.
|
|
43
|
+
* mirrors is_summary_message (compact.rs:550).
|
|
44
|
+
*/
|
|
45
|
+
export function isSummaryMessage(message) {
|
|
46
|
+
return message.startsWith(`${SUMMARY_PREFIX}\n`);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Extract plain-text content from all user messages in history, skipping
|
|
50
|
+
* previous compaction summaries.
|
|
51
|
+
* mirrors collect_user_messages (compact.rs:525): a message that starts with
|
|
52
|
+
* SUMMARY_PREFIX is dropped, so a second compaction does not re-collect the
|
|
53
|
+
* first summary as a "user message" and stack summaries on top of each other.
|
|
54
|
+
* Note the summary produced by THIS compaction is appended separately by
|
|
55
|
+
* buildCompactedHistory.
|
|
44
56
|
*/
|
|
45
57
|
export function collectUserMessages(history) {
|
|
46
58
|
const messages = [];
|
|
@@ -48,15 +60,16 @@ export function collectUserMessages(history) {
|
|
|
48
60
|
if (!("role" in item) || item.role !== "user")
|
|
49
61
|
continue;
|
|
50
62
|
if (typeof item.content === "string") {
|
|
51
|
-
if (item.content)
|
|
63
|
+
if (item.content && !isSummaryMessage(item.content)) {
|
|
52
64
|
messages.push(item.content);
|
|
65
|
+
}
|
|
53
66
|
}
|
|
54
67
|
else if (Array.isArray(item.content)) {
|
|
55
68
|
const text = item.content
|
|
56
69
|
.filter((p) => p.type === "input_text")
|
|
57
70
|
.map((p) => p.text)
|
|
58
71
|
.join("\n");
|
|
59
|
-
if (text)
|
|
72
|
+
if (text && !isSummaryMessage(text))
|
|
60
73
|
messages.push(text);
|
|
61
74
|
}
|
|
62
75
|
}
|
|
@@ -127,11 +140,14 @@ export async function runInlineAutoCompactTask(history, config) {
|
|
|
127
140
|
let retries = 0;
|
|
128
141
|
let trimRounds = 0;
|
|
129
142
|
let summaryText = "";
|
|
143
|
+
// mirrors run_inline_auto_compact_task (compact.rs:118): the host may override
|
|
144
|
+
// the summarization prompt (`config.compact_prompt`), else the bundled one.
|
|
145
|
+
const compactPrompt = config.compactPrompt ?? SUMMARIZATION_PROMPT;
|
|
130
146
|
for (;;) {
|
|
131
147
|
// Build the compaction request: history + the summarization prompt at the end
|
|
132
148
|
const compactInput = [
|
|
133
149
|
...summarizerInput,
|
|
134
|
-
{ type: "message", role: "user", content:
|
|
150
|
+
{ type: "message", role: "user", content: compactPrompt },
|
|
135
151
|
];
|
|
136
152
|
const body = {
|
|
137
153
|
model: config.model,
|
|
@@ -159,11 +175,12 @@ export async function runInlineAutoCompactTask(history, config) {
|
|
|
159
175
|
if (raw["type"] === "response.output_text.delta") {
|
|
160
176
|
summaryText += String(raw["delta"] ?? "");
|
|
161
177
|
}
|
|
162
|
-
else if (raw["type"] === "response.failed"
|
|
163
|
-
|
|
164
|
-
//
|
|
165
|
-
|
|
166
|
-
|
|
178
|
+
else if (raw["type"] === "response.failed" ||
|
|
179
|
+
raw["type"] === "response.incomplete") {
|
|
180
|
+
// Terminal stream event — same classification as the turn loop
|
|
181
|
+
// (context-window-exceeded → trim; quota/policy failures → terminal;
|
|
182
|
+
// otherwise retryable). mirrors process_responses_event.
|
|
183
|
+
throw classifyStreamFailure(raw);
|
|
167
184
|
}
|
|
168
185
|
}
|
|
169
186
|
break; // summary collected → leave the retry loop
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../../core/src/compact.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,4BAA4B,EAC5B,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,KAAK,GACN,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,iFAAiF;AAEjF,kDAAkD;AAClD,MAAM,CAAC,MAAM,oBAAoB,GAC/B,sDAAsD;IACtD,yEAAyE;IACzE,YAAY;IACZ,6CAA6C;IAC7C,yDAAyD;IACzD,gDAAgD;IAChD,qEAAqE;IACrE,2FAA2F,CAAC;AAE9F,0DAA0D;AAC1D,MAAM,CAAC,MAAM,cAAc,GACzB,8EAA8E;IAC9E,+EAA+E;IAC/E,mFAAmF;IACnF,kFAAkF;IAClF,uFAAuF,CAAC;AAE1F,4DAA4D;AAC5D,MAAM,+BAA+B,GAAG,MAAM,CAAC;AAE/C,iFAAiF;AAEjF,8EAA8E;AAC9E,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,SAAiB;IACvD,MAAM,QAAQ,GAAG,SAAS,GAAG,CAAC,CAAC;IAC/B,OAAO,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAClE,CAAC;AAED,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA2B;IAC7D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QACxD,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,OAAO;
|
|
1
|
+
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../../core/src/compact.ts"],"names":[],"mappings":"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"}
|
package/dist/core/src/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export { CodexThread } from "./codex_thread.js";
|
|
2
|
-
export { SUMMARIZATION_PROMPT, SUMMARY_PREFIX } from "./compact.js";
|
|
2
|
+
export { isSummaryMessage, SUMMARIZATION_PROMPT, SUMMARY_PREFIX, } from "./compact.js";
|
|
3
3
|
export { AutoCompactWindow } from "./state/auto_compact_window.js";
|
|
4
4
|
export { approxTokenCount, estimateItemsTokenCount, SessionTokenState, } from "./state/token_state.js";
|
|
5
|
-
export { isContextWindowExceededError, isContextWindowExceededText, ResponsesApiError, } from "./session/retry.js";
|
|
5
|
+
export { classifyStreamFailure, codexErrorInfoFor, isContextWindowExceededError, isContextWindowExceededText, parseRateLimitRetryAfterMs, ResponsesApiError, } from "./session/retry.js";
|
|
6
6
|
export { ensureCallOutputsPresent, normalizeHistory, removeCorrespondingFor, removeOrphanOutputs, } from "./normalize.js";
|
|
7
7
|
export type { CodexThreadConfig } from "./codex_thread.js";
|
|
8
8
|
export { DEFAULT_BASE_INSTRUCTIONS } from "./base_instructions.js";
|
|
9
|
-
export { renderSkillsCatalog, extractSkillMentions, renderSkillInjection, defaultSkillMetadataBudget, } from "./skills.js";
|
|
10
|
-
export type { SkillMetadata, SkillMetadataBudget } from "./skills.js";
|
|
9
|
+
export { renderAvailableSkills, renderSkillsCatalog, extractSkillMentions, renderSkillInjection, defaultSkillMetadataBudget, truncateDefaultContextSkillDescription, } from "./skills.js";
|
|
10
|
+
export type { AvailableSkills, SkillMetadata, SkillMetadataBudget, SkillRenderReport, } from "./skills.js";
|
|
11
11
|
export { ToolRouter } from "./tools/router.js";
|
|
12
12
|
export type { CustomTool, CustomToolContext, ToolRouterContext, } from "./tools/router.js";
|
|
13
13
|
export { GoalToolExecutor } from "../../ext/goal/src/tool.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,sCAAsC,GACvC,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC"}
|
package/dist/core/src/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export { CodexThread } from "./codex_thread.js";
|
|
2
|
-
export { SUMMARIZATION_PROMPT, SUMMARY_PREFIX } from "./compact.js";
|
|
2
|
+
export { isSummaryMessage, SUMMARIZATION_PROMPT, SUMMARY_PREFIX, } from "./compact.js";
|
|
3
3
|
export { AutoCompactWindow } from "./state/auto_compact_window.js";
|
|
4
4
|
export { approxTokenCount, estimateItemsTokenCount, SessionTokenState, } from "./state/token_state.js";
|
|
5
|
-
export { isContextWindowExceededError, isContextWindowExceededText, ResponsesApiError, } from "./session/retry.js";
|
|
5
|
+
export { classifyStreamFailure, codexErrorInfoFor, isContextWindowExceededError, isContextWindowExceededText, parseRateLimitRetryAfterMs, ResponsesApiError, } from "./session/retry.js";
|
|
6
6
|
export { ensureCallOutputsPresent, normalizeHistory, removeCorrespondingFor, removeOrphanOutputs, } from "./normalize.js";
|
|
7
7
|
export { DEFAULT_BASE_INSTRUCTIONS } from "./base_instructions.js";
|
|
8
|
-
export { renderSkillsCatalog, extractSkillMentions, renderSkillInjection, defaultSkillMetadataBudget, } from "./skills.js";
|
|
8
|
+
export { renderAvailableSkills, renderSkillsCatalog, extractSkillMentions, renderSkillInjection, defaultSkillMetadataBudget, truncateDefaultContextSkillDescription, } from "./skills.js";
|
|
9
9
|
export { ToolRouter } from "./tools/router.js";
|
|
10
10
|
export { GoalToolExecutor } from "../../ext/goal/src/tool.js";
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../core/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../core/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,sCAAsC,GACvC,MAAM,aAAa,CAAC;AAOrB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAM/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -21,11 +21,18 @@ export declare function backoff(attempt: number): number;
|
|
|
21
21
|
/**
|
|
22
22
|
* A non-2xx Responses API response, carrying the status and (when present) the
|
|
23
23
|
* server-requested Retry-After delay so the retry loop can honor it.
|
|
24
|
+
*
|
|
25
|
+
* `terminal` marks a failure that must NOT be retried even though its status
|
|
26
|
+
* would normally look transient — mirrors codex-rs mapping certain
|
|
27
|
+
* `response.failed` payload codes to non-retryable CodexErr variants
|
|
28
|
+
* (`insufficient_quota`, `cyber_policy`, `invalid_prompt`, `server_is_overloaded`…
|
|
29
|
+
* see CodexErr::is_retryable, protocol/src/error.rs:358).
|
|
24
30
|
*/
|
|
25
31
|
export declare class ResponsesApiError extends Error {
|
|
26
32
|
readonly status: number;
|
|
27
33
|
readonly retryAfterMs: number | undefined;
|
|
28
|
-
|
|
34
|
+
readonly terminal: boolean;
|
|
35
|
+
constructor(status: number, body: string, retryAfterMs?: number | undefined, terminal?: boolean);
|
|
29
36
|
}
|
|
30
37
|
/**
|
|
31
38
|
* Whether an HTTP status is a transient failure worth retrying. Mirrors the
|
|
@@ -47,12 +54,34 @@ export declare function isContextWindowExceededText(text: string): boolean;
|
|
|
47
54
|
*/
|
|
48
55
|
export declare function isContextWindowExceededError(error: unknown): boolean;
|
|
49
56
|
/**
|
|
50
|
-
* Classify a thrown error as retryable. Aborts (interrupts) are terminal;
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
57
|
+
* Classify a thrown error as retryable. Aborts (interrupts) are terminal; an
|
|
58
|
+
* explicitly terminal ResponsesApiError (see classifyStreamFailure) is never
|
|
59
|
+
* retried; otherwise ResponsesApiError defers to its status, and anything else
|
|
60
|
+
* (network TypeError, dropped stream, JSON/IO error) is treated as a transient
|
|
61
|
+
* connection failure — mirrors codex-rs CodexErr::is_retryable
|
|
62
|
+
* (ConnectionFailed / Stream / Io / UnexpectedStatus → true).
|
|
54
63
|
*/
|
|
55
64
|
export declare function isRetryableError(error: unknown): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Parse a provider "…please try again in 11.054s" hint into milliseconds.
|
|
67
|
+
* mirrors try_parse_retry_after (codex-api/src/sse/responses.rs:599), which only
|
|
68
|
+
* honors the hint for `rate_limit_exceeded`.
|
|
69
|
+
*/
|
|
70
|
+
export declare function parseRateLimitRetryAfterMs(code: string | undefined, message: string | undefined): number | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* Turn a terminal SSE event (`response.failed` / `response.incomplete`) into a
|
|
73
|
+
* ResponsesApiError with the same retry verdict codex-rs would reach.
|
|
74
|
+
*
|
|
75
|
+
* mirrors process_responses_event (codex-api/src/sse/responses.rs:387-431):
|
|
76
|
+
* - `response.failed` inspects `response.error.code` and maps it to a
|
|
77
|
+
* terminal or retryable CodexErr, honoring a "try again in Xs" delay for
|
|
78
|
+
* rate limits (everything unrecognised stays Retryable, like rs);
|
|
79
|
+
* - `response.incomplete` becomes CodexErr::Stream (retryable) carrying the
|
|
80
|
+
* `incomplete_details.reason`.
|
|
81
|
+
* The 503 status is a stand-in for "stream-level failure, no HTTP status" so the
|
|
82
|
+
* retryable ones land in isRetryableStatus's set.
|
|
83
|
+
*/
|
|
84
|
+
export declare function classifyStreamFailure(raw: Record<string, unknown>): ResponsesApiError;
|
|
56
85
|
export declare function isAbortError(error: unknown): boolean;
|
|
57
86
|
/**
|
|
58
87
|
* Delay before the next attempt: honor a server Retry-After when the error
|
|
@@ -64,6 +93,19 @@ export declare function computeRetryDelay(error: unknown, attempt: number): numb
|
|
|
64
93
|
* Returns undefined when absent or unparseable.
|
|
65
94
|
*/
|
|
66
95
|
export declare function parseRetryAfter(headers: Headers): number | undefined;
|
|
96
|
+
/**
|
|
97
|
+
* Classify a thrown error into the protocol's CodexErrorInfo so hosts can branch
|
|
98
|
+
* on the error class instead of matching message text.
|
|
99
|
+
*
|
|
100
|
+
* mirrors CodexErr::to_codex_protocol_error (protocol/src/error.rs:415) fed by
|
|
101
|
+
* the HTTP/SSE mapping in codex-api (api_bridge.rs:33-152, sse/responses.rs:387).
|
|
102
|
+
* Only the arms codex-ts can actually reach are produced; note how much rs funnels
|
|
103
|
+
* into `Other` — `InvalidRequest` (any 400), `Stream` (network failure, dropped
|
|
104
|
+
* stream, unrecognised `response.failed`), `RequestTimeout` and `UnexpectedStatus`
|
|
105
|
+
* (401/403/404…) all hit its `_ => Other` arm, so codex-ts must not invent finer
|
|
106
|
+
* classes for them.
|
|
107
|
+
*/
|
|
108
|
+
export declare function codexErrorInfoFor(error: unknown): import("../../../protocol/src/protocol.js").CodexErrorInfo;
|
|
67
109
|
/**
|
|
68
110
|
* Abortable sleep. Rejects with an AbortError if the signal fires first, so a
|
|
69
111
|
* mid-backoff interrupt cancels the turn promptly.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../../core/src/session/retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH;iFACiF;AACjF,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../../core/src/session/retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH;iFACiF;AACjF,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;gBAGzB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,EACjC,QAAQ,UAAQ;CAQnB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzD;AAkBD;;6EAE6E;AAC7E,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKpE;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAQxD;AA+BD;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,MAAM,GAAG,SAAS,CAcpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,CAyBrF;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMpD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CASzE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAcpE;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,GACb,OAAO,mCAAmC,EAAE,cAAc,CA2C5D;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBjF"}
|