@ai-sdk/open-responses 2.0.0-beta.2 → 2.0.0-beta.21

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,151 @@
1
1
  # @ai-sdk/open-responses
2
2
 
3
+ ## 2.0.0-beta.21
4
+
5
+ ### Patch Changes
6
+
7
+ - 90e2d8a: chore: fix unused vars not being flagged by our lint tooling
8
+ - Updated dependencies [90e2d8a]
9
+ - @ai-sdk/provider-utils@5.0.0-beta.18
10
+
11
+ ## 2.0.0-beta.20
12
+
13
+ ### Patch Changes
14
+
15
+ - Updated dependencies [3ae1786]
16
+ - @ai-sdk/provider-utils@5.0.0-beta.17
17
+
18
+ ## 2.0.0-beta.19
19
+
20
+ ### Patch Changes
21
+
22
+ - Updated dependencies [176466a]
23
+ - @ai-sdk/provider@4.0.0-beta.10
24
+ - @ai-sdk/provider-utils@5.0.0-beta.16
25
+
26
+ ## 2.0.0-beta.18
27
+
28
+ ### Patch Changes
29
+
30
+ - Updated dependencies [e311194]
31
+ - @ai-sdk/provider@4.0.0-beta.9
32
+ - @ai-sdk/provider-utils@5.0.0-beta.15
33
+
34
+ ## 2.0.0-beta.17
35
+
36
+ ### Patch Changes
37
+
38
+ - e69a836: feat(open-responses): add option to pass reasoning summary for OpenResponses
39
+
40
+ ## 2.0.0-beta.16
41
+
42
+ ### Patch Changes
43
+
44
+ - Updated dependencies [34bd95d]
45
+ - Updated dependencies [008271d]
46
+ - @ai-sdk/provider@4.0.0-beta.8
47
+ - @ai-sdk/provider-utils@5.0.0-beta.14
48
+
49
+ ## 2.0.0-beta.15
50
+
51
+ ### Patch Changes
52
+
53
+ - Updated dependencies [b0c2869]
54
+ - Updated dependencies [7e26e81]
55
+ - @ai-sdk/provider-utils@5.0.0-beta.13
56
+
57
+ ## 2.0.0-beta.14
58
+
59
+ ### Patch Changes
60
+
61
+ - Updated dependencies [46d1149]
62
+ - @ai-sdk/provider-utils@5.0.0-beta.12
63
+
64
+ ## 2.0.0-beta.13
65
+
66
+ ### Patch Changes
67
+
68
+ - Updated dependencies [6fd51c0]
69
+ - @ai-sdk/provider-utils@5.0.0-beta.11
70
+ - @ai-sdk/provider@4.0.0-beta.7
71
+
72
+ ## 2.0.0-beta.12
73
+
74
+ ### Patch Changes
75
+
76
+ - c29a26f: feat(provider): add support for provider references and uploading files as supported per provider
77
+ - Updated dependencies [c29a26f]
78
+ - @ai-sdk/provider-utils@5.0.0-beta.10
79
+ - @ai-sdk/provider@4.0.0-beta.6
80
+
81
+ ## 2.0.0-beta.11
82
+
83
+ ### Patch Changes
84
+
85
+ - Updated dependencies [2e17091]
86
+ - @ai-sdk/provider-utils@5.0.0-beta.9
87
+
88
+ ## 2.0.0-beta.10
89
+
90
+ ### Patch Changes
91
+
92
+ - Updated dependencies [986c6fd]
93
+ - Updated dependencies [493295c]
94
+ - @ai-sdk/provider-utils@5.0.0-beta.8
95
+
96
+ ## 2.0.0-beta.9
97
+
98
+ ### Patch Changes
99
+
100
+ - Updated dependencies [1f509d4]
101
+ - @ai-sdk/provider-utils@5.0.0-beta.7
102
+ - @ai-sdk/provider@4.0.0-beta.5
103
+
104
+ ## 2.0.0-beta.8
105
+
106
+ ### Patch Changes
107
+
108
+ - 74d520f: feat: migrate providers to support new top-level `reasoning` parameter
109
+
110
+ ## 2.0.0-beta.7
111
+
112
+ ### Patch Changes
113
+
114
+ - Updated dependencies [3887c70]
115
+ - @ai-sdk/provider-utils@5.0.0-beta.6
116
+ - @ai-sdk/provider@4.0.0-beta.4
117
+
118
+ ## 2.0.0-beta.6
119
+
120
+ ### Patch Changes
121
+
122
+ - Updated dependencies [776b617]
123
+ - @ai-sdk/provider-utils@5.0.0-beta.5
124
+ - @ai-sdk/provider@4.0.0-beta.3
125
+
126
+ ## 2.0.0-beta.5
127
+
128
+ ### Patch Changes
129
+
130
+ - Updated dependencies [61753c3]
131
+ - @ai-sdk/provider-utils@5.0.0-beta.4
132
+
133
+ ## 2.0.0-beta.4
134
+
135
+ ### Patch Changes
136
+
137
+ - Updated dependencies [f7d4f01]
138
+ - @ai-sdk/provider-utils@5.0.0-beta.3
139
+ - @ai-sdk/provider@4.0.0-beta.2
140
+
141
+ ## 2.0.0-beta.3
142
+
143
+ ### Patch Changes
144
+
145
+ - Updated dependencies [5c2a5a2]
146
+ - @ai-sdk/provider@4.0.0-beta.1
147
+ - @ai-sdk/provider-utils@5.0.0-beta.2
148
+
3
149
  ## 2.0.0-beta.2
