@ai-sdk/openai 0.0.0-1c33ba03-20260114162300 → 0.0.0-4115c213-20260122152721

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.
Files changed (69) hide show
  1. package/CHANGELOG.md +50 -3
  2. package/dist/index.d.mts +1 -1
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.js +29 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +29 -1
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/internal/index.d.mts +1 -1
  9. package/dist/internal/index.d.ts +1 -1
  10. package/dist/internal/index.js +28 -0
  11. package/dist/internal/index.js.map +1 -1
  12. package/dist/internal/index.mjs +28 -0
  13. package/dist/internal/index.mjs.map +1 -1
  14. package/docs/03-openai.mdx +2018 -0
  15. package/package.json +14 -5
  16. package/src/chat/convert-openai-chat-usage.ts +57 -0
  17. package/src/chat/convert-to-openai-chat-messages.ts +225 -0
  18. package/src/chat/get-response-metadata.ts +15 -0
  19. package/src/chat/map-openai-finish-reason.ts +19 -0
  20. package/src/chat/openai-chat-api.ts +198 -0
  21. package/src/chat/openai-chat-language-model.ts +700 -0
  22. package/src/chat/openai-chat-options.ts +186 -0
  23. package/src/chat/openai-chat-prepare-tools.ts +84 -0
  24. package/src/chat/openai-chat-prompt.ts +70 -0
  25. package/src/completion/convert-openai-completion-usage.ts +46 -0
  26. package/src/completion/convert-to-openai-completion-prompt.ts +93 -0
  27. package/src/completion/get-response-metadata.ts +15 -0
  28. package/src/completion/map-openai-finish-reason.ts +19 -0
  29. package/src/completion/openai-completion-api.ts +81 -0
  30. package/src/completion/openai-completion-language-model.ts +336 -0
  31. package/src/completion/openai-completion-options.ts +58 -0
  32. package/src/embedding/openai-embedding-api.ts +13 -0
  33. package/src/embedding/openai-embedding-model.ts +95 -0
  34. package/src/embedding/openai-embedding-options.ts +30 -0
  35. package/src/image/openai-image-api.ts +35 -0
  36. package/src/image/openai-image-model.ts +305 -0
  37. package/src/image/openai-image-options.ts +28 -0
  38. package/src/index.ts +9 -0
  39. package/src/internal/index.ts +19 -0
  40. package/src/openai-config.ts +18 -0
  41. package/src/openai-error.ts +22 -0
  42. package/src/openai-language-model-capabilities.ts +54 -0
  43. package/src/openai-provider.ts +270 -0
  44. package/src/openai-tools.ts +114 -0
  45. package/src/responses/convert-openai-responses-usage.ts +53 -0
  46. package/src/responses/convert-to-openai-responses-input.ts +597 -0
  47. package/src/responses/map-openai-responses-finish-reason.ts +22 -0
  48. package/src/responses/openai-responses-api.ts +1086 -0
  49. package/src/responses/openai-responses-language-model.ts +1932 -0
  50. package/src/responses/openai-responses-options.ts +312 -0
  51. package/src/responses/openai-responses-prepare-tools.ts +264 -0
  52. package/src/responses/openai-responses-provider-metadata.ts +39 -0
  53. package/src/speech/openai-speech-api.ts +38 -0
  54. package/src/speech/openai-speech-model.ts +137 -0
  55. package/src/speech/openai-speech-options.ts +22 -0
  56. package/src/tool/apply-patch.ts +141 -0
  57. package/src/tool/code-interpreter.ts +104 -0
  58. package/src/tool/file-search.ts +145 -0
  59. package/src/tool/image-generation.ts +126 -0
  60. package/src/tool/local-shell.ts +72 -0
  61. package/src/tool/mcp.ts +125 -0
  62. package/src/tool/shell.ts +85 -0
  63. package/src/tool/web-search-preview.ts +139 -0
  64. package/src/tool/web-search.ts +179 -0
  65. package/src/transcription/openai-transcription-api.ts +37 -0
  66. package/src/transcription/openai-transcription-model.ts +232 -0
  67. package/src/transcription/openai-transcription-options.ts +50 -0
  68. package/src/transcription/transcription-test.mp3 +0 -0
  69. package/src/version.ts +6 -0
package/CHANGELOG.md CHANGED
@@ -1,11 +1,58 @@
1
1
  # @ai-sdk/openai
2
2
 
