/
Alex_Ural
/
opencode
Обзор
Документация
Войти
/
Alex_Ural
/
opencode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
packages/llm/src/provider.ts
36 строк
1 KB
Shoubhit Dash
feat(llm): add model defaults and compatibility data (#34436)
29 июн 2026, 16:40
Не верифицирован
29 июн 2026, 16:40
1fd8bf5
Код
Авторство
О чём код?
import type { Model, ModelID, ProviderID } from "./schema" export type ModelOptions = Pick<Model.Input, "defaults" | "compatibility"> /** * Advanced structural provider definition helper. Built-in providers should * prefer explicit `configure(options).model(id)` facades so deployment config is * chosen before model selection. The optional `apis` map remains for external * structural providers that expose multiple route selectors behind one provider. */ export type ModelFactory<Options extends ModelOptions = ModelOptions> = ( id: string | ModelID, options?: Options, ) => Model type AnyModelFactory = (...args: never[]) => Model export interface Definition<Factory extends AnyModelFactory = ModelFactory> { readonly id: ProviderID readonly model: Factory readonly apis?: Record<string, AnyModelFactory> } type DefinitionShape = { readonly id: ProviderID readonly model: (...args: never[]) => Model readonly apis?: Record<string, (...args: never[]) => Model> } type NoExtraFields<Input, Shape> = Input & Record<Exclude<keyof Input, keyof Shape>, never> export const make = <DefinitionType extends DefinitionShape>( definition: NoExtraFields<DefinitionType, DefinitionShape>, ) => definition export * as Provider from "./provider"