@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.
- package/dist/{client-iRf11BEu.js → client-CoctX13d.js} +5 -1
- package/dist/client-factory-Be6RD28K.js +9 -0
- package/dist/{command-formatters-Ttwc_kgX.js → command-formatters-DRJaVHhN.js} +32 -7
- package/dist/{command-handlers-BYf_veEb.js → command-handlers-CXxykxjq.js} +139 -11
- package/dist/{compact-Bl8jRPk4.js → compact-DWa8cylR.js} +2 -6
- package/dist/{computer-use-Ct3ngNBt.js → computer-use-DsJxRRtm.js} +1 -1
- package/dist/harness.js +4 -4
- package/dist/index.js +147 -32
- package/dist/media-understanding-provider.js +2 -2
- package/dist/{models-BmLfrDci.js → models-GCYf5s8J.js} +1 -1
- package/dist/{conversation-binding-CKofEetY.js → node-cli-sessions-CiexDHeV.js} +518 -6
- package/dist/{plugin-activation-PXGqUjwY.js → plugin-activation-aQOmRQwA.js} +6 -2
- package/dist/provider.js +1 -1
- package/dist/{plugin-app-cache-key-B7eU8fNZ.js → request-CKYiRqsN.js} +46 -3
- package/dist/{run-attempt-4t06MuNr.js → run-attempt-DG9NQab2.js} +95 -39
- package/dist/{shared-client-Cr6W-a2G.js → shared-client-BwUqd3lh.js} +5 -12
- package/dist/{side-question-DV7KYIB8.js → side-question-CVWPOkY-.js} +6 -6
- package/dist/test-api.js +1 -1
- package/dist/{thread-lifecycle-CJppEyYT.js → thread-lifecycle-DrbViNpf.js} +50 -7
- package/dist/{vision-tools-DHyuabWn.js → vision-tools-CzTdigBu.js} +1 -1
- package/package.json +5 -5
- package/dist/client-factory-DfnbdQv7.js +0 -19
- package/dist/request-ohCy5ASa.js +0 -45
- /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 {
|
|
6
|
-
import { r as formatCodexDisplayText } from "./command-formatters-
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { a as defaultCodexAppInventoryCache, n as pluginReadParams, t as ensureCodexPluginActivation } from "./plugin-activation-
|
|
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-
|
|
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
|
|
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
|
|
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:
|
|
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:
|
|
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
|
-
|
|
889
|
-
|
|
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
|
-
|
|
1004
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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,
|