4
150
 
5
151
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { ProviderV4, LanguageModelV4 } from '@ai-sdk/provider';
2
- import { FetchFunction } from '@ai-sdk/provider-utils';
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
- export { VERSION, createOpenResponses };
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 { FetchFunction } from '@ai-sdk/provider-utils';
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
- export { VERSION, createOpenResponses };
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.2" : "0.0.0-test";
29
+ var VERSION = true ? "2.0.0-beta.21" : "0.0.0-test";
30
30
 
31
31
  // src/open-responses-provider.ts
32
- var import_provider = require("@ai-sdk/provider");
33
- var import_provider_utils5 = require("@ai-sdk/provider-utils");
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 import_provider_utils4 = require("@ai-sdk/provider-utils");
37
- var import_v42 = require("zod/v4");
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, import_provider_utils4.postJsonToApi)({
367
+ } = await (0, import_provider_utils5.postJsonToApi)({
322
368
  url: this.config.url,
323
- headers: (0, import_provider_utils4.combineHeaders)(this.config.headers(), options.headers),
369
+ headers: (0, import_provider_utils5.combineHeaders)(this.config.headers(), options.headers),
324
370
  body,
325
- failedResponseHandler: (0, import_provider_utils4.createJsonErrorResponseHandler)({
371
+ failedResponseHandler: (0, import_provider_utils5.createJsonErrorResponseHandler)({
326
372
  errorSchema: openResponsesErrorSchema,
327
373
  errorToMessage: (error) => error.error.message
328
374
  }),
329
- successfulResponseHandler: (0, import_provider_utils4.createJsonResponseHandler)(
375
+ successfulResponseHandler: (0, import_provider_utils5.createJsonResponseHandler)(
330
376
  // do not validate the response body, only apply types to the response body
331
- (0, import_provider_utils4.jsonSchema)(() => {
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, import_provider_utils4.postJsonToApi)({
461
+ const { responseHeaders, value: response } = await (0, import_provider_utils5.postJsonToApi)({
416
462
  url: this.config.url,
417
- headers: (0, import_provider_utils4.combineHeaders)(this.config.headers(), options.headers),
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, import_provider_utils4.createJsonErrorResponseHandler)({
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, import_provider_utils4.createEventSourceResponseHandler)(import_v42.z.any()),
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, import_provider_utils5.withUserAgentSuffix)(
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, import_provider_utils5.generateId)()
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 import_provider.NoSuchModelError({ modelId, modelType: "embeddingModel" });
664
+ throw new import_provider2.NoSuchModelError({ modelId, modelType: "embeddingModel" });
618
665
  };
619
666
  provider.imageModel = (modelId) => {
620
- throw new import_provider.NoSuchModelError({ modelId, modelType: "imageModel" });
667
+ throw new import_provider2.NoSuchModelError({ modelId, modelType: "imageModel" });
621
668
  };
622
669
  return provider;
623
670
  }