UNPKG

@mastra/core

Version:
1 lines 3.07 kB
{"version":3,"file":"gateway-helpers-CdK-tcyA.cjs","names":["MastraError"],"sources":["../src/llm/model/capability-file.ts","../src/llm/model/gateways/gateway-helpers.ts"],"sourcesContent":["export function getCapabilityFileName(provider: string): string {\n return `${encodeURIComponent(provider)}.json`;\n}\n","import { MastraError } from '../../../error/index.js';\nimport type { MastraModelGatewayInterface } from './base.js';\n\nexport function getGatewayId(gateway: MastraModelGatewayInterface): string {\n return gateway.getId?.() ?? gateway.id;\n}\n\nexport function shouldEnableGateway(gateway: MastraModelGatewayInterface): boolean {\n return gateway.shouldEnable?.() ?? true;\n}\n\nexport function serializeGatewayForSpan(\n gateway: MastraModelGatewayInterface,\n): { id: string; name: string } & Record<string, unknown> {\n return gateway.serializeForSpan?.() ?? { id: getGatewayId(gateway), name: gateway.name };\n}\n\n/**\n * Find the gateway that handles a specific model ID based on gateway ID\n * Gateway ID is used as the prefix (e.g., \"netlify\" for netlify gateway)\n * Exception: models.dev is a provider registry and doesn't use a prefix\n */\nexport function findGatewayForModel(\n gatewayId: string,\n gateways: MastraModelGatewayInterface[],\n): MastraModelGatewayInterface {\n // First, check for gateways whose ID matches the prefix (true gateways like netlify, openrouter, vercel)\n const prefixedGateway = gateways.find(g => {\n const id = getGatewayId(g);\n return id !== 'models.dev' && (id === gatewayId || gatewayId.startsWith(`${id}/`));\n });\n if (prefixedGateway) {\n return prefixedGateway;\n }\n\n // Then check gateways that explicitly claim this (possibly unprefixed) model\n // id, e.g. a gateway that authenticates a bare `anthropic/...` id via OAuth.\n const claimingGateway = gateways.find(g => getGatewayId(g) !== 'models.dev' && g.handlesModel?.(gatewayId) === true);\n if (claimingGateway) {\n return claimingGateway;\n }\n\n // Then check models.dev (provider registry without prefix)\n const modelsDevGateway = gateways.find(g => getGatewayId(g) === 'models.dev');\n if (modelsDevGateway) {\n return modelsDevGateway;\n }\n\n throw new MastraError({\n id: 'MODEL_ROUTER_NO_GATEWAY_FOUND',\n category: 'USER',\n domain: 'MODEL_ROUTER',\n text: `No Mastra model router gateway found for model id ${gatewayId}`,\n });\n}\n"],"mappings":";;AAAA,SAAgB,sBAAsB,UAA0B;CAC9D,OAAO,GAAG,mBAAmB,QAAQ,EAAE;AACzC;;;ACCA,SAAgB,aAAa,SAA8C;CACzE,OAAO,QAAQ,QAAQ,KAAK,QAAQ;AACtC;AAEA,SAAgB,oBAAoB,SAA+C;CACjF,OAAO,QAAQ,eAAe,KAAK;AACrC;;;;;;AAaA,SAAgB,oBACd,WACA,UAC6B;CAE7B,MAAM,kBAAkB,SAAS,MAAK,MAAK;EACzC,MAAM,KAAK,aAAa,CAAC;EACzB,OAAO,OAAO,iBAAiB,OAAO,aAAa,UAAU,WAAW,GAAG,GAAG,EAAE;CAClF,CAAC;CACD,IAAI,iBACF,OAAO;CAKT,MAAM,kBAAkB,SAAS,MAAK,MAAK,aAAa,CAAC,MAAM,gBAAgB,EAAE,eAAe,SAAS,MAAM,IAAI;CACnH,IAAI,iBACF,OAAO;CAIT,MAAM,mBAAmB,SAAS,MAAK,MAAK,aAAa,CAAC,MAAM,YAAY;CAC5E,IAAI,kBACF,OAAO;CAGT,MAAM,IAAIA,cAAAA,YAAY;EACpB,IAAI;EACJ,UAAU;EACV,QAAQ;EACR,MAAM,qDAAqD;CAC7D,CAAC;AACH"}