openclaw/src/config/model-input.ts

37 lines
1011 B
TypeScript

import type { AgentModelConfig } from "./types.agents-shared.js";
type AgentModelListLike = {
primary?: string;
fallbacks?: string[];
};
export function resolveAgentModelPrimaryValue(model?: AgentModelConfig): string | undefined {
if (typeof model === "string") {
const trimmed = model.trim();
return trimmed || undefined;
}
if (!model || typeof model !== "object") {
return undefined;
}
const primary = model.primary?.trim();
return primary || undefined;
}
export function resolveAgentModelFallbackValues(model?: AgentModelConfig): string[] {
if (!model || typeof model !== "object") {
return [];
}
return Array.isArray(model.fallbacks) ? model.fallbacks : [];
}
export function toAgentModelListLike(model?: AgentModelConfig): AgentModelListLike | undefined {
if (typeof model === "string") {
const primary = model.trim();
return primary ? { primary } : undefined;
}
if (!model || typeof model !== "object") {
return undefined;
}
return model;
}