humanish 0.100.1 → 0.101.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.
Files changed (36) hide show
  1. package/dist/actor-contract.d.ts +9 -9
  2. package/dist/actor-contract.js +15 -5
  3. package/dist/actor-contract.js.map +1 -1
  4. package/dist/computer-use.d.ts +13 -2
  5. package/dist/computer-use.js +108 -24
  6. package/dist/computer-use.js.map +1 -1
  7. package/dist/cua-actor-lab.js +34 -15
  8. package/dist/cua-actor-lab.js.map +1 -1
  9. package/dist/local-agent-cli.d.ts +10 -0
  10. package/dist/local-agent-cli.js +23 -7
  11. package/dist/local-agent-cli.js.map +1 -1
  12. package/dist/observer-app.html +1 -1
  13. package/dist/restricted-codex-participant-policy.d.ts +11 -5
  14. package/dist/restricted-codex-participant-policy.js +21 -49
  15. package/dist/restricted-codex-participant-policy.js.map +1 -1
  16. package/dist/restricted-codex-participant.d.ts +5 -1
  17. package/dist/restricted-codex-participant.js +158 -106
  18. package/dist/restricted-codex-participant.js.map +1 -1
  19. package/dist/restricted-codex-policy.d.ts +12 -5
  20. package/dist/restricted-codex-policy.js +62 -37
  21. package/dist/restricted-codex-policy.js.map +1 -1
  22. package/dist/restricted-codex-session.d.ts +24 -3
  23. package/dist/restricted-codex-session.js +208 -51
  24. package/dist/restricted-codex-session.js.map +1 -1
  25. package/dist/restricted-codex-transport.d.ts +11 -2
  26. package/dist/restricted-codex-transport.js +57 -6
  27. package/dist/restricted-codex-transport.js.map +1 -1
  28. package/docs/architecture/restricted-codex-analysis.md +7 -4
  29. package/docs/contracts/schemas.md +1 -1
  30. package/docs/goals/current.md +3 -3
  31. package/docs/ramp/README.md +4 -1
  32. package/docs/release/0.101.0-codex-ui-tools.md +28 -0
  33. package/package.json +1 -1
  34. package/dist/local-agent-appserver.d.ts +0 -44
  35. package/dist/local-agent-appserver.js +0 -269
  36. package/dist/local-agent-appserver.js.map +0 -1
