{"version":3,"sources":["../../src/providers/anthropic.ts"],"sourcesContent":["import { createAnthropic } from '@ai-sdk/anthropic';\nimport type { wrapLanguageModel } from 'ai';\nimport { NoSuchModelError } from 'ai';\nimport { resolveFoundryConfig } from '../config.js';\nimport { wrapFoundryLanguageModel } from '../middleware.js';\nimport type { AnthropicModelId } from '../models/anthropic-models.js';\nimport { resolveModelTarget } from '../models/catalog.js';\nimport type { FoundryConfig } from '../types.js';\n\ntype FoundryLanguageModel = Parameters<typeof wrapLanguageModel>[0]['model'];\n\nexport interface FoundryAnthropicProvider {\n  (modelId: AnthropicModelId): FoundryLanguageModel;\n  specificationVersion: 'v3';\n  languageModel(modelId: AnthropicModelId): FoundryLanguageModel;\n  chat(modelId: AnthropicModelId): FoundryLanguageModel;\n  messages(modelId: AnthropicModelId): FoundryLanguageModel;\n  embeddingModel(modelId: string): never;\n  imageModel(modelId: string): never;\n}\n\nexport function createFoundryAnthropic(config: FoundryConfig): FoundryAnthropicProvider {\n  const providerId = 'foundry-anthropic';\n  const resolvedConfig = resolveFoundryConfig(config, 'createFoundryAnthropic');\n  const baseProvider = createAnthropic({\n    authToken: resolvedConfig.token,\n    baseURL: `${resolvedConfig.foundryUrl}/api/v2/llm/proxy/anthropic/v1`,\n    headers: resolvedConfig.attributionRid\n      ? { attribution: resolvedConfig.attributionRid }\n      : undefined,\n    name: providerId,\n  });\n\n  const createLanguageModel = (modelId: AnthropicModelId): FoundryLanguageModel => {\n    const resolvedModel = resolveModelTarget(modelId);\n\n    return wrapFoundryLanguageModel(baseProvider(resolvedModel.rid), {\n      modelId,\n      providerId,\n    });\n  };\n\n  function provider(modelId: AnthropicModelId): FoundryLanguageModel {\n    return createLanguageModel(modelId);\n  }\n\n  const callableProvider = provider as FoundryAnthropicProvider;\n\n  callableProvider.specificationVersion = 'v3';\n  callableProvider.languageModel = createLanguageModel;\n  callableProvider.chat = createLanguageModel;\n  callableProvider.messages = 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"],"mappings":";;;;;;;;;AAAA,SAAS,uBAAuB;AAEhC,SAAS,wBAAwB;AAmB1B,SAAS,uBAAuB,QAAiD;AACtF,QAAM,aAAa;AACnB,QAAM,iBAAiB,qBAAqB,QAAQ,wBAAwB;AAC5E,QAAM,eAAe,gBAAgB;AAAA,IACnC,WAAW,eAAe;AAAA,IAC1B,SAAS,GAAG,eAAe,UAAU;AAAA,IACrC,SAAS,eAAe,iBACpB,EAAE,aAAa,eAAe,eAAe,IAC7C;AAAA,IACJ,MAAM;AAAA,EACR,CAAC;AAED,QAAM,sBAAsB,CAAC,YAAoD;AAC/E,UAAM,gBAAgB,mBAAmB,OAAO;AAEhD,WAAO,yBAAyB,aAAa,cAAc,GAAG,GAAG;AAAA,MAC/D;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAEA,WAAS,SAAS,SAAiD;AACjE,WAAO,oBAAoB,OAAO;AAAA,EACpC;AAEA,QAAM,mBAAmB;AAEzB,mBAAiB,uBAAuB;AACxC,mBAAiB,gBAAgB;AACjC,mBAAiB,OAAO;AACxB,mBAAiB,WAAW;AAC5B,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;","names":[]}