@openclaw/codex 2026.9.8 → 2026.9.33

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.
Files changed (64) hide show
  1. package/dist/.setup/{account-usage-runtime-G348lY1q.mjs → account-usage-runtime-dYM1lh1V.mjs} +1 -1
  2. package/dist/.setup/{apply-Cqb-YoCS.mjs → apply-C82xe8Bk.mjs} +4 -4
  3. package/dist/.setup/{attempt-client-cleanup-B-S7ngS_.mjs → attempt-client-cleanup-D1aznv7C.mjs} +3 -3
  4. package/dist/.setup/{attempt-workspace-context-BJ5Z_olH.mjs → attempt-workspace-context-DKAbD-vI.mjs} +1 -1
  5. package/dist/.setup/{auth-cache-key-Dnps4W4_.mjs → auth-cache-key-CWpIEtTm.mjs} +3 -3
  6. package/dist/.setup/{bounded-turn-BNunZPtz.mjs → bounded-turn-Ca4urQ25.mjs} +9 -9
  7. package/dist/.setup/{build-state-DIQ5O_-S.mjs → build-state-E-CRUdgh.mjs} +1 -1
  8. package/dist/.setup/{client-qyUBJlGZ.mjs → client-6GbdZFc0.mjs} +172 -14
  9. package/dist/.setup/{client-catalog-response-DRvx_wCC.mjs → client-catalog-response-HvvnCxvX.mjs} +1 -1
  10. package/dist/.setup/{command-dispatch-Btrs1D6f.mjs → command-dispatch-_PPJobF7.mjs} +1 -1
  11. package/dist/.setup/{command-handlers-DvlCHJch.mjs → command-handlers-Do_MOc5V.mjs} +11 -11
  12. package/dist/.setup/{command-rpc-skzRq4wD.mjs → command-rpc-Bc_OIgK0.mjs} +6 -6
  13. package/dist/.setup/{compact-8ttks5U5.mjs → compact-BVSQoyh-.mjs} +8 -8
  14. package/dist/.setup/{conversation-binding-74LaGGH-.mjs → conversation-binding-CvjxRWI-.mjs} +9 -9
  15. package/dist/.setup/{conversation-control-OrN6zuaY.mjs → conversation-control-DoxkQ9nq.mjs} +2 -2
  16. package/dist/.setup/{dynamic-tools-Db2sY5cZ.mjs → dynamic-tools-CGMXNyuw.mjs} +6 -6
  17. package/dist/.setup/{effective-mcp-catalog-Bi6-SQ7i.mjs → effective-mcp-catalog-C1zwj-bq.mjs} +2 -2
  18. package/dist/.setup/{ephemeral-turn-DiCS1ijR.mjs → ephemeral-turn-Cyu_xJDs.mjs} +2 -2
  19. package/dist/.setup/{event-projector-assistant-message-MV_1dj-3.mjs → event-projector-assistant-message-CAI4foF8.mjs} +1 -1
  20. package/dist/.setup/{isolated-completion-D80IXfQF.mjs → isolated-completion-DPr7Nsl7.mjs} +4 -4
  21. package/dist/.setup/{managed-binary-kiWRhNRE.mjs → managed-binary-B6hQ1UKR.mjs} +1 -1
  22. package/dist/.setup/{model-catalog-DiC0Tkha.mjs → model-catalog-gcv3irT9.mjs} +27 -20
  23. package/dist/.setup/{models-DfLmPV0k.mjs → models-Bs4aEhpG.mjs} +3 -3
  24. package/dist/.setup/{native-auth-CuG53tu4.mjs → native-auth-BN-BD2AV.mjs} +2 -2
  25. package/dist/.setup/{native-subagent-monitor-BwkQXf9e.mjs → native-subagent-monitor-DbNIloTJ.mjs} +2 -2
  26. package/dist/.setup/{node-exec-server.runtime-BgBfWQqo.mjs → node-exec-server.runtime-BS7jsvK-.mjs} +2 -2
  27. package/dist/.setup/{plan-DPdMk1Oy.mjs → plan-NTSBQtKx.mjs} +3 -3
  28. package/dist/.setup/{plugin-metadata-cache-BRwtRct9.mjs → plugin-metadata-cache-Z06WuND0.mjs} +5 -5
  29. package/dist/.setup/{provider-D6F_7p1I.mjs → provider-BnX84knz.mjs} +4 -4
  30. package/dist/.setup/{provider-capabilities-DG5qbsUZ.mjs → provider-capabilities-CYK-rMwC.mjs} +2 -2
  31. package/dist/.setup/{request-BZOfsSXW.mjs → request-DQh7X3fU.mjs} +1 -1
  32. package/dist/.setup/{run-attempt-dYJhjZrp.mjs → run-attempt-Bp6qFrIQ.mjs} +35 -20
  33. package/dist/.setup/{runtime-artifact-DDQ-HGXf.mjs → runtime-artifact-D7lCXdhV.mjs} +2 -2
  34. package/dist/.setup/{session-catalog-BFafIiF6.mjs → session-catalog-DFZmNlhW.mjs} +9 -9
  35. package/dist/.setup/{session-catalog-events-BMCFMZw-.mjs → session-catalog-events-DVLgp99B.mjs} +2 -2
  36. package/dist/.setup/{session-catalog-index-DwJjnF5k.mjs → session-catalog-index-v3Yjgaih.mjs} +3 -3
  37. package/dist/.setup/{session-catalog-native-projection-CuaFZuQE.mjs → session-catalog-native-projection-LshItrMe.mjs} +1 -1
  38. package/dist/.setup/{session-catalog-projection-CGfzfP93.mjs → session-catalog-projection-CCBFozaQ.mjs} +1 -1
  39. package/dist/.setup/{session-cli-DlmBHYIe.mjs → session-cli-KhdG-_Aj.mjs} +1 -1
  40. package/dist/.setup/{session-retirement-LlYWBKTJ.mjs → session-retirement-ERjp2r4a.mjs} +5 -5
  41. package/dist/.setup/{settled-turn-finalizer-DW9W3gza.mjs → settled-turn-finalizer-DbS1Mwoq.mjs} +5 -5
  42. package/dist/.setup/{shared-client-lifecycle-7xgtlo15.mjs → shared-client-lifecycle-4LdC3gM4.mjs} +1 -1
  43. package/dist/.setup/{shared-client-CJCTeFpQ.mjs → shared-client-zsK3DTPh.mjs} +14 -14
  44. package/dist/.setup/{side-question-BLeGj7TQ.mjs → side-question-DW4W4HY7.mjs} +9 -9
  45. package/dist/.setup/{source-CJis_1EF.mjs → source-DzsIjGO7.mjs} +1 -1
  46. package/dist/.setup/{thread-lifecycle-_bAbjedG.mjs → thread-lifecycle-D03WesNn.mjs} +60 -38
  47. package/dist/.setup/{thread-ownership-B6pPt21M.mjs → thread-ownership-B0xUCXOU.mjs} +3 -3
  48. package/dist/.setup/{thread-policy-gNPzzpVp.mjs → thread-policy-g1TKKqWj.mjs} +3 -3
  49. package/dist/.setup/{thread-requests-OWGOiDaV.mjs → thread-requests-15uBuGjw.mjs} +4 -4
  50. package/dist/.setup/{thread-resume-GOry0AYh.mjs → thread-resume-BZfwM8Jh.mjs} +5 -5
  51. package/dist/.setup/{transport-stdio-Bdegpn2V.mjs → transport-stdio-CbutOIEh.mjs} +1 -1
  52. package/dist/.setup/{upstream-session-fork-gkdRj2yH.mjs → upstream-session-fork--vHya1T-.mjs} +8 -8
  53. package/dist/.setup/{usage-CApUvLOV.mjs → usage-CdWiiqqY.mjs} +1 -1
  54. package/dist/.setup/{usage-limit-error-wSMQkbpV.mjs → usage-limit-error-BEyQJjD_.mjs} +1 -1
  55. package/dist/.setup/{web-search-provider.runtime-UKgeiBUG.mjs → web-search-provider.runtime--55TuUQG.mjs} +2 -2
  56. package/dist/api.js +2 -2
  57. package/dist/catalog-page.worker.js +1 -1
  58. package/dist/cli-metadata.js +1 -1
  59. package/dist/harness.js +15 -15
  60. package/dist/index.js +21 -21
  61. package/dist/media-understanding-provider.js +2 -2
  62. package/dist/migration-provider-api.js +1 -1
  63. package/dist/provider-discovery.js +1 -1
  64. package/package.json +5 -5
@@ -1,10 +1,10 @@
1
1
  import { c as MAX_CWD_LENGTH, d as boundedCatalogString } from "./session-catalog-parsing-CPGaPYr-.mjs";
2
- import { n as defineCodexBuildState } from "./build-state-DIQ5O_-S.mjs";
2
+ import { n as defineCodexBuildState } from "./build-state-E-CRUdgh.mjs";
3
3
  import { r as inferCodexAppServerConnectionClass } from "./config-security-CE-FcGw9.mjs";
4
4
  import { n as resolveCodexAppServerLocalHomeDir } from "./auth-start-options-BPIPeEX8.mjs";
5
5
  import { n as codexCatalogHomeIdFromCanonicalPath } from "./session-catalog-home-id-vlih0B_g.mjs";
6
6
  import { t as buildCodexAppServerConnectionFingerprint } from "./plugin-app-cache-key-BL9B5H0L.mjs";
7
- import { d as observeCodexCatalogEphemeralThreads, r as projectCodexCatalogNativeThread, s as codexCatalogSourceForClient } from "./session-catalog-native-projection-CuaFZuQE.mjs";
7
+ import { d as observeCodexCatalogEphemeralThreads, r as projectCodexCatalogNativeThread, s as codexCatalogSourceForClient } from "./session-catalog-native-projection-LshItrMe.mjs";
8
8
  import { createHash } from "node:crypto";
9
9
  import { embeddedAgentLog } from "openclaw/plugin-sdk/agent-harness-registration";
10
10
  import path from "node:path";
@@ -3,10 +3,10 @@ import { t as CODEX_CATALOG_MAX_ROWS } from "./session-catalog-limits-DDxOsQeC.m
3
3
  import { i as retainCodexCatalogRow, n as codexCatalogRowRecency, r as compareCodexCatalogRows, t as CodexCatalogOrdering } from "./session-catalog-index-order-BcQpHks3.mjs";
4
4
  import { n as CodexCatalogPersistence, r as codexCatalogMetadataPage } from "./session-catalog-index-state-TeO7EyO-.mjs";
