@openrouter/ai-sdk-provider 1.5.4 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  The [OpenRouter](https://openrouter.ai/) provider for the [Vercel AI SDK](https://sdk.vercel.ai/docs) gives access to over 300 large language models on the OpenRouter chat and completion APIs.
4
4
 
5
- ## Setup for AI SDK v5
5
+ ## Setup for AI SDK v6
6
6
 
7
7
  ```bash
8
8
  # For pnpm
@@ -15,18 +15,17 @@ npm install @openrouter/ai-sdk-provider
15
15
  yarn add @openrouter/ai-sdk-provider
16
16
  ```
17
17
 
18
- ## (LEGACY) Setup for AI SDK v4
18
+ ## (LEGACY) Setup for AI SDK v5
19
19
 
20
20
  ```bash
21
21
  # For pnpm
22
- pnpm add @openrouter/ai-sdk-provider@ai-sdk-v4
22
+ pnpm add @openrouter/ai-sdk-provider@ai-sdk-v5
23
23
 
24
24
  # For npm
25
- npm install @openrouter/ai-sdk-provider@ai-sdk-v4
25
+ npm install @openrouter/ai-sdk-provider@ai-sdk-v5
26
26
 
27
27
  # For yarn
28
- yarn add @openrouter/ai-sdk-provider@ai-sdk-v4
29
-
28
+ yarn add @openrouter/ai-sdk-provider@ai-sdk-v5
30
29
  ```
31
30
 
32
31
  ## Provider Instance
@@ -57,9 +56,9 @@ You can find the latest list of tool-supported models supported by OpenRouter [h
57
56
 
58
57
  ## Embeddings
59
58
 
60
- OpenRouter supports embedding models for semantic search, RAG pipelines, and vector-native features. The provider exposes embeddings compatible with both AI SDK v5 and v4.
59
+ OpenRouter supports embedding models for semantic search, RAG pipelines, and vector-native features.
61
60
 
62
- ### AI SDK v5 (Recommended)
61
+ ### Basic Usage
63
62
 
64
63
  ```ts
65
64
  import { embed } from 'ai';
@@ -91,20 +90,6 @@ const { embeddings } = await embedMany({
91
90
  console.log(embeddings); // Array of embedding arrays
92
91
  ```
93
92
 
94
- ### AI SDK v4 (Deprecated)
95
-
96
- For backwards compatibility, the `embedding` method is also available:
97
-
98
- ```ts
99
- import { embed } from 'ai';
100
- import { openrouter } from '@openrouter/ai-sdk-provider';
101
-
102
- const { embedding } = await embed({
103
- model: openrouter.embedding('openai/text-embedding-3-small'),
104
- value: 'sunny day at the beach',
105
- });
106
- ```
107
-
108
93
  ### Supported Embedding Models
109
94
 
110
95
  OpenRouter supports various embedding models including:
@@ -225,6 +210,7 @@ await streamText({
225
210
  ],
226
211
  });
227
212
  ```
213
+
228
214
  ## Anthropic Beta Features
229
215
 
230
216
  You can enable Anthropic beta features by passing custom headers through the OpenRouter SDK.
@@ -319,8 +305,6 @@ for await (const partialComponent of result.partialObjectStream) {
319
305
  }
320
306
  ```
321
307
 
322
-
323
-
324
308
  ## Use Cases
325
309
 
326
310
  ### Debugging API Requests
package/dist/index.d.mts CHANGED
@@ -1,5 +1,6 @@
1
- import { LanguageModelV2, LanguageModelV2CallOptions, LanguageModelV2Content, LanguageModelV2FinishReason, LanguageModelV2Usage, LanguageModelV2CallWarning, LanguageModelV2ResponseMetadata, SharedV2Headers, LanguageModelV2StreamPart, EmbeddingModelV2, SharedV2ProviderMetadata, ProviderV2 } from '@ai-sdk/provider';
2
- export { LanguageModelV2, LanguageModelV2Prompt } from '@ai-sdk/provider';
1
+ import * as _ai_sdk_provider from '@ai-sdk/provider';
2
+ import { LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3Content, LanguageModelV3FinishReason, LanguageModelV3Usage, SharedV3Warning, LanguageModelV3ResponseMetadata, SharedV3Headers, LanguageModelV3StreamPart, EmbeddingModelV3, SharedV3ProviderMetadata, ProviderV3 } from '@ai-sdk/provider';
3
+ export { LanguageModelV3, LanguageModelV3Prompt } from '@ai-sdk/provider';
3
4
  import * as models from '@openrouter/sdk/models';
4
5
  import { z } from 'zod/v4';
5
6
 
@@ -337,8 +338,8 @@ type OpenRouterChatConfig = {
337
338
  fetch?: typeof fetch;
338
339
  extraBody?: Record<string, unknown>;
339
340
  };
340
- declare class OpenRouterChatLanguageModel implements LanguageModelV2 {
341
- readonly specificationVersion: "v2";
341
+ declare class OpenRouterChatLanguageModel implements LanguageModelV3 {
342
+ readonly specificationVersion: "v3";
342
343
  readonly provider = "openrouter";
343
344
  readonly defaultObjectGenerationMode: "tool";
344
345
  readonly modelId: OpenRouterChatModelId;
@@ -348,11 +349,11 @@ declare class OpenRouterChatLanguageModel implements LanguageModelV2 {
348
349
  private readonly config;
349
350
  constructor(modelId: OpenRouterChatModelId, settings: OpenRouterChatSettings, config: OpenRouterChatConfig);
350
351
  private getArgs;
351
- doGenerate(options: LanguageModelV2CallOptions): Promise<{
352
- content: Array<LanguageModelV2Content>;
353
- finishReason: LanguageModelV2FinishReason;
354
- usage: LanguageModelV2Usage;
355
- warnings: Array<LanguageModelV2CallWarning>;
352
+ doGenerate(options: LanguageModelV3CallOptions): Promise<{
353
+ content: Array<LanguageModelV3Content>;
354
+ finishReason: LanguageModelV3FinishReason;
355
+ usage: LanguageModelV3Usage;
356
+ warnings: Array<SharedV3Warning>;
356
357
  providerMetadata?: {
357
358
  openrouter: {
358
359
  provider: string;
@@ -363,19 +364,19 @@ declare class OpenRouterChatLanguageModel implements LanguageModelV2 {
363
364
  request?: {
364
365
  body?: unknown;
365
366
  };
366
- response?: LanguageModelV2ResponseMetadata & {
367
- headers?: SharedV2Headers;
367
+ response?: LanguageModelV3ResponseMetadata & {
368
+ headers?: SharedV3Headers;
368
369
  body?: unknown;
369
370
  };
370
371
  }>;
371
- doStream(options: LanguageModelV2CallOptions): Promise<{
372
- stream: ReadableStream<LanguageModelV2StreamPart>;
373
- warnings: Array<LanguageModelV2CallWarning>;
372
+ doStream(options: LanguageModelV3CallOptions): Promise<{
373
+ stream: ReadableStream<LanguageModelV3StreamPart>;
374
+ warnings: Array<SharedV3Warning>;
374
375
  request?: {
375
376
  body?: unknown;
376
377
  };
377
- response?: LanguageModelV2ResponseMetadata & {
378
- headers?: SharedV2Headers;
378
+ response?: LanguageModelV3ResponseMetadata & {
379
+ headers?: SharedV3Headers;
379
380
  body?: unknown;
380
381
  };
381
382
  }>;
@@ -392,8 +393,8 @@ type OpenRouterCompletionConfig = {
392
393
  fetch?: typeof fetch;
393
394
  extraBody?: Record<string, unknown>;
394
395
  };
395
- declare class OpenRouterCompletionLanguageModel implements LanguageModelV2 {
396
- readonly specificationVersion: "v2";
396
+ declare class OpenRouterCompletionLanguageModel implements LanguageModelV3 {
397
+ readonly specificationVersion: "v3";
397
398
  readonly provider = "openrouter";
398
399
  readonly modelId: OpenRouterCompletionModelId;
399
400
  readonly supportsImageUrls = true;
@@ -403,8 +404,8 @@ declare class OpenRouterCompletionLanguageModel implements LanguageModelV2 {
403
404
  private readonly config;
404
405
  constructor(modelId: OpenRouterCompletionModelId, settings: OpenRouterCompletionSettings, config: OpenRouterCompletionConfig);
405
406
  private getArgs;
406
- doGenerate(options: LanguageModelV2CallOptions): Promise<Awaited<ReturnType<LanguageModelV2['doGenerate']>>>;
407
- doStream(options: LanguageModelV2CallOptions): Promise<Awaited<ReturnType<LanguageModelV2['doStream']>>>;
407
+ doGenerate(options: LanguageModelV3CallOptions): Promise<Awaited<ReturnType<LanguageModelV3['doGenerate']>>>;
408
+ doStream(options: LanguageModelV3CallOptions): Promise<Awaited<ReturnType<LanguageModelV3['doStream']>>>;
408
409
  }
409
410
 
410
411
  type OpenRouterEmbeddingConfig = {
@@ -417,8 +418,8 @@ type OpenRouterEmbeddingConfig = {
417
418
  fetch?: typeof fetch;
418
419
  extraBody?: Record<string, unknown>;
419
420
  };
420
- declare class OpenRouterEmbeddingModel implements EmbeddingModelV2<string> {
421
- readonly specificationVersion: "v2";
421
+ declare class OpenRouterEmbeddingModel implements EmbeddingModelV3 {
422
+ readonly specificationVersion: "v3";
422
423
  readonly provider = "openrouter";
423
424
  readonly modelId: OpenRouterEmbeddingModelId;
424
425
  readonly settings: OpenRouterEmbeddingSettings;
@@ -435,15 +436,16 @@ declare class OpenRouterEmbeddingModel implements EmbeddingModelV2<string> {
435
436
  usage?: {
436
437
  tokens: number;
437
438
  };
438
- providerMetadata?: SharedV2ProviderMetadata;
439
+ providerMetadata?: SharedV3ProviderMetadata;
439
440
  response?: {
440
- headers?: SharedV2Headers;
441
+ headers?: SharedV3Headers;
441
442
  body?: unknown;
442
443
  };
444
+ warnings: Array<_ai_sdk_provider.SharedV3Warning>;
443
445
  }>;
444
446
  }
445
447
 
446
- interface OpenRouterProvider extends ProviderV2 {
448
+ interface OpenRouterProvider extends ProviderV3 {
447
449
  (modelId: OpenRouterChatModelId, settings?: OpenRouterCompletionSettings): OpenRouterCompletionLanguageModel;
448
450
  (modelId: OpenRouterChatModelId, settings?: OpenRouterChatSettings): OpenRouterChatLanguageModel;
449
451
  languageModel(modelId: OpenRouterChatModelId, settings?: OpenRouterCompletionSettings): OpenRouterCompletionLanguageModel;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- import { LanguageModelV2, LanguageModelV2CallOptions, LanguageModelV2Content, LanguageModelV2FinishReason, LanguageModelV2Usage, LanguageModelV2CallWarning, LanguageModelV2ResponseMetadata, SharedV2Headers, LanguageModelV2StreamPart, EmbeddingModelV2, SharedV2ProviderMetadata, ProviderV2 } from '@ai-sdk/provider';
2
- export { LanguageModelV2, LanguageModelV2Prompt } from '@ai-sdk/provider';
1
+ import * as _ai_sdk_provider from '@ai-sdk/provider';
2
+ import { LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3Content, LanguageModelV3FinishReason, LanguageModelV3Usage, SharedV3Warning, LanguageModelV3ResponseMetadata, SharedV3Headers, LanguageModelV3StreamPart, EmbeddingModelV3, SharedV3ProviderMetadata, ProviderV3 } from '@ai-sdk/provider';
3
+ export { LanguageModelV3, LanguageModelV3Prompt } from '@ai-sdk/provider';
3
4
  import * as models from '@openrouter/sdk/models';
4
5
  import { z } from 'zod/v4';
5
6
 
@@ -337,8 +338,8 @@ type OpenRouterChatConfig = {
337
338
  fetch?: typeof fetch;
338
339
  extraBody?: Record<string, unknown>;
339
340
  };
340
- declare class OpenRouterChatLanguageModel implements LanguageModelV2 {
341
- readonly specificationVersion: "v2";
341
+ declare class OpenRouterChatLanguageModel implements LanguageModelV3 {
342
+ readonly specificationVersion: "v3";
342
343
  readonly provider = "openrouter";
343
344
  readonly defaultObjectGenerationMode: "tool";
344
345
  readonly modelId: OpenRouterChatModelId;
@@ -348,11 +349,11 @@ declare class OpenRouterChatLanguageModel implements LanguageModelV2 {
348
349
  private readonly config;
349
350
  constructor(modelId: OpenRouterChatModelId, settings: OpenRouterChatSettings, config: OpenRouterChatConfig);
350
351
  private getArgs;
351
- doGenerate(options: LanguageModelV2CallOptions): Promise<{
352
- content: Array<LanguageModelV2Content>;
353
- finishReason: LanguageModelV2FinishReason;
354
- usage: LanguageModelV2Usage;
355
- warnings: Array<LanguageModelV2CallWarning>;
352
+ doGenerate(options: LanguageModelV3CallOptions): Promise<{
353
+ content: Array<LanguageModelV3Content>;
354
+ finishReason: LanguageModelV3FinishReason;
355
+ usage: LanguageModelV3Usage;
356
+ warnings: Array<SharedV3Warning>;
356
357
  providerMetadata?: {
357
358
  openrouter: {
358
359
  provider: string;
@@ -363,19 +364,19 @@ declare class OpenRouterChatLanguageModel implements LanguageModelV2 {
363
364
  request?: {
364
365
  body?: unknown;
365
366
  };
366
- response?: LanguageModelV2ResponseMetadata & {
367
- headers?: SharedV2Headers;
367
+ response?: LanguageModelV3ResponseMetadata & {
368
+ headers?: SharedV3Headers;
368
369
  body?: unknown;
369
370
  };
370
371
  }>;
371
- doStream(options: LanguageModelV2CallOptions): Promise<{
372
- stream: ReadableStream<LanguageModelV2StreamPart>;
373
- warnings: Array<LanguageModelV2CallWarning>;
372
+ doStream(options: LanguageModelV3CallOptions): Promise<{
373
+ stream: ReadableStream<LanguageModelV3StreamPart>;
374
+ warnings: Array<SharedV3Warning>;
374
375
  request?: {
375
376
  body?: unknown;
376
377
  };
377
- response?: LanguageModelV2ResponseMetadata & {
378
- headers?: SharedV2Headers;
378
+ response?: LanguageModelV3ResponseMetadata & {
379
+ headers?: SharedV3Headers;
379
380
  body?: unknown;
380
381
  };
381
382
  }>;
@@ -392,8 +393,8 @@ type OpenRouterCompletionConfig = {
392
393
  fetch?: typeof fetch;
393
394
  extraBody?: Record<string, unknown>;
394
395
  };
395
- declare class OpenRouterCompletionLanguageModel implements LanguageModelV2 {
396
- readonly specificationVersion: "v2";
396
+ declare class OpenRouterCompletionLanguageModel implements LanguageModelV3 {
397
+ readonly specificationVersion: "v3";
397
398
  readonly provider = "openrouter";
398
399
  readonly modelId: OpenRouterCompletionModelId;
399
400
  readonly supportsImageUrls = true;
@@ -403,8 +404,8 @@ declare class OpenRouterCompletionLanguageModel implements LanguageModelV2 {
403
404
  private readonly config;
404
405
  constructor(modelId: OpenRouterCompletionModelId, settings: OpenRouterCompletionSettings, config: OpenRouterCompletionConfig);
405
406
  private getArgs;
406
- doGenerate(options: LanguageModelV2CallOptions): Promise<Awaited<ReturnType<LanguageModelV2['doGenerate']>>>;
407
- doStream(options: LanguageModelV2CallOptions): Promise<Awaited<ReturnType<LanguageModelV2['doStream']>>>;
407
+ doGenerate(options: LanguageModelV3CallOptions): Promise<Awaited<ReturnType<LanguageModelV3['doGenerate']>>>;
408
+ doStream(options: LanguageModelV3CallOptions): Promise<Awaited<ReturnType<LanguageModelV3['doStream']>>>;
408
409
  }
409
410
 
410
411
  type OpenRouterEmbeddingConfig = {
@@ -417,8 +418,8 @@ type OpenRouterEmbeddingConfig = {
417
418
  fetch?: typeof fetch;
418
419
  extraBody?: Record<string, unknown>;
419
420
  };
420
- declare class OpenRouterEmbeddingModel implements EmbeddingModelV2<string> {
421
- readonly specificationVersion: "v2";
421
+ declare class OpenRouterEmbeddingModel implements EmbeddingModelV3 {
422
+ readonly specificationVersion: "v3";
422
423
  readonly provider = "openrouter";
423
424
  readonly modelId: OpenRouterEmbeddingModelId;
424
425
  readonly settings: OpenRouterEmbeddingSettings;
@@ -435,15 +436,16 @@ declare class OpenRouterEmbeddingModel implements EmbeddingModelV2<string> {
435
436
  usage?: {
436
437
  tokens: number;
437
438
  };
438
- providerMetadata?: SharedV2ProviderMetadata;
439
+ providerMetadata?: SharedV3ProviderMetadata;
439
440
  response?: {
440
- headers?: SharedV2Headers;
441
+ headers?: SharedV3Headers;
441
442
  body?: unknown;
442
443
  };
444
+ warnings: Array<_ai_sdk_provider.SharedV3Warning>;
443
445
  }>;
444
446
  }
445
447
 
446
- interface OpenRouterProvider extends ProviderV2 {
448
+ interface OpenRouterProvider extends ProviderV3 {
447
449
  (modelId: OpenRouterChatModelId, settings?: OpenRouterCompletionSettings): OpenRouterCompletionLanguageModel;
448
450
  (modelId: OpenRouterChatModelId, settings?: OpenRouterChatSettings): OpenRouterChatLanguageModel;
449
451
  languageModel(modelId: OpenRouterChatModelId, settings?: OpenRouterCompletionSettings): OpenRouterCompletionLanguageModel;