@ai-sdk/provider 4.0.0-beta.2 → 4.0.0-beta.20
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/CHANGELOG.md +136 -13
- package/dist/index.d.ts +1241 -449
- package/dist/index.js +53 -75
- package/dist/index.js.map +1 -1
- package/package.json +12 -12
- package/src/embedding-model/v2/embedding-model-v2.ts +2 -2
- package/src/embedding-model/v3/embedding-model-v3-call-options.ts +1 -1
- package/src/embedding-model/v3/embedding-model-v3-result.ts +2 -2
- package/src/embedding-model/v3/embedding-model-v3.ts +2 -2
- package/src/embedding-model/v4/embedding-model-v4-call-options.ts +1 -1
- package/src/embedding-model/v4/embedding-model-v4-result.ts +2 -2
- package/src/embedding-model/v4/embedding-model-v4.ts +2 -2
- package/src/embedding-model-middleware/v3/embedding-model-v3-middleware.ts +2 -2
- package/src/embedding-model-middleware/v4/embedding-model-v4-middleware.ts +2 -2
- package/src/errors/get-error-message.ts +1 -1
- package/src/errors/index.ts +1 -0
- package/src/errors/no-such-provider-reference-error.ts +35 -0
- package/src/files/index.ts +1 -0
- package/src/files/v4/files-v4-upload-file-call-options.ts +35 -0
- package/src/files/v4/files-v4-upload-file-result.ts +35 -0
- package/src/files/v4/files-v4.ts +25 -0
- package/src/files/v4/index.ts +3 -0
- package/src/image-model/v2/image-model-v2-call-options.ts +1 -1
- package/src/image-model/v2/image-model-v2-call-warning.ts +1 -1
- package/src/image-model/v2/image-model-v2.ts +3 -3
- package/src/image-model/v3/image-model-v3-call-options.ts +2 -2
- package/src/image-model/v3/image-model-v3-file.ts +1 -1
- package/src/image-model/v3/image-model-v3.ts +4 -4
- package/src/image-model/v4/image-model-v4-call-options.ts +2 -2
- package/src/image-model/v4/image-model-v4-file.ts +1 -1
- package/src/image-model/v4/image-model-v4-result.ts +73 -0
- package/src/image-model/v4/image-model-v4.ts +3 -70
- package/src/image-model/v4/index.ts +4 -3
- package/src/image-model-middleware/v3/image-model-v3-middleware.ts +2 -2
- package/src/image-model-middleware/v4/image-model-v4-middleware.ts +2 -2
- package/src/index.ts +3 -0
- package/src/json-value/is-json.ts +1 -1
- package/src/language-model/v2/language-model-v2-call-options.ts +6 -6
- package/src/language-model/v2/language-model-v2-call-warning.ts +3 -3
- package/src/language-model/v2/language-model-v2-content.ts +6 -6
- package/src/language-model/v2/language-model-v2-function-tool.ts +2 -2
- package/src/language-model/v2/language-model-v2-prompt.ts +3 -3
- package/src/language-model/v2/language-model-v2-reasoning.ts +1 -1
- package/src/language-model/v2/language-model-v2-source.ts +1 -1
- package/src/language-model/v2/language-model-v2-stream-part.ts +9 -9
- package/src/language-model/v2/language-model-v2-text.ts +1 -1
- package/src/language-model/v2/language-model-v2-tool-call.ts +1 -1
- package/src/language-model/v2/language-model-v2-tool-result.ts +1 -1
- package/src/language-model/v2/language-model-v2.ts +9 -9
- package/src/language-model/v3/language-model-v3-call-options.ts +6 -6
- package/src/language-model/v3/language-model-v3-content.ts +7 -7
- package/src/language-model/v3/language-model-v3-file.ts +1 -1
- package/src/language-model/v3/language-model-v3-function-tool.ts +3 -3
- package/src/language-model/v3/language-model-v3-generate-result.ts +6 -6
- package/src/language-model/v3/language-model-v3-prompt.ts +3 -3
- package/src/language-model/v3/language-model-v3-reasoning.ts +1 -1
- package/src/language-model/v3/language-model-v3-source.ts +1 -1
- package/src/language-model/v3/language-model-v3-stream-part.ts +10 -10
- package/src/language-model/v3/language-model-v3-stream-result.ts +2 -2
- package/src/language-model/v3/language-model-v3-text.ts +1 -1
- package/src/language-model/v3/language-model-v3-tool-approval-request.ts +1 -1
- package/src/language-model/v3/language-model-v3-tool-call.ts +1 -1
- package/src/language-model/v3/language-model-v3-tool-result.ts +2 -2
- package/src/language-model/v3/language-model-v3-usage.ts +1 -1
- package/src/language-model/v3/language-model-v3.ts +3 -3
- package/src/language-model/v4/index.ts +1 -1
- package/src/language-model/v4/language-model-v4-call-options.ts +19 -6
- package/src/language-model/v4/language-model-v4-content.ts +10 -8
- package/src/language-model/v4/language-model-v4-custom-content.ts +21 -0
- package/src/language-model/v4/language-model-v4-file.ts +10 -3
- package/src/language-model/v4/language-model-v4-function-tool.ts +3 -3
- package/src/language-model/v4/language-model-v4-generate-result.ts +6 -6
- package/src/language-model/v4/language-model-v4-prompt.ts +64 -103
- package/src/language-model/v4/language-model-v4-reasoning-file.ts +10 -3
- package/src/language-model/v4/language-model-v4-reasoning.ts +1 -1
- package/src/language-model/v4/language-model-v4-source.ts +1 -1
- package/src/language-model/v4/language-model-v4-stream-part.ts +13 -11
- package/src/language-model/v4/language-model-v4-stream-result.ts +2 -2
- package/src/language-model/v4/language-model-v4-text.ts +1 -1
- package/src/language-model/v4/language-model-v4-tool-approval-request.ts +1 -1
- package/src/language-model/v4/language-model-v4-tool-call.ts +1 -1
- package/src/language-model/v4/language-model-v4-tool-result.ts +2 -2
- package/src/language-model/v4/language-model-v4-usage.ts +1 -1
- package/src/language-model/v4/language-model-v4.ts +3 -3
- package/src/language-model-middleware/v2/language-model-v2-middleware.ts +2 -2
- package/src/language-model-middleware/v3/language-model-v3-middleware.ts +4 -4
- package/src/language-model-middleware/v4/language-model-v4-middleware.ts +4 -4
- package/src/provider/v2/provider-v2.ts +5 -5
- package/src/provider/v3/provider-v3.ts +6 -6
- package/src/provider/v4/provider-v4.ts +22 -6
- package/src/realtime-model/index.ts +1 -0
- package/src/realtime-model/v4/index.ts +20 -0
- package/src/realtime-model/v4/realtime-factory-v4.ts +20 -0
- package/src/realtime-model/v4/realtime-model-v4-client-event.ts +68 -0
- package/src/realtime-model/v4/realtime-model-v4-client-secret.ts +40 -0
- package/src/realtime-model/v4/realtime-model-v4-conversation-item.ts +55 -0
- package/src/realtime-model/v4/realtime-model-v4-server-event.ts +199 -0
- package/src/realtime-model/v4/realtime-model-v4-session-config.ts +142 -0
- package/src/realtime-model/v4/realtime-model-v4-tool-definition.ts +28 -0
- package/src/realtime-model/v4/realtime-model-v4.ts +89 -0
- package/src/reranking-model/v3/reranking-model-v3-call-options.ts +2 -2
- package/src/reranking-model/v3/reranking-model-v3.ts +2 -2
- package/src/reranking-model/v4/index.ts +1 -0
- package/src/reranking-model/v4/reranking-model-v4-call-options.ts +2 -2
- package/src/reranking-model/v4/reranking-model-v4-result.ts +68 -0
- package/src/reranking-model/v4/reranking-model-v4.ts +5 -65
- package/src/shared/v2/shared-v2-provider-metadata.ts +1 -1
- package/src/shared/v2/shared-v2-provider-options.ts +1 -1
- package/src/shared/v3/shared-v3-provider-metadata.ts +1 -1
- package/src/shared/v3/shared-v3-provider-options.ts +1 -1
- package/src/shared/v4/index.ts +2 -0
- package/src/shared/v4/shared-v4-file-data.ts +49 -0
- package/src/shared/v4/shared-v4-provider-metadata.ts +1 -1
- package/src/shared/v4/shared-v4-provider-options.ts +1 -1
- package/src/shared/v4/shared-v4-provider-reference.ts +22 -0
- package/src/shared/v4/shared-v4-warning.ts +16 -0
- package/src/skills/index.ts +1 -0
- package/src/skills/v4/index.ts +6 -0
- package/src/skills/v4/skills-v4-upload-skill-call-options.ts +37 -0
- package/src/skills/v4/skills-v4-upload-skill-result.ts +40 -0
- package/src/skills/v4/skills-v4.ts +28 -0
- package/src/speech-model/v2/speech-model-v2-call-options.ts +1 -1
- package/src/speech-model/v2/speech-model-v2-call-warning.ts +1 -1
- package/src/speech-model/v2/speech-model-v2.ts +4 -4
- package/src/speech-model/v3/speech-model-v3-call-options.ts +1 -1
- package/src/speech-model/v3/speech-model-v3.ts +4 -4
- package/src/speech-model/v4/index.ts +1 -0
- package/src/speech-model/v4/speech-model-v4-call-options.ts +1 -1
- package/src/speech-model/v4/speech-model-v4-result.ts +64 -0
- package/src/speech-model/v4/speech-model-v4.ts +5 -61
- package/src/transcription-model/v2/transcription-model-v2-call-options.ts +1 -1
- package/src/transcription-model/v2/transcription-model-v2-call-warning.ts +1 -1
- package/src/transcription-model/v2/transcription-model-v2.ts +4 -4
- package/src/transcription-model/v3/transcription-model-v3-call-options.ts +1 -1
- package/src/transcription-model/v3/transcription-model-v3.ts +4 -4
- package/src/transcription-model/v4/index.ts +1 -0
- package/src/transcription-model/v4/transcription-model-v4-call-options.ts +1 -1
- package/src/transcription-model/v4/transcription-model-v4-result.ts +92 -0
- package/src/transcription-model/v4/transcription-model-v4.ts +5 -89
- package/src/video-model/v3/video-model-v3-call-options.ts +7 -2
- package/src/video-model/v3/video-model-v3-file.ts +1 -1
- package/src/video-model/v4/index.ts +4 -3
- package/src/video-model/v4/video-model-v4-call-options.ts +7 -2
- package/src/video-model/v4/video-model-v4-file.ts +1 -1
- package/src/video-model/v4/video-model-v4-result.ts +92 -0
- package/src/video-model/v4/video-model-v4.ts +2 -88
- package/dist/index.d.mts +0 -6354
- package/dist/index.mjs +0 -404
- package/dist/index.mjs.map +0 -1
- package/src/language-model/v4/language-model-v4-data-content.ts +0 -4
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
RealtimeModelV4ClientSecretOptions,
|
|
3
|
+
RealtimeModelV4ClientSecretResult,
|
|
4
|
+
} from './realtime-model-v4-client-secret';
|
|
5
|
+
import type { RealtimeModelV4ClientEvent } from './realtime-model-v4-client-event';
|
|
6
|
+
import type { RealtimeModelV4ServerEvent } from './realtime-model-v4-server-event';
|
|
7
|
+
import type { RealtimeModelV4SessionConfig } from './realtime-model-v4-session-config';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Specification for a realtime model that supports bidirectional
|
|
11
|
+
* audio/text communication over WebSocket.
|
|
12
|
+
*
|
|
13
|
+
* Providers implement this interface to enable realtime voice
|
|
14
|
+
* conversations through the AI SDK.
|
|
15
|
+
*/
|
|
16
|
+
export type RealtimeModelV4 = {
|
|
17
|
+
/**
|
|
18
|
+
* The realtime model must specify which interface version it implements.
|
|
19
|
+
*/
|
|
20
|
+
readonly specificationVersion: 'v4';
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Provider ID (e.g. 'openai', 'xai').
|
|
24
|
+
*/
|
|
25
|
+
readonly provider: string;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Provider-specific model ID (e.g. 'gpt-4o-realtime', 'grok-3').
|
|
29
|
+
*/
|
|
30
|
+
readonly modelId: string;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Server-side: Creates an ephemeral client secret for authenticating
|
|
34
|
+
* browser-side WebSocket connections. The secret is short-lived and
|
|
35
|
+
* safe to expose to client code.
|
|
36
|
+
*
|
|
37
|
+
* Naming: "do" prefix to prevent accidental direct usage by the user.
|
|
38
|
+
*/
|
|
39
|
+
doCreateClientSecret(
|
|
40
|
+
options: RealtimeModelV4ClientSecretOptions,
|
|
41
|
+
): PromiseLike<RealtimeModelV4ClientSecretResult>;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Browser-side: Returns the WebSocket URL and subprotocols to use
|
|
45
|
+
* when connecting. Each provider has its own authentication mechanism
|
|
46
|
+
* (e.g. OpenAI uses subprotocol headers, xAI may use query params).
|
|
47
|
+
*/
|
|
48
|
+
getWebSocketConfig(options: { token: string; url: string }): {
|
|
49
|
+
url: string;
|
|
50
|
+
protocols?: string[];
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Browser-side: Parses a raw JSON event received over the WebSocket
|
|
55
|
+
* and returns one or more normalized events. Providers map their native
|
|
56
|
+
* event format to the common RealtimeModelV4ServerEvent union.
|
|
57
|
+
*
|
|
58
|
+
* Returns an array when a single provider message maps to multiple
|
|
59
|
+
* normalized events (e.g. Google's serverContent can contain audio,
|
|
60
|
+
* text, and turn-complete data in one message).
|
|
61
|
+
*/
|
|
62
|
+
parseServerEvent(
|
|
63
|
+
raw: unknown,
|
|
64
|
+
): RealtimeModelV4ServerEvent | RealtimeModelV4ServerEvent[];
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Browser-side: Serializes a normalized client event into the
|
|
68
|
+
* provider's native JSON format for sending over the WebSocket.
|
|
69
|
+
*/
|
|
70
|
+
serializeClientEvent(
|
|
71
|
+
event: RealtimeModelV4ClientEvent,
|
|
72
|
+
): unknown | PromiseLike<unknown>;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Browser-side: Builds the provider-specific session configuration
|
|
76
|
+
* payload from a normalized session config. Used to construct the
|
|
77
|
+
* session.update event sent after WebSocket connection.
|
|
78
|
+
*/
|
|
79
|
+
buildSessionConfig(config: RealtimeModelV4SessionConfig): unknown;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Browser-side: Returns a message to auto-send back over the WebSocket
|
|
83
|
+
* in response to a raw incoming message, or null if no response is needed.
|
|
84
|
+
*
|
|
85
|
+
* Used for provider-specific keepalive protocols (e.g. ping/pong).
|
|
86
|
+
* Called by the session layer before parseServerEvent.
|
|
87
|
+
*/
|
|
88
|
+
getHealthCheckResponse?(raw: unknown): unknown | null;
|
|
89
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { JSONObject } from '../../json-value';
|
|
2
|
-
import { SharedV3Headers, SharedV3ProviderOptions } from '../../shared/v3';
|
|
1
|
+
import type { JSONObject } from '../../json-value';
|
|
2
|
+
import type { SharedV3Headers, SharedV3ProviderOptions } from '../../shared/v3';
|
|
3
3
|
|
|
4
4
|
export type RerankingModelV3CallOptions = {
|
|
5
5
|
/**
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type {
|
|
2
2
|
SharedV3Headers,
|
|
3
3
|
SharedV3ProviderMetadata,
|
|
4
4
|
SharedV3Warning,
|
|
5
5
|
} from '../../shared/v3/';
|
|
6
|
-
import { RerankingModelV3CallOptions } from './reranking-model-v3-call-options';
|
|
6
|
+
import type { RerankingModelV3CallOptions } from './reranking-model-v3-call-options';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Specification for a reranking model that implements the reranking model interface version 3.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { JSONObject } from '../../json-value';
|
|
2
|
-
import { SharedV4Headers, SharedV4ProviderOptions } from '../../shared/v4';
|
|
1
|
+
import type { JSONObject } from '../../json-value';
|
|
2
|
+
import type { SharedV4Headers, SharedV4ProviderOptions } from '../../shared/v4';
|
|
3
3
|
|
|
4
4
|
export type RerankingModelV4CallOptions = {
|
|
5
5
|
/**
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
SharedV4Headers,
|
|
3
|
+
SharedV4ProviderMetadata,
|
|
4
|
+
SharedV4Warning,
|
|
5
|
+
} from '../../shared/v4/';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* The result of a reranking model doRerank call.
|
|
9
|
+
*/
|
|
10
|
+
export type RerankingModelV4Result = {
|
|
11
|
+
/**
|
|
12
|
+
* Ordered list of reranked documents (via index before reranking).
|
|
13
|
+
* The documents are sorted by the descending order of relevance scores.
|
|
14
|
+
*/
|
|
15
|
+
ranking: Array<{
|
|
16
|
+
/**
|
|
17
|
+
* The index of the document in the original list of documents before reranking.
|
|
18
|
+
*/
|
|
19
|
+
index: number;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The relevance score of the document after reranking.
|
|
23
|
+
*/
|
|
24
|
+
relevanceScore: number;
|
|
25
|
+
}>;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Additional provider-specific metadata. They are passed through
|
|
29
|
+
* to the provider from the AI SDK and enable provider-specific
|
|
30
|
+
* functionality that can be fully encapsulated in the provider.
|
|
31
|
+
*/
|
|
32
|
+
providerMetadata?: SharedV4ProviderMetadata;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Warnings for the call, e.g. unsupported settings.
|
|
36
|
+
*/
|
|
37
|
+
warnings?: Array<SharedV4Warning>;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Optional response information for debugging purposes.
|
|
41
|
+
*/
|
|
42
|
+
response?: {
|
|
43
|
+
/**
|
|
44
|
+
* ID for the generated response, if the provider sends one.
|
|
45
|
+
*/
|
|
46
|
+
id?: string;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Timestamp for the start of the generated response, if the provider sends one.
|
|
50
|
+
*/
|
|
51
|
+
timestamp?: Date;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* The ID of the response model that was used to generate the response, if the provider sends one.
|
|
55
|
+
*/
|
|
56
|
+
modelId?: string;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Response headers.
|
|
60
|
+
*/
|
|
61
|
+
headers?: SharedV4Headers;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Response body.
|
|
65
|
+
*/
|
|
66
|
+
body?: unknown;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
SharedV4ProviderMetadata,
|
|
4
|
-
SharedV4Warning,
|
|
5
|
-
} from '../../shared/v4/';
|
|
6
|
-
import { RerankingModelV4CallOptions } from './reranking-model-v4-call-options';
|
|
1
|
+
import type { RerankingModelV4CallOptions } from './reranking-model-v4-call-options';
|
|
2
|
+
import type { RerankingModelV4Result } from './reranking-model-v4-result';
|
|
7
3
|
|
|
8
4
|
/**
|
|
9
5
|
* Specification for a reranking model that implements the reranking model interface version 3.
|
|
@@ -28,63 +24,7 @@ export type RerankingModelV4 = {
|
|
|
28
24
|
* Reranking a list of documents using the query.
|
|
29
25
|
*/
|
|
30
26
|
// Naming: "do" prefix to prevent accidental direct usage of the method by the user.
|
|
31
|
-
doRerank(
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
* The documents are sorted by the descending order of relevance scores.
|
|
35
|
-
*/
|
|
36
|
-
ranking: Array<{
|
|
37
|
-
/**
|
|
38
|
-
* The index of the document in the original list of documents before reranking.
|
|
39
|
-
*/
|
|
40
|
-
index: number;
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* The relevance score of the document after reranking.
|
|
44
|
-
*/
|
|
45
|
-
relevanceScore: number;
|
|
46
|
-
}>;
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Additional provider-specific metadata. They are passed through
|
|
50
|
-
* to the provider from the AI SDK and enable provider-specific
|
|
51
|
-
* functionality that can be fully encapsulated in the provider.
|
|
52
|
-
*/
|
|
53
|
-
providerMetadata?: SharedV4ProviderMetadata;
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Warnings for the call, e.g. unsupported settings.
|
|
57
|
-
*/
|
|
58
|
-
warnings?: Array<SharedV4Warning>;
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Optional response information for debugging purposes.
|
|
62
|
-
*/
|
|
63
|
-
response?: {
|
|
64
|
-
/**
|
|
65
|
-
* ID for the generated response, if the provider sends one.
|
|
66
|
-
*/
|
|
67
|
-
id?: string;
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Timestamp for the start of the generated response, if the provider sends one.
|
|
71
|
-
*/
|
|
72
|
-
timestamp?: Date;
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* The ID of the response model that was used to generate the response, if the provider sends one.
|
|
76
|
-
*/
|
|
77
|
-
modelId?: string;
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Response headers.
|
|
81
|
-
*/
|
|
82
|
-
headers?: SharedV4Headers;
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Response body.
|
|
86
|
-
*/
|
|
87
|
-
body?: unknown;
|
|
88
|
-
};
|
|
89
|
-
}>;
|
|
27
|
+
doRerank(
|
|
28
|
+
options: RerankingModelV4CallOptions,
|
|
29
|
+
): PromiseLike<RerankingModelV4Result>;
|
|
90
30
|
};
|
package/src/shared/v4/index.ts
CHANGED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { SharedV4ProviderReference } from './shared-v4-provider-reference';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* File data variant containing raw bytes (`Uint8Array`) or a base64-encoded
|
|
5
|
+
* string.
|
|
6
|
+
*/
|
|
7
|
+
export interface SharedV4FileDataData {
|
|
8
|
+
type: 'data';
|
|
9
|
+
data: Uint8Array | string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* File data variant containing a URL that points to the file.
|
|
14
|
+
*/
|
|
15
|
+
export interface SharedV4FileDataUrl {
|
|
16
|
+
type: 'url';
|
|
17
|
+
url: URL;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* File data variant containing a provider reference (`{ [provider]: id }`).
|
|
22
|
+
*/
|
|
23
|
+
export interface SharedV4FileDataReference {
|
|
24
|
+
type: 'reference';
|
|
25
|
+
reference: SharedV4ProviderReference;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* File data variant containing inline text content (e.g. an inline text
|
|
30
|
+
* document).
|
|
31
|
+
*/
|
|
32
|
+
export interface SharedV4FileDataText {
|
|
33
|
+
type: 'text';
|
|
34
|
+
text: string;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* File data as a tagged discriminated union:
|
|
39
|
+
*
|
|
40
|
+
* - `{ type: 'data', data }`: raw bytes (`Uint8Array`) or base64-encoded string.
|
|
41
|
+
* - `{ type: 'url', url }`: a URL that points to the file.
|
|
42
|
+
* - `{ type: 'reference', reference }`: a provider reference (`{ [provider]: id }`).
|
|
43
|
+
* - `{ type: 'text', text }`: inline text content (e.g. an inline text document).
|
|
44
|
+
*/
|
|
45
|
+
export type SharedV4FileData =
|
|
46
|
+
| SharedV4FileDataData
|
|
47
|
+
| SharedV4FileDataUrl
|
|
48
|
+
| SharedV4FileDataReference
|
|
49
|
+
| SharedV4FileDataText;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A mapping of provider names to provider-specific file identifiers.
|
|
3
|
+
*
|
|
4
|
+
* Provider references allow files to be identified across different
|
|
5
|
+
* providers without re-uploading, by storing each provider's own
|
|
6
|
+
* identifier for the same logical file.
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* {
|
|
10
|
+
* "openai": "file-abc123",
|
|
11
|
+
* "anthropic": "file-xyz789"
|
|
12
|
+
* }
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* The `type?: never` constraint excludes any object that has a `type`
|
|
16
|
+
* property, so a `SharedV4ProviderReference` cannot be confused with a
|
|
17
|
+
* tagged file-data shape (e.g. `{ type: 'data', data }` or
|
|
18
|
+
* `{ type: 'reference', reference }`) when both appear in the same union.
|
|
19
|
+
*/
|
|
20
|
+
export type SharedV4ProviderReference = Record<string, string> & {
|
|
21
|
+
type?: never;
|
|
22
|
+
};
|
|
@@ -37,6 +37,22 @@ export type SharedV4Warning =
|
|
|
37
37
|
*/
|
|
38
38
|
details?: string;
|
|
39
39
|
}
|
|
40
|
+
| {
|
|
41
|
+
/**
|
|
42
|
+
* A deprecated feature or option is being used.
|
|
43
|
+
*/
|
|
44
|
+
type: 'deprecated';
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* The deprecated setting or feature name.
|
|
48
|
+
*/
|
|
49
|
+
setting: string;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* A human-readable message explaining what to use instead.
|
|
53
|
+
*/
|
|
54
|
+
message: string;
|
|
55
|
+
}
|
|
40
56
|
| {
|
|
41
57
|
/**
|
|
42
58
|
* Other warning.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './v4/index';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
SharedV4FileDataData,
|
|
3
|
+
SharedV4FileDataText,
|
|
4
|
+
} from '../../shared/v4/shared-v4-file-data';
|
|
5
|
+
import type { SharedV4ProviderOptions } from '../../shared/v4/shared-v4-provider-options';
|
|
6
|
+
|
|
7
|
+
export interface SkillsV4File {
|
|
8
|
+
/**
|
|
9
|
+
* The path of the file relative to the skill root.
|
|
10
|
+
*/
|
|
11
|
+
path: string;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The file data.
|
|
15
|
+
*
|
|
16
|
+
* - `{ type: 'data', data }`: raw bytes (`Uint8Array`) or a base64-encoded string.
|
|
17
|
+
* - `{ type: 'text', text }`: inline text (UTF-8).
|
|
18
|
+
*/
|
|
19
|
+
data: SharedV4FileDataData | SharedV4FileDataText;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface SkillsV4UploadSkillCallOptions {
|
|
23
|
+
/**
|
|
24
|
+
* The files that make up the skill.
|
|
25
|
+
*/
|
|
26
|
+
files: SkillsV4File[];
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Optional human-readable title for the skill.
|
|
30
|
+
*/
|
|
31
|
+
displayTitle?: string;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Additional provider-specific options.
|
|
35
|
+
*/
|
|
36
|
+
providerOptions?: SharedV4ProviderOptions;
|
|
37
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { SharedV4ProviderMetadata } from '../../shared/v4/shared-v4-provider-metadata';
|
|
2
|
+
import type { SharedV4ProviderReference } from '../../shared/v4/shared-v4-provider-reference';
|
|
3
|
+
import type { SharedV4Warning } from '../../shared/v4/shared-v4-warning';
|
|
4
|
+
|
|
5
|
+
export interface SkillsV4UploadSkillResult {
|
|
6
|
+
/**
|
|
7
|
+
* A provider reference mapping provider names to provider-specific skill identifiers.
|
|
8
|
+
*/
|
|
9
|
+
providerReference: SharedV4ProviderReference;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Optional human-readable title for the uploaded skill.
|
|
13
|
+
*/
|
|
14
|
+
displayTitle?: string;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Optional name of the uploaded skill.
|
|
18
|
+
*/
|
|
19
|
+
name?: string;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Optional description of what the uploaded skill does.
|
|
23
|
+
*/
|
|
24
|
+
description?: string;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Optional latest version identifier of the uploaded skill.
|
|
28
|
+
*/
|
|
29
|
+
latestVersion?: string;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Additional provider-specific metadata.
|
|
33
|
+
*/
|
|
34
|
+
providerMetadata?: SharedV4ProviderMetadata;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Warnings for the call, e.g. unsupported settings.
|
|
38
|
+
*/
|
|
39
|
+
warnings: SharedV4Warning[];
|
|
40
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { SkillsV4UploadSkillCallOptions } from './skills-v4-upload-skill-call-options';
|
|
2
|
+
import type { SkillsV4UploadSkillResult } from './skills-v4-upload-skill-result';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Skills specification version 4.
|
|
6
|
+
*/
|
|
7
|
+
export interface SkillsV4 {
|
|
8
|
+
/**
|
|
9
|
+
* The skills implementation must specify which skills interface
|
|
10
|
+
* version it implements. This will allow us to evolve the skills
|
|
11
|
+
* interface and retain backwards compatibility. The different
|
|
12
|
+
* implementation versions can be handled as a discriminated union
|
|
13
|
+
* on our side.
|
|
14
|
+
*/
|
|
15
|
+
readonly specificationVersion: 'v4';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Name of the provider for logging purposes.
|
|
19
|
+
*/
|
|
20
|
+
readonly provider: string;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Uploads a new skill from the given files.
|
|
24
|
+
*/
|
|
25
|
+
uploadSkill(
|
|
26
|
+
params: SkillsV4UploadSkillCallOptions,
|
|
27
|
+
): PromiseLike<SkillsV4UploadSkillResult>;
|
|
28
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { JSONValue } from '../../json-value';
|
|
2
|
-
import { SharedV2Headers } from '../../shared';
|
|
3
|
-
import { SpeechModelV2CallOptions } from './speech-model-v2-call-options';
|
|
4
|
-
import { SpeechModelV2CallWarning } from './speech-model-v2-call-warning';
|
|
1
|
+
import type { JSONValue } from '../../json-value';
|
|
2
|
+
import type { SharedV2Headers } from '../../shared';
|
|
3
|
+
import type { SpeechModelV2CallOptions } from './speech-model-v2-call-options';
|
|
4
|
+
import type { SpeechModelV2CallWarning } from './speech-model-v2-call-warning';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Speech model specification version 2.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { JSONObject } from '../../json-value';
|
|
2
|
-
import { SharedV2Headers } from '../../shared';
|
|
3
|
-
import { SharedV3Warning } from '../../shared/v3/shared-v3-warning';
|
|
4
|
-
import { SpeechModelV3CallOptions } from './speech-model-v3-call-options';
|
|
1
|
+
import type { JSONObject } from '../../json-value';
|
|
2
|
+
import type { SharedV2Headers } from '../../shared';
|
|
3
|
+
import type { SharedV3Warning } from '../../shared/v3/shared-v3-warning';
|
|
4
|
+
import type { SpeechModelV3CallOptions } from './speech-model-v3-call-options';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Speech model specification version 3.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { JSONObject } from '../../json-value';
|
|
2
|
+
import type { SharedV2Headers } from '../../shared';
|
|
3
|
+
import type { SharedV4Warning } from '../../shared/v4/shared-v4-warning';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* The result of a speech model doGenerate call.
|
|
7
|
+
*/
|
|
8
|
+
export type SpeechModelV4Result = {
|
|
9
|
+
/**
|
|
10
|
+
* Generated audio as an ArrayBuffer.
|
|
11
|
+
* The audio should be returned without any unnecessary conversion.
|
|
12
|
+
* If the API returns base64 encoded strings, the audio should be returned
|
|
13
|
+
* as base64 encoded strings. If the API returns binary data, the audio
|
|
14
|
+
* should be returned as binary data.
|
|
15
|
+
*/
|
|
16
|
+
audio: string | Uint8Array;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Warnings for the call, e.g. unsupported settings.
|
|
20
|
+
*/
|
|
21
|
+
warnings: Array<SharedV4Warning>;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Optional request information for telemetry and debugging purposes.
|
|
25
|
+
*/
|
|
26
|
+
request?: {
|
|
27
|
+
/**
|
|
28
|
+
* Response body (available only for providers that use HTTP requests).
|
|
29
|
+
*/
|
|
30
|
+
body?: unknown;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Response information for telemetry and debugging purposes.
|
|
35
|
+
*/
|
|
36
|
+
response: {
|
|
37
|
+
/**
|
|
38
|
+
* Timestamp for the start of the generated response.
|
|
39
|
+
*/
|
|
40
|
+
timestamp: Date;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* The ID of the response model that was used to generate the response.
|
|
44
|
+
*/
|
|
45
|
+
modelId: string;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Response headers.
|
|
49
|
+
*/
|
|
50
|
+
headers?: SharedV2Headers;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Response body.
|
|
54
|
+
*/
|
|
55
|
+
body?: unknown;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Additional provider-specific metadata. They are passed through
|
|
60
|
+
* from the provider to the AI SDK and enable provider-specific
|
|
61
|
+
* results that can be fully encapsulated in the provider.
|
|
62
|
+
*/
|
|
63
|
+
providerMetadata?: Record<string, JSONObject>;
|
|
64
|
+
};
|