@openclaw/codex 2026.10.6 → 2026.10.8
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/README.md +2 -0
- package/dist/.setup/{account-usage-runtime-E3SrjJVn.mjs → account-usage-runtime-lUj2JqSj.mjs} +3 -3
- package/dist/.setup/{app-server-policy-V8zuN8q_.mjs → app-server-policy-CF-JwGUD.mjs} +1 -1
- package/dist/.setup/{apply-C3s-1Zxe.mjs → apply-DjTVE_db.mjs} +8 -8
- package/dist/.setup/{attempt-client-cleanup-BVww-ct8.mjs → attempt-client-cleanup-BmPBqnW3.mjs} +5 -5
- package/dist/.setup/{attempt-workspace-context-BkA0W8Jy.mjs → attempt-workspace-context-EAeScFrg.mjs} +1 -1
- package/dist/.setup/{auth-binding-BFTkrP_b.mjs → auth-binding-D1TJwzWf.mjs} +1 -1
- package/dist/.setup/{auth-cache-key-CXK7tmkb.mjs → auth-cache-key-8VTsPn2f.mjs} +3 -3
- package/dist/.setup/{binding-connection-C0t9TBX_.mjs → binding-connection-BIo1-hoT.mjs} +2 -2
- package/dist/.setup/{binding-connection.runtime-Wdm5G_bw.mjs → binding-connection.runtime-C5yDsKBQ.mjs} +1 -1
- package/dist/.setup/{bounded-turn-vdpL2efh.mjs → bounded-turn-DByEneJg.mjs} +11 -11
- package/dist/.setup/{bounded-turn-isolation-CIQJykuM.mjs → bounded-turn-isolation-BRNgfoRl.mjs} +2 -2
- package/dist/.setup/{build-state-DPMC9C_U.mjs → build-state-vxQdf_74.mjs} +1 -1
- package/dist/.setup/{client-Div-zqnz.mjs → client-BTWv2cJe.mjs} +8 -8
- package/dist/.setup/{client-catalog-response-Dtob_lVt.mjs → client-catalog-response-CEZTmNz3.mjs} +1 -1
- package/dist/.setup/{command-dispatch-ByO36LmS.mjs → command-dispatch-rxpyy4f6.mjs} +1 -1
- package/dist/.setup/{command-handlers-CJqo6LZS.mjs → command-handlers-D6utyBA8.mjs} +22 -22
- package/dist/.setup/{command-rpc-Co0UzT-T.mjs → command-rpc-CloxIlVK.mjs} +11 -11
- package/dist/.setup/{compact-CzNBg4cQ.mjs → compact-CIJFn4Bi.mjs} +13 -13
- package/dist/.setup/{computer-use-BcDrQlxi.mjs → computer-use-vLGHqSOu.mjs} +7 -7
- package/dist/.setup/{config-LQemoqTL.mjs → config-d0gOFYEk.mjs} +2 -2
- package/dist/.setup/{config-runtime-DGB1-VbB.mjs → config-runtime-BUH-IDVE.mjs} +1 -1
- package/dist/.setup/{conversation-binding-Dcv7_rs-.mjs → conversation-binding-BUw0IM5Z.mjs} +15 -15
- package/dist/.setup/{conversation-binding-data-GRGSgAro.mjs → conversation-binding-data-BqzGWkPW.mjs} +1 -1
- package/dist/.setup/{conversation-control-BtPxevoK.mjs → conversation-control-D5qVEey9.mjs} +3 -3
- package/dist/.setup/{doctor-start-options-C28ek2hD.mjs → doctor-start-options-DyLrwtq-.mjs} +3 -3
- package/dist/.setup/{dynamic-tool-build-DjbDZzOJ.mjs → dynamic-tool-build-OWTT0wP-.mjs} +3 -3
- package/dist/.setup/{dynamic-tools-75qoSOch.mjs → dynamic-tools-CygReZGj.mjs} +8 -8
- package/dist/.setup/{effective-mcp-catalog-Dz0J8iAj.mjs → effective-mcp-catalog-B_4Dtkdg.mjs} +6 -6
- package/dist/.setup/{ephemeral-turn-K_d99r9P.mjs → ephemeral-turn-B1Na_xCj.mjs} +2 -2
- package/dist/.setup/{inference-proxy-DSnaS-uS.mjs → inference-proxy-BZgN5W8m.mjs} +3 -3
- package/dist/.setup/{isolated-completion-dNt4kRLw.mjs → isolated-completion-DGCmR0Q8.mjs} +5 -5
- package/dist/.setup/{managed-binary-DwC9wxch.mjs → managed-binary-Boj8_lWV.mjs} +1 -1
- package/dist/.setup/{mcp-app-session-preparation-C7LyxbAm.mjs → mcp-app-session-preparation-DFvoViz9.mjs} +8 -8
- package/dist/.setup/{model-catalog-BRJ7RMXY.mjs → model-catalog-CCr0L7T4.mjs} +7 -7
- package/dist/.setup/{models-CusrgpiY.mjs → models-CPdqFOZS.mjs} +3 -3
- package/dist/.setup/native-assignment-repair-BjS4uyQr.mjs +162 -0
- package/dist/.setup/{native-auth-CveRfTpz.mjs → native-auth-TAGxZP-r.mjs} +3 -3
- package/dist/.setup/{native-hook-relay-BvwSj5bt.mjs → native-hook-relay-VHeLdZXU.mjs} +4 -4
- package/dist/.setup/{native-mcp-app-DDEtVQED.mjs → native-mcp-app-ly1JuStw.mjs} +5 -5
- package/dist/.setup/{native-skill-isolation-Cx2AkUco.mjs → native-skill-isolation--6M-3BWV.mjs} +3 -3
- package/dist/.setup/{native-subagent-monitor-CBYFkNsB.mjs → native-subagent-monitor-CuNglHrq.mjs} +161 -53
- package/dist/.setup/{native-subagent-pending-assignments-DmVhedNs.mjs → native-subagent-pending-assignments-BAOzwy85.mjs} +49 -11
- package/dist/.setup/{native-task-assignments-DYL9uxNe.mjs → native-task-assignments-Dap5NqiR.mjs} +4 -4
- package/dist/.setup/{node-cli-sessions-BxVYZNuY.mjs → node-cli-sessions-BQNAFnCa.mjs} +2 -2
- package/dist/.setup/{node-exec-server.runtime-8RehgPdQ.mjs → node-exec-server.runtime-B-4ogz9C.mjs} +2 -2
- package/dist/.setup/{plan-BKFbfVsV.mjs → plan-CqI4m0CC.mjs} +5 -5
- package/dist/.setup/{plugin-activation-BgfNFH2L.mjs → plugin-activation-Dbq2m2gh.mjs} +2 -2
- package/dist/.setup/{plugin-approval-roundtrip-CXXXhuKi.mjs → plugin-approval-roundtrip-DIE4DZ9S.mjs} +1 -1
- package/dist/.setup/{plugin-inventory-OhiCoyPH.mjs → plugin-inventory-CZLnMaxf.mjs} +1 -1
- package/dist/.setup/{project-doc-thread-config-D_sWbxFR.mjs → project-doc-thread-config-BYFXSVGk.mjs} +3 -3
- package/dist/.setup/{provider-BVV8SWlx.mjs → provider-CBlKf65x.mjs} +4 -4
- package/dist/.setup/{provider-capabilities-B-pTlDsf.mjs → provider-capabilities-BIyUe_cz.mjs} +10 -3
- package/dist/.setup/{request-m-H-7FMu.mjs → request-6bus8ebp.mjs} +5 -5
- package/dist/.setup/{run-attempt-Ch1emiZE.mjs → run-attempt-BcePYT3A.mjs} +168 -86
- package/dist/.setup/{runtime-artifact-CCPLKFGR.mjs → runtime-artifact-Ch7fCcgJ.mjs} +3 -3
- package/dist/.setup/{runtime-artifact-connection-dFoSOKy7.mjs → runtime-artifact-connection-C3ootnwd.mjs} +2 -2
- package/dist/.setup/{sandbox-guard-Cf9XMRrg.mjs → sandbox-guard-CwOc36_1.mjs} +1 -1
- package/dist/.setup/{session-binding-BDnNz-Co.mjs → session-binding-_RE7vtVN.mjs} +38 -12
- package/dist/.setup/{session-binding-record-C2kDBZhx.mjs → session-binding-record-O62ZRFhy.mjs} +2 -2
- package/dist/.setup/{session-binding-sidecars-DijNZb31.mjs → session-binding-sidecars-CAHe3enw.mjs} +1 -1
- package/dist/.setup/{session-catalog-adoption-Cl6fHxS5.mjs → session-catalog-adoption-DuChFASf.mjs} +5 -5
- package/dist/.setup/{session-catalog-archive-CUU7jEkO.mjs → session-catalog-archive-Bs5cP3zm.mjs} +5 -5
- package/dist/.setup/{session-catalog-events-BBV3DMG7.mjs → session-catalog-events-C8i0HBz5.mjs} +4 -4
- package/dist/.setup/{session-catalog-index-order-B30rjUEJ.mjs → session-catalog-index-order-CTSrDiE1.mjs} +1 -1
- package/dist/.setup/{session-catalog-index-B00GIRi3.mjs → session-catalog-index-zqaZhwr2.mjs} +8 -8
- package/dist/.setup/{session-catalog-limits-Daqt3JLk.mjs → session-catalog-limits-9Ay62KQ0.mjs} +1 -1
- package/dist/.setup/{session-catalog-list-request-SJyGz02j.mjs → session-catalog-list-request-uKKvUIoN.mjs} +3 -3
- package/dist/.setup/{session-catalog-native-projection-BJupfCyt.mjs → session-catalog-native-projection-C6KOqnIb.mjs} +4 -4
- package/dist/.setup/{session-catalog-node-adoption-D11N0CMr.mjs → session-catalog-node-adoption-BjYvYtAd.mjs} +2 -2
- package/dist/.setup/{session-catalog-node-continue-Ct62GeL1.mjs → session-catalog-node-continue-BEI9D3ev.mjs} +5 -5
- package/dist/.setup/{session-catalog-node-lookup-DQVe6vhs.mjs → session-catalog-node-lookup-CBomNvUN.mjs} +2 -2
- package/dist/.setup/{session-catalog-parsing-B4OyhylL.mjs → session-catalog-parsing-DmZmgRou.mjs} +1 -1
- package/dist/.setup/{session-catalog-projection-CYgFTaYm.mjs → session-catalog-projection-DD5m0grG.mjs} +4 -4
- package/dist/.setup/{session-catalog-source-Xt6-hNns.mjs → session-catalog-source-0x1LVwV-.mjs} +1 -1
- package/dist/.setup/{session-cli-BoJSZfGd.mjs → session-cli-B1f7NqXo.mjs} +1 -1
- package/dist/.setup/{session-history-import-DgwRu2eD.mjs → session-history-import-BhOzqhyI.mjs} +4 -4
- package/dist/.setup/{session-history.worker-DJQfek5p.mjs → session-history.worker-D2v5yRcB.mjs} +5 -3
- package/dist/.setup/{session-initialization-BjVtsTzi.mjs → session-initialization-Bwe0Bikj.mjs} +1 -1
- package/dist/.setup/{session-retirement-DIqF1vQ4.mjs → session-retirement-BIFmgIgn.mjs} +6 -6
- package/dist/.setup/{settled-turn-finalizer-dVv34G_E.mjs → settled-turn-finalizer-9WZ-Hnwo.mjs} +5 -5
- package/dist/.setup/{shared-client-CNGDTv68.mjs → shared-client-Bo9MCCKj.mjs} +59 -14
- package/dist/.setup/{side-question-D1Wa21s9.mjs → side-question-GmfBHNHK.mjs} +17 -17
- package/dist/.setup/{source-DyVuYlTN.mjs → source-C4Al9cJx.mjs} +4 -4
- package/dist/.setup/{thread-lifecycle-run-DjSfTw6v.mjs → thread-lifecycle-run-avZbRAjm.mjs} +56 -20
- package/dist/.setup/{thread-ownership-BBsOFzCM.mjs → thread-ownership-C5Hpc-Q1.mjs} +4 -4
- package/dist/.setup/{thread-policy-BEiS7ITh.mjs → thread-policy-BFLbIpIt.mjs} +3 -3
- package/dist/.setup/{thread-requests-DjyDmCo4.mjs → thread-requests-pX9_RXpU.mjs} +2 -2
- package/dist/.setup/{thread-resume-BqOca2Iy.mjs → thread-resume-LBLXiIEh.mjs} +4 -4
- package/dist/.setup/{transcript-mirror-DVEzdOs0.mjs → transcript-mirror-CPdcVWTn.mjs} +1 -1
- package/dist/.setup/{transport-stdio-lgeKKHyw.mjs → transport-stdio-BsXQmXll.mjs} +1 -1
- package/dist/.setup/{transport-websocket-CEBjEtFP.mjs → transport-websocket-B5mq2Iq2.mjs} +1 -1
- package/dist/.setup/{turn-router-DM0fRrYI.mjs → turn-router-Ba0-h2NE.mjs} +1 -1
- package/dist/.setup/{upstream-session-fork-CxgShpwe.mjs → upstream-session-fork-C34T_h_K.mjs} +17 -17
- package/dist/.setup/{usage-DV8T9Yau.mjs → usage-BHTnwsjV.mjs} +3 -3
- package/dist/.setup/{usage-limit-error-ryR1PGou.mjs → usage-limit-error-YNy7uINJ.mjs} +1 -1
- package/dist/.setup/{web-search-provider.runtime-DkciK2gS.mjs → web-search-provider.runtime-BOqY-zot.mjs} +2 -2
- package/dist/.setup/{workspace-write-sandbox-probe-DvfWTvuR.mjs → workspace-write-sandbox-probe-DB6Y3XLX.mjs} +2 -2
- package/dist/.source-module-urls/a8ffe2b9525179f031f130700992add0f356b5fe3e562c8e70b2801696da5134.json +1 -0
- package/dist/api.js +3 -3
- package/dist/catalog-page.worker.js +1 -1
- package/dist/cli-metadata.js +1 -1
- package/dist/doctor-contract-api.js +14 -5
- package/dist/harness.js +20 -20
- package/dist/index.js +68 -58
- package/dist/media-understanding-provider.js +2 -2
- package/dist/migration-provider-api.js +1 -1
- package/dist/provider-discovery.js +1 -1
- package/dist/session-history-worker-runtime.js +4 -2
- package/dist/session-history.worker.js +1 -1
- package/openclaw.plugin.json +5 -0
- package/package.json +5 -5
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { n as readCodexRuntimeModelId } from "./model-runtime-BdqzOMkU.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { _ as createCodexNativeSubagentHistoryOwner } from "./native-subagent-pending-assignments-BAOzwy85.mjs";
|
|
3
3
|
import { i as isJsonObject, r as flattenCodexDynamicToolFunctions } from "./protocol-CANUwXJ3.mjs";
|
|
4
|
-
import { i as matchesCodexNativeSubagentSubmissionBinding, m as sessionBindingIdentity, n as assertCodexBindingMayBeReplaced } from "./session-binding-record-
|
|
5
|
-
import { n as defineCodexBuildState } from "./build-state-
|
|
4
|
+
import { i as matchesCodexNativeSubagentSubmissionBinding, m as sessionBindingIdentity, n as assertCodexBindingMayBeReplaced } from "./session-binding-record-O62ZRFhy.mjs";
|
|
5
|
+
import { n as defineCodexBuildState } from "./build-state-vxQdf_74.mjs";
|
|
6
6
|
import { c as withMcpElicitationsApprovalPolicy, d as readCodexRequirementsToml, n as hasCodexMcpToolApprovalOverrides, s as shouldAutoApproveCodexAppServerApprovals } from "./config-security-DpkGNy5T.mjs";
|
|
7
7
|
import { c as isCodexPairedNodeRemoteExecPlacementSandbox, d as readCodexPluginConfig, f as resolveCodexPluginsPolicy, l as isCodexRemoteExecPlacementSandbox, u as isCodexSandboxExecServerEnabled } from "./config-parsing-CVK2Q463.mjs";
|
|
8
8
|
import { n as isCodexAppServerProxyLaunch } from "./launch-args-DbFCehO7.mjs";
|
|
9
9
|
import { t as resolveCodexAppServerHomeDir } from "./auth-start-options-BPIPeEX8.mjs";
|
|
10
10
|
import { i as resolveCodexAppServerHomeScope, l as resolveCodexModelBackedReviewerPolicyContext, o as resolveCodexComputerUseConfig } from "./config-options-CZmH25Xq.mjs";
|
|
11
|
-
import { c as resolveCodexAppServerPreparedApiKeyCacheKey, g as observeAcquire, s as resolveCodexAppServerFallbackApiKeyCacheKey, w as retireSharedCodexAppServerClientIfCurrent } from "./auth-cache-key-
|
|
11
|
+
import { c as resolveCodexAppServerPreparedApiKeyCacheKey, g as observeAcquire, s as resolveCodexAppServerFallbackApiKeyCacheKey, w as retireSharedCodexAppServerClientIfCurrent } from "./auth-cache-key-8VTsPn2f.mjs";
|
|
12
12
|
import { o as formatCodexDisplayText } from "./command-formatters-xW9KpoSZ.mjs";
|
|
13
13
|
import { a as codexPrewriteRejectionCause, i as CodexAppServerScopedRequestRejectedError, r as CodexAppServerRpcError } from "./rpc-error-C98SHchT.mjs";
|
|
14
14
|
import { n as waitForPromiseOrAbort } from "./timeout-D0mEWSGG.mjs";
|
|
@@ -16,50 +16,50 @@ import { t as readCodexAsyncQuestions } from "./async-questions-DdhOCwGi.mjs";
|
|
|
16
16
|
import { i as readCodexProviderRefusal, n as extractRawResponseItemText, o as readItem, r as readCodexErrorNotificationMessage, s as readNullableString } from "./event-projector-values-CLvG1Hil.mjs";
|
|
17
17
|
import { i as readMirrorIdentity, n as attachCodexMirrorIdentity, t as attachCodexAssistantItemIds } from "./upstream-prompt-provenance-Ccd9MFRJ.mjs";
|
|
18
18
|
import { n as buildCodexAppServerRuntimeFingerprint, r as buildCodexPluginAppCacheKey } from "./plugin-app-cache-key-Bg9DbDI6.mjs";
|
|
19
|
-
import { i as resolveCodexBindingAppServerConnection, r as requireCodexSupervisionModelSelection, t as assertCodexSessionRuntimeOwnership } from "./binding-connection-
|
|
20
|
-
import { n as requestCodexAppServerClientJson } from "./request-
|
|
21
|
-
import { n as canUseCodexModelBackedApprovalsReviewerForModel, r as resolveOpenClawExecPolicyForCodexAppServer } from "./config-
|
|
19
|
+
import { i as resolveCodexBindingAppServerConnection, r as requireCodexSupervisionModelSelection, t as assertCodexSessionRuntimeOwnership } from "./binding-connection-BIo1-hoT.mjs";
|
|
20
|
+
import { n as requestCodexAppServerClientJson } from "./request-6bus8ebp.mjs";
|
|
21
|
+
import { n as canUseCodexModelBackedApprovalsReviewerForModel, r as resolveOpenClawExecPolicyForCodexAppServer } from "./config-d0gOFYEk.mjs";
|
|
22
22
|
import { a as isCodexDurableCustomMessage, c as resolveCodexContextEngineProjectionMaxChars, i as fitCodexProjectedContextForTurnStart, l as resolveCodexContinuityProjectionMaxChars, n as CodexContextAttachmentError, o as neutralizeCodexExplicitMentionSigils, r as buildCodexContinuityCalibration, s as projectContextEngineAssemblyForCodex, t as CODEX_TURN_START_TEXT_INPUT_MAX_CHARS, u as resolveProjectionPromptBudgetTokens } from "./context-engine-projection-ps-yn_ci.mjs";
|
|
23
23
|
import { a as buildCodexMirrorIdempotencyKey, i as buildCodexMirrorDedupeIdentity, s as hasCodexMirrorOrigin, t as applyCodexTranscriptTaint } from "./transcript-mirror-attestation-BzUXnrvv.mjs";
|
|
24
24
|
import { t as readCodexMirroredSessionHistoryMessages } from "./session-history-BO6i_pfk.mjs";
|
|
25
25
|
import { i as resolveCodexAppServerAuthProfileIdForAgent, r as resolveCodexAppServerAuthProfileId } from "./auth-profile-CgHQ8Vot.mjs";
|
|
26
|
-
import { E as isCodexContextRestartSelectionChangedError, G as protectCodexAppServerLiveThread, I as ensureCodexAppServerClientRuntime, M as getCodexInferenceThreadQualification, Q as readRecentCodexRateLimits, W as prepareCodexWorkspaceReferences, Z as readCodexRateLimitsRevision, _ as retainSharedCodexAppServerClientIfCurrent,
|
|
26
|
+
import { E as isCodexContextRestartSelectionChangedError, G as protectCodexAppServerLiveThread, I as ensureCodexAppServerClientRuntime, M as getCodexInferenceThreadQualification, Q as readRecentCodexRateLimits, W as prepareCodexWorkspaceReferences, Z as readCodexRateLimitsRevision, _ as retainSharedCodexAppServerClientIfCurrent, a as clearSharedCodexAppServerClientIfCurrentAndUnclaimed, at as resolveCodexAppServerPreparedAuthHandoff, c as getLeasedSharedCodexAppServerClient, f as readCodexAppServerClientDesktopGenerationFingerprint, h as releaseLeasedSharedCodexAppServerClient, ht as TURN_TERMINAL_SETTLEMENT_TIMEOUT_MS, i as clearSharedCodexAppServerClientIfCurrent, it as resolveCodexAppServerAuthAccountCacheKey, j as getCodexInferenceThread, l as getSharedCodexAppServerClient, mt as TURN_FINALIZE_DRAIN_ABORT_GRACE_MS, pt as CodexAppServerStartupError, s as createIsolatedCodexAppServerClient, u as isCodexAppServerStartSelectionChangedError, vt as resolveCodexStartupTimeoutMs, w as CodexThreadClientReplacementError, x as CODEX_APP_SERVER_CONTEXT_RESTART_SELECTION_CHANGED, yt as withCodexStartupTimeout } from "./shared-client-Bo9MCCKj.mjs";
|
|
27
27
|
import { a as isCodexResponsesOAuthRun, r as isCodexResponsesOAuth } from "./responses-oauth-twnuTaAa.mjs";
|
|
28
|
-
import { D as toCodexDynamicToolProgressResponse, E as resolveDynamicToolCallTimeoutMs, L as resolveCodexAppServerClientInstanceId, M as readCodexAppServerWarningMessage, O as toCodexDynamicToolProtocolResponse, P as CODEX_APP_SERVER_OPT_OUT_NOTIFICATION_METHODS, T as handleDynamicToolCallWithTimeout, _ as assertCodexTurnStartResponse, a as isCodexAppServerIndeterminateRequestCancellationError, i as isCodexAppServerConnectionClosedError, l as CodexServerRequestResolvedError, o as isCodexAppServerIndeterminateTransportError, r as isCodexAppServerApprovalRequest, w as createCodexElicitationResponse, x as readCodexTurnCompletedNotification, y as readCodexDynamicToolCallParams } from "./client-
|
|
29
|
-
import { n as isCodexWebSocketOpenFailure } from "./transport-websocket-
|
|
30
|
-
import { S as shouldClearTerminalPresentationForNativeItem, _ as itemName, a as isCodexNotificationForTurn, b as matchesCodexSnapshotTurn, i as CodexProjectionDiagnostics, n as getCodexAppServerTurnRouter, o as readCodexNotificationScope, s as readCodexNotificationThreadId, t as CODEX_APP_SERVER_NATIVE_TURN_WAIT_TIMEOUT_MS, x as shouldAdvancePersistableAssistantBarrier } from "./turn-router-
|
|
31
|
-
import { d as terminateCodexBackgroundTerminals, f as unsubscribeCodexThreadBestEffort, l as retireUnsafeCodexTurnClientBestEffort, n as CODEX_APP_SERVER_UNSUBSCRIBE_TIMEOUT_MS, o as closeCodexStartupClientBestEffort, r as CodexAppServerUnsafeSubscriptionError, s as interruptCodexTurnAndWaitBestEffort, u as shouldRetireCodexStartupClient } from "./attempt-client-cleanup-
|
|
32
|
-
import { r as prepareCodexAppServerAuthBinding } from "./auth-binding-
|
|
28
|
+
import { D as toCodexDynamicToolProgressResponse, E as resolveDynamicToolCallTimeoutMs, L as resolveCodexAppServerClientInstanceId, M as readCodexAppServerWarningMessage, O as toCodexDynamicToolProtocolResponse, P as CODEX_APP_SERVER_OPT_OUT_NOTIFICATION_METHODS, T as handleDynamicToolCallWithTimeout, _ as assertCodexTurnStartResponse, a as isCodexAppServerIndeterminateRequestCancellationError, i as isCodexAppServerConnectionClosedError, l as CodexServerRequestResolvedError, o as isCodexAppServerIndeterminateTransportError, r as isCodexAppServerApprovalRequest, w as createCodexElicitationResponse, x as readCodexTurnCompletedNotification, y as readCodexDynamicToolCallParams } from "./client-BTWv2cJe.mjs";
|
|
29
|
+
import { n as isCodexWebSocketOpenFailure } from "./transport-websocket-B5mq2Iq2.mjs";
|
|
30
|
+
import { S as shouldClearTerminalPresentationForNativeItem, _ as itemName, a as isCodexNotificationForTurn, b as matchesCodexSnapshotTurn, i as CodexProjectionDiagnostics, n as getCodexAppServerTurnRouter, o as readCodexNotificationScope, s as readCodexNotificationThreadId, t as CODEX_APP_SERVER_NATIVE_TURN_WAIT_TIMEOUT_MS, x as shouldAdvancePersistableAssistantBarrier } from "./turn-router-Ba0-h2NE.mjs";
|
|
31
|
+
import { d as terminateCodexBackgroundTerminals, f as unsubscribeCodexThreadBestEffort, l as retireUnsafeCodexTurnClientBestEffort, n as CODEX_APP_SERVER_UNSUBSCRIBE_TIMEOUT_MS, o as closeCodexStartupClientBestEffort, r as CodexAppServerUnsafeSubscriptionError, s as interruptCodexTurnAndWaitBestEffort, u as shouldRetireCodexStartupClient } from "./attempt-client-cleanup-BmPBqnW3.mjs";
|
|
32
|
+
import { r as prepareCodexAppServerAuthBinding } from "./auth-binding-D1TJwzWf.mjs";
|
|
33
33
|
import { a as isRawFunctionToolOutputCompletionNotification, c as readRawResponseToolCallId, i as isCodexTurnAbortMarkerNotification, l as updateActiveTurnItemIds, o as isTerminalTurnStatus, r as completePendingOpenClawDynamicToolNotification, s as readCodexNotificationItem, t as CodexUsageProjection } from "./event-projector-usage-BpKfdoTm.mjs";
|
|
34
|
-
import { n as listAllCodexAppServerModels } from "./models-
|
|
35
|
-
import { d as mergeCodexThreadConfigs } from "./project-doc-thread-config-
|
|
36
|
-
import { B as resolveCodexDynamicToolsLoadingForRuntime, L as isSystemAgentOnlyCodexDynamicToolAllowlist, P as filterCodexDynamicTools, V as joinPresentSections, _ as buildDeveloperInstructions, b as codexDynamicToolsFingerprint, h as resolveCodexWebSearchPlan, k as stabilizeJsonValue, l as isCodexNativeDelegationDisabledForRun, v as areCodexDynamicToolFingerprintsCompatible, w as fingerprintJsonObject, x as codexLegacyDynamicToolsFingerprint } from "./thread-requests-
|
|
37
|
-
import { i as resolveCodexSessionBinding, n as createCodexSessionGenerationSupersededError, t as clearCodexBindingForClient } from "./session-binding-
|
|
34
|
+
import { n as listAllCodexAppServerModels } from "./models-CPdqFOZS.mjs";
|
|
35
|
+
import { d as mergeCodexThreadConfigs } from "./project-doc-thread-config-BYFXSVGk.mjs";
|
|
36
|
+
import { B as resolveCodexDynamicToolsLoadingForRuntime, L as isSystemAgentOnlyCodexDynamicToolAllowlist, P as filterCodexDynamicTools, V as joinPresentSections, _ as buildDeveloperInstructions, b as codexDynamicToolsFingerprint, h as resolveCodexWebSearchPlan, k as stabilizeJsonValue, l as isCodexNativeDelegationDisabledForRun, v as areCodexDynamicToolFingerprintsCompatible, w as fingerprintJsonObject, x as codexLegacyDynamicToolsFingerprint } from "./thread-requests-pX9_RXpU.mjs";
|
|
37
|
+
import { i as resolveCodexSessionBinding, n as createCodexSessionGenerationSupersededError, t as clearCodexBindingForClient } from "./session-binding-_RE7vtVN.mjs";
|
|
38
38
|
import { i as resolveCodexAppServerThreadModelSelection } from "./thread-model-selection-DcVebr8N.mjs";
|
|
39
|
-
import { a as resolveCodexPromptError, i as refreshCodexUsageLimitPromptError, n as formatCodexTurnStartUsageLimitError, r as markCodexAuthProfileBlockedFromRateLimits, t as CodexUsageLimitPromptError } from "./usage-limit-error-
|
|
40
|
-
import { c as withExclusiveCodexAppServerThread, r as retainCodexAppServerBindingSubscription, t as isSameCodexAppServerThreadOwner } from "./thread-ownership-
|
|
39
|
+
import { a as resolveCodexPromptError, i as refreshCodexUsageLimitPromptError, n as formatCodexTurnStartUsageLimitError, r as markCodexAuthProfileBlockedFromRateLimits, t as CodexUsageLimitPromptError } from "./usage-limit-error-YNy7uINJ.mjs";
|
|
40
|
+
import { c as withExclusiveCodexAppServerThread, r as retainCodexAppServerBindingSubscription, t as isSameCodexAppServerThreadOwner } from "./thread-ownership-C5Hpc-Q1.mjs";
|
|
41
41
|
import { t as persistCodexContextCompactionActivity } from "./context-compaction-activity-CMla5FPJ.mjs";
|
|
42
|
-
import { a as CodexToolTranscriptProjection, c as isCodexCommandBearingToolCall, d as sanitizeCodexToolArguments, i as emitCodexAgentEvent, l as resolveCodexToolProgressDetailMode, o as CodexToolProgressProjection, r as CodexEventProjection, s as shouldEmitTranscriptToolProgress, t as codexNativeSubagentMonitorRuntime, u as sanitizeCodexAgentEventRecord } from "./native-subagent-monitor-
|
|
43
|
-
import { a as requestPluginApprovalOutcome } from "./plugin-approval-roundtrip-
|
|
44
|
-
import { n as CodexThreadPolicyHandoffError, s as restoreCodexThreadInstructionsAfterCompaction } from "./thread-policy-
|
|
42
|
+
import { a as CodexToolTranscriptProjection, c as isCodexCommandBearingToolCall, d as sanitizeCodexToolArguments, i as emitCodexAgentEvent, l as resolveCodexToolProgressDetailMode, o as CodexToolProgressProjection, r as CodexEventProjection, s as shouldEmitTranscriptToolProgress, t as codexNativeSubagentMonitorRuntime, u as sanitizeCodexAgentEventRecord } from "./native-subagent-monitor-CuNglHrq.mjs";
|
|
43
|
+
import { a as requestPluginApprovalOutcome } from "./plugin-approval-roundtrip-DIE4DZ9S.mjs";
|
|
44
|
+
import { n as CodexThreadPolicyHandoffError, s as restoreCodexThreadInstructionsAfterCompaction } from "./thread-policy-BFLbIpIt.mjs";
|
|
45
45
|
import { t as attemptTerminal } from "./attempt-terminal-sZutF0WY.mjs";
|
|
46
46
|
import { a as runCodexAgentEndHook, c as withCodexAppServerFastModeServiceTier, i as reportCodexBackgroundCleanupFailure, n as ensureCodexWorkspaceDirOnce, o as runCodexCleanupStep, r as estimateCodexAppServerProjectedTurnTokens, s as shouldKeepCodexSharedAbortOpen, t as emitCodexAppServerEvent } from "./run-attempt-lifecycle-DN-ATDp9.mjs";
|
|
47
47
|
import { t as CODEX_INFERENCE_GENERATION_KEY } from "./inference-metadata-DCvcG_N_.mjs";
|
|
48
48
|
import "./inference-context-DNlGwzwy.mjs";
|
|
49
49
|
import { i as createAssistantReasoningMessage, n as createAssistantCommentaryMessage, r as createAssistantMessage, t as createAssistantAsyncMessage } from "./event-projector-assistant-message-CLMKN4x-.mjs";
|
|
50
|
-
import { a as resolveCodexExternalSandboxPolicyForOpenClawSandbox, c as shouldEnableCodexAppServerNativeToolSurface, i as resolveCodexAppServerHookChannelId, l as shouldRequireCodexSandboxExecServerEnvironment, o as resolveCodexMessageToolProvider, p as mapCodexAppServerRemoteWorkspacePath, r as resolveCodexAppServerExecutionCwd, s as resolveCodexSandboxEnvironmentSelection, t as buildDynamicTools, u as shouldWarnCodexDynamicToolBuildStageSummary } from "./dynamic-tool-build-
|
|
51
|
-
import { a as buildCodexNativeHookRelayDisabledConfig, d as scheduleCodexNativeHookRelayUnregister, i as buildCodexNativeHookRelayConfig, l as resolveCodexNativeHookRelayEvents, n as CodexManagedHooksOnlyError, r as assertCodexNativeHookRelayAllowed, s as createCodexNativeHookRelay, t as CODEX_NATIVE_HOOK_RELAY_TTL_GRACE_MS, u as resolveCodexNativeHookRelayTtlMs } from "./native-hook-relay-
|
|
52
|
-
import { a as prepareCodexPluginThreadConfigStartupProvider, c as buildLegacyScheduledCodexAppRecoveryPrompt, d as resolveScheduledCodexAppCreatorCaptureDecision, i as isContextEngineBindingCompatible, l as buildScheduledCodexAppServerConnectionIdentity, n as isCodexAppServerProfilerEnabled, o as resolveCodexPluginThreadConfigStartupPolicy, r as buildContextEngineBinding, s as assertScheduledCodexAppAuthorityRuntime, t as startOrResumeThread, u as captureScheduledCodexAppAuthority } from "./thread-lifecycle-run-
|
|
50
|
+
import { a as resolveCodexExternalSandboxPolicyForOpenClawSandbox, c as shouldEnableCodexAppServerNativeToolSurface, i as resolveCodexAppServerHookChannelId, l as shouldRequireCodexSandboxExecServerEnvironment, o as resolveCodexMessageToolProvider, p as mapCodexAppServerRemoteWorkspacePath, r as resolveCodexAppServerExecutionCwd, s as resolveCodexSandboxEnvironmentSelection, t as buildDynamicTools, u as shouldWarnCodexDynamicToolBuildStageSummary } from "./dynamic-tool-build-OWTT0wP-.mjs";
|
|
51
|
+
import { a as buildCodexNativeHookRelayDisabledConfig, d as scheduleCodexNativeHookRelayUnregister, i as buildCodexNativeHookRelayConfig, l as resolveCodexNativeHookRelayEvents, n as CodexManagedHooksOnlyError, r as assertCodexNativeHookRelayAllowed, s as createCodexNativeHookRelay, t as CODEX_NATIVE_HOOK_RELAY_TTL_GRACE_MS, u as resolveCodexNativeHookRelayTtlMs } from "./native-hook-relay-VHeLdZXU.mjs";
|
|
52
|
+
import { a as prepareCodexPluginThreadConfigStartupProvider, c as buildLegacyScheduledCodexAppRecoveryPrompt, d as resolveScheduledCodexAppCreatorCaptureDecision, i as isContextEngineBindingCompatible, l as buildScheduledCodexAppServerConnectionIdentity, n as isCodexAppServerProfilerEnabled, o as resolveCodexPluginThreadConfigStartupPolicy, r as buildContextEngineBinding, s as assertScheduledCodexAppAuthorityRuntime, t as startOrResumeThread, u as captureScheduledCodexAppAuthority } from "./thread-lifecycle-run-avZbRAjm.mjs";
|
|
53
53
|
import { i as resolveCodexSessionPermissionCwd, n as applyCodexSessionPermissionPolicy, r as resolveCodexEffectiveSessionPermissionPolicy } from "./session-permission-policy-C7kYxPGd.mjs";
|
|
54
|
-
import { o as hasCodexNativeToolCatalog, s as loadCodexNativeToolCatalog } from "./native-skill-isolation-
|
|
55
|
-
import { r as prepareCodexNativeMcpFormResourceContext, t as createCodexNativeMcpAppResultDetailsPreparer } from "./native-mcp-app-
|
|
56
|
-
import { _ as invalidateCodexComputerFrame, a as handleCodexAppServerApprovalRequest, c as createCodexNativePreToolUseFailureBuffer, f as buildTurnCollaborationMode, g as buildCodexUserInput, h as readCodexRetainedBackgroundCommands, i as createCodexDynamicToolDiagnostics, l as buildCodexHistoryProvenancePrefix, m as CodexNativeProcessAuthority, n as projectCodexExecutableDynamicTools, o as ensureCodexSandboxExecServerEnvironment, p as buildTurnStartParams, r as routeCodexAppServerElicitationRequest, s as releaseCodexSandboxExecServerEnvironment, t as createCodexDynamicToolBridge, u as buildCodexParentLocalInstructions, v as createCodexRemoteWorkspaceFileReader, y as CodexNativeToolLifecycleProjector } from "./dynamic-tools-
|
|
57
|
-
import { c as promptSnapshot, i as mirrorPromptAtTurnStartBestEffort, n as createCodexAppServerUserMessagePersistenceNotifier, o as buildCodexUserPromptMessage, s as buildResolvedCodexUserPromptMessage, t as codexTranscriptMirrorRuntime } from "./transcript-mirror-
|
|
58
|
-
import { t as resolveCodexAppServerForModelProvider } from "./app-server-policy-
|
|
59
|
-
import { a as getCodexContextFileDisplayBasename, i as getCodexContextFileBasename, n as CODEX_NATIVE_PROJECT_DOC_BASENAMES, o as isNonEmptyString, r as buildCodexWorkspaceBootstrapContext, s as normalizeCodexContextFilePath } from "./attempt-workspace-context-
|
|
54
|
+
import { o as hasCodexNativeToolCatalog, s as loadCodexNativeToolCatalog } from "./native-skill-isolation--6M-3BWV.mjs";
|
|
55
|
+
import { r as prepareCodexNativeMcpFormResourceContext, t as createCodexNativeMcpAppResultDetailsPreparer } from "./native-mcp-app-ly1JuStw.mjs";
|
|
56
|
+
import { _ as invalidateCodexComputerFrame, a as handleCodexAppServerApprovalRequest, c as createCodexNativePreToolUseFailureBuffer, f as buildTurnCollaborationMode, g as buildCodexUserInput, h as readCodexRetainedBackgroundCommands, i as createCodexDynamicToolDiagnostics, l as buildCodexHistoryProvenancePrefix, m as CodexNativeProcessAuthority, n as projectCodexExecutableDynamicTools, o as ensureCodexSandboxExecServerEnvironment, p as buildTurnStartParams, r as routeCodexAppServerElicitationRequest, s as releaseCodexSandboxExecServerEnvironment, t as createCodexDynamicToolBridge, u as buildCodexParentLocalInstructions, v as createCodexRemoteWorkspaceFileReader, y as CodexNativeToolLifecycleProjector } from "./dynamic-tools-CygReZGj.mjs";
|
|
57
|
+
import { c as promptSnapshot, i as mirrorPromptAtTurnStartBestEffort, n as createCodexAppServerUserMessagePersistenceNotifier, o as buildCodexUserPromptMessage, s as buildResolvedCodexUserPromptMessage, t as codexTranscriptMirrorRuntime } from "./transcript-mirror-CPdcVWTn.mjs";
|
|
58
|
+
import { t as resolveCodexAppServerForModelProvider } from "./app-server-policy-CF-JwGUD.mjs";
|
|
59
|
+
import { a as getCodexContextFileDisplayBasename, i as getCodexContextFileBasename, n as CODEX_NATIVE_PROJECT_DOC_BASENAMES, o as isNonEmptyString, r as buildCodexWorkspaceBootstrapContext, s as normalizeCodexContextFilePath } from "./attempt-workspace-context-EAeScFrg.mjs";
|
|
60
60
|
import { n as captureCodexSettledTurnFinalizationContext } from "./settled-turn-context-BPL6D3RO.mjs";
|
|
61
|
-
import { t as resolveCodexProviderWebSearchSupport } from "./provider-capabilities-
|
|
62
|
-
import { a as runCodexComputerUseLiveTest, i as createComputerUseRequest, t as ensureCodexComputerUse } from "./computer-use-
|
|
61
|
+
import { r as releaseCodexProbeClient, t as resolveCodexProviderWebSearchSupport } from "./provider-capabilities-BIyUe_cz.mjs";
|
|
62
|
+
import { a as runCodexComputerUseLiveTest, i as createComputerUseRequest, t as ensureCodexComputerUse } from "./computer-use-vLGHqSOu.mjs";
|
|
63
63
|
import { asOptionalRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalString, readNonBlankString, readStringField } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
64
64
|
import { createHash, randomUUID } from "node:crypto";
|
|
65
65
|
import { isDeepStrictEqual } from "node:util";
|
|
@@ -69,7 +69,7 @@ import { truncateUtf16Safe, truncateUtf8Prefix } from "openclaw/plugin-sdk/text-
|
|
|
69
69
|
import path from "node:path";
|
|
70
70
|
import fs from "node:fs/promises";
|
|
71
71
|
import { isPathStrictlyInside, readFileWindowFully, root } from "openclaw/plugin-sdk/file-access-runtime";
|
|
72
|
-
import { createStageTimingTracker, formatStageTimings } from "openclaw/plugin-sdk/time-runtime";
|
|
72
|
+
import { createStageTimingTracker, formatStageTimings, raceWithTimeout } from "openclaw/plugin-sdk/time-runtime";
|
|
73
73
|
import { addAbortListener } from "node:events";
|
|
74
74
|
import { isIncognitoSessionKey } from "openclaw/plugin-sdk/session-key-runtime";
|
|
75
75
|
import { Type } from "typebox";
|
|
@@ -85,7 +85,7 @@ import { pruneMapToMaxSize } from "openclaw/plugin-sdk/collection-runtime";
|
|
|
85
85
|
import { sleepWithAbort } from "openclaw/plugin-sdk/runtime-env";
|
|
86
86
|
import { acknowledgeInternalToolResult, createAgentHarnessToolExecutionRegistry } from "openclaw/plugin-sdk/agent-harness-tool-runtime";
|
|
87
87
|
import { createNativeSessionBindingAuthority, prepareNativeSessionGenerationAuthority } from "openclaw/plugin-sdk/agent-harness-session-runtime";
|
|
88
|
-
import { appendSessionYieldContext, composeSessionTranscriptWriteAssertion, hasPromptImageInput } from "openclaw/plugin-sdk/session-transcript-runtime";
|
|
88
|
+
import { appendSessionTranscriptMessageByIdentityStrict, appendSessionYieldContext, composeSessionTranscriptWriteAssertion, hasPromptImageInput } from "openclaw/plugin-sdk/session-transcript-runtime";
|
|
89
89
|
import { captureFinalCodexCronCreatorToolAllowlist, formatMcpCodexApprovalRemedy, materializeStaticMcpToolsForHarnessRun, resolveCodexMcpToolOverridesForAgent, resolveCodexTtsProvenanceTransfer } from "openclaw/plugin-sdk/codex-mcp-projection";
|
|
90
90
|
import { getAgentScopedMediaLocalRoots } from "openclaw/plugin-sdk/media-local-roots";
|
|
91
91
|
import { isSilentReplyPayloadText } from "openclaw/plugin-sdk/reply-chunking";
|
|
@@ -139,6 +139,7 @@ function createCodexAttemptPreparationTiming(params) {
|
|
|
139
139
|
//#endregion
|
|
140
140
|
//#region extensions/codex/src/app-server/attempt-steering.ts
|
|
141
141
|
const CODEX_STEER_ALL_DEBOUNCE_MS = 500;
|
|
142
|
+
const CODEX_STEER_TERMINAL_DRAIN_MS = 1e3;
|
|
142
143
|
function createCodexQuestionInputHandlers(sessionKey, assertActive) {
|
|
143
144
|
const questionAuthority = (kind, assertSource, toolAuthorityPreparation) => ({
|
|
144
145
|
kind,
|
|
@@ -191,6 +192,11 @@ function createCodexSteeringQueue(params) {
|
|
|
191
192
|
let sendChain = Promise.resolve();
|
|
192
193
|
let sealedError;
|
|
193
194
|
let closedError;
|
|
195
|
+
let terminalDrain;
|
|
196
|
+
const removeDispatchedBatch = (id) => {
|
|
197
|
+
dispatchedBatches.delete(id);
|
|
198
|
+
if (dispatchedBatches.size === 0) terminalDrain?.resolve();
|
|
199
|
+
};
|
|
194
200
|
const assertActive = () => {
|
|
195
201
|
const unavailableError = closedError ?? sealedError;
|
|
196
202
|
if (unavailableError) throw unavailableError;
|
|
@@ -235,6 +241,7 @@ function createCodexSteeringQueue(params) {
|
|
|
235
241
|
for (const batch of dispatchedBatches.values()) for (const item of batch) acceptItem(item);
|
|
236
242
|
dispatchedBatches.clear();
|
|
237
243
|
for (const item of pendingMessages) rejectItem(item, error);
|
|
244
|
+
terminalDrain?.resolve();
|
|
238
245
|
};
|
|
239
246
|
const sealQueueAdmission = () => {
|
|
240
247
|
if (sealedError || closedError) return;
|
|
@@ -309,7 +316,7 @@ function createCodexSteeringQueue(params) {
|
|
|
309
316
|
timeoutMs: params.requestTimeoutMs,
|
|
310
317
|
signal: params.signal,
|
|
311
318
|
...withCurrent ? { withCurrent } : {},
|
|
312
|
-
onIngressRejected: () =>
|
|
319
|
+
onIngressRejected: () => removeDispatchedBatch(request.clientUserMessageId),
|
|
313
320
|
assertCurrent: () => {
|
|
314
321
|
assertActive();
|
|
315
322
|
liveItems = liveItems.filter(isCurrent);
|
|
@@ -323,7 +330,7 @@ function createCodexSteeringQueue(params) {
|
|
|
323
330
|
});
|
|
324
331
|
for (const item of liveItems) acceptItem(item);
|
|
325
332
|
} catch (error) {
|
|
326
|
-
if (clientUserMessageId)
|
|
333
|
+
if (clientUserMessageId) removeDispatchedBatch(clientUserMessageId);
|
|
327
334
|
if (skippedRevokedBatch) return;
|
|
328
335
|
if (clientUserMessageId !== void 0 && (isCodexAppServerIndeterminateRequestCancellationError(error) || isCodexAppServerIndeterminateTransportError(error))) for (const item of liveItems) acceptItem(item);
|
|
329
336
|
for (const item of items) rejectItem(item, error);
|
|
@@ -379,12 +386,21 @@ function createCodexSteeringQueue(params) {
|
|
|
379
386
|
confirmConsumed(clientUserMessageId) {
|
|
380
387
|
const batch = dispatchedBatches.get(clientUserMessageId);
|
|
381
388
|
if (!batch) return false;
|
|
382
|
-
|
|
389
|
+
removeDispatchedBatch(clientUserMessageId);
|
|
383
390
|
for (const item of batch) resolveItem(item);
|
|
384
391
|
return true;
|
|
385
392
|
},
|
|
386
393
|
getAcceptedMessages: () => acceptedMessages.slice(),
|
|
387
394
|
sealAdmission: sealQueueAdmission,
|
|
395
|
+
drainBeforeCancel() {
|
|
396
|
+
sealQueueAdmission();
|
|
397
|
+
if (closedError || dispatchedBatches.size === 0) {
|
|
398
|
+
cancelQueue();
|
|
399
|
+
return;
|
|
400
|
+
}
|
|
401
|
+
terminalDrain ??= createDeferred();
|
|
402
|
+
return raceWithTimeout(terminalDrain.promise, CODEX_STEER_TERMINAL_DRAIN_MS, () => {}, { ref: false }).then(cancelQueue);
|
|
403
|
+
},
|
|
388
404
|
cancel: cancelQueue
|
|
389
405
|
};
|
|
390
406
|
}
|
|
@@ -1558,6 +1574,26 @@ var CodexProjectionSettlement = class extends AgentHarnessProjectionSettlement {
|
|
|
1558
1574
|
};
|
|
1559
1575
|
/** Owns per-turn projection state and builds results from the same state. */
|
|
1560
1576
|
var CodexTurnProjection = class {
|
|
1577
|
+
/** Materialize terminal native-tool gaps while the durable checkpoint is still open. */
|
|
1578
|
+
prepareTerminalToolResultCheckpoint(toolTelemetry, options) {
|
|
1579
|
+
const retainedCommands = /* @__PURE__ */ new Map();
|
|
1580
|
+
if (!this.aborted && !this.options.runAbortSignal?.aborted && this.completedTurn?.status === "completed" && !this.promptError) {
|
|
1581
|
+
const pending = this.nativeToolLifecycleProjector.pendingCommands();
|
|
1582
|
+
for (const [id, processId] of options?.readRetainedNativeCommands?.() ?? []) if (pending.has(id) && (pending.get(id) === null || pending.get(id) === processId)) retainedCommands.set(id, processId);
|
|
1583
|
+
}
|
|
1584
|
+
this.nativeToolLifecycleProjector.finalizeActive(void 0, retainedCommands);
|
|
1585
|
+
const rawAssistantTexts = toolTelemetry.sourceReplyDelivered ? [] : this.assistantProjection.collectAssistantTexts();
|
|
1586
|
+
const hasDeliverableAssistantOnCompletedTurn = this.completedTurn?.status === "completed" && rawAssistantTexts.some((text) => text.trim().length > 0);
|
|
1587
|
+
const synthesized = this.toolTranscriptProjection.synthesizeMissingToolResults({
|
|
1588
|
+
synthesize: !this.completedTurn || this.completedTurn.status !== "completed" || this.assistantProjection.hasAssistantItemTextForSynthesis(),
|
|
1589
|
+
retainedCommands,
|
|
1590
|
+
terminalDisposition: this.aborted ? "tool_error" : hasDeliverableAssistantOnCompletedTurn ? "diagnostic_only" : "prompt_error"
|
|
1591
|
+
});
|
|
1592
|
+
if (synthesized) {
|
|
1593
|
+
this.synthesizedMissingToolResultError = synthesized;
|
|
1594
|
+
this.promptErrorSource ??= "prompt";
|
|
1595
|
+
}
|
|
1596
|
+
}
|
|
1561
1597
|
constructor(params, threadId, turnId, options = {}) {
|
|
1562
1598
|
this.params = params;
|
|
1563
1599
|
this.threadId = threadId;
|
|
@@ -1604,7 +1640,8 @@ var CodexTurnProjection = class {
|
|
|
1604
1640
|
}
|
|
1605
1641
|
buildResult(toolTelemetry, options) {
|
|
1606
1642
|
this.eventProjection.flushPendingGuardianWarning();
|
|
1607
|
-
|
|
1643
|
+
this.prepareTerminalToolResultCheckpoint(toolTelemetry, options);
|
|
1644
|
+
const { params: runParams, turnId, completedTurn, aborted, contextTokens, contextTokensSource, completedCompactionCount, synthesizedMissingToolResultError, promptError: initialPromptError, promptErrorSource: initialPromptErrorSource, providerRefusal } = this;
|
|
1608
1645
|
const upstreamUserText = this.options.upstreamUserText;
|
|
1609
1646
|
const turnTainted = this.settlement.turnTainted;
|
|
1610
1647
|
const observedItemCount = (/* @__PURE__ */ new Set([...this.observedItemIds, ...this.completedItemIds])).size;
|
|
@@ -1612,12 +1649,6 @@ var CodexTurnProjection = class {
|
|
|
1612
1649
|
const completedItemCount = this.completedItemIds.size;
|
|
1613
1650
|
const guardianReviewCount = this.eventProjection.guardianReviewCount;
|
|
1614
1651
|
const yieldDetected = options?.yieldDetected;
|
|
1615
|
-
const retainedCommands = /* @__PURE__ */ new Map();
|
|
1616
|
-
if (!aborted && !this.options.runAbortSignal?.aborted && completedTurn?.status === "completed" && !initialPromptError) {
|
|
1617
|
-
const pending = this.nativeToolLifecycleProjector.pendingCommands();
|
|
1618
|
-
for (const [id, processId] of options?.readRetainedNativeCommands?.() ?? []) if (pending.has(id) && (pending.get(id) === null || pending.get(id) === processId)) retainedCommands.set(id, processId);
|
|
1619
|
-
}
|
|
1620
|
-
this.nativeToolLifecycleProjector.finalizeActive(void 0, retainedCommands);
|
|
1621
1652
|
const assistantTexts = this.assistantProjection.collectAssistantTexts();
|
|
1622
1653
|
const asyncMessages = this.assistantProjection.collectAsyncMessages();
|
|
1623
1654
|
const commentaryMessages = this.assistantProjection.collectCommentaryMessages();
|
|
@@ -1628,20 +1659,8 @@ var CodexTurnProjection = class {
|
|
|
1628
1659
|
...usage,
|
|
1629
1660
|
contextUsage: { state: "unavailable" }
|
|
1630
1661
|
} : usage;
|
|
1631
|
-
const
|
|
1632
|
-
const
|
|
1633
|
-
const hasDeliverableAssistantOnCompletedTurn = completedTurn?.status === "completed" && assistantTexts.some((text) => text.trim().length > 0);
|
|
1634
|
-
const synthesizedMissingToolResultError = this.toolTranscriptProjection.synthesizeMissingToolResults({
|
|
1635
|
-
synthesize: legacyFailClosed,
|
|
1636
|
-
retainedCommands,
|
|
1637
|
-
terminalDisposition: aborted ? "tool_error" : hasDeliverableAssistantOnCompletedTurn ? "diagnostic_only" : "prompt_error"
|
|
1638
|
-
});
|
|
1639
|
-
const storedMissingToolResultError = synthesizedMissingToolResultError ?? previousMissingToolResultError;
|
|
1640
|
-
let promptErrorSource = initialPromptErrorSource;
|
|
1641
|
-
if (synthesizedMissingToolResultError) {
|
|
1642
|
-
this.synthesizedMissingToolResultError = synthesizedMissingToolResultError;
|
|
1643
|
-
promptErrorSource = promptErrorSource ?? "prompt";
|
|
1644
|
-
}
|
|
1662
|
+
const storedMissingToolResultError = synthesizedMissingToolResultError;
|
|
1663
|
+
const promptErrorSource = initialPromptErrorSource;
|
|
1645
1664
|
const assistantMessageOptions = {
|
|
1646
1665
|
tokenUsage: projectedUsage,
|
|
1647
1666
|
aborted,
|
|
@@ -1755,15 +1774,16 @@ var CodexAppServerEventProjector = class extends CodexTurnProjection {
|
|
|
1755
1774
|
return !this.projectionClosed && !this.aborted && !this.options.runAbortSignal?.aborted && this.completedTurn?.status === "completed" && !this.promptError ? this.nativeToolLifecycleProjector.pendingCommands() : /* @__PURE__ */ new Map();
|
|
1756
1775
|
}
|
|
1757
1776
|
/** Native completion owns the answer independently of unfinished host projection. */
|
|
1758
|
-
recoverCompletedAnswer() {
|
|
1777
|
+
recoverCompletedAnswer(toolTelemetry, options) {
|
|
1759
1778
|
const completed = this.settlement.completedAnswer;
|
|
1760
1779
|
if (!completed || this.aborted || this.promptError) return false;
|
|
1761
|
-
this.closeCompactionProgress();
|
|
1762
|
-
this.projectionController.abort();
|
|
1763
|
-
this.transcriptCheckpoint.abandon();
|
|
1764
1780
|
this.completedTurn = completed.turn;
|
|
1765
1781
|
this.assistantProjection.recordItemCompleted(completed.answer);
|
|
1766
1782
|
this.assistantProjection.finalizeAnswerCandidate(completed.turn);
|
|
1783
|
+
this.prepareTerminalToolResultCheckpoint(toolTelemetry, options);
|
|
1784
|
+
this.closeCompactionProgress();
|
|
1785
|
+
this.projectionController.abort();
|
|
1786
|
+
this.transcriptCheckpoint.abandon();
|
|
1767
1787
|
return true;
|
|
1768
1788
|
}
|
|
1769
1789
|
getActiveMcpToolCall(serverName) {
|
|
@@ -2889,7 +2909,7 @@ function activateCodexAttemptTurn(resources, turnRuntime, lifecycle, notificatio
|
|
|
2889
2909
|
isStreaming: () => !state.completed && !runAbortController.signal.aborted,
|
|
2890
2910
|
isAborted: () => runAbortController.signal.aborted,
|
|
2891
2911
|
isStopped: () => state.completed || runAbortController.signal.aborted,
|
|
2892
|
-
ownsLiveness: () => deadlines.ownsExecutionWait() && resourceState.turnRoute?.signal.aborted === false && !state.completed && !state.terminalTurnNotificationQueued
|
|
2912
|
+
ownsLiveness: () => deadlines.ownsExecutionWait() && resourceState.turnRoute?.signal.aborted === false && !state.completed && !state.terminalTurnNotificationQueued,
|
|
2893
2913
|
isAbortable: () => !terminalState.terminalOutcomeFrozen || terminalState.sharedAbortAllowedAfterTerminalOutcome,
|
|
2894
2914
|
isCompacting: () => projectorRef.current?.isCompacting() ?? false,
|
|
2895
2915
|
supportsTranscriptCommitWait: true,
|
|
@@ -2989,6 +3009,7 @@ async function cleanupCodexAttempt(resources, turnRuntime, lifecycle, requestRun
|
|
|
2989
3009
|
resourceState.releaseInferenceContext = void 0;
|
|
2990
3010
|
prompt.context.attemptTools.scheduledAppAuthoritySourceRef.current = void 0;
|
|
2991
3011
|
freezeRunTerminalOutcome();
|
|
3012
|
+
if (!state.projectionClosed) activeTurn.activeProjector.prepareTerminalToolResultCheckpoint(prompt.context.attemptTools.toolBridge.telemetry);
|
|
2992
3013
|
const projectionClose = state.projectionClosed ? void 0 : activeTurn.activeProjector.closeProjection();
|
|
2993
3014
|
state.projectionClosed = true;
|
|
2994
3015
|
const checkpointCleanup = projectionClose ? runCleanupStep("codex-transcript-checkpoint", () => projectionClose) : void 0;
|
|
@@ -4351,6 +4372,7 @@ async function beginCodexAttemptSettlement(resources, turnRuntime, notifications
|
|
|
4351
4372
|
const { state: resourceState } = resources;
|
|
4352
4373
|
const { connection } = resources.prompt.context.runtime;
|
|
4353
4374
|
const { params, runAbortController, appServer } = connection;
|
|
4375
|
+
const { toolBridge } = resources.prompt.context.attemptTools;
|
|
4354
4376
|
const { state, deadlines, settlementExpired } = turnRuntime;
|
|
4355
4377
|
const { drainNotificationQueue } = notifications;
|
|
4356
4378
|
const { activeProjector, activeTurnId } = activeTurn;
|
|
@@ -4404,6 +4426,7 @@ async function beginCodexAttemptSettlement(resources, turnRuntime, notifications
|
|
|
4404
4426
|
return /* @__PURE__ */ new Map();
|
|
4405
4427
|
}
|
|
4406
4428
|
};
|
|
4429
|
+
state.readRetainedNativeCommands = readRetainedNativeCommands;
|
|
4407
4430
|
} catch (error) {
|
|
4408
4431
|
embeddedAgentLog.debug("could not confirm retained native commands", {
|
|
4409
4432
|
threadId: resourceState.thread.threadId,
|
|
@@ -4412,6 +4435,7 @@ async function beginCodexAttemptSettlement(resources, turnRuntime, notifications
|
|
|
4412
4435
|
}
|
|
4413
4436
|
await drainNotificationQueue();
|
|
4414
4437
|
}
|
|
4438
|
+
activeProjector.prepareTerminalToolResultCheckpoint(toolBridge.telemetry, { readRetainedNativeCommands: () => readRetainedNativeCommands?.() ?? /* @__PURE__ */ new Map() });
|
|
4415
4439
|
await closeProjection();
|
|
4416
4440
|
await activeProjector.settlement.drain();
|
|
4417
4441
|
}),
|
|
@@ -4549,7 +4573,10 @@ async function finalizeCodexAttempt(resources, turnRuntime, lifecycle, notificat
|
|
|
4549
4573
|
]);
|
|
4550
4574
|
if (runAbortController.signal.aborted) await state.abortCleanup;
|
|
4551
4575
|
} finally {
|
|
4552
|
-
if (!state.projectionClosed)
|
|
4576
|
+
if (!state.projectionClosed) {
|
|
4577
|
+
activeProjector.prepareTerminalToolResultCheckpoint(toolBridge.telemetry, { readRetainedNativeCommands });
|
|
4578
|
+
await resources.runCleanupStep("codex-transcript-checkpoint", closeProjection);
|
|
4579
|
+
}
|
|
4553
4580
|
}
|
|
4554
4581
|
const result = activeProjector.buildResult(toolBridge.telemetry, {
|
|
4555
4582
|
yieldDetected: toolState.yieldDetected,
|
|
@@ -4738,14 +4765,20 @@ async function finalizeCodexAttempt(resources, turnRuntime, lifecycle, notificat
|
|
|
4738
4765
|
else if (finalPromptError) codexModelCallDiagnostics.emitError(finalPromptError);
|
|
4739
4766
|
else codexModelCallDiagnostics.emitCompleted(result);
|
|
4740
4767
|
const { assistantTranscriptOwned, assistantTranscriptIdempotencyKey, terminalAnchor } = mirrorOutcome;
|
|
4741
|
-
const
|
|
4768
|
+
const shouldCaptureSettledTurnFinalizationContext = result.assistantTexts.every((text) => !text.trim()) && result.messagesSnapshot.some((message) => message.role === "toolResult") && (!finalPromptError || activeProjector.settledTurnFailureFinalizationAllowed);
|
|
4769
|
+
const continuedPrompt = params.suppressNextUserMessagePersistence ? params.userTurnTranscriptRecorder?.getPersistedMessage?.() : void 0;
|
|
4770
|
+
const continuedPromptIdentity = continuedPrompt && readMirrorIdentity(continuedPrompt);
|
|
4771
|
+
const evidencePrefix = continuedPrompt && continuedPromptIdentity ? [continuedPrompt] : [];
|
|
4772
|
+
const settledTurnFinalizationContext = shouldCaptureSettledTurnFinalizationContext ? (!usesSupervisionConnection && !resourceState.nativeSettlementExpired ? await captureCodexSettledTurnFinalizationContext({
|
|
4742
4773
|
...activeTranscriptTarget,
|
|
4743
4774
|
model: resourceState.thread.model,
|
|
4744
4775
|
modelProvider: resourceState.thread.modelProvider,
|
|
4745
4776
|
authProfileId: startupAuthProfileId,
|
|
4746
|
-
mirroredMessages: mirrorOutcome.mirroredMessages,
|
|
4747
|
-
settledMessages: result.messagesSnapshot,
|
|
4777
|
+
mirroredMessages: [...evidencePrefix, ...mirrorOutcome.mirroredMessages],
|
|
4778
|
+
settledMessages: [...evidencePrefix, ...result.messagesSnapshot],
|
|
4779
|
+
...continuedPromptIdentity ? { promptIdentity: continuedPromptIdentity } : {},
|
|
4748
4780
|
turnId: activeTurnId,
|
|
4781
|
+
promptSuppressed: params.suppressNextUserMessagePersistence === true && !params.userTurnTranscriptRecorder,
|
|
4749
4782
|
signal: params.abortSignal,
|
|
4750
4783
|
assertActive: connection.assertCurrent,
|
|
4751
4784
|
withCurrent: connection.withCurrent
|
|
@@ -4906,12 +4939,13 @@ function createCodexAttemptLifecycleController(resources, turnRuntime) {
|
|
|
4906
4939
|
const { params, attemptStartedAt, runAbortController, fastModeAutoStartedAtMs, fastModeAutoProgressState } = connection;
|
|
4907
4940
|
const { state, activeTurnItemIds, pendingOpenClawDynamicToolCompletionIds } = turnRuntime;
|
|
4908
4941
|
const batchHadNonTerminalResult = () => state.currentTurnHadNonTerminalDynamicToolResult && !state.currentTurnHadToolAuthoredFinalReply;
|
|
4942
|
+
let terminalSteeringDrainPending = false;
|
|
4909
4943
|
const scheduleTerminalDynamicToolReleaseCheck = () => {
|
|
4910
|
-
if (state.terminalDynamicToolReleaseCheckScheduled || !state.pendingTerminalDynamicToolRelease && !state.currentTurnHadNonTerminalDynamicToolResult) return;
|
|
4944
|
+
if (state.terminalDynamicToolReleaseCheckScheduled || terminalSteeringDrainPending || !state.pendingTerminalDynamicToolRelease && !state.currentTurnHadNonTerminalDynamicToolResult) return;
|
|
4911
4945
|
state.terminalDynamicToolReleaseCheckScheduled = true;
|
|
4912
4946
|
setImmediate(() => {
|
|
4913
4947
|
state.terminalDynamicToolReleaseCheckScheduled = false;
|
|
4914
|
-
if (state.pendingTerminalDynamicToolRelease?.response.success === true && !batchHadNonTerminalResult() && state.activeAppServerTurnRequests === 0 && pendingOpenClawDynamicToolCompletionIds.size === 0) turnRuntime.steeringQueueRef.current?.
|
|
4948
|
+
if (state.pendingTerminalDynamicToolRelease?.response.success === true && !batchHadNonTerminalResult() && state.activeAppServerTurnRequests === 0 && pendingOpenClawDynamicToolCompletionIds.size === 0) turnRuntime.steeringQueueRef.current?.sealAdmission();
|
|
4915
4949
|
if (state.activeAppServerTurnRequests > 0 || activeTurnItemIds.size > 0 || pendingOpenClawDynamicToolCompletionIds.size > 0) return;
|
|
4916
4950
|
if (batchHadNonTerminalResult()) {
|
|
4917
4951
|
state.pendingTerminalDynamicToolRelease = void 0;
|
|
@@ -4921,6 +4955,15 @@ function createCodexAttemptLifecycleController(resources, turnRuntime) {
|
|
|
4921
4955
|
}
|
|
4922
4956
|
const value = state.pendingTerminalDynamicToolRelease;
|
|
4923
4957
|
if (!value || state.completed || runAbortController.signal.aborted || !value.response.success || state.activeAppServerTurnRequests !== 0 || activeTurnItemIds.size !== 0 || pendingOpenClawDynamicToolCompletionIds.size !== 0) return;
|
|
4958
|
+
const steeringDrain = turnRuntime.steeringQueueRef.current?.drainBeforeCancel();
|
|
4959
|
+
if (steeringDrain) {
|
|
4960
|
+
terminalSteeringDrainPending = true;
|
|
4961
|
+
steeringDrain.then(() => {
|
|
4962
|
+
terminalSteeringDrainPending = false;
|
|
4963
|
+
scheduleTerminalDynamicToolReleaseCheck();
|
|
4964
|
+
});
|
|
4965
|
+
return;
|
|
4966
|
+
}
|
|
4924
4967
|
state.pendingTerminalDynamicToolRelease = void 0;
|
|
4925
4968
|
state.currentTurnHadToolAuthoredFinalReply = false;
|
|
4926
4969
|
trajectoryRecorder?.recordEvent("turn.dynamic_tool_terminal_release", {
|
|
@@ -4937,7 +4980,6 @@ function createCodexAttemptLifecycleController(resources, turnRuntime) {
|
|
|
4937
4980
|
tool: value.call.tool,
|
|
4938
4981
|
durationMs: value.durationMs
|
|
4939
4982
|
});
|
|
4940
|
-
turnRuntime.steeringQueueRef.current?.cancel();
|
|
4941
4983
|
turnRuntime.interruptTurn(value.call.turnId, { locallyCompleted: true });
|
|
4942
4984
|
turnRuntime.completeTurn();
|
|
4943
4985
|
}).unref?.();
|
|
@@ -5639,22 +5681,63 @@ function createNativeSubagentAssignmentStore(params) {
|
|
|
5639
5681
|
const binding = bindingStore.read(identity);
|
|
5640
5682
|
if (!binding || !matchesCodexNativeSubagentSubmissionBinding(binding, owner)) throw new Error("Native assignment binding is no longer current.");
|
|
5641
5683
|
};
|
|
5642
|
-
const mutate = (kind) => (assignment, assertSourceCurrent) => bindingStore.mutate(identity, {
|
|
5643
|
-
kind,
|
|
5644
|
-
owner,
|
|
5645
|
-
assignment
|
|
5646
|
-
}, () => {
|
|
5647
|
-
assertCurrent();
|
|
5648
|
-
assertSourceCurrent();
|
|
5649
|
-
});
|
|
5650
5684
|
return {
|
|
5651
5685
|
assertCurrent,
|
|
5652
5686
|
read: () => {
|
|
5653
5687
|
assertCurrent();
|
|
5654
5688
|
return bindingStore.readNativeSubagentAssignments?.(identity, owner) ?? [];
|
|
5655
5689
|
},
|
|
5656
|
-
record:
|
|
5657
|
-
|
|
5690
|
+
record: (assignment, assertSourceCurrent) => bindingStore.mutate(identity, {
|
|
5691
|
+
kind: "record-native-subagent-assignment",
|
|
5692
|
+
owner,
|
|
5693
|
+
assignment
|
|
5694
|
+
}, () => {
|
|
5695
|
+
assertCurrent();
|
|
5696
|
+
assertSourceCurrent();
|
|
5697
|
+
}),
|
|
5698
|
+
consume: async (assignment, assertSourceCurrent, undelivered) => {
|
|
5699
|
+
const applied = await bindingStore.mutate(identity, {
|
|
5700
|
+
kind: "consume-native-subagent-assignment",
|
|
5701
|
+
owner,
|
|
5702
|
+
assignment,
|
|
5703
|
+
...undelivered ? { undelivered: true } : {}
|
|
5704
|
+
}, () => {
|
|
5705
|
+
assertCurrent();
|
|
5706
|
+
assertSourceCurrent();
|
|
5707
|
+
});
|
|
5708
|
+
if (applied && undelivered) {
|
|
5709
|
+
embeddedAgentLog.warn("Native subagent completion retired without delivery", {
|
|
5710
|
+
childThreadId: assignment.childThreadId,
|
|
5711
|
+
nativeTurnId: assignment.nativeTurnId,
|
|
5712
|
+
status: undelivered.status,
|
|
5713
|
+
childSessionKey: assignment.runId
|
|
5714
|
+
});
|
|
5715
|
+
try {
|
|
5716
|
+
if (identity.kind !== "session" || !identity.sessionKey) throw new Error("Native completion has no parent transcript identity.");
|
|
5717
|
+
const note = await appendSessionTranscriptMessageByIdentityStrict({
|
|
5718
|
+
agentId: identity.agentId,
|
|
5719
|
+
sessionId: owner.sessionId,
|
|
5720
|
+
sessionKey: identity.sessionKey,
|
|
5721
|
+
updateMode: "inline",
|
|
5722
|
+
message: {
|
|
5723
|
+
role: "custom",
|
|
5724
|
+
customType: "openclaw.system-note",
|
|
5725
|
+
display: true,
|
|
5726
|
+
content: `Native subagent ${assignment.childThreadId} finished with status ${undelivered.status}, but its completion could not be delivered. Automatic delivery has stopped. Inspect its native Codex thread history${assignment.nativeTurnId ? ` at turn ${assignment.nativeTurnId}` : ""}; child session key: ${assignment.runId}.`.slice(0, 2048),
|
|
5727
|
+
timestamp: Date.now(),
|
|
5728
|
+
idempotencyKey: `codex-undelivered:${owner.lifecycleRevision ?? owner.sessionId}:${assignment.childThreadId}:${assignment.nativeTurnId ?? "initial"}`
|
|
5729
|
+
}
|
|
5730
|
+
});
|
|
5731
|
+
if (note.kind !== "result") throw new Error(`Native completion note was ${note.kind}.`);
|
|
5732
|
+
} catch (error) {
|
|
5733
|
+
embeddedAgentLog.warn("Could not persist native completion retirement note", {
|
|
5734
|
+
childSessionKey: assignment.runId,
|
|
5735
|
+
error: formatErrorMessage(error)
|
|
5736
|
+
});
|
|
5737
|
+
}
|
|
5738
|
+
}
|
|
5739
|
+
return applied;
|
|
5740
|
+
}
|
|
5658
5741
|
};
|
|
5659
5742
|
}
|
|
5660
5743
|
//#endregion
|
|
@@ -6305,8 +6388,7 @@ async function prepareCodexAttemptRuntime(connection) {
|
|
|
6305
6388
|
nativeToolSurfaceEnabled = false;
|
|
6306
6389
|
embeddedAgentLog.info("Codex managed-only hooks require sandbox-backed OpenClaw tools");
|
|
6307
6390
|
} finally {
|
|
6308
|
-
|
|
6309
|
-
else releaseLeasedSharedCodexAppServerClient(client);
|
|
6391
|
+
await releaseCodexProbeClient(client, attemptClientFactory);
|
|
6310
6392
|
}
|
|
6311
6393
|
}
|
|
6312
6394
|
const configuredMcpSurface = params.requireWorkspaceOnly === true ? void 0 : scheduledConfiguredMcpSurface ? "scheduled" : !nativeToolSurfaceEnabled && bundleMcpThreadConfig.staticServerNames.length > 0 ? "transient" : void 0;
|
|
@@ -6703,7 +6785,7 @@ function createCodexAttemptServerRequestController(resources, turnRuntime, lifec
|
|
|
6703
6785
|
//#region extensions/codex/src/app-server/attempt-runtime-artifact.ts
|
|
6704
6786
|
async function verifyStartupArtifact(params) {
|
|
6705
6787
|
if (!params.request) return;
|
|
6706
|
-
const { readCodexAppServerClientRuntimeArtifact, validateCodexAppServerRuntimeArtifact } = await import("./runtime-artifact-
|
|
6788
|
+
const { readCodexAppServerClientRuntimeArtifact, validateCodexAppServerRuntimeArtifact } = await import("./runtime-artifact-Ch7fCcgJ.mjs");
|
|
6707
6789
|
const runtimeArtifact = readCodexAppServerClientRuntimeArtifact(params.client);
|
|
6708
6790
|
const expected = params.request.expected;
|
|
6709
6791
|
const matchesExpected = !expected || runtimeArtifact?.id === expected.id && runtimeArtifact.fingerprint === expected.fingerprint;
|
|
@@ -7532,7 +7614,7 @@ async function prepareCodexAttemptTools(runtime) {
|
|
|
7532
7614
|
}
|
|
7533
7615
|
});
|
|
7534
7616
|
} finally {
|
|
7535
|
-
|
|
7617
|
+
await releaseCodexProbeClient(client, connection.attemptClientFactory);
|
|
7536
7618
|
}
|
|
7537
7619
|
}
|
|
7538
7620
|
let requireExplicitMessageTarget;
|
|
@@ -8477,7 +8559,7 @@ function createCodexAttemptTurnState(resources) {
|
|
|
8477
8559
|
onDeadlineChanged: params.onAttemptDeadlineChanged,
|
|
8478
8560
|
onTimeout: (timeout) => {
|
|
8479
8561
|
const pendingStage = state.pendingSettlementStage ?? projectorRef.current?.settlement.pendingStage ?? "notification_queue";
|
|
8480
|
-
if (timeout.kind === "settlement" && projectorRef.current?.recoverCompletedAnswer()) {
|
|
8562
|
+
if (timeout.kind === "settlement" && projectorRef.current?.recoverCompletedAnswer(prompt.context.attemptTools.toolBridge.telemetry, { readRetainedNativeCommands: state.readRetainedNativeCommands })) {
|
|
8481
8563
|
state.settlementWarning = {
|
|
8482
8564
|
pendingStage,
|
|
8483
8565
|
elapsedMs: timeout.elapsedMs,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { n as isCodexAppServerProxyLaunch } from "./launch-args-DbFCehO7.mjs";
|
|
2
|
-
import { a as resolvePackagedCodexNativeCommand } from "./managed-binary-
|
|
3
|
-
import { n as resolveCodexAppServerSpawnEnv, r as resolveCodexAppServerSpawnInvocation } from "./transport-stdio-
|
|
4
|
-
import { captureCodexConfiguredConnection, finalizeCodexConfiguredConnection, isCodexConfiguredConnectionArtifact, validateCodexConfiguredConnectionCapture } from "./runtime-artifact-connection-
|
|
2
|
+
import { a as resolvePackagedCodexNativeCommand } from "./managed-binary-Boj8_lWV.mjs";
|
|
3
|
+
import { n as resolveCodexAppServerSpawnEnv, r as resolveCodexAppServerSpawnInvocation } from "./transport-stdio-BsXQmXll.mjs";
|
|
4
|
+
import { captureCodexConfiguredConnection, finalizeCodexConfiguredConnection, isCodexConfiguredConnectionArtifact, validateCodexConfiguredConnectionCapture } from "./runtime-artifact-connection-C3ootnwd.mjs";
|
|
5
5
|
import { createHash } from "node:crypto";
|
|
6
6
|
import { resolveWindowsExecutablePath } from "openclaw/plugin-sdk/windows-spawn";
|
|
7
7
|
import { resolveGlobalSingleton } from "openclaw/plugin-sdk/global-singleton";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as codexAppServerStartOptionsKey } from "./config-options-CZmH25Xq.mjs";
|
|
2
|
-
import "./config-runtime-
|
|
3
|
-
import { r as resolveCodexAppServerUnixSocketPath } from "./transport-websocket-
|
|
2
|
+
import "./config-runtime-BUH-IDVE.mjs";
|
|
3
|
+
import { r as resolveCodexAppServerUnixSocketPath } from "./transport-websocket-B5mq2Iq2.mjs";
|
|
4
4
|
import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
5
5
|
import { createHash } from "node:crypto";
|
|
6
6
|
import path from "node:path";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { l as isCodexRemoteExecPlacementSandbox } from "./config-parsing-CVK2Q463.mjs";
|
|
2
2
|
import { n as resolveCodexNativeExecutionPolicy, t as formatCodexNativeNodeExecBlock } from "./native-execution-policy-MXEe7PB3.mjs";
|
|
3
|
-
import { t as __exportAll } from "./session-binding-sidecars-
|
|
3
|
+
import { t as __exportAll } from "./session-binding-sidecars-CAHe3enw.mjs";
|
|
4
4
|
import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
5
5
|
import { tryResolveDefaultAgentId } from "openclaw/plugin-sdk/agent-scope-runtime";
|
|
6
6
|
import { parseAgentSessionKey } from "openclaw/plugin-sdk/routing";
|