@ai-sdk/open-responses 2.0.31 → 2.0.35
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 +31 -0
- package/dist/index.d.ts +96 -3
- package/dist/index.js +560 -14
- package/dist/index.js.map +1 -1
- package/docs/06-open-responses.mdx +116 -2
- package/package.json +2 -2
- package/src/index.ts +10 -0
- package/src/open-responses-extension.ts +387 -0
- package/src/open-responses-provider.ts +15 -0
- package/src/responses/convert-to-open-responses-input.ts +193 -0
- package/src/responses/open-responses-api.ts +14 -4
- package/src/responses/open-responses-config.ts +2 -0
- package/src/responses/open-responses-language-model.ts +313 -17
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
# @ai-sdk/open-responses
|
|
2
2
|
|
|
3
|
+
## 2.0.35
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 9a68261: add experimental codecs for Open Responses extension tools, items, and events, including lossless history replay
|
|
8
|
+
- Updated dependencies [90192f1]
|
|
9
|
+
- @ai-sdk/provider-utils@5.0.33
|
|
10
|
+
|
|
11
|
+
## 2.0.34
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies [3e125ba]
|
|
16
|
+
- @ai-sdk/provider-utils@5.0.32
|
|
17
|
+
|
|
18
|
+
## 2.0.33
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- a0d2e8c: Stream Open Responses reasoning summary text deltas as reasoning output.
|
|
23
|
+
|
|
24
|
+
## 2.0.32
|
|
25
|
+
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- 35841f5: feat: normalize mid-stream provider error events across supported providers into public StreamProviderError instances and preserve provider-owned type, code, status, retry, and raw payload metadata
|
|
29
|
+
- Updated dependencies [a9782e1]
|
|
30
|
+
- Updated dependencies [35841f5]
|
|
31
|
+
- Updated dependencies [d2f3353]
|
|
32
|
+
- @ai-sdk/provider-utils@5.0.31
|
|
33
|
+
|
|
3
34
|
## 2.0.31
|
|
4
35
|
|
|
5
36
|
### Patch Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,96 @@
|
|
|
1
|
-
import { ProviderV4, LanguageModelV4 } from '@ai-sdk/provider';
|
|
1
|
+
import { LanguageModelV4ProviderTool, JSONObject, LanguageModelV4Content, LanguageModelV4StreamPart, LanguageModelV4ToolCallPart, LanguageModelV4ToolResultPart, ProviderV4, LanguageModelV4 } from '@ai-sdk/provider';
|
|
2
2
|
import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
|
|
3
|
-
import { FetchFunction, InferSchema } from '@ai-sdk/provider-utils';
|
|
3
|
+
import { MaybePromiseLike, FetchFunction, InferSchema } from '@ai-sdk/provider-utils';
|
|
4
4
|
|
|
5
5
|
declare const VERSION: string;
|
|
6
6
|
|
|
7
|
+
type OpenResponsesNamespacedType = `${string}:${string}`;
|
|
8
|
+
type OpenResponsesExtensionRecord = JSONObject & {
|
|
9
|
+
type: OpenResponsesNamespacedType;
|
|
10
|
+
};
|
|
11
|
+
type OpenResponsesExtensionItem = OpenResponsesExtensionRecord & {
|
|
12
|
+
id: string;
|
|
13
|
+
status: string;
|
|
14
|
+
};
|
|
15
|
+
type OpenResponsesExtensionEvent = OpenResponsesExtensionRecord & {
|
|
16
|
+
sequence_number: number;
|
|
17
|
+
};
|
|
18
|
+
type OpenResponsesExtensionInputPart = LanguageModelV4ToolCallPart | LanguageModelV4ToolResultPart;
|
|
19
|
+
type OpenResponsesExtensionContentPart = Extract<LanguageModelV4Content, LanguageModelV4StreamPart>;
|
|
20
|
+
type OpenResponsesExtensionStreamPart = Exclude<LanguageModelV4StreamPart, {
|
|
21
|
+
type: 'error' | 'finish' | 'raw' | 'response-metadata' | 'stream-start';
|
|
22
|
+
}>;
|
|
23
|
+
/**
|
|
24
|
+
* Defines how the provider encodes and decodes an Open Responses extension.
|
|
25
|
+
*
|
|
26
|
+
* Tool, item, and event codecs can be registered independently.
|
|
27
|
+
*/
|
|
28
|
+
interface OpenResponsesExtension {
|
|
29
|
+
/**
|
|
30
|
+
* Extension ID in `<implementor>.<extension>` format. For extensions that
|
|
31
|
+
* encode a provider tool, this is also the AI SDK provider-tool ID.
|
|
32
|
+
*/
|
|
33
|
+
id: LanguageModelV4ProviderTool['id'];
|
|
34
|
+
/**
|
|
35
|
+
* Namespaced Open Responses tool type, in `<implementor>:<tool>` format.
|
|
36
|
+
* Must be provided together with `encodeTool`.
|
|
37
|
+
*/
|
|
38
|
+
toolType?: OpenResponsesNamespacedType;
|
|
39
|
+
/**
|
|
40
|
+
* Namespaced item types decoded by this extension. Must be provided together
|
|
41
|
+
* with `decodeItem`.
|
|
42
|
+
*/
|
|
43
|
+
itemTypes?: readonly OpenResponsesNamespacedType[];
|
|
44
|
+
/**
|
|
45
|
+
* Namespaced streaming event types decoded by this extension. Must be
|
|
46
|
+
* provided together with `decodeEvent`.
|
|
47
|
+
*/
|
|
48
|
+
eventTypes?: readonly OpenResponsesNamespacedType[];
|
|
49
|
+
/**
|
|
50
|
+
* Encodes an AI SDK provider tool. Return `undefined` when its arguments
|
|
51
|
+
* cannot be encoded. The adapter adds `toolType` and omits a specific tool
|
|
52
|
+
* choice that selects the omitted tool.
|
|
53
|
+
*/
|
|
54
|
+
encodeTool?(options: {
|
|
55
|
+
name: string;
|
|
56
|
+
args: Record<string, unknown>;
|
|
57
|
+
}): MaybePromiseLike<JSONObject | undefined>;
|
|
58
|
+
/**
|
|
59
|
+
* Encodes a specific `toolChoice`. The adapter adds `toolType`. The default
|
|
60
|
+
* is an object containing only `toolType`.
|
|
61
|
+
*/
|
|
62
|
+
encodeToolChoice?(options: {
|
|
63
|
+
name: string;
|
|
64
|
+
args: Record<string, unknown>;
|
|
65
|
+
}): MaybePromiseLike<JSONObject | undefined>;
|
|
66
|
+
/**
|
|
67
|
+
* Decodes a completed namespaced item into AI SDK content parts. The adapter
|
|
68
|
+
* adds a custom replay part containing the original item and reference
|
|
69
|
+
* metadata to the returned parts.
|
|
70
|
+
*/
|
|
71
|
+
decodeItem?(options: {
|
|
72
|
+
item: OpenResponsesExtensionItem;
|
|
73
|
+
mode: 'generate' | 'stream';
|
|
74
|
+
}): MaybePromiseLike<OpenResponsesExtensionContentPart[] | undefined>;
|
|
75
|
+
/**
|
|
76
|
+
* Encodes an AI SDK history part when no original wire item is available.
|
|
77
|
+
* Every returned item must use one of `itemTypes`.
|
|
78
|
+
*/
|
|
79
|
+
encodeInputItem?(options: {
|
|
80
|
+
part: OpenResponsesExtensionInputPart;
|
|
81
|
+
tool: LanguageModelV4ProviderTool;
|
|
82
|
+
}): MaybePromiseLike<OpenResponsesExtensionItem | OpenResponsesExtensionItem[] | undefined>;
|
|
83
|
+
/**
|
|
84
|
+
* Decodes a namespaced streaming event.
|
|
85
|
+
*
|
|
86
|
+
* `state` persists for the lifetime of one response stream.
|
|
87
|
+
*/
|
|
88
|
+
decodeEvent?(options: {
|
|
89
|
+
event: OpenResponsesExtensionEvent;
|
|
90
|
+
state: Map<string, unknown>;
|
|
91
|
+
}): MaybePromiseLike<OpenResponsesExtensionStreamPart[] | undefined>;
|
|
92
|
+
}
|
|
93
|
+
|
|
7
94
|
interface OpenResponsesProvider extends ProviderV4 {
|
|
8
95
|
(modelId: string): LanguageModelV4;
|
|
9
96
|
}
|
|
@@ -29,6 +116,12 @@ interface OpenResponsesProviderSettings {
|
|
|
29
116
|
* or to provide a custom fetch implementation for e.g. testing.
|
|
30
117
|
*/
|
|
31
118
|
fetch?: FetchFunction;
|
|
119
|
+
/**
|
|
120
|
+
* Codecs for Open Responses extension tools, items, and streaming events.
|
|
121
|
+
*
|
|
122
|
+
* @experimental This API may change in a future release.
|
|
123
|
+
*/
|
|
124
|
+
experimental_extensions?: readonly OpenResponsesExtension[];
|
|
32
125
|
}
|
|
33
126
|
declare function createOpenResponses(options: OpenResponsesProviderSettings): OpenResponsesProvider;
|
|
34
127
|
|
|
@@ -38,4 +131,4 @@ declare const openResponsesLanguageModelOptions: _ai_sdk_provider_utils.LazySche
|
|
|
38
131
|
}>;
|
|
39
132
|
type OpenResponsesLanguageModelOptions = InferSchema<typeof openResponsesLanguageModelOptions>;
|
|
40
133
|
|
|
41
|
-
export { type OpenResponsesLanguageModelOptions, type OpenResponsesLanguageModelOptions as OpenResponsesOptions, type OpenResponsesProvider, type OpenResponsesProviderSettings, VERSION, createOpenResponses };
|
|
134
|
+
export { type OpenResponsesExtension as Experimental_OpenResponsesExtension, type OpenResponsesExtensionContentPart as Experimental_OpenResponsesExtensionContentPart, type OpenResponsesExtensionEvent as Experimental_OpenResponsesExtensionEvent, type OpenResponsesExtensionInputPart as Experimental_OpenResponsesExtensionInputPart, type OpenResponsesExtensionItem as Experimental_OpenResponsesExtensionItem, type OpenResponsesExtensionRecord as Experimental_OpenResponsesExtensionRecord, type OpenResponsesExtensionStreamPart as Experimental_OpenResponsesExtensionStreamPart, type OpenResponsesNamespacedType as Experimental_OpenResponsesNamespacedType, type OpenResponsesLanguageModelOptions, type OpenResponsesLanguageModelOptions as OpenResponsesOptions, type OpenResponsesProvider, type OpenResponsesProviderSettings, VERSION, createOpenResponses };
|