@openclaw/codex 2026.5.12 → 2026.5.14-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/dist/{client-iRf11BEu.js → client-CoctX13d.js} +5 -1
  2. package/dist/client-factory-Be6RD28K.js +9 -0
  3. package/dist/{command-formatters-Ttwc_kgX.js → command-formatters-DRJaVHhN.js} +32 -7
  4. package/dist/{command-handlers-BYf_veEb.js → command-handlers-CXxykxjq.js} +139 -11
  5. package/dist/{compact-Bl8jRPk4.js → compact-DWa8cylR.js} +2 -6
  6. package/dist/{computer-use-Ct3ngNBt.js → computer-use-DsJxRRtm.js} +1 -1
  7. package/dist/harness.js +4 -4
  8. package/dist/index.js +147 -32
  9. package/dist/media-understanding-provider.js +2 -2
  10. package/dist/{models-BmLfrDci.js → models-GCYf5s8J.js} +1 -1
  11. package/dist/{conversation-binding-CKofEetY.js → node-cli-sessions-CiexDHeV.js} +518 -6
  12. package/dist/{plugin-activation-PXGqUjwY.js → plugin-activation-aQOmRQwA.js} +6 -2
  13. package/dist/provider.js +1 -1
  14. package/dist/{plugin-app-cache-key-B7eU8fNZ.js → request-CKYiRqsN.js} +46 -3
  15. package/dist/{run-attempt-4t06MuNr.js → run-attempt-DG9NQab2.js} +95 -39
  16. package/dist/{shared-client-Cr6W-a2G.js → shared-client-BwUqd3lh.js} +5 -12
  17. package/dist/{side-question-DV7KYIB8.js → side-question-CVWPOkY-.js} +6 -6
  18. package/dist/test-api.js +1 -1
  19. package/dist/{thread-lifecycle-CJppEyYT.js → thread-lifecycle-DrbViNpf.js} +50 -7
  20. package/dist/{vision-tools-DHyuabWn.js → vision-tools-CzTdigBu.js} +1 -1
  21. package/package.json +5 -5
  22. package/dist/client-factory-DfnbdQv7.js +0 -19
  23. package/dist/request-ohCy5ASa.js +0 -45
  24. /package/dist/{rate-limit-cache-BFi-50LG.js → rate-limit-cache-dvhq-4pi.js} +0 -0
package/dist/index.js CHANGED
@@ -2,12 +2,11 @@ import { createCodexAppServerAgentHarness } from "./harness.js";
2
2
  import { o as readCodexPluginConfig, s as resolveCodexAppServerRuntimeOptions, t as CODEX_PLUGINS_MARKETPLACE_NAME } from "./config-0rd3LnKg.js";
3
3
  import { buildCodexMediaUnderstandingProvider } from "./media-understanding-provider.js";
4
4
  import { buildCodexProvider } from "./provider.js";
5
- import { r as describeControlFailure, t as requestCodexAppServerJson } from "./request-ohCy5ASa.js";
6
- import { r as formatCodexDisplayText } from "./command-formatters-Ttwc_kgX.js";
7
- import { l as resolveCodexAppServerAuthProfileIdForAgent, s as resolveCodexAppServerAuthAccountCacheKey, u as resolveCodexAppServerEnvApiKeyCacheKey } from "./shared-client-Cr6W-a2G.js";
8
- import { n as handleCodexConversationInboundClaim, t as handleCodexConversationBindingResolved } from "./conversation-binding-CKofEetY.js";
9
- import { a as defaultCodexAppInventoryCache, n as pluginReadParams, t as ensureCodexPluginActivation } from "./plugin-activation-PXGqUjwY.js";
10
- import { t as buildCodexPluginAppCacheKey } from "./plugin-app-cache-key-B7eU8fNZ.js";
5
+ import { i as describeControlFailure, n as buildCodexPluginAppCacheKey, t as requestCodexAppServerJson } from "./request-CKYiRqsN.js";
6
+ import { r as formatCodexDisplayText } from "./command-formatters-DRJaVHhN.js";
7
+ import { c as resolveCodexAppServerAuthAccountCacheKey, d as resolveCodexAppServerEnvApiKeyCacheKey, i as getSharedCodexAppServerClient, t as clearSharedCodexAppServerClientAndWait, u as resolveCodexAppServerAuthProfileIdForAgent } from "./shared-client-BwUqd3lh.js";
8
+ import { a as resolveCodexCliSessionForBindingOnNode, c as handleCodexConversationInboundClaim, i as listCodexCliSessionsOnNode, n as createCodexCliSessionNodeInvokePolicies, o as resumeCodexCliSessionOnNode, s as handleCodexConversationBindingResolved, t as createCodexCliSessionNodeHostCommands } from "./node-cli-sessions-CiexDHeV.js";
9
+ import { a as defaultCodexAppInventoryCache, n as pluginReadParams, t as ensureCodexPluginActivation } from "./plugin-activation-aQOmRQwA.js";
11
10
  import { resolveLivePluginConfigObject } from "openclaw/plugin-sdk/plugin-config-runtime";
