@agentex/agent 0.0.17 → 0.0.20
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 +140 -22
- package/dist/derived.d.ts +69 -0
- package/dist/derived.d.ts.map +1 -0
- package/dist/derived.js +218 -0
- package/dist/derived.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/providers/_shared/http-agent.d.ts +39 -0
- package/dist/providers/_shared/http-agent.d.ts.map +1 -0
- package/dist/providers/_shared/http-agent.js +265 -0
- package/dist/providers/_shared/http-agent.js.map +1 -0
- package/dist/providers/acp/index.d.ts +29 -0
- package/dist/providers/acp/index.d.ts.map +1 -0
- package/dist/providers/acp/index.js +153 -0
- package/dist/providers/acp/index.js.map +1 -0
- package/dist/providers/acp/parse.d.ts +22 -0
- package/dist/providers/acp/parse.d.ts.map +1 -0
- package/dist/providers/acp/parse.js +122 -0
- package/dist/providers/acp/parse.js.map +1 -0
- package/dist/providers/acp/session.d.ts +36 -0
- package/dist/providers/acp/session.d.ts.map +1 -0
- package/dist/providers/acp/session.js +487 -0
- package/dist/providers/acp/session.js.map +1 -0
- package/dist/providers/claude/execute.d.ts.map +1 -1
- package/dist/providers/claude/execute.js +22 -9
- package/dist/providers/claude/execute.js.map +1 -1
- package/dist/providers/claude/index.d.ts.map +1 -1
- package/dist/providers/claude/index.js +1 -0
- package/dist/providers/claude/index.js.map +1 -1
- package/dist/providers/claude/mcp.d.ts +28 -0
- package/dist/providers/claude/mcp.d.ts.map +1 -0
- package/dist/providers/claude/mcp.js +82 -0
- package/dist/providers/claude/mcp.js.map +1 -0
- package/dist/providers/claude/parse.d.ts +12 -1
- package/dist/providers/claude/parse.d.ts.map +1 -1
- package/dist/providers/claude/parse.js +84 -2
- package/dist/providers/claude/parse.js.map +1 -1
- package/dist/providers/claude/session.d.ts +29 -3
- package/dist/providers/claude/session.d.ts.map +1 -1
- package/dist/providers/claude/session.js +144 -16
- package/dist/providers/claude/session.js.map +1 -1
- package/dist/providers/codex/execute.d.ts.map +1 -1
- package/dist/providers/codex/execute.js +5 -1
- package/dist/providers/codex/execute.js.map +1 -1
- package/dist/providers/codex/index.d.ts.map +1 -1
- package/dist/providers/codex/index.js +3 -0
- package/dist/providers/codex/index.js.map +1 -1
- package/dist/providers/codex/modes.d.ts +35 -0
- package/dist/providers/codex/modes.d.ts.map +1 -0
- package/dist/providers/codex/modes.js +148 -0
- package/dist/providers/codex/modes.js.map +1 -0
- package/dist/providers/codex/parse.d.ts.map +1 -1
- package/dist/providers/codex/parse.js +4 -0
- package/dist/providers/codex/parse.js.map +1 -1
- package/dist/providers/codex/session.d.ts +41 -2
- package/dist/providers/codex/session.d.ts.map +1 -1
- package/dist/providers/codex/session.js +331 -16
- package/dist/providers/codex/session.js.map +1 -1
- package/dist/providers/codex/transcript.d.ts +14 -0
- package/dist/providers/codex/transcript.d.ts.map +1 -1
- package/dist/providers/codex/transcript.js +15 -1
- package/dist/providers/codex/transcript.js.map +1 -1
- package/dist/providers/copilot/index.d.ts +15 -0
- package/dist/providers/copilot/index.d.ts.map +1 -0
- package/dist/providers/copilot/index.js +19 -0
- package/dist/providers/copilot/index.js.map +1 -0
- package/dist/providers/cursor/index.d.ts.map +1 -1
- package/dist/providers/cursor/index.js +1 -0
- package/dist/providers/cursor/index.js.map +1 -1
- package/dist/providers/cursor/parse.d.ts.map +1 -1
- package/dist/providers/cursor/parse.js +1 -0
- package/dist/providers/cursor/parse.js.map +1 -1
- package/dist/providers/gemini/index.d.ts.map +1 -1
- package/dist/providers/gemini/index.js +16 -20
- package/dist/providers/gemini/index.js.map +1 -1
- package/dist/providers/openclaw/execute.d.ts +5 -0
- package/dist/providers/openclaw/execute.d.ts.map +1 -1
- package/dist/providers/openclaw/execute.js +13 -173
- package/dist/providers/openclaw/execute.js.map +1 -1
- package/dist/providers/openclaw/index.d.ts.map +1 -1
- package/dist/providers/openclaw/index.js +1 -0
- package/dist/providers/openclaw/index.js.map +1 -1
- package/dist/providers/opencode/event-parse.d.ts +23 -0
- package/dist/providers/opencode/event-parse.d.ts.map +1 -0
- package/dist/providers/opencode/event-parse.js +128 -0
- package/dist/providers/opencode/event-parse.js.map +1 -0
- package/dist/providers/opencode/http-session.d.ts +4 -0
- package/dist/providers/opencode/http-session.d.ts.map +1 -0
- package/dist/providers/opencode/http-session.js +376 -0
- package/dist/providers/opencode/http-session.js.map +1 -0
- package/dist/providers/opencode/index.d.ts.map +1 -1
- package/dist/providers/opencode/index.js +6 -1
- package/dist/providers/opencode/index.js.map +1 -1
- package/dist/providers/opencode/parse.d.ts.map +1 -1
- package/dist/providers/opencode/parse.js +1 -0
- package/dist/providers/opencode/parse.js.map +1 -1
- package/dist/providers/opencode/server.d.ts +8 -0
- package/dist/providers/opencode/server.d.ts.map +1 -0
- package/dist/providers/opencode/server.js +0 -0
- package/dist/providers/opencode/server.js.map +1 -0
- package/dist/providers/pi/index.d.ts.map +1 -1
- package/dist/providers/pi/index.js +6 -1
- package/dist/providers/pi/index.js.map +1 -1
- package/dist/providers/pi/parse.d.ts.map +1 -1
- package/dist/providers/pi/parse.js +1 -0
- package/dist/providers/pi/parse.js.map +1 -1
- package/dist/providers/pi/session.d.ts +40 -0
- package/dist/providers/pi/session.d.ts.map +1 -0
- package/dist/providers/pi/session.js +328 -0
- package/dist/providers/pi/session.js.map +1 -0
- package/dist/providers/process/index.d.ts.map +1 -1
- package/dist/providers/process/index.js +1 -0
- package/dist/providers/process/index.js.map +1 -1
- package/dist/registry.d.ts +1 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +6 -0
- package/dist/registry.js.map +1 -1
- package/dist/types.d.ts +185 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/tool-names.d.ts +24 -0
- package/dist/utils/tool-names.d.ts.map +1 -0
- package/dist/utils/tool-names.js +50 -0
- package/dist/utils/tool-names.js.map +1 -0
- package/package.json +22 -13
- package/dist/providers/claude/test.d.ts +0 -3
- package/dist/providers/claude/test.d.ts.map +0 -1
- package/dist/providers/claude/test.js +0 -167
- package/dist/providers/claude/test.js.map +0 -1
- package/dist/providers/codex/test.d.ts +0 -3
- package/dist/providers/codex/test.d.ts.map +0 -1
- package/dist/providers/codex/test.js +0 -74
- package/dist/providers/codex/test.js.map +0 -1
- package/dist/providers/cursor/test.d.ts +0 -3
- package/dist/providers/cursor/test.d.ts.map +0 -1
- package/dist/providers/cursor/test.js +0 -58
- package/dist/providers/cursor/test.js.map +0 -1
- package/dist/providers/gemini/codec.d.ts +0 -3
- package/dist/providers/gemini/codec.d.ts.map +0 -1
- package/dist/providers/gemini/codec.js +0 -47
- package/dist/providers/gemini/codec.js.map +0 -1
- package/dist/providers/gemini/execute.d.ts +0 -3
- package/dist/providers/gemini/execute.d.ts.map +0 -1
- package/dist/providers/gemini/execute.js +0 -256
- package/dist/providers/gemini/execute.js.map +0 -1
- package/dist/providers/gemini/parse.d.ts +0 -20
- package/dist/providers/gemini/parse.d.ts.map +0 -1
- package/dist/providers/gemini/parse.js +0 -235
- package/dist/providers/gemini/parse.js.map +0 -1
- package/dist/providers/gemini/test.d.ts +0 -3
- package/dist/providers/gemini/test.d.ts.map +0 -1
- package/dist/providers/gemini/test.js +0 -67
- package/dist/providers/gemini/test.js.map +0 -1
- package/dist/providers/openclaw/test.d.ts +0 -3
- package/dist/providers/openclaw/test.d.ts.map +0 -1
- package/dist/providers/openclaw/test.js +0 -54
- package/dist/providers/openclaw/test.js.map +0 -1
- package/dist/providers/opencode/test.d.ts +0 -3
- package/dist/providers/opencode/test.d.ts.map +0 -1
- package/dist/providers/opencode/test.js +0 -60
- package/dist/providers/opencode/test.js.map +0 -1
- package/dist/providers/pi/test.d.ts +0 -3
- package/dist/providers/pi/test.d.ts.map +0 -1
- package/dist/providers/pi/test.js +0 -60
- package/dist/providers/pi/test.js.map +0 -1
- package/dist/utils/model-cache.d.ts +0 -11
- package/dist/utils/model-cache.d.ts.map +0 -1
- package/dist/utils/model-cache.js +0 -17
- package/dist/utils/model-cache.js.map +0 -1
|
@@ -4,9 +4,87 @@ import { findBinary } from "../../utils/binary.js";
|
|
|
4
4
|
import { buildEnv, ensurePathInEnv } from "../../utils/env.js";
|
|
5
5
|
import { injectWorkspaceSkills } from "../../utils/skills.js";
|
|
6
6
|
import { resolveInstructions } from "../../utils/instructions.js";
|
|
7
|
+
import { createToolNameTracker } from "../../utils/tool-names.js";
|
|
7
8
|
import { parseCodexStreamLine } from "./parse.js";
|
|
8
9
|
import { withPlanModePreamble } from "./plan-mode.js";
|
|
9
10
|
import { scanCodexSessionUsage } from "./usage-scanner.js";
|
|
11
|
+
import { codexSessionCodec } from "./codec.js";
|
|
12
|
+
import { parseCollaborationModes, resolveCollaborationModeParam } from "./modes.js";
|
|
13
|
+
/**
|
|
14
|
+
* Extract a resume thread id from session params (reusing the codec's
|
|
15
|
+
* sessionId / session_id / thread_id alias handling), or null to start fresh.
|
|
16
|
+
*/
|
|
17
|
+
function readCodexResumeId(sessionParams) {
|
|
18
|
+
const decoded = codexSessionCodec.deserialize(sessionParams ?? null);
|
|
19
|
+
const id = decoded?.["sessionId"];
|
|
20
|
+
return typeof id === "string" && id.length > 0 ? id : null;
|
|
21
|
+
}
|
|
22
|
+
/** Pull and normalize the question list out of a `requestUserInput` params blob.
|
|
23
|
+
* Tolerant of missing/extra fields — drops anything without an id and at least
|
|
24
|
+
* a question or a header (Codex sometimes sends header-only prompts). */
|
|
25
|
+
function parseCodexQuestions(params) {
|
|
26
|
+
const raw = Array.isArray(params["questions"]) ? params["questions"] : [];
|
|
27
|
+
const out = [];
|
|
28
|
+
for (const item of raw) {
|
|
29
|
+
if (typeof item !== "object" || item === null)
|
|
30
|
+
continue;
|
|
31
|
+
const q = item;
|
|
32
|
+
const id = typeof q["id"] === "string" ? q["id"] : "";
|
|
33
|
+
const questionText = typeof q["question"] === "string" ? q["question"] : "";
|
|
34
|
+
const header = typeof q["header"] === "string" ? q["header"] : "";
|
|
35
|
+
if (!id || (!questionText && !header))
|
|
36
|
+
continue;
|
|
37
|
+
// Fall back to the header as the prompt text so the bridged AskUserQuestion is
|
|
38
|
+
// never empty and the host can key its answer off the same `question` value.
|
|
39
|
+
const question = questionText || header;
|
|
40
|
+
const options = Array.isArray(q["options"])
|
|
41
|
+
? q["options"]
|
|
42
|
+
.filter((o) => typeof o === "object" && o !== null)
|
|
43
|
+
.map((o) => ({
|
|
44
|
+
label: typeof o["label"] === "string" ? o["label"] : "",
|
|
45
|
+
...(typeof o["description"] === "string" && o["description"]
|
|
46
|
+
? { description: o["description"] }
|
|
47
|
+
: {}),
|
|
48
|
+
}))
|
|
49
|
+
.filter((o) => o.label.length > 0)
|
|
50
|
+
: [];
|
|
51
|
+
out.push({
|
|
52
|
+
id,
|
|
53
|
+
header,
|
|
54
|
+
question,
|
|
55
|
+
options,
|
|
56
|
+
...(q["multiSelect"] === true ? { multiSelect: true } : {}),
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return out;
|
|
60
|
+
}
|
|
61
|
+
function normalizeAnswerValues(raw) {
|
|
62
|
+
if (typeof raw === "string")
|
|
63
|
+
return raw.length > 0 ? [raw] : [];
|
|
64
|
+
if (Array.isArray(raw))
|
|
65
|
+
return raw.filter((v) => typeof v === "string" && v.length > 0);
|
|
66
|
+
return [];
|
|
67
|
+
}
|
|
68
|
+
/** Translate a host AskUserQuestion answer (keyed by question text or header)
|
|
69
|
+
* into the Codex `requestUserInput` response shape:
|
|
70
|
+
* `{ [questionId]: { answers: string[] } }`. A denied response yields {}. */
|
|
71
|
+
function buildCodexUserInputAnswers(questions, resp) {
|
|
72
|
+
const out = {};
|
|
73
|
+
if (!resp.allow)
|
|
74
|
+
return out;
|
|
75
|
+
const updated = resp.updatedInput && typeof resp.updatedInput["answers"] === "object"
|
|
76
|
+
? resp.updatedInput["answers"]
|
|
77
|
+
: null;
|
|
78
|
+
if (!updated)
|
|
79
|
+
return out;
|
|
80
|
+
for (const q of questions) {
|
|
81
|
+
const raw = updated[q.question] ?? updated[q.header];
|
|
82
|
+
const values = normalizeAnswerValues(raw);
|
|
83
|
+
if (values.length > 0)
|
|
84
|
+
out[q.id] = { answers: values };
|
|
85
|
+
}
|
|
86
|
+
return out;
|
|
87
|
+
}
|
|
10
88
|
// ---------------------------------------------------------------------------
|
|
11
89
|
// JSON-RPC 2.0 helpers
|
|
12
90
|
// ---------------------------------------------------------------------------
|
|
@@ -146,6 +224,8 @@ export class CodexSessionImpl {
|
|
|
146
224
|
instructions;
|
|
147
225
|
_state = "idle";
|
|
148
226
|
_threadId = null;
|
|
227
|
+
/** Thread id to resume (from ctx.sessionParams); null starts a fresh thread. */
|
|
228
|
+
_resumeThreadId;
|
|
149
229
|
_lineBuffer = "";
|
|
150
230
|
_nextId = 1;
|
|
151
231
|
// Pending outgoing RPC responses (keyed by request id)
|
|
@@ -156,6 +236,15 @@ export class CodexSessionImpl {
|
|
|
156
236
|
// turn.completed / turn.failed we drain the entire list — every pending
|
|
157
237
|
// Promise resolves with the same TurnResult.
|
|
158
238
|
_pendingResults = [];
|
|
239
|
+
/** Result Promises for sends that haven't settled, tracked so `drain()` can
|
|
240
|
+
* await the in-flight turn(s) before closing. */
|
|
241
|
+
_inFlight = new Set();
|
|
242
|
+
/** Set by `drain()`: new `send()` calls are refused while true. */
|
|
243
|
+
_draining = false;
|
|
244
|
+
/** Shared promise so concurrent / repeated `drain()` calls coalesce. */
|
|
245
|
+
_drainPromise = null;
|
|
246
|
+
/** Stamps `tool_result.toolName` by correlating with prior `tool_call`s. */
|
|
247
|
+
_trackToolName = createToolNameTracker();
|
|
159
248
|
// Per-turn accumulators. Cleared after each result delivery so a subsequent
|
|
160
249
|
// turn's events don't inherit stale values.
|
|
161
250
|
_turnSummary = null;
|
|
@@ -177,6 +266,7 @@ export class CodexSessionImpl {
|
|
|
177
266
|
this.cwd = cwd;
|
|
178
267
|
this.model = model;
|
|
179
268
|
this.instructions = instructions;
|
|
269
|
+
this._resumeThreadId = readCodexResumeId(ctx.sessionParams);
|
|
180
270
|
proc.stdout.setEncoding("utf-8");
|
|
181
271
|
proc.stdout.on("data", (chunk) => this.handleStdout(chunk));
|
|
182
272
|
proc.stderr.setEncoding("utf-8");
|
|
@@ -205,8 +295,13 @@ export class CodexSessionImpl {
|
|
|
205
295
|
/** Reject every pending send() Promise and outgoing JSON-RPC call. */
|
|
206
296
|
rejectAllPending(err) {
|
|
207
297
|
const pending = this._pendingResults.splice(0);
|
|
208
|
-
for (const p of pending)
|
|
298
|
+
for (const p of pending) {
|
|
299
|
+
if (p.settled)
|
|
300
|
+
continue;
|
|
301
|
+
p.settled = true;
|
|
302
|
+
p.cleanup?.();
|
|
209
303
|
p.reject(err);
|
|
304
|
+
}
|
|
210
305
|
for (const [, p] of this._pendingRpc)
|
|
211
306
|
p.reject(err);
|
|
212
307
|
this._pendingRpc.clear();
|
|
@@ -238,12 +333,67 @@ export class CodexSessionImpl {
|
|
|
238
333
|
clientInfo: { name: "agentex", version: "1.0.0" },
|
|
239
334
|
capabilities: {},
|
|
240
335
|
});
|
|
241
|
-
// 2. thread
|
|
336
|
+
// 2. Resume an existing thread when the caller supplied sessionParams,
|
|
337
|
+
// otherwise start a fresh one. `thread/resume` continues the SAME thread
|
|
338
|
+
// with its full context retained — distinct from `thread/fork`, which is
|
|
339
|
+
// a divergent rewind copy. The thread keeps its original cwd/model, so we
|
|
340
|
+
// pass only the thread id (+ refreshed developer instructions).
|
|
341
|
+
if (this._resumeThreadId) {
|
|
342
|
+
const resumeParams = { threadId: this._resumeThreadId };
|
|
343
|
+
if (this.instructions)
|
|
344
|
+
resumeParams["developerInstructions"] = this.instructions;
|
|
345
|
+
try {
|
|
346
|
+
const res = await this.rpcRequest("thread/resume", resumeParams);
|
|
347
|
+
const thread = asObj(res, "thread");
|
|
348
|
+
// thread/resume may echo the thread back or return {}; fall back to the
|
|
349
|
+
// id we resumed with so `sessionId` is always populated.
|
|
350
|
+
this._threadId = str(thread, "id") || str(thread, "sessionId") || this._resumeThreadId;
|
|
351
|
+
return;
|
|
352
|
+
}
|
|
353
|
+
catch (err) {
|
|
354
|
+
// The thread is unknown to this codex install (different machine, pruned
|
|
355
|
+
// history). Don't fail the whole session — fall back to a fresh thread
|
|
356
|
+
// and surface the downgrade on stderr. The new id flows back out via
|
|
357
|
+
// the next sessionParams snapshot so callers see the session changed.
|
|
358
|
+
if (this.ctx.onOutput) {
|
|
359
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
360
|
+
try {
|
|
361
|
+
void this.ctx.onOutput("stderr", `agentex: codex thread/resume failed for ${this._resumeThreadId}, starting a fresh thread: ${reason}\n`);
|
|
362
|
+
}
|
|
363
|
+
catch { /* swallow */ }
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
// thread/start (fresh)
|
|
242
368
|
const threadParams = { cwd: this.cwd };
|
|
243
369
|
if (this.model)
|
|
244
370
|
threadParams["model"] = this.model;
|
|
245
371
|
if (this.instructions)
|
|
246
372
|
threadParams["developerInstructions"] = this.instructions;
|
|
373
|
+
// Apply a chosen collaboration mode (config.modeId) by resolving it against
|
|
374
|
+
// the live mode list. Only on fresh threads — a resumed thread keeps the
|
|
375
|
+
// mode it was created with. Mode discovery is advisory: a failure or an
|
|
376
|
+
// unknown id just falls through to the default mode.
|
|
377
|
+
const modeId = this.ctx.config?.modeId;
|
|
378
|
+
if (modeId) {
|
|
379
|
+
try {
|
|
380
|
+
// Bound the discovery RPC: an older app-server that ignores
|
|
381
|
+
// `collaborationMode/list` would otherwise hang the whole handshake.
|
|
382
|
+
const modesResponse = await Promise.race([
|
|
383
|
+
this.rpcRequest("collaborationMode/list", {}),
|
|
384
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error("collaborationMode/list timed out")), 10_000)),
|
|
385
|
+
]);
|
|
386
|
+
const collaborationMode = resolveCollaborationModeParam(parseCollaborationModes(modesResponse), modeId);
|
|
387
|
+
if (collaborationMode) {
|
|
388
|
+
// Avoid sending instructions twice: the caller's top-level
|
|
389
|
+
// `developerInstructions` wins, so drop the mode's copy.
|
|
390
|
+
if (this.instructions)
|
|
391
|
+
delete collaborationMode.settings["developer_instructions"];
|
|
392
|
+
threadParams["collaborationMode"] = collaborationMode;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
catch { /* modes are advisory — ignore discovery failures */ }
|
|
396
|
+
}
|
|
247
397
|
const res = await this.rpcRequest("thread/start", threadParams);
|
|
248
398
|
// codex-cli 0.130.0+ shape: { thread: { id, sessionId, ... }, model, ... }
|
|
249
399
|
const thread = asObj(res, "thread");
|
|
@@ -252,9 +402,11 @@ export class CodexSessionImpl {
|
|
|
252
402
|
// -------------------------------------------------------------------------
|
|
253
403
|
// Public API
|
|
254
404
|
// -------------------------------------------------------------------------
|
|
255
|
-
async send(message) {
|
|
405
|
+
async send(message, options) {
|
|
256
406
|
if (this._state === "closed")
|
|
257
407
|
throw new Error("Session is closed");
|
|
408
|
+
if (this._draining)
|
|
409
|
+
throw new Error("Session is draining — no new sends accepted");
|
|
258
410
|
// No protocol-level guard — Codex's TUI demonstrates queueing of user
|
|
259
411
|
// messages during an active turn, and our wire test (transcript
|
|
260
412
|
// 019e33c3) confirms two `user_message` events recorded across a
|
|
@@ -277,14 +429,82 @@ export class CodexSessionImpl {
|
|
|
277
429
|
};
|
|
278
430
|
if (this._threadId)
|
|
279
431
|
turnParams["threadId"] = this._threadId;
|
|
432
|
+
let resolveFn;
|
|
433
|
+
let rejectFn;
|
|
280
434
|
const result = new Promise((resolve, reject) => {
|
|
281
|
-
|
|
435
|
+
resolveFn = resolve;
|
|
436
|
+
rejectFn = reject;
|
|
282
437
|
});
|
|
438
|
+
const entry = { resolve: resolveFn, reject: rejectFn };
|
|
439
|
+
this._pendingResults.push(entry);
|
|
440
|
+
// Track the in-flight turn so drain() can await it; drop it on settle.
|
|
441
|
+
this._inFlight.add(result);
|
|
442
|
+
void result.catch(() => { }).finally(() => this._inFlight.delete(result));
|
|
443
|
+
// Per-send timeout / abort, falling back to the session-level
|
|
444
|
+
// ProviderConfig.timeoutSec default when no per-call timeout is given.
|
|
445
|
+
this.armSendDeadline(entry, options);
|
|
283
446
|
this.rpcRequest("turn/start", turnParams).catch(() => {
|
|
284
447
|
// Turn-level errors arrive via turn.failed notifications.
|
|
285
448
|
});
|
|
286
449
|
return { uuid, result };
|
|
287
450
|
}
|
|
451
|
+
/**
|
|
452
|
+
* Wire up this send's timeout and/or abort signal. On fire, the active turn
|
|
453
|
+
* is cancelled (`turn/cancel`) and the send settles with `timeout` /
|
|
454
|
+
* `aborted`. No-op when neither a timeout nor a signal applies.
|
|
455
|
+
*/
|
|
456
|
+
armSendDeadline(entry, options) {
|
|
457
|
+
const timeoutSec = options?.timeoutSec ?? this.ctx.config?.timeoutSec;
|
|
458
|
+
const signal = options?.signal;
|
|
459
|
+
const hasTimeout = typeof timeoutSec === "number" && timeoutSec > 0;
|
|
460
|
+
if (!hasTimeout && !signal)
|
|
461
|
+
return;
|
|
462
|
+
if (signal?.aborted) {
|
|
463
|
+
queueMicrotask(() => this.settleEarly(entry, "aborted"));
|
|
464
|
+
return;
|
|
465
|
+
}
|
|
466
|
+
let timer;
|
|
467
|
+
const onAbort = () => this.settleEarly(entry, "aborted");
|
|
468
|
+
if (hasTimeout) {
|
|
469
|
+
timer = setTimeout(() => this.settleEarly(entry, "timeout"), timeoutSec * 1000);
|
|
470
|
+
}
|
|
471
|
+
if (signal)
|
|
472
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
473
|
+
entry.cleanup = () => {
|
|
474
|
+
if (timer)
|
|
475
|
+
clearTimeout(timer);
|
|
476
|
+
if (signal)
|
|
477
|
+
signal.removeEventListener("abort", onAbort);
|
|
478
|
+
};
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* Settle a still-pending send early (timeout or abort). Cancels the active
|
|
482
|
+
* turn best-effort and resolves the send's `result` with a synthetic
|
|
483
|
+
* TurnResult. A no-op if the entry already settled (the real result raced
|
|
484
|
+
* ahead). The late real turn-completion later finds the entry already gone.
|
|
485
|
+
*/
|
|
486
|
+
settleEarly(entry, kind) {
|
|
487
|
+
if (entry.settled)
|
|
488
|
+
return;
|
|
489
|
+
entry.settled = true;
|
|
490
|
+
entry.cleanup?.();
|
|
491
|
+
const idx = this._pendingResults.indexOf(entry);
|
|
492
|
+
if (idx >= 0)
|
|
493
|
+
this._pendingResults.splice(idx, 1);
|
|
494
|
+
// Best-effort cancel of the active turn. With concurrent sends this ends
|
|
495
|
+
// the single shared turn for all of them — see SendOptions JSDoc.
|
|
496
|
+
void this.interrupt();
|
|
497
|
+
entry.resolve({
|
|
498
|
+
summary: null,
|
|
499
|
+
usage: undefined,
|
|
500
|
+
costUsd: null,
|
|
501
|
+
status: kind,
|
|
502
|
+
errorCode: kind,
|
|
503
|
+
errorMessage: kind === "timeout"
|
|
504
|
+
? "Turn exceeded its timeout and was interrupted"
|
|
505
|
+
: "Turn was aborted",
|
|
506
|
+
});
|
|
507
|
+
}
|
|
288
508
|
async cancel(_uuid) {
|
|
289
509
|
// Codex's JSON-RPC protocol exposes no per-message cancel — only
|
|
290
510
|
// turn-wide `turn/cancel` (which is what `interrupt()` calls).
|
|
@@ -299,16 +519,34 @@ export class CodexSessionImpl {
|
|
|
299
519
|
}
|
|
300
520
|
catch { /* best effort */ }
|
|
301
521
|
}
|
|
522
|
+
async drain() {
|
|
523
|
+
if (this._state === "closed")
|
|
524
|
+
return;
|
|
525
|
+
// Coalesce concurrent / repeated drains onto one promise.
|
|
526
|
+
if (this._drainPromise)
|
|
527
|
+
return this._drainPromise;
|
|
528
|
+
this._draining = true;
|
|
529
|
+
this._drainPromise = (async () => {
|
|
530
|
+
// Let every in-flight turn settle (resolve or reject) before closing, so
|
|
531
|
+
// a running tool finishes rather than being killed mid-flight.
|
|
532
|
+
await Promise.allSettled([...this._inFlight]);
|
|
533
|
+
await this.close();
|
|
534
|
+
})();
|
|
535
|
+
return this._drainPromise;
|
|
536
|
+
}
|
|
302
537
|
async close() {
|
|
303
538
|
if (this._state === "closed")
|
|
304
539
|
return;
|
|
305
540
|
this._state = "closed";
|
|
306
541
|
this.proc.stdin.end();
|
|
542
|
+
// Grace window before SIGKILL is configurable via ProviderConfig.graceSec
|
|
543
|
+
// for sessions running long tools.
|
|
544
|
+
const graceSec = this.ctx.config?.graceSec ?? 5;
|
|
307
545
|
await new Promise((resolve) => {
|
|
308
546
|
const timeout = setTimeout(() => {
|
|
309
547
|
this.proc.kill("SIGKILL");
|
|
310
548
|
resolve();
|
|
311
|
-
},
|
|
549
|
+
}, graceSec * 1000);
|
|
312
550
|
this.proc.on("exit", () => {
|
|
313
551
|
clearTimeout(timeout);
|
|
314
552
|
resolve();
|
|
@@ -381,17 +619,35 @@ export class CodexSessionImpl {
|
|
|
381
619
|
method === "item/fileChange/requestApproval") {
|
|
382
620
|
void this.handleApproval(id, method, params);
|
|
383
621
|
}
|
|
622
|
+
else if (method === "item/tool/requestUserInput" ||
|
|
623
|
+
method === "tool/requestUserInput") {
|
|
624
|
+
// `tool/requestUserInput` is the legacy method name on older codex builds.
|
|
625
|
+
void this.handleUserInputRequest(id, params);
|
|
626
|
+
}
|
|
384
627
|
else {
|
|
385
|
-
// Unknown server request — ack to unblock
|
|
628
|
+
// Unknown server request — ack to unblock the turn.
|
|
386
629
|
this.rpcResponse(id, {});
|
|
387
630
|
}
|
|
388
631
|
}
|
|
632
|
+
/**
|
|
633
|
+
* Leave a waiting-for-input/approval state correctly. A slow host handler can
|
|
634
|
+
* resolve after the turn already ended (deliverTurnResult → idle), so restore
|
|
635
|
+
* to `thinking` only when a turn is still in flight, else `idle` — never clobber
|
|
636
|
+
* a finished turn back to `thinking`.
|
|
637
|
+
*/
|
|
638
|
+
restoreStateAfter(waitingState) {
|
|
639
|
+
if (this._state !== waitingState)
|
|
640
|
+
return;
|
|
641
|
+
this._state = this._pendingResults.length > 0 ? "thinking" : "idle";
|
|
642
|
+
}
|
|
389
643
|
async handleApproval(id, method, params) {
|
|
390
644
|
this._state = "waiting_for_approval";
|
|
645
|
+
// Codex's app-server expects `{ decision: "accept" | "decline" | "cancel" }`
|
|
646
|
+
// (NOT `{ approved: boolean }`). agentex's UserInputResponse has no interrupt
|
|
647
|
+
// concept, so allow → accept and deny → decline.
|
|
391
648
|
if (!this.ctx.onUserInputRequest) {
|
|
392
|
-
this.rpcResponse(id, {
|
|
393
|
-
|
|
394
|
-
this._state = "thinking";
|
|
649
|
+
this.rpcResponse(id, { decision: "accept" });
|
|
650
|
+
this.restoreStateAfter("waiting_for_approval");
|
|
395
651
|
return;
|
|
396
652
|
}
|
|
397
653
|
const toolName = method === "item/commandExecution/requestApproval"
|
|
@@ -404,13 +660,43 @@ export class CodexSessionImpl {
|
|
|
404
660
|
toolUseId: str(params, "id"),
|
|
405
661
|
description: str(params, "command") || str(params, "path") || undefined,
|
|
406
662
|
});
|
|
407
|
-
this.rpcResponse(id, {
|
|
663
|
+
this.rpcResponse(id, { decision: resp.allow ? "accept" : "decline" });
|
|
408
664
|
}
|
|
409
665
|
catch {
|
|
410
|
-
this.rpcResponse(id, {
|
|
666
|
+
this.rpcResponse(id, { decision: "decline" });
|
|
411
667
|
}
|
|
412
|
-
|
|
413
|
-
|
|
668
|
+
this.restoreStateAfter("waiting_for_approval");
|
|
669
|
+
}
|
|
670
|
+
/**
|
|
671
|
+
* Handle a Codex `requestUserInput` server→client request: the agent is asking
|
|
672
|
+
* the user one or more structured questions. Maps onto the cross-provider
|
|
673
|
+
* AskUserQuestion shape so callers reuse `parseAskUserQuestion`, then answers
|
|
674
|
+
* back in Codex's `{ answers: { [questionId]: { answers: string[] } } }` shape.
|
|
675
|
+
*/
|
|
676
|
+
async handleUserInputRequest(id, params) {
|
|
677
|
+
// Questions are user *input*, not a tool-permission gate — distinct state so a
|
|
678
|
+
// host UI can render a question form vs an approval prompt.
|
|
679
|
+
this._state = "waiting_for_input";
|
|
680
|
+
const questions = parseCodexQuestions(params);
|
|
681
|
+
// No host handler, or nothing answerable → return empty answers so the
|
|
682
|
+
// agent proceeds without hanging.
|
|
683
|
+
if (!this.ctx.onUserInputRequest || questions.length === 0) {
|
|
684
|
+
this.rpcResponse(id, { answers: {} });
|
|
685
|
+
this.restoreStateAfter("waiting_for_input");
|
|
686
|
+
return;
|
|
687
|
+
}
|
|
688
|
+
try {
|
|
689
|
+
const resp = await this.ctx.onUserInputRequest({
|
|
690
|
+
toolName: "AskUserQuestion",
|
|
691
|
+
input: { questions },
|
|
692
|
+
toolUseId: str(params, "id") || "codex-user-input",
|
|
693
|
+
});
|
|
694
|
+
this.rpcResponse(id, { answers: buildCodexUserInputAnswers(questions, resp) });
|
|
695
|
+
}
|
|
696
|
+
catch {
|
|
697
|
+
this.rpcResponse(id, { answers: {} });
|
|
698
|
+
}
|
|
699
|
+
this.restoreStateAfter("waiting_for_input");
|
|
414
700
|
}
|
|
415
701
|
// -------------------------------------------------------------------------
|
|
416
702
|
// Notification handling (v2 format)
|
|
@@ -572,7 +858,15 @@ export class CodexSessionImpl {
|
|
|
572
858
|
let usage = this._turnUsage && resolvedModel
|
|
573
859
|
? { [resolvedModel]: { inputTokens: this._turnUsage.inputTokens, outputTokens: this._turnUsage.outputTokens } }
|
|
574
860
|
: undefined;
|
|
575
|
-
//
|
|
861
|
+
// Usage precedence: the `turn.completed` payload is authoritative when
|
|
862
|
+
// present (captured above into _turnUsage). Only when the stream carried no
|
|
863
|
+
// usage do we fall back to scanning Codex's on-disk session logs.
|
|
864
|
+
//
|
|
865
|
+
// RACINESS: the disk scan is best-effort and inherently racy — the rollout
|
|
866
|
+
// file may still be flushing when we read it, so a fallback scan can miss the
|
|
867
|
+
// latest turn or read partially-written totals. We therefore scan ONLY when
|
|
868
|
+
// there is no in-band usage, and never let a scan failure fail the turn
|
|
869
|
+
// (usage simply stays undefined). Prefer the in-band payload always.
|
|
576
870
|
if (!usage && this._turnStartedAt) {
|
|
577
871
|
const startedAt = this._turnStartedAt;
|
|
578
872
|
const threadId = this._threadId ?? undefined;
|
|
@@ -621,8 +915,14 @@ export class CodexSessionImpl {
|
|
|
621
915
|
this._turnIsError = false;
|
|
622
916
|
this._turnErrorMessage = null;
|
|
623
917
|
this._turnStartedAt = null;
|
|
624
|
-
for (const p of pending)
|
|
918
|
+
for (const p of pending) {
|
|
919
|
+
// Skip sends already settled early by timeout / abort.
|
|
920
|
+
if (p.settled)
|
|
921
|
+
continue;
|
|
922
|
+
p.settled = true;
|
|
923
|
+
p.cleanup?.();
|
|
625
924
|
p.resolve(result);
|
|
925
|
+
}
|
|
626
926
|
}
|
|
627
927
|
emitStreamEvent(rawLine) {
|
|
628
928
|
if (!this.ctx.onEvent)
|
|
@@ -644,9 +944,24 @@ export class CodexSessionImpl {
|
|
|
644
944
|
const cb = this.ctx.onEvent;
|
|
645
945
|
if (!cb)
|
|
646
946
|
return;
|
|
947
|
+
// Codex emits no native per-event uuid. Where the v2 components exist,
|
|
948
|
+
// synthesize a documented, replay-stable identity so hosts get an
|
|
949
|
+
// idempotency key for live captures:
|
|
950
|
+
// codex:<threadId>:<turnId>:<itemId>:<eventType>
|
|
951
|
+
// This is an UPSERT key, not a uniqueness guarantee — repeated updates to
|
|
952
|
+
// the same item (e.g. streaming text on one agent_message) intentionally
|
|
953
|
+
// share an id; the last write wins. It also does NOT match the transcript
|
|
954
|
+
// reader's `codex:<sessionId>:<offset>` scheme (different wire vocabulary
|
|
955
|
+
// on disk) — cross-shape dedup remains a host concern.
|
|
956
|
+
if (!event.eventId && this._threadId && event.turnId && event.messageId) {
|
|
957
|
+
event.eventId = `codex:${this._threadId}:${event.turnId}:${event.messageId}:${event.type}`;
|
|
958
|
+
}
|
|
959
|
+
// Enrich synchronously (in stream order) so tool_result events carry the
|
|
960
|
+
// name of the tool_call they answer.
|
|
961
|
+
const enriched = this._trackToolName(event);
|
|
647
962
|
this._eventChain = this._eventChain.then(async () => {
|
|
648
963
|
try {
|
|
649
|
-
await cb(
|
|
964
|
+
await cb(enriched);
|
|
650
965
|
}
|
|
651
966
|
catch { /* swallow */ }
|
|
652
967
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/providers/codex/session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/providers/codex/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -94,6 +94,20 @@ export interface CodexTranscriptLine {
|
|
|
94
94
|
* {@link raw} directly.
|
|
95
95
|
*/
|
|
96
96
|
payload: Record<string, unknown> | null;
|
|
97
|
+
/**
|
|
98
|
+
* Replay-stable synthetic identity, set by {@link readCodexTranscript}:
|
|
99
|
+
* `codex:<rolloutSessionId>:<lineStartByteOffset>`. Codex emits no native
|
|
100
|
+
* per-event uuid, so this is the idempotency key hosts use to dedup
|
|
101
|
+
* transcript replays — deterministic across reads of the same file.
|
|
102
|
+
*
|
|
103
|
+
* `null` when a line is parsed standalone via {@link parseCodexLine} (no
|
|
104
|
+
* file/offset context). NOTE: live app-server events use a different
|
|
105
|
+
* synthetic scheme (`codex:<threadId>:<turnId>:<itemId>:<eventType>`) over a
|
|
106
|
+
* different wire vocabulary (`command_execution` vs `exec_command`), so ids
|
|
107
|
+
* do NOT match across the live and on-disk readers — cross-shape dedup
|
|
108
|
+
* remains a host concern.
|
|
109
|
+
*/
|
|
110
|
+
eventId: string | null;
|
|
97
111
|
}
|
|
98
112
|
export interface ReadCodexTranscriptOptions {
|
|
99
113
|
/** Absolute path to the rollout JSONL. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../../../src/providers/codex/transcript.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AASH,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAKrE;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAK1D;AAMD,MAAM,WAAW,6BAA6B;IAC5C,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACtC,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC9B,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmC3E;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,6BAA6B,GAClC,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAkBzC;AAmFD;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../../../src/providers/codex/transcript.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AASH,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAKrE;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAK1D;AAMD,MAAM,WAAW,6BAA6B;IAC5C,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACtC,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC9B,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmC3E;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,6BAA6B,GAClC,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAkBzC;AAmFD;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC;;;;;;;;;;;;OAYG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;;;OAMG;IACH,KAAK,EAAE,mBAAmB,CAAC;IAC3B;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAuB,mBAAmB,CACxC,IAAI,EAAE,0BAA0B,GAC/B,aAAa,CAAC,oBAAoB,CAAC,CAoCrC;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAoBvE;AA0BD,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,SAAS,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACtC,2DAA2D;IAC3D,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA4CpF;AAMD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC,mBAAmB,CAajE,CAAC"}
|