fix(models): normalize trailing @profile parsing across resolver paths

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
Co-authored-by: Marcus Castro <mcaxtr@gmail.com>
Co-authored-by: Brandon Wise <brandonawise@gmail.com>
This commit is contained in:
Peter Steinberger
2026-02-26 14:31:57 +01:00
parent 00e8e88a7c
commit 4b259ab81b
8 changed files with 208 additions and 14 deletions

View File

@@ -4,6 +4,7 @@ import { createSubsystemLogger } from "../logging/subsystem.js";
import { resolveAgentConfig, resolveAgentEffectiveModelPrimary } from "./agent-scope.js";
import { DEFAULT_MODEL, DEFAULT_PROVIDER } from "./defaults.js";
import type { ModelCatalogEntry } from "./model-catalog.js";
import { splitTrailingAuthProfile } from "./model-ref-profile.js";
import { normalizeGoogleModelId } from "./models-config.providers.js";
const log = createSubsystemLogger("model-selection");
@@ -283,18 +284,18 @@ export function resolveModelRefFromString(params: {
defaultProvider: string;
aliasIndex?: ModelAliasIndex;
}): { ref: ModelRef; alias?: string } | null {
const trimmed = params.raw.trim();
if (!trimmed) {
const { model } = splitTrailingAuthProfile(params.raw);
if (!model) {
return null;
}
if (!trimmed.includes("/")) {
const aliasKey = normalizeAliasKey(trimmed);
if (!model.includes("/")) {
const aliasKey = normalizeAliasKey(model);
const aliasMatch = params.aliasIndex?.byAlias.get(aliasKey);
if (aliasMatch) {
return { ref: aliasMatch.ref, alias: aliasMatch.alias };
}
}
const parsed = parseModelRef(trimmed, params.defaultProvider);
const parsed = parseModelRef(model, params.defaultProvider);
if (!parsed) {
return null;
}