5
5
  import { i as CodexCatalogAvailability, r as withCodexCatalogListRequest } from "./session-catalog-list-request-CvtxrYSe.mjs";
6
- import { l as getCodexCatalogSource, p as setCodexCatalogSource, r as projectCodexCatalogNativeThread, u as hasLiveCodexCatalogSource } from "./session-catalog-native-projection-CuaFZuQE.mjs";
7
- import { i as subscribeCodexCatalogEvents } from "./session-catalog-events-BMCFMZw-.mjs";
6
+ import { l as getCodexCatalogSource, p as setCodexCatalogSource, r as projectCodexCatalogNativeThread, u as hasLiveCodexCatalogSource } from "./session-catalog-native-projection-LshItrMe.mjs";
7
+ import { i as subscribeCodexCatalogEvents } from "./session-catalog-events-DVLgp99B.mjs";
8
8
  import { a as reportCodexCatalogSpawnFailure, n as findCodexAppServerSpawnError } from "./spawn-error-CL3n6MAa.mjs";
9
- import { CodexCatalogProjectionCapacityError, CodexCatalogProjections, a as resolveCodexCatalogRolloutFingerprint, i as readCodexCatalogRollout, mergeCodexCatalogRolloutRow, n as indexCodexCatalogRowsByRollout, o as scanCodexCatalogRollouts, projectCodexCatalogThread, r as isCodexCatalogRolloutPathCovered, t as codexCatalogRolloutLogicalPath } from "./session-catalog-projection-CGfzfP93.mjs";
9
+ import { CodexCatalogProjectionCapacityError, CodexCatalogProjections, a as resolveCodexCatalogRolloutFingerprint, i as readCodexCatalogRollout, mergeCodexCatalogRolloutRow, n as indexCodexCatalogRowsByRollout, o as scanCodexCatalogRollouts, projectCodexCatalogThread, r as isCodexCatalogRolloutPathCovered, t as codexCatalogRolloutLogicalPath } from "./session-catalog-projection-CCBFozaQ.mjs";
10
10
  import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
11
11
  import { createHash } from "node:crypto";
12
12
  import { isDeepStrictEqual } from "node:util";
@@ -1,6 +1,6 @@
1
1
  import { D as selectCodexCatalogPreviewInput, c as MAX_CWD_LENGTH, d as boundedCatalogString, k as truncateCodexCatalogPreview } from "./session-catalog-parsing-CPGaPYr-.mjs";
2
2
  import { i as isJsonObject } from "./protocol-CANUwXJ3.mjs";
3
- import { n as defineCodexBuildState } from "./build-state-DIQ5O_-S.mjs";
3
+ import { n as defineCodexBuildState } from "./build-state-E-CRUdgh.mjs";
4
4
  import { n as detachCodexCatalogString } from "./session-catalog-limits-DDxOsQeC.mjs";
5
5
  import { t as __exportAll } from "./session-binding-sidecars-jo6H8dFr.mjs";
6
6
  //#region extensions/codex/src/session-catalog-source.ts
