From 5ca33f7cb45cf3ddc3732bc0a0b66e96e9fbe4e9 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 19 Apr 2026 04:46:11 +0100 Subject: [PATCH] refactor: share model resolve fallback lookup --- src/agents/model-selection-resolve.ts | 28 ++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/src/agents/model-selection-resolve.ts b/src/agents/model-selection-resolve.ts index fd02eaead42..233bb965e58 100644 --- a/src/agents/model-selection-resolve.ts +++ b/src/agents/model-selection-resolve.ts @@ -22,6 +22,10 @@ export { } from "./model-selection-shared.js"; export type { ModelAliasIndex, ModelRefStatus } from "./model-selection-shared.js"; +function resolveDefaultFallbackModels(cfg: OpenClawConfig): string[] { + return resolveAgentModelFallbackValues(cfg.agents?.defaults?.model); +} + export function buildAllowedModelSet(params: { cfg: OpenClawConfig; catalog: ModelCatalogEntry[]; @@ -32,12 +36,13 @@ export function buildAllowedModelSet(params: { allowedCatalog: ModelCatalogEntry[]; allowedKeys: Set; } { + const { cfg, catalog, defaultProvider, defaultModel } = params; return buildAllowedModelSetWithFallbacks({ - cfg: params.cfg, - catalog: params.catalog, - defaultProvider: params.defaultProvider, - defaultModel: params.defaultModel, - fallbackModels: resolveAgentModelFallbackValues(params.cfg.agents?.defaults?.model), + cfg, + catalog, + defaultProvider, + defaultModel, + fallbackModels: resolveDefaultFallbackModels(cfg), }); } @@ -48,13 +53,14 @@ export function getModelRefStatus(params: { defaultProvider: string; defaultModel?: string; }): ModelRefStatus { + const { cfg, catalog, ref, defaultProvider, defaultModel } = params; return getModelRefStatusWithFallbackModels({ - cfg: params.cfg, - catalog: params.catalog, - ref: params.ref, - defaultProvider: params.defaultProvider, - defaultModel: params.defaultModel, - fallbackModels: resolveAgentModelFallbackValues(params.cfg.agents?.defaults?.model), + cfg, + catalog, + ref, + defaultProvider, + defaultModel, + fallbackModels: resolveDefaultFallbackModels(cfg), }); }