@nyrra/foundry-ai
Version:
Thin Palantir Foundry provider adapters and model catalog for the Vercel AI SDK.
1 lines • 4.47 kB
Source Map (JSON)
{"version":3,"sources":["../../src/providers/google.ts"],"sourcesContent":["import { createGoogleGenerativeAI } from '@ai-sdk/google';\nimport { NoSuchModelError } from 'ai';\nimport { resolveFoundryConfig } from '../config.js';\nimport { type FoundryLanguageModel, wrapFoundryLanguageModel } from '../middleware.js';\nimport { resolveModelTarget } from '../models/catalog.js';\nimport type { GoogleModelId } from '../models/google-models.js';\nimport type { FoundryConfig } from '../types.js';\n\nexport interface FoundryGoogleProvider {\n (modelId: GoogleModelId): FoundryLanguageModel;\n specificationVersion: FoundryLanguageModel['specificationVersion'];\n languageModel(modelId: GoogleModelId): FoundryLanguageModel;\n chat(modelId: GoogleModelId): FoundryLanguageModel;\n generativeAI(modelId: GoogleModelId): FoundryLanguageModel;\n embeddingModel(modelId: string): never;\n imageModel(modelId: string): never;\n}\n\nexport function createFoundryGoogle(config: FoundryConfig): FoundryGoogleProvider {\n const providerId = 'foundry-google';\n const resolvedConfig = resolveFoundryConfig(config, 'createFoundryGoogle');\n const headers =\n resolvedConfig.attributionRid || resolvedConfig.traceParent || resolvedConfig.traceState\n ? {\n ...(resolvedConfig.attributionRid ? { attribution: resolvedConfig.attributionRid } : {}),\n ...(resolvedConfig.traceParent ? { traceParent: resolvedConfig.traceParent } : {}),\n ...(resolvedConfig.traceState ? { traceState: resolvedConfig.traceState } : {}),\n }\n : undefined;\n const baseProvider = createGoogleGenerativeAI({\n apiKey: resolvedConfig.token,\n baseURL: `${resolvedConfig.foundryUrl}/api/v2/llm/proxy/google/v1`,\n fetch: createGoogleProxyFetch(resolvedConfig.token),\n headers,\n name: providerId,\n });\n\n const createLanguageModel = (modelId: GoogleModelId): FoundryLanguageModel => {\n const resolvedModel = resolveModelTarget(modelId);\n\n return wrapFoundryLanguageModel(baseProvider.chat(resolvedModel.rid), {\n modelId,\n providerId,\n });\n };\n\n function provider(modelId: GoogleModelId): FoundryLanguageModel {\n return createLanguageModel(modelId);\n }\n\n const callableProvider = provider as FoundryGoogleProvider;\n\n callableProvider.specificationVersion = baseProvider.specificationVersion;\n callableProvider.languageModel = createLanguageModel;\n callableProvider.chat = createLanguageModel;\n callableProvider.generativeAI = createLanguageModel;\n callableProvider.embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'embeddingModel' });\n };\n callableProvider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n };\n\n return callableProvider;\n}\n\nfunction createGoogleProxyFetch(token: string): typeof fetch {\n return async (input, init) => {\n const request = new Request(input, init);\n const headers = new Headers(request.headers);\n\n headers.delete('x-goog-api-key');\n headers.set('Authorization', `Bearer ${token}`);\n\n return fetch(new Request(request, { headers }));\n };\n}\n"],"mappings":";;;;;;;;;AAAA,SAAS,gCAAgC;AACzC,SAAS,wBAAwB;AAiB1B,SAAS,oBAAoB,QAA8C;AAChF,QAAM,aAAa;AACnB,QAAM,iBAAiB,qBAAqB,QAAQ,qBAAqB;AACzE,QAAM,UACJ,eAAe,kBAAkB,eAAe,eAAe,eAAe,aAC1E;AAAA,IACE,GAAI,eAAe,iBAAiB,EAAE,aAAa,eAAe,eAAe,IAAI,CAAC;AAAA,IACtF,GAAI,eAAe,cAAc,EAAE,aAAa,eAAe,YAAY,IAAI,CAAC;AAAA,IAChF,GAAI,eAAe,aAAa,EAAE,YAAY,eAAe,WAAW,IAAI,CAAC;AAAA,EAC/E,IACA;AACN,QAAM,eAAe,yBAAyB;AAAA,IAC5C,QAAQ,eAAe;AAAA,IACvB,SAAS,GAAG,eAAe,UAAU;AAAA,IACrC,OAAO,uBAAuB,eAAe,KAAK;AAAA,IAClD;AAAA,IACA,MAAM;AAAA,EACR,CAAC;AAED,QAAM,sBAAsB,CAAC,YAAiD;AAC5E,UAAM,gBAAgB,mBAAmB,OAAO;AAEhD,WAAO,yBAAyB,aAAa,KAAK,cAAc,GAAG,GAAG;AAAA,MACpE;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAEA,WAAS,SAAS,SAA8C;AAC9D,WAAO,oBAAoB,OAAO;AAAA,EACpC;AAEA,QAAM,mBAAmB;AAEzB,mBAAiB,uBAAuB,aAAa;AACrD,mBAAiB,gBAAgB;AACjC,mBAAiB,OAAO;AACxB,mBAAiB,eAAe;AAChC,mBAAiB,iBAAiB,CAAC,YAAoB;AACrD,UAAM,IAAI,iBAAiB,EAAE,SAAS,WAAW,iBAAiB,CAAC;AAAA,EACrE;AACA,mBAAiB,aAAa,CAAC,YAAoB;AACjD,UAAM,IAAI,iBAAiB,EAAE,SAAS,WAAW,aAAa,CAAC;AAAA,EACjE;AAEA,SAAO;AACT;AAEA,SAAS,uBAAuB,OAA6B;AAC3D,SAAO,OAAO,OAAO,SAAS;AAC5B,UAAM,UAAU,IAAI,QAAQ,OAAO,IAAI;AACvC,UAAM,UAAU,IAAI,QAAQ,QAAQ,OAAO;AAE3C,YAAQ,OAAO,gBAAgB;AAC/B,YAAQ,IAAI,iBAAiB,UAAU,KAAK,EAAE;AAE9C,WAAO,MAAM,IAAI,QAAQ,SAAS,EAAE,QAAQ,CAAC,CAAC;AAAA,EAChD;AACF;","names":[]}