@ai-sdk/open-responses 2.0.0-beta.2 → 2.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 +138 -0
- package/dist/index.d.mts +8 -2
- package/dist/index.d.ts +8 -2
- package/dist/index.js +65 -18
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +56 -4
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -6
- package/src/index.ts +1 -0
- package/src/open-responses-provider.ts +1 -0
- package/src/responses/convert-to-open-responses-input.ts +12 -2
- package/src/responses/open-responses-config.ts +1 -0
- package/src/responses/open-responses-language-model.ts +39 -0
- package/src/responses/open-responses-options.ts +18 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,143 @@
|
|
|
1
1
|
# @ai-sdk/open-responses
|
|
2
2
|
|
|
3
|
+
## 2.0.0-beta.20
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [3ae1786]
|
|
8
|
+
- @ai-sdk/provider-utils@5.0.0-beta.17
|
|
9
|
+
|
|
10
|
+
## 2.0.0-beta.19
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Updated dependencies [176466a]
|
|
15
|
+
- @ai-sdk/provider@4.0.0-beta.10
|
|
16
|
+
- @ai-sdk/provider-utils@5.0.0-beta.16
|
|
17
|
+
|
|
18
|
+
## 2.0.0-beta.18
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- Updated dependencies [e311194]
|
|
23
|
+
- @ai-sdk/provider@4.0.0-beta.9
|
|
24
|
+
- @ai-sdk/provider-utils@5.0.0-beta.15
|
|
25
|
+
|
|
26
|
+
## 2.0.0-beta.17
|
|
27
|
+
|
|
28
|
+
### Patch Changes
|
|
29
|
+
|
|
30
|
+
- e69a836: feat(open-responses): add option to pass reasoning summary for OpenResponses
|
|
31
|
+
|
|
32
|
+
## 2.0.0-beta.16
|
|
33
|
+
|
|
34
|
+
### Patch Changes
|
|
35
|
+
|
|
36
|
+
- Updated dependencies [34bd95d]
|
|
37
|
+
- Updated dependencies [008271d]
|
|
38
|
+
- @ai-sdk/provider@4.0.0-beta.8
|
|
39
|
+
- @ai-sdk/provider-utils@5.0.0-beta.14
|
|
40
|
+
|
|
41
|
+
## 2.0.0-beta.15
|
|
42
|
+
|
|
43
|
+
### Patch Changes
|
|
44
|
+
|
|
45
|
+
- Updated dependencies [b0c2869]
|
|
46
|
+
- Updated dependencies [7e26e81]
|
|
47
|
+
- @ai-sdk/provider-utils@5.0.0-beta.13
|
|
48
|
+
|
|
49
|
+
## 2.0.0-beta.14
|
|
50
|
+
|
|
51
|
+
### Patch Changes
|
|
52
|
+
|
|
53
|
+
- Updated dependencies [46d1149]
|
|
54
|
+
- @ai-sdk/provider-utils@5.0.0-beta.12
|
|
55
|
+
|
|
56
|
+
## 2.0.0-beta.13
|
|
57
|
+
|
|
58
|
+
### Patch Changes
|
|
59
|
+
|
|
60
|
+
- Updated dependencies [6fd51c0]
|
|
61
|
+
- @ai-sdk/provider-utils@5.0.0-beta.11
|
|
62
|
+
- @ai-sdk/provider@4.0.0-beta.7
|
|
63
|
+
|
|
64
|
+
## 2.0.0-beta.12
|
|
65
|
+
|
|
66
|
+
### Patch Changes
|
|
67
|
+
|
|
68
|
+
- c29a26f: feat(provider): add support for provider references and uploading files as supported per provider
|
|
69
|
+
- Updated dependencies [c29a26f]
|
|
70
|
+
- @ai-sdk/provider-utils@5.0.0-beta.10
|
|
71
|
+
- @ai-sdk/provider@4.0.0-beta.6
|
|
72
|
+
|
|
73
|
+
## 2.0.0-beta.11
|
|
74
|
+
|
|
75
|
+
### Patch Changes
|
|
76
|
+
|
|
77
|
+
- Updated dependencies [2e17091]
|
|
78
|
+
- @ai-sdk/provider-utils@5.0.0-beta.9
|
|
79
|
+
|
|
80
|
+
## 2.0.0-beta.10
|
|
81
|
+
|
|
82
|
+
### Patch Changes
|
|
83
|
+
|
|
84
|
+
- Updated dependencies [986c6fd]
|
|
85
|
+
- Updated dependencies [493295c]
|
|
86
|
+
- @ai-sdk/provider-utils@5.0.0-beta.8
|
|
87
|
+
|
|
88
|
+
## 2.0.0-beta.9
|
|
89
|
+
|
|
90
|
+
### Patch Changes
|
|
91
|
+
|
|
92
|
+
- Updated dependencies [1f509d4]
|
|
93
|
+
- @ai-sdk/provider-utils@5.0.0-beta.7
|
|
94
|
+
- @ai-sdk/provider@4.0.0-beta.5
|
|
95
|
+
|
|
96
|
+
## 2.0.0-beta.8
|
|
97
|
+
|
|
98
|
+
### Patch Changes
|
|
99
|
+
|
|
100
|
+
- 74d520f: feat: migrate providers to support new top-level `reasoning` parameter
|
|
101
|
+
|
|
102
|
+
## 2.0.0-beta.7
|
|
103
|
+
|
|
104
|
+
### Patch Changes
|
|
105
|
+
|
|
106
|
+
- Updated dependencies [3887c70]
|
|
107
|
+
- @ai-sdk/provider-utils@5.0.0-beta.6
|
|
108
|
+
- @ai-sdk/provider@4.0.0-beta.4
|
|
109
|
+
|
|
110
|
+
## 2.0.0-beta.6
|
|
111
|
+
|
|
112
|
+
### Patch Changes
|
|
113
|
+
|
|
114
|
+
- Updated dependencies [776b617]
|
|
115
|
+
- @ai-sdk/provider-utils@5.0.0-beta.5
|
|
116
|
+
- @ai-sdk/provider@4.0.0-beta.3
|
|
117
|
+
|
|
118
|
+
## 2.0.0-beta.5
|
|
119
|
+
|
|
120
|
+
### Patch Changes
|
|
121
|
+
|
|
122
|
+
- Updated dependencies [61753c3]
|
|
123
|
+
- @ai-sdk/provider-utils@5.0.0-beta.4
|
|
124
|
+
|
|
125
|
+
## 2.0.0-beta.4
|
|
126
|
+
|
|
127
|
+
### Patch Changes
|
|
128
|
+
|
|
129
|
+
- Updated dependencies [f7d4f01]
|
|
130
|
+
- @ai-sdk/provider-utils@5.0.0-beta.3
|
|
131
|
+
- @ai-sdk/provider@4.0.0-beta.2
|
|
132
|
+
|
|
133
|
+
## 2.0.0-beta.3
|
|
134
|
+
|
|
135
|
+
### Patch Changes
|
|
136
|
+
|
|
137
|
+
- Updated dependencies [5c2a5a2]
|
|
138
|
+
- @ai-sdk/provider@4.0.0-beta.1
|
|
139
|
+
- @ai-sdk/provider-utils@5.0.0-beta.2
|
|
140
|
+
|
|
3
141
|
## 2.0.0-beta.2
|
|
4
142
|
|
|
5
143
|
### Patch Changes
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ProviderV4, LanguageModelV4 } from '@ai-sdk/provider';
|
|
2
|
-
import
|
|
2
|
+
import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
|
|
3
|
+
import { FetchFunction, InferSchema } from '@ai-sdk/provider-utils';
|
|
3
4
|
|
|
4
5
|
declare const VERSION: string;
|
|
5
6
|
|
|
@@ -31,4 +32,9 @@ interface OpenResponsesProviderSettings {
|
|
|
31
32
|
}
|
|
32
33
|
declare function createOpenResponses(options: OpenResponsesProviderSettings): OpenResponsesProvider;
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
declare const openResponsesOptionsSchema: _ai_sdk_provider_utils.LazySchema<{
|
|
36
|
+
reasoningSummary?: "auto" | "concise" | "detailed" | null | undefined;
|
|
37
|
+
}>;
|
|
38
|
+
type OpenResponsesOptions = InferSchema<typeof openResponsesOptionsSchema>;
|
|
39
|
+
|
|
40
|
+
export { type OpenResponsesOptions, VERSION, createOpenResponses };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ProviderV4, LanguageModelV4 } from '@ai-sdk/provider';
|
|
2
|
-
import
|
|
2
|
+
import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
|
|
3
|
+
import { FetchFunction, InferSchema } from '@ai-sdk/provider-utils';
|
|
3
4
|
|
|
4
5
|
declare const VERSION: string;
|
|
5
6
|
|
|
@@ -31,4 +32,9 @@ interface OpenResponsesProviderSettings {
|
|
|
31
32
|
}
|
|
32
33
|
declare function createOpenResponses(options: OpenResponsesProviderSettings): OpenResponsesProvider;
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
declare const openResponsesOptionsSchema: _ai_sdk_provider_utils.LazySchema<{
|
|
36
|
+
reasoningSummary?: "auto" | "concise" | "detailed" | null | undefined;
|
|
37
|
+
}>;
|
|
38
|
+
type OpenResponsesOptions = InferSchema<typeof openResponsesOptionsSchema>;
|
|
39
|
+
|
|
40
|
+
export { type OpenResponsesOptions, VERSION, createOpenResponses };
|
package/dist/index.js
CHANGED
|
@@ -26,17 +26,18 @@ __export(index_exports, {
|
|
|
26
26
|
module.exports = __toCommonJS(index_exports);
|
|
27
27
|
|
|
28
28
|
// src/version.ts
|
|
29
|
-
var VERSION = true ? "2.0.0-beta.
|
|
29
|
+
var VERSION = true ? "2.0.0-beta.20" : "0.0.0-test";
|
|
30
30
|
|
|
31
31
|
// src/open-responses-provider.ts
|
|
32
|
-
var
|
|
33
|
-
var
|
|
32
|
+
var import_provider2 = require("@ai-sdk/provider");
|
|
33
|
+
var import_provider_utils6 = require("@ai-sdk/provider-utils");
|
|
34
34
|
|
|
35
35
|
// src/responses/open-responses-language-model.ts
|
|
36
|
-
var
|
|
37
|
-
var
|
|
36
|
+
var import_provider_utils5 = require("@ai-sdk/provider-utils");
|
|
37
|
+
var import_v43 = require("zod/v4");
|
|
38
38
|
|
|
39
39
|
// src/responses/convert-to-open-responses-input.ts
|
|
40
|
+
var import_provider = require("@ai-sdk/provider");
|
|
40
41
|
var import_provider_utils = require("@ai-sdk/provider-utils");
|
|
41
42
|
async function convertToOpenResponsesInput({
|
|
42
43
|
prompt
|
|
@@ -60,6 +61,11 @@ async function convertToOpenResponsesInput({
|
|
|
60
61
|
break;
|
|
61
62
|
}
|
|
62
63
|
case "file": {
|
|
64
|
+
if ((0, import_provider_utils.isProviderReference)(part.data)) {
|
|
65
|
+
throw new import_provider.UnsupportedFunctionalityError({
|
|
66
|
+
functionality: "file parts with provider references"
|
|
67
|
+
});
|
|
68
|
+
}
|
|
63
69
|
if (!part.mediaType.startsWith("image/")) {
|
|
64
70
|
warnings.push({
|
|
65
71
|
type: "other",
|
|
@@ -230,6 +236,21 @@ function mapOpenResponsesFinishReason({
|
|
|
230
236
|
}
|
|
231
237
|
}
|
|
232
238
|
|
|
239
|
+
// src/responses/open-responses-options.ts
|
|
240
|
+
var import_provider_utils4 = require("@ai-sdk/provider-utils");
|
|
241
|
+
var import_v42 = require("zod/v4");
|
|
242
|
+
var openResponsesOptionsSchema = (0, import_provider_utils4.lazySchema)(
|
|
243
|
+
() => (0, import_provider_utils4.zodSchema)(
|
|
244
|
+
import_v42.z.object({
|
|
245
|
+
/**
|
|
246
|
+
* Controls reasoning summary output from the model.
|
|
247
|
+
* Valid values: 'concise', 'detailed', 'auto'.
|
|
248
|
+
*/
|
|
249
|
+
reasoningSummary: import_v42.z.enum(["concise", "detailed", "auto"]).nullish()
|
|
250
|
+
})
|
|
251
|
+
)
|
|
252
|
+
);
|
|
253
|
+
|
|
233
254
|
// src/responses/open-responses-language-model.ts
|
|
234
255
|
var OpenResponsesLanguageModel = class {
|
|
235
256
|
constructor(modelId, config) {
|
|
@@ -252,6 +273,7 @@ var OpenResponsesLanguageModel = class {
|
|
|
252
273
|
presencePenalty,
|
|
253
274
|
frequencyPenalty,
|
|
254
275
|
seed,
|
|
276
|
+
reasoning,
|
|
255
277
|
prompt,
|
|
256
278
|
providerOptions,
|
|
257
279
|
tools,
|
|
@@ -294,6 +316,22 @@ var OpenResponsesLanguageModel = class {
|
|
|
294
316
|
strict: true
|
|
295
317
|
} : {}
|
|
296
318
|
} : void 0;
|
|
319
|
+
const openResponsesOptions = await (0, import_provider_utils5.parseProviderOptions)({
|
|
320
|
+
provider: this.config.providerOptionsName,
|
|
321
|
+
providerOptions,
|
|
322
|
+
schema: openResponsesOptionsSchema
|
|
323
|
+
});
|
|
324
|
+
const resolvedReasoningEffort = (0, import_provider_utils5.isCustomReasoning)(reasoning) ? reasoning === "none" ? "none" : (0, import_provider_utils5.mapReasoningToProviderEffort)({
|
|
325
|
+
reasoning,
|
|
326
|
+
effortMap: {
|
|
327
|
+
minimal: "low",
|
|
328
|
+
low: "low",
|
|
329
|
+
medium: "medium",
|
|
330
|
+
high: "high",
|
|
331
|
+
xhigh: "xhigh"
|
|
332
|
+
},
|
|
333
|
+
warnings
|
|
334
|
+
}) : void 0;
|
|
297
335
|
return {
|
|
298
336
|
body: {
|
|
299
337
|
model: this.modelId,
|
|
@@ -304,6 +342,14 @@ var OpenResponsesLanguageModel = class {
|
|
|
304
342
|
top_p: topP,
|
|
305
343
|
presence_penalty: presencePenalty,
|
|
306
344
|
frequency_penalty: frequencyPenalty,
|
|
345
|
+
reasoning: resolvedReasoningEffort != null || (openResponsesOptions == null ? void 0 : openResponsesOptions.reasoningSummary) != null ? {
|
|
346
|
+
...resolvedReasoningEffort != null && {
|
|
347
|
+
effort: resolvedReasoningEffort
|
|
348
|
+
},
|
|
349
|
+
...(openResponsesOptions == null ? void 0 : openResponsesOptions.reasoningSummary) != null && {
|
|
350
|
+
summary: openResponsesOptions.reasoningSummary
|
|
351
|
+
}
|
|
352
|
+
} : void 0,
|
|
307
353
|
tools: (functionTools == null ? void 0 : functionTools.length) ? functionTools : void 0,
|
|
308
354
|
tool_choice: convertedToolChoice,
|
|
309
355
|
...textFormat != null && { text: { format: textFormat } }
|
|
@@ -318,17 +364,17 @@ var OpenResponsesLanguageModel = class {
|
|
|
318
364
|
responseHeaders,
|
|
319
365
|
value: response,
|
|
320
366
|
rawValue: rawResponse
|
|
321
|
-
} = await (0,
|
|
367
|
+
} = await (0, import_provider_utils5.postJsonToApi)({
|
|
322
368
|
url: this.config.url,
|
|
323
|
-
headers: (0,
|
|
369
|
+
headers: (0, import_provider_utils5.combineHeaders)(this.config.headers(), options.headers),
|
|
324
370
|
body,
|
|
325
|
-
failedResponseHandler: (0,
|
|
371
|
+
failedResponseHandler: (0, import_provider_utils5.createJsonErrorResponseHandler)({
|
|
326
372
|
errorSchema: openResponsesErrorSchema,
|
|
327
373
|
errorToMessage: (error) => error.error.message
|
|
328
374
|
}),
|
|
329
|
-
successfulResponseHandler: (0,
|
|
375
|
+
successfulResponseHandler: (0, import_provider_utils5.createJsonResponseHandler)(
|
|
330
376
|
// do not validate the response body, only apply types to the response body
|
|
331
|
-
(0,
|
|
377
|
+
(0, import_provider_utils5.jsonSchema)(() => {
|
|
332
378
|
throw new Error("json schema not implemented");
|
|
333
379
|
})
|
|
334
380
|
),
|
|
@@ -412,19 +458,19 @@ var OpenResponsesLanguageModel = class {
|
|
|
412
458
|
}
|
|
413
459
|
async doStream(options) {
|
|
414
460
|
const { body, warnings } = await this.getArgs(options);
|
|
415
|
-
const { responseHeaders, value: response } = await (0,
|
|
461
|
+
const { responseHeaders, value: response } = await (0, import_provider_utils5.postJsonToApi)({
|
|
416
462
|
url: this.config.url,
|
|
417
|
-
headers: (0,
|
|
463
|
+
headers: (0, import_provider_utils5.combineHeaders)(this.config.headers(), options.headers),
|
|
418
464
|
body: {
|
|
419
465
|
...body,
|
|
420
466
|
stream: true
|
|
421
467
|
},
|
|
422
|
-
failedResponseHandler: (0,
|
|
468
|
+
failedResponseHandler: (0, import_provider_utils5.createJsonErrorResponseHandler)({
|
|
423
469
|
errorSchema: openResponsesErrorSchema,
|
|
424
470
|
errorToMessage: (error) => error.error.message
|
|
425
471
|
}),
|
|
426
472
|
// TODO consider validation
|
|
427
|
-
successfulResponseHandler: (0,
|
|
473
|
+
successfulResponseHandler: (0, import_provider_utils5.createEventSourceResponseHandler)(import_v43.z.any()),
|
|
428
474
|
abortSignal: options.abortSignal,
|
|
429
475
|
fetch: this.config.fetch
|
|
430
476
|
});
|
|
@@ -582,7 +628,7 @@ var OpenResponsesLanguageModel = class {
|
|
|
582
628
|
// src/open-responses-provider.ts
|
|
583
629
|
function createOpenResponses(options) {
|
|
584
630
|
const providerName = options.name;
|
|
585
|
-
const getHeaders = () => (0,
|
|
631
|
+
const getHeaders = () => (0, import_provider_utils6.withUserAgentSuffix)(
|
|
586
632
|
{
|
|
587
633
|
...options.apiKey ? {
|
|
588
634
|
Authorization: `Bearer ${options.apiKey}`
|
|
@@ -594,10 +640,11 @@ function createOpenResponses(options) {
|
|
|
594
640
|
const createResponsesModel = (modelId) => {
|
|
595
641
|
return new OpenResponsesLanguageModel(modelId, {
|
|
596
642
|
provider: `${providerName}.responses`,
|
|
643
|
+
providerOptionsName: providerName,
|
|
597
644
|
headers: getHeaders,
|
|
598
645
|
url: options.url,
|
|
599
646
|
fetch: options.fetch,
|
|
600
|
-
generateId: () => (0,
|
|
647
|
+
generateId: () => (0, import_provider_utils6.generateId)()
|
|
601
648
|
});
|
|
602
649
|
};
|
|
603
650
|
const createLanguageModel = (modelId) => {
|
|
@@ -614,10 +661,10 @@ function createOpenResponses(options) {
|
|
|
614
661
|
provider.specificationVersion = "v4";
|
|
615
662
|
provider.languageModel = createLanguageModel;
|
|
616
663
|
provider.embeddingModel = (modelId) => {
|
|
617
|
-
throw new
|
|
664
|
+
throw new import_provider2.NoSuchModelError({ modelId, modelType: "embeddingModel" });
|
|
618
665
|
};
|
|
619
666
|
provider.imageModel = (modelId) => {
|
|
620
|
-
throw new
|
|
667
|
+
throw new import_provider2.NoSuchModelError({ modelId, modelType: "imageModel" });
|
|
621
668
|
};
|
|
622
669
|
return provider;
|
|
623
670
|
}
|