@ai-sdk/open-responses 2.0.34 → 2.0.36

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 CHANGED
@@ -1,5 +1,21 @@
1
1
  # @ai-sdk/open-responses
2
2
 
3
+ ## 2.0.36
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [aa45741]
8
+ - @ai-sdk/provider@4.0.9
9
+ - @ai-sdk/provider-utils@5.0.34
10
+
11
+ ## 2.0.35
12
+
13
+ ### Patch Changes
14
+
15
+ - 9a68261: add experimental codecs for Open Responses extension tools, items, and events, including lossless history replay
16
+ - Updated dependencies [90192f1]
17
+ - @ai-sdk/provider-utils@5.0.33
18
+
3
19
  ## 2.0.34
4
20
 
5
21
  ### 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 };