import type { ExtensionContext } from "@mariozechner/pi-coding-agent"; export interface ResolvedModelMeta { provider: string; id: string; } export function resolveModelMetaFromValue(model: unknown): ResolvedModelMeta { if (!model) return { provider: "", id: "" }; if (typeof model === "string") return { provider: "", id: model }; return { provider: (model as any).provider ?? "", id: (model as any).id ?? (model as any).modelId ?? (model as any).name ?? (model as any).model ?? "", }; } export function resolveModelMeta(ctx: ExtensionContext): ResolvedModelMeta { return resolveModelMetaFromValue((ctx as any).model); } export function resolveModelId(ctx: ExtensionContext): string { return resolveModelMeta(ctx).id; } export function formatModelRef(model: unknown): string { const meta = resolveModelMetaFromValue(model); if (!meta.provider) return meta.id; if (!meta.id) return meta.provider; return `${meta.provider}/${meta.id}`; } export function sameModelRef(left: unknown, right: unknown): boolean { return formatModelRef(left).toLowerCase() === formatModelRef(right).toLowerCase(); }