



























@@ -165,6 +165,7 @@ function isConcreteOpenRouterFreeModelRef(ref: ModelRef): boolean {
165165function resolveConfiguredOpenRouterCompatFreeRef(params: {
166166cfg: OpenClawConfig;
167167defaultProvider: string;
168+allowManifestNormalization?: boolean;
168169allowPluginNormalization?: boolean;
169170}): ModelRef | null {
170171const configuredModels = params.cfg.agents?.defaults?.models ?? {};
@@ -173,6 +174,7 @@ function resolveConfiguredOpenRouterCompatFreeRef(params: {
173174continue;
174175}
175176const parsed = parseModelRef(raw, params.defaultProvider, {
177+allowManifestNormalization: params.allowManifestNormalization,
176178allowPluginNormalization: params.allowPluginNormalization,
177179});
178180if (parsed && isConcreteOpenRouterFreeModelRef(parsed)) {
@@ -190,6 +192,7 @@ function resolveConfiguredOpenRouterCompatFreeRef(params: {
190192continue;
191193}
192194return normalizeModelRef("openrouter", modelId, {
195+allowManifestNormalization: params.allowManifestNormalization,
193196allowPluginNormalization: params.allowPluginNormalization,
194197});
195198}
@@ -201,11 +204,13 @@ export function resolveConfiguredOpenRouterCompatAlias(params: {
201204cfg?: OpenClawConfig;
202205raw: string;
203206defaultProvider: string;
207+allowManifestNormalization?: boolean;
204208allowPluginNormalization?: boolean;
205209}): ModelRef | null {
206210const normalized = normalizeLowercaseStringOrEmpty(params.raw);
207211if (normalized === "openrouter:auto") {
208212return normalizeModelRef("openrouter", "auto", {
213+allowManifestNormalization: params.allowManifestNormalization,
209214allowPluginNormalization: params.allowPluginNormalization,
210215});
211216}
@@ -215,6 +220,7 @@ export function resolveConfiguredOpenRouterCompatAlias(params: {
215220return resolveConfiguredOpenRouterCompatFreeRef({
216221cfg: params.cfg,
217222defaultProvider: params.defaultProvider,
223+allowManifestNormalization: params.allowManifestNormalization,
218224allowPluginNormalization: params.allowPluginNormalization,
219225});
220226}
@@ -223,12 +229,14 @@ export function parseModelRefWithCompatAlias(params: {
223229cfg?: OpenClawConfig;
224230raw: string;
225231defaultProvider: string;
232+allowManifestNormalization?: boolean;
226233allowPluginNormalization?: boolean;
227234}): ModelRef | null {
228235return (
229236resolveConfiguredOpenRouterCompatAlias(params) ??
230237resolveExactConfiguredProviderRef(params) ??
231238parseModelRef(params.raw, params.defaultProvider, {
239+allowManifestNormalization: params.allowManifestNormalization,
232240allowPluginNormalization: params.allowPluginNormalization,
233241})
234242);
@@ -237,6 +245,7 @@ export function parseModelRefWithCompatAlias(params: {
237245function resolveExactConfiguredProviderRef(params: {
238246cfg?: OpenClawConfig;
239247raw: string;
248+allowManifestNormalization?: boolean;
240249allowPluginNormalization?: boolean;
241250}): ModelRef | null {
242251const slash = params.raw.indexOf("/");
@@ -265,7 +274,9 @@ function resolveExactConfiguredProviderRef(params: {
265274const provider = normalizeLowercaseStringOrEmpty(configuredProvider);
266275return {
267276 provider,
268-model: normalizeStaticProviderModelId(provider, modelRaw.trim()),
277+model: normalizeStaticProviderModelId(provider, modelRaw.trim(), {
278+allowManifestNormalization: params.allowManifestNormalization,
279+}),
269280};
270281}
271282@@ -311,6 +322,7 @@ export function buildConfiguredAllowlistKeys(params: {
311322export function buildModelAliasIndex(params: {
312323cfg: OpenClawConfig;
313324defaultProvider: string;
325+allowManifestNormalization?: boolean;
314326allowPluginNormalization?: boolean;
315327}): ModelAliasIndex {
316328const byAlias = new Map<string, { alias: string; ref: ModelRef }>();
@@ -322,6 +334,7 @@ export function buildModelAliasIndex(params: {
322334cfg: params.cfg,
323335raw: keyRaw,
324336defaultProvider: params.defaultProvider,
337+allowManifestNormalization: params.allowManifestNormalization,
325338allowPluginNormalization: params.allowPluginNormalization,
326339});
327340if (!parsed) {
@@ -430,6 +443,7 @@ export function resolveModelRefFromString(params: {
430443raw: string;
431444defaultProvider: string;
432445aliasIndex?: ModelAliasIndex;
446+allowManifestNormalization?: boolean;
433447allowPluginNormalization?: boolean;
434448}): { ref: ModelRef; alias?: string } | null {
435449const { model } = splitTrailingAuthProfile(params.raw);
@@ -447,6 +461,7 @@ export function resolveModelRefFromString(params: {
447461cfg: params.cfg,
448462raw: model,
449463defaultProvider: params.defaultProvider,
464+allowManifestNormalization: params.allowManifestNormalization,
450465allowPluginNormalization: params.allowPluginNormalization,
451466});
452467if (!parsed) {
@@ -459,6 +474,7 @@ export function resolveConfiguredModelRef(params: {
459474cfg: OpenClawConfig;
460475defaultProvider: string;
461476defaultModel: string;
477+allowManifestNormalization?: boolean;
462478allowPluginNormalization?: boolean;
463479}): ModelRef {
464480const rawModel = resolveAgentModelPrimaryValue(params.cfg.agents?.defaults?.model) ?? "";
@@ -467,13 +483,15 @@ export function resolveConfiguredModelRef(params: {
467483const aliasIndex = buildModelAliasIndex({
468484cfg: params.cfg,
469485defaultProvider: params.defaultProvider,
486+allowManifestNormalization: params.allowManifestNormalization,
470487allowPluginNormalization: params.allowPluginNormalization,
471488});
472489if (!trimmed.includes("/")) {
473490const openrouterCompatRef = resolveConfiguredOpenRouterCompatAlias({
474491cfg: params.cfg,
475492raw: trimmed,
476493defaultProvider: params.defaultProvider,
494+allowManifestNormalization: params.allowManifestNormalization,
477495allowPluginNormalization: params.allowPluginNormalization,
478496});
479497if (openrouterCompatRef) {
@@ -507,6 +525,7 @@ export function resolveConfiguredModelRef(params: {
507525raw: trimmed,
508526defaultProvider: params.defaultProvider,
509527 aliasIndex,
528+allowManifestNormalization: params.allowManifestNormalization,
510529allowPluginNormalization: params.allowPluginNormalization,
511530});
512531if (resolved) {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。