@openclaw/codex 2026.5.24-beta.1 → 2026.5.25-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{client-1sSy4p3z.js → client-SrtuTTVa.js} +10 -3
- package/dist/{client-factory-Bk6i4FnW.js → client-factory-A7DQkSLq.js} +1 -1
- package/dist/{command-handlers-CcTABuem.js → command-handlers-CLtPT37L.js} +10 -23
- package/dist/compact-acCua7zr.js +155 -0
- package/dist/{computer-use-Hdq1WgTA.js → computer-use-CVfE2Vfb.js} +2 -2
- package/dist/{config-DDMrwfJl.js → config-D6TUuyo2.js} +6 -3
- package/dist/{node-cli-sessions-9CAqnIaA.js → conversation-binding-B-GevkEb.js} +426 -434
- package/dist/{dynamic-tools-Bq717oJR.js → dynamic-tools-BXAE1U1-.js} +20 -11
- package/dist/harness.js +5 -5
- package/dist/index.js +451 -17
- package/dist/media-understanding-provider.js +7 -5
- package/dist/{models-DtGLkqMP.js → models-CC2IusQs.js} +3 -3
- package/dist/{notification-correlation-qKY_sgga.js → notification-correlation-D7tJW3FW.js} +26 -11
- package/dist/provider.js +3 -3
- package/dist/{request-D93E78SA.js → request-BO0z3vA8.js} +3 -3
- package/dist/{run-attempt-CT1N__qp.js → run-attempt-BjoI3hUJ.js} +279 -230
- package/dist/{session-binding-Bw_mfIW2.js → session-binding-CwNOIDP2.js} +1 -1
- package/dist/{shared-client-CFCUGEVs.js → shared-client-CZP1DjaN.js} +3 -4
- package/dist/{side-question-CYFMTA1O.js → side-question-Cb4COOQ9.js} +16 -11
- package/dist/test-api.js +3 -3
- package/dist/{thread-lifecycle-DGoaguJh.js → thread-lifecycle-CXMd9UgJ.js} +10 -12
- package/dist/{vision-tools-DOnxzH2y.js → vision-tools-CETeQgze.js} +16 -4
- package/npm-shrinkwrap.json +225 -238
- package/package.json +7 -7
- package/dist/compact-DnTgL6UT.js +0 -475
- package/dist/protocol-oeJQu4rs.js +0 -9
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { l as resolveCodexAppServerRuntimeOptions } from "./config-
|
|
2
|
-
import { n as isRpcResponse } from "./protocol-oeJQu4rs.js";
|
|
1
|
+
import { l as resolveCodexAppServerRuntimeOptions } from "./config-D6TUuyo2.js";
|
|
3
2
|
import { materializeWindowsSpawnProgram, resolveWindowsSpawnProgram } from "openclaw/plugin-sdk/windows-spawn";
|
|
4
3
|
import { OPENCLAW_VERSION, embeddedAgentLog } from "openclaw/plugin-sdk/agent-harness-runtime";
|
|
5
4
|
import { createInterface } from "node:readline";
|
|
@@ -7,6 +6,14 @@ import { spawn } from "node:child_process";
|
|
|
7
6
|
import { EventEmitter } from "node:events";
|
|
8
7
|
import { PassThrough, Writable } from "node:stream";
|
|
9
8
|
import WebSocket from "ws";
|
|
9
|
+
//#region extensions/codex/src/app-server/protocol.ts
|
|
10
|
+
function isJsonObject$1(value) {
|
|
11
|
+
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
12
|
+
}
|
|
13
|
+
function isRpcResponse(message) {
|
|
14
|
+
return "id" in message && !("method" in message);
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
10
17
|
//#region extensions/codex/src/app-server/transport-stdio.ts
|
|
11
18
|
const UNSAFE_ENVIRONMENT_KEYS = new Set([
|
|
12
19
|
"__proto__",
|
|
@@ -648,4 +655,4 @@ function formatExitValue(value) {
|
|
|
648
655
|
return "unknown";
|
|
649
656
|
}
|
|
650
657
|
//#endregion
|
|
651
|
-
export { isCodexAppServerConnectionClosedError as a, resolveCodexAppServerSpawnEnv as c, isCodexAppServerApprovalRequest as i, CodexAppServerRpcError as n, MANAGED_CODEX_APP_SERVER_PACKAGE as o, compareCodexAppServerVersions as r, MIN_CODEX_SANDBOX_EXEC_SERVER_APP_SERVER_VERSION as s, CodexAppServerClient as t };
|
|
658
|
+
export { isCodexAppServerConnectionClosedError as a, resolveCodexAppServerSpawnEnv as c, isCodexAppServerApprovalRequest as i, isJsonObject$1 as l, CodexAppServerRpcError as n, MANAGED_CODEX_APP_SERVER_PACKAGE as o, compareCodexAppServerVersions as r, MIN_CODEX_SANDBOX_EXEC_SERVER_APP_SERVER_VERSION as s, CodexAppServerClient as t };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//#region extensions/codex/src/app-server/client-factory.ts
|
|
2
|
-
const defaultCodexAppServerClientFactory = (startOptions, authProfileId, agentDir, config) => import("./shared-client-
|
|
2
|
+
const defaultCodexAppServerClientFactory = (startOptions, authProfileId, agentDir, config) => import("./shared-client-CZP1DjaN.js").then((n) => n.a).then(({ getSharedCodexAppServerClient }) => getSharedCodexAppServerClient({
|
|
3
3
|
startOptions,
|
|
4
4
|
authProfileId,
|
|
5
5
|
agentDir,
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { a as isCodexFastServiceTier, l as resolveCodexAppServerRuntimeOptions } from "./config-
|
|
2
|
-
import { n as listCodexAppServerModels, t as listAllCodexAppServerModels } from "./models-
|
|
3
|
-
import {
|
|
4
|
-
import { i as readCodexAppServerBinding, o as writeCodexAppServerBinding, t as clearCodexAppServerBinding } from "./session-binding-
|
|
5
|
-
import { i as describeControlFailure, r as CODEX_CONTROL_METHODS, t as requestCodexAppServerJson } from "./request-
|
|
6
|
-
import { _ as summarizeCodexAccountUsage, a as buildHelp, c as formatCodexStatus, d as formatModels, f as formatThreads, l as formatComputerUseStatus, o as formatAccount, p as readString$1, s as formatCodexDisplayText, u as formatList } from "./notification-correlation-
|
|
1
|
+
import { a as isCodexFastServiceTier, l as resolveCodexAppServerRuntimeOptions } from "./config-D6TUuyo2.js";
|
|
2
|
+
import { n as listCodexAppServerModels, t as listAllCodexAppServerModels } from "./models-CC2IusQs.js";
|
|
3
|
+
import { l as isJsonObject } from "./client-SrtuTTVa.js";
|
|
4
|
+
import { i as readCodexAppServerBinding, o as writeCodexAppServerBinding, t as clearCodexAppServerBinding } from "./session-binding-CwNOIDP2.js";
|
|
5
|
+
import { i as describeControlFailure, r as CODEX_CONTROL_METHODS, t as requestCodexAppServerJson } from "./request-BO0z3vA8.js";
|
|
6
|
+
import { _ as summarizeCodexAccountUsage, a as buildHelp, c as formatCodexStatus, d as formatModels, f as formatThreads, l as formatComputerUseStatus, o as formatAccount, p as readString$1, s as formatCodexDisplayText, u as formatList } from "./notification-correlation-D7tJW3FW.js";
|
|
7
7
|
import { n as resolveCodexNativeExecutionBlock, r as resolveCodexNativeSandboxBlock } from "./sandbox-guard-CTnEWuor.js";
|
|
8
|
-
import { _ as steerCodexConversationTurn, b as readCodexConversationBindingData, d as parseCodexFastModeArg, f as parseCodexPermissionsModeArg, g as setCodexConversationPermissions, h as setCodexConversationModel,
|
|
9
|
-
import { n as installCodexComputerUse, r as readCodexComputerUseStatus } from "./computer-use-
|
|
8
|
+
import { _ as steerCodexConversationTurn, b as readCodexConversationBindingData, d as parseCodexFastModeArg, f as parseCodexPermissionsModeArg, g as setCodexConversationPermissions, h as setCodexConversationModel, m as setCodexConversationFastMode, o as formatCodexCliSessions, p as readCodexConversationActiveTurn, r as startCodexConversationThread, u as formatPermissionsMode, v as stopCodexConversationTurn, x as resolveCodexDefaultWorkspaceDir, y as createCodexCliNodeConversationBindingData } from "./conversation-binding-B-GevkEb.js";
|
|
9
|
+
import { n as installCodexComputerUse, r as readCodexComputerUseStatus } from "./computer-use-CVfE2Vfb.js";
|
|
10
10
|
import { n as rememberCodexRateLimits } from "./rate-limit-cache-N66I-Rd7.js";
|
|
11
11
|
import crypto from "node:crypto";
|
|
12
|
+
import { normalizeOptionalString, normalizeUniqueStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
12
13
|
import { ensureAuthProfileStore, findNormalizedProviderValue, resolveAgentDir, resolveAuthProfileEligibility, resolveAuthProfileOrder, resolveDefaultAgentDir, resolveProfileUnusableUntilForDisplay, resolveSessionAgentIds } from "openclaw/plugin-sdk/agent-runtime";
|
|
13
14
|
//#region extensions/codex/src/command-account.ts
|
|
14
15
|
const OPENAI_PROVIDER_ID = "openai";
|
|
@@ -74,7 +75,7 @@ async function readCodexAccountAuthOverview(params) {
|
|
|
74
75
|
function resolveDisplayAuthOrder(params) {
|
|
75
76
|
const codexOrder = resolveOrder(params.store.order, OPENAI_CODEX_PROVIDER_ID) ?? resolveOrder(params.config?.auth?.order, OPENAI_CODEX_PROVIDER_ID);
|
|
76
77
|
if (codexOrder && codexOrder.length > 0) return {
|
|
77
|
-
order:
|
|
78
|
+
order: normalizeUniqueStringEntries(codexOrder),
|
|
78
79
|
explicit: true
|
|
79
80
|
};
|
|
80
81
|
return {
|
|
@@ -302,17 +303,6 @@ function formatRelativeReset(untilMs, nowMs) {
|
|
|
302
303
|
const days = Math.ceil(durationMs / dayMs);
|
|
303
304
|
return `in ${days} ${days === 1 ? "day" : "days"}`;
|
|
304
305
|
}
|
|
305
|
-
function dedupe(values) {
|
|
306
|
-
const seen = /* @__PURE__ */ new Set();
|
|
307
|
-
const result = [];
|
|
308
|
-
for (const value of values) {
|
|
309
|
-
const trimmed = value.trim();
|
|
310
|
-
if (!trimmed || seen.has(trimmed)) continue;
|
|
311
|
-
seen.add(trimmed);
|
|
312
|
-
result.push(trimmed);
|
|
313
|
-
}
|
|
314
|
-
return result;
|
|
315
|
-
}
|
|
316
306
|
//#endregion
|
|
317
307
|
//#region extensions/codex/src/command-plugins-management.ts
|
|
318
308
|
const POLICY_REFRESH_HINT = "New Codex conversations pick this up automatically. Use /new or /reset to refresh the current one.";
|
|
@@ -1607,8 +1597,5 @@ function normalizeComputerUseStringOverrides(overrides) {
|
|
|
1607
1597
|
if (mcpServerName) normalized.mcpServerName = mcpServerName;
|
|
1608
1598
|
return normalized;
|
|
1609
1599
|
}
|
|
1610
|
-
function normalizeOptionalString(value) {
|
|
1611
|
-
return value?.trim() || void 0;
|
|
1612
|
-
}
|
|
1613
1600
|
//#endregion
|
|
1614
1601
|
export { handleCodexSubcommand };
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { t as defaultCodexAppServerClientFactory } from "./client-factory-A7DQkSLq.js";
|
|
2
|
+
import { l as resolveCodexAppServerRuntimeOptions } from "./config-D6TUuyo2.js";
|
|
3
|
+
import { i as readCodexAppServerBinding } from "./session-binding-CwNOIDP2.js";
|
|
4
|
+
import { n as resolveCodexNativeExecutionBlock } from "./sandbox-guard-CTnEWuor.js";
|
|
5
|
+
import { asOptionalRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
6
|
+
import { embeddedAgentLog } from "openclaw/plugin-sdk/agent-harness-runtime";
|
|
7
|
+
//#region extensions/codex/src/app-server/compact.ts
|
|
8
|
+
const warnedIgnoredCompactionOverrides = /* @__PURE__ */ new Set();
|
|
9
|
+
async function maybeCompactCodexAppServerSession(params, options = {}) {
|
|
10
|
+
warnIfIgnoringOpenClawCompactionOverrides(params);
|
|
11
|
+
return compactCodexNativeThread(params, options);
|
|
12
|
+
}
|
|
13
|
+
function warnIfIgnoringOpenClawCompactionOverrides(params) {
|
|
14
|
+
const ignoredConfig = readIgnoredCompactionOverridePaths(params);
|
|
15
|
+
if (ignoredConfig.length === 0) return;
|
|
16
|
+
const warningKey = ignoredConfig.join("\0");
|
|
17
|
+
if (warnedIgnoredCompactionOverrides.has(warningKey)) return;
|
|
18
|
+
warnedIgnoredCompactionOverrides.add(warningKey);
|
|
19
|
+
embeddedAgentLog.warn("ignoring OpenClaw compaction overrides for Codex app-server compaction; Codex uses native server-side compaction", {
|
|
20
|
+
sessionId: params.sessionId,
|
|
21
|
+
sessionKey: params.sessionKey,
|
|
22
|
+
ignoredConfig
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
function readIgnoredCompactionOverridePaths(params) {
|
|
26
|
+
const ignored = /* @__PURE__ */ new Set();
|
|
27
|
+
for (const entry of readCompactionOverrideEntries(params)) {
|
|
28
|
+
const localProvider = typeof entry.record.provider === "string" ? entry.record.provider.trim() : "";
|
|
29
|
+
const inheritedProvider = !localProvider && typeof entry.inheritedRecord?.provider === "string" ? entry.inheritedRecord.provider.trim() : "";
|
|
30
|
+
const providerPath = localProvider ? `${entry.path}.compaction.provider` : inheritedProvider && entry.inheritedPath ? `${entry.inheritedPath}.compaction.provider` : void 0;
|
|
31
|
+
if (typeof entry.record.model === "string" && entry.record.model.trim()) ignored.add(`${entry.path}.compaction.model`);
|
|
32
|
+
if (providerPath) ignored.add(providerPath);
|
|
33
|
+
}
|
|
34
|
+
return [...ignored];
|
|
35
|
+
}
|
|
36
|
+
function readCompactionOverrideEntries(params) {
|
|
37
|
+
const entries = [];
|
|
38
|
+
const defaultCompaction = asOptionalRecord(asOptionalRecord(params.config?.agents)?.defaults)?.compaction;
|
|
39
|
+
const defaultRecord = asOptionalRecord(defaultCompaction);
|
|
40
|
+
if (defaultRecord) entries.push({
|
|
41
|
+
path: "agents.defaults",
|
|
42
|
+
record: defaultRecord
|
|
43
|
+
});
|
|
44
|
+
const agentId = readAgentIdFromSessionKey(params.sessionKey ?? params.sandboxSessionKey);
|
|
45
|
+
if (!agentId) return entries;
|
|
46
|
+
const agentCompaction = asOptionalRecord((Array.isArray(params.config?.agents?.list) ? params.config.agents.list : []).find((agent) => {
|
|
47
|
+
return (typeof agent?.id === "string" ? agent.id.trim().toLowerCase() : "") === agentId;
|
|
48
|
+
}))?.compaction;
|
|
49
|
+
const agentRecord = asOptionalRecord(agentCompaction);
|
|
50
|
+
if (agentRecord) entries.push({
|
|
51
|
+
path: `agents.list.${agentId}`,
|
|
52
|
+
record: agentRecord,
|
|
53
|
+
inheritedRecord: defaultRecord,
|
|
54
|
+
inheritedPath: "agents.defaults"
|
|
55
|
+
});
|
|
56
|
+
return entries;
|
|
57
|
+
}
|
|
58
|
+
function readAgentIdFromSessionKey(sessionKey) {
|
|
59
|
+
const parts = sessionKey?.trim().toLowerCase().split(":").filter(Boolean) ?? [];
|
|
60
|
+
if (parts.length < 3 || parts[0] !== "agent") return;
|
|
61
|
+
return parts[1]?.trim() || void 0;
|
|
62
|
+
}
|
|
63
|
+
async function compactCodexNativeThread(params, options = {}) {
|
|
64
|
+
const nativeExecutionBlock = resolveCodexNativeExecutionBlock({
|
|
65
|
+
config: params.config,
|
|
66
|
+
sessionKey: params.sandboxSessionKey ?? params.sessionKey,
|
|
67
|
+
sessionId: params.sessionId,
|
|
68
|
+
surface: "native compaction"
|
|
69
|
+
});
|
|
70
|
+
if (nativeExecutionBlock) return {
|
|
71
|
+
ok: false,
|
|
72
|
+
compacted: false,
|
|
73
|
+
reason: nativeExecutionBlock
|
|
74
|
+
};
|
|
75
|
+
const appServer = resolveCodexAppServerRuntimeOptions({ pluginConfig: options.pluginConfig });
|
|
76
|
+
const binding = await readCodexAppServerBinding(params.sessionFile, { config: params.config });
|
|
77
|
+
if (!binding?.threadId) return failedCodexThreadBindingCompactionResult(params, {
|
|
78
|
+
reason: "no codex app-server thread binding",
|
|
79
|
+
recovery: "missing_thread_binding"
|
|
80
|
+
});
|
|
81
|
+
const requestedAuthProfileId = params.authProfileId?.trim() || void 0;
|
|
82
|
+
if (requestedAuthProfileId && binding.authProfileId && binding.authProfileId !== requestedAuthProfileId) return {
|
|
83
|
+
ok: false,
|
|
84
|
+
compacted: false,
|
|
85
|
+
reason: "auth profile mismatch for session binding"
|
|
86
|
+
};
|
|
87
|
+
const client = await (options.clientFactory ?? defaultCodexAppServerClientFactory)(appServer.start, requestedAuthProfileId ?? binding.authProfileId, params.agentDir, params.config);
|
|
88
|
+
try {
|
|
89
|
+
await client.request("thread/compact/start", { threadId: binding.threadId });
|
|
90
|
+
embeddedAgentLog.info("started codex app-server compaction", {
|
|
91
|
+
sessionId: params.sessionId,
|
|
92
|
+
threadId: binding.threadId
|
|
93
|
+
});
|
|
94
|
+
} catch (error) {
|
|
95
|
+
if (isCodexThreadNotFoundError(error)) return failedCodexThreadBindingCompactionResult(params, {
|
|
96
|
+
threadId: binding.threadId,
|
|
97
|
+
reason: formatCompactionError(error),
|
|
98
|
+
recovery: "stale_thread_binding"
|
|
99
|
+
});
|
|
100
|
+
embeddedAgentLog.warn("codex app-server compaction failed", {
|
|
101
|
+
sessionId: params.sessionId,
|
|
102
|
+
sessionKey: params.sessionKey,
|
|
103
|
+
threadId: binding.threadId,
|
|
104
|
+
reason: formatCompactionError(error)
|
|
105
|
+
});
|
|
106
|
+
return {
|
|
107
|
+
ok: false,
|
|
108
|
+
compacted: false,
|
|
109
|
+
reason: formatCompactionError(error)
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
const resultDetails = {
|
|
113
|
+
backend: "codex-app-server",
|
|
114
|
+
threadId: binding.threadId,
|
|
115
|
+
signal: "thread/compact/start",
|
|
116
|
+
pending: true
|
|
117
|
+
};
|
|
118
|
+
return {
|
|
119
|
+
ok: true,
|
|
120
|
+
compacted: false,
|
|
121
|
+
result: {
|
|
122
|
+
summary: "",
|
|
123
|
+
firstKeptEntryId: "",
|
|
124
|
+
tokensBefore: params.currentTokenCount ?? 0,
|
|
125
|
+
details: resultDetails
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function failedCodexThreadBindingCompactionResult(params, recovery) {
|
|
130
|
+
embeddedAgentLog.warn("codex app-server compaction could not use thread binding", {
|
|
131
|
+
sessionId: params.sessionId,
|
|
132
|
+
sessionKey: params.sessionKey,
|
|
133
|
+
threadId: recovery.threadId,
|
|
134
|
+
reason: recovery.reason,
|
|
135
|
+
recovery: recovery.recovery
|
|
136
|
+
});
|
|
137
|
+
return {
|
|
138
|
+
ok: false,
|
|
139
|
+
compacted: false,
|
|
140
|
+
reason: recovery.reason,
|
|
141
|
+
failure: {
|
|
142
|
+
reason: recovery.recovery,
|
|
143
|
+
rawError: recovery.reason
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
function isCodexThreadNotFoundError(error) {
|
|
148
|
+
return formatCompactionError(error).toLowerCase().includes("thread not found");
|
|
149
|
+
}
|
|
150
|
+
function formatCompactionError(error) {
|
|
151
|
+
if (error instanceof Error) return error.message;
|
|
152
|
+
return String(error);
|
|
153
|
+
}
|
|
154
|
+
//#endregion
|
|
155
|
+
export { maybeCompactCodexAppServerSession };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { l as resolveCodexAppServerRuntimeOptions, u as resolveCodexComputerUseConfig } from "./config-
|
|
2
|
-
import { i as describeControlFailure, t as requestCodexAppServerJson } from "./request-
|
|
1
|
+
import { l as resolveCodexAppServerRuntimeOptions, u as resolveCodexComputerUseConfig } from "./config-D6TUuyo2.js";
|
|
2
|
+
import { i as describeControlFailure, t as requestCodexAppServerJson } from "./request-BO0z3vA8.js";
|
|
3
3
|
import { existsSync } from "node:fs";
|
|
4
4
|
//#region extensions/codex/src/app-server/computer-use.ts
|
|
5
5
|
var CodexComputerUseSetupError = class extends Error {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createHmac, randomBytes } from "node:crypto";
|
|
2
2
|
import { readFileSync } from "node:fs";
|
|
3
3
|
import { hostname } from "node:os";
|
|
4
|
+
import { normalizeTrimmedStringList } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
5
|
import { detectWindowsSpawnCommandInlineArgs } from "openclaw/plugin-sdk/windows-spawn";
|
|
5
6
|
import { z } from "zod";
|
|
6
7
|
//#region extensions/codex/src/app-server/config.ts
|
|
@@ -9,6 +10,9 @@ const START_OPTIONS_KEY_SECRET = getStartOptionsKeySecret();
|
|
|
9
10
|
const UNIX_CODEX_REQUIREMENTS_PATH = "/etc/codex/requirements.toml";
|
|
10
11
|
const WINDOWS_CODEX_REQUIREMENTS_SUFFIX = "\\OpenAI\\Codex\\requirements.toml";
|
|
11
12
|
const CODEX_PLUGINS_MARKETPLACE_NAME = "openai-curated";
|
|
13
|
+
function shouldAutoApproveCodexAppServerApprovals(appServer) {
|
|
14
|
+
return appServer.approvalPolicy === "never" && appServer.sandbox === "danger-full-access";
|
|
15
|
+
}
|
|
12
16
|
const DEFAULT_CODEX_COMPUTER_USE_PLUGIN_NAME = "computer-use";
|
|
13
17
|
const DEFAULT_CODEX_COMPUTER_USE_MCP_SERVER_NAME = "computer-use";
|
|
14
18
|
const DEFAULT_CODEX_COMPUTER_USE_MARKETPLACE_DISCOVERY_TIMEOUT_MS = 6e4;
|
|
@@ -457,8 +461,7 @@ function normalizeHeaders(value) {
|
|
|
457
461
|
return Object.fromEntries(Object.entries(value).map(([key, child]) => [key.trim(), readNonEmptyString(child)]).filter((entry) => Boolean(entry[0] && entry[1])));
|
|
458
462
|
}
|
|
459
463
|
function normalizeStringList(value) {
|
|
460
|
-
|
|
461
|
-
return value.map((entry) => readNonEmptyString(entry)).filter((entry) => entry !== void 0);
|
|
464
|
+
return normalizeTrimmedStringList(value);
|
|
462
465
|
}
|
|
463
466
|
function readBooleanEnv(value) {
|
|
464
467
|
if (value === void 0) return;
|
|
@@ -526,4 +529,4 @@ function splitShellWords(value) {
|
|
|
526
529
|
return words;
|
|
527
530
|
}
|
|
528
531
|
//#endregion
|
|
529
|
-
export { isCodexFastServiceTier as a, readCodexPluginConfig as c, resolveCodexPluginsPolicy as d,
|
|
532
|
+
export { isCodexFastServiceTier as a, readCodexPluginConfig as c, resolveCodexPluginsPolicy as d, shouldAutoApproveCodexAppServerApprovals as f, isCodexAppServerApprovalPolicyAllowedByRequirements as i, resolveCodexAppServerRuntimeOptions as l, codexAppServerStartOptionsKey as n, isCodexSandboxExecServerEnabled as o, withMcpElicitationsApprovalPolicy as p, codexSandboxPolicyForTurn as r, normalizeCodexServiceTier as s, CODEX_PLUGINS_MARKETPLACE_NAME as t, resolveCodexComputerUseConfig as u };
|