@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.
Files changed (171) hide show
  1. package/README.md +140 -22
  2. package/dist/derived.d.ts +69 -0
  3. package/dist/derived.d.ts.map +1 -0
  4. package/dist/derived.js +218 -0
  5. package/dist/derived.js.map +1 -0
  6. package/dist/index.d.ts +8 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +3 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/providers/_shared/http-agent.d.ts +39 -0
  11. package/dist/providers/_shared/http-agent.d.ts.map +1 -0
  12. package/dist/providers/_shared/http-agent.js +265 -0
  13. package/dist/providers/_shared/http-agent.js.map +1 -0
  14. package/dist/providers/acp/index.d.ts +29 -0
  15. package/dist/providers/acp/index.d.ts.map +1 -0
  16. package/dist/providers/acp/index.js +153 -0
  17. package/dist/providers/acp/index.js.map +1 -0
  18. package/dist/providers/acp/parse.d.ts +22 -0
  19. package/dist/providers/acp/parse.d.ts.map +1 -0
  20. package/dist/providers/acp/parse.js +122 -0
  21. package/dist/providers/acp/parse.js.map +1 -0
  22. package/dist/providers/acp/session.d.ts +36 -0
  23. package/dist/providers/acp/session.d.ts.map +1 -0
  24. package/dist/providers/acp/session.js +487 -0
  25. package/dist/providers/acp/session.js.map +1 -0
  26. package/dist/providers/claude/execute.d.ts.map +1 -1
  27. package/dist/providers/claude/execute.js +22 -9
  28. package/dist/providers/claude/execute.js.map +1 -1
  29. package/dist/providers/claude/index.d.ts.map +1 -1
  30. package/dist/providers/claude/index.js +1 -0
  31. package/dist/providers/claude/index.js.map +1 -1
  32. package/dist/providers/claude/mcp.d.ts +28 -0
  33. package/dist/providers/claude/mcp.d.ts.map +1 -0
  34. package/dist/providers/claude/mcp.js +82 -0
  35. package/dist/providers/claude/mcp.js.map +1 -0
  36. package/dist/providers/claude/parse.d.ts +12 -1
  37. package/dist/providers/claude/parse.d.ts.map +1 -1
  38. package/dist/providers/claude/parse.js +84 -2
  39. package/dist/providers/claude/parse.js.map +1 -1
  40. package/dist/providers/claude/session.d.ts +29 -3
  41. package/dist/providers/claude/session.d.ts.map +1 -1
  42. package/dist/providers/claude/session.js +144 -16
  43. package/dist/providers/claude/session.js.map +1 -1
  44. package/dist/providers/codex/execute.d.ts.map +1 -1
  45. package/dist/providers/codex/execute.js +5 -1
  46. package/dist/providers/codex/execute.js.map +1 -1
  47. package/dist/providers/codex/index.d.ts.map +1 -1
  48. package/dist/providers/codex/index.js +3 -0
  49. package/dist/providers/codex/index.js.map +1 -1
  50. package/dist/providers/codex/modes.d.ts +35 -0
  51. package/dist/providers/codex/modes.d.ts.map +1 -0
  52. package/dist/providers/codex/modes.js +148 -0
  53. package/dist/providers/codex/modes.js.map +1 -0
  54. package/dist/providers/codex/parse.d.ts.map +1 -1
  55. package/dist/providers/codex/parse.js +4 -0
  56. package/dist/providers/codex/parse.js.map +1 -1
  57. package/dist/providers/codex/session.d.ts +41 -2
  58. package/dist/providers/codex/session.d.ts.map +1 -1
  59. package/dist/providers/codex/session.js +331 -16
  60. package/dist/providers/codex/session.js.map +1 -1
  61. package/dist/providers/codex/transcript.d.ts +14 -0
  62. package/dist/providers/codex/transcript.d.ts.map +1 -1
  63. package/dist/providers/codex/transcript.js +15 -1
  64. package/dist/providers/codex/transcript.js.map +1 -1
  65. package/dist/providers/copilot/index.d.ts +15 -0
  66. package/dist/providers/copilot/index.d.ts.map +1 -0
  67. package/dist/providers/copilot/index.js +19 -0
  68. package/dist/providers/copilot/index.js.map +1 -0
  69. package/dist/providers/cursor/index.d.ts.map +1 -1
  70. package/dist/providers/cursor/index.js +1 -0
  71. package/dist/providers/cursor/index.js.map +1 -1
  72. package/dist/providers/cursor/parse.d.ts.map +1 -1
  73. package/dist/providers/cursor/parse.js +1 -0
  74. package/dist/providers/cursor/parse.js.map +1 -1
  75. package/dist/providers/gemini/index.d.ts.map +1 -1
  76. package/dist/providers/gemini/index.js +16 -20
  77. package/dist/providers/gemini/index.js.map +1 -1
  78. package/dist/providers/openclaw/execute.d.ts +5 -0
  79. package/dist/providers/openclaw/execute.d.ts.map +1 -1
  80. package/dist/providers/openclaw/execute.js +13 -173
  81. package/dist/providers/openclaw/execute.js.map +1 -1
  82. package/dist/providers/openclaw/index.d.ts.map +1 -1
  83. package/dist/providers/openclaw/index.js +1 -0
  84. package/dist/providers/openclaw/index.js.map +1 -1
  85. package/dist/providers/opencode/event-parse.d.ts +23 -0
  86. package/dist/providers/opencode/event-parse.d.ts.map +1 -0
  87. package/dist/providers/opencode/event-parse.js +128 -0
  88. package/dist/providers/opencode/event-parse.js.map +1 -0
  89. package/dist/providers/opencode/http-session.d.ts +4 -0
  90. package/dist/providers/opencode/http-session.d.ts.map +1 -0
  91. package/dist/providers/opencode/http-session.js +376 -0
  92. package/dist/providers/opencode/http-session.js.map +1 -0
  93. package/dist/providers/opencode/index.d.ts.map +1 -1
  94. package/dist/providers/opencode/index.js +6 -1
  95. package/dist/providers/opencode/index.js.map +1 -1
  96. package/dist/providers/opencode/parse.d.ts.map +1 -1
  97. package/dist/providers/opencode/parse.js +1 -0
  98. package/dist/providers/opencode/parse.js.map +1 -1
  99. package/dist/providers/opencode/server.d.ts +8 -0
  100. package/dist/providers/opencode/server.d.ts.map +1 -0
  101. package/dist/providers/opencode/server.js +0 -0
  102. package/dist/providers/opencode/server.js.map +1 -0
  103. package/dist/providers/pi/index.d.ts.map +1 -1
  104. package/dist/providers/pi/index.js +6 -1
  105. package/dist/providers/pi/index.js.map +1 -1
  106. package/dist/providers/pi/parse.d.ts.map +1 -1
  107. package/dist/providers/pi/parse.js +1 -0
  108. package/dist/providers/pi/parse.js.map +1 -1
  109. package/dist/providers/pi/session.d.ts +40 -0
  110. package/dist/providers/pi/session.d.ts.map +1 -0
  111. package/dist/providers/pi/session.js +328 -0
  112. package/dist/providers/pi/session.js.map +1 -0
  113. package/dist/providers/process/index.d.ts.map +1 -1
  114. package/dist/providers/process/index.js +1 -0
  115. package/dist/providers/process/index.js.map +1 -1
  116. package/dist/registry.d.ts +1 -0
  117. package/dist/registry.d.ts.map +1 -1
  118. package/dist/registry.js +6 -0
  119. package/dist/registry.js.map +1 -1
  120. package/dist/types.d.ts +185 -4
  121. package/dist/types.d.ts.map +1 -1
  122. package/dist/types.js.map +1 -1
  123. package/dist/utils/tool-names.d.ts +24 -0
  124. package/dist/utils/tool-names.d.ts.map +1 -0
  125. package/dist/utils/tool-names.js +50 -0
  126. package/dist/utils/tool-names.js.map +1 -0
  127. package/package.json +22 -13
  128. package/dist/providers/claude/test.d.ts +0 -3
  129. package/dist/providers/claude/test.d.ts.map +0 -1
  130. package/dist/providers/claude/test.js +0 -167
  131. package/dist/providers/claude/test.js.map +0 -1
  132. package/dist/providers/codex/test.d.ts +0 -3
  133. package/dist/providers/codex/test.d.ts.map +0 -1
  134. package/dist/providers/codex/test.js +0 -74
  135. package/dist/providers/codex/test.js.map +0 -1
  136. package/dist/providers/cursor/test.d.ts +0 -3
  137. package/dist/providers/cursor/test.d.ts.map +0 -1
  138. package/dist/providers/cursor/test.js +0 -58
  139. package/dist/providers/cursor/test.js.map +0 -1
  140. package/dist/providers/gemini/codec.d.ts +0 -3
  141. package/dist/providers/gemini/codec.d.ts.map +0 -1
  142. package/dist/providers/gemini/codec.js +0 -47
  143. package/dist/providers/gemini/codec.js.map +0 -1
  144. package/dist/providers/gemini/execute.d.ts +0 -3
  145. package/dist/providers/gemini/execute.d.ts.map +0 -1
  146. package/dist/providers/gemini/execute.js +0 -256
  147. package/dist/providers/gemini/execute.js.map +0 -1
  148. package/dist/providers/gemini/parse.d.ts +0 -20
  149. package/dist/providers/gemini/parse.d.ts.map +0 -1
  150. package/dist/providers/gemini/parse.js +0 -235
  151. package/dist/providers/gemini/parse.js.map +0 -1
  152. package/dist/providers/gemini/test.d.ts +0 -3
  153. package/dist/providers/gemini/test.d.ts.map +0 -1
  154. package/dist/providers/gemini/test.js +0 -67
  155. package/dist/providers/gemini/test.js.map +0 -1
  156. package/dist/providers/openclaw/test.d.ts +0 -3
  157. package/dist/providers/openclaw/test.d.ts.map +0 -1
  158. package/dist/providers/openclaw/test.js +0 -54
  159. package/dist/providers/openclaw/test.js.map +0 -1
  160. package/dist/providers/opencode/test.d.ts +0 -3
  161. package/dist/providers/opencode/test.d.ts.map +0 -1
  162. package/dist/providers/opencode/test.js +0 -60
  163. package/dist/providers/opencode/test.js.map +0 -1
  164. package/dist/providers/pi/test.d.ts +0 -3
  165. package/dist/providers/pi/test.d.ts.map +0 -1
  166. package/dist/providers/pi/test.js +0 -60
  167. package/dist/providers/pi/test.js.map +0 -1
  168. package/dist/utils/model-cache.d.ts +0 -11
  169. package/dist/utils/model-cache.d.ts.map +0 -1
  170. package/dist/utils/model-cache.js +0 -17
  171. 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/start
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
- this._pendingResults.push({ resolve, reject });
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
- }, 5000);
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, { approved: true });
393
- if (this._state === "waiting_for_approval")
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, { approved: resp.allow });
663
+ this.rpcResponse(id, { decision: resp.allow ? "accept" : "decline" });
408
664
  }
409
665
  catch {
410
- this.rpcResponse(id, { approved: false });
666
+ this.rpcResponse(id, { decision: "decline" });
411
667
  }
412
- if (this._state === "waiting_for_approval")
413
- this._state = "thinking";
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
- // If no usage from the stream, try scanning session logs
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(event);
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;CACzC;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,CA6BrC;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAoBvE;AAeD,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"}
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"}