diff --git a/src/shared/index.ts b/src/shared/index.ts index f9b58f41..f4abff9c 100644 --- a/src/shared/index.ts +++ b/src/shared/index.ts @@ -41,6 +41,7 @@ export type { ModelResolutionResult, } from "./model-resolution-types" export * from "./model-availability" +export * from "./fallback-model-availability" export * from "./connected-providers-cache" export * from "./session-utils" export * from "./tmux" diff --git a/src/shared/model-availability.ts b/src/shared/model-availability.ts index 83965767..69e8ac88 100644 --- a/src/shared/model-availability.ts +++ b/src/shared/model-availability.ts @@ -283,71 +283,6 @@ export async function fetchAvailableModels( return modelSet } -export function isAnyFallbackModelAvailable( - fallbackChain: Array<{ providers: string[]; model: string }>, - availableModels: Set, -): boolean { - // If we have models, check them first - if (availableModels.size > 0) { - for (const entry of fallbackChain) { - const hasAvailableProvider = entry.providers.some((provider) => { - return fuzzyMatchModel(entry.model, availableModels, [provider]) !== null - }) - if (hasAvailableProvider) { - return true - } - } - } - - // Fallback: check if any provider in the chain is connected - // This handles race conditions where availableModels is empty or incomplete - // but we know the provider is connected. - const connectedProviders = connectedProvidersCache.readConnectedProvidersCache() - if (connectedProviders) { - const connectedSet = new Set(connectedProviders) - for (const entry of fallbackChain) { - if (entry.providers.some((p) => connectedSet.has(p))) { - log("[isAnyFallbackModelAvailable] model not in available set, but provider is connected", { - model: entry.model, - availableCount: availableModels.size, - }) - return true - } - } - } - - return false -} - -export function isAnyProviderConnected( - providers: string[], - availableModels: Set, -): boolean { - if (availableModels.size > 0) { - const providerSet = new Set(providers) - for (const model of availableModels) { - const [provider] = model.split("/") - if (providerSet.has(provider)) { - log("[isAnyProviderConnected] found model from required provider", { provider, model }) - return true - } - } - } - - const connectedProviders = connectedProvidersCache.readConnectedProvidersCache() - if (connectedProviders) { - const connectedSet = new Set(connectedProviders) - for (const provider of providers) { - if (connectedSet.has(provider)) { - log("[isAnyProviderConnected] provider connected via cache", { provider }) - return true - } - } - } - - return false -} - export function __resetModelCache(): void {} export function isModelCacheAvailable(): boolean {