mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-20 06:20:55 +00:00
82 lines
2.3 KiB
TypeScript
82 lines
2.3 KiB
TypeScript
import type { OpenClawConfig } from "../config/config.js";
|
|
import { ensureModelAllowlistEntry } from "./provider-model-allowlist.js";
|
|
import { applyAgentDefaultPrimaryModel } from "./provider-model-primary.js";
|
|
|
|
export const GOOGLE_GEMINI_DEFAULT_MODEL = "google/gemini-3.1-pro-preview";
|
|
export const OPENAI_DEFAULT_MODEL = "openai/gpt-5.1-codex";
|
|
export const OPENCODE_GO_DEFAULT_MODEL_REF = "opencode-go/kimi-k2.5";
|
|
export const OPENCODE_ZEN_DEFAULT_MODEL = "opencode/claude-opus-4-6";
|
|
|
|
const LEGACY_OPENCODE_ZEN_DEFAULT_MODELS = new Set([
|
|
"opencode/claude-opus-4-5",
|
|
"opencode-zen/claude-opus-4-5",
|
|
]);
|
|
|
|
export function applyGoogleGeminiModelDefault(cfg: OpenClawConfig): {
|
|
next: OpenClawConfig;
|
|
changed: boolean;
|
|
} {
|
|
return applyAgentDefaultPrimaryModel({ cfg, model: GOOGLE_GEMINI_DEFAULT_MODEL });
|
|
}
|
|
|
|
export function applyOpenAIProviderConfig(cfg: OpenClawConfig): OpenClawConfig {
|
|
const next = ensureModelAllowlistEntry({
|
|
cfg,
|
|
modelRef: OPENAI_DEFAULT_MODEL,
|
|
});
|
|
const models = { ...next.agents?.defaults?.models };
|
|
models[OPENAI_DEFAULT_MODEL] = {
|
|
...models[OPENAI_DEFAULT_MODEL],
|
|
alias: models[OPENAI_DEFAULT_MODEL]?.alias ?? "GPT",
|
|
};
|
|
|
|
return {
|
|
...next,
|
|
agents: {
|
|
...next.agents,
|
|
defaults: {
|
|
...next.agents?.defaults,
|
|
models,
|
|
},
|
|
},
|
|
};
|
|
}
|
|
|
|
export function applyOpenAIConfig(cfg: OpenClawConfig): OpenClawConfig {
|
|
const next = applyOpenAIProviderConfig(cfg);
|
|
return {
|
|
...next,
|
|
agents: {
|
|
...next.agents,
|
|
defaults: {
|
|
...next.agents?.defaults,
|
|
model:
|
|
next.agents?.defaults?.model && typeof next.agents.defaults.model === "object"
|
|
? {
|
|
...next.agents.defaults.model,
|
|
primary: OPENAI_DEFAULT_MODEL,
|
|
}
|
|
: { primary: OPENAI_DEFAULT_MODEL },
|
|
},
|
|
},
|
|
};
|
|
}
|
|
|
|
export function applyOpencodeGoModelDefault(cfg: OpenClawConfig): {
|
|
next: OpenClawConfig;
|
|
changed: boolean;
|
|
} {
|
|
return applyAgentDefaultPrimaryModel({ cfg, model: OPENCODE_GO_DEFAULT_MODEL_REF });
|
|
}
|
|
|
|
export function applyOpencodeZenModelDefault(cfg: OpenClawConfig): {
|
|
next: OpenClawConfig;
|
|
changed: boolean;
|
|
} {
|
|
return applyAgentDefaultPrimaryModel({
|
|
cfg,
|
|
model: OPENCODE_ZEN_DEFAULT_MODEL,
|
|
legacyModels: LEGACY_OPENCODE_ZEN_DEFAULT_MODELS,
|
|
});
|
|
}
|