12
11
  import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
13
12
  import os from "node:os";
@@ -39,7 +38,7 @@ async function handleCodexCommand(ctx, options = {}) {
39
38
  }
40
39
  }
41
40
  async function loadDefaultCodexSubcommandHandler() {
42
- const { handleCodexSubcommand } = await import("./command-handlers-BYf_veEb.js");
41
+ const { handleCodexSubcommand } = await import("./command-handlers-CXxykxjq.js");
43
42
  return handleCodexSubcommand;
44
43
  }
45
44
  //#endregion
@@ -124,7 +123,7 @@ async function discoverPluginDirs(codexHome) {
124
123
  manifestPath,
125
124
  sourceKind: "cache",
126
125
  migratable: false,
127
- message: "Cached Codex plugin bundle found. Review manually unless the plugin is also installed in the source Codex app-server inventory."
126
+ message: "Cached Codex plugin bundle found. Review manually unless the plugin is also installed in the source Codex app-server inventory"
128
127
  });
129
128
  return;
130
129
  }
@@ -412,7 +411,7 @@ async function discoverCodexSource(inputOrOptions) {
412
411
  const hooksPath = path.join(codexHome, "hooks", "hooks.json");
413
412
  const codexSkills = await discoverSkillDirs({
414
413
  root: codexSkillsDir,
415
- sourceLabel: "Codex CLI skill",
414
+ sourceLabel: "Codex skill",
416
415
  excludeSystem: true
417
416
  });
418
417
  const personalAgentSkills = await discoverSkillDirs({
@@ -431,13 +430,13 @@ async function discoverCodexSource(inputOrOptions) {
431
430
  id: "archive:config.toml",
432
431
  path: configPath,
433
432
  relativePath: "config.toml",
434
- message: "Codex config is archived for manual review; it is not activated automatically."
433
+ message: "Codex config is archived for manual review; it is not activated automatically"
435
434
  });
436
435
  if (await exists(hooksPath)) archivePaths.push({
437
436
  id: "archive:hooks/hooks.json",
438
437
  path: hooksPath,
439
438
  relativePath: "hooks/hooks.json",
440
- message: "Codex native hooks are archived for manual review because they can execute commands."
439
+ message: "Codex native hooks are archived for manual review because they can execute commands"
441
440
  });
442
441
  const skills = [...codexSkills, ...personalAgentSkills].toSorted((a, b) => a.source.localeCompare(b.source));
443
442
  const high = Boolean(codexSkills.length || plugins.length || archivePaths.length);
@@ -725,12 +724,8 @@ async function buildCodexMigrationPlan(ctx) {
725
724
  }));
726
725
  const warnings = [
727
726
  ...items.some((item) => item.status === "conflict") ? ["Conflicts were found. Re-run with --overwrite to replace conflicting migration targets after item-level backups."] : [],
728
- ...source.plugins.some((plugin) => plugin.migratable) ? ["Codex source-installed openai-curated plugins are planned for native activation; cached plugin bundles remain manual-review only."] : [],
729
- ...source.plugins.some((plugin) => plugin.migratable && plugin.apps && plugin.apps.length > 0) && !shouldVerifyPluginApps(ctx) ? ["Codex app-backed plugins were planned without source app accessibility verification. Re-run with --verify-plugin-apps to force a fresh source app/list check before planning native plugin activation."] : [],
730
- ...source.plugins.some((plugin) => plugin.sourceKind === "cache") ? ["Codex cached plugin bundles remain manual-review only."] : [],
731
727
  ...source.pluginDiscoveryError ? [`Codex app-server plugin inventory discovery failed: ${source.pluginDiscoveryError}. Cached plugin bundles, if any, are advisory only.`] : [],
732
- ...source.plugins.some((plugin) => plugin.migrationBlock?.code === "codex_subscription_required") ? [codexPluginMigrationSubscriptionWarning()] : [],
733
- ...source.archivePaths.length > 0 ? ["Codex config and hook files are archive-only. They are preserved in the migration report, not loaded into OpenClaw automatically."] : []
728
+ ...source.plugins.some((plugin) => plugin.migrationBlock?.code === "codex_subscription_required") ? [codexPluginMigrationSubscriptionWarning()] : []
734
729
  ];
