mirror of https://github.com/openclaw/openclaw.git
29 lines
898 B
TypeScript
29 lines
898 B
TypeScript
import { normalizeModelCompat } from "../agents/model-compat.js";
|
|
import type { ProviderResolveDynamicModelContext, ProviderRuntimeModel } from "./types.js";
|
|
|
|
export function cloneFirstTemplateModel(params: {
|
|
providerId: string;
|
|
modelId: string;
|
|
templateIds: readonly string[];
|
|
ctx: ProviderResolveDynamicModelContext;
|
|
patch?: Partial<ProviderRuntimeModel>;
|
|
}): ProviderRuntimeModel | undefined {
|
|
const trimmedModelId = params.modelId.trim();
|
|
for (const templateId of [...new Set(params.templateIds)].filter(Boolean)) {
|
|
const template = params.ctx.modelRegistry.find(
|
|
params.providerId,
|
|
templateId,
|
|
) as ProviderRuntimeModel | null;
|
|
if (!template) {
|
|
continue;
|
|
}
|
|
return normalizeModelCompat({
|
|
...template,
|
|
id: trimmedModelId,
|
|
name: trimmedModelId,
|
|
...params.patch,
|
|
} as ProviderRuntimeModel);
|
|
}
|
|
return undefined;
|
|
}
|