@openclaw/codex 2026.8.1-beta.3 → 2026.8.2
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 +5 -6
- package/dist/{attempt-client-cleanup-URjUlCHg.js → attempt-client-cleanup-CpVfwctT.js} +47 -5
- package/dist/{auth-binding-B4FfbcCg.js → auth-binding-Ds_QVm-X.js} +18 -3
- package/dist/{binding-connection-DAvZwp96.js → binding-connection-CF7BmrDk.js} +2 -2
- package/dist/{bounded-turn-4BjrZEwW.js → bounded-turn-DRC3hcjm.js} +16 -20
- package/dist/{capabilities-CH3K57v4.js → capabilities-D6m_TdVy.js} +1 -1
- package/dist/cli-metadata.js +1 -1
- package/dist/{command-formatters-D0nZ3qtd.js → command-formatters--UToCokS.js} +4 -3
- package/dist/{command-handlers-DC86lgT4.js → command-handlers-CLFx2Ypa.js} +114 -79
- package/dist/{compact-COqgBRny.js → compact-5xqW1oCh.js} +13 -12
- package/dist/{config-CpNeo5AE.js → config-CcYL77O6.js} +350 -288
- package/dist/{conversation-binding-data-CW2GuupV.js → conversation-binding-data-BiodpIzq.js} +2 -1
- package/dist/doctor-contract-api.js +121 -16
- package/dist/{dynamic-tools-fJZhl4CE.js → dynamic-tools-BmeXjwNZ.js} +243 -1002
- package/dist/{effective-mcp-catalog-4YKn51aG.js → effective-mcp-catalog-XXQKgK1U.js} +2 -2
- package/dist/{event-projector-assistant-message-BwxV4d6N.js → event-projector-assistant-message-C5-Ds8mA.js} +18 -1
- package/dist/{event-projector-usage-CLwNEJqW.js → event-projector-usage-B2r5vhWH.js} +9 -14
- package/dist/{harness-DoKQcF8n.js → harness-BgeB7LnD.js} +42 -52
- package/dist/harness.js +1 -1
- package/dist/index.js +308 -306
- package/dist/{isolated-completion-DPMtlH9r.js → isolated-completion-CxTus3vZ.js} +4 -4
- package/dist/launch-args-sXOAg0SX.js +84 -0
- package/dist/{managed-binary-By4FZC6i.js → managed-binary-ZkGodW19.js} +43 -7
- package/dist/media-understanding-provider.js +1 -1
- package/dist/model-catalog-DULBcniB.js +101 -0
- package/dist/{models-CZw1wClT.js → models-DaWfETQk.js} +27 -29
- package/dist/{native-subagent-monitor-GGq3RnOo.js → native-subagent-monitor-vXYUZH37.js} +226 -129
- package/dist/{node-exec-server.runtime-Bsu1LdFZ.js → node-exec-server.runtime-DirKVZ5h.js} +9 -6
- package/dist/{plugin-approval-roundtrip-C75Yiiwc.js → plugin-approval-roundtrip-CCWQGlAI.js} +2 -1
- package/dist/{plugin-marketplace-discovery-CSWDkMrP.js → plugin-marketplace-discovery-BXjIFEiw.js} +38 -46
- package/dist/{plugin-metadata-cache-BXH5NF-4.js → plugin-metadata-cache-DQQm4gWT.js} +163 -136
- package/dist/{protocol-validators-VAVyEnDp.js → protocol-validators-Bg5rpNxk.js} +148 -5
- package/dist/{rate-limits-BI1dMHDG.js → rate-limits-BqHEHXQJ.js} +3 -2
- package/dist/{sandbox-guard-C1qEeZ5C.js → request-BWxweEdK.js} +183 -2
- package/dist/{run-attempt-BV3HzuCf.js → run-attempt-BVLE4Gbi.js} +706 -517
- package/dist/{runtime-artifact-BvyT1uyd.js → runtime-artifact-D9pYp4zL.js} +3 -3
- package/dist/{session-binding-BTrLf9Qm.js → session-binding-D0zinCP1.js} +195 -122
- package/dist/{session-catalog-ezP_UcRM.js → session-catalog-eMhVm0Ql.js} +448 -313
- package/dist/session-catalog-home-id-Dt2GiG5o.js +112 -0
- package/dist/{session-cli-B1hKvfkI.js → session-cli-B2lyjJA0.js} +1 -1
- package/dist/session-history-C5J1AKzG.js +87 -0
- package/dist/session-permission-policy-ScnAyG90.js +160 -0
- package/dist/session-retirement-CtUtUTr9.js +90 -0
- package/dist/{session-upstream-marker-D_2npHlA.js → session-upstream-marker-gqrYIRHk.js} +2 -3
- package/dist/settled-turn-context-Bk3IUwod.js +290 -0
- package/dist/settled-turn-finalizer-BXLN9PfJ.js +104 -0
- package/dist/{shared-client-Dw-rzii0.js → shared-client-B1tT5U6r.js} +1738 -806
- package/dist/{side-question-DbXkJZzg.js → side-question-CZ-mCw-t.js} +76 -43
- package/dist/{thread-lifecycle-DKdrnTMX.js → thread-lifecycle-CGGKP720.js} +991 -455
- package/dist/{thread-ownership-i2NBwDUL.js → thread-ownership-RkaoZCmQ.js} +18 -8
- package/dist/{plugin-app-cache-key-DMNQ8Zi8.js → thread-resume-BFt1-ZDa.js} +55 -8
- package/dist/{transcript-mirror-BU0_LKAL.js → transcript-mirror-1ep4XjzF.js} +124 -18
- package/dist/transport-stdio-NT_Dpd9V.js +724 -0
- package/dist/{upstream-prompt-provenance-CFmsKwr9.js → upstream-prompt-provenance-LphB8slG.js} +8 -4
- package/dist/{upstream-session-fork-BDVJCLAD.js → upstream-session-fork-Dc8BFExw.js} +76 -90
- package/dist/{usage-9dKJCgcy.js → usage-DUhd58gI.js} +3 -3
- package/dist/{web-search-provider.runtime-DCdx4DGu.js → web-search-provider.runtime-BEmlE7ov.js} +3 -3
- package/openclaw.plugin.json +19 -1
- package/package.json +8 -8
- package/dist/app-server-policy-bg5QPSVP.js +0 -25
- package/dist/command-rpc-xUIIonsO.js +0 -90
- package/dist/incognito-session-ET_ufDH-.js +0 -2
- package/dist/model-catalog-CmGoqVKB.js +0 -48
- package/dist/request-DSK0W6YI.js +0 -157
- package/dist/session-catalog-home-id-BNwAJ9D7.js +0 -18
- package/dist/session-retirement-CE4iMiLh.js +0 -36
- package/dist/settled-turn-finalizer-Dx1onIqg.js +0 -328
- package/dist/thread-resume-CdJk2Ehf.js +0 -30
- package/dist/transport-stdio-DhoGy33Z.js +0 -99
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { d as sessionBindingIdentity } from "./session-binding-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { n as
|
|
10
|
-
import { n as resolveCodexBindingAppServerConnection, t as requireCodexSupervisionModelSelection } from "./binding-connection-
|
|
11
|
-
import {
|
|
1
|
+
import { C as isCodexRemoteExecPlacementSandbox, D as resolveOpenClawExecPolicyForCodexAppServer, S as isCodexPairedNodeRemoteExecPlacementSandbox, T as readCodexPluginConfig, m as resolveCodexModelBackedReviewerPolicyContext, p as canUseCodexModelBackedApprovalsReviewerForModel, r as resolveCodexAppServerHomeScope, u as shouldAutoApproveCodexAppServerApprovals, v as readCodexRequirementsToml, w as isCodexSandboxExecServerEnabled } from "./config-CcYL77O6.js";
|
|
2
|
+
import { C as withLeasedCodexAppServerClientStartSelectionRetry, Ht as isJsonObject, K as isCodexAppServerIndeterminateRequestCancellationError, Lt as resolveCodexAppServerPreparedAuthHandoff, Ot as readRecentCodexRateLimits, U as isCodexAppServerApprovalRequest, _t as ensureCodexAppServerClientRuntime, at as resolveDynamicToolCallTimeoutMs, c as getLeasedSharedCodexAppServerClient, dt as resolveCodexToolAbortTerminalReason, et as createCodexElicitationResponse, m as releaseCodexAppServerClientLease, tt as handleDynamicToolCallWithTimeout } from "./shared-client-B1tT5U6r.js";
|
|
3
|
+
import { d as sessionBindingIdentity } from "./session-binding-D0zinCP1.js";
|
|
4
|
+
import { a as assertCodexThreadForkResponse, c as assertCodexTurnStartResponse, d as readCodexTurn, l as readCodexDynamicToolCallParams } from "./protocol-validators-Bg5rpNxk.js";
|
|
5
|
+
import { f as unsubscribeCodexThreadBestEffort, g as isCodexNotificationForTurn, s as isCodexAlreadyTerminalInterruptError, u as retireUnsafeCodexTurnClientBestEffort } from "./attempt-client-cleanup-CpVfwctT.js";
|
|
6
|
+
import { A as readCodexSupportedReasoningEfforts, E as resolveCodexAppServerRequestModelSelection, L as filterCodexDynamicTools, O as resolveCodexBindingModelProviderFallback, T as resolveCodexAppServerModelProvider, U as resolveCodexDynamicToolsLoading, c as buildCodexNativeHookRelayConfig, d as emitCodexNativePreToolUseFailureDiagnostic, et as buildCodexPluginAppsConfigPatchFromPolicyContext, k as resolveReasoningEffort, l as buildCodexNativeHookRelayDisabledConfig, o as CODEX_NATIVE_HOOK_RELAY_EVENTS, ot as mergeCodexThreadConfigs, v as buildCodexRuntimeThreadConfig, w as CODEX_NATIVE_PERSONALITY_NONE, x as resolveCodexWebSearchPlan } from "./thread-lifecycle-CGGKP720.js";
|
|
7
|
+
import { s as resolveCodexNativeExecutionBlock } from "./request-BWxweEdK.js";
|
|
8
|
+
import { n as formatCodexUsageLimitErrorMessage } from "./rate-limits-BqHEHXQJ.js";
|
|
9
|
+
import { a as resolveCodexAppServerForModelProvider, i as resolveCodexSessionPermissionCwd, n as applyCodexSessionPermissionPolicy, r as resolveCodexEffectiveSessionPermissionPolicy, t as CODEX_SESSION_PERMISSION_EXEC_MODES } from "./session-permission-policy-ScnAyG90.js";
|
|
10
|
+
import { n as resolveCodexBindingAppServerConnection, t as requireCodexSupervisionModelSelection } from "./binding-connection-CF7BmrDk.js";
|
|
11
|
+
import { C as shouldRequireCodexSandboxExecServerEnvironment, D as CodexNativeToolLifecycleProjector, S as shouldEnableCodexAppServerNativeToolSurface, T as filterCodexVisionTools, a as emitDynamicToolStartedDiagnostic, b as resolveCodexNodePlacementToolConstructionPlan, d as releaseCodexSandboxExecServerEnvironment, i as emitDynamicToolErrorDiagnostic, l as resolveCodexProviderWebSearchSupportForClient, o as emitDynamicToolTerminalDiagnostic, r as routeCodexAppServerElicitationRequest, s as handleCodexAppServerApprovalRequest, t as createCodexDynamicToolBridge, u as ensureCodexSandboxExecServerEnvironment, v as resolveCodexExternalSandboxPolicyForOpenClawSandbox, x as resolveCodexSandboxEnvironmentSelection, y as resolveCodexMessageToolProvider } from "./dynamic-tools-BmeXjwNZ.js";
|
|
12
12
|
import { readStringField } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
13
|
-
import { buildAgentHookContextChannelFields, embeddedAgentLog, formatErrorMessage, registerNativeHookRelay, resolveAgentDir, resolveAttemptSpawnWorkspaceDir, resolveModelAuthMode, resolveSandboxContext,
|
|
13
|
+
import { buildAgentHookContextChannelFields, embeddedAgentLog, formatErrorMessage, registerNativeHookRelay, resolveAgentDir, resolveAttemptSpawnWorkspaceDir, resolveModelAuthMode, resolveSandboxContext, supportsModelTools } from "openclaw/plugin-sdk/agent-harness-runtime";
|
|
14
14
|
import { randomUUID } from "node:crypto";
|
|
15
|
+
import { resolveAgentWorkspaceDir } from "openclaw/plugin-sdk/agent-runtime";
|
|
16
|
+
import { resolveSessionAgentIdsStrict } from "openclaw/plugin-sdk/agent-scope-runtime";
|
|
15
17
|
import { loadExecApprovals } from "openclaw/plugin-sdk/exec-approvals-runtime";
|
|
16
18
|
//#region extensions/codex/src/app-server/side-question.ts
|
|
17
19
|
const SIDE_QUESTION_COMPLETION_TIMEOUT_MS = 6e5;
|
|
@@ -21,8 +23,8 @@ var CodexSideQuestionTimeoutError = class extends Error {
|
|
|
21
23
|
this.name = "TimeoutError";
|
|
22
24
|
}
|
|
23
25
|
};
|
|
24
|
-
const CODEX_SIDE_NATIVE_HOOK_RELAY_MIN_TTL_MS =
|
|
25
|
-
const CODEX_SIDE_NATIVE_HOOK_RELAY_TTL_GRACE_MS =
|
|
26
|
+
const CODEX_SIDE_NATIVE_HOOK_RELAY_MIN_TTL_MS = 18e5;
|
|
27
|
+
const CODEX_SIDE_NATIVE_HOOK_RELAY_TTL_GRACE_MS = 3e5;
|
|
26
28
|
const CODEX_SIDE_NATIVE_HOOK_RELAY_STARTUP_REQUEST_COUNT = 3;
|
|
27
29
|
const CODEX_SIDE_NATIVE_HOOK_RELAY_EVENTS_WITH_APP_SERVER_APPROVALS = CODEX_NATIVE_HOOK_RELAY_EVENTS.filter((event) => event !== "permission_request");
|
|
28
30
|
const SIDE_BOUNDARY_PROMPT = `Side conversation boundary.
|
|
@@ -57,15 +59,18 @@ async function runCodexAppServerSideQuestion(params, options) {
|
|
|
57
59
|
config: params.cfg
|
|
58
60
|
}));
|
|
59
61
|
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
|
|
62
|
+
if (isCodexPairedNodeRemoteExecPlacementSandbox(params.sandbox)) throw new Error("Normal Codex turns are supported on nodes, but /btw is not yet bound to the active placement.");
|
|
61
63
|
const pluginConfig = readCodexPluginConfig(options.pluginConfig);
|
|
62
|
-
const { sessionAgentId } =
|
|
64
|
+
const { sessionAgentId } = resolveSessionAgentIdsStrict({
|
|
63
65
|
sessionKey: params.sessionKey,
|
|
64
66
|
config: params.cfg,
|
|
65
67
|
agentId: params.agentId
|
|
66
68
|
});
|
|
69
|
+
const agentWorkspaceDir = params.workspaceDir?.trim() || resolveAgentWorkspaceDir(params.cfg, sessionAgentId);
|
|
67
70
|
const execPolicy = resolveOpenClawExecPolicyForCodexAppServer({
|
|
68
|
-
|
|
71
|
+
permissionMode: params.sessionEntry.permissionMode,
|
|
72
|
+
execOverrides: params.sessionEntry.permissionMode ? { mode: CODEX_SESSION_PERMISSION_EXEC_MODES[params.sessionEntry.permissionMode] } : void 0,
|
|
73
|
+
approvals: params.sessionEntry.permissionMode === "full" ? void 0 : loadExecApprovals(),
|
|
69
74
|
config: params.cfg,
|
|
70
75
|
agentId: sessionAgentId
|
|
71
76
|
});
|
|
@@ -125,8 +130,41 @@ async function runCodexAppServerSideQuestion(params, options) {
|
|
|
125
130
|
config: params.cfg,
|
|
126
131
|
agentDir: params.agentDir
|
|
127
132
|
});
|
|
128
|
-
const
|
|
129
|
-
|
|
133
|
+
const reviewerContext = {
|
|
134
|
+
modelProvider: reviewerPolicyContext.modelProvider,
|
|
135
|
+
model: reviewerPolicyContext.model,
|
|
136
|
+
config: params.cfg,
|
|
137
|
+
env: process.env,
|
|
138
|
+
agentDir: params.agentDir
|
|
139
|
+
};
|
|
140
|
+
const appServer = resolveCodexAppServerForModelProvider({
|
|
141
|
+
appServer: applyCodexSessionPermissionPolicy({
|
|
142
|
+
appServer: connection.appServer,
|
|
143
|
+
permissionMode: params.sessionEntry.permissionMode,
|
|
144
|
+
sessionRoot: params.sessionEntry.sessionRoot,
|
|
145
|
+
defaultRoot: agentWorkspaceDir,
|
|
146
|
+
pluginConfig,
|
|
147
|
+
canUseAutoReview: canUseCodexModelBackedApprovalsReviewerForModel(reviewerContext),
|
|
148
|
+
requirementsToml: readCodexRequirementsToml({}),
|
|
149
|
+
policyLocked: usesSupervisionConnection,
|
|
150
|
+
execMode: execPolicy.mode
|
|
151
|
+
}),
|
|
152
|
+
...reviewerContext,
|
|
153
|
+
provider: reviewerContext.modelProvider
|
|
154
|
+
});
|
|
155
|
+
const sessionPermissionPolicy = resolveCodexEffectiveSessionPermissionPolicy({
|
|
156
|
+
appServer,
|
|
157
|
+
permissionMode: params.sessionEntry.permissionMode,
|
|
158
|
+
sessionRoot: params.sessionEntry.sessionRoot,
|
|
159
|
+
defaultRoot: agentWorkspaceDir
|
|
160
|
+
});
|
|
161
|
+
const cwd = resolveCodexSessionPermissionCwd({
|
|
162
|
+
permissionMode: params.sessionEntry.permissionMode,
|
|
163
|
+
sessionRoot: params.sessionEntry.sessionRoot,
|
|
164
|
+
defaultRoot: agentWorkspaceDir,
|
|
165
|
+
requestedCwd: binding.cwd,
|
|
166
|
+
fallbackCwd: agentWorkspaceDir
|
|
167
|
+
});
|
|
130
168
|
const runId = params.opts?.runId ?? randomUUID();
|
|
131
169
|
const effectiveParams = supervisionModelSelection ? {
|
|
132
170
|
...params,
|
|
@@ -153,6 +191,9 @@ async function runCodexAppServerSideQuestion(params, options) {
|
|
|
153
191
|
runId,
|
|
154
192
|
timeoutMs: appServer.requestTimeoutMs
|
|
155
193
|
});
|
|
194
|
+
sideRunParams.permissionMode = sessionPermissionPolicy?.mode;
|
|
195
|
+
sideRunParams.sessionRoot = sessionPermissionPolicy?.root;
|
|
196
|
+
sideRunParams.execOverrides = sessionPermissionPolicy && { mode: sessionPermissionPolicy.execMode };
|
|
156
197
|
const sandboxExecServerEnabled = isCodexSandboxExecServerEnabled(pluginConfig, params.sandbox);
|
|
157
198
|
const nativeToolSurfaceEnabled = shouldEnableCodexAppServerNativeToolSurface(sideRunParams, params.sandbox ?? void 0, {
|
|
158
199
|
agentId: sideRunParams.agentId,
|
|
@@ -262,23 +303,8 @@ async function runCodexAppServerSideQuestion(params, options) {
|
|
|
262
303
|
sandboxEnvironmentClient = targetClient;
|
|
263
304
|
};
|
|
264
305
|
try {
|
|
265
|
-
const
|
|
266
|
-
|
|
267
|
-
provider: reviewerPolicyContext.modelProvider,
|
|
268
|
-
model: reviewerPolicyContext.model,
|
|
269
|
-
config: params.cfg,
|
|
270
|
-
env: process.env,
|
|
271
|
-
agentDir: params.agentDir
|
|
272
|
-
});
|
|
273
|
-
const useModelScopedPolicy = !canUseCodexModelBackedApprovalsReviewerForModel({
|
|
274
|
-
modelProvider: reviewerPolicyContext.modelProvider,
|
|
275
|
-
model: reviewerPolicyContext.model,
|
|
276
|
-
config: params.cfg,
|
|
277
|
-
env: process.env,
|
|
278
|
-
agentDir: params.agentDir
|
|
279
|
-
});
|
|
280
|
-
const approvalPolicy = useModelScopedPolicy ? modelScopedAppServer.approvalPolicy : binding.approvalPolicy ?? modelScopedAppServer.approvalPolicy;
|
|
281
|
-
const sandbox = useModelScopedPolicy ? modelScopedAppServer.sandbox : binding.sandbox ?? modelScopedAppServer.sandbox;
|
|
306
|
+
const approvalPolicy = appServer.approvalPolicy;
|
|
307
|
+
const sandbox = appServer.sandbox;
|
|
282
308
|
const { toolBridge, webSearchPlan } = await createCodexSideToolBridge({
|
|
283
309
|
params: effectiveParams,
|
|
284
310
|
cwd,
|
|
@@ -294,6 +320,7 @@ async function runCodexAppServerSideQuestion(params, options) {
|
|
|
294
320
|
modelProviderOverride: modelSelection.modelProvider,
|
|
295
321
|
signal: runAbortController.signal
|
|
296
322
|
}) : "unsupported",
|
|
323
|
+
sessionPermissionPolicy,
|
|
297
324
|
runId,
|
|
298
325
|
signal: runAbortController.signal
|
|
299
326
|
});
|
|
@@ -329,7 +356,7 @@ async function runCodexAppServerSideQuestion(params, options) {
|
|
|
329
356
|
nativeHookRelay,
|
|
330
357
|
autoApprove: shouldAutoApproveCodexAppServerApprovals({
|
|
331
358
|
approvalPolicy,
|
|
332
|
-
networkProxy:
|
|
359
|
+
networkProxy: appServer.networkProxy,
|
|
333
360
|
sandbox
|
|
334
361
|
}),
|
|
335
362
|
signal: runAbortController.signal,
|
|
@@ -434,7 +461,8 @@ async function runCodexAppServerSideQuestion(params, options) {
|
|
|
434
461
|
nativeCodeModeEnabled: nativeToolSurfaceEnabled,
|
|
435
462
|
nativeCodeModeOnlyEnabled: appServer.codeModeOnly
|
|
436
463
|
});
|
|
437
|
-
const
|
|
464
|
+
const pluginAppsConfigPatch = binding.pluginAppPolicyContext ? buildCodexPluginAppsConfigPatchFromPolicyContext(binding.pluginAppPolicyContext) : void 0;
|
|
465
|
+
const threadConfig = mergeCodexThreadConfigs(nativeHookRelayConfig, runtimeThreadConfig, pluginAppsConfigPatch, appServer.networkProxy?.configPatch) ?? runtimeThreadConfig;
|
|
438
466
|
const forkResponse = assertCodexThreadForkResponse(await withLeasedCodexAppServerClientStartSelectionRetry({
|
|
439
467
|
lease: clientLease,
|
|
440
468
|
options: clientOptions,
|
|
@@ -447,15 +475,16 @@ async function runCodexAppServerSideQuestion(params, options) {
|
|
|
447
475
|
model: modelSelection.model,
|
|
448
476
|
...modelSelection.modelProvider ? { modelProvider: modelSelection.modelProvider } : {},
|
|
449
477
|
cwd: executionCwd,
|
|
478
|
+
...sessionPermissionPolicy ? { runtimeWorkspaceRoots: [sessionPermissionPolicy.root] } : {},
|
|
450
479
|
approvalPolicy,
|
|
451
|
-
approvalsReviewer:
|
|
452
|
-
...sandboxEnvironment ||
|
|
480
|
+
approvalsReviewer: appServer.approvalsReviewer,
|
|
481
|
+
...sandboxEnvironment || appServer.networkProxy ? {} : { sandbox },
|
|
453
482
|
...serviceTier ? { serviceTier } : {},
|
|
454
483
|
config: threadConfig,
|
|
455
484
|
developerInstructions: SIDE_DEVELOPER_INSTRUCTIONS,
|
|
456
485
|
ephemeral: true,
|
|
457
486
|
threadSource: "user"
|
|
458
|
-
}, requestOptions);
|
|
487
|
+
}, requestOptions());
|
|
459
488
|
},
|
|
460
489
|
onClientChange: rebindClientHandlers
|
|
461
490
|
}));
|
|
@@ -667,11 +696,13 @@ async function createCodexSideToolBridge(input) {
|
|
|
667
696
|
workspaceDir: input.cwd
|
|
668
697
|
});
|
|
669
698
|
const toolConstructionPlan = resolveCodexNodePlacementToolConstructionPlan(sandbox, input.nativeToolSurfaceEnabled);
|
|
670
|
-
|
|
699
|
+
const allTools = createOpenClawCodingTools({
|
|
671
700
|
agentId: input.sessionAgentId,
|
|
672
701
|
sessionKey: sandboxSessionKey,
|
|
673
702
|
runSessionKey: input.params.sessionKey && input.params.sessionKey !== sandboxSessionKey ? input.params.sessionKey : void 0,
|
|
674
703
|
sessionId: input.params.sessionId,
|
|
704
|
+
exec: input.sessionPermissionPolicy && { mode: input.sessionPermissionPolicy.execMode },
|
|
705
|
+
sessionPermissionPolicy: input.sessionPermissionPolicy,
|
|
675
706
|
runId: input.runId,
|
|
676
707
|
agentDir: input.params.agentDir ?? resolveAgentDir(input.params.cfg ?? {}, input.sessionAgentId),
|
|
677
708
|
workspaceDir: input.cwd,
|
|
@@ -722,7 +753,9 @@ async function createCodexSideToolBridge(input) {
|
|
|
722
753
|
emitBeforeToolCallDiagnostics: false,
|
|
723
754
|
modelHasVision: runtimeModel.input?.includes("image") ?? false,
|
|
724
755
|
requireExplicitMessageTarget: true
|
|
725
|
-
})
|
|
756
|
+
});
|
|
757
|
+
const codexFilteredTools = filterCodexDynamicTools(allTools, input.pluginConfig);
|
|
758
|
+
tools = filterCodexVisionTools(codexFilteredTools, {
|
|
726
759
|
modelHasVision: runtimeModel.input?.includes("image") ?? false,
|
|
727
760
|
nativeImageInspectionEnabled: input.nativeToolSurfaceEnabled
|
|
728
761
|
});
|