feat(coding-agent): added provider-priority model selection and refined fallback ordering
- Added first-party-first provider priority defaults for model ranking. - Consolidated model resolution to use getModelMatchPreferences from session settings. - Prioritized providerPriorityRank ahead of usage rank when picking preferred models. - Added second-pass fallback to default-model or API-key-valid matching order.
This commit is contained in:
@@ -3,6 +3,7 @@ import type { Api, ApiKey, Model } from "@oh-my-pi/pi-ai";
|
||||
import type { ApiKeyResolverRegistry } from "../config/api-key-resolver";
|
||||
import { MODEL_ROLE_IDS } from "../config/model-registry";
|
||||
import {
|
||||
getModelMatchPreferences,
|
||||
type ModelLookupRegistry,
|
||||
parseModelPattern,
|
||||
resolveModelRoleValue,
|
||||
@@ -33,7 +34,7 @@ export async function resolvePrimaryModel(
|
||||
modelRegistry: CommitModelRegistry,
|
||||
): Promise<ResolvedCommitModel> {
|
||||
const available = modelRegistry.getAvailable();
|
||||
const matchPreferences = { usageOrder: settings.getStorage()?.getModelUsageOrder() };
|
||||
const matchPreferences = getModelMatchPreferences(settings);
|
||||
const resolved = override
|
||||
? resolveModelRoleValue(override, available, { settings, matchPreferences, modelRegistry })
|
||||
: resolveRoleSelection(["commit", "smol", ...MODEL_ROLE_IDS], settings, available, modelRegistry);
|
||||
@@ -73,7 +74,7 @@ export async function resolveSmolModel(
|
||||
}
|
||||
}
|
||||
|
||||
const matchPreferences = { usageOrder: settings.getStorage()?.getModelUsageOrder() };
|
||||
const matchPreferences = getModelMatchPreferences(settings);
|
||||
for (const pattern of MODEL_PRIO.smol) {
|
||||
const candidate = parseModelPattern(pattern, available, matchPreferences, { modelRegistry }).model;
|
||||
if (!candidate) continue;
|
||||
|
||||
Reference in New Issue
Block a user