@openclaw/codex 2026.7.2-beta.2 → 2026.7.2-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/{app-server-policy-Scc-Wevo.js → app-server-policy-DUMF2Xyr.js} +1 -1
  2. package/dist/{attempt-notifications-BFmNhqFl.js → attempt-notifications-Ecjyzufe.js} +1 -1
  3. package/dist/cli-metadata.js +1 -1
  4. package/dist/{command-formatters-Dq9InZUK.js → command-formatters-NCTL7A2q.js} +7 -3
  5. package/dist/{command-handlers-IgqmL_kv.js → command-handlers-DtFbZiba.js} +69 -11
  6. package/dist/{compact-DCTmg3id.js → compact-Kgy26gIM.js} +4 -4
  7. package/dist/{computer-use-CPcU8TjG.js → computer-use-C7x4ZaqR.js} +4 -4
  8. package/dist/{conversation-control-CGkBlfc5.js → conversation-control-B0s3aIjT.js} +5 -5
  9. package/dist/doctor-contract-api.js +1 -1
  10. package/dist/{dynamic-tools-C_1tEs34.js → dynamic-tools-D_vSVmv9.js} +253 -114
  11. package/dist/harness.js +8 -7
  12. package/dist/index.js +16 -16
  13. package/dist/{media-understanding-provider-D31dOJwb.js → media-understanding-provider-IPNNQre6.js} +6 -6
  14. package/dist/media-understanding-provider.js +1 -1
  15. package/dist/{models-uh26C8QU.js → models-DD5zBdX5.js} +1 -1
  16. package/dist/{notification-correlation-KmfV4EkP.js → notification-correlation-C8DVQ_Bq.js} +3 -3
  17. package/dist/{plugin-app-cache-key-Ceb-lm2c.js → plugin-app-cache-key-DJbhLYSK.js} +2 -2
  18. package/dist/{rate-limits-DyXaYAxU.js → rate-limits-CqhWQ2R9.js} +3 -1
  19. package/dist/{request-B_oQsCXy.js → request-9yf9pZjf.js} +1 -1
  20. package/dist/{run-attempt-MLzoMe_m.js → run-attempt-BIoO8ISr.js} +158 -76
  21. package/dist/{session-binding-h1mmCGnl.js → session-binding-Bmt20HfB.js} +2 -0
  22. package/dist/{session-catalog-CEvoXWHA.js → session-catalog-CA7R-hX2.js} +43 -22
  23. package/dist/{session-cli-XsEuWb_C.js → session-cli-Bxk3-Wqz.js} +2 -2
  24. package/dist/{shared-client-JiAnW6pc.js → shared-client-CSXLtCLE.js} +52 -3
  25. package/dist/{side-question-DqDvIwSU.js → side-question-DtzquMOb.js} +7 -7
  26. package/dist/{thread-lifecycle-CN_pPtPh.js → thread-lifecycle-CQ_9mAa1.js} +40 -9
  27. package/dist/{usage-D5Rohxoc.js → usage-CuPpFgTc.js} +3 -3
  28. package/dist/{web-search-provider.runtime-CKVBn3fP.js → web-search-provider.runtime-_x5XTeqh.js} +3 -3
  29. package/npm-shrinkwrap.json +30 -30
  30. package/openclaw.plugin.json +11 -1
  31. package/package.json +5 -5
package/dist/index.js CHANGED
@@ -1,20 +1,20 @@
1
1
  import { registerCodexCliMetadata } from "./cli-metadata.js";
2
2
  import { createCodexAppServerAgentHarness } from "./harness.js";
