@openrouter/ai-sdk-provider 2.10.0 → 3.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 +25 -1
- package/dist/index.d.ts +40 -40
- package/dist/index.js +706 -645
- package/dist/index.js.map +1 -1
- package/dist/internal/index.d.ts +37 -37
- package/dist/internal/index.js +692 -634
- package/dist/internal/index.js.map +1 -1
- package/package.json +14 -15
- package/dist/index.d.mts +0 -880
- package/dist/index.mjs +0 -5307
- package/dist/index.mjs.map +0 -1
- package/dist/internal/index.d.mts +0 -723
- package/dist/internal/index.mjs +0 -5035
- package/dist/internal/index.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
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
|
|
5
|
+
## Setup for AI SDK v7
|
|
6
|
+
|
|
7
|
+
This release line supports `ai@^7.0.0`, requires Node.js 22 or newer, and is ESM-only.
|
|
6
8
|
|
|
7
9
|
```bash
|
|
8
10
|
# For pnpm
|
|
@@ -15,6 +17,19 @@ npm install @openrouter/ai-sdk-provider
|
|
|
15
17
|
yarn add @openrouter/ai-sdk-provider
|
|
16
18
|
```
|
|
17
19
|
|
|
20
|
+
## (LEGACY) Setup for AI SDK v6
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# For pnpm
|
|
24
|
+
pnpm add @openrouter/ai-sdk-provider@2.9.1
|
|
25
|
+
|
|
26
|
+
# For npm
|
|
27
|
+
npm install @openrouter/ai-sdk-provider@2.9.1
|
|
28
|
+
|
|
29
|
+
# For yarn
|
|
30
|
+
yarn add @openrouter/ai-sdk-provider@2.9.1
|
|
31
|
+
```
|
|
32
|
+
|
|
18
33
|
## (LEGACY) Setup for AI SDK v5
|
|
19
34
|
|
|
20
35
|
```bash
|
|
@@ -383,6 +398,11 @@ const result = await generateText({
|
|
|
383
398
|
prompt: 'Hello, how are you today?',
|
|
384
399
|
});
|
|
385
400
|
|
|
401
|
+
// AI SDK v7 standard usage details
|
|
402
|
+
console.log('Input tokens:', result.usage.inputTokens);
|
|
403
|
+
console.log('Cached input tokens:', result.usage.inputTokenDetails.cacheReadTokens);
|
|
404
|
+
console.log('Reasoning tokens:', result.usage.outputTokenDetails.reasoningTokens);
|
|
405
|
+
|
|
386
406
|
// Provider-specific usage details (available in providerMetadata)
|
|
387
407
|
if (result.providerMetadata?.openrouter?.usage) {
|
|
388
408
|
console.log('Cost:', result.providerMetadata.openrouter.usage.cost);
|
|
@@ -411,6 +431,10 @@ const result = await generateText({
|
|
|
411
431
|
prompt: 'Hello, how are you today?',
|
|
412
432
|
});
|
|
413
433
|
|
|
434
|
+
console.log('Input tokens:', result.usage.inputTokens);
|
|
435
|
+
console.log('Cached input tokens:', result.usage.inputTokenDetails.cacheReadTokens);
|
|
436
|
+
console.log('Reasoning tokens:', result.usage.outputTokenDetails.reasoningTokens);
|
|
437
|
+
|
|
414
438
|
// Provider-specific BYOK usage details (available in providerMetadata)
|
|
415
439
|
if (result.providerMetadata?.openrouter?.usage) {
|
|
416
440
|
const costDetails = result.providerMetadata.openrouter.usage.costDetails;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _ai_sdk_provider from '@ai-sdk/provider';
|
|
2
|
-
import {
|
|
3
|
-
export {
|
|
4
|
-
import {
|
|
2
|
+
import { LanguageModelV4, LanguageModelV4CallOptions, LanguageModelV4Content, LanguageModelV4FinishReason, LanguageModelV4Usage, SharedV4Warning, LanguageModelV4ResponseMetadata, SharedV4Headers, LanguageModelV4StreamPart, EmbeddingModelV4, SharedV4ProviderMetadata, ImageModelV4, ImageModelV4CallOptions, ImageModelV4ProviderMetadata, ImageModelV4Usage, Experimental_VideoModelV4, Experimental_VideoModelV4CallOptions, Experimental_VideoModelV4VideoData, ProviderV4 } from '@ai-sdk/provider';
|
|
3
|
+
export { LanguageModelV4, LanguageModelV4Prompt } from '@ai-sdk/provider';
|
|
4
|
+
import { ProviderDefinedToolFactory } from '@ai-sdk/provider-utils';
|
|
5
5
|
import { z } from 'zod/v4';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -552,8 +552,8 @@ type OpenRouterChatConfig = {
|
|
|
552
552
|
fetch?: typeof fetch;
|
|
553
553
|
extraBody?: Record<string, unknown>;
|
|
554
554
|
};
|
|
555
|
-
declare class OpenRouterChatLanguageModel implements
|
|
556
|
-
readonly specificationVersion: "
|
|
555
|
+
declare class OpenRouterChatLanguageModel implements LanguageModelV4 {
|
|
556
|
+
readonly specificationVersion: "v4";
|
|
557
557
|
readonly provider = "openrouter";
|
|
558
558
|
readonly defaultObjectGenerationMode: "tool";
|
|
559
559
|
readonly modelId: OpenRouterChatModelId;
|
|
@@ -563,11 +563,11 @@ declare class OpenRouterChatLanguageModel implements LanguageModelV3 {
|
|
|
563
563
|
private readonly config;
|
|
564
564
|
constructor(modelId: OpenRouterChatModelId, settings: OpenRouterChatSettings, config: OpenRouterChatConfig);
|
|
565
565
|
private getArgs;
|
|
566
|
-
doGenerate(options:
|
|
567
|
-
content: Array<
|
|
568
|
-
finishReason:
|
|
569
|
-
usage:
|
|
570
|
-
warnings: Array<
|
|
566
|
+
doGenerate(options: LanguageModelV4CallOptions): Promise<{
|
|
567
|
+
content: Array<LanguageModelV4Content>;
|
|
568
|
+
finishReason: LanguageModelV4FinishReason;
|
|
569
|
+
usage: LanguageModelV4Usage;
|
|
570
|
+
warnings: Array<SharedV4Warning>;
|
|
571
571
|
providerMetadata?: {
|
|
572
572
|
openrouter: {
|
|
573
573
|
provider: string;
|
|
@@ -578,19 +578,19 @@ declare class OpenRouterChatLanguageModel implements LanguageModelV3 {
|
|
|
578
578
|
request?: {
|
|
579
579
|
body?: unknown;
|
|
580
580
|
};
|
|
581
|
-
response?:
|
|
582
|
-
headers?:
|
|
581
|
+
response?: LanguageModelV4ResponseMetadata & {
|
|
582
|
+
headers?: SharedV4Headers;
|
|
583
583
|
body?: unknown;
|
|
584
584
|
};
|
|
585
585
|
}>;
|
|
586
|
-
doStream(options:
|
|
587
|
-
stream: ReadableStream<
|
|
588
|
-
warnings: Array<
|
|
586
|
+
doStream(options: LanguageModelV4CallOptions): Promise<{
|
|
587
|
+
stream: ReadableStream<LanguageModelV4StreamPart>;
|
|
588
|
+
warnings: Array<SharedV4Warning>;
|
|
589
589
|
request?: {
|
|
590
590
|
body?: unknown;
|
|
591
591
|
};
|
|
592
|
-
response?:
|
|
593
|
-
headers?:
|
|
592
|
+
response?: LanguageModelV4ResponseMetadata & {
|
|
593
|
+
headers?: SharedV4Headers;
|
|
594
594
|
body?: unknown;
|
|
595
595
|
};
|
|
596
596
|
}>;
|
|
@@ -607,8 +607,8 @@ type OpenRouterCompletionConfig = {
|
|
|
607
607
|
fetch?: typeof fetch;
|
|
608
608
|
extraBody?: Record<string, unknown>;
|
|
609
609
|
};
|
|
610
|
-
declare class OpenRouterCompletionLanguageModel implements
|
|
611
|
-
readonly specificationVersion: "
|
|
610
|
+
declare class OpenRouterCompletionLanguageModel implements LanguageModelV4 {
|
|
611
|
+
readonly specificationVersion: "v4";
|
|
612
612
|
readonly provider = "openrouter";
|
|
613
613
|
readonly modelId: OpenRouterCompletionModelId;
|
|
614
614
|
readonly supportsImageUrls = true;
|
|
@@ -618,8 +618,8 @@ declare class OpenRouterCompletionLanguageModel implements LanguageModelV3 {
|
|
|
618
618
|
private readonly config;
|
|
619
619
|
constructor(modelId: OpenRouterCompletionModelId, settings: OpenRouterCompletionSettings, config: OpenRouterCompletionConfig);
|
|
620
620
|
private getArgs;
|
|
621
|
-
doGenerate(options:
|
|
622
|
-
doStream(options:
|
|
621
|
+
doGenerate(options: LanguageModelV4CallOptions): Promise<Awaited<ReturnType<LanguageModelV4['doGenerate']>>>;
|
|
622
|
+
doStream(options: LanguageModelV4CallOptions): Promise<Awaited<ReturnType<LanguageModelV4['doStream']>>>;
|
|
623
623
|
}
|
|
624
624
|
|
|
625
625
|
type OpenRouterEmbeddingConfig = {
|
|
@@ -632,8 +632,8 @@ type OpenRouterEmbeddingConfig = {
|
|
|
632
632
|
fetch?: typeof fetch;
|
|
633
633
|
extraBody?: Record<string, unknown>;
|
|
634
634
|
};
|
|
635
|
-
declare class OpenRouterEmbeddingModel implements
|
|
636
|
-
readonly specificationVersion: "
|
|
635
|
+
declare class OpenRouterEmbeddingModel implements EmbeddingModelV4 {
|
|
636
|
+
readonly specificationVersion: "v4";
|
|
637
637
|
readonly provider = "openrouter";
|
|
638
638
|
readonly modelId: OpenRouterEmbeddingModelId;
|
|
639
639
|
readonly settings: OpenRouterEmbeddingSettings;
|
|
@@ -650,12 +650,12 @@ declare class OpenRouterEmbeddingModel implements EmbeddingModelV3 {
|
|
|
650
650
|
usage?: {
|
|
651
651
|
tokens: number;
|
|
652
652
|
};
|
|
653
|
-
providerMetadata?:
|
|
653
|
+
providerMetadata?: SharedV4ProviderMetadata;
|
|
654
654
|
response?: {
|
|
655
|
-
headers?:
|
|
655
|
+
headers?: SharedV4Headers;
|
|
656
656
|
body?: unknown;
|
|
657
657
|
};
|
|
658
|
-
warnings: Array<_ai_sdk_provider.
|
|
658
|
+
warnings: Array<_ai_sdk_provider.SharedV4Warning>;
|
|
659
659
|
}>;
|
|
660
660
|
}
|
|
661
661
|
|
|
@@ -669,24 +669,24 @@ type OpenRouterImageConfig = {
|
|
|
669
669
|
fetch?: typeof fetch;
|
|
670
670
|
extraBody?: Record<string, unknown>;
|
|
671
671
|
};
|
|
672
|
-
declare class OpenRouterImageModel implements
|
|
673
|
-
readonly specificationVersion: "
|
|
672
|
+
declare class OpenRouterImageModel implements ImageModelV4 {
|
|
673
|
+
readonly specificationVersion: "v4";
|
|
674
674
|
readonly provider = "openrouter";
|
|
675
675
|
readonly modelId: OpenRouterImageModelId;
|
|
676
676
|
readonly settings: OpenRouterImageSettings;
|
|
677
677
|
readonly maxImagesPerCall = 10;
|
|
678
678
|
private readonly config;
|
|
679
679
|
constructor(modelId: OpenRouterImageModelId, settings: OpenRouterImageSettings, config: OpenRouterImageConfig);
|
|
680
|
-
doGenerate(options:
|
|
680
|
+
doGenerate(options: ImageModelV4CallOptions): Promise<{
|
|
681
681
|
images: Array<string>;
|
|
682
|
-
warnings: Array<
|
|
683
|
-
providerMetadata?:
|
|
682
|
+
warnings: Array<SharedV4Warning>;
|
|
683
|
+
providerMetadata?: ImageModelV4ProviderMetadata;
|
|
684
684
|
response: {
|
|
685
685
|
timestamp: Date;
|
|
686
686
|
modelId: string;
|
|
687
687
|
headers: Record<string, string> | undefined;
|
|
688
688
|
};
|
|
689
|
-
usage?:
|
|
689
|
+
usage?: ImageModelV4Usage;
|
|
690
690
|
}>;
|
|
691
691
|
}
|
|
692
692
|
|
|
@@ -700,18 +700,18 @@ type OpenRouterVideoConfig = {
|
|
|
700
700
|
fetch?: typeof fetch;
|
|
701
701
|
extraBody?: Record<string, unknown>;
|
|
702
702
|
};
|
|
703
|
-
declare class OpenRouterVideoModel implements
|
|
704
|
-
readonly specificationVersion = "
|
|
703
|
+
declare class OpenRouterVideoModel implements Experimental_VideoModelV4 {
|
|
704
|
+
readonly specificationVersion = "v4";
|
|
705
705
|
readonly provider = "openrouter";
|
|
706
706
|
readonly modelId: OpenRouterVideoModelId;
|
|
707
707
|
readonly settings: OpenRouterVideoSettings;
|
|
708
708
|
readonly maxVideosPerCall = 1;
|
|
709
709
|
private readonly config;
|
|
710
710
|
constructor(modelId: OpenRouterVideoModelId, settings: OpenRouterVideoSettings, config: OpenRouterVideoConfig);
|
|
711
|
-
doGenerate(options:
|
|
712
|
-
videos: Array<
|
|
713
|
-
warnings: Array<
|
|
714
|
-
providerMetadata?:
|
|
711
|
+
doGenerate(options: Experimental_VideoModelV4CallOptions): Promise<{
|
|
712
|
+
videos: Array<Experimental_VideoModelV4VideoData>;
|
|
713
|
+
warnings: Array<SharedV4Warning>;
|
|
714
|
+
providerMetadata?: SharedV4ProviderMetadata;
|
|
715
715
|
response: {
|
|
716
716
|
timestamp: Date;
|
|
717
717
|
modelId: string;
|
|
@@ -734,7 +734,7 @@ type WebSearchToolArgs = {
|
|
|
734
734
|
engine?: 'auto' | Engine;
|
|
735
735
|
};
|
|
736
736
|
|
|
737
|
-
interface OpenRouterProvider extends
|
|
737
|
+
interface OpenRouterProvider extends ProviderV4 {
|
|
738
738
|
(modelId: OpenRouterChatModelId, settings?: OpenRouterCompletionSettings): OpenRouterCompletionLanguageModel;
|
|
739
739
|
(modelId: OpenRouterChatModelId, settings?: OpenRouterChatSettings): OpenRouterChatLanguageModel;
|
|
740
740
|
languageModel(modelId: OpenRouterChatModelId, settings?: OpenRouterCompletionSettings): OpenRouterCompletionLanguageModel;
|
|
@@ -773,7 +773,7 @@ interface OpenRouterProvider extends ProviderV3 {
|
|
|
773
773
|
*
|
|
774
774
|
* @see https://openrouter.ai/docs/guides/features/server-tools/web-search
|
|
775
775
|
*/
|
|
776
|
-
webSearch:
|
|
776
|
+
webSearch: ProviderDefinedToolFactory<unknown, WebSearchToolArgs>;
|
|
777
777
|
};
|
|
778
778
|
}
|
|
779
779
|
interface OpenRouterProviderSettings {
|