fix(provider): type default model failures (#28881)
This commit is contained in:
@@ -994,7 +994,22 @@ export class InitError extends Schema.TaggedErrorClass<InitError>()("ProviderIni
|
||||
}
|
||||
}
|
||||
|
||||
export type Error = ModelNotFoundError | InitError
|
||||
export class NoProvidersError extends Schema.TaggedErrorClass<NoProvidersError>()("ProviderNoProvidersError", {}) {
|
||||
static isInstance(input: unknown): input is NoProvidersError {
|
||||
return input instanceof NoProvidersError
|
||||
}
|
||||
}
|
||||
|
||||
export class NoModelsError extends Schema.TaggedErrorClass<NoModelsError>()("ProviderNoModelsError", {
|
||||
providerID: ProviderID,
|
||||
}) {
|
||||
static isInstance(input: unknown): input is NoModelsError {
|
||||
return input instanceof NoModelsError
|
||||
}
|
||||
}
|
||||
|
||||
export type DefaultModelError = ModelNotFoundError | NoProvidersError | NoModelsError
|
||||
export type Error = ModelNotFoundError | InitError | NoProvidersError | NoModelsError
|
||||
|
||||
export interface Interface {
|
||||
readonly list: () => Effect.Effect<Record<ProviderID, Info>>
|
||||
@@ -1006,7 +1021,7 @@ export interface Interface {
|
||||
query: string[],
|
||||
) => Effect.Effect<{ providerID: ProviderID; modelID: string } | undefined>
|
||||
readonly getSmallModel: (providerID: ProviderID) => Effect.Effect<Model | undefined>
|
||||
readonly defaultModel: () => Effect.Effect<{ providerID: ProviderID; modelID: ModelID }>
|
||||
readonly defaultModel: () => Effect.Effect<{ providerID: ProviderID; modelID: ModelID }, DefaultModelError>
|
||||
}
|
||||
|
||||
interface State {
|
||||
@@ -1821,9 +1836,9 @@ export const layer = Layer.effect(
|
||||
}
|
||||
|
||||
const provider = Object.values(s.providers).find((p) => !cfg.provider || Object.keys(cfg.provider).includes(p.id))
|
||||
if (!provider) throw new Error("no providers found")
|
||||
if (!provider) return yield* new NoProvidersError()
|
||||
const [model] = sort(Object.values(provider.models))
|
||||
if (!model) throw new Error("no models found")
|
||||
if (!model) return yield* new NoModelsError({ providerID: provider.id })
|
||||
return {
|
||||
providerID: provider.id,
|
||||
modelID: model.id,
|
||||
|
||||
Reference in New Issue
Block a user