3
- import { C as resolveCodexAppServerFallbackApiKeyCacheKey, J as CODEX_INTERACTIVE_THREAD_SOURCE_KINDS, S as resolveCodexAppServerAuthProfileIdForAgent, Z as isJsonObject, a as getLeasedSharedCodexAppServerClient, b as resolveCodexAppServerAuthAccountCacheKey, c as releaseLeasedSharedCodexAppServerClient, p as withLeasedCodexAppServerClientStartSelectionRetry, r as clearSharedCodexAppServerClientIfCurrentAndWait, s as releaseCodexAppServerClientLease } from "./shared-client-JiAnW6pc.js";
4
- import { D as resolveOpenClawExecPolicyForCodexAppServer, E as resolveCodexSupervisionAppServerRuntimeOptions, a as isCodexAppServerNativeAuthProfile, b as resolveCodexAppServerRuntimeOptions, c as sessionBindingIdentity, f as assertCodexAppServerConnectionSecurity, h as codexSandboxPolicyForTurn, m as codexAppServerStartOptionsKey, n as assertCodexBindingMayBeReplaced, o as normalizeCodexAppServerBindingModelProvider, p as canUseCodexModelBackedApprovalsReviewerForModel, u as CODEX_PLUGINS_MARKETPLACE_NAME, y as readCodexPluginConfig } from "./session-binding-h1mmCGnl.js";
3
+ import { C as resolveCodexAppServerFallbackApiKeyCacheKey, J as CODEX_INTERACTIVE_THREAD_SOURCE_KINDS, S as resolveCodexAppServerAuthProfileIdForAgent, Z as isJsonObject, a as getLeasedSharedCodexAppServerClient, b as resolveCodexAppServerAuthAccountCacheKey, c as releaseLeasedSharedCodexAppServerClient, p as withLeasedCodexAppServerClientStartSelectionRetry, r as clearSharedCodexAppServerClientIfCurrentAndWait, s as releaseCodexAppServerClientLease } from "./shared-client-CSXLtCLE.js";
4
+ import { D as resolveOpenClawExecPolicyForCodexAppServer, E as resolveCodexSupervisionAppServerRuntimeOptions, a as isCodexAppServerNativeAuthProfile, b as resolveCodexAppServerRuntimeOptions, c as sessionBindingIdentity, f as assertCodexAppServerConnectionSecurity, h as codexSandboxPolicyForTurn, m as codexAppServerStartOptionsKey, n as assertCodexBindingMayBeReplaced, o as normalizeCodexAppServerBindingModelProvider, p as canUseCodexModelBackedApprovalsReviewerForModel, u as CODEX_PLUGINS_MARKETPLACE_NAME, y as readCodexPluginConfig } from "./session-binding-Bmt20HfB.js";
5
5
  import { d as assertCodexThreadStartResponse } from "./transcript-mirror-D9rTxx2P.js";
6
- import { i as defaultCodexAppInventoryCache, r as buildCodexPluginAppCacheKey } from "./plugin-app-cache-key-Ceb-lm2c.js";
7
- import { X as ensureCodexPluginActivation, Z as pluginReadParams, c as resumeCodexAppServerThread, h as resolveCodexAppServerRequestModelSelection, p as CODEX_NATIVE_PERSONALITY_NONE } from "./thread-lifecycle-CN_pPtPh.js";
6
+ import { i as defaultCodexAppInventoryCache, r as buildCodexPluginAppCacheKey } from "./plugin-app-cache-key-DJbhLYSK.js";
7
+ import { X as ensureCodexPluginActivation, Z as pluginReadParams, c as resumeCodexAppServerThread, h as resolveCodexAppServerRequestModelSelection, p as CODEX_NATIVE_PERSONALITY_NONE } from "./thread-lifecycle-CQ_9mAa1.js";
8
8
  import { n as CODEX_APP_SERVER_BINDING_NAMESPACE, t as CODEX_APP_SERVER_BINDING_MAX_ENTRIES } from "./session-binding-meta-B7aEMU7g.js";
