@kernl-sdk/protocol 0.1.1
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/.turbo/turbo-build.log +4 -0
- package/CHANGELOG.md +7 -0
- package/LICENSE +201 -0
- package/README.md +1 -0
- package/dist/codec.d.ts +22 -0
- package/dist/codec.d.ts.map +1 -0
- package/dist/codec.js +1 -0
- package/dist/constants.d.ts +11 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +13 -0
- package/dist/embedding-model/embedding-model.d.ts +57 -0
- package/dist/embedding-model/embedding-model.d.ts.map +1 -0
- package/dist/embedding-model/embedding-model.js +6 -0
- package/dist/embedding-model/index.d.ts +3 -0
- package/dist/embedding-model/index.d.ts.map +1 -0
- package/dist/embedding-model/index.js +2 -0
- package/dist/embedding-model/model.d.ts +65 -0
- package/dist/embedding-model/model.d.ts.map +1 -0
- package/dist/embedding-model/model.js +1 -0
- package/dist/embedding-model/request.d.ts +27 -0
- package/dist/embedding-model/request.d.ts.map +1 -0
- package/dist/embedding-model/request.js +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/json.d.ts +10 -0
- package/dist/json.d.ts.map +1 -0
- package/dist/json.js +1 -0
- package/dist/language-model/content.d.ts +141 -0
- package/dist/language-model/content.d.ts.map +1 -0
- package/dist/language-model/content.js +1 -0
- package/dist/language-model/index.d.ts +6 -0
- package/dist/language-model/index.d.ts.map +1 -0
- package/dist/language-model/index.js +5 -0
- package/dist/language-model/item.d.ts +183 -0
- package/dist/language-model/item.d.ts.map +1 -0
- package/dist/language-model/item.js +1 -0
- package/dist/language-model/language-model.d.ts +114 -0
- package/dist/language-model/language-model.d.ts.map +1 -0
- package/dist/language-model/language-model.js +1 -0
- package/dist/language-model/model.d.ts +110 -0
- package/dist/language-model/model.d.ts.map +1 -0
- package/dist/language-model/model.js +1 -0
- package/dist/language-model/request.d.ts +175 -0
- package/dist/language-model/request.d.ts.map +1 -0
- package/dist/language-model/request.js +1 -0
- package/dist/language-model/settings.d.ts +99 -0
- package/dist/language-model/settings.d.ts.map +1 -0
- package/dist/language-model/settings.js +1 -0
- package/dist/language-model/stream.d.ts +195 -0
- package/dist/language-model/stream.d.ts.map +1 -0
- package/dist/language-model/stream.js +1 -0
- package/dist/language-model/tool.d.ts +48 -0
- package/dist/language-model/tool.d.ts.map +1 -0
- package/dist/language-model/tool.js +1 -0
- package/dist/provider/index.d.ts +2 -0
- package/dist/provider/index.d.ts.map +1 -0
- package/dist/provider/index.js +1 -0
- package/dist/provider/metadata.d.ts +21 -0
- package/dist/provider/metadata.d.ts.map +1 -0
- package/dist/provider/metadata.js +1 -0
- package/dist/provider/provider.d.ts +42 -0
- package/dist/provider/provider.d.ts.map +1 -0
- package/dist/provider/provider.js +1 -0
- package/package.json +41 -0
- package/src/codec.ts +22 -0
- package/src/constants.ts +15 -0
- package/src/embedding-model/index.ts +2 -0
- package/src/embedding-model/model.ts +76 -0
- package/src/embedding-model/request.ts +31 -0
- package/src/index.ts +20 -0
- package/src/json.ts +17 -0
- package/src/language-model/index.ts +5 -0
- package/src/language-model/item.ts +251 -0
- package/src/language-model/model.ts +161 -0
- package/src/language-model/request.ts +210 -0
- package/src/language-model/stream.ts +251 -0
- package/src/language-model/tool.ts +56 -0
- package/src/provider/index.ts +1 -0
- package/src/provider/provider.ts +79 -0
- package/tsconfig.json +13 -0
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import { SharedProviderMetadata } from "@/provider";
|
|
2
|
+
|
|
3
|
+
import type {
|
|
4
|
+
LanguageModelFinishReason,
|
|
5
|
+
LanguageModelUsage,
|
|
6
|
+
LanguageModelWarning,
|
|
7
|
+
} from "./model";
|
|
8
|
+
import type { ToolCallState } from "./item";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Union of all possible language model stream events.
|
|
12
|
+
*/
|
|
13
|
+
export type LanguageModelStreamEvent =
|
|
14
|
+
| TextStartEvent
|
|
15
|
+
| TextEndEvent
|
|
16
|
+
| TextDeltaEvent
|
|
17
|
+
| ReasoningStartEvent
|
|
18
|
+
| ReasoningEndEvent
|
|
19
|
+
| ReasoningDeltaEvent
|
|
20
|
+
| ToolInputStartEvent
|
|
21
|
+
| ToolInputEndEvent
|
|
22
|
+
| ToolInputDeltaEvent
|
|
23
|
+
| ToolCallEvent
|
|
24
|
+
| ToolResultEvent
|
|
25
|
+
| StartEvent
|
|
26
|
+
| FinishEvent
|
|
27
|
+
| AbortEvent
|
|
28
|
+
| ErrorEvent
|
|
29
|
+
| RawEvent;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Base interface for all stream events.
|
|
33
|
+
*/
|
|
34
|
+
export interface StreamEventBase {
|
|
35
|
+
/**
|
|
36
|
+
* The ID associated with this stream event.
|
|
37
|
+
*/
|
|
38
|
+
id?: string;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Additional provider-specific metadata for the event.
|
|
42
|
+
*/
|
|
43
|
+
providerMetadata?: SharedProviderMetadata;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Stream event indicating the start of a text output.
|
|
48
|
+
*/
|
|
49
|
+
export interface TextStartEvent extends StreamEventBase {
|
|
50
|
+
readonly kind: "text-start";
|
|
51
|
+
id: string;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Stream event indicating the end of a text output.
|
|
56
|
+
*/
|
|
57
|
+
export interface TextEndEvent extends StreamEventBase {
|
|
58
|
+
readonly kind: "text-end";
|
|
59
|
+
id: string;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Stream event containing a delta (chunk) of text output.
|
|
64
|
+
*/
|
|
65
|
+
export interface TextDeltaEvent extends StreamEventBase {
|
|
66
|
+
readonly kind: "text-delta";
|
|
67
|
+
id: string;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* The incremental text chunk.
|
|
71
|
+
*/
|
|
72
|
+
text: string;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Stream event indicating the start of reasoning output.
|
|
77
|
+
*/
|
|
78
|
+
export interface ReasoningStartEvent extends StreamEventBase {
|
|
79
|
+
readonly kind: "reasoning-start";
|
|
80
|
+
id: string;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Stream event indicating the end of reasoning output.
|
|
85
|
+
*/
|
|
86
|
+
export interface ReasoningEndEvent extends StreamEventBase {
|
|
87
|
+
readonly kind: "reasoning-end";
|
|
88
|
+
id: string;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Stream event containing a delta (chunk) of reasoning output.
|
|
93
|
+
*/
|
|
94
|
+
export interface ReasoningDeltaEvent extends StreamEventBase {
|
|
95
|
+
readonly kind: "reasoning-delta";
|
|
96
|
+
id: string;
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* The incremental reasoning text chunk.
|
|
100
|
+
*/
|
|
101
|
+
text: string;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Stream event indicating the start of tool input generation.
|
|
106
|
+
*/
|
|
107
|
+
export interface ToolInputStartEvent extends StreamEventBase {
|
|
108
|
+
readonly kind: "tool-input-start";
|
|
109
|
+
id: string;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* The name of the tool being called.
|
|
113
|
+
*/
|
|
114
|
+
toolName: string;
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Optional title for the tool call.
|
|
118
|
+
*/
|
|
119
|
+
title?: string;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Stream event indicating the end of tool input generation.
|
|
124
|
+
*/
|
|
125
|
+
export interface ToolInputEndEvent extends StreamEventBase {
|
|
126
|
+
readonly kind: "tool-input-end";
|
|
127
|
+
id: string;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Stream event containing a delta (chunk) of tool input.
|
|
132
|
+
*/
|
|
133
|
+
export interface ToolInputDeltaEvent extends StreamEventBase {
|
|
134
|
+
readonly kind: "tool-input-delta";
|
|
135
|
+
id: string;
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* The incremental tool input chunk.
|
|
139
|
+
*/
|
|
140
|
+
delta: string;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Stream event containing a complete tool call.
|
|
145
|
+
*/
|
|
146
|
+
export interface ToolCallEvent extends StreamEventBase {
|
|
147
|
+
readonly kind: "tool-call";
|
|
148
|
+
id: string;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* The name of the tool being called.
|
|
152
|
+
*/
|
|
153
|
+
toolName: string;
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* The arguments for the tool call as a JSON string.
|
|
157
|
+
*/
|
|
158
|
+
arguments: string;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Stream event containing a tool result from a provider-executed tool.
|
|
163
|
+
*/
|
|
164
|
+
export interface ToolResultEvent extends StreamEventBase {
|
|
165
|
+
readonly kind: "tool-result";
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* The ID of the tool call that this result is associated with.
|
|
169
|
+
*/
|
|
170
|
+
callId: string;
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Name of the tool that generated this result.
|
|
174
|
+
*/
|
|
175
|
+
toolId: string;
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* The state of the tool call.
|
|
179
|
+
*/
|
|
180
|
+
state: ToolCallState;
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Result of the tool call. This is a JSON-serializable value.
|
|
184
|
+
*/
|
|
185
|
+
result: unknown;
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Error message if the tool call failed.
|
|
189
|
+
*/
|
|
190
|
+
error: string | null;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Stream event indicating the start of agent execution.
|
|
195
|
+
*/
|
|
196
|
+
export interface StartEvent extends StreamEventBase {
|
|
197
|
+
readonly kind: "stream-start";
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Warnings for the call (e.g., unsupported settings).
|
|
201
|
+
*/
|
|
202
|
+
warnings?: LanguageModelWarning[];
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Stream event indicating the completion of agent execution.
|
|
207
|
+
*/
|
|
208
|
+
export interface FinishEvent extends StreamEventBase {
|
|
209
|
+
readonly kind: "finish";
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* The reason for completion.
|
|
213
|
+
*/
|
|
214
|
+
finishReason: LanguageModelFinishReason;
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Total usage data for the execution.
|
|
218
|
+
*/
|
|
219
|
+
usage: LanguageModelUsage;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Stream event indicating the agent execution was aborted.
|
|
224
|
+
*/
|
|
225
|
+
export interface AbortEvent extends StreamEventBase {
|
|
226
|
+
readonly kind: "abort";
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Stream event indicating an error occurred during execution.
|
|
231
|
+
*/
|
|
232
|
+
export interface ErrorEvent extends StreamEventBase {
|
|
233
|
+
readonly kind: "error";
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* The error that occurred.
|
|
237
|
+
*/
|
|
238
|
+
error: unknown;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Stream event containing raw provider-specific data.
|
|
243
|
+
*/
|
|
244
|
+
export interface RawEvent extends StreamEventBase {
|
|
245
|
+
readonly kind: "raw";
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* The raw value from the provider.
|
|
249
|
+
*/
|
|
250
|
+
rawValue: unknown;
|
|
251
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { JSONSchema7 } from "json-schema";
|
|
2
|
+
import type { SharedProviderOptions } from "@/provider";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* A tool has a name, a description, and a set of parameters.
|
|
6
|
+
*
|
|
7
|
+
* Note: this is **not** the user-facing tool definition. The AI SDK methods will
|
|
8
|
+
* map the user-facing tool definitions to this format.
|
|
9
|
+
*/
|
|
10
|
+
export type LanguageModelFunctionTool = {
|
|
11
|
+
readonly kind: "function";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The name of the tool. Unique within this model call.
|
|
15
|
+
*/
|
|
16
|
+
name: string;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* A description of the tool. The language model uses this to understand the
|
|
20
|
+
* tool's purpose and to provide better completion suggestions.
|
|
21
|
+
*/
|
|
22
|
+
description?: string;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* The parameters that the tool expects. The language model uses this to
|
|
26
|
+
* understand the tool's input requirements and to provide matching suggestions.
|
|
27
|
+
*/
|
|
28
|
+
parameters: JSONSchema7;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* The provider-specific options for the tool.
|
|
32
|
+
*/
|
|
33
|
+
providerOptions?: SharedProviderOptions;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* The configuration of a tool that is defined by the provider.
|
|
38
|
+
*/
|
|
39
|
+
export type LanguageModelProviderTool = {
|
|
40
|
+
readonly kind: "provider-defined";
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* The ID of the tool. Should follow the format `<provider-id>.<unique-tool-name>`.
|
|
44
|
+
*/
|
|
45
|
+
id: `${string}.${string}`;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* The name of the tool that the user must use in the tool set.
|
|
49
|
+
*/
|
|
50
|
+
name: string;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* The arguments for configuring the tool. Must match the expected arguments defined by the provider for this tool.
|
|
54
|
+
*/
|
|
55
|
+
args: Record<string, unknown>;
|
|
56
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./provider";
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { EmbeddingModel } from "@/embedding-model";
|
|
2
|
+
import { LanguageModel } from "@/language-model";
|
|
3
|
+
import { JSONObject } from "@/json";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Provider for language, text embedding, and image generation models.
|
|
7
|
+
*/
|
|
8
|
+
export interface Provider {
|
|
9
|
+
readonly spec: "1.0";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Returns the language model with the given id.
|
|
13
|
+
*
|
|
14
|
+
* @throws {NoSuchModelError} If no such model exists.
|
|
15
|
+
*/
|
|
16
|
+
languageModel(modelId: string): LanguageModel;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Returns the text embedding model with the given id.
|
|
20
|
+
*
|
|
21
|
+
* @throws {NoSuchModelError} If no such model exists.
|
|
22
|
+
*/
|
|
23
|
+
textEmbeddingModel(modelId: string): EmbeddingModel<string>;
|
|
24
|
+
|
|
25
|
+
// /**
|
|
26
|
+
// * Returns the image model with the given id.
|
|
27
|
+
// *
|
|
28
|
+
// * @param modelId - The id of the model to return.
|
|
29
|
+
// * @returns The image model associated with the id.
|
|
30
|
+
// */
|
|
31
|
+
// imageModel(modelId: string): ImageModelV3;
|
|
32
|
+
|
|
33
|
+
// /**
|
|
34
|
+
// * Returns the transcription model with the given id.
|
|
35
|
+
// *
|
|
36
|
+
// * @param modelId - The id of the model to return.
|
|
37
|
+
// * @returns The transcription model associated with the id.
|
|
38
|
+
// */
|
|
39
|
+
// transcriptionModel?(modelId: string): TranscriptionModelV3;
|
|
40
|
+
|
|
41
|
+
// /**
|
|
42
|
+
// * Returns the speech model with the given id.
|
|
43
|
+
// *
|
|
44
|
+
// * @param modelId - The id of the model to return.
|
|
45
|
+
// * @returns The speech model associated with the id.
|
|
46
|
+
// */
|
|
47
|
+
// speechModel?(modelId: string): SpeechModelV3;
|
|
48
|
+
|
|
49
|
+
// /**
|
|
50
|
+
// * Returns the reranking model with the given id.
|
|
51
|
+
// *
|
|
52
|
+
// * @param modelId - The id of the model to return.
|
|
53
|
+
// * @returns The reranking model associated with the id.
|
|
54
|
+
// * @throws {NoSuchModelError} If no such model exists.
|
|
55
|
+
// */
|
|
56
|
+
// rerankingModel?(modelId: string): RerankingModelV3;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Additional provider-specific metadata.
|
|
61
|
+
*
|
|
62
|
+
* They are passed through to the provider from the AI SDK
|
|
63
|
+
* and enable provider-specific functionality
|
|
64
|
+
* that can be fully encapsulated in the provider.
|
|
65
|
+
*
|
|
66
|
+
* The outer record is keyed by the provider name, and the inner
|
|
67
|
+
* record is keyed by the provider-specific metadata key.
|
|
68
|
+
*
|
|
69
|
+
* ```ts
|
|
70
|
+
* {
|
|
71
|
+
* "anthropic": {
|
|
72
|
+
* "cacheControl": { "type": "ephemeral" }
|
|
73
|
+
* }
|
|
74
|
+
* }
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export type SharedProviderMetadata = Record<string, JSONObject>;
|
|
78
|
+
|
|
79
|
+
export type SharedProviderOptions = Record<string, JSONObject>;
|
package/tsconfig.json
ADDED