diff --git a/packages/ai/package.json b/packages/ai/package.json index fe5cd3d7e..a3e7b77a9 100644 --- a/packages/ai/package.json +++ b/packages/ai/package.json @@ -46,6 +46,10 @@ "types": "./dist/providers/openai.d.ts", "default": "./dist/providers/openai.js" }, + "./openrouter": { + "types": "./dist/providers/openrouter.d.ts", + "default": "./dist/providers/openrouter.js" + }, "./xai": { "types": "./dist/providers/xai.d.ts", "default": "./dist/providers/xai.js" @@ -72,6 +76,7 @@ "@ai-sdk/openai": "2.0.72", "@ai-sdk/provider": "2.0.0", "@ai-sdk/xai": "2.0.37", + "@openrouter/ai-sdk-provider": "1.4.1", "zod": "catalog:" } } diff --git a/packages/ai/src/providers/openrouter.ts b/packages/ai/src/providers/openrouter.ts new file mode 100644 index 000000000..2f8e157b6 --- /dev/null +++ b/packages/ai/src/providers/openrouter.ts @@ -0,0 +1,10 @@ +import { openrouter as openrouterProvider } from '@openrouter/ai-sdk-provider'; + +export function openrouter( + ...args: Parameters +): () => Promise> { + return async () => { + 'use step'; + return openrouterProvider(...args); + }; +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 996298df9..5273a6280 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -321,6 +321,9 @@ importers: '@ai-sdk/xai': specifier: 2.0.37 version: 2.0.37(zod@4.1.11) + '@openrouter/ai-sdk-provider': + specifier: 1.4.1 + version: 1.4.1(ai@5.0.104(zod@4.1.11))(zod@4.1.11) zod: specifier: 'catalog:' version: 4.1.11 @@ -3545,6 +3548,16 @@ packages: resolution: {integrity: sha512-gcK4FNaROM9NjA0mvyfXl0KPusk7a1BeA8ITlYEZVQCXF5gcETTd4yhAU0Kjzd8mXwYHppzJBWgdBVpIR9wUcQ==} engines: {node: '>= 20'} + '@openrouter/ai-sdk-provider@1.4.1': + resolution: {integrity: sha512-dj88dldpAreSNPVkO3ap19XGgx98nb/WeTrPdiUmErKSyFGYQvrjpXTn7WFyhGPDRrEdhua6oaBshsA8yiuGlg==} + engines: {node: '>=18'} + peerDependencies: + ai: ^5.0.0 + zod: ^3.24.1 || ^v4 + + '@openrouter/sdk@0.1.27': + resolution: {integrity: sha512-RH//L10bSmc81q25zAZudiI4kNkLgxF2E+WU42vghp3N6TEvZ6F0jK7uT3tOxkEn91gzmMw9YVmDENy7SJsajQ==} + '@opentelemetry/api-logs@0.57.2': resolution: {integrity: sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==} engines: {node: '>=14'} @@ -15795,6 +15808,16 @@ snapshots: '@octokit/request-error': 7.1.0 '@octokit/webhooks-methods': 6.0.0 + '@openrouter/ai-sdk-provider@1.4.1(ai@5.0.104(zod@4.1.11))(zod@4.1.11)': + dependencies: + '@openrouter/sdk': 0.1.27 + ai: 5.0.104(zod@4.1.11) + zod: 4.1.11 + + '@openrouter/sdk@0.1.27': + dependencies: + zod: 4.1.12 + '@opentelemetry/api-logs@0.57.2': dependencies: '@opentelemetry/api': 1.9.0