@@ -2,7 +2,7 @@ import { D as selectCodexCatalogPreviewInput, O as toCatalogSession, S as readCo
2
2
  import { n as detachCodexCatalogString } from "./session-catalog-limits-DDxOsQeC.mjs";
3
3
  import { n as codexCatalogRowRecency } from "./session-catalog-index-order-BcQpHks3.mjs";
4
4
  import { t as isOpenClawManagedCodexThread } from "./session-catalog-provenance-DoAvktcj.mjs";
5
- import { c as copyCodexCatalogSource, l as getCodexCatalogSource, p as setCodexCatalogSource, r as projectCodexCatalogNativeThread } from "./session-catalog-native-projection-CuaFZuQE.mjs";
5
+ import { c as copyCodexCatalogSource, l as getCodexCatalogSource, p as setCodexCatalogSource, r as projectCodexCatalogNativeThread } from "./session-catalog-native-projection-LshItrMe.mjs";
6
6
  import { asFiniteNumber, isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
7
7
  import path from "node:path";
8
8
  import fs from "node:fs/promises";
@@ -1,5 +1,5 @@
1
1
  import "./session-catalog-parsing-CPGaPYr-.mjs";
2
- import "./session-catalog-BFafIiF6.mjs";
2
+ import "./session-catalog-DFZmNlhW.mjs";
3
3
  import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { normalizeAgentId } from "openclaw/plugin-sdk/routing";
5
5
  import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
@@ -1,10 +1,10 @@
1
- import { l as retainSharedCodexAppServerClientByInstanceId } from "./shared-client-lifecycle-7xgtlo15.mjs";
1
+ import { l as retainSharedCodexAppServerClientByInstanceId } from "./shared-client-lifecycle-4LdC3gM4.mjs";
2
2
  import { t as withCodexAppServerThreadMutation } from "./thread-ownership-queue-Dp24d7-F.mjs";
3
3
  import { t as isIncognitoSessionKey } from "./incognito-session-DWYapfwf.mjs";
4
- import { G as releaseCodexAppServerLiveThread, R as hasCodexAppServerLiveThread, V as isCodexAppServerLiveThreadClaimed } from "./shared-client-CJCTeFpQ.mjs";
5
- import { n as CODEX_APP_SERVER_UNSUBSCRIBE_TIMEOUT_MS, o as closeCodexStartupClientBestEffort, p as unsubscribeCodexThreadBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-B-S7ngS_.mjs";
6
- import { t as codexNativeSubagentMonitorRuntime } from "./native-subagent-monitor-BwkQXf9e.mjs";
7
- import { t as isSameCodexAppServerThreadOwner } from "./thread-ownership-B6pPt21M.mjs";
4
+ import { K as releaseCodexAppServerLiveThread, R as hasCodexAppServerLiveThread, V as isCodexAppServerLiveThreadClaimed } from "./shared-client-zsK3DTPh.mjs";
5
+ import { n as CODEX_APP_SERVER_UNSUBSCRIBE_TIMEOUT_MS, o as closeCodexStartupClientBestEffort, p as unsubscribeCodexThreadBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-D1aznv7C.mjs";
6
+ import { t as codexNativeSubagentMonitorRuntime } from "./native-subagent-monitor-DbNIloTJ.mjs";
7
+ import { t as isSameCodexAppServerThreadOwner } from "./thread-ownership-B0xUCXOU.mjs";
8
8
  import { t as getCodexSessionInitializationRollback } from "./session-initialization-6aveB9qb.mjs";
9
9
  //#region extensions/codex/src/app-server/session-retirement.ts
10
10
  async function releaseSessionSubscription(client, binding, sessionKey, assertCurrent) {
@@ -1,12 +1,12 @@
1
1
  import { r as readMirrorIdentity, t as attachCodexMirrorIdentity } from "./upstream-prompt-provenance-fXkKbPVC.mjs";
2
2
  import { a as fingerprintCodexMirrorSourceMessage, c as readCodexMirrorSourceFingerprint } from "./transcript-mirror-attestation-YSegaktH.mjs";
3
- import { tt as resolveCodexAppServerPreparedAuthHandoff } from "./shared-client-CJCTeFpQ.mjs";
4
- import { _ as assertCodexPassiveTurnItems } from "./client-qyUBJlGZ.mjs";
5
- import { o as resolveCodexLocalRuntimeAttribution } from "./native-subagent-monitor-BwkQXf9e.mjs";
3
+ import { nt as resolveCodexAppServerPreparedAuthHandoff } from "./shared-client-zsK3DTPh.mjs";
4
+ import { _ as assertCodexPassiveTurnItems } from "./client-6GbdZFc0.mjs";
5
+ import { o as resolveCodexLocalRuntimeAttribution } from "./native-subagent-monitor-DbNIloTJ.mjs";
6
6
  import { t as codexTranscriptMirrorRuntime } from "./transcript-mirror-kxmCYsuF.mjs";
7
- import { runBoundedCodexAppServerTurn } from "./bounded-turn-BNunZPtz.mjs";
7
+ import { runBoundedCodexAppServerTurn } from "./bounded-turn-Ca4urQ25.mjs";
8
8
  import { t as resolveCodexBoundedTurnIsolation } from "./bounded-turn-isolation-B8K_ylqk.mjs";
9
- import { a as createAttributedCodexAssistantMessage } from "./event-projector-assistant-message-MV_1dj-3.mjs";
9
+ import { a as createAttributedCodexAssistantMessage } from "./event-projector-assistant-message-CAI4foF8.mjs";
10
10
  import { t as CodexSettledTurnContext } from "./settled-turn-context-D4yj4rxf.mjs";
11
11
  import { isSilentReplyText } from "openclaw/plugin-sdk/reply-runtime";
12
12
  //#region extensions/codex/src/app-server/settled-turn-finalizer.ts
@@ -1,4 +1,4 @@
1
- import { n as defineCodexBuildState } from "./build-state-DIQ5O_-S.mjs";
1
+ import { n as defineCodexBuildState } from "./build-state-E-CRUdgh.mjs";
2
2
  //#region extensions/codex/src/app-server/shared-client-lifecycle.ts
3
3
  /** Client ownership and synchronous retirement, independent of startup/auth execution. */
4
4
  const createCodexAppServerStartupLifetime = () => ({
@@ -1,21 +1,21 @@
1
1
  import { i as isJsonObject } from "./protocol-CANUwXJ3.mjs";
2
- import { n as defineCodexBuildState, t as codexBuildSymbol } from "./build-state-DIQ5O_-S.mjs";
2
+ import { n as defineCodexBuildState, t as codexBuildSymbol } from "./build-state-E-CRUdgh.mjs";
3
3
  import { t as CODEX_APP_SERVER_AUTH_PROVIDER } from "./auth-profile-selection-DFu9e167.mjs";
4
4
  import { n as isCodexAppServerProxyLaunch } from "./launch-args-DbFCehO7.mjs";
5
5
  import { a as withEphemeralCodexAuthStore, i as withClearedEnvironmentVariables, n as resolveCodexAppServerLocalHomeDir, r as resolveCodexAppServerUserHomeDir, t as resolveCodexAppServerHomeDir } from "./auth-start-options-BPIPeEX8.mjs";
6
6
  import { a as resolveCodexAppServerStartOptionsForAgent, d as readCodexEffectiveConfig, o as resolveCodexComputerUseConfig, t as codexAppServerStartOptionsKey, u as CODEX_SESSION_OVERRIDABLE_LAYER_TYPES } from "./config-options-CzyWLTJt.mjs";
7
- import { d as resolveMacOSDesktopCodexBundledMarketplaceCandidates, f as resolveMacOSDesktopCodexComputerUseServiceAppCandidates, i as resolveManagedCodexNativeCommand, l as resolveFirstExistingMacOSDesktopCodexBundledMarketplacePath, r as resolveManagedCodexAppServerStartOptions, t as isManagedCodexDesktopCommand, u as resolveMacOSDesktopCodexAppPathCandidates } from "./managed-binary-kiWRhNRE.mjs";
8
- import { a as readCodexCliAuthFileApiKey, c as resolveCodexAppServerPreparedApiKeyCacheKey, d as waitForCodexDesktopGeneration, f as readCodexDesktopArtifactTreeFingerprint, i as fingerprintTokenAuthProfileCacheKey, n as CODEX_AUTH_JSON_FILENAME, o as readFirstNonEmptyEnv, r as fingerprintApiKeyAuthProfileCacheKey, s as resolveCodexAppServerFallbackApiKeyCacheKey, t as CODEX_APP_SERVER_API_KEY_ENV_VARS, u as isCodexDesktopGenerationCurrent } from "./auth-cache-key-Dnps4W4_.mjs";
9
- import { a as notifyDesktopGenerationDrainChecks, c as retainSharedClientEntry, d as retireSharedCodexAppServerClientIfCurrent, m as waitForUnclaimedSharedClientStartup, n as getCurrentSharedClientEntry, o as ownCodexStartup, r as getSharedCodexAppServerClientState, s as releaseSharedClientEntry, t as createCodexAppServerStartupLifetime, u as retirePendingSharedClientEntryIfUnclaimed } from "./shared-client-lifecycle-7xgtlo15.mjs";
10
- import { n as resolveCodexAppServerSpawnEnv } from "./transport-stdio-Bdegpn2V.mjs";
7
+ import { d as resolveMacOSDesktopCodexBundledMarketplaceCandidates, f as resolveMacOSDesktopCodexComputerUseServiceAppCandidates, i as resolveManagedCodexNativeCommand, l as resolveFirstExistingMacOSDesktopCodexBundledMarketplacePath, r as resolveManagedCodexAppServerStartOptions, t as isManagedCodexDesktopCommand, u as resolveMacOSDesktopCodexAppPathCandidates } from "./managed-binary-B6hQ1UKR.mjs";
8
+ import { a as readCodexCliAuthFileApiKey, c as resolveCodexAppServerPreparedApiKeyCacheKey, d as waitForCodexDesktopGeneration, f as readCodexDesktopArtifactTreeFingerprint, i as fingerprintTokenAuthProfileCacheKey, n as CODEX_AUTH_JSON_FILENAME, o as readFirstNonEmptyEnv, r as fingerprintApiKeyAuthProfileCacheKey, s as resolveCodexAppServerFallbackApiKeyCacheKey, t as CODEX_APP_SERVER_API_KEY_ENV_VARS, u as isCodexDesktopGenerationCurrent } from "./auth-cache-key-CWpIEtTm.mjs";
9
+ import { a as notifyDesktopGenerationDrainChecks, c as retainSharedClientEntry, d as retireSharedCodexAppServerClientIfCurrent, m as waitForUnclaimedSharedClientStartup, n as getCurrentSharedClientEntry, o as ownCodexStartup, r as getSharedCodexAppServerClientState, s as releaseSharedClientEntry, t as createCodexAppServerStartupLifetime, u as retirePendingSharedClientEntryIfUnclaimed } from "./shared-client-lifecycle-4LdC3gM4.mjs";
10
+ import { n as resolveCodexAppServerSpawnEnv } from "./transport-stdio-CbutOIEh.mjs";
11
11
  import { n as CodexAppServerAuthProfileUnavailableError, r as formatCodexAuthProfileUnavailableMessage } from "./auth-profile-recovery-BREezV0L.mjs";
12
12
  import { i as withTimeout } from "./timeout-CXOfNoaX.mjs";
13
13
  import { n as readCodexSessionMeta } from "./session-catalog-provenance-DoAvktcj.mjs";
14
- import { n as observeCodexCatalogClient } from "./session-catalog-events-BMCFMZw-.mjs";
14
+ import { n as observeCodexCatalogClient } from "./session-catalog-events-DVLgp99B.mjs";
15
15
  import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-C0NbLms1.mjs";
16
16
  import { a as resolveCodexAppServerAuthProfileStore, i as resolveCodexAppServerAuthProfileIdForAgent, r as resolveCodexAppServerAuthProfileId, t as isCodexAppServerNativeAuthProfile } from "./auth-profile-B0okYl2D.mjs";
17
17
  import { i as isCodexResponsesOAuthCredential, n as createCodexResponsesOAuth, o as resolveCodexResponsesOAuthProfileFingerprint, r as isCodexResponsesOAuth, t as CODEX_RESPONSES_OAUTH_PROVIDER } from "./responses-oauth-twnuTaAa.mjs";
18
- import { f as isUnsupportedCodexAppServerVersionError, t as CodexAppServerClient } from "./client-qyUBJlGZ.mjs";
18
+ import { f as isUnsupportedCodexAppServerVersionError, t as CodexAppServerClient } from "./client-6GbdZFc0.mjs";
19
19
  import { n as isCodexWebSocketOpenFailure } from "./transport-websocket-BTBE-LD9.mjs";
20
20
  import { t as __exportAll } from "./session-binding-sidecars-jo6H8dFr.mjs";
21
21
  import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -2177,10 +2177,10 @@ function revertCodexAppServerLiveThreadSkillsCatalog(client, threadId) {
2177
2177
  function hasCodexAppServerLiveThread(client, threadId) {
2178
2178
  return hasThreadOwnership(configuredClients.get(client), threadId);
2179
2179
  }
2180
- function isCodexAppServerLiveThreadClaimed(client, threadId) {
2181
- const runtime = configuredClients.get(client);
2182
- return runtime !== void 0 && !runtime.closed && runtime.claimedThreads.has(threadId);
2183
- }
2180
+ const hasLiveThreadMark = (mark) => (client, threadId) => isCodexAppServerClientRuntimeLive(client) && configuredClients.get(client)?.[mark].has(threadId) === true;
2181
+ const isCodexAppServerLiveThreadClaimed = hasLiveThreadMark("claimedThreads");
2182
+ /** Native commands and children can still need an otherwise-idle subscription. */
2183
+ const isCodexAppServerLiveThreadProtected = hasLiveThreadMark("protectedThreads");
2184
2184
  function hasCodexAppServerSiblingThreadWork(client, threadId) {
2185
2185
  return hasSiblingThreadWork(configuredClients.get(client), threadId);
2186
2186
  }
@@ -2521,7 +2521,7 @@ async function prepareCodexInferenceRoute(params) {
2521
2521
  }
2522
2522
  pending = Promise.all([
2523
2523
  import("./inference-proxy-DhcXOgUE.mjs"),
2524
- import("./native-subagent-monitor-BwkQXf9e.mjs").then((n) => n.n),
2524
+ import("./native-subagent-monitor-DbNIloTJ.mjs").then((n) => n.n),
2525
2525
  import("./inference-dispatch-CMZtjQyz.mjs")
2526
2526
  ]).then(([{ createCodexInferenceProxy }, native, { createCodexInferenceModelBinding }]) => {
2527
2527
  assertClient();
@@ -3312,7 +3312,7 @@ async function startInitializedCodexAppServerClientOnce(params) {
3312
3312
  } finally {
3313
3313
  artifactDrain?.cancel();
3314
3314
  }
3315
- const runtimeArtifactModule = params.runtimeArtifactMode ? await import("./runtime-artifact-DDQ-HGXf.mjs") : void 0;
3315
+ const runtimeArtifactModule = params.runtimeArtifactMode ? await import("./runtime-artifact-D7lCXdhV.mjs") : void 0;
3316
3316
  const runtimeArtifactBeforeStart = runtimeArtifactModule ? await runtimeArtifactModule.captureCodexAppServerRuntimeArtifactBeforeStart({
3317
3317
  startOptions,
3318
3318
  spawnIdentity: resolveCodexAppServerSpawnIdentity(startOptions),
@@ -3588,4 +3588,4 @@ function closeSharedClientEntryIfUnclaimed(entry) {
3588
3588
  return Boolean(entry.client);
3589
3589
  }
3590
3590
  //#endregion
3591
- export { reconcileCodexComputerUseStartArtifacts as $, bindCodexInferenceThread as A, isCodexAppServerClientRuntimeLive as B, CodexThreadBindingConflictError as C, nativeHookRelayUnregisterQueue as D, isCodexContextRestartSelectionChangedError as E, consumeCodexAppServerLiveThread as F, releaseCodexAppServerLiveThread as G, prepareCodexWorkspaceReferences as H, ensureCodexAppServerClientRuntime as I, unsubscribeCodexAppServerLiveThread as J, retainCodexAppServerLiveThread as K, forgetCodexWorkspaceReferences as L, getCodexInferenceThreadQualification as M, prepareCodexInferenceThreadConfig as N, acquireCodexNativeConfigFence as O, claimCodexAppServerLiveThread as P, createCodexEphemeralThreadPolicy as Q, hasCodexAppServerLiveThread as R, CodexAdoptedThreadActiveError as S, CodexThreadStartRequestError as T, protectCodexAppServerLiveThread as U, isCodexAppServerLiveThreadClaimed as V, readCodexClientSessionMeta as W, readRecentCodexRateLimits as X, readCodexRateLimitsRevision as Y, rememberCodexRateLimitsRead as Z, retainSharedCodexAppServerClientIfCurrent as _, clearSharedCodexAppServerClientIfCurrentAndUnclaimed as a, isLegacyCodexComputerUsePluginDisabled as at, withLeasedCodexAppServerClientStartSelectionRetry as b, getLeasedSharedCodexAppServerClient as c, assertNotSymlink as ct, readCodexAppServerClientDesktopGeneration as d, TURN_TERMINAL_SETTLEMENT_TIMEOUT_MS as dt, resolveCodexAppServerAuthAccountCacheKey as et, readCodexAppServerClientDesktopGenerationFingerprint as f, isCodexAppServerStartupError as ft, resolveCodexNativeConfigFenceKey as g, releaseLeasedSharedCodexAppServerClient as h, withCodexStartupTimeout as ht, clearSharedCodexAppServerClientIfCurrent as i, hasLegacyCodexComputerUseMcpPolicy as it, getCodexInferenceThread as j, assertCodexInferenceRouteConfig as k, getSharedCodexAppServerClient as l, CodexAppServerStartupError as lt, releaseCodexAppServerClientLease as m, resolveCodexStartupTimeoutMs as mt, captureCodexAppServerClientLifetime as n, resolveBundledComputerUseMarketplacePath as nt, clearSharedCodexAppServerClientIfCurrentAndWait as o, resolveManagedCodexComputerUseConfig as ot, readCodexAppServerClientProcessIdentity as p, resolveCodexGatewayTimeoutWithGraceMs as pt, revertCodexAppServerLiveThreadSkillsCatalog as q, captureSharedCodexAppServerCatalogLifetime as r, resolveClientManagedBundledMarketplacePath as rt, createIsolatedCodexAppServerClient as s, ensureCodexComputerUseSharedPluginCache as st, assertCodexAppServerClientStartSelectionCurrent as t, resolveCodexAppServerPreparedAuthHandoff as tt, isCodexAppServerStartSelectionChangedError as u, TURN_FINALIZE_DRAIN_ABORT_GRACE_MS as ut, shared_client_exports as v, CodexThreadClientReplacementError as w, CODEX_APP_SERVER_CONTEXT_RESTART_SELECTION_CHANGED as x, waitForCodexAppServerClientDesktopGenerationDrain as y, hasCodexAppServerSiblingThreadWork as z };
3591
+ export { createCodexEphemeralThreadPolicy as $, bindCodexInferenceThread as A, isCodexAppServerClientRuntimeLive as B, CodexThreadBindingConflictError as C, nativeHookRelayUnregisterQueue as D, isCodexContextRestartSelectionChangedError as E, consumeCodexAppServerLiveThread as F, readCodexClientSessionMeta as G, isCodexAppServerLiveThreadProtected as H, ensureCodexAppServerClientRuntime as I, revertCodexAppServerLiveThreadSkillsCatalog as J, releaseCodexAppServerLiveThread as K, forgetCodexWorkspaceReferences as L, getCodexInferenceThreadQualification as M, prepareCodexInferenceThreadConfig as N, acquireCodexNativeConfigFence as O, claimCodexAppServerLiveThread as P, rememberCodexRateLimitsRead as Q, hasCodexAppServerLiveThread as R, CodexAdoptedThreadActiveError as S, CodexThreadStartRequestError as T, prepareCodexWorkspaceReferences as U, isCodexAppServerLiveThreadClaimed as V, protectCodexAppServerLiveThread as W, readCodexRateLimitsRevision as X, unsubscribeCodexAppServerLiveThread as Y, readRecentCodexRateLimits as Z, retainSharedCodexAppServerClientIfCurrent as _, clearSharedCodexAppServerClientIfCurrentAndUnclaimed as a, hasLegacyCodexComputerUseMcpPolicy as at, withLeasedCodexAppServerClientStartSelectionRetry as b, getLeasedSharedCodexAppServerClient as c, ensureCodexComputerUseSharedPluginCache as ct, readCodexAppServerClientDesktopGeneration as d, TURN_FINALIZE_DRAIN_ABORT_GRACE_MS as dt, reconcileCodexComputerUseStartArtifacts as et, readCodexAppServerClientDesktopGenerationFingerprint as f, TURN_TERMINAL_SETTLEMENT_TIMEOUT_MS as ft, resolveCodexNativeConfigFenceKey as g, withCodexStartupTimeout as gt, releaseLeasedSharedCodexAppServerClient as h, resolveCodexStartupTimeoutMs as ht, clearSharedCodexAppServerClientIfCurrent as i, resolveClientManagedBundledMarketplacePath as it, getCodexInferenceThread as j, assertCodexInferenceRouteConfig as k, getSharedCodexAppServerClient as l, assertNotSymlink as lt, releaseCodexAppServerClientLease as m, resolveCodexGatewayTimeoutWithGraceMs as mt, captureCodexAppServerClientLifetime as n, resolveCodexAppServerPreparedAuthHandoff as nt, clearSharedCodexAppServerClientIfCurrentAndWait as o, isLegacyCodexComputerUsePluginDisabled as ot, readCodexAppServerClientProcessIdentity as p, isCodexAppServerStartupError as pt, retainCodexAppServerLiveThread as q, captureSharedCodexAppServerCatalogLifetime as r, resolveBundledComputerUseMarketplacePath as rt, createIsolatedCodexAppServerClient as s, resolveManagedCodexComputerUseConfig as st, assertCodexAppServerClientStartSelectionCurrent as t, resolveCodexAppServerAuthAccountCacheKey as tt, isCodexAppServerStartSelectionChangedError as u, CodexAppServerStartupError as ut, shared_client_exports as v, CodexThreadClientReplacementError as w, CODEX_APP_SERVER_CONTEXT_RESTART_SELECTION_CHANGED as x, waitForCodexAppServerClientDesktopGenerationDrain as y, hasCodexAppServerSiblingThreadWork as z };
@@ -6,18 +6,18 @@ import { i as resolveCodexAppServerHomeScope, l as resolveCodexModelBackedReview
6
6
  import { n as formatCodexUsageLimitErrorMessage } from "./rate-limits-B7-X2TgG.mjs";
7
7
  import { i as resolveCodexBindingAppServerConnection, r as requireCodexSupervisionModelSelection } from "./binding-connection-DTtN1KrX.mjs";
8
8
  import { n as canUseCodexModelBackedApprovalsReviewerForModel, r as resolveOpenClawExecPolicyForCodexAppServer } from "./config-DKhXquav.mjs";
9
- import { X as readRecentCodexRateLimits, b as withLeasedCodexAppServerClientStartSelectionRetry, c as getLeasedSharedCodexAppServerClient, m as releaseCodexAppServerClientLease, tt as resolveCodexAppServerPreparedAuthHandoff } from "./shared-client-CJCTeFpQ.mjs";
10
- import { A as handleDynamicToolCallWithTimeout, B as resolveCodexToolAbortTerminalReason, P as resolveDynamicToolCallTimeoutMs, S as assertCodexTurnStartResponse, i as isCodexAppServerApprovalRequest, k as createCodexElicitationResponse, s as isCodexAppServerIndeterminateRequestCancellationError, w as readCodexDynamicToolCallParams, y as assertCodexThreadForkResponse, z as toCodexDynamicToolProtocolResponse } from "./client-qyUBJlGZ.mjs";
11
- import { f as terminateCodexBackgroundTerminals, p as unsubscribeCodexThreadBestEffort, s as interruptCodexTurnAndWaitBestEffort, u as retireUnsafeCodexTurnClientBestEffort } from "./attempt-client-cleanup-B-S7ngS_.mjs";
12
- import { t as CodexEphemeralTurn } from "./ephemeral-turn-DiCS1ijR.mjs";
13
- import { Ct as refreshCodexPluginAppApprovalPolicy, D as buildCodexNativeHookRelayConfig, M as resolveCodexNativeHookRelayEvents, N as resolveCodexNativeHookRelayTtlMs, O as buildCodexNativeHookRelayDisabledConfig, St as mergeCodexThreadConfigs, ft as resolveCodexDynamicToolsLoading, g as CODEX_NATIVE_PERSONALITY_NONE, p as resolveCodexWebSearchPlan, r as buildCodexRuntimeThreadConfig, y as resolveCodexAppServerThreadModelSelection } from "./thread-requests-OWGOiDaV.mjs";
14
- import { S as resolveCodexAppServerReasoningEffort, o as buildCodexUserInput, r as buildCodexTemporalAdditionalContext, x as readCodexSupportedReasoningEfforts } from "./thread-lifecycle-_bAbjedG.mjs";
9
+ import { Z as readRecentCodexRateLimits, b as withLeasedCodexAppServerClientStartSelectionRetry, c as getLeasedSharedCodexAppServerClient, m as releaseCodexAppServerClientLease, nt as resolveCodexAppServerPreparedAuthHandoff } from "./shared-client-zsK3DTPh.mjs";
10
+ import { A as handleDynamicToolCallWithTimeout, B as resolveCodexToolAbortTerminalReason, P as resolveDynamicToolCallTimeoutMs, S as assertCodexTurnStartResponse, i as isCodexAppServerApprovalRequest, k as createCodexElicitationResponse, s as isCodexAppServerIndeterminateRequestCancellationError, w as readCodexDynamicToolCallParams, y as assertCodexThreadForkResponse, z as toCodexDynamicToolProtocolResponse } from "./client-6GbdZFc0.mjs";
11
+ import { f as terminateCodexBackgroundTerminals, p as unsubscribeCodexThreadBestEffort, s as interruptCodexTurnAndWaitBestEffort, u as retireUnsafeCodexTurnClientBestEffort } from "./attempt-client-cleanup-D1aznv7C.mjs";
12
+ import { t as CodexEphemeralTurn } from "./ephemeral-turn-Cyu_xJDs.mjs";
13
+ import { Ct as refreshCodexPluginAppApprovalPolicy, D as buildCodexNativeHookRelayConfig, M as resolveCodexNativeHookRelayEvents, N as resolveCodexNativeHookRelayTtlMs, O as buildCodexNativeHookRelayDisabledConfig, St as mergeCodexThreadConfigs, ft as resolveCodexDynamicToolsLoading, g as CODEX_NATIVE_PERSONALITY_NONE, p as resolveCodexWebSearchPlan, r as buildCodexRuntimeThreadConfig, y as resolveCodexAppServerThreadModelSelection } from "./thread-requests-15uBuGjw.mjs";
14
+ import { S as resolveCodexAppServerReasoningEffort, o as buildCodexUserInput, r as buildCodexTemporalAdditionalContext, x as readCodexSupportedReasoningEfforts } from "./thread-lifecycle-D03WesNn.mjs";
15
15
  import { o as resolveCodexSessionBinding } from "./session-binding-DGCYAfvD.mjs";
16
- import { a as refreshCodexThreadPolicy, i as assertCodexSupervisionThreadLineage, n as CodexThreadPolicyHandoffError } from "./thread-policy-gNPzzpVp.mjs";
16
+ import { a as refreshCodexThreadPolicy, i as assertCodexSupervisionThreadLineage, n as CodexThreadPolicyHandoffError } from "./thread-policy-g1TKKqWj.mjs";
17
17
  import { t as resolveCodexNativeExecutionBlock } from "./sandbox-guard-DjCz2eOw.mjs";
18
- import { E as CodexNativeToolLifecycleProjector, a as emitDynamicToolStartedDiagnostic, b as createCodexNativePreToolUseFailureBuffer, c as buildDynamicTools, f as resolveCodexExternalSandboxPolicyForOpenClawSandbox, g as shouldRequireCodexSandboxExecServerEnvironment, h as shouldEnableCodexAppServerNativeToolSurface, i as emitDynamicToolErrorDiagnostic, m as resolveCodexSandboxEnvironmentSelection, o as emitDynamicToolTerminalDiagnostic, p as resolveCodexMessageToolProvider, r as routeCodexAppServerElicitationRequest, s as handleCodexAppServerApprovalRequest, t as createCodexDynamicToolBridge, v as ensureCodexSandboxExecServerEnvironment, y as releaseCodexSandboxExecServerEnvironment } from "./dynamic-tools-Db2sY5cZ.mjs";
18
+ import { E as CodexNativeToolLifecycleProjector, a as emitDynamicToolStartedDiagnostic, b as createCodexNativePreToolUseFailureBuffer, c as buildDynamicTools, f as resolveCodexExternalSandboxPolicyForOpenClawSandbox, g as shouldRequireCodexSandboxExecServerEnvironment, h as shouldEnableCodexAppServerNativeToolSurface, i as emitDynamicToolErrorDiagnostic, m as resolveCodexSandboxEnvironmentSelection, o as emitDynamicToolTerminalDiagnostic, p as resolveCodexMessageToolProvider, r as routeCodexAppServerElicitationRequest, s as handleCodexAppServerApprovalRequest, t as createCodexDynamicToolBridge, v as ensureCodexSandboxExecServerEnvironment, y as releaseCodexSandboxExecServerEnvironment } from "./dynamic-tools-CGMXNyuw.mjs";
19
19
  import { a as resolveCodexAppServerForModelProvider, i as resolveCodexSessionPermissionCwd, n as applyCodexSessionPermissionPolicy, r as resolveCodexEffectiveSessionPermissionPolicy, t as CODEX_SESSION_PERMISSION_EXEC_MODES } from "./session-permission-policy-Ci_fVX6y.mjs";
20
- import { n as resolveCodexProviderWebSearchSupportForClient } from "./provider-capabilities-DG5qbsUZ.mjs";
20
+ import { n as resolveCodexProviderWebSearchSupportForClient } from "./provider-capabilities-CYK-rMwC.mjs";
21
21
  import { readStringField } from "openclaw/plugin-sdk/string-coerce-runtime";
22
22
  import { randomUUID } from "node:crypto";
23
23
  import { isDeepStrictEqual } from "node:util";
@@ -1,6 +1,6 @@
1
1
  import { a as marketplaceRef, n as isOpenAiCuratedMarketplace, o as pluginReadParams, u as CODEX_PLUGINS_MARKETPLACE_NAME } from "./plugin-inventory-Cky2XJUw.mjs";
2
2
  import { a as defaultCodexAppInventoryCache, r as buildCodexPluginAppCacheKey } from "./plugin-app-cache-key-BL9B5H0L.mjs";
3
- import { o as withCodexAppServerJsonClient } from "./request-BZOfsSXW.mjs";
3
+ import { o as withCodexAppServerJsonClient } from "./request-DQh7X3fU.mjs";
4
4
  import "./config-DKhXquav.mjs";
5
5
  import { t as __exportAll } from "./session-binding-sidecars-jo6H8dFr.mjs";
6
6
  import { asNonArrayRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -4,7 +4,7 @@ import { u as stringifyCodexPolicy } from "./config-security-CE-FcGw9.mjs";
4
4
  import { n as resolveCodexAppServerLocalHomeDir, t as resolveCodexAppServerHomeDir } from "./auth-start-options-BPIPeEX8.mjs";
5
5
  import { d as readCodexEffectiveConfig, n as codexSandboxPolicyForTurn, s as assertCodexModelBackedReviewerEffectiveConfig, u as CODEX_SESSION_OVERRIDABLE_LAYER_TYPES } from "./config-options-CzyWLTJt.mjs";
6
6
  import { i as markStartedCodexManagedThread } from "./managed-thread-store-BMqgThVL.mjs";
7
- import { l as retainSharedCodexAppServerClientByInstanceId, n as getCurrentSharedClientEntry } from "./shared-client-lifecycle-7xgtlo15.mjs";
7
+ import { l as retainSharedCodexAppServerClientByInstanceId, n as getCurrentSharedClientEntry } from "./shared-client-lifecycle-4LdC3gM4.mjs";
8
8
  import { t as withCodexAppServerThreadMutation } from "./thread-ownership-queue-Dp24d7-F.mjs";
9
9
  import { t as isIncognitoSessionKey } from "./incognito-session-DWYapfwf.mjs";
10
10
  import { n as CodexAppServerRpcError, r as isCodexThreadReadMissingError } from "./rpc-error-BlD2vuzn.mjs";
@@ -18,14 +18,14 @@ import "./config-DKhXquav.mjs";
18
18
  import { i as sanitizeInlineImageDataUrl, r as invalidInlineImageText } from "./session-history-read-Ov3StuL4.mjs";
19
19
  import { c as resolveCodexContextEngineProjectionMaxChars, o as neutralizeCodexExplicitMentionSigils } from "./context-engine-projection-PezSESth.mjs";
20
20
  import { n as normalizeCodexAppServerBindingModelProvider } from "./auth-profile-B0okYl2D.mjs";
21
- import { A as bindCodexInferenceThread, B as isCodexAppServerClientRuntimeLive, C as CodexThreadBindingConflictError, F as consumeCodexAppServerLiveThread, G as releaseCodexAppServerLiveThread, J as unsubscribeCodexAppServerLiveThread, M as getCodexInferenceThreadQualification, N as prepareCodexInferenceThreadConfig, Q as createCodexEphemeralThreadPolicy, S as CodexAdoptedThreadActiveError, T as CodexThreadStartRequestError, V as isCodexAppServerLiveThreadClaimed, j as getCodexInferenceThread, k as assertCodexInferenceRouteConfig, n as captureCodexAppServerClientLifetime, w as CodexThreadClientReplacementError, z as hasCodexAppServerSiblingThreadWork } from "./shared-client-CJCTeFpQ.mjs";
22
- import { C as assertExactSupervisionModelSelection, D as readSupervisionResponseThreadId, O as resolveCodexThreadRolloutPath, d as isCodexAppServerRequestTimeoutError, l as isCodexAppServerOverloadError, p as resolveCodexAppServerClientInstanceId, r as getCodexAppServerClientInstanceId, v as assertCodexThreadAcceptsDirectInput, x as assertCodexThreadStartResponse, y as assertCodexThreadForkResponse } from "./client-qyUBJlGZ.mjs";
23
- import { c as isCodexAppServerUnsafeSubscriptionError, g as hasCodexAppServerSiblingRouteWork, n as CODEX_APP_SERVER_UNSUBSCRIBE_TIMEOUT_MS, o as closeCodexStartupClientBestEffort, p as unsubscribeCodexThreadBestEffort, r as CodexAppServerUnsafeSubscriptionError, u as retireUnsafeCodexTurnClientBestEffort } from "./attempt-client-cleanup-B-S7ngS_.mjs";
24
- import { $ as readActiveCodexTurnIdsFromResume, B as loadCodexNativeToolCatalog, C as mergeCodexNativeProjectDocThreadConfig, E as assertCodexNativeHookRelayAllowed, F as attestCodexThreadToolSurface, G as areUserMcpServersFingerprintsCompatible, H as applyCodexNativeSkillIsolation, I as checkCodexThreadAppAvailability, J as fingerprintCodexThreadConfig, K as codexDynamicToolsFingerprint, L as discardUnattestedCodexPluginThread, Q as legacyFingerprintUserMcpServersConfigPatch, R as attestCodexRestrictedToolSurfaceMcpServersDisabled, St as mergeCodexThreadConfigs, T as CodexManagedHooksOnlyError, Tt as buildCodexAppApprovalOverrides, U as resolveCodexNativeSkillIsolation, W as areCodexDynamicToolFingerprintsCompatible, X as fingerprintJsonObject, Y as fingerprintEnvironmentSelection, Z as fingerprintUserMcpServersConfigPatch, _ as resolveCodexAppServerModelProvider, at as shouldRotateCodexGpt56MultiAgentBinding, bt as disableUnlistedCodexApps, c as codexThreadSandboxOrPermissions, d as resolveCodexThreadApprovalsReviewer, et as shouldStartTransientNoToolThread, g as CODEX_NATIVE_PERSONALITY_NONE, h as buildDeveloperInstructions, i as buildCodexRuntimeThreadConfigForRun, it as shouldRotateCodexAppServerBindingForRuntime, l as readCodexInheritedMcpServerNames, lt as isMessageOnlyCodexSourceReply, m as mergeCodexNativeShellEnvironment, mt as buildCodexPluginAppsConfigPatchFromPolicyContext, n as buildCodexRingZeroThreadConfigPatch, nt as isTransientWebSearchRestriction, o as buildThreadResumeParams, p as resolveCodexWebSearchPlan, q as codexLegacyDynamicToolsFingerprint, rt as shouldRecheckRecoverablePluginBinding, s as buildThreadStartParams, t as assertCodexManagedRequirementsDoNotOverrideToolPolicy, u as readCodexManagedRequirementsFingerprint, ut as isSystemAgentOnlyCodexDynamicToolAllowlist, v as resolveCodexAppServerRequestModelSelection, x as joinPresentSections, xt as isCodexPluginThreadBindingStale, y as resolveCodexAppServerThreadModelSelection, yt as buildPluginAppPolicyContext, z as hasCodexNativeToolCatalog } from "./thread-requests-OWGOiDaV.mjs";
21
+ import { $ as createCodexEphemeralThreadPolicy, A as bindCodexInferenceThread, B as isCodexAppServerClientRuntimeLive, C as CodexThreadBindingConflictError, F as consumeCodexAppServerLiveThread, H as isCodexAppServerLiveThreadProtected, K as releaseCodexAppServerLiveThread, M as getCodexInferenceThreadQualification, N as prepareCodexInferenceThreadConfig, S as CodexAdoptedThreadActiveError, T as CodexThreadStartRequestError, V as isCodexAppServerLiveThreadClaimed, Y as unsubscribeCodexAppServerLiveThread, j as getCodexInferenceThread, k as assertCodexInferenceRouteConfig, n as captureCodexAppServerClientLifetime, w as CodexThreadClientReplacementError, z as hasCodexAppServerSiblingThreadWork } from "./shared-client-zsK3DTPh.mjs";
22
+ import { C as assertExactSupervisionModelSelection, D as readSupervisionResponseThreadId, O as resolveCodexThreadRolloutPath, d as isCodexAppServerRequestTimeoutError, l as isCodexAppServerOverloadError, p as resolveCodexAppServerClientInstanceId, r as getCodexAppServerClientInstanceId, v as assertCodexThreadAcceptsDirectInput, x as assertCodexThreadStartResponse, y as assertCodexThreadForkResponse } from "./client-6GbdZFc0.mjs";
23
+ import { c as isCodexAppServerUnsafeSubscriptionError, g as hasCodexAppServerSiblingRouteWork, n as CODEX_APP_SERVER_UNSUBSCRIBE_TIMEOUT_MS, o as closeCodexStartupClientBestEffort, p as unsubscribeCodexThreadBestEffort, r as CodexAppServerUnsafeSubscriptionError, u as retireUnsafeCodexTurnClientBestEffort } from "./attempt-client-cleanup-D1aznv7C.mjs";
24
+ import { $ as readActiveCodexTurnIdsFromResume, B as loadCodexNativeToolCatalog, C as mergeCodexNativeProjectDocThreadConfig, E as assertCodexNativeHookRelayAllowed, F as attestCodexThreadToolSurface, G as areUserMcpServersFingerprintsCompatible, H as applyCodexNativeSkillIsolation, I as checkCodexThreadAppAvailability, J as fingerprintCodexThreadConfig, K as codexDynamicToolsFingerprint, L as discardUnattestedCodexPluginThread, Q as legacyFingerprintUserMcpServersConfigPatch, R as attestCodexRestrictedToolSurfaceMcpServersDisabled, St as mergeCodexThreadConfigs, T as CodexManagedHooksOnlyError, Tt as buildCodexAppApprovalOverrides, U as resolveCodexNativeSkillIsolation, W as areCodexDynamicToolFingerprintsCompatible, X as fingerprintJsonObject, Y as fingerprintEnvironmentSelection, Z as fingerprintUserMcpServersConfigPatch, _ as resolveCodexAppServerModelProvider, at as shouldRotateCodexGpt56MultiAgentBinding, bt as disableUnlistedCodexApps, c as codexThreadSandboxOrPermissions, d as resolveCodexThreadApprovalsReviewer, et as shouldStartTransientNoToolThread, g as CODEX_NATIVE_PERSONALITY_NONE, h as buildDeveloperInstructions, i as buildCodexRuntimeThreadConfigForRun, it as shouldRotateCodexAppServerBindingForRuntime, l as readCodexInheritedMcpServerNames, lt as isMessageOnlyCodexSourceReply, m as mergeCodexNativeShellEnvironment, mt as buildCodexPluginAppsConfigPatchFromPolicyContext, n as buildCodexRingZeroThreadConfigPatch, nt as isTransientWebSearchRestriction, o as buildThreadResumeParams, p as resolveCodexWebSearchPlan, q as codexLegacyDynamicToolsFingerprint, rt as shouldRecheckRecoverablePluginBinding, s as buildThreadStartParams, t as assertCodexManagedRequirementsDoNotOverrideToolPolicy, u as readCodexManagedRequirementsFingerprint, ut as isSystemAgentOnlyCodexDynamicToolAllowlist, v as resolveCodexAppServerRequestModelSelection, x as joinPresentSections, xt as isCodexPluginThreadBindingStale, y as resolveCodexAppServerThreadModelSelection, yt as buildPluginAppPolicyContext, z as hasCodexNativeToolCatalog } from "./thread-requests-15uBuGjw.mjs";
25
25
  import { o as resolveCodexSessionBinding, r as hashCodexAppServerBindingFingerprint } from "./session-binding-DGCYAfvD.mjs";
26
- import { a as refreshCodexThreadPolicy, i as assertCodexSupervisionThreadLineage, n as CodexThreadPolicyHandoffError, o as refreshCodexThreadSkillsCatalog, r as assertAdoptedCodexThreadResumeAllowed, t as CodexIncognitoPolicyChangeError } from "./thread-policy-gNPzzpVp.mjs";
27
- import { t as resumeCodexAppServerThread } from "./thread-resume-GOry0AYh.mjs";
28
- import { c as withExclusiveCodexAppServerThread, r as retainCodexAppServerBindingSubscription, t as isSameCodexAppServerThreadOwner } from "./thread-ownership-B6pPt21M.mjs";
26
+ import { a as refreshCodexThreadPolicy, i as assertCodexSupervisionThreadLineage, n as CodexThreadPolicyHandoffError, o as refreshCodexThreadSkillsCatalog, r as assertAdoptedCodexThreadResumeAllowed, t as CodexIncognitoPolicyChangeError } from "./thread-policy-g1TKKqWj.mjs";
27
+ import { t as resumeCodexAppServerThread } from "./thread-resume-BZfwM8Jh.mjs";
28
+ import { c as withExclusiveCodexAppServerThread, r as retainCodexAppServerBindingSubscription, t as isSameCodexAppServerThreadOwner } from "./thread-ownership-B0xUCXOU.mjs";
29
29
  import "./transcript-mirror-kxmCYsuF.mjs";
30
30
  import { asOptionalRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
31
31
  import crypto from "node:crypto";
@@ -1139,7 +1139,7 @@ async function releaseCodexBoundLiveThread(options) {
1139
1139
  if (changedClient && !previous) return false;
1140
1140
  const client = previous?.client ?? options.client;
1141
1141
  try {
1142
- if (isCodexAppServerLiveThreadClaimed(client, options.threadId)) throw new Error(`Codex thread ${options.threadId} is claimed by active work; stop it first.`);
1142
+ if (isCodexAppServerLiveThreadClaimed(client, options.threadId) || isCodexAppServerLiveThreadProtected(client, options.threadId)) throw new Error(`Codex thread ${options.threadId} is claimed by active work; stop it first.`);
1143
1143
  return await releaseCodexRetainedLiveThread({
1144
1144
  ...options,
1145
1145
  client,
@@ -1151,7 +1151,7 @@ async function releaseCodexBoundLiveThread(options) {
1151
1151
  } : void 0
1152
1152
  });
1153
1153
  } finally {
1154
- await previous?.release(!isCodexAppServerLiveThreadClaimed(client, options.threadId));
1154
+ await previous?.release(!isCodexAppServerLiveThreadClaimed(client, options.threadId) && !isCodexAppServerLiveThreadProtected(client, options.threadId));
1155
1155
  }
1156
1156
  }
1157
1157
  /** Reuses one safely owned, fully matching subscription on its original client. */
@@ -1194,6 +1194,29 @@ async function tryReuseCodexLiveThread(options) {
1194
1194
  let ownershipTransferred = false;
1195
1195
  let preserveSubscription = false;
1196
1196
  let nativeThread;
1197
+ const cleanup = async (preserveOwner, ownership = retainedThread) => {
1198
+ let failure;
1199
+ let retainSubscription = preserveOwner;
1200
+ try {
1201
+ if (retainSubscription) try {
1202
+ assertWarmOwner();
1203
+ retainSubscription = isSameCodexAppServerThreadOwner(params.bindingStore.read(bindingIdentity), binding);
1204
+ } catch {
1205
+ retainSubscription = false;
1206
+ }
1207
+ if (retainSubscription) {
1208
+ if (!await retainCodexAppServerBindingSubscription(params.client, binding.threadId, ownership)) failure = { cause: /* @__PURE__ */ new Error("Codex live thread ownership could not be returned to its session") };
1209
+ } else await retainedThread.release(binding.threadId);
1210
+ } catch (cause) {
1211
+ failure = { cause };
1212
+ }
1213
+ if (failure) await abandonCodexLiveThreadRelease({
1214
+ client: params.client,
1215
+ abandonClient: params.abandonClient,
1216
+ lifecycleTiming,
1217
+ threadId: binding.threadId
1218
+ }, failure.cause);
1219
+ };
1197
1220
  try {
1198
1221
  assertWarmOwner();
1199
1222
  if (binding.preserveNativeModel || binding.connectionScope === "supervision") {
@@ -1295,9 +1318,18 @@ async function tryReuseCodexLiveThread(options) {
1295
1318
  threadId: binding.threadId,
1296
1319
  action: "resumed"
1297
1320
  });
1321
+ const liveThreadEphemeralPolicy = ephemeralPolicy && {
1322
+ ...ephemeralPolicy,
1323
+ skillsInstructions: params.skillsInstructions
1324
+ };
1298
1325
  ownershipTransferred = true;
1299
1326
  return {
1300
1327
  kind: "ready",
1328
+ cleanupOnFailure: () => cleanup(isCodexAppServerLiveThreadProtected(params.client, binding.threadId), {
1329
+ ...retainedThread,
1330
+ configFingerprint: liveThreadConfigFingerprint,
1331
+ ephemeralPolicy: liveThreadEphemeralPolicy
1332
+ }),
1301
1333
  binding: {
1302
1334
  ...binding,
1303
1335
  ...!incognito ? {
@@ -1308,38 +1340,14 @@ async function tryReuseCodexLiveThread(options) {
1308
1340
  environmentSelectionFingerprint
1309
1341
  } : {},
1310
1342
  liveThreadConfigFingerprint,
1311
- liveThreadEphemeralPolicy: ephemeralPolicy && {
1312
- ...ephemeralPolicy,
1313
- skillsInstructions: params.skillsInstructions
1314
- },
1343
+ liveThreadEphemeralPolicy,
1315
1344
  liveThreadOwnership: retainedThread,
1316
1345
  ...!incognito && retainedThread.serviceTier && resumeParams.serviceTier === void 0 ? { clearInheritedServiceTier: true } : {},
1317
1346
  lifecycle: { action: "resumed" }
1318
1347
  }
1319
1348
  };
1320
1349
  } finally {
1321
- if (!ownershipTransferred) {
1322
- let failure;
1323
- try {
1324
- if (preserveSubscription) try {
1325
- assertWarmOwner();
1326
- preserveSubscription = isSameCodexAppServerThreadOwner(params.bindingStore.read(bindingIdentity), binding);
1327
- } catch {
1328
- preserveSubscription = false;
1329
- }
1330
- if (preserveSubscription) {
1331
- if (!await retainCodexAppServerBindingSubscription(params.client, binding.threadId, retainedThread)) failure = { cause: /* @__PURE__ */ new Error("Codex live thread ownership could not be returned to its session") };
1332
- } else await retainedThread.release(binding.threadId);
1333
- } catch (cause) {
1334
- failure = { cause };
1335
- }
1336
- if (failure) await abandonCodexLiveThreadRelease({
1337
- client: params.client,
1338
- abandonClient: params.abandonClient,
1339
- lifecycleTiming,
1340
- threadId: binding.threadId
1341
- }, failure.cause);
1342
- }
1350
+ if (!ownershipTransferred) await cleanup(preserveSubscription);
1343
1351
  }
1344
1352
  }
1345
1353
  //#endregion
@@ -1834,7 +1842,8 @@ async function archiveSupervisionArtifact(client, threadId) {
1834
1842
  async function startOrResumeThread(input) {
1835
1843
  const incognito = isIncognitoSessionKey(input.params.sessionKey);
1836
1844
  const clientId = resolveCodexAppServerClientInstanceId(input.client);
1837
- return await withCodexThreadLifecycleBinding(input, async (bindingIdentity, saved, assert) => {
1845
+ let cleanupWarmBinding;
1846
+ const prep = withCodexThreadLifecycleBinding(input, async (bindingIdentity, saved, assert) => {
1838
1847
  const params = {
1839
1848
  ...input,
1840
1849
  assertCurrent: assert
@@ -2134,7 +2143,10 @@ async function startOrResumeThread(input) {
2134
2143
  clientId,
2135
2144
  buildLoadedPluginThreadConfig
2136
2145
  });
2137
- if (warmReuse.kind === "ready") return publishCodexThreadInferenceBinding(params, warmReuse.binding, true);
2146
+ if (warmReuse.kind === "ready") {
2147
+ cleanupWarmBinding = warmReuse.cleanupOnFailure;
2148
+ return publishCodexThreadInferenceBinding(params, warmReuse.binding, true);
2149
+ }
2138
2150
  if (incognito || warmReuse.kind === "rotate") {
2139
2151
  throwIfAborted();
2140
2152
  await clearCurrentBinding(incognito ? "rotating an unavailable ephemeral thread binding" : "rotating a stale plugin app binding");
@@ -2169,6 +2181,16 @@ async function startOrResumeThread(input) {
2169
2181
  if (replacementPredecessor) await releaseRetainedThread(replacementPredecessor.threadId, replacementPredecessor.clientId);
2170
2182
  return publishCodexThreadInferenceBinding(params, started);
2171
2183
  });
2184
+ try {
2185
+ return await prep;
2186
+ } catch (error) {
2187
+ if (cleanupWarmBinding) try {
2188
+ await cleanupWarmBinding();
2189
+ } catch (releaseError) {
2190
+ throw new AggregateError([error, releaseError], "Codex warm thread preparation and subscription cleanup failed", { cause: releaseError });
2191
+ }
2192
+ throw error;
2193
+ }
2172
2194
  }
2173
2195
  //#endregion
2174
2196
  //#region extensions/codex/src/app-server/user-input.ts
@@ -1,7 +1,7 @@
1
- import { l as retainSharedCodexAppServerClientByInstanceId } from "./shared-client-lifecycle-7xgtlo15.mjs";
1
+ import { l as retainSharedCodexAppServerClientByInstanceId } from "./shared-client-lifecycle-4LdC3gM4.mjs";
2
2
  import { t as withCodexAppServerThreadMutation } from "./thread-ownership-queue-Dp24d7-F.mjs";
3
- import { G as releaseCodexAppServerLiveThread, K as retainCodexAppServerLiveThread, V as isCodexAppServerLiveThreadClaimed } from "./shared-client-CJCTeFpQ.mjs";
4
- import { o as closeCodexStartupClientBestEffort, p as unsubscribeCodexThreadBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-B-S7ngS_.mjs";
3
+ import { K as releaseCodexAppServerLiveThread, V as isCodexAppServerLiveThreadClaimed, q as retainCodexAppServerLiveThread } from "./shared-client-zsK3DTPh.mjs";
4
+ import { o as closeCodexStartupClientBestEffort, p as unsubscribeCodexThreadBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-D1aznv7C.mjs";
5
5
  import { t as __exportAll } from "./session-binding-sidecars-jo6H8dFr.mjs";
6
6
  import { createDeferred } from "openclaw/plugin-sdk/extension-shared";
7
7
  import { runWithAsyncWorkResources } from "openclaw/plugin-sdk/agent-harness-tool-runtime";
@@ -1,6 +1,6 @@
1
- import { r as requestCodexAppServerClientJson, t as CodexAppServerScopedRequestRejectedError } from "./request-BZOfsSXW.mjs";
2
- import { S as CodexAdoptedThreadActiveError } from "./shared-client-CJCTeFpQ.mjs";
3
- import { l as isCodexAppServerOverloadError, u as isCodexAppServerPrewriteRequestCancellationError, v as assertCodexThreadAcceptsDirectInput } from "./client-qyUBJlGZ.mjs";
1
+ import { r as requestCodexAppServerClientJson, t as CodexAppServerScopedRequestRejectedError } from "./request-DQh7X3fU.mjs";
2
+ import { S as CodexAdoptedThreadActiveError } from "./shared-client-zsK3DTPh.mjs";
3
+ import { l as isCodexAppServerOverloadError, u as isCodexAppServerPrewriteRequestCancellationError, v as assertCodexThreadAcceptsDirectInput } from "./client-6GbdZFc0.mjs";
4
4
  import { AgentHarnessPreflightError, embeddedAgentLog, formatErrorMessage } from "openclaw/plugin-sdk/agent-harness-runtime";
5
5
  //#region extensions/codex/src/app-server/thread-policy.ts
6
6
  /** A refusal, not a failed native write: the ephemeral conversation must stay alive. */
@@ -8,13 +8,13 @@ import { t as isIncognitoSessionKey } from "./incognito-session-DWYapfwf.mjs";
8
8
  import { a as defaultCodexAppInventoryCache, i as CodexAppInventoryCache, o as serializeCodexAppInventoryError, s as codexAppIdentityKey, t as buildCodexAppServerConnectionFingerprint } from "./plugin-app-cache-key-BL9B5H0L.mjs";
9
9
  import "./config-DKhXquav.mjs";
10
10
  import { t as isCodexAppServerNativeAuthProfile } from "./auth-profile-B0okYl2D.mjs";
11
- import { D as nativeHookRelayUnregisterQueue, W as readCodexClientSessionMeta } from "./shared-client-CJCTeFpQ.mjs";
11
+ import { D as nativeHookRelayUnregisterQueue, G as readCodexClientSessionMeta } from "./shared-client-zsK3DTPh.mjs";
12
12
  import { a as isCodexResponsesOAuthRun, i as isCodexResponsesOAuthCredential, t as CODEX_RESPONSES_OAUTH_PROVIDER } from "./responses-oauth-twnuTaAa.mjs";
13
- import { B as resolveCodexToolAbortTerminalReason } from "./client-qyUBJlGZ.mjs";
14
- import { n as CODEX_APP_SERVER_UNSUBSCRIBE_TIMEOUT_MS, p as unsubscribeCodexThreadBestEffort } from "./attempt-client-cleanup-B-S7ngS_.mjs";
13
+ import { B as resolveCodexToolAbortTerminalReason } from "./client-6GbdZFc0.mjs";
14
+ import { n as CODEX_APP_SERVER_UNSUBSCRIBE_TIMEOUT_MS, p as unsubscribeCodexThreadBestEffort } from "./attempt-client-cleanup-D1aznv7C.mjs";
15
15
  import { t as ensureCodexPluginActivation } from "./plugin-activation-cNHRfaxU.mjs";
16
16
  import { r as hashCodexAppServerBindingFingerprint } from "./session-binding-DGCYAfvD.mjs";
17
- import { t as codexNativeSubagentMonitorRuntime } from "./native-subagent-monitor-BwkQXf9e.mjs";
17
+ import { t as codexNativeSubagentMonitorRuntime } from "./native-subagent-monitor-DbNIloTJ.mjs";
18
18
  import { normalizeOptionalString, normalizeUniqueStringEntries, normalizeUniqueTrimmedStringList } from "openclaw/plugin-sdk/string-coerce-runtime";
19
19
  import * as crypto$1 from "node:crypto";
20
20
  import crypto, { createHash } from "node:crypto";
@@ -1,9 +1,9 @@
1
1
  import { n as CodexAppServerRpcError } from "./rpc-error-BlD2vuzn.mjs";
2
- import { r as publishCodexCatalogResume } from "./session-catalog-events-BMCFMZw-.mjs";
3
- import { t as CodexAppServerScopedRequestRejectedError } from "./request-BZOfsSXW.mjs";
4
- import { L as forgetCodexWorkspaceReferences, ft as isCodexAppServerStartupError, u as isCodexAppServerStartSelectionChangedError } from "./shared-client-CJCTeFpQ.mjs";
5
- import { b as assertCodexThreadResumeResponse, l as isCodexAppServerOverloadError, u as isCodexAppServerPrewriteRequestCancellationError } from "./client-qyUBJlGZ.mjs";
6
- import { i as assertCodexThreadResumeSubscription, p as unsubscribeCodexThreadBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-B-S7ngS_.mjs";
2
+ import { r as publishCodexCatalogResume } from "./session-catalog-events-DVLgp99B.mjs";
3
+ import { t as CodexAppServerScopedRequestRejectedError } from "./request-DQh7X3fU.mjs";
4
+ import { L as forgetCodexWorkspaceReferences, pt as isCodexAppServerStartupError, u as isCodexAppServerStartSelectionChangedError } from "./shared-client-zsK3DTPh.mjs";
5
+ import { b as assertCodexThreadResumeResponse, l as isCodexAppServerOverloadError, u as isCodexAppServerPrewriteRequestCancellationError } from "./client-6GbdZFc0.mjs";
6
+ import { i as assertCodexThreadResumeSubscription, p as unsubscribeCodexThreadBestEffort, r as CodexAppServerUnsafeSubscriptionError } from "./attempt-client-cleanup-D1aznv7C.mjs";
7
7
  import { sanitizeTerminalText } from "openclaw/plugin-sdk/text-chunking";
8
8
  //#region extensions/codex/src/app-server/thread-resume.ts
9
9
  /** Owns Codex thread/resume subscription safety. */
@@ -1,5 +1,5 @@
1
1
  import { r as normalizeCodexAppServerArgs } from "./launch-args-DbFCehO7.mjs";
2
- import { i as resolveManagedCodexNativeCommand } from "./managed-binary-kiWRhNRE.mjs";
2
+ import { i as resolveManagedCodexNativeCommand } from "./managed-binary-B6hQ1UKR.mjs";
3
3
  import { i as recordCodexAppServerSpawnFailure, r as getCodexAppServerSpawnFailure } from "./spawn-error-CL3n6MAa.mjs";
4
4
  import { createHash, randomUUID } from "node:crypto";
5
5
  import { stripVTControlCharacters } from "node:util";
@@ -8,19 +8,19 @@ import { r as projectCodexUserItemText } from "./transcript-history-projection-D
8
8
  import { n as codexUpstreamBaseline, t as codexLastTerminalTurnId } from "./session-upstream-marker-D15C9NHp.mjs";
9
9
  import { r as buildCodexPluginAppCacheKey } from "./plugin-app-cache-key-BL9B5H0L.mjs";
10
10
  import { n as readCodexSessionMeta } from "./session-catalog-provenance-DoAvktcj.mjs";
11
- import { t as CodexAppServerScopedRequestRejectedError } from "./request-BZOfsSXW.mjs";
11
+ import { t as CodexAppServerScopedRequestRejectedError } from "./request-DQh7X3fU.mjs";
12
12
  import { r as resolveOpenClawExecPolicyForCodexAppServer } from "./config-DKhXquav.mjs";
13
13
  import { r as resolveCodexSupervisionAppServerRuntimeOptions } from "./config-runtime-C0NbLms1.mjs";
14
14
  import { a as fingerprintCodexMirrorSourceMessage, c as readCodexMirrorSourceFingerprint } from "./transcript-mirror-attestation-YSegaktH.mjs";
15
- import { P as claimCodexAppServerLiveThread, R as hasCodexAppServerLiveThread, f as readCodexAppServerClientDesktopGenerationFingerprint } from "./shared-client-CJCTeFpQ.mjs";
16
- import { l as isCodexAppServerOverloadError, u as isCodexAppServerPrewriteRequestCancellationError, v as assertCodexThreadAcceptsDirectInput, y as assertCodexThreadForkResponse } from "./client-qyUBJlGZ.mjs";
17
- import { D as buildCodexNativeHookRelayConfig, E as assertCodexNativeHookRelayAllowed, H as applyCodexNativeSkillIsolation, I as checkCodexThreadAppAvailability, K as codexDynamicToolsFingerprint, M as resolveCodexNativeHookRelayEvents, St as mergeCodexThreadConfigs, U as resolveCodexNativeSkillIsolation, V as parseCodexNativeToolCatalog, X as fingerprintJsonObject, Z as fingerprintUserMcpServersConfigPatch, a as buildCodexThreadConfiguration, h as buildDeveloperInstructions, ht as buildCodexPluginThreadConfig, k as buildCodexNativeHookRelayId, p as resolveCodexWebSearchPlan, wt as shouldBuildCodexPluginThreadConfig } from "./thread-requests-OWGOiDaV.mjs";
15
+ import { P as claimCodexAppServerLiveThread, R as hasCodexAppServerLiveThread, f as readCodexAppServerClientDesktopGenerationFingerprint } from "./shared-client-zsK3DTPh.mjs";
16
+ import { l as isCodexAppServerOverloadError, u as isCodexAppServerPrewriteRequestCancellationError, v as assertCodexThreadAcceptsDirectInput, y as assertCodexThreadForkResponse } from "./client-6GbdZFc0.mjs";
17
+ import { D as buildCodexNativeHookRelayConfig, E as assertCodexNativeHookRelayAllowed, H as applyCodexNativeSkillIsolation, I as checkCodexThreadAppAvailability, K as codexDynamicToolsFingerprint, M as resolveCodexNativeHookRelayEvents, St as mergeCodexThreadConfigs, U as resolveCodexNativeSkillIsolation, V as parseCodexNativeToolCatalog, X as fingerprintJsonObject, Z as fingerprintUserMcpServersConfigPatch, a as buildCodexThreadConfiguration, h as buildDeveloperInstructions, ht as buildCodexPluginThreadConfig, k as buildCodexNativeHookRelayId, p as resolveCodexWebSearchPlan, wt as shouldBuildCodexPluginThreadConfig } from "./thread-requests-15uBuGjw.mjs";
18
18
  import "./session-binding-DGCYAfvD.mjs";
19
- import { a as refreshCodexThreadPolicy, n as CodexThreadPolicyHandoffError } from "./thread-policy-gNPzzpVp.mjs";
20
- import "./thread-ownership-B6pPt21M.mjs";
19
+ import { a as refreshCodexThreadPolicy, n as CodexThreadPolicyHandoffError } from "./thread-policy-g1TKKqWj.mjs";
20
+ import "./thread-ownership-B0xUCXOU.mjs";
21
21
  import { n as resolveCodexNativeExecutionPolicy } from "./native-execution-policy-BxZJy5mP.mjs";
22
- import { l as prepareCodexWorkspaceDeveloperInstructions } from "./attempt-workspace-context-BJ5Z_olH.mjs";
23
- import { d as isCodexDynamicToolExcluded, n as resolveCodexProviderWebSearchSupportForClient } from "./provider-capabilities-DG5qbsUZ.mjs";
22
+ import { l as prepareCodexWorkspaceDeveloperInstructions } from "./attempt-workspace-context-DKAbD-vI.mjs";
23
+ import { d as isCodexDynamicToolExcluded, n as resolveCodexProviderWebSearchSupportForClient } from "./provider-capabilities-CYK-rMwC.mjs";
24
24
  import { n as prepareCodexSessionInitialization } from "./session-initialization-6aveB9qb.mjs";
25
25
  import { createImportedCodexSession } from "./session-history-import-WhX-X33a.mjs";
26
26
  import { isRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -1,5 +1,5 @@
1
1
  import { t as buildCodexAppServerUsageSnapshot } from "./rate-limits-B7-X2TgG.mjs";
2
- import { n as readCodexAppServerUsage } from "./request-BZOfsSXW.mjs";
2
+ import { n as readCodexAppServerUsage } from "./request-DQh7X3fU.mjs";
3
3
  import "./config-DKhXquav.mjs";
4
4
  import { n as resolveCodexAppServerRuntimeOptions } from "./config-runtime-C0NbLms1.mjs";
5
5
  import { CODEX_APP_SERVER_AUTH_MARKER } from "openclaw/plugin-sdk/agent-runtime";
@@ -1,7 +1,7 @@
1
1
  import { i as isJsonObject } from "./protocol-CANUwXJ3.mjs";
2
2
  import { a as shouldRefreshCodexRateLimitsForUsageLimitMessage, i as resolveCodexUsageLimitResetAtMs, n as formatCodexUsageLimitErrorMessage } from "./rate-limits-B7-X2TgG.mjs";
3
3
  import { t as CODEX_CONTROL_METHODS } from "./capabilities-B3WEZl4e.mjs";
4
- import { X as readRecentCodexRateLimits, Y as readCodexRateLimitsRevision, Z as rememberCodexRateLimitsRead } from "./shared-client-CJCTeFpQ.mjs";
4
+ import { Q as rememberCodexRateLimitsRead, X as readCodexRateLimitsRevision, Z as readRecentCodexRateLimits } from "./shared-client-zsK3DTPh.mjs";
5
5
  import { readStringField } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { markAuthProfileBlockedUntil } from "openclaw/plugin-sdk/agent-runtime";
7
7
  import { embeddedAgentLog, formatErrorMessage } from "openclaw/plugin-sdk/agent-harness-runtime";
@@ -1,6 +1,6 @@
1
1
  import { i as isJsonObject } from "./protocol-CANUwXJ3.mjs";
2
- import { f as buildCodexNativeWebSearchThreadConfig } from "./thread-requests-OWGOiDaV.mjs";
3
- import { runBoundedCodexAppServerTurn } from "./bounded-turn-BNunZPtz.mjs";
2
+ import { f as buildCodexNativeWebSearchThreadConfig } from "./thread-requests-15uBuGjw.mjs";
3
+ import { runBoundedCodexAppServerTurn } from "./bounded-turn-Ca4urQ25.mjs";
4
4
  import { normalizeOptionalString, normalizeTrimmedStringList } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import { readStringParam, resolveSearchTimeoutSeconds, wrapWebContent } from "openclaw/plugin-sdk/provider-web-search";
6
6
  //#region extensions/codex/src/web-search-provider.runtime.ts
package/dist/api.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { d as readCodexPluginConfig } from "./.setup/config-parsing-b088LyhT.mjs";
2
2
  import { a as resolveCodexAppServerStartOptionsForAgent } from "./.setup/config-options-CzyWLTJt.mjs";
3
- import { i as resolveManagedCodexNativeCommand, r as resolveManagedCodexAppServerStartOptions, s as CODEX_APP_SERVER_VERSION, t as isManagedCodexDesktopCommand } from "./.setup/managed-binary-kiWRhNRE.mjs";
3
+ import { i as resolveManagedCodexNativeCommand, r as resolveManagedCodexAppServerStartOptions, s as CODEX_APP_SERVER_VERSION, t as isManagedCodexDesktopCommand } from "./.setup/managed-binary-B6hQ1UKR.mjs";
4
4
  import { t as codexNativeProfileRecoveryHealthCheck } from "./.setup/auth-profile-health-oHizqgye.mjs";
5
5
  import { n as findCodexAppServerSpawnError, t as describeCodexSpawnError } from "./.setup/spawn-error-CL3n6MAa.mjs";
6
6
  import "./.setup/config-DKhXquav.mjs";
@@ -126,7 +126,7 @@ function createCodexManagedAppServerHealthCheck(params) {
126
126
  })];
127
127
  }
128
128
  const detectedVersion = parseCodexVersion(`${output.stdout}\n${output.stderr}`);
129
- if (detectedVersion !== "0.158.0") return [managedCodexFinding({
129
+ if (detectedVersion !== "0.160.0") return [managedCodexFinding({
130
130
  severity: versionFailureSeverity,
131
131
  message: detectedVersion ? `Managed Codex app-server version mismatch: expected ${CODEX_APP_SERVER_VERSION}, detected ${detectedVersion}.` : `Managed Codex app-server did not report a parseable version; expected ${CODEX_APP_SERVER_VERSION}.`,
132
132
  path: nativeCommand,
@@ -1,4 +1,4 @@
1
- import { t as createCodexCatalogDecoder } from "./.setup/client-catalog-response-DRvx_wCC.mjs";
1
+ import { t as createCodexCatalogDecoder } from "./.setup/client-catalog-response-HvvnCxvX.mjs";
2
2
  import { serveWorkerTasks } from "openclaw/plugin-sdk/worker-task-server";
3
3
  //#region extensions/codex/catalog-page.worker.ts
4
4
  const decode = createCodexCatalogDecoder();