@openclaw/codex 2026.7.2-beta.3 → 2026.7.2-beta.4
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/{app-server-policy-DUMF2Xyr.js → app-server-policy-BO3jYBkv.js} +1 -1
- package/dist/{attempt-notifications-Ecjyzufe.js → attempt-notifications-DdmnBMUp.js} +1 -1
- package/dist/{media-understanding-provider-IPNNQre6.js → bounded-turn-CaQL96kg.js} +43 -183
- package/dist/capabilities-CLICvTxf.js +36 -0
- package/dist/cli-metadata.js +1 -1
- package/dist/{command-formatters-NCTL7A2q.js → command-formatters-DgADqnHa.js} +3 -37
- package/dist/{command-handlers-DtFbZiba.js → command-handlers-l_lVPNlB.js} +12 -11
- package/dist/{compact-Kgy26gIM.js → compact-CC5KhBzX.js} +5 -4
- package/dist/{computer-use-C7x4ZaqR.js → computer-use-Ip1-QGa-.js} +4 -4
- package/dist/{conversation-control-B0s3aIjT.js → conversation-control-sNPsbTCP.js} +6 -5
- package/dist/doctor-contract-api.js +1 -1
- package/dist/{dynamic-tools-D_vSVmv9.js → dynamic-tools-CQI3UwqY.js} +105 -2670
- package/dist/event-projector-assistant-message-DTgnPPVF.js +101 -0
- package/dist/event-projector-usage-D6tE7_qD.js +69 -0
- package/dist/harness.js +25 -6
- package/dist/incognito-session-ET_ufDH-.js +2 -0
- package/dist/index.js +60 -26
- package/dist/media-understanding-provider.js +168 -1
- package/dist/{models-DD5zBdX5.js → models-BNeMlHgg.js} +2 -2
- package/dist/{notification-correlation-C8DVQ_Bq.js → notification-correlation-BGLixv5_.js} +3 -3
- package/dist/{plugin-app-cache-key-DJbhLYSK.js → plugin-app-cache-key-CvzvmBRz.js} +2 -2
- package/dist/{rate-limits-CqhWQ2R9.js → rate-limits-D0IJT-a6.js} +1 -1
- package/dist/{request-9yf9pZjf.js → request-BTccUTD3.js} +1 -1
- package/dist/{run-attempt-BIoO8ISr.js → run-attempt--858NXDl.js} +2653 -109
- package/dist/{session-binding-Bmt20HfB.js → session-binding-ZSMX1omP.js} +7 -2
- package/dist/{session-catalog-CA7R-hX2.js → session-catalog-DsKaezgR.js} +82 -80
- package/dist/{session-cli-Bxk3-Wqz.js → session-cli-CYJTfRLG.js} +1 -1
- package/dist/session-upstream-marker-D7XlI9us.js +82 -0
- package/dist/settled-turn-finalizer-DHltNgtF.js +303 -0
- package/dist/{shared-client-CSXLtCLE.js → shared-client-wmgNFNYp.js} +33 -13
- package/dist/{side-question-DtzquMOb.js → side-question-BfFZCsJ-.js} +21 -15
- package/dist/{thread-lifecycle-CQ_9mAa1.js → thread-lifecycle-cqrOlJkq.js} +120 -26
- package/dist/{transcript-mirror-D9rTxx2P.js → transcript-mirror-2p7kl6e4.js} +433 -145
- package/dist/upstream-session-fork-vPjwkT1i.js +320 -0
- package/dist/{usage-CuPpFgTc.js → usage-DM_I3mPT.js} +3 -3
- package/dist/{web-search-provider.runtime-_x5XTeqh.js → web-search-provider.runtime-Bx6HAc_k.js} +3 -3
- package/npm-shrinkwrap.json +38 -38
- package/package.json +7 -7
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { G as isCodexAppServerPrewriteRequestCancellationError, H as isCodexAppServerConnectionClosedError,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { a as serializeCodexAppInventoryError, i as defaultCodexAppInventoryCache, t as buildCodexAppServerConnectionFingerprint } from "./plugin-app-cache-key-
|
|
1
|
+
import { G as isCodexAppServerPrewriteRequestCancellationError, H as isCodexAppServerConnectionClosedError, Q as isJsonObject, R as CodexAppServerRpcError, Z as flattenCodexDynamicToolFunctions, d as retireSharedCodexAppServerClientIfCurrent, n as clearSharedCodexAppServerClientIfCurrentAndUnclaimed, o as isCodexAppServerStartSelectionChangedError, q as resolveCodexAppServerClientInstanceId, t as clearSharedCodexAppServerClientIfCurrent, z as getCodexAppServerClientInstanceId } from "./shared-client-wmgNFNYp.js";
|
|
2
|
+
import { E as resolveCodexPluginsPolicy, a as hashCodexAppServerBindingFingerprint, c as reclaimCurrentCodexSessionGeneration, d as CODEX_PLUGINS_MARKETPLACE_NAME, f as CODEX_PLUGINS_WORKSPACE_MARKETPLACE_NAME, g as codexSandboxPolicyForTurn, i as createCodexSessionGenerationSupersededError, l as sessionBindingIdentity, n as assertCodexBindingMayBeReplaced, o as isCodexAppServerNativeAuthProfile, s as normalizeCodexAppServerBindingModelProvider } from "./session-binding-ZSMX1omP.js";
|
|
3
|
+
import { _ as assertCodexThreadStartResponse, a as projectBoundedCodexThreadHistory, g as assertCodexThreadResumeResponse, h as assertCodexThreadForkResponse } from "./transcript-mirror-2p7kl6e4.js";
|
|
4
|
+
import { a as serializeCodexAppInventoryError, i as defaultCodexAppInventoryCache, t as buildCodexAppServerConnectionFingerprint } from "./plugin-app-cache-key-CvzvmBRz.js";
|
|
5
|
+
import { t as isIncognitoSessionKey } from "./incognito-session-ET_ufDH-.js";
|
|
5
6
|
import { sliceUtf16Safe, truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
6
7
|
import * as crypto$1 from "node:crypto";
|
|
7
8
|
import crypto from "node:crypto";
|
|
@@ -13,6 +14,82 @@ import { isDiagnosticFlagEnabled } from "openclaw/plugin-sdk/diagnostic-runtime"
|
|
|
13
14
|
import { listRegisteredPluginAgentPromptGuidance } from "openclaw/plugin-sdk/plugin-runtime";
|
|
14
15
|
import { GPT5_HEARTBEAT_PROMPT_OVERLAY } from "openclaw/plugin-sdk/provider-model-shared";
|
|
15
16
|
import { INLINE_IMAGE_DATA_URL_PREFIX, sanitizeInlineImageDataUrl } from "openclaw/plugin-sdk/inline-image-data-url-runtime";
|
|
17
|
+
//#region extensions/codex/src/app-server/event-projector-values.ts
|
|
18
|
+
function readString(record, key) {
|
|
19
|
+
const value = record[key];
|
|
20
|
+
return typeof value === "string" ? value : void 0;
|
|
21
|
+
}
|
|
22
|
+
function normalizeNonEmptyString(value) {
|
|
23
|
+
if (typeof value !== "string") return;
|
|
24
|
+
return value.trim() || void 0;
|
|
25
|
+
}
|
|
26
|
+
function readNonEmptyString(record, key) {
|
|
27
|
+
return normalizeNonEmptyString(record[key]);
|
|
28
|
+
}
|
|
29
|
+
function readNonEmptyStringArray(record, key) {
|
|
30
|
+
const value = record[key];
|
|
31
|
+
if (!Array.isArray(value)) return [];
|
|
32
|
+
const entries = [];
|
|
33
|
+
for (const entry of value) {
|
|
34
|
+
const normalized = normalizeNonEmptyString(entry);
|
|
35
|
+
if (normalized) entries.push(normalized);
|
|
36
|
+
}
|
|
37
|
+
return entries;
|
|
38
|
+
}
|
|
39
|
+
function readNullableString(record, key) {
|
|
40
|
+
const value = record[key];
|
|
41
|
+
if (value === null) return null;
|
|
42
|
+
return typeof value === "string" ? value : void 0;
|
|
43
|
+
}
|
|
44
|
+
function readNumber(record, key) {
|
|
45
|
+
const value = record[key];
|
|
46
|
+
return typeof value === "number" && Number.isFinite(value) ? value : void 0;
|
|
47
|
+
}
|
|
48
|
+
function readNonNegativeInteger(record, key) {
|
|
49
|
+
const value = readNumber(record, key);
|
|
50
|
+
return value !== void 0 && Number.isInteger(value) && value >= 0 ? value : void 0;
|
|
51
|
+
}
|
|
52
|
+
function readCodexErrorNotificationMessage(record) {
|
|
53
|
+
const error = record.error;
|
|
54
|
+
return isJsonObject(error) ? readString(error, "message") : void 0;
|
|
55
|
+
}
|
|
56
|
+
function readHookOutputEntries(value) {
|
|
57
|
+
if (!Array.isArray(value)) return [];
|
|
58
|
+
return value.flatMap((entry) => {
|
|
59
|
+
if (!isJsonObject(entry)) return [];
|
|
60
|
+
const text = readString(entry, "text");
|
|
61
|
+
if (!text) return [];
|
|
62
|
+
const kind = readString(entry, "kind");
|
|
63
|
+
return [{
|
|
64
|
+
...kind ? { kind } : {},
|
|
65
|
+
text
|
|
66
|
+
}];
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
function splitPlanText(text) {
|
|
70
|
+
return text.split(/\r?\n/).map((line) => line.trim().replace(/^[-*]\s+/, "")).filter((line) => line.length > 0);
|
|
71
|
+
}
|
|
72
|
+
function extractRawAssistantText(item) {
|
|
73
|
+
return (Array.isArray(item.content) ? item.content : []).flatMap((entry) => {
|
|
74
|
+
if (!isJsonObject(entry)) return [];
|
|
75
|
+
const type = readString(entry, "type");
|
|
76
|
+
if (type !== "output_text" && type !== "text") return [];
|
|
77
|
+
const value = readString(entry, "text");
|
|
78
|
+
return value ? [value] : [];
|
|
79
|
+
}).join("").trim() || void 0;
|
|
80
|
+
}
|
|
81
|
+
function readItemString(item, key) {
|
|
82
|
+
const value = item[key];
|
|
83
|
+
return typeof value === "string" ? value : void 0;
|
|
84
|
+
}
|
|
85
|
+
function readItem(value) {
|
|
86
|
+
if (!isJsonObject(value)) return;
|
|
87
|
+
const type = typeof value.type === "string" ? value.type : void 0;
|
|
88
|
+
const id = typeof value.id === "string" ? value.id : void 0;
|
|
89
|
+
if (!type || !id) return;
|
|
90
|
+
return value;
|
|
91
|
+
}
|
|
92
|
+
//#endregion
|
|
16
93
|
//#region extensions/codex/src/app-server/plugin-inventory.ts
|
|
17
94
|
/**
|
|
18
95
|
* Reads Codex plugin marketplace state and app inventory to decide which
|
|
@@ -864,13 +941,9 @@ function resolveCodexContextEngineProjectionMaxChars(params) {
|
|
|
864
941
|
reserveTokens: params.reserveTokens
|
|
865
942
|
}) * APPROX_RENDERED_CHARS_PER_TOKEN);
|
|
866
943
|
}
|
|
867
|
-
/**
|
|
868
|
-
function resolveCodexContextEngineProjectionReserveTokens(
|
|
869
|
-
|
|
870
|
-
const configuredReserveTokens = toNonNegativeInt(asRecord(compaction)?.reserveTokens);
|
|
871
|
-
const configuredReserveTokensFloor = toNonNegativeInt(asRecord(compaction)?.reserveTokensFloor);
|
|
872
|
-
if (configuredReserveTokens !== void 0) return Math.max(configuredReserveTokens, configuredReserveTokensFloor ?? DEFAULT_CODEX_PROJECTION_RESERVE_TOKENS);
|
|
873
|
-
if (configuredReserveTokensFloor !== void 0) return configuredReserveTokensFloor;
|
|
944
|
+
/** Returns the fixed reserve used for Codex context-engine projections. */
|
|
945
|
+
function resolveCodexContextEngineProjectionReserveTokens() {
|
|
946
|
+
return DEFAULT_CODEX_PROJECTION_RESERVE_TOKENS;
|
|
874
947
|
}
|
|
875
948
|
/** Fits projected context prompts under Codex app-server turn/start text limits. */
|
|
876
949
|
function fitCodexProjectedContextForTurnStart(params) {
|
|
@@ -918,13 +991,6 @@ function resolveProjectionPromptBudgetTokens(params) {
|
|
|
918
991
|
const effectiveReserveTokens = Math.min(requestedReserveTokens, Math.max(0, params.contextTokenBudget - minPromptBudget));
|
|
919
992
|
return Math.max(1, params.contextTokenBudget - effectiveReserveTokens);
|
|
920
993
|
}
|
|
921
|
-
function asRecord(value) {
|
|
922
|
-
return value && typeof value === "object" ? value : void 0;
|
|
923
|
-
}
|
|
924
|
-
function toNonNegativeInt(value) {
|
|
925
|
-
if (typeof value !== "number" || !Number.isFinite(value) || value < 0) return;
|
|
926
|
-
return Math.floor(value);
|
|
927
|
-
}
|
|
928
994
|
function dropDuplicateTrailingPrompt(messages, prompt) {
|
|
929
995
|
if (!prompt) return messages;
|
|
930
996
|
const trailing = messages.at(-1);
|
|
@@ -1086,7 +1152,7 @@ function buildContextEngineBinding(params, projection) {
|
|
|
1086
1152
|
contextTokenBudget: params.contextTokenBudget,
|
|
1087
1153
|
projectionMaxChars: resolveCodexContextEngineProjectionMaxChars({
|
|
1088
1154
|
contextTokenBudget: params.contextTokenBudget,
|
|
1089
|
-
reserveTokens: resolveCodexContextEngineProjectionReserveTokens(
|
|
1155
|
+
reserveTokens: resolveCodexContextEngineProjectionReserveTokens()
|
|
1090
1156
|
})
|
|
1091
1157
|
}),
|
|
1092
1158
|
projection: projection ? buildContextEngineProjectionBinding(projection) : void 0
|
|
@@ -1866,7 +1932,8 @@ function buildThreadStartParams(params, options) {
|
|
|
1866
1932
|
...resolveCodexThreadEnvironmentSelection(options),
|
|
1867
1933
|
developerInstructions: options.developerInstructions ?? buildDeveloperInstructions(params, { dynamicTools: options.dynamicTools }),
|
|
1868
1934
|
dynamicTools: [...options.dynamicTools],
|
|
1869
|
-
experimentalRawEvents: true
|
|
1935
|
+
experimentalRawEvents: true,
|
|
1936
|
+
...isIncognitoSessionKey(params.sessionKey) ? { ephemeral: true } : {}
|
|
1870
1937
|
};
|
|
1871
1938
|
}
|
|
1872
1939
|
function buildThreadResumeParams(params, options) {
|
|
@@ -2208,6 +2275,7 @@ async function resumeExistingCodexThread(params, context) {
|
|
|
2208
2275
|
}
|
|
2209
2276
|
}
|
|
2210
2277
|
async function startFreshCodexThread(params, context) {
|
|
2278
|
+
const clientId = resolveCodexAppServerClientInstanceId(params.client);
|
|
2211
2279
|
const { bindingIdentity, startModelSelection, startModelProvider, userMcpServersConfigPatch, dynamicToolsFingerprint, dynamicToolsContainDeferred, webSearchThreadConfigFingerprint, userMcpServersFingerprint, ringZeroConfigFingerprint, ringZeroClientInstanceId, networkProxyConfigFingerprint, contextEngineBinding, environmentSelectionFingerprint, hostSystemAgentActive, ringZeroActive, ringZeroInheritedMcpServerNames, lifecycleTiming, normalizeBindingModelProvider, throwIfAborted, prebuiltPluginThreadConfig, preserveExistingBinding, rotatedContextEngineBinding } = context;
|
|
2212
2280
|
const pluginThreadConfig = params.pluginThreadConfig?.enabled ? prebuiltPluginThreadConfig ?? await lifecycleTiming.measure("plugin-config-build", () => params.pluginThreadConfig?.build()) : void 0;
|
|
2213
2281
|
const finalConfigPatch = params.buildFinalConfigPatch?.({ action: "start" }) ?? {
|
|
@@ -2261,6 +2329,7 @@ async function startFreshCodexThread(params, context) {
|
|
|
2261
2329
|
if: { kind: "absent" },
|
|
2262
2330
|
binding: {
|
|
2263
2331
|
threadId: response.thread.id,
|
|
2332
|
+
...clientId ? { clientId } : {},
|
|
2264
2333
|
cwd: params.cwd,
|
|
2265
2334
|
authProfileId: params.params.authProfileId,
|
|
2266
2335
|
model: response.model ?? startParams.model ?? params.params.modelId,
|
|
@@ -2303,6 +2372,7 @@ async function startFreshCodexThread(params, context) {
|
|
|
2303
2372
|
});
|
|
2304
2373
|
return {
|
|
2305
2374
|
threadId: response.thread.id,
|
|
2375
|
+
...clientId ? { clientId } : {},
|
|
2306
2376
|
cwd: params.cwd,
|
|
2307
2377
|
authProfileId: params.params.authProfileId,
|
|
2308
2378
|
model: response.model ?? startParams.model ?? params.params.modelId,
|
|
@@ -2625,7 +2695,7 @@ function buildPendingSupervisionProbeForkParams(params, pending) {
|
|
|
2625
2695
|
...params.appServer.serviceTier !== void 0 ? { serviceTier: params.appServer.serviceTier } : {},
|
|
2626
2696
|
config: runtimeConfig,
|
|
2627
2697
|
developerInstructions: params.developerInstructions ?? buildDeveloperInstructions(params.attempt, { dynamicTools: params.dynamicTools }),
|
|
2628
|
-
ephemeral:
|
|
2698
|
+
ephemeral: isIncognitoSessionKey(params.attempt.sessionKey),
|
|
2629
2699
|
threadSource: "appServer",
|
|
2630
2700
|
excludeTurns: true
|
|
2631
2701
|
};
|
|
@@ -2741,6 +2811,8 @@ async function archiveSupervisionArtifact(client, threadId) {
|
|
|
2741
2811
|
//#endregion
|
|
2742
2812
|
//#region extensions/codex/src/app-server/thread-lifecycle-run.ts
|
|
2743
2813
|
async function startOrResumeThread(params) {
|
|
2814
|
+
const incognito = isIncognitoSessionKey(params.params.sessionKey);
|
|
2815
|
+
const clientId = resolveCodexAppServerClientInstanceId(params.client);
|
|
2744
2816
|
const bindingIdentity = sessionBindingIdentity({
|
|
2745
2817
|
sessionId: params.params.sessionId,
|
|
2746
2818
|
sessionKey: params.params.sessionKey,
|
|
@@ -2808,7 +2880,7 @@ async function startOrResumeThread(params) {
|
|
|
2808
2880
|
bindingStore: params.bindingStore,
|
|
2809
2881
|
identity: bindingIdentity,
|
|
2810
2882
|
config: params.params.config
|
|
2811
|
-
}))) throw
|
|
2883
|
+
}))) throw createCodexSessionGenerationSupersededError(bindingIdentity.sessionId);
|
|
2812
2884
|
}
|
|
2813
2885
|
if (binding?.pendingSupervisionBranch) {
|
|
2814
2886
|
const pendingBinding = binding;
|
|
@@ -2841,6 +2913,7 @@ async function startOrResumeThread(params) {
|
|
|
2841
2913
|
normalizeBindingModelProvider,
|
|
2842
2914
|
bindingPatch: {
|
|
2843
2915
|
cwd: params.cwd,
|
|
2916
|
+
...clientId ? { clientId } : {},
|
|
2844
2917
|
authProfileId: void 0,
|
|
2845
2918
|
preserveNativeModel: true,
|
|
2846
2919
|
dynamicToolsFingerprint,
|
|
@@ -3034,6 +3107,28 @@ async function startOrResumeThread(params) {
|
|
|
3034
3107
|
embeddedAgentLog.debug("codex app-server dynamic tool catalog changed; starting a new thread", { threadId: binding.threadId });
|
|
3035
3108
|
await clearCurrentBinding("rotating a stale thread binding");
|
|
3036
3109
|
}
|
|
3110
|
+
} else if (incognito) {
|
|
3111
|
+
if (binding.clientId && binding.clientId === clientId) {
|
|
3112
|
+
params.buildFinalConfigPatch?.({
|
|
3113
|
+
action: "resume",
|
|
3114
|
+
binding
|
|
3115
|
+
});
|
|
3116
|
+
throwIfAborted();
|
|
3117
|
+
lifecycleTiming.mark("thread-ready");
|
|
3118
|
+
lifecycleTiming.logSummary({
|
|
3119
|
+
runId: params.params.runId,
|
|
3120
|
+
sessionId: params.params.sessionId,
|
|
3121
|
+
sessionKey: params.params.sessionKey,
|
|
3122
|
+
threadId: binding.threadId,
|
|
3123
|
+
action: "resumed"
|
|
3124
|
+
});
|
|
3125
|
+
return {
|
|
3126
|
+
...binding,
|
|
3127
|
+
lifecycle: { action: "resumed" }
|
|
3128
|
+
};
|
|
3129
|
+
}
|
|
3130
|
+
await clearCurrentBinding("rotating an unavailable ephemeral thread binding");
|
|
3131
|
+
binding = void 0;
|
|
3037
3132
|
} else {
|
|
3038
3133
|
const resumed = await resumeExistingCodexThread(params, {
|
|
3039
3134
|
binding,
|
|
@@ -3199,8 +3294,7 @@ function buildTurnStartParams(params, options) {
|
|
|
3199
3294
|
model: modelSelection.model,
|
|
3200
3295
|
turnScopedDeveloperInstructions: options.turnScopedDeveloperInstructions,
|
|
3201
3296
|
skillsCollaborationInstructions: options.skillsCollaborationInstructions,
|
|
3202
|
-
memoryCollaborationInstructions: options.memoryCollaborationInstructions
|
|
3203
|
-
heartbeatCollaborationInstructions: options.heartbeatCollaborationInstructions
|
|
3297
|
+
memoryCollaborationInstructions: options.memoryCollaborationInstructions
|
|
3204
3298
|
}) } : {}
|
|
3205
3299
|
};
|
|
3206
3300
|
}
|
|
@@ -3218,7 +3312,7 @@ function buildTurnCollaborationMode(params, options = {}) {
|
|
|
3218
3312
|
function buildTurnScopedCollaborationInstructions(params, options = {}) {
|
|
3219
3313
|
const contextInstructions = joinPresentSections(options.turnScopedDeveloperInstructions, options.memoryCollaborationInstructions, options.skillsCollaborationInstructions);
|
|
3220
3314
|
if (params.trigger === "cron") return joinPresentSections(buildCronCollaborationInstructions(), contextInstructions);
|
|
3221
|
-
if (params.trigger === "heartbeat" && params.bootstrapContextRunKind !== "commitment-only") return joinPresentSections(buildHeartbeatCollaborationInstructions(), contextInstructions
|
|
3315
|
+
if (params.trigger === "heartbeat" && params.bootstrapContextRunKind !== "commitment-only") return joinPresentSections(buildHeartbeatCollaborationInstructions(), contextInstructions);
|
|
3222
3316
|
if (contextInstructions?.trim()) return joinPresentSections(buildDefaultCollaborationInstructions(), contextInstructions);
|
|
3223
3317
|
return null;
|
|
3224
3318
|
}
|
|
@@ -3256,4 +3350,4 @@ function joinPresentSections(...sections) {
|
|
|
3256
3350
|
return sections.filter((section) => Boolean(section?.trim())).join("\n\n");
|
|
3257
3351
|
}
|
|
3258
3352
|
//#endregion
|
|
3259
|
-
export {
|
|
3353
|
+
export { shouldBuildCodexPluginThreadConfig as $, resolveCodexDynamicToolsLoading as A, codexDynamicToolsFingerprint as B, readCodexSupportedReasoningEfforts as C, isForcedPrivateQaCodexRuntime as D, filterCodexDynamicToolsWithOpenClawShell as E, closeCodexStartupClientBestEffort as F, projectContextEngineAssemblyForCodex as G, buildContextEngineBinding as H, interruptCodexTurnBestEffort as I, buildCodexPluginAppsConfigPatchFromPolicyContext as J, resolveCodexContextEngineProjectionMaxChars as K, retireCodexAppServerClientAfterTimedOutTurn as L, CODEX_APP_SERVER_INTERRUPT_TIMEOUT_MS as M, CODEX_APP_SERVER_UNSUBSCRIBE_TIMEOUT_MS as N, isSystemAgentOnlyCodexDynamicToolAllowlist as O, CodexAppServerUnsafeSubscriptionError as P, mergeCodexThreadConfigs as Q, unsubscribeCodexThreadBestEffort as R, resolveReasoningEffort as S, filterCodexDynamicTools as T, isContextEngineBindingCompatible as U, codexLegacyDynamicToolsFingerprint as V, fitCodexProjectedContextForTurnStart as W, buildCodexPluginThreadConfigInputFingerprint as X, buildCodexPluginThreadConfig as Y, buildCodexPluginThreadConfigTimeoutFallback as Z, CODEX_NATIVE_PERSONALITY_NONE as _, sanitizeCodexHistoryImagePayloads as a, readCodexErrorNotificationMessage as at, resolveCodexAppServerThreadModelSelection as b, resumeCodexAppServerThread as c, readItemString as ct, buildCodexRingZeroThreadConfigPatch as d, readNonNegativeInteger as dt, ensureCodexPluginActivation as et, buildCodexRuntimeThreadConfig as f, readNullableString as ft, buildDeveloperInstructions as g, resolveCodexWebSearchPlan as h, splitPlanText as ht, invalidInlineImageText as i, normalizeNonEmptyString as it, resolveCodexDynamicToolsLoadingForRuntime as j, normalizeCodexDynamicToolName as k, assertCodexRingZeroHasNoManagedHooks as l, readNonEmptyString as lt, buildCodexNativeWebSearchThreadConfig as m, readString as mt, buildTurnStartParams as n, resolveRecoverableCodexPluginConfigKeys as nt, sanitizeInlineImageDataUrl$1 as o, readHookOutputEntries as ot, readCodexInheritedMcpServerNames as p, readNumber as pt, resolveCodexContextEngineProjectionReserveTokens as q, buildCodexUserInput as r, extractRawAssistantText as rt, startOrResumeThread as s, readItem as st, buildTurnCollaborationMode as t, pluginReadParams as tt, attestCodexRingZeroThreadHasNoMcpServers as u, readNonEmptyStringArray as ut, resolveCodexAppServerModelProvider as v, isCodexAppServerProfilerEnabled as w, resolveCodexBindingModelProviderFallback as x, resolveCodexAppServerRequestModelSelection as y, areCodexDynamicToolFingerprintsCompatible as z };
|