@@ -4,7 +4,7 @@ import { access, chmod, lstat, mkdir, mkdtemp, open, readdir, realpath, rm, stat
4
4
  import { homedir, tmpdir } from "node:os";
5
5
  import { createRequire } from "node:module";
6
6
  import path from "node:path";
7
- import { CODEX_IMAGE, CODEX_MAX_OUTPUT_BYTES, RESTRICTED_CODEX_ANALYSIS_IDENTITY, RESTRICTED_CODEX_ANALYSIS_MODELS, admitsRestrictedCodexConfig, admitsRestrictedCodexThread, codexRecord, restrictedCodexConfig, restrictedCodexFailure, restrictedCodexRequestError, restrictedCodexUsage } from "./restricted-codex-policy.js";
7
+ import { CODEX_IMAGE, CODEX_MAX_OUTPUT_BYTES, CODEX_MAX_REQUEST_BYTES, RESTRICTED_CODEX_ANALYSIS_IDENTITY, RESTRICTED_CODEX_ANALYSIS_MODELS, admitsRestrictedCodexConfig, admitsRestrictedCodexThread, codexRecord, restrictedCodexConfig, restrictedCodexFailure, restrictedCodexRequestError, restrictedCodexUsage } from "./restricted-codex-policy.js";
8
8
  import { RestrictedCodexDeadline, RestrictedCodexStop, RestrictedCodexTransport, closeOwnedCodexProcess, ownCodexProcess } from "./restricted-codex-transport.js";
9
9
  function childEnvironment(source, home, scratch) {
10
10
  const result = { HOME: home, CODEX_HOME: home, TMPDIR: scratch };
@@ -13,6 +13,26 @@ function childEnvironment(source, home, scratch) {
13
13
  result[key] = source[key];
14
14
  return result;
15
15
  }
16
+ function configArguments(overrides) {
17
+ return Object.entries(overrides).flatMap(([key, value]) => ["-c", `${key}=${JSON.stringify(value)}`]);
18
+ }
19
+ function validParticipant(options) {
20
+ if (!options)
21
+ return true;
22
+ const { tool } = options;
23
+ if ((options.authMode !== undefined && options.authMode !== "operator")
24
+ || typeof tool?.name !== "string" || !/^[A-Za-z][A-Za-z0-9_-]{0,63}$/.test(tool.name)
25
+ || typeof tool.description !== "string" || tool.description.length === 0 || tool.description.length > 4096
26
+ || !tool.inputSchema || typeof tool.inputSchema !== "object" || Array.isArray(tool.inputSchema)
27
+ || typeof tool.call !== "function")
28
+ return false;
29
+ try {
30
+ return Buffer.byteLength(JSON.stringify(tool.inputSchema)) <= 256 * 1024;
31
+ }
32
+ catch {
33
+ return false;
34
+ }
35
+ }
16
36
  async function isNativeExecutable(file, platform) {
17
37
  try {
18
38
  await access(file, constants.X_OK);
@@ -32,10 +52,22 @@ async function isNativeExecutable(file, platform) {
32
52
  return false;
33
53
  }
34
54
  }
55
+ /** Official npm launcher target map for the Unix hosts supported by this transport. */
56
+ export function restrictedCodexNpmTarget(platform, arch) {
57
+ if (platform === "linux" && arch === "x64")
58
+ return { triple: "x86_64-unknown-linux-musl", packageName: "codex-linux-x64" };
59
+ if (platform === "linux" && arch === "arm64")
60
+ return { triple: "aarch64-unknown-linux-musl", packageName: "codex-linux-arm64" };
61
+ if (platform === "darwin" && arch === "x64")
62
+ return { triple: "x86_64-apple-darwin", packageName: "codex-darwin-x64" };
63
+ if (platform === "darwin" && arch === "arm64")
64
+ return { triple: "aarch64-apple-darwin", packageName: "codex-darwin-arm64" };
65
+ return undefined;
66
+ }
35
67
  /** Resolve PATH without running a shell. The npm launcher is resolved to its
36
68
  * native optional package so cleanup owns the real app-server child. */
37
69
  async function resolveExecutable(options, env) {
38
- const platform = options.platform ?? process.platform;
70
+ const platform = options.platform ?? process.platform, arch = options.arch ?? process.arch;
39
71
  let selected = options.executable;
40
72
  if (selected === undefined) {
41
73
  for (const directory of (env.PATH ?? "").split(path.delimiter).filter(entry => path.isAbsolute(entry))) {
@@ -61,8 +93,10 @@ async function resolveExecutable(options, env) {
61
93
  return resolved;
62
94
  if (path.basename(resolved) === "codex.js" && path.basename(path.dirname(resolved)) === "bin") {
63
95
  const packageRoot = path.dirname(path.dirname(resolved));
64
- const triple = platform === "darwin" ? "aarch64-apple-darwin" : "x86_64-unknown-linux-musl";
65
- const nativePackage = platform === "darwin" ? "codex-darwin-arm64" : "codex-linux-x64";
96
+ const target = restrictedCodexNpmTarget(platform, arch);
97
+ if (!target)
98
+ throw new RestrictedCodexStop("codex_unavailable");
99
+ const { triple, packageName: nativePackage } = target;
66
100
  const candidates = [];
67
101
  try {
68
102
  // Match the npm launcher's resolution: optional packages may be hoisted or
@@ -112,7 +146,9 @@ async function checkVersion(file, env, cwd, spawnFn, deadline) {
112
146
  }
113
147
  }
114
148
  const rawCompactionTypes = ["compaction", "compaction_summary", "context_compaction"];
115
- const allowedRawItemTypes = ["message", "reasoning", ...rawCompactionTypes];
149
+ const analystRawItemTypes = ["message", "reasoning", ...rawCompactionTypes];
150
+ const participantRawItemTypes = [...analystRawItemTypes, "custom_tool_call", "custom_tool_call_output",
151
+ "function_call", "function_call_output"];
116
152
  const unclosedChildren = new Set();
117
153
  function retainUnclosedChild(closed) {
118
154
  unclosedChildren.add(closed);
@@ -162,19 +198,32 @@ function hasScopedIdentity(method, params, threadId, turnId) {
162
198
  && (turnId === undefined || params.turnId === turnId);
163
199
  return (params.threadId === undefined || params.threadId === threadId) && (params.turnId === undefined || params.turnId === turnId);
164
200
  }
165
- /** One private process and conversation per owner. Only completed turns may continue. */
201
+ function usageDelta(total, baseline) {
202
+ const delta = { input: total.input - baseline.input, output: total.output - baseline.output,
203
+ cachedInput: (total.cachedInput ?? 0) - (baseline.cachedInput ?? 0),
204
+ cacheWriteInput: (total.cacheWriteInput ?? 0) - (baseline.cacheWriteInput ?? 0) };
205
+ return Object.values(delta).every(value => Number.isSafeInteger(value) && value >= 0)
206
+ && delta.cachedInput + delta.cacheWriteInput <= delta.input ? delta : null;
207
+ }
166
208
  export function createRestrictedCodexSession(options = {}) {
167
209
  const platform = options.platform ?? process.platform, arch = options.arch ?? process.arch;
168
210
  const sourceEnv = options.env ?? process.env;
211
+ const participant = options.participant, operatorAuth = participant?.authMode === "operator";
212
+ const reasoningEffort = participant?.reasoningEffort ?? "low";
169
213
  const spawnFn = options.spawnFn ?? ((file, args, settings) => spawn(file, args, settings));
170
214
  let work, authLink, transport;
171
215
  let threadId, cwd = "", scratch = "";
172
216
  let identity;
173
217
  let previousUsage = { input: 0, output: 0, cachedInput: 0, cacheWriteInput: 0 };
218
+ let pendingUsage;
219
+ let pendingInferenceUsage;
220
+ let resolvedModel;
221
+ let authentication;
174
222
  let activeDeadline;
175
223
  let interrupt;
176
224
  let closed = false, cleanupTrusted = true;
177
225
  let pending, closing, disposing;
226
+ const toolCallIds = new Set();
178
227
  const dispose = () => {
179
228
  closed = true;
180
229
  return disposing ??= (async () => {
@@ -215,14 +264,21 @@ export function createRestrictedCodexSession(options = {}) {
215
264
  let turnId, earlyTurnId;
216
265
  let dispatched = false, usage = null;
217
266
  let completed = false, compacted = false;
267
+ let toolRequestPending = false;
218
268
  let latestUsage = null;
269
+ let inferenceUsage = participant ? [] : null;
270
+ const requestUsageBaseline = previousUsage;
219
271
  let generatedDeltaBytes = 0;
272
+ let selectedModel = identity?.model;
273
+ const allowedRawItemTypes = participant ? participantRawItemTypes : analystRawItemTypes;
220
274
  let outputItem;
221
275
  let result = restrictedCodexFailure("codex_process_failed");
222
276
  let phase = "startup";
223
277
  const early = [];
224
278
  let resolveTurn;
225
279
  const finished = new Promise(resolve => { resolveTurn = resolve; });
280
+ let resolveTurnReady;
281
+ const turnReady = new Promise(resolve => { resolveTurnReady = resolve; });
226
282
  const handleTurnEvent = (method, params) => {
227
283
  if (!hasScopedIdentity(method, params, threadId, turnId)) {
228
284
  deadline.stop("codex_protocol_error");
@@ -238,6 +294,14 @@ export function createRestrictedCodexSession(options = {}) {
238
294
  deadline.stop("codex_tool_call");
239
295
  return;
240
296
  }
297
+ if (item.type === "custom_tool_call" && item.name !== "exec") {
298
+ deadline.stop("codex_tool_call");
299
+ return;
300
+ }
301
+ if (item.type === "function_call" && item.name !== "wait") {
302
+ deadline.stop("codex_tool_call");
303
+ return;
304
+ }
241
305
  if (item.type === "message" && Array.isArray(item.content)
242
306
  && item.content.some(content => codexRecord(content).type === "refusal"))
243
307
  deadline.stop("refusal");
@@ -245,19 +309,30 @@ export function createRestrictedCodexSession(options = {}) {
245
309
  if (method === "thread/tokenUsage/updated") {
246
310
  const total = restrictedCodexUsage(params.tokenUsage);
247
311
  // App-server reports cumulative thread usage. Receipts must charge only this turn.
248
- if (total && previousUsage) {
249
- const delta = { input: total.input - previousUsage.input, output: total.output - previousUsage.output,
250
- cachedInput: (total.cachedInput ?? 0) - (previousUsage.cachedInput ?? 0),
251
- cacheWriteInput: (total.cacheWriteInput ?? 0) - (previousUsage.cacheWriteInput ?? 0) };
252
- usage = Object.values(delta).every(value => Number.isSafeInteger(value) && value >= 0)
253
- && delta.cachedInput + delta.cacheWriteInput <= delta.input ? delta : null;
312
+ usage = total && requestUsageBaseline ? usageDelta(total, requestUsageBaseline) : null;
313
+ if (inferenceUsage !== null) {
314
+ const inferenceDelta = total && (latestUsage ?? requestUsageBaseline)
315
+ ? usageDelta(total, (latestUsage ?? requestUsageBaseline)) : null;
316
+ if (!inferenceDelta)
317
+ inferenceUsage = null;
318
+ else if (Object.values(inferenceDelta).some(value => value > 0))
319
+ inferenceUsage.push(inferenceDelta);
254
320
  }
255
- else
256
- usage = null;
321
+ pendingUsage = usage ?? undefined;
322
+ pendingInferenceUsage = inferenceUsage?.length ? inferenceUsage.map(item => ({ ...item })) : undefined;
257
323
  latestUsage = total;
258
324
  }
259
325
  if (method === "item/started" || method === "item/completed") {
260
- if (!["userMessage", "agentMessage", "reasoning", "contextCompaction"].includes(String(item.type))) {
326
+ const allowedItems = participant
327
+ ? ["userMessage", "agentMessage", "reasoning", "contextCompaction", "dynamicToolCall"]
328
+ : ["userMessage", "agentMessage", "reasoning", "contextCompaction"];
329
+ if (!allowedItems.includes(String(item.type))) {
330
+ deadline.stop("codex_tool_call");
331
+ return;
332
+ }
333
+ if (item.type === "dynamicToolCall" && (item.tool !== participant?.tool.name || item.namespace !== null
334
+ || (method === "item/started" && item.status !== "inProgress")
335
+ || (method === "item/completed" && (item.status !== "completed" || item.success !== true)))) {
261
336
  deadline.stop("codex_tool_call");
262
337
  return;
263
338
  }
@@ -279,7 +354,7 @@ export function createRestrictedCodexSession(options = {}) {
279
354
  }
280
355
  if (method === "turn/completed") {
281
356
  const turn = codexRecord(params.turn);
282
- if (turn.id !== turnId || completed) {
357
+ if (turn.id !== turnId || completed || toolRequestPending) {
283
358
  deadline.stop("codex_protocol_error");
284
359
  return;
285
360
  }
@@ -293,6 +368,8 @@ export function createRestrictedCodexSession(options = {}) {
293
368
  return;
294
369
  }
295
370
  try {
371
+ pendingUsage = undefined;
372
+ pendingInferenceUsage = undefined;
296
373
  resolveTurn({ status: "completed", output: JSON.parse(outputItem.text), usage,
297
374
  usageComplete: usage !== null && !compacted, dispatched: true, errorCode: null });
298
375
  }
@@ -322,6 +399,8 @@ export function createRestrictedCodexSession(options = {}) {
322
399
  const item = codexRecord(params.item);
323
400
  // Tool requests must fail even if the turn-start acknowledgment is lost.
324
401
  if ((method === "rawResponseItem/completed" && !allowedRawItemTypes.includes(String(item.type)))
402
+ || (method === "rawResponseItem/completed" && item.type === "custom_tool_call" && item.name !== "exec")
403
+ || (method === "rawResponseItem/completed" && item.type === "function_call" && item.name !== "wait")
325
404
  || (["item/started", "item/completed"].includes(method) && item.type === "agentMessage"
326
405
  && (item.delivery === "async" || (Array.isArray(item.questions) && item.questions.length > 0)))) {
327
406
  deadline.stop("codex_tool_call");
@@ -341,9 +420,36 @@ export function createRestrictedCodexSession(options = {}) {
341
420
  else
342
421
  handleTurnEvent(method, params);
343
422
  };
423
+ const onRequest = async (method, params) => {
424
+ const callId = params.callId;
425
+ if (!participant || method !== "item/tool/call" || params.threadId !== threadId || typeof params.turnId !== "string"
426
+ || params.turnId.length === 0 || params.turnId.length > 200 || params.namespace !== null
427
+ || params.tool !== participant.tool.name || typeof callId !== "string"
428
+ || callId.length === 0 || callId.length > 200 || toolCallIds.has(callId) || toolRequestPending)
429
+ throw new RestrictedCodexStop("codex_tool_call");
430
+ // Mark the request outstanding before waiting for a same-chunk turn/start
431
+ // acknowledgment, so an early completion can never be accepted.
432
+ toolRequestPending = true;
433
+ const activeTurnId = turnId ?? earlyTurnId ?? await deadline.wait(turnReady);
434
+ if (params.turnId !== activeTurnId)
435
+ throw new RestrictedCodexStop("codex_tool_call");
436
+ toolCallIds.add(callId);
437
+ deadline.pause();
438
+ const text = await deadline.wait(participant.tool.call(params.arguments));
439
+ if (typeof text !== "string" || Buffer.byteLength(text) > CODEX_MAX_REQUEST_BYTES)
440
+ throw new RestrictedCodexStop("invalid_response");
441
+ try {
442
+ JSON.parse(text);
443
+ }
444
+ catch {
445
+ throw new RestrictedCodexStop("invalid_response");
446
+ }
447
+ return { success: true, contentItems: [{ type: "inputText", text }] };
448
+ };
344
449
  try {
450
+ pendingUsage = undefined;
345
451
  deadline.check();
346
- const frameLimit = Math.max(CODEX_MAX_OUTPUT_BYTES, Buffer.byteLength(JSON.stringify({ instructions: request.instructions,
452
+ const frameLimit = Math.max(participant ? CODEX_MAX_REQUEST_BYTES : CODEX_MAX_OUTPUT_BYTES, Buffer.byteLength(JSON.stringify({ instructions: request.instructions,
347
453
  evidence: request.evidence, images: request.images, schema: request.schema })) + 1024 * 1024);
348
454
  if (!transport) {
349
455
  const file = await resolveExecutable(options, sourceEnv);
@@ -358,69 +464,101 @@ export function createRestrictedCodexSession(options = {}) {
358
464
  await mkdir(directory, { mode: 0o700 });
359
465
  const env = childEnvironment(sourceEnv, home, scratch);
360
466
  await checkVersion(file, env, cwd, spawnFn, deadline);
361
- const config = restrictedCodexConfig(request.model), configPath = path.join(home, "config.toml");
362
- await writeFile(configPath, config.toml, { mode: 0o600, flag: "wx" });
363
- const authHome = options.authHome ?? sourceEnv.CODEX_HOME ?? path.join(sourceEnv.HOME ?? homedir(), ".codex");
364
- if (!path.isAbsolute(authHome))
365
- throw new RestrictedCodexStop("codex_unsupported_auth");
366
- let authFile;
367
- try {
368
- authFile = await realpath(path.join(authHome, "auth.json"));
369
- if (!(await stat(authFile)).isFile())
370
- throw new Error();
371
- }
372
- catch {
373
- throw new RestrictedCodexStop("codex_login_required");
467
+ const configMode = { participantCodeMode: participant !== undefined, reasoningEffort, operatorAuth };
468
+ const config = restrictedCodexConfig(request.model, configMode), configPath = path.join(home, "config.toml");
469
+ if (!operatorAuth) {
470
+ await writeFile(configPath, config.toml, { mode: 0o600, flag: "wx" });
471
+ const authHome = options.authHome ?? sourceEnv.CODEX_HOME ?? path.join(sourceEnv.HOME ?? homedir(), ".codex");
472
+ if (!path.isAbsolute(authHome))
473
+ throw new RestrictedCodexStop("codex_unsupported_auth");
474
+ let authFile;
475
+ try {
476
+ authFile = await realpath(path.join(authHome, "auth.json"));
477
+ if (!(await stat(authFile)).isFile())
478
+ throw new Error();
479
+ }
480
+ catch {
481
+ throw new RestrictedCodexStop("codex_login_required");
482
+ }
483
+ deadline.check();
484
+ authLink = path.join(home, "auth.json");
485
+ await symlink(authFile, authLink);
374
486
  }
375
487
  deadline.check();
376
- authLink = path.join(home, "auth.json");
377
- await symlink(authFile, authLink);
378
- deadline.check();
379
- const owned = ownCodexProcess(spawnFn(file, ["app-server", "--strict-config"], {
380
- cwd, env, detached: false, stdio: ["pipe", "pipe", "pipe"]
488
+ const appServerArgs = ["app-server", "--strict-config", ...(operatorAuth ? configArguments(config.overrides) : [])];
489
+ const owned = ownCodexProcess(spawnFn(file, appServerArgs, {
490
+ cwd, env: operatorAuth ? { ...sourceEnv } : env, detached: false, stdio: ["pipe", "pipe", "pipe"]
381
491
  }));
382
492
  transport = new RestrictedCodexTransport(owned, deadline, frameLimit);
383
493
  transport.onNotification = onNotification;
494
+ transport.onRequestComplete = () => { toolRequestPending = false; };
384
495
  phase = "initialize";
385
496
  const initialize = await transport.rpc("initialize", {
386
497
  clientInfo: { name: "humanish_analysis", version: "1.0.0" }, capabilities: { experimentalApi: true }
387
498
  });
388
499
  if (typeof initialize.userAgent !== "string" || !initialize.userAgent.includes(`/0.154.0 `)
389
- || initialize.codexHome !== home || initialize.platformOs !== (platform === "darwin" ? "macos" : "linux") || initialize.platformFamily !== "unix")
500
+ || (!operatorAuth && initialize.codexHome !== home)
501
+ || initialize.platformOs !== (platform === "darwin" ? "macos" : "linux") || initialize.platformFamily !== "unix")
390
502
  throw new RestrictedCodexStop("codex_unsupported_version");
391
503
  transport.notify("initialized", {});
392
504
  phase = "config/read";
393
505
  const effective = await transport.rpc("config/read", { includeLayers: true, cwd });
394
- if (!admitsRestrictedCodexConfig(effective, configPath, request.model))
506
+ if (!admitsRestrictedCodexConfig(effective, configPath, request.model, configMode))
395
507
  throw new RestrictedCodexStop("codex_unsafe_configuration");
508
+ const configuredModel = codexRecord(effective.config).model;
509
+ selectedModel = typeof configuredModel === "string" ? configuredModel : undefined;
396
510
  phase = "account/read";
397
511
  const account = await transport.rpc("account/read", { refreshToken: false });
398
512
  if (account.account === null)
399
513
  throw new RestrictedCodexStop("codex_login_required");
400
- if (codexRecord(account.account).type !== "chatgpt" || account.requiresOpenaiAuth !== true)
514
+ const accountType = codexRecord(account.account).type;
515
+ if ((!operatorAuth && accountType !== "chatgpt") || (operatorAuth && !["chatgpt", "apiKey"].includes(String(accountType)))
516
+ || account.requiresOpenaiAuth !== true)
401
517
  throw new RestrictedCodexStop("codex_unsupported_auth");
518
+ authentication = accountType === "apiKey" ? "api-key" : "chatgpt-account";
519
+ const mcpServers = codexRecord(codexRecord(effective.config).mcp_servers);
520
+ const mcpNames = Object.keys(mcpServers);
521
+ // Request overrides are split literally on dots by Codex. Limit names to
522
+ // TOML bare-key characters so each override targets the inherited entry.
523
+ if (mcpNames.length > 100 || mcpNames.some(name => !/^[A-Za-z0-9_-]{1,200}$/.test(name)))
524
+ throw new RestrictedCodexStop("codex_unsafe_configuration");
525
+ const threadConfig = { ...config.overrides };
526
+ for (const name of mcpNames)
527
+ threadConfig[`mcp_servers.${name}.enabled`] = false;
402
528
  phase = "thread/start";
403
529
  const thread = await transport.rpc("thread/start", { cwd, ephemeral: true, experimentalRawEvents: true,
404
- approvalPolicy: "never", sandbox: "read-only", model: request.model, modelProvider: "openai", allowProviderModelFallback: false,
405
- environments: [], runtimeWorkspaceRoots: [], dynamicTools: [], baseInstructions: request.instructions, config: config.overrides });
406
- if (!admitsRestrictedCodexThread(thread, request.model, cwd))
530
+ approvalPolicy: "never", sandbox: "read-only", model: selectedModel, modelProvider: "openai", allowProviderModelFallback: false,
531
+ environments: [], runtimeWorkspaceRoots: [], dynamicTools: participant ? [{ type: "function", name: participant.tool.name,
532
+ description: participant.tool.description, inputSchema: participant.tool.inputSchema }] : [],
533
+ baseInstructions: request.instructions, config: threadConfig });
534
+ const returnedModel = codexRecord(thread.thread).model;
535
+ if (typeof returnedModel !== "string" || returnedModel.length === 0 || returnedModel.length > 200
536
+ || (selectedModel !== undefined && returnedModel !== selectedModel)
537
+ || !admitsRestrictedCodexThread(thread, returnedModel, cwd, reasoningEffort))
407
538
  throw new RestrictedCodexStop("codex_unsafe_configuration");
539
+ selectedModel = returnedModel;
540
+ resolvedModel = returnedModel;
408
541
  threadId = String(codexRecord(thread.thread).id);
409
- phase = "mcpServerStatus/list";
410
- const mcp = await transport.rpc("mcpServerStatus/list", { limit: 100 });
411
- if (!Array.isArray(mcp.data) || mcp.data.length !== 0 || mcp.nextCursor !== null)
412
- throw new RestrictedCodexStop("codex_unsafe_configuration");
413
- identity = { model: request.model, instructions: request.instructions };
542
+ if (!operatorAuth) {
543
+ phase = "mcpServerStatus/list";
544
+ const mcp = await transport.rpc("mcpServerStatus/list", { limit: 100 });
545
+ if (!Array.isArray(mcp.data) || mcp.data.length !== 0 || mcp.nextCursor !== null)
546
+ throw new RestrictedCodexStop("codex_unsafe_configuration");
547
+ }
548
+ identity = { requestedModel: request.model, model: selectedModel, instructions: request.instructions };
414
549
  }
415
550
  else {
416
551
  transport.beginRequest(deadline, frameLimit);
417
552
  transport.onNotification = onNotification;
553
+ transport.onRequestComplete = () => { toolRequestPending = false; };
418
554
  }
419
555
  if (readinessOnly) {
420
556
  result = { status: "completed", output: null, usage: null, usageComplete: false, dispatched: false, errorCode: null };
421
557
  }
422
558
  else {
423
559
  phase = "turn/start";
560
+ if (participant)
561
+ transport.onRequest = onRequest;
424
562
  const input = [{ type: "text", text: request.evidence, text_elements: [] }];
425
563
  for (const [index, image] of request.images.entries()) {
426
564
  deadline.check();
@@ -433,12 +571,13 @@ export function createRestrictedCodexSession(options = {}) {
433
571
  // Even a lost acknowledgment may have dispatched the request. Never claim zero cost.
434
572
  dispatched = true;
435
573
  const turn = await transport.rpc("turn/start", { threadId, cwd, approvalPolicy: "never", sandboxPolicy: { type: "readOnly" },
436
- environments: [], runtimeWorkspaceRoots: [], effort: "low", model: request.model, outputSchema: request.schema, input });
574
+ environments: [], runtimeWorkspaceRoots: [], effort: reasoningEffort, model: selectedModel, outputSchema: request.schema, input });
437
575
  const returnedTurnId = codexRecord(turn.turn).id;
438
576
  if (typeof returnedTurnId !== "string" || returnedTurnId.length === 0 || returnedTurnId.length > 200
439
577
  || (earlyTurnId !== undefined && earlyTurnId !== returnedTurnId))
440
578
  throw new RestrictedCodexStop("codex_protocol_error");
441
579
  turnId = returnedTurnId;
580
+ resolveTurnReady(turnId);
442
581
  interrupt = { threadId: threadId, turnId };
443
582
  for (const event of early)
444
583
  handleTurnEvent(event.method, event.params);
@@ -455,10 +594,16 @@ export function createRestrictedCodexSession(options = {}) {
455
594
  result = { ...restrictedCodexFailure(code === "codex_cleanup_failed" ? code : deadline.code ?? code, dispatched, usage), failurePhase: phase };
456
595
  }
457
596
  finally {
597
+ pendingUsage = undefined;
598
+ pendingInferenceUsage = undefined;
458
599
  deadline.close();
459
600
  activeDeadline = undefined;
460
601
  if (transport)
461
602
  transport.onNotification = () => undefined;
603
+ if (transport)
604
+ transport.onRequest = undefined;
605
+ if (transport)
606
+ transport.onRequestComplete = undefined;
462
607
  if (result.errorCode !== null) {
463
608
  if (result.errorCode === "codex_cleanup_failed")
464
609
  cleanupTrusted = false;
@@ -466,18 +611,30 @@ export function createRestrictedCodexSession(options = {}) {
466
611
  result = { ...restrictedCodexFailure("codex_cleanup_failed", dispatched, usage), failurePhase: "cleanup" };
467
612
  }
468
613
  }
469
- return result.errorCode !== null && result.failurePhase === undefined ? { ...result, failurePhase: phase } : result;
614
+ if (result.errorCode !== null && result.failurePhase === undefined)
615
+ result = { ...result, failurePhase: phase };
616
+ if (participant && usage !== null && inferenceUsage !== null && inferenceUsage.length > 0)
617
+ result = { ...result, inferenceUsage: inferenceUsage.map(item => ({ ...item })) };
618
+ return result;
470
619
  }
471
620
  return {
621
+ get pendingUsage() { return pendingUsage; },
622
+ get pendingInferenceUsage() { return pendingInferenceUsage?.map(item => ({ ...item })); },
623
+ get resolvedModel() { return resolvedModel; },
624
+ get authentication() { return authentication; },
472
625
  run(request, readinessOnly = false) {
473
- const error = restrictedCodexRequestError(request);
626
+ const error = restrictedCodexRequestError(request, operatorAuth);
474
627
  if (error)
475
628
  return Promise.resolve(restrictedCodexFailure(error));
476
- if (closed || (identity && (identity.model !== request.model || identity.instructions !== request.instructions)))
629
+ if (!validParticipant(participant))
630
+ return Promise.resolve(restrictedCodexFailure("invalid_request"));
631
+ if (closed || (identity && (identity.requestedModel !== request.model || identity.instructions !== request.instructions)))
477
632
  return Promise.resolve(restrictedCodexFailure("invalid_request"));
478
633
  if (pending || unclosedChildren.size)
479
634
  return Promise.resolve(restrictedCodexFailure("codex_busy"));
480
- if (!(platform === "linux" && arch === "x64") && !(platform === "darwin" && arch === "arm64"))
635
+ const supportedPlatform = operatorAuth ? restrictedCodexNpmTarget(platform, arch) !== undefined
636
+ : (platform === "linux" && arch === "x64") || (platform === "darwin" && arch === "arm64");
637
+ if (!supportedPlatform)
481
638
  return Promise.resolve(restrictedCodexFailure("codex_unsupported_platform"));
482
639
  const task = execute(request, readinessOnly);
483
640
  pending = task;
@@ -1 +1 @@
1
- {"version":3,"file":"restricted-codex-session.js","sourceRoot":"","sources":["../src/restricted-codex-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"restricted-codex-session.js","sourceRoot":"","sources":["../src/restricted-codex-session.ts"],"names":[],"mappings":"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"}