pull/14487/head
Aiden Cline 2026-03-09 23:14:47 -05:00
parent bb88363a76
commit b82787e270
1 changed files with 14 additions and 20 deletions

View File

@ -117,14 +117,6 @@ export namespace Provider {
options?: Record<string, any> options?: Record<string, any>
}> }>
const byShape = (sdk: any, model: Model) => {
const shape = model.api.shape
if (sdk.responses === undefined && sdk.chat === undefined) return sdk.languageModel(model.api.id)
if (shape === "responses") return sdk.responses(model.api.id)
if (shape === "completions") return sdk.chat(model.api.id)
return undefined
}
const CUSTOM_LOADERS: Record<string, CustomLoader> = { const CUSTOM_LOADERS: Record<string, CustomLoader> = {
async anthropic() { async anthropic() {
return { return {
@ -163,7 +155,6 @@ export namespace Provider {
return { return {
autoload: false, autoload: false,
async getModel(sdk: any, model: Model, _options?: Record<string, any>) { async getModel(sdk: any, model: Model, _options?: Record<string, any>) {
if (model.api.shape === "completions") return sdk.chat(model.api.id)
return sdk.responses(model.api.id) return sdk.responses(model.api.id)
}, },
options: {}, options: {},
@ -173,8 +164,6 @@ export namespace Provider {
return { return {
autoload: false, autoload: false,
async getModel(sdk: any, model: Model, _options?: Record<string, any>) { async getModel(sdk: any, model: Model, _options?: Record<string, any>) {
const m = byShape(sdk, model)
if (m) return m
return shouldUseCopilotResponsesApi(model.api.id) ? sdk.responses(model.api.id) : sdk.chat(model.api.id) return shouldUseCopilotResponsesApi(model.api.id) ? sdk.responses(model.api.id) : sdk.chat(model.api.id)
}, },
options: {}, options: {},
@ -184,8 +173,6 @@ export namespace Provider {
return { return {
autoload: false, autoload: false,
async getModel(sdk: any, model: Model, _options?: Record<string, any>) { async getModel(sdk: any, model: Model, _options?: Record<string, any>) {
const m = byShape(sdk, model)
if (m) return m
return shouldUseCopilotResponsesApi(model.api.id) ? sdk.responses(model.api.id) : sdk.chat(model.api.id) return shouldUseCopilotResponsesApi(model.api.id) ? sdk.responses(model.api.id) : sdk.chat(model.api.id)
}, },
options: {}, options: {},
@ -195,8 +182,6 @@ export namespace Provider {
return { return {
autoload: false, autoload: false,
async getModel(sdk: any, model: Model, options?: Record<string, any>) { async getModel(sdk: any, model: Model, options?: Record<string, any>) {
const m = byShape(sdk, model)
if (m) return m
if (options?.["useCompletionUrls"]) return sdk.chat(model.api.id) if (options?.["useCompletionUrls"]) return sdk.chat(model.api.id)
return sdk.responses(model.api.id) return sdk.responses(model.api.id)
}, },
@ -208,8 +193,6 @@ export namespace Provider {
return { return {
autoload: false, autoload: false,
async getModel(sdk: any, model: Model, options?: Record<string, any>) { async getModel(sdk: any, model: Model, options?: Record<string, any>) {
const m = byShape(sdk, model)
if (m) return m
if (options?.["useCompletionUrls"]) return sdk.chat(model.api.id) if (options?.["useCompletionUrls"]) return sdk.chat(model.api.id)
return sdk.responses(model.api.id) return sdk.responses(model.api.id)
}, },
@ -1212,9 +1195,20 @@ export namespace Provider {
const sdk = await getSDK(model) const sdk = await getSDK(model)
try { try {
const language = s.modelLoaders[model.providerID] const language = await iife(async () => {
? await s.modelLoaders[model.providerID](sdk, model, provider.options) // SDK the type doesn't have .responses or .chat on it, but it CAN when using certain npm packages
: sdk.languageModel(model.api.id) const looselyTyped = sdk as any
if (looselyTyped.responses !== undefined || looselyTyped.chat !== undefined) {
if (model.api.shape === "responses") return looselyTyped.responses(model.api.id)
if (model.api.shape === "completions") return looselyTyped.chat(model.api.id)
}
const ml = s.modelLoaders[model.providerID]
if (ml) {
return await ml(sdk, model, provider.options)
}
return sdk.languageModel(model.api.id)
})
s.models.set(key, language) s.models.set(key, language)
return language return language
} catch (e) { } catch (e) {