@ai-sdk/openai 1.2.2 → 1.2.4

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.
@@ -70,6 +70,8 @@ interface OpenAIChatSettings {
70
70
  Enable this if the model that you are using does not support streaming.
71
71
 
72
72
  Defaults to `false`.
73
+
74
+ @deprecated Use `simulateStreamingMiddleware` instead.
73
75
  */
74
76
  simulateStreaming?: boolean;
75
77
  /**
@@ -70,6 +70,8 @@ interface OpenAIChatSettings {
70
70
  Enable this if the model that you are using does not support streaming.
71
71
 
72
72
  Defaults to `false`.
73
+
74
+ @deprecated Use `simulateStreamingMiddleware` instead.
73
75
  */
74
76
  simulateStreaming?: boolean;
75
77
  /**
@@ -1602,6 +1602,7 @@ var openaiImageResponseSchema = import_zod5.z.object({
1602
1602
  });
1603
1603
 
1604
1604
  // src/responses/openai-responses-language-model.ts
1605
+ var import_provider9 = require("@ai-sdk/provider");
1605
1606
  var import_provider_utils8 = require("@ai-sdk/provider-utils");
1606
1607
  var import_zod6 = require("zod");
1607
1608
 
@@ -1825,7 +1826,7 @@ var OpenAIResponsesLanguageModel = class {
1825
1826
  providerMetadata,
1826
1827
  responseFormat
1827
1828
  }) {
1828
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
1829
+ var _a, _b, _c, _d;
1829
1830
  const warnings = [];
1830
1831
  const modelConfig = getResponsesModelConfig(this.modelId);
1831
1832
  const type = mode.type;
@@ -1864,7 +1865,19 @@ var OpenAIResponsesLanguageModel = class {
1864
1865
  systemMessageMode: modelConfig.systemMessageMode
1865
1866
  });
1866
1867
  warnings.push(...messageWarnings);
1867
- const isStrictJsonSchema = (_b = (_a = providerMetadata == null ? void 0 : providerMetadata.openai) == null ? void 0 : _a.strictJsonSchema) != null ? _b : true;
1868
+ const parsedProviderOptions = providerMetadata != null ? (0, import_provider_utils8.safeValidateTypes)({
1869
+ value: providerMetadata,
1870
+ schema: providerOptionsSchema
1871
+ }) : { success: true, value: void 0 };
1872
+ if (!parsedProviderOptions.success) {
1873
+ throw new import_provider9.InvalidArgumentError({
1874
+ argument: "providerOptions",
1875
+ message: "invalid provider options",
1876
+ cause: parsedProviderOptions.error
1877
+ });
1878
+ }
1879
+ const openaiOptions = (_a = parsedProviderOptions.value) == null ? void 0 : _a.openai;
1880
+ const isStrict = (_b = openaiOptions == null ? void 0 : openaiOptions.strictSchemas) != null ? _b : true;
1868
1881
  const baseArgs = {
1869
1882
  model: this.modelId,
1870
1883
  input: messages,
@@ -1875,7 +1888,7 @@ var OpenAIResponsesLanguageModel = class {
1875
1888
  text: {
1876
1889
  format: responseFormat.schema != null ? {
1877
1890
  type: "json_schema",
1878
- strict: isStrictJsonSchema,
1891
+ strict: isStrict,
1879
1892
  name: (_c = responseFormat.name) != null ? _c : "response",
1880
1893
  description: responseFormat.description,
1881
1894
  schema: responseFormat.schema
@@ -1883,14 +1896,14 @@ var OpenAIResponsesLanguageModel = class {
1883
1896
  }
1884
1897
  },
1885
1898
  // provider options:
1886
- metadata: (_d = providerMetadata == null ? void 0 : providerMetadata.openai) == null ? void 0 : _d.metadata,
1887
- parallel_tool_calls: (_e = providerMetadata == null ? void 0 : providerMetadata.openai) == null ? void 0 : _e.parallelToolCalls,
1888
- previous_response_id: (_f = providerMetadata == null ? void 0 : providerMetadata.openai) == null ? void 0 : _f.previousResponseId,
1889
- store: (_g = providerMetadata == null ? void 0 : providerMetadata.openai) == null ? void 0 : _g.store,
1890
- user: (_h = providerMetadata == null ? void 0 : providerMetadata.openai) == null ? void 0 : _h.user,
1899
+ metadata: openaiOptions == null ? void 0 : openaiOptions.metadata,
1900
+ parallel_tool_calls: openaiOptions == null ? void 0 : openaiOptions.parallelToolCalls,
1901
+ previous_response_id: openaiOptions == null ? void 0 : openaiOptions.previousResponseId,
1902
+ store: openaiOptions == null ? void 0 : openaiOptions.store,
1903
+ user: openaiOptions == null ? void 0 : openaiOptions.user,
1891
1904
  // model-specific settings:
1892
- ...modelConfig.isReasoningModel && ((_i = providerMetadata == null ? void 0 : providerMetadata.openai) == null ? void 0 : _i.reasoningEffort) != null && {
1893
- reasoning: { effort: (_j = providerMetadata == null ? void 0 : providerMetadata.openai) == null ? void 0 : _j.reasoningEffort }
1905
+ ...modelConfig.isReasoningModel && (openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) != null && {
1906
+ reasoning: { effort: openaiOptions == null ? void 0 : openaiOptions.reasoningEffort }
1894
1907
  },
1895
1908
  ...modelConfig.requiredAutoTruncation && {
1896
1909
  truncation: "auto"
@@ -1918,7 +1931,8 @@ var OpenAIResponsesLanguageModel = class {
1918
1931
  case "regular": {
1919
1932
  const { tools, tool_choice, toolWarnings } = prepareResponsesTools({
1920
1933
  mode,
1921
- strict: true
1934
+ strict: isStrict
1935
+ // TODO support provider options on tools
1922
1936
  });
1923
1937
  return {
1924
1938
  args: {
@@ -1936,8 +1950,8 @@ var OpenAIResponsesLanguageModel = class {
1936
1950
  text: {
1937
1951
  format: mode.schema != null ? {
1938
1952
  type: "json_schema",
1939
- strict: isStrictJsonSchema,
1940
- name: (_k = mode.name) != null ? _k : "response",
1953
+ strict: isStrict,
1954
+ name: (_d = mode.name) != null ? _d : "response",
1941
1955
  description: mode.description,
1942
1956
  schema: mode.schema
1943
1957
  } : { type: "json_object" }
@@ -1957,7 +1971,7 @@ var OpenAIResponsesLanguageModel = class {
1957
1971
  name: mode.tool.name,
1958
1972
  description: mode.tool.description,
1959
1973
  parameters: mode.tool.parameters,
1960
- strict: isStrictJsonSchema
1974
+ strict: isStrict
1961
1975
  }
1962
1976
  ]
1963
1977
  },
@@ -2330,6 +2344,17 @@ function isResponseOutputItemAddedChunk(chunk) {
2330
2344
  function isResponseAnnotationAddedChunk(chunk) {
2331
2345
  return chunk.type === "response.output_text.annotation.added";
2332
2346
  }
2347
+ var providerOptionsSchema = import_zod6.z.object({
2348
+ openai: import_zod6.z.object({
2349
+ metadata: import_zod6.z.any().nullish(),
2350
+ parallelToolCalls: import_zod6.z.boolean().nullish(),
2351
+ previousResponseId: import_zod6.z.string().nullish(),
2352
+ store: import_zod6.z.boolean().nullish(),
2353
+ user: import_zod6.z.string().nullish(),
2354
+ reasoningEffort: import_zod6.z.string().nullish(),
2355
+ strictSchemas: import_zod6.z.boolean().nullish()
2356
+ }).nullish()
2357
+ });
2333
2358
  function getResponsesModelConfig(modelId) {
2334
2359
  if (modelId.startsWith("o")) {
2335
2360
  if (modelId.startsWith("o1-mini") || modelId.startsWith("o1-preview")) {