Skip to content
Source
Sign inSign up
Open History to see the last commit

ProviderModelPicker.logic.ts

18 lines809 Bytes

1import type { ProviderDriverKind } from "@t3tools/contracts";
2​
3import type { ModelEsque } from "./providerIconUtils";
4​
5/** Keeps a hidden model visible while its provider is locked or turned off. */
6export function retainedModelWhileProviderLocked(
7 entry: {
8 readonly driverKind: ProviderDriverKind;
9 readonly enabled: boolean;
10 readonly isAvailable: boolean;
11 readonly models: ReadonlyArray<Pick<ModelEsque, "slug" | "name" | "shortName" | "subProvider">>;
12 } | null,
13 model: string,
14): ModelEsque | undefined {
15 if (!entry || (entry.enabled && entry.isAvailable) || !model) return undefined;
16 if (entry.driverKind === "opencode" || entry.driverKind === "antigravity") return undefined;
17 return entry.models.find((candidate) => candidate.slug === model) ?? { slug: model, name: model };