9
- import { t as buildCodexMediaUnderstandingProvider } from "./media-understanding-provider-D31dOJwb.js";
10
- import { d as CODEX_CONTROL_METHODS, f as describeControlFailure, r as formatCodexDisplayText } from "./command-formatters-Dq9InZUK.js";
11
- import { t as resolveCodexAppServerForModelProvider } from "./app-server-policy-Scc-Wevo.js";
9
+ import { t as buildCodexMediaUnderstandingProvider } from "./media-understanding-provider-IPNNQre6.js";
10
+ import { d as CODEX_CONTROL_METHODS, f as describeControlFailure, r as formatCodexDisplayText } from "./command-formatters-NCTL7A2q.js";
11
+ import { t as resolveCodexAppServerForModelProvider } from "./app-server-policy-DUMF2Xyr.js";
12
12
  import { n as resolveCodexNativeExecutionBlock, r as resolveCodexNativeSandboxBlock } from "./sandbox-guard-D1Wky__S.js";
13
- import { d as CODEX_NATIVE_EXECUTION_AUTH_ERROR, f as canMutateCodexHost, u as trackCodexConversationActiveTurn } from "./conversation-control-CGkBlfc5.js";
13
+ import { d as CODEX_NATIVE_EXECUTION_AUTH_ERROR, f as canMutateCodexHost, u as trackCodexConversationActiveTurn } from "./conversation-control-B0s3aIjT.js";
14
14
  import { a as readCodexConversationBindingDataRecord, i as readCodexConversationBindingData, o as resolveCodexDefaultWorkspaceDir, r as createCodexConversationBindingData } from "./conversation-binding-data-BHRpYbX3.js";
15
- import { a as resolveCodexBindingAppServerConnection, n as readCodexNotificationThreadId, r as readCodexNotificationTurnId } from "./notification-correlation-KmfV4EkP.js";
16
- import { d as createCodexCliSessionNodeHostCommands, f as createCodexCliSessionNodeInvokePolicies, g as resumeCodexCliSessionOnNode, h as resolveCodexCliSessionForBindingOnNode, i as createCodexSessionCatalogNodeInvokePolicies, m as listCodexCliSessionsOnNode, n as createCodexSessionCatalogControl, o as codexControlRequest, r as createCodexSessionCatalogNodeHostCommands, t as codexSessionCatalogRuntime, u as assertCodexArchiveDescendantsUnowned } from "./session-catalog-CEvoXWHA.js";
17
- import { r as requestCodexAppServerJson } from "./request-B_oQsCXy.js";
15
+ import { a as resolveCodexBindingAppServerConnection, n as readCodexNotificationThreadId, r as readCodexNotificationTurnId } from "./notification-correlation-C8DVQ_Bq.js";
16
+ import { d as createCodexCliSessionNodeHostCommands, f as createCodexCliSessionNodeInvokePolicies, g as resumeCodexCliSessionOnNode, h as resolveCodexCliSessionForBindingOnNode, i as createCodexSessionCatalogNodeInvokePolicies, m as listCodexCliSessionsOnNode, n as createCodexSessionCatalogControl, o as codexControlRequest, r as createCodexSessionCatalogNodeHostCommands, t as codexSessionCatalogRuntime, u as assertCodexArchiveDescendantsUnowned } from "./session-catalog-CA7R-hX2.js";
17
+ import { r as requestCodexAppServerJson } from "./request-9yf9pZjf.js";
18
18
  import { t as createCodexWebSearchProviderBase } from "./web-search-provider.shared-BrZmlqyR.js";
19
19
  import { mutateConfigFile } from "openclaw/plugin-sdk/config-mutation";
20
20
  import { normalizePluginsConfig, resolveEffectiveEnableState, resolveLivePluginConfigObject, resolvePluginConfigObject } from "openclaw/plugin-sdk/plugin-config-runtime";
@@ -45,7 +45,7 @@ import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
45
45
  /** Defers schema compilation and auth loading until the first binding operation. */
