@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
@@ -2,7 +2,7 @@ import { LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3GenerateRes
2
2
  import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
3
3
  import { InferSchema, FetchFunction } from '@ai-sdk/provider-utils';
4
4
 
5
- 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 & {});
5
+ 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 & {});
6
6
  declare const openaiChatLanguageModelOptions: _ai_sdk_provider_utils.LazySchema<{
7
7
  logitBias?: Record<number, number> | undefined;
8
8
  logprobs?: number | boolean | undefined;
@@ -2,7 +2,7 @@ import { LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3GenerateRes
2
2
  import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
3
3
  import { InferSchema, FetchFunction } from '@ai-sdk/provider-utils';
4
4
 
5
- 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 & {});
5
+ 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 & {});
6
6
  declare const openaiChatLanguageModelOptions: _ai_sdk_provider_utils.LazySchema<{
7
7
  logitBias?: Record<number, number> | undefined;
8
8
  logprobs?: number | boolean | undefined;
@@ -2471,6 +2471,7 @@ async function convertToOpenAIResponsesInput({
2471
2471
  providerOptionsName,
2472
2472
  fileIdPrefixes,
2473
2473
  store,
2474
+ hasConversation = false,
2474
2475
  hasLocalShellTool = false,
2475
2476
  hasShellTool = false,
2476
2477
  hasApplyPatchTool = false
@@ -2557,6 +2558,9 @@ async function convertToOpenAIResponsesInput({
2557
2558
  switch (part.type) {
2558
2559
  case "text": {
2559
2560
  const id = (_b = (_a = part.providerOptions) == null ? void 0 : _a[providerOptionsName]) == null ? void 0 : _b.itemId;
2561
+ if (hasConversation && id != null) {
2562
+ break;
2563
+ }
2560
2564
  if (store && id != null) {
2561
2565
  input.push({ type: "item_reference", id });
2562
2566
  break;
@@ -2570,6 +2574,9 @@ async function convertToOpenAIResponsesInput({
2570
2574
  }
2571
2575
  case "tool-call": {
2572
2576
  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;
2577
+ if (hasConversation && id != null) {
2578
+ break;
2579
+ }
2573
2580
  if (part.providerExecuted) {
2574
2581
  if (store && id != null) {
2575
2582
  input.push({ type: "item_reference", id });
@@ -2621,6 +2628,20 @@ async function convertToOpenAIResponsesInput({
2621
2628
  });
2622
2629
  break;
2623
2630
  }
2631
+ if (hasApplyPatchTool && resolvedToolName === "apply_patch") {
2632
+ const parsedInput = await (0, import_provider_utils22.validateTypes)({
2633
+ value: part.input,
2634
+ schema: applyPatchInputSchema
2635
+ });
2636
+ input.push({
2637
+ type: "apply_patch_call",
2638
+ call_id: parsedInput.callId,
2639
+ id,
2640
+ status: "completed",
2641
+ operation: parsedInput.operation
2642
+ });
2643
+ break;
2644
+ }
2624
2645
  input.push({
2625
2646
  type: "function_call",
2626
2647
  call_id: part.toolCallId,
@@ -2635,6 +2656,9 @@ async function convertToOpenAIResponsesInput({
2635
2656
  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") {
2636
2657
  break;
2637
2658
  }
2659
+ if (hasConversation) {
2660
+ break;
2661
+ }
2638
2662
  if (store) {
2639
2663
  const itemId = (_j = (_i = (_h = part.providerMetadata) == null ? void 0 : _h[providerOptionsName]) == null ? void 0 : _i.itemId) != null ? _j : part.toolCallId;
2640
2664
  input.push({ type: "item_reference", id: itemId });
@@ -2653,6 +2677,9 @@ async function convertToOpenAIResponsesInput({
2653
2677
  schema: openaiResponsesReasoningProviderOptionsSchema
2654
2678
  });
2655
2679
  const reasoningId = providerOptions == null ? void 0 : providerOptions.itemId;
2680
+ if (hasConversation && reasoningId != null) {
2681
+ break;
2682
+ }
2656
2683
  if (reasoningId != null) {
2657
2684
  const reasoningMessage = reasoningMessages[reasoningId];
2658
2685
  if (store) {
@@ -4353,6 +4380,7 @@ var OpenAIResponsesLanguageModel = class {
4353
4380
  providerOptionsName,
4354
4381
  fileIdPrefixes: this.config.fileIdPrefixes,
4355
4382
  store: (_c = openaiOptions == null ? void 0 : openaiOptions.store) != null ? _c : true,
4383
+ hasConversation: (openaiOptions == null ? void 0 : openaiOptions.conversation) != null,
4356
4384
  hasLocalShellTool: hasOpenAITool("openai.local_shell"),
4357
4385
  hasShellTool: hasOpenAITool("openai.shell"),
4358
4386
  hasApplyPatchTool: hasOpenAITool("openai.apply_patch")