27 lines
764 B
TypeScript
27 lines
764 B
TypeScript
import type { NormalizedProviderListResponse } from "@opencode-ai/session-ui/context"
|
|
|
|
const emptyProviderCatalog: NormalizedProviderListResponse = { all: new Map(), connected: [], default: {} }
|
|
|
|
type DirectoryCatalog = {
|
|
ready: boolean
|
|
providers: NormalizedProviderListResponse
|
|
}
|
|
|
|
type ProviderCatalogInput =
|
|
| {
|
|
explicit: true
|
|
directory?: string
|
|
catalog?: DirectoryCatalog
|
|
}
|
|
| {
|
|
explicit: false
|
|
directory?: string
|
|
catalog?: DirectoryCatalog
|
|
global: NormalizedProviderListResponse
|
|
}
|
|
|
|
export function selectProviderCatalog(input: ProviderCatalogInput) {
|
|
if (input.directory && input.catalog?.ready) return input.catalog.providers
|
|
if (input.explicit) return emptyProviderCatalog
|
|
return input.global
|
|
}
|