46
46
  function createLazyCodexAppServerBindingStore(state) {
47
47
  let resolved;
48
- const store = () => resolved ??= import("./session-binding-h1mmCGnl.js").then((n) => n.l).then(({ createCodexAppServerBindingStore }) => createCodexAppServerBindingStore(state));
48
+ const store = () => resolved ??= import("./session-binding-Bmt20HfB.js").then((n) => n.l).then(({ createCodexAppServerBindingStore }) => createCodexAppServerBindingStore(state));
49
49
  return {
50
50
  read: async (identity) => (await store()).read(identity),
51
51
  hasOtherThreadOwner: async (threadId, currentIdentity) => (await store()).hasOtherThreadOwner(threadId, currentIdentity),
@@ -72,7 +72,7 @@ async function handleCodexCommand(ctx, options) {
72
72
  }
73
73
  }
74
74
  async function loadDefaultCodexSubcommandHandler() {
75
- const { handleCodexSubcommand } = await import("./command-handlers-IgqmL_kv.js");
75
+ const { handleCodexSubcommand } = await import("./command-handlers-DtFbZiba.js");
76
76
  return handleCodexSubcommand;
77
77
  }
78
78
  //#endregion
@@ -3726,7 +3726,7 @@ function createCodexSupervisionTools(options) {
3726
3726
  }
3727
3727
  //#endregion
3728
3728
  //#region extensions/codex/src/web-search-provider.ts
3729
- const loadCodexWebSearchRuntime = createLazyRuntimeModule(() => import("./web-search-provider.runtime-CKVBn3fP.js"));
3729
+ const loadCodexWebSearchRuntime = createLazyRuntimeModule(() => import("./web-search-provider.runtime-_x5XTeqh.js"));
3730
3730
  const CodexWebSearchSchema = {
3731
3731
  type: "object",
3732
3732
  properties: { query: {
@@ -3914,7 +3914,7 @@ var codex_default = definePluginEntry({
3914
3914
  if (!previousSessionId || !sessionId || previousSessionId === sessionId) return;
3915
3915
  const config = resolveCurrentConfig();
3916
3916
  const sessionKey = ctx.sessionKey?.trim();
3917
- const { sessionBindingIdentity } = await import("./session-binding-h1mmCGnl.js").then((n) => n.l);
3917
+ const { sessionBindingIdentity } = await import("./session-binding-Bmt20HfB.js").then((n) => n.l);
3918
3918
  const identity = sessionBindingIdentity({
3919
3919
  sessionId,
3920
3920
  ...sessionKey ? { sessionKey } : {},
@@ -3931,7 +3931,7 @@ var codex_default = definePluginEntry({
3931
3931
  const nextSessionKey = event.nextSessionKey?.trim();
3932
3932
  if (endedSessionKey && nextSessionKey && nextSessionKey !== endedSessionKey) return;
3933
3933
  const config = resolveCurrentConfig();
3934
- const { sessionBindingIdentity } = await import("./session-binding-h1mmCGnl.js").then((n) => n.l);
3934
+ const { sessionBindingIdentity } = await import("./session-binding-Bmt20HfB.js").then((n) => n.l);
3935
3935
  await bindingStore.retireSessionGeneration(sessionBindingIdentity({
3936
3936
  sessionId: event.sessionId,
3937
3937
  ...sessionKey ? { sessionKey } : {},
@@ -1,9 +1,9 @@
1
- import { Z as isJsonObject, o as isCodexAppServerStartSelectionChangedError } from "./shared-client-JiAnW6pc.js";
2
- import { _ as readCodexNotificationItem } from "./attempt-notifications-BFmNhqFl.js";
3
- import { b as resolveCodexAppServerRuntimeOptions } from "./session-binding-h1mmCGnl.js";
1
+ import { Z as isJsonObject, o as isCodexAppServerStartSelectionChangedError } from "./shared-client-CSXLtCLE.js";
2
+ import { _ as readCodexNotificationItem } from "./attempt-notifications-Ecjyzufe.js";
3
+ import { b as resolveCodexAppServerRuntimeOptions } from "./session-binding-Bmt20HfB.js";
4
4
  import { _ as readCodexTurnCompletedNotification, d as assertCodexThreadStartResponse, f as assertCodexTurnStartResponse, m as readCodexErrorNotification } from "./transcript-mirror-D9rTxx2P.js";
5
- import { r as readModelListResult } from "./models-uh26C8QU.js";
6
- import { J as mergeCodexThreadConfigs, l as buildCodexRuntimeThreadConfig } from "./thread-lifecycle-CN_pPtPh.js";
5
+ import { r as readModelListResult } from "./models-DD5zBdX5.js";
6
+ import { J as mergeCodexThreadConfigs, l as buildCodexRuntimeThreadConfig } from "./thread-lifecycle-CQ_9mAa1.js";
7
7
  import { validateJsonSchemaValue } from "openclaw/plugin-sdk/json-schema-runtime";
8
8
  import fs from "node:fs/promises";
9
9
  import path from "node:path";
@@ -62,7 +62,7 @@ async function runBoundedCodexAppServerTurnInWorkspace(params, appServer, worksp
62
62
  agentDir,
63
63
  config: params.config,
64
64
  timeoutMs
65
- }) : await import("./shared-client-JiAnW6pc.js").then((n) => n.f).then(({ createIsolatedCodexAppServerClient }) => createIsolatedCodexAppServerClient({
65
+ }) : await import("./shared-client-CSXLtCLE.js").then((n) => n.f).then(({ createIsolatedCodexAppServerClient }) => createIsolatedCodexAppServerClient({
66
66
  startOptions,
67
67
  timeoutMs,
68
68
  authProfileId: params.profile,
@@ -1,2 +1,2 @@
1
- import { t as buildCodexMediaUnderstandingProvider } from "./media-understanding-provider-D31dOJwb.js";
1
+ import { t as buildCodexMediaUnderstandingProvider } from "./media-understanding-provider-IPNNQre6.js";
2
2
  export { buildCodexMediaUnderstandingProvider };
@@ -40,7 +40,7 @@ async function listAllCodexAppServerModels(options = {}) {
40
40
  async function withCodexAppServerModelClient(options, run) {
41
41
  const timeoutMs = options.timeoutMs ?? 2500;
42
42
  const useSharedClient = options.sharedClient !== false;
43
- const { createIsolatedCodexAppServerClient, getLeasedSharedCodexAppServerClient, releaseLeasedSharedCodexAppServerClient } = await import("./shared-client-JiAnW6pc.js").then((n) => n.f);
43
+ const { createIsolatedCodexAppServerClient, getLeasedSharedCodexAppServerClient, releaseLeasedSharedCodexAppServerClient } = await import("./shared-client-CSXLtCLE.js").then((n) => n.f);
44
44
  const client = useSharedClient ? await getLeasedSharedCodexAppServerClient({
45
45
  startOptions: options.startOptions,
46
46
  timeoutMs,
@@ -1,6 +1,6 @@
1
- import { Z as isJsonObject } from "./shared-client-JiAnW6pc.js";
2
- import { E as resolveCodexSupervisionAppServerRuntimeOptions, b as resolveCodexAppServerRuntimeOptions, y as readCodexPluginConfig } from "./session-binding-h1mmCGnl.js";
3
- import { t as buildCodexAppServerConnectionFingerprint } from "./plugin-app-cache-key-Ceb-lm2c.js";
1
+ import { Z as isJsonObject } from "./shared-client-CSXLtCLE.js";
2
+ import { E as resolveCodexSupervisionAppServerRuntimeOptions, b as resolveCodexAppServerRuntimeOptions, y as readCodexPluginConfig } from "./session-binding-Bmt20HfB.js";
3
+ import { t as buildCodexAppServerConnectionFingerprint } from "./plugin-app-cache-key-DJbhLYSK.js";
4
4
  //#region extensions/codex/src/app-server/binding-connection.ts
5
5
  /** Requires the native model pair after a supervised pending branch has materialized. */
6
6
  function requireCodexSupervisionModelSelection(binding) {
@@ -1,5 +1,5 @@
1
- import { D as resolveCodexAppServerHomeDir } from "./shared-client-JiAnW6pc.js";
2
- import { S as resolveCodexAppServerUserHomeDir } from "./session-binding-h1mmCGnl.js";
1
+ import { D as resolveCodexAppServerHomeDir } from "./shared-client-CSXLtCLE.js";
2
+ import { S as resolveCodexAppServerUserHomeDir } from "./session-binding-Bmt20HfB.js";
3
3
  import { createRequire } from "node:module";
4
4
  import { isFutureDateTimestampMs, resolveDateTimestampMs, resolveExpiresAtMsFromDurationMs } from "openclaw/plugin-sdk/number-runtime";
5
5
  import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
@@ -1,4 +1,4 @@
1
- import { Z as isJsonObject } from "./shared-client-JiAnW6pc.js";
1
+ import { Z as isJsonObject } from "./shared-client-CSXLtCLE.js";
2
2
  import { MAX_DATE_TIMESTAMP_MS, resolveExpiresAtMsFromEpochSeconds } from "openclaw/plugin-sdk/number-runtime";
3
3
  import { asFiniteNumber, parseStrictFiniteNumber } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { expectDefined } from "openclaw/plugin-sdk/expect-runtime";
@@ -18,12 +18,14 @@ const DAY_WINDOW_MINUTES = 1440;
18
18
  const WEEKLY_WINDOW_MINUTES = 7 * DAY_WINDOW_MINUTES;
19
19
  const WEEKLY_RESET_GAP_MS = 3 * ONE_DAY_MS;
20
20
  const CODEX_USAGE_LIMIT_MESSAGE_PREFIX = "You've reached your Codex subscription usage limit.";
21
+ const CODEX_USAGE_LIMIT_STATE_MISMATCH_MESSAGE = "Codex rejected the request with a usage-limit error, but its current account usage does not report an exhausted limit.";
21
22
  /** Enriches Codex usage-limit failures with reset timing and recovery guidance. */
22
23
  function formatCodexUsageLimitErrorMessage(params) {
23
24
  const message = normalizeText(params.message);
24
25
  if (!isCodexUsageLimitError(params.codexErrorInfo)) return;
25
26
  const nowMs = params.nowMs ?? Date.now();
26
27
  const usageSummary = summarizeCodexAccountUsage(params.rateLimits, nowMs);
28
+ if (params.rateLimitsAuthoritative && hasCodexRateLimitSnapshots(params.rateLimits) && !usageSummary?.blocked) return [CODEX_USAGE_LIMIT_STATE_MISMATCH_MESSAGE, "Retry the request, use another Codex account if available, or switch to another configured model/provider."].join(" ");
27
29
  const nextReset = selectBlockingRateLimitReset(params.rateLimits, nowMs) ?? (usageSummary?.blocked ? void 0 : selectNextRateLimitReset(params.rateLimits, nowMs));
28
30
  const parts = [CODEX_USAGE_LIMIT_MESSAGE_PREFIX];
29
31
  let recoveryAction = "Wait until Codex becomes available";
@@ -1,4 +1,4 @@
1
- import { a as getLeasedSharedCodexAppServerClient, c as releaseLeasedSharedCodexAppServerClient, d as retireSharedCodexAppServerClientIfCurrent, i as createIsolatedCodexAppServerClient, m as withTimeout, o as isCodexAppServerStartSelectionChangedError } from "./shared-client-JiAnW6pc.js";
1
+ import { a as getLeasedSharedCodexAppServerClient, c as releaseLeasedSharedCodexAppServerClient, d as retireSharedCodexAppServerClientIfCurrent, i as createIsolatedCodexAppServerClient, m as withTimeout, o as isCodexAppServerStartSelectionChangedError } from "./shared-client-CSXLtCLE.js";
2
2
  import { t as resolveCodexAppServerDirectSandboxBypassBlock } from "./sandbox-guard-D1Wky__S.js";
3
3
  //#region extensions/codex/src/app-server/request.ts
4
4
  /** Sends one guarded request over a client lease owned by the caller. */