735
730
  return {
736
731
  providerId: "codex",
@@ -752,6 +747,11 @@ async function buildCodexMigrationPlan(ctx) {
752
747
  //#region extensions/codex/src/migration/apply.ts
753
748
  const CODEX_PLUGIN_AUTH_REQUIRED_REASON = "auth_required";
754
749
  const CODEX_PLUGIN_NOT_SELECTED_REASON = "not selected for migration";
750
+ const CODEX_CONFIG_PATCH_MODE_RETURN = "return";
751
+ const CODEX_PLUGIN_LOAD_WARNING = "Some Codex plugins could not be migrated. Run `openclaw migrate codex` after onboarding.";
752
+ const TARGET_CODEX_MARKETPLACE_DISCOVERY_POLL_MS = 250;
753
+ const TARGET_CODEX_MARKETPLACE_DISCOVERY_TIMEOUT_MS = 3e4;
754
+ const TARGET_CODEX_MARKETPLACE_DISCOVERY_TIMEOUT_ENV = "OPENCLAW_CODEX_MIGRATION_PLUGIN_LIST_TIMEOUT_MS";
755
755
  var CodexPluginConfigConflictError = class extends Error {
756
756
  constructor(reason) {
757
757
  super(reason);
@@ -759,6 +759,26 @@ var CodexPluginConfigConflictError = class extends Error {
759
759
  this.name = "CodexPluginConfigConflictError";
760
760
  }
761
761
  };
762
+ function shouldReturnCodexPluginConfigPatch(ctx) {
763
+ return ctx.providerOptions?.configPatchMode === CODEX_CONFIG_PATCH_MODE_RETURN;
764
+ }
765
+ function prepareTargetCodexAppServer(ctx) {
766
+ const appServer = resolveTargetCodexAppServer(ctx);
767
+ const targets = resolveCodexMigrationTargets(ctx);
768
+ const ready = getSharedCodexAppServerClient({
769
+ startOptions: appServer.start,
770
+ timeoutMs: 6e4,
771
+ agentDir: targets.agentDir,
772
+ config: ctx.config
773
+ }).then(() => void 0, () => void 0);
774
+ return { async dispose() {
775
+ await ready;
776
+ await clearSharedCodexAppServerClientAndWait({
777
+ exitTimeoutMs: 2e3,
778
+ forceKillDelayMs: 250
779
+ });
780
+ } };
781
+ }
762
782
  async function applyCodexMigrationPlan(params) {
763
783
  const plan = params.plan ?? await buildCodexMigrationPlan(params.ctx);
764
784
  const reportDir = params.ctx.reportDir ?? path.join(params.ctx.stateDir, "migration", "codex");
@@ -786,6 +806,10 @@ async function applyCodexMigrationPlan(params) {
786
806
  backupPath: params.ctx.backupPath,
787
807
  reportDir
788
808
  };
809
+ if (items.some(isCodexPluginLoadWarningItem)) {
810
+ result.warnings = [...new Set([...result.warnings ?? [], CODEX_PLUGIN_LOAD_WARNING])];
811
+ result.nextSteps = [...new Set([CODEX_PLUGIN_LOAD_WARNING, ...result.nextSteps ?? []])];
812
+ }
789
813
  await writeMigrationReport(result, { title: "Codex Migration Report" });
790
814
  return result;
791
815
  }
@@ -804,14 +828,14 @@ async function applyCodexPluginInstallItem(ctx, item) {
804
828
  const result = await ensureCodexPluginActivation({
805
829
  identity: policy,
806
830
  installEvenIfActive: true,
807
- request: async (method, requestParams) => await requestCodexAppServerJson({
831
+ request: async (method, requestParams) => await requestTargetCodexAppServerJson({
808
832
  method,
809
833
  requestParams,
810
834
  timeoutMs: 6e4,
811
835
  startOptions: appServer.start,
812
836
  agentDir: resolveCodexMigrationTargets(ctx).agentDir,
813
837
  config: ctx.config,
814
- isolated: true
838
+ isolated: false
815
839
  }),
816
840
  appCache: defaultCodexAppInventoryCache,
817
841
  appCacheKey
@@ -839,6 +863,16 @@ async function applyCodexPluginInstallItem(ctx, item) {
839
863
  appsNeedingAuth: sanitizeAppsNeedingAuth(result.installResponse?.appsNeedingAuth ?? [])
840
864
  }
841
865
  };
866
+ if (result.reason === "plugin_missing" || result.reason === "marketplace_missing") return {
867
+ ...item,
868
+ status: "warning",
869
+ reason: result.reason,
870
+ message: `Codex plugin "${policy.pluginName}" could not be migrated automatically`,
871
+ details: {
872
+ ...baseDetails,
873
+ warningReason: CODEX_PLUGIN_LOAD_WARNING
874
+ }
875
+ };
842
876
  return {
843
877
  ...item,
844
878
  status: "error",
@@ -846,10 +880,22 @@ async function applyCodexPluginInstallItem(ctx, item) {
846
880
  details: baseDetails
847
881
  };
848
882
  } catch (error) {
883
+ if (isCodexPluginInventoryLoadError(error)) return {
884
+ ...item,
885
+ status: "warning",
886
+ reason: "plugin_inventory_unavailable",
887
+ message: `Codex plugin "${policy.pluginName}" could not be migrated automatically`,
888
+ details: {
889
+ ...item.details,
890
+ code: "plugin_inventory_unavailable",
891
+ warningReason: CODEX_PLUGIN_LOAD_WARNING,
892
+ diagnostic: formatCodexMigrationError(error)
893
+ }
894
+ };
849
895
  return {
850
896
  ...item,
851
897
  status: "error",
852
- reason: error instanceof Error ? error.message : String(error),
898
+ reason: formatCodexMigrationError(error),
853
899
  details: {
854
900
  ...item.details,
855
901
  code: "plugin_install_failed"
@@ -857,9 +903,51 @@ async function applyCodexPluginInstallItem(ctx, item) {
857
903
  };
858
904
  }
859
905
  }
906
+ function isCodexPluginInventoryLoadError(error) {
907
+ return formatCodexMigrationError(error).includes("codex app-server plugin/list timed out");
908
+ }
909
+ function formatCodexMigrationError(error) {
910
+ return error instanceof Error ? error.message : String(error);
911
+ }
860
912
  function resolveTargetCodexAppServer(ctx) {
861
913
  return resolveCodexAppServerRuntimeOptions({ pluginConfig: readCodexPluginConfig(ctx.config) });
862
914
  }
915
+ async function requestTargetCodexAppServerJson(params) {
916
+ if (params.method !== "plugin/list") return await requestCodexAppServerJson(params);
917
+ const deadline = Date.now() + params.timeoutMs;
918
+ const discoveryTimeoutMs = targetCodexMarketplaceDiscoveryTimeoutMs();
919
+ const discoveryDeadline = Math.min(deadline, Date.now() + discoveryTimeoutMs);
920
+ let lastResponse;
921
+ let attempt = 0;
922
+ do {
923
+ attempt += 1;
924
+ const remainingMs = Math.max(1, discoveryDeadline - Date.now());
925
+ lastResponse = await requestCodexAppServerJson({
926
+ ...params,
927
+ timeoutMs: remainingMs
928
+ });
929
+ if (hasOpenAiCuratedMarketplace(lastResponse)) return lastResponse;
930
+ if (Date.now() >= discoveryDeadline) return lastResponse;
931
+ await sleep(Math.min(TARGET_CODEX_MARKETPLACE_DISCOVERY_POLL_MS, discoveryDeadline - Date.now()));
932
+ } while (Date.now() < discoveryDeadline);
933
+ return lastResponse;
934
+ }
935
+ function hasOpenAiCuratedMarketplace(response) {
936
+ if (!response || typeof response !== "object" || !("marketplaces" in response)) return false;
937
+ const marketplaces = response.marketplaces;
938
+ return Array.isArray(marketplaces) && marketplaces.some((marketplace) => marketplace && typeof marketplace === "object" && marketplace.name === "openai-curated");
939
+ }
940
+ function targetCodexMarketplaceDiscoveryTimeoutMs() {
941
+ const configured = Number(process.env[TARGET_CODEX_MARKETPLACE_DISCOVERY_TIMEOUT_ENV]);
942
+ if (Number.isFinite(configured) && configured >= 0) return configured;
943
+ return TARGET_CODEX_MARKETPLACE_DISCOVERY_TIMEOUT_MS;
944
+ }
945
+ function isCodexPluginLoadWarningItem(item) {
946
+ return item.kind === "plugin" && item.action === "install" && item.status === "warning" && item.details?.warningReason === CODEX_PLUGIN_LOAD_WARNING;
947
+ }
948
+ async function sleep(ms) {
949
+ await new Promise((resolve) => setTimeout(resolve, ms));
950
+ }
863
951
  async function buildTargetCodexPluginAppCacheKey(ctx) {
864
952
  const targets = resolveCodexMigrationTargets(ctx);
865
953
  const appServer = resolveTargetCodexAppServer(ctx);
@@ -884,11 +972,23 @@ async function buildTargetCodexPluginAppCacheKey(ctx) {
884
972
  async function applyCodexPluginConfigItem(ctx, item, appliedItems) {
885
973
  const entries = appliedItems.map(readAppliedPluginConfigEntry).filter((entry) => entry !== void 0);
886
974
  if (entries.length === 0) return markMigrationItemSkipped(item, "no selected Codex plugins");
975
+ const returnPatch = shouldReturnCodexPluginConfigPatch(ctx);
887
976
  const configApi = ctx.runtime?.config;
888
- if (!configApi?.current || !configApi.mutateConfigFile) return markMigrationItemError(item, "config runtime unavailable");
889
- const currentConfig = configApi.current();
977
+ const currentConfig = returnPatch ? ctx.config : configApi?.current?.();
978
+ if (!currentConfig) return markMigrationItemError(item, "config runtime unavailable");
890
979
  const value = buildCodexPluginsConfigValue(entries, { config: currentConfig });
891
980
  if (!ctx.overwrite && hasCodexPluginConfigConflict(currentConfig, value)) return markMigrationItemConflict(item, MIGRATION_REASON_TARGET_EXISTS);
981
+ const migratedItem = {
982
+ ...item,
983
+ status: "migrated",
984
+ details: {
985
+ ...item.details,
986
+ path: [...CODEX_PLUGIN_CONFIG_PATH],
987
+ value
988
+ }
989
+ };
990
+ if (returnPatch) return migratedItem;
991
+ if (!configApi?.mutateConfigFile) return markMigrationItemError(item, "config runtime unavailable");
892
992
  try {
893
993
  await configApi.mutateConfigFile({
894
994
  base: "runtime",
@@ -898,15 +998,7 @@ async function applyCodexPluginConfigItem(ctx, item, appliedItems) {
898
998
  writeMigrationConfigPath(draft, CODEX_PLUGIN_CONFIG_PATH, value);
899
999
  }
900
1000
  });
901
- return {
902
- ...item,
903
- status: "migrated",
904
- details: {
905
- ...item.details,
906
- path: [...CODEX_PLUGIN_CONFIG_PATH],
907
- value
908
- }
909
- };
1001
+ return migratedItem;
910
1002
  } catch (error) {
911
1003
  if (error instanceof CodexPluginConfigConflictError) return markMigrationItemConflict(item, error.reason);
912
1004
  return markMigrationItemError(item, error instanceof Error ? error.message : String(error));
@@ -979,6 +1071,9 @@ function buildCodexMigrationProvider(params = {}) {
979
1071
  };
980
1072
  },
981
1073
  plan: buildCodexMigrationPlan,
1074
+ prepareApply(ctx) {
1075
+ return prepareTargetCodexAppServer(ctx);
1076
+ },
982
1077
  async apply(ctx, plan) {
983
1078
  return await applyCodexMigrationPlan({
984
1079
  ctx,
@@ -1000,8 +1095,28 @@ var codex_default = definePluginEntry({
1000
1095
  api.registerProvider(buildCodexProvider({ pluginConfig: api.pluginConfig }));
1001
1096
  api.registerMediaUnderstandingProvider(buildCodexMediaUnderstandingProvider({ pluginConfig: api.pluginConfig }));
1002
1097
  api.registerMigrationProvider(buildCodexMigrationProvider({ runtime: api.runtime }));
1003
- api.registerCommand(createCodexCommand({ pluginConfig: api.pluginConfig }));
1004
- api.on("inbound_claim", (event, ctx) => handleCodexConversationInboundClaim(event, ctx, { pluginConfig: resolveCurrentPluginConfig() }));
1098
+ for (const command of createCodexCliSessionNodeHostCommands()) api.registerNodeHostCommand(command);
1099
+ for (const policy of createCodexCliSessionNodeInvokePolicies()) api.registerNodeInvokePolicy(policy);
1100
+ api.registerCommand(createCodexCommand({
1101
+ pluginConfig: api.pluginConfig,
1102
+ deps: {
1103
+ listCodexCliSessionsOnNode: (params) => listCodexCliSessionsOnNode({
1104
+ runtime: api.runtime,
1105
+ ...params
1106
+ }),
1107
+ resolveCodexCliSessionForBindingOnNode: (params) => resolveCodexCliSessionForBindingOnNode({
1108
+ runtime: api.runtime,
1109
+ ...params
1110
+ })
1111
+ }
1112
+ }));
1113
+ api.on("inbound_claim", (event, ctx) => handleCodexConversationInboundClaim(event, ctx, {
1114
+ pluginConfig: resolveCurrentPluginConfig(),
1115
+ resumeCodexCliSessionOnNode: (params) => resumeCodexCliSessionOnNode({
1116
+ runtime: api.runtime,
1117
+ ...params
1118
+ })
1119
+ }));
1005
1120
  api.onConversationBindingResolved?.(handleCodexConversationBindingResolved);
1006
1121
  }
1007
1122
  });
@@ -1,7 +1,7 @@
1
1
  import { CODEX_PROVIDER_ID, FALLBACK_CODEX_MODELS } from "./provider-catalog.js";
2
2
  import { s as resolveCodexAppServerRuntimeOptions } from "./config-0rd3LnKg.js";
3
3
  import { i as assertCodexTurnStartResponse, l as readCodexTurnCompletedNotification, o as readCodexErrorNotification, r as assertCodexThreadStartResponse } from "./protocol-validators-CSY0BFBo.js";
4
- import { i as readModelListResult } from "./models-BmLfrDci.js";
4
+ import { i as readModelListResult } from "./models-GCYf5s8J.js";
5
5
  import { t as isJsonObject } from "./protocol-C9UWI98H.js";
6
6
  import { validateJsonSchemaValue } from "openclaw/plugin-sdk/json-schema-runtime";
7
7
  //#region extensions/codex/media-understanding-provider.ts
@@ -62,7 +62,7 @@ async function runBoundedCodexVisionTurn(params) {
62
62
  const appServer = resolveCodexAppServerRuntimeOptions({ pluginConfig: params.options.pluginConfig });
63
63
  const timeoutMs = Math.max(100, params.timeoutMs);
64
64
  const ownsClient = !params.options.clientFactory;
65
- const client = params.options.clientFactory ? await params.options.clientFactory(appServer.start, params.profile) : await import("./shared-client-Cr6W-a2G.js").then((n) => n.i).then(({ createIsolatedCodexAppServerClient }) => createIsolatedCodexAppServerClient({
65
+ const client = params.options.clientFactory ? await params.options.clientFactory(appServer.start, params.profile) : await import("./shared-client-BwUqd3lh.js").then((n) => n.a).then(({ createIsolatedCodexAppServerClient }) => createIsolatedCodexAppServerClient({
66
66
  startOptions: appServer.start,
67
67
  timeoutMs,
68
68
  authProfileId: params.profile
@@ -39,7 +39,7 @@ async function listAllCodexAppServerModels(options = {}) {
39
39
  async function withCodexAppServerModelClient(options, run) {
40
40
  const timeoutMs = options.timeoutMs ?? 2500;
41
41
  const useSharedClient = options.sharedClient !== false;
42
- const { createIsolatedCodexAppServerClient, getSharedCodexAppServerClient } = await import("./shared-client-Cr6W-a2G.js").then((n) => n.i);
42
+ const { createIsolatedCodexAppServerClient, getSharedCodexAppServerClient } = await import("./shared-client-BwUqd3lh.js").then((n) => n.a);
43
43
  const client = useSharedClient ? await getSharedCodexAppServerClient({
44
44
  startOptions: options.startOptions,
45
45
  timeoutMs,