mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-29 19:01:44 +00:00
63 lines
1.8 KiB
TypeScript
63 lines
1.8 KiB
TypeScript
import { OPENCODE_ZEN_DEFAULT_MODEL_REF } from "./onboard.js";
|
|
export {
|
|
applyOpencodeZenConfig,
|
|
applyOpencodeZenProviderConfig,
|
|
OPENCODE_ZEN_DEFAULT_MODEL_REF,
|
|
} from "./onboard.js";
|
|
|
|
const LEGACY_OPENCODE_ZEN_DEFAULT_MODELS = new Set([
|
|
"opencode/claude-opus-4-5",
|
|
"opencode-zen/claude-opus-4-5",
|
|
]);
|
|
|
|
export const OPENCODE_ZEN_DEFAULT_MODEL = OPENCODE_ZEN_DEFAULT_MODEL_REF;
|
|
|
|
function resolveCurrentPrimaryModel(model: unknown): string | undefined {
|
|
if (typeof model === "string") {
|
|
return model.trim() || undefined;
|
|
}
|
|
if (
|
|
model &&
|
|
typeof model === "object" &&
|
|
typeof (model as { primary?: unknown }).primary === "string"
|
|
) {
|
|
return ((model as { primary: string }).primary || "").trim() || undefined;
|
|
}
|
|
return undefined;
|
|
}
|
|
|
|
export function applyOpencodeZenModelDefault(
|
|
cfg: import("openclaw/plugin-sdk/provider-onboard").OpenClawConfig,
|
|
): {
|
|
next: import("openclaw/plugin-sdk/provider-onboard").OpenClawConfig;
|
|
changed: boolean;
|
|
} {
|
|
const current = resolveCurrentPrimaryModel(cfg.agents?.defaults?.model);
|
|
const normalizedCurrent =
|
|
current && LEGACY_OPENCODE_ZEN_DEFAULT_MODELS.has(current)
|
|
? OPENCODE_ZEN_DEFAULT_MODEL
|
|
: current;
|
|
if (normalizedCurrent === OPENCODE_ZEN_DEFAULT_MODEL) {
|
|
return { next: cfg, changed: false };
|
|
}
|
|
return {
|
|
next: {
|
|
...cfg,
|
|
agents: {
|
|
...cfg.agents,
|
|
defaults: {
|
|
...cfg.agents?.defaults,
|
|
model:
|
|
cfg.agents?.defaults?.model && typeof cfg.agents.defaults.model === "object"
|
|
? {
|
|
...cfg.agents.defaults.model,
|
|
primary: OPENCODE_ZEN_DEFAULT_MODEL,
|
|
}
|
|
: { primary: OPENCODE_ZEN_DEFAULT_MODEL },
|
|
},
|
|
},
|
|
},
|
|
changed: true,
|
|
};
|
|
}
|