3
- ## 0.0.0-1c33ba03-20260114162300
3
+ ## 0.0.0-4115c213-20260122152721
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - Updated dependencies [261c011]
8
- - @ai-sdk/provider-utils@0.0.0-1c33ba03-20260114162300
7
+ - 4caafb2: chore: excluded tests from src folder in npm package
8
+ - Updated dependencies [4caafb2]
9
+ - @ai-sdk/provider@0.0.0-4115c213-20260122152721
10
+ - @ai-sdk/provider-utils@0.0.0-4115c213-20260122152721
11
+
12
+ ## 3.0.17
13
+
14
+ ### Patch Changes
15
+
16
+ - 4218f86: fix(openai): preserve tool id for apply patch tool
17
+
18
+ ## 3.0.16
19
+
20
+ ### Patch Changes
21
+
22
+ - 2b8369d: chore: add docs to package dist
23
+
24
+ ## 3.0.15
25
+
26
+ ### Patch Changes
27
+
28
+ - 8dc54db: chore: add src folders to package bundle
29
+
30
+ ## 3.0.14
31
+
32
+ ### Patch Changes
33
+
34
+ - d21d016: feat(openai): add o4-mini model to OpenAIChatModelId type
35
+
36
+ ## 3.0.13
37
+
38
+ ### Patch Changes
39
+
40
+ - 000fa96: fix(openai): filter duplicate items when passing conversationID
41
+
42
+ ## 3.0.12
43
+
44
+ ### Patch Changes
45
+
46
+ - Updated dependencies [5c090e7]
47
+ - @ai-sdk/provider@3.0.4
48
+ - @ai-sdk/provider-utils@4.0.8
49
+
50
+ ## 3.0.11
51
+
52
+ ### Patch Changes
53
+
54
+ - Updated dependencies [46f46e4]
55
+ - @ai-sdk/provider-utils@4.0.7
9
56
 
10
57
  ## 3.0.10
11
58
 
