@openclaw/codex 2026.8.1-beta.2 → 2026.8.1-beta.3
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/api.js +147 -0
- package/dist/app-server-policy-bg5QPSVP.js +25 -0
- package/dist/{attempt-client-cleanup-DMLXUfa8.js → attempt-client-cleanup-URjUlCHg.js} +1 -1
- package/dist/{binding-connection-I5Bo-AsX.js → binding-connection-DAvZwp96.js} +15 -3
- package/dist/{bounded-turn-qgZmzy_4.js → bounded-turn-4BjrZEwW.js} +22 -16
- package/dist/{capabilities-CybGI1oz.js → capabilities-CH3K57v4.js} +1 -1
- package/dist/cli-metadata.js +1 -1
- package/dist/{command-formatters-B1AEz8ZA.js → command-formatters-D0nZ3qtd.js} +2 -2
- package/dist/{command-handlers-Db8pu_ds.js → command-handlers-DC86lgT4.js} +39 -22
- package/dist/command-rpc-xUIIonsO.js +90 -0
- package/dist/{compact-LspQaGfl.js → compact-COqgBRny.js} +35 -29
- package/dist/{session-binding-DPxIvMgE.js → config-CpNeo5AE.js} +28 -888
- package/dist/context-compaction-activity-BOeJf7yo.js +58 -0
- package/dist/doctor-contract-api.js +15 -14
- package/dist/{dynamic-tools-BVdyWkUD.js → dynamic-tools-fJZhl4CE.js} +1284 -651
- package/dist/{effective-mcp-catalog-DIIhAtOZ.js → effective-mcp-catalog-4YKn51aG.js} +2 -2
- package/dist/elicitation-input-DMkeki8d.js +71 -0
- package/dist/{event-projector-usage-e5huIQWu.js → event-projector-usage-CLwNEJqW.js} +16 -16
- package/dist/harness-DoKQcF8n.js +258 -0
- package/dist/harness.js +2 -226
- package/dist/index.js +171 -48
- package/dist/{isolated-completion-C58NbL40.js → isolated-completion-DPMtlH9r.js} +3 -3
- package/dist/managed-binary-By4FZC6i.js +212 -0
- package/dist/media-understanding-provider.js +2 -2
- package/dist/model-catalog-CmGoqVKB.js +48 -0
- package/dist/{models-BFlpn1Ex.js → models-CZw1wClT.js} +2 -2
- package/dist/{native-subagent-monitor-DyTGmTUx.js → native-subagent-monitor-GGq3RnOo.js} +185 -71
- package/dist/node-exec-server.runtime-Bsu1LdFZ.js +192 -0
- package/dist/{plugin-app-cache-key-C3H2CVp6.js → plugin-app-cache-key-DMNQ8Zi8.js} +15 -3
- package/dist/plugin-approval-roundtrip-C75Yiiwc.js +95 -0
- package/dist/{plugin-marketplace-discovery-CzrGJdCR.js → plugin-marketplace-discovery-CSWDkMrP.js} +40 -26
- package/dist/{plugin-metadata-cache-CNJPj4_b.js → plugin-metadata-cache-BXH5NF-4.js} +8 -5
- package/dist/{protocol-validators-B4F7L8Rf.js → protocol-validators-VAVyEnDp.js} +55 -2
- package/dist/{rate-limits-DZXmOL8-.js → rate-limits-BI1dMHDG.js} +1 -1
- package/dist/{request-BRl5_UfX.js → request-DSK0W6YI.js} +2 -2
- package/dist/{run-attempt-P8BdxC1I.js → run-attempt-BV3HzuCf.js} +1098 -666
- package/dist/{runtime-artifact-BVSPdd6g.js → runtime-artifact-BvyT1uyd.js} +4 -7
- package/dist/{sandbox-guard-Cmwc9eIk.js → sandbox-guard-C1qEeZ5C.js} +25 -19
- package/dist/session-binding-BTrLf9Qm.js +874 -0
- package/dist/{session-catalog-xwNi_SDM.js → session-catalog-ezP_UcRM.js} +1541 -1296
- package/dist/session-catalog-home-id-BNwAJ9D7.js +18 -0
- package/dist/{session-cli-7hgXZDV7.js → session-cli-B1hKvfkI.js} +20 -7
- package/dist/{session-retirement-DoMMJFKm.js → session-retirement-CE4iMiLh.js} +3 -3
- package/dist/{session-upstream-marker-CrIFX06J.js → session-upstream-marker-D_2npHlA.js} +1 -1
- package/dist/{settled-turn-finalizer-BRWBO4MO.js → settled-turn-finalizer-Dx1onIqg.js} +23 -19
- package/dist/{shared-client-kIBbGjk4.js → shared-client-Dw-rzii0.js} +755 -273
- package/dist/{side-question-9HAL26l9.js → side-question-DbXkJZzg.js} +52 -30
- package/dist/{thread-lifecycle-Bu1BTDXr.js → thread-lifecycle-DKdrnTMX.js} +310 -92
- package/dist/{thread-ownership-6kOQHlyC.js → thread-ownership-i2NBwDUL.js} +2 -2
- package/dist/{thread-resume-CPrJNQVM.js → thread-resume-CdJk2Ehf.js} +3 -3
- package/dist/{transcript-mirror-B9gGgnJS.js → transcript-mirror-BU0_LKAL.js} +46 -28
- package/dist/{transport-stdio-DIImwDVS.js → transport-stdio-DhoGy33Z.js} +2 -2
- package/dist/{upstream-prompt-provenance-ClRBije0.js → upstream-prompt-provenance-CFmsKwr9.js} +12 -14
- package/dist/{upstream-session-fork-CE-_LdnP.js → upstream-session-fork-BDVJCLAD.js} +12 -6
- package/dist/{usage-CHlV0e-o.js → usage-9dKJCgcy.js} +3 -3
- package/dist/{web-search-provider.runtime-DRw2Vl42.js → web-search-provider.runtime-DCdx4DGu.js} +3 -3
- package/openclaw.plugin.json +31 -1
- package/package.json +6 -5
- package/dist/app-server-policy-zcBDc1JU.js +0 -49
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { A as isCodexAppServerApprovalRequest,
|
|
3
|
-
import { d as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { n as
|
|
10
|
-
import {
|
|
1
|
+
import { A as resolveOpenClawExecPolicyForCodexAppServer, S as resolveCodexModelBackedReviewerPolicyContext, b as canUseCodexModelBackedApprovalsReviewerForModel, f as isCodexPairedNodeRemoteExecPlacementSandbox, h as readCodexPluginConfig, m as isCodexSandboxExecServerEnabled, p as isCodexRemoteExecPlacementSandbox, r as resolveCodexAppServerHomeScope, u as shouldAutoApproveCodexAppServerApprovals } from "./config-CpNeo5AE.js";
|
|
2
|
+
import { A as isCodexAppServerApprovalRequest, N as isCodexAppServerIndeterminateRequestCancellationError, Q as readRecentCodexRateLimits, V as createCodexElicitationResponse, W as ensureCodexAppServerClientRuntime, a as getLeasedSharedCodexAppServerClient, at as resolveCodexAppServerPreparedAuthHandoff, c as releaseCodexAppServerClientLease, h as withLeasedCodexAppServerClientStartSelectionRetry, ut as isJsonObject } from "./shared-client-Dw-rzii0.js";
|
|
3
|
+
import { d as sessionBindingIdentity } from "./session-binding-BTrLf9Qm.js";
|
|
4
|
+
import { d as unsubscribeCodexThreadBestEffort, h as isCodexNotificationForTurn, s as isCodexAlreadyTerminalInterruptError, u as retireUnsafeCodexTurnClientBestEffort } from "./attempt-client-cleanup-URjUlCHg.js";
|
|
5
|
+
import { l as readCodexTurn, o as assertCodexTurnStartResponse, r as assertCodexThreadForkResponse, s as readCodexDynamicToolCallParams } from "./protocol-validators-VAVyEnDp.js";
|
|
6
|
+
import { G as buildCodexPluginAppsConfigPatchFromPolicyContext, O as filterCodexDynamicTools, P as resolveCodexDynamicToolsLoading, Z as mergeCodexThreadConfigs, _ as resolveCodexAppServerRequestModelSelection, b as resolveReasoningEffort, f as resolveCodexWebSearchPlan, g as resolveCodexAppServerModelProvider, h as CODEX_NATIVE_PERSONALITY_NONE, l as buildCodexRuntimeThreadConfig, x as readCodexSupportedReasoningEfforts, y as resolveCodexBindingModelProviderFallback } from "./thread-lifecycle-DKdrnTMX.js";
|
|
7
|
+
import { n as formatCodexUsageLimitErrorMessage } from "./rate-limits-BI1dMHDG.js";
|
|
8
|
+
import { t as resolveCodexAppServerForModelProvider } from "./app-server-policy-bg5QPSVP.js";
|
|
9
|
+
import { n as resolveCodexNativeExecutionBlock } from "./sandbox-guard-C1qEeZ5C.js";
|
|
10
|
+
import { n as resolveCodexBindingAppServerConnection, t as requireCodexSupervisionModelSelection } from "./binding-connection-DAvZwp96.js";
|
|
11
|
+
import { A as buildCodexNativeHookRelayConfig, C as shouldRequireCodexSandboxExecServerEnvironment, D as CodexNativeToolLifecycleProjector, L as handleDynamicToolCallWithTimeout, N as emitCodexNativePreToolUseFailureDiagnostic, O as CODEX_NATIVE_HOOK_RELAY_EVENTS, S as shouldEnableCodexAppServerNativeToolSurface, T as filterCodexVisionTools, V as resolveDynamicToolCallTimeoutMs, a as emitDynamicToolStartedDiagnostic, b as resolveCodexNodePlacementToolConstructionPlan, d as releaseCodexSandboxExecServerEnvironment, i as emitDynamicToolErrorDiagnostic, j as buildCodexNativeHookRelayDisabledConfig, l as resolveCodexProviderWebSearchSupportForClient, o as emitDynamicToolTerminalDiagnostic, q as resolveCodexToolAbortTerminalReason, r as routeCodexAppServerElicitationRequest, s as handleCodexAppServerApprovalRequest, t as createCodexDynamicToolBridge, u as ensureCodexSandboxExecServerEnvironment, v as resolveCodexExternalSandboxPolicyForOpenClawSandbox, x as resolveCodexSandboxEnvironmentSelection, y as resolveCodexMessageToolProvider } from "./dynamic-tools-fJZhl4CE.js";
|
|
11
12
|
import { readStringField } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
12
13
|
import { buildAgentHookContextChannelFields, embeddedAgentLog, formatErrorMessage, registerNativeHookRelay, resolveAgentDir, resolveAttemptSpawnWorkspaceDir, resolveModelAuthMode, resolveSandboxContext, resolveSessionAgentIds, supportsModelTools } from "openclaw/plugin-sdk/agent-harness-runtime";
|
|
13
14
|
import { randomUUID } from "node:crypto";
|
|
@@ -56,6 +57,7 @@ async function runCodexAppServerSideQuestion(params, options) {
|
|
|
56
57
|
config: params.cfg
|
|
57
58
|
}));
|
|
58
59
|
if (!binding?.threadId) throw new Error("Codex /btw needs an active Codex thread. Send a normal message first, then try /btw again.");
|
|
60
|
+
if (isCodexPairedNodeRemoteExecPlacementSandbox(params.sandbox)) throw new Error("Normal Codex turns are supported on paired devices, but /btw is not yet bound to the active placement.");
|
|
59
61
|
const pluginConfig = readCodexPluginConfig(options.pluginConfig);
|
|
60
62
|
const { sessionAgentId } = resolveSessionAgentIds({
|
|
61
63
|
sessionKey: params.sessionKey,
|
|
@@ -99,7 +101,7 @@ async function runCodexAppServerSideQuestion(params, options) {
|
|
|
99
101
|
bindingModelProvider: binding.modelProvider
|
|
100
102
|
});
|
|
101
103
|
const modelSelection = resolveCodexAppServerRequestModelSelection({
|
|
102
|
-
model: supervisionModelSelection?.model ?? params.model,
|
|
104
|
+
model: supervisionModelSelection?.model ?? options.runtimeModelId ?? params.model,
|
|
103
105
|
modelProvider,
|
|
104
106
|
authProfileId,
|
|
105
107
|
authProfileStore: preparedRuntimeAuth.authProfileStore,
|
|
@@ -152,7 +154,10 @@ async function runCodexAppServerSideQuestion(params, options) {
|
|
|
152
154
|
timeoutMs: appServer.requestTimeoutMs
|
|
153
155
|
});
|
|
154
156
|
const sandboxExecServerEnabled = isCodexSandboxExecServerEnabled(pluginConfig, params.sandbox);
|
|
155
|
-
const nativeToolSurfaceEnabled = shouldEnableCodexAppServerNativeToolSurface(sideRunParams, params.sandbox ?? void 0, {
|
|
157
|
+
const nativeToolSurfaceEnabled = shouldEnableCodexAppServerNativeToolSurface(sideRunParams, params.sandbox ?? void 0, {
|
|
158
|
+
agentId: sideRunParams.agentId,
|
|
159
|
+
sandboxExecServerEnabled
|
|
160
|
+
});
|
|
156
161
|
const sandboxEnvironmentRequired = shouldRequireCodexSandboxExecServerEnvironment({
|
|
157
162
|
sandbox: params.sandbox ?? void 0,
|
|
158
163
|
nativeToolSurfaceEnabled,
|
|
@@ -162,6 +167,7 @@ async function runCodexAppServerSideQuestion(params, options) {
|
|
|
162
167
|
config: sideRunParams.config,
|
|
163
168
|
sessionKey: sideRunParams.sandboxSessionKey?.trim() || sideRunParams.sessionKey,
|
|
164
169
|
sessionId: sideRunParams.sessionId,
|
|
170
|
+
agentId: sideRunParams.agentId,
|
|
165
171
|
sandbox: params.sandbox,
|
|
166
172
|
sandboxEnvironmentSelected: sandboxEnvironmentRequired,
|
|
167
173
|
surface: "/btw side-question mode"
|
|
@@ -230,9 +236,10 @@ async function runCodexAppServerSideQuestion(params, options) {
|
|
|
230
236
|
const activeDynamicToolCalls = /* @__PURE__ */ new Set();
|
|
231
237
|
const releaseSandboxEnvironment = async () => {
|
|
232
238
|
if (!sandboxEnvironment) return;
|
|
239
|
+
const environment = sandboxEnvironment;
|
|
233
240
|
sandboxEnvironment = void 0;
|
|
234
241
|
sandboxEnvironmentClient = void 0;
|
|
235
|
-
await releaseCodexSandboxExecServerEnvironment(params.sandbox);
|
|
242
|
+
await releaseCodexSandboxExecServerEnvironment(params.sandbox, environment);
|
|
236
243
|
};
|
|
237
244
|
const ensureSandboxEnvironment = async (targetClient) => {
|
|
238
245
|
if (!sandboxEnvironmentRequired || sandboxEnvironmentClient === targetClient) return;
|
|
@@ -240,9 +247,15 @@ async function runCodexAppServerSideQuestion(params, options) {
|
|
|
240
247
|
const environment = await ensureCodexSandboxExecServerEnvironment({
|
|
241
248
|
client: targetClient,
|
|
242
249
|
sandbox: params.sandbox ?? null,
|
|
250
|
+
runtime: options.runtime,
|
|
243
251
|
appServerStartOptions: appServer.start,
|
|
244
252
|
timeoutMs: appServer.requestTimeoutMs,
|
|
245
|
-
signal: runAbortController.signal
|
|
253
|
+
signal: runAbortController.signal,
|
|
254
|
+
onExecutionDisconnect: (error) => {
|
|
255
|
+
collector.reject(error);
|
|
256
|
+
embeddedAgentLog.warn(error.message);
|
|
257
|
+
runAbortController.abort("client_closed");
|
|
258
|
+
}
|
|
246
259
|
});
|
|
247
260
|
if (!environment) throw new Error("Codex app-server did not register an OpenClaw sandbox exec-server environment.");
|
|
248
261
|
sandboxEnvironment = environment;
|
|
@@ -295,14 +308,17 @@ async function runCodexAppServerSideQuestion(params, options) {
|
|
|
295
308
|
});
|
|
296
309
|
const registerRequestHandler = (targetClient) => targetClient.addRequestHandler(async (request) => {
|
|
297
310
|
if (!childThreadId || !turnId) return;
|
|
298
|
-
if (request.method === "mcpServer/elicitation/request")
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
311
|
+
if (request.method === "mcpServer/elicitation/request") {
|
|
312
|
+
const approvalResult = await routeCodexAppServerElicitationRequest({
|
|
313
|
+
requestParams: request.params,
|
|
314
|
+
paramsForRun: sideRunParams,
|
|
315
|
+
threadId: childThreadId,
|
|
316
|
+
turnId,
|
|
317
|
+
pluginAppPolicyContext: binding.pluginAppPolicyContext,
|
|
318
|
+
signal: runAbortController.signal
|
|
319
|
+
});
|
|
320
|
+
return approvalResult.kind === "handled" ? approvalResult.response : createCodexElicitationResponse("decline", null, { message: "OpenClaw Codex side questions do not support interactive MCP input." });
|
|
321
|
+
}
|
|
306
322
|
if (request.method === "item/tool/requestUserInput") return isSideUserInputRequest(request.params, childThreadId, turnId) ? emptySideUserInputResponse() : void 0;
|
|
307
323
|
if (isCodexAppServerApprovalRequest(request.method)) return handleCodexAppServerApprovalRequest({
|
|
308
324
|
method: request.method,
|
|
@@ -412,8 +428,7 @@ async function runCodexAppServerSideQuestion(params, options) {
|
|
|
412
428
|
relay: nativeHookRelay,
|
|
413
429
|
events: nativeHookRelayEvents,
|
|
414
430
|
hookTimeoutSec: options.nativeHookRelay?.hookTimeoutSec,
|
|
415
|
-
clearOmittedEvents: true
|
|
416
|
-
loopDetectionPreToolUseRelay: appServer.loopDetectionPreToolUseRelay
|
|
431
|
+
clearOmittedEvents: true
|
|
417
432
|
}) : options.nativeHookRelay?.enabled === false ? buildCodexNativeHookRelayDisabledConfig() : void 0;
|
|
418
433
|
const runtimeThreadConfig = buildCodexRuntimeThreadConfig(webSearchPlan.threadConfig, {
|
|
419
434
|
nativeCodeModeEnabled: nativeToolSurfaceEnabled,
|
|
@@ -423,7 +438,7 @@ async function runCodexAppServerSideQuestion(params, options) {
|
|
|
423
438
|
const forkResponse = assertCodexThreadForkResponse(await withLeasedCodexAppServerClientStartSelectionRetry({
|
|
424
439
|
lease: clientLease,
|
|
425
440
|
options: clientOptions,
|
|
426
|
-
signal:
|
|
441
|
+
signal: runAbortController.signal,
|
|
427
442
|
run: async (forkClient, requestOptions) => {
|
|
428
443
|
await ensureSandboxEnvironment(forkClient);
|
|
429
444
|
const executionCwd = sandboxEnvironment?.cwd ?? cwd;
|
|
@@ -451,7 +466,7 @@ async function runCodexAppServerSideQuestion(params, options) {
|
|
|
451
466
|
items: [sideBoundaryPromptItem()]
|
|
452
467
|
}, {
|
|
453
468
|
timeoutMs: appServer.requestTimeoutMs,
|
|
454
|
-
signal:
|
|
469
|
+
signal: runAbortController.signal
|
|
455
470
|
});
|
|
456
471
|
const effort = usesSupervisionConnection ? void 0 : resolveReasoningEffort(params.resolvedThinkLevel ?? "off", modelSelection.model, readCodexSupportedReasoningEfforts(params.runtimeModel?.compat));
|
|
457
472
|
turnId = assertCodexTurnStartResponse(await client.request("turn/start", {
|
|
@@ -482,7 +497,7 @@ async function runCodexAppServerSideQuestion(params, options) {
|
|
|
482
497
|
}
|
|
483
498
|
}, {
|
|
484
499
|
timeoutMs: appServer.requestTimeoutMs,
|
|
485
|
-
signal:
|
|
500
|
+
signal: runAbortController.signal
|
|
486
501
|
}).catch((error) => {
|
|
487
502
|
if (isCodexAppServerIndeterminateRequestCancellationError(error)) turnId = "";
|
|
488
503
|
throw error;
|
|
@@ -499,7 +514,7 @@ async function runCodexAppServerSideQuestion(params, options) {
|
|
|
499
514
|
let text;
|
|
500
515
|
try {
|
|
501
516
|
text = await collector.wait({
|
|
502
|
-
signal:
|
|
517
|
+
signal: runAbortController.signal,
|
|
503
518
|
timeoutMs: Math.max(appServer.turnCompletionIdleTimeoutMs, SIDE_QUESTION_COMPLETION_TIMEOUT_MS)
|
|
504
519
|
});
|
|
505
520
|
} catch (error) {
|
|
@@ -622,6 +637,7 @@ function buildSideRunAttemptParams(params, options) {
|
|
|
622
637
|
authStorage: params.preparedRuntimeAuth.authStorage,
|
|
623
638
|
authProfileStore: params.preparedRuntimeAuth.authProfileStore,
|
|
624
639
|
modelRegistry: params.preparedRuntimeAuth.modelRegistry,
|
|
640
|
+
preparedModelRuntime: params.preparedModelRuntime,
|
|
625
641
|
...params.preparedRuntimeAuth.resolvedApiKey ? { resolvedApiKey: params.preparedRuntimeAuth.resolvedApiKey } : {},
|
|
626
642
|
runId: options.runId,
|
|
627
643
|
abortSignal: params.opts?.abortSignal,
|
|
@@ -641,6 +657,7 @@ async function createCodexSideToolBridge(input) {
|
|
|
641
657
|
};
|
|
642
658
|
const messageToolProvider = resolveCodexMessageToolProvider(input.params);
|
|
643
659
|
let tools = [];
|
|
660
|
+
const webFetchHostnameAllowlistRef = {};
|
|
644
661
|
if (supportsModelTools(runtimeModel)) {
|
|
645
662
|
const createOpenClawCodingTools = (await import("openclaw/plugin-sdk/agent-harness")).createOpenClawCodingTools;
|
|
646
663
|
const sandboxSessionKey = input.params.sandboxSessionKey?.trim() || input.params.sessionKey?.trim() || input.params.sessionId || input.sessionAgentId;
|
|
@@ -649,7 +666,8 @@ async function createCodexSideToolBridge(input) {
|
|
|
649
666
|
sessionKey: sandboxSessionKey,
|
|
650
667
|
workspaceDir: input.cwd
|
|
651
668
|
});
|
|
652
|
-
|
|
669
|
+
const toolConstructionPlan = resolveCodexNodePlacementToolConstructionPlan(sandbox, input.nativeToolSurfaceEnabled);
|
|
670
|
+
tools = filterCodexVisionTools(filterCodexDynamicTools(createOpenClawCodingTools({
|
|
653
671
|
agentId: input.sessionAgentId,
|
|
654
672
|
sessionKey: sandboxSessionKey,
|
|
655
673
|
runSessionKey: input.params.sessionKey && input.params.sessionKey !== sandboxSessionKey ? input.params.sessionKey : void 0,
|
|
@@ -662,6 +680,7 @@ async function createCodexSideToolBridge(input) {
|
|
|
662
680
|
resolvedWorkspace: input.params.workspaceDir ?? input.cwd
|
|
663
681
|
}),
|
|
664
682
|
config: input.params.cfg,
|
|
683
|
+
preparedModelRuntime: input.params.preparedModelRuntime,
|
|
665
684
|
abortSignal: input.signal,
|
|
666
685
|
modelProvider: runtimeModel.provider,
|
|
667
686
|
modelId: input.params.model,
|
|
@@ -670,6 +689,7 @@ async function createCodexSideToolBridge(input) {
|
|
|
670
689
|
modelContextWindowTokens: runtimeModel.contextWindow,
|
|
671
690
|
modelAuthMode: resolveModelAuthMode(runtimeModel.provider, input.params.cfg, void 0, { workspaceDir: input.cwd }),
|
|
672
691
|
suppressManagedWebSearch: false,
|
|
692
|
+
webFetchHostnameAllowlistRef,
|
|
673
693
|
...input.params.messageProvider || input.params.messageChannel ? {
|
|
674
694
|
messageProvider: messageToolProvider,
|
|
675
695
|
toolPolicyMessageProvider: input.params.messageProvider ?? input.params.messageChannel
|
|
@@ -698,12 +718,13 @@ async function createCodexSideToolBridge(input) {
|
|
|
698
718
|
currentChannelId: input.params.currentChannelId
|
|
699
719
|
}).channelId,
|
|
700
720
|
sandbox,
|
|
721
|
+
...toolConstructionPlan ? { toolConstructionPlan } : {},
|
|
701
722
|
emitBeforeToolCallDiagnostics: false,
|
|
702
723
|
modelHasVision: runtimeModel.input?.includes("image") ?? false,
|
|
703
724
|
requireExplicitMessageTarget: true
|
|
704
725
|
}), input.pluginConfig), {
|
|
705
726
|
modelHasVision: runtimeModel.input?.includes("image") ?? false,
|
|
706
|
-
|
|
727
|
+
nativeImageInspectionEnabled: input.nativeToolSurfaceEnabled
|
|
707
728
|
});
|
|
708
729
|
}
|
|
709
730
|
const requestedWebSearchPlan = resolveCodexWebSearchPlan({
|
|
@@ -712,6 +733,7 @@ async function createCodexSideToolBridge(input) {
|
|
|
712
733
|
nativeProviderWebSearchSupport: input.nativeProviderWebSearchSupport,
|
|
713
734
|
webSearchAllowed: tools.some((tool) => tool.name === "web_search")
|
|
714
735
|
});
|
|
736
|
+
webFetchHostnameAllowlistRef.value = requestedWebSearchPlan.webFetchHostnameAllowlist;
|
|
715
737
|
const webSearchPlan = requestedWebSearchPlan.kind === "managed" ? resolveCodexWebSearchPlan({
|
|
716
738
|
config: input.params.cfg,
|
|
717
739
|
webSearchAllowed: false
|