package/dist/index.d.mts CHANGED
@@ -3,7 +3,7 @@ import { ProviderV3, LanguageModelV3, EmbeddingModelV3, ImageModelV3, Transcript
3
3
  import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
4
4
  import { InferSchema, FetchFunction } from '@ai-sdk/provider-utils';
5
5
 
6
- type OpenAIChatModelId = 'o1' | 'o1-2024-12-17' | 'o3-mini' | 'o3-mini-2025-01-31' | 'o3' | 'o3-2025-04-16' | 'gpt-4.1' | 'gpt-4.1-2025-04-14' | 'gpt-4.1-mini' | 'gpt-4.1-mini-2025-04-14' | 'gpt-4.1-nano' | 'gpt-4.1-nano-2025-04-14' | 'gpt-4o' | 'gpt-4o-2024-05-13' | 'gpt-4o-2024-08-06' | 'gpt-4o-2024-11-20' | 'gpt-4o-mini' | 'gpt-4o-mini-2024-07-18' | 'gpt-4-turbo' | 'gpt-4-turbo-2024-04-09' | 'gpt-4' | 'gpt-4-0613' | 'gpt-4.5-preview' | 'gpt-4.5-preview-2025-02-27' | 'gpt-3.5-turbo-0125' | 'gpt-3.5-turbo' | 'gpt-3.5-turbo-1106' | 'chatgpt-4o-latest' | 'gpt-5' | 'gpt-5-2025-08-07' | 'gpt-5-mini' | 'gpt-5-mini-2025-08-07' | 'gpt-5-nano' | 'gpt-5-nano-2025-08-07' | 'gpt-5-chat-latest' | 'gpt-5.1' | 'gpt-5.1-chat-latest' | 'gpt-5.2' | 'gpt-5.2-chat-latest' | 'gpt-5.2-pro' | (string & {});
6
+ type OpenAIChatModelId = 'o1' | 'o1-2024-12-17' | 'o3-mini' | 'o3-mini-2025-01-31' | 'o3' | 'o3-2025-04-16' | 'o4-mini' | 'o4-mini-2025-04-16' | 'gpt-4.1' | 'gpt-4.1-2025-04-14' | 'gpt-4.1-mini' | 'gpt-4.1-mini-2025-04-14' | 'gpt-4.1-nano' | 'gpt-4.1-nano-2025-04-14' | 'gpt-4o' | 'gpt-4o-2024-05-13' | 'gpt-4o-2024-08-06' | 'gpt-4o-2024-11-20' | 'gpt-4o-mini' | 'gpt-4o-mini-2024-07-18' | 'gpt-4-turbo' | 'gpt-4-turbo-2024-04-09' | 'gpt-4' | 'gpt-4-0613' | 'gpt-4.5-preview' | 'gpt-4.5-preview-2025-02-27' | 'gpt-3.5-turbo-0125' | 'gpt-3.5-turbo' | 'gpt-3.5-turbo-1106' | 'chatgpt-4o-latest' | 'gpt-5' | 'gpt-5-2025-08-07' | 'gpt-5-mini' | 'gpt-5-mini-2025-08-07' | 'gpt-5-nano' | 'gpt-5-nano-2025-08-07' | 'gpt-5-chat-latest' | 'gpt-5.1' | 'gpt-5.1-chat-latest' | 'gpt-5.2' | 'gpt-5.2-chat-latest' | 'gpt-5.2-pro' | (string & {});
7
7
  declare const openaiChatLanguageModelOptions: _ai_sdk_provider_utils.LazySchema<{
8
8
  logitBias?: Record<number, number> | undefined;
9
9
  logprobs?: number | boolean | undefined;
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import { ProviderV3, LanguageModelV3, EmbeddingModelV3, ImageModelV3, Transcript
3
3
  import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
4
4
  import { InferSchema, FetchFunction } from '@ai-sdk/provider-utils';
5
5
 
6
- type OpenAIChatModelId = 'o1' | 'o1-2024-12-17' | 'o3-mini' | 'o3-mini-2025-01-31' | 'o3' | 'o3-2025-04-16' | 'gpt-4.1' | 'gpt-4.1-2025-04-14' | 'gpt-4.1-mini' | 'gpt-4.1-mini-2025-04-14' | 'gpt-4.1-nano' | 'gpt-4.1-nano-2025-04-14' | 'gpt-4o' | 'gpt-4o-2024-05-13' | 'gpt-4o-2024-08-06' | 'gpt-4o-2024-11-20' | 'gpt-4o-mini' | 'gpt-4o-mini-2024-07-18' | 'gpt-4-turbo' | 'gpt-4-turbo-2024-04-09' | 'gpt-4' | 'gpt-4-0613' | 'gpt-4.5-preview' | 'gpt-4.5-preview-2025-02-27' | 'gpt-3.5-turbo-0125' | 'gpt-3.5-turbo' | 'gpt-3.5-turbo-1106' | 'chatgpt-4o-latest' | 'gpt-5' | 'gpt-5-2025-08-07' | 'gpt-5-mini' | 'gpt-5-mini-2025-08-07' | 'gpt-5-nano' | 'gpt-5-nano-2025-08-07' | 'gpt-5-chat-latest' | 'gpt-5.1' | 'gpt-5.1-chat-latest' | 'gpt-5.2' | 'gpt-5.2-chat-latest' | 'gpt-5.2-pro' | (string & {});
6
+ type OpenAIChatModelId = 'o1' | 'o1-2024-12-17' | 'o3-mini' | 'o3-mini-2025-01-31' | 'o3' | 'o3-2025-04-16' | 'o4-mini' | 'o4-mini-2025-04-16' | 'gpt-4.1' | 'gpt-4.1-2025-04-14' | 'gpt-4.1-mini' | 'gpt-4.1-mini-2025-04-14' | 'gpt-4.1-nano' | 'gpt-4.1-nano-2025-04-14' | 'gpt-4o' | 'gpt-4o-2024-05-13' | 'gpt-4o-2024-08-06' | 'gpt-4o-2024-11-20' | 'gpt-4o-mini' | 'gpt-4o-mini-2024-07-18' | 'gpt-4-turbo' | 'gpt-4-turbo-2024-04-09' | 'gpt-4' | 'gpt-4-0613' | 'gpt-4.5-preview' | 'gpt-4.5-preview-2025-02-27' | 'gpt-3.5-turbo-0125' | 'gpt-3.5-turbo' | 'gpt-3.5-turbo-1106' | 'chatgpt-4o-latest' | 'gpt-5' | 'gpt-5-2025-08-07' | 'gpt-5-mini' | 'gpt-5-mini-2025-08-07' | 'gpt-5-nano' | 'gpt-5-nano-2025-08-07' | 'gpt-5-chat-latest' | 'gpt-5.1' | 'gpt-5.1-chat-latest' | 'gpt-5.2' | 'gpt-5.2-chat-latest' | 'gpt-5.2-pro' | (string & {});
7
7
  declare const openaiChatLanguageModelOptions: _ai_sdk_provider_utils.LazySchema<{
8
8
  logitBias?: Record<number, number> | undefined;
9
9
  logprobs?: number | boolean | undefined;
package/dist/index.js CHANGED
@@ -2480,6 +2480,7 @@ async function convertToOpenAIResponsesInput({
2480
2480
  providerOptionsName,
2481
2481
  fileIdPrefixes,
2482
2482
  store,
2483
+ hasConversation = false,
2483
2484
  hasLocalShellTool = false,
2484
2485
  hasShellTool = false,
2485
2486
  hasApplyPatchTool = false
@@ -2566,6 +2567,9 @@ async function convertToOpenAIResponsesInput({
2566
2567
  switch (part.type) {
2567
2568
  case "text": {
2568
2569
  const id = (_b = (_a = part.providerOptions) == null ? void 0 : _a[providerOptionsName]) == null ? void 0 : _b.itemId;
2570
+ if (hasConversation && id != null) {
2571
+ break;
2572
+ }
2569
2573
  if (store && id != null) {
2570
2574
  input.push({ type: "item_reference", id });
2571
2575
  break;
@@ -2579,6 +2583,9 @@ async function convertToOpenAIResponsesInput({
2579
2583
  }
2580
2584
  case "tool-call": {
2581
2585
  const id = (_g = (_d = (_c = part.providerOptions) == null ? void 0 : _c[providerOptionsName]) == null ? void 0 : _d.itemId) != null ? _g : (_f = (_e = part.providerMetadata) == null ? void 0 : _e[providerOptionsName]) == null ? void 0 : _f.itemId;
2586
+ if (hasConversation && id != null) {
2587
+ break;
2588
+ }
2582
2589
  if (part.providerExecuted) {
2583
2590
  if (store && id != null) {
2584
2591
  input.push({ type: "item_reference", id });
@@ -2630,6 +2637,20 @@ async function convertToOpenAIResponsesInput({
2630
2637
  });
2631
2638
  break;
2632
2639
  }
2640
+ if (hasApplyPatchTool && resolvedToolName === "apply_patch") {
2641
+ const parsedInput = await (0, import_provider_utils23.validateTypes)({
2642
+ value: part.input,
2643
+ schema: applyPatchInputSchema
2644
+ });
2645
+ input.push({
2646
+ type: "apply_patch_call",
2647
+ call_id: parsedInput.callId,
2648
+ id,
2649
+ status: "completed",
2650
+ operation: parsedInput.operation
2651
+ });
2652
+ break;
2653
+ }
2633
2654
  input.push({
2634
2655
  type: "function_call",
2635
2656
  call_id: part.toolCallId,
@@ -2644,6 +2665,9 @@ async function convertToOpenAIResponsesInput({
2644
2665
  if (part.output.type === "execution-denied" || part.output.type === "json" && typeof part.output.value === "object" && part.output.value != null && "type" in part.output.value && part.output.value.type === "execution-denied") {
2645
2666
  break;
2646
2667
  }
2668
+ if (hasConversation) {
2669
+ break;
2670
+ }
2647
2671
  if (store) {
2648
2672
  const itemId = (_j = (_i = (_h = part.providerMetadata) == null ? void 0 : _h[providerOptionsName]) == null ? void 0 : _i.itemId) != null ? _j : part.toolCallId;
2649
2673
  input.push({ type: "item_reference", id: itemId });
@@ -2662,6 +2686,9 @@ async function convertToOpenAIResponsesInput({
2662
2686
  schema: openaiResponsesReasoningProviderOptionsSchema
2663
2687
  });
2664
2688
  const reasoningId = providerOptions == null ? void 0 : providerOptions.itemId;
2689
+ if (hasConversation && reasoningId != null) {
2690
+ break;
2691
+ }
2665
2692
  if (reasoningId != null) {
2666
2693
  const reasoningMessage = reasoningMessages[reasoningId];
2667
2694
  if (store) {
@@ -4070,6 +4097,7 @@ var OpenAIResponsesLanguageModel = class {
4070
4097
  providerOptionsName,
4071
4098
  fileIdPrefixes: this.config.fileIdPrefixes,
4072
4099
  store: (_c = openaiOptions == null ? void 0 : openaiOptions.store) != null ? _c : true,
4100
+ hasConversation: (openaiOptions == null ? void 0 : openaiOptions.conversation) != null,
4073
4101
  hasLocalShellTool: hasOpenAITool("openai.local_shell"),
4074
4102
  hasShellTool: hasOpenAITool("openai.shell"),
4075
4103
  hasApplyPatchTool: hasOpenAITool("openai.apply_patch")
@@ -5760,7 +5788,7 @@ var OpenAITranscriptionModel = class {
5760
5788
  };
5761
5789
 
5762
5790
  // src/version.ts
5763
- var VERSION = true ? "0.0.0-1c33ba03-20260114162300" : "0.0.0-test";
5791
+ var VERSION = true ? "0.0.0-4115c213-20260122152721" : "0.0.0-test";
5764
5792
 
5765
5793
  // src/openai-provider.ts
5766
5794
  function createOpenAI(options = {}) {