@ai-sdk/openai 4.0.0-beta.5 → 4.0.0-beta.7

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 (33) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/index.d.mts +15 -15
  3. package/dist/index.d.ts +15 -15
  4. package/dist/index.js +12 -12
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +9 -9
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/internal/index.d.mts +26 -26
  9. package/dist/internal/index.d.ts +26 -26
  10. package/dist/internal/index.js +10 -10
  11. package/dist/internal/index.js.map +1 -1
  12. package/dist/internal/index.mjs +7 -7
  13. package/dist/internal/index.mjs.map +1 -1
  14. package/package.json +3 -3
  15. package/src/chat/convert-openai-chat-usage.ts +2 -2
  16. package/src/chat/convert-to-openai-chat-messages.ts +5 -5
  17. package/src/chat/map-openai-finish-reason.ts +2 -2
  18. package/src/chat/openai-chat-language-model.ts +22 -22
  19. package/src/chat/openai-chat-prepare-tools.ts +6 -6
  20. package/src/completion/convert-openai-completion-usage.ts +2 -2
  21. package/src/completion/convert-to-openai-completion-prompt.ts +2 -2
  22. package/src/completion/map-openai-finish-reason.ts +2 -2
  23. package/src/completion/openai-completion-language-model.ts +20 -20
  24. package/src/embedding/openai-embedding-model.ts +5 -5
  25. package/src/image/openai-image-model.ts +9 -9
  26. package/src/openai-provider.ts +21 -21
  27. package/src/responses/convert-openai-responses-usage.ts +2 -2
  28. package/src/responses/convert-to-openai-responses-input.ts +7 -7
  29. package/src/responses/map-openai-responses-finish-reason.ts +2 -2
  30. package/src/responses/openai-responses-language-model.ts +29 -29
  31. package/src/responses/openai-responses-prepare-tools.ts +6 -6
  32. package/src/speech/openai-speech-model.ts +7 -7
  33. package/src/transcription/openai-transcription-model.ts +8 -8
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  APICallError,
3
3
  JSONValue,
4
- LanguageModelV3,
5
- LanguageModelV3Prompt,
6
- LanguageModelV3CallOptions,
7
- LanguageModelV3Content,
8
- LanguageModelV3FinishReason,
9
- LanguageModelV3GenerateResult,
10
- LanguageModelV3ProviderTool,
11
- LanguageModelV3StreamPart,
12
- LanguageModelV3StreamResult,
13
- LanguageModelV3ToolApprovalRequest,
14
- SharedV3ProviderMetadata,
15
- SharedV3Warning,
4
+ LanguageModelV4,
5
+ LanguageModelV4Prompt,
6
+ LanguageModelV4CallOptions,
7
+ LanguageModelV4Content,
8
+ LanguageModelV4FinishReason,
9
+ LanguageModelV4GenerateResult,
10
+ LanguageModelV4ProviderTool,
11
+ LanguageModelV4StreamPart,
12
+ LanguageModelV4StreamResult,
13
+ LanguageModelV4ToolApprovalRequest,
14
+ SharedV4ProviderMetadata,
15
+ SharedV4Warning,
16
16
  } from '@ai-sdk/provider';
17
17
  import {
18
18
  combineHeaders,
@@ -77,7 +77,7 @@ import {
77
77
  * so that tool results reference the correct tool call.
78
78
  */
79
79
  function extractApprovalRequestIdToToolCallIdMapping(
80
- prompt: LanguageModelV3Prompt,
80
+ prompt: LanguageModelV4Prompt,
81
81
  ): Record<string, string> {
82
82
  const mapping: Record<string, string> = {};
83
83
  for (const message of prompt) {
@@ -94,8 +94,8 @@ function extractApprovalRequestIdToToolCallIdMapping(
94
94
  return mapping;
95
95
  }
96
96
 
97
- export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
98
- readonly specificationVersion = 'v3';
97
+ export class OpenAIResponsesLanguageModel implements LanguageModelV4 {
98
+ readonly specificationVersion = 'v4';
99
99
 
100
100
  readonly modelId: OpenAIResponsesModelId;
101
101
 
@@ -129,8 +129,8 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
129
129
  tools,
130
130
  toolChoice,
131
131
  responseFormat,
132
- }: LanguageModelV3CallOptions) {
133
- const warnings: SharedV3Warning[] = [];
132
+ }: LanguageModelV4CallOptions) {
133
+ const warnings: SharedV4Warning[] = [];
134
134
  const modelCapabilities = getOpenAILanguageModelCapabilities(this.modelId);
135
135
 
136
136
  if (topK != null) {
@@ -273,7 +273,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
273
273
  tool.type === 'provider' &&
274
274
  (tool.id === 'openai.web_search' ||
275
275
  tool.id === 'openai.web_search_preview'),
276
- ) as LanguageModelV3ProviderTool | undefined
276
+ ) as LanguageModelV4ProviderTool | undefined
277
277
  )?.name;
278
278
 
279
279
  if (webSearchToolName) {
@@ -454,8 +454,8 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
454
454
  }
455
455
 
456
456
  async doGenerate(
457
- options: LanguageModelV3CallOptions,
458
- ): Promise<LanguageModelV3GenerateResult> {
457
+ options: LanguageModelV4CallOptions,
458
+ ): Promise<LanguageModelV4GenerateResult> {
459
459
  const {
460
460
  args: body,
461
461
  warnings,
@@ -500,7 +500,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
500
500
  });
501
501
  }
502
502
 
503
- const content: Array<LanguageModelV3Content> = [];
503
+ const content: Array<LanguageModelV4Content> = [];
504
504
  const logprobs: Array<OpenAIResponsesLogprobs> = [];
505
505
 
506
506
  // flag that checks if there have been client-side tool calls (not executed by openai)
@@ -621,7 +621,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
621
621
  logprobs.push(contentPart.logprobs);
622
622
  }
623
623
 
624
- const providerMetadata: SharedV3ProviderMetadata[string] = {
624
+ const providerMetadata: SharedV4ProviderMetadata[string] = {
625
625
  itemId: part.id,
626
626
  ...(part.phase != null && { phase: part.phase }),
627
627
  ...(contentPart.annotations.length > 0 && {
@@ -833,7 +833,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
833
833
  type: 'tool-approval-request',
834
834
  approvalId: approvalRequestId,
835
835
  toolCallId: dummyToolCallId,
836
- } satisfies LanguageModelV3ToolApprovalRequest);
836
+ } satisfies LanguageModelV4ToolApprovalRequest);
837
837
  break;
838
838
  }
839
839
 
@@ -930,7 +930,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
930
930
  }
931
931
  }
932
932
 
933
- const providerMetadata: SharedV3ProviderMetadata = {
933
+ const providerMetadata: SharedV4ProviderMetadata = {
934
934
  [providerOptionsName]: {
935
935
  responseId: response.id,
936
936
  ...(logprobs.length > 0 ? { logprobs } : {}),
@@ -966,8 +966,8 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
966
966
  }
967
967
 
968
968
  async doStream(
969
- options: LanguageModelV3CallOptions,
970
- ): Promise<LanguageModelV3StreamResult> {
969
+ options: LanguageModelV4CallOptions,
970
+ ): Promise<LanguageModelV4StreamResult> {
971
971
  const {
972
972
  args: body,
973
973
  warnings,
@@ -1006,7 +1006,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
1006
1006
  string
1007
1007
  >();
1008
1008
 
1009
- let finishReason: LanguageModelV3FinishReason = {
1009
+ let finishReason: LanguageModelV4FinishReason = {
1010
1010
  unified: 'other',
1011
1011
  raw: undefined,
1012
1012
  };
@@ -1059,7 +1059,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
1059
1059
  stream: response.pipeThrough(
1060
1060
  new TransformStream<
1061
1061
  ParseResult<OpenAIResponsesChunk>,
1062
- LanguageModelV3StreamPart
1062
+ LanguageModelV4StreamPart
1063
1063
  >({
1064
1064
  start(controller) {
1065
1065
  controller.enqueue({ type: 'stream-start', warnings });
@@ -1941,7 +1941,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
1941
1941
  },
1942
1942
 
1943
1943
  flush(controller) {
1944
- const providerMetadata: SharedV3ProviderMetadata = {
1944
+ const providerMetadata: SharedV4ProviderMetadata = {
1945
1945
  [providerOptionsName]: {
1946
1946
  responseId: responseId,
1947
1947
  ...(logprobs.length > 0 ? { logprobs } : {}),
@@ -1,6 +1,6 @@
1
1
  import {
2
- LanguageModelV3CallOptions,
3
- SharedV3Warning,
2
+ LanguageModelV4CallOptions,
3
+ SharedV4Warning,
4
4
  UnsupportedFunctionalityError,
5
5
  } from '@ai-sdk/provider';
6
6
  import { ToolNameMapping, validateTypes } from '@ai-sdk/provider-utils';
@@ -20,8 +20,8 @@ export async function prepareResponsesTools({
20
20
  toolNameMapping,
21
21
  customProviderToolNames,
22
22
  }: {
23
- tools: LanguageModelV3CallOptions['tools'];
24
- toolChoice: LanguageModelV3CallOptions['toolChoice'] | undefined;
23
+ tools: LanguageModelV4CallOptions['tools'];
24
+ toolChoice: LanguageModelV4CallOptions['toolChoice'] | undefined;
25
25
  toolNameMapping?: ToolNameMapping;
26
26
  customProviderToolNames?: Set<string>;
27
27
  }): Promise<{
@@ -39,12 +39,12 @@ export async function prepareResponsesTools({
39
39
  | { type: 'mcp' }
40
40
  | { type: 'image_generation' }
41
41
  | { type: 'apply_patch' };
42
- toolWarnings: SharedV3Warning[];
42
+ toolWarnings: SharedV4Warning[];
43
43
  }> {
44
44
  // when the tools array is empty, change it to undefined to prevent errors:
45
45
  tools = tools?.length ? tools : undefined;
46
46
 
47
- const toolWarnings: SharedV3Warning[] = [];
47
+ const toolWarnings: SharedV4Warning[] = [];
48
48
 
49
49
  if (tools == null) {
50
50
  return { tools: undefined, toolChoice: undefined, toolWarnings };
@@ -1,4 +1,4 @@
1
- import { SpeechModelV3, SharedV3Warning } from '@ai-sdk/provider';
1
+ import { SpeechModelV4, SharedV4Warning } from '@ai-sdk/provider';
2
2
  import {
3
3
  combineHeaders,
4
4
  createBinaryResponseHandler,
@@ -19,8 +19,8 @@ interface OpenAISpeechModelConfig extends OpenAIConfig {
19
19
  };
20
20
  }
21
21
 
22
- export class OpenAISpeechModel implements SpeechModelV3 {
23
- readonly specificationVersion = 'v3';
22
+ export class OpenAISpeechModel implements SpeechModelV4 {
23
+ readonly specificationVersion = 'v4';
24
24
 
25
25
  get provider(): string {
26
26
  return this.config.provider;
@@ -39,8 +39,8 @@ export class OpenAISpeechModel implements SpeechModelV3 {
39
39
  instructions,
40
40
  language,
41
41
  providerOptions,
42
- }: Parameters<SpeechModelV3['doGenerate']>[0]) {
43
- const warnings: SharedV3Warning[] = [];
42
+ }: Parameters<SpeechModelV4['doGenerate']>[0]) {
43
+ const warnings: SharedV4Warning[] = [];
44
44
 
45
45
  // Parse provider options
46
46
  const openAIOptions = await parseProviderOptions({
@@ -98,8 +98,8 @@ export class OpenAISpeechModel implements SpeechModelV3 {
98
98
  }
99
99
 
100
100
  async doGenerate(
101
- options: Parameters<SpeechModelV3['doGenerate']>[0],
102
- ): Promise<Awaited<ReturnType<SpeechModelV3['doGenerate']>>> {
101
+ options: Parameters<SpeechModelV4['doGenerate']>[0],
102
+ ): Promise<Awaited<ReturnType<SpeechModelV4['doGenerate']>>> {
103
103
  const currentDate = this.config._internal?.currentDate?.() ?? new Date();
104
104
  const { requestBody, warnings } = await this.getArgs(options);
105
105
 
@@ -1,7 +1,7 @@
1
1
  import {
2
- TranscriptionModelV3,
3
- TranscriptionModelV3CallOptions,
4
- SharedV3Warning,
2
+ TranscriptionModelV4,
3
+ TranscriptionModelV4CallOptions,
4
+ SharedV4Warning,
5
5
  } from '@ai-sdk/provider';
6
6
  import {
7
7
  combineHeaders,
@@ -21,7 +21,7 @@ import {
21
21
  } from './openai-transcription-options';
22
22
 
23
23
  export type OpenAITranscriptionCallOptions = Omit<
24
- TranscriptionModelV3CallOptions,
24
+ TranscriptionModelV4CallOptions,
25
25
  'providerOptions'
26
26
  > & {
27
27
  providerOptions?: {
@@ -96,8 +96,8 @@ const languageMap = {
96
96
  welsh: 'cy',
97
97
  };
98
98
 
99
- export class OpenAITranscriptionModel implements TranscriptionModelV3 {
100
- readonly specificationVersion = 'v3';
99
+ export class OpenAITranscriptionModel implements TranscriptionModelV4 {
100
+ readonly specificationVersion = 'v4';
101
101
 
102
102
  get provider(): string {
103
103
  return this.config.provider;
@@ -113,7 +113,7 @@ export class OpenAITranscriptionModel implements TranscriptionModelV3 {
113
113
  mediaType,
114
114
  providerOptions,
115
115
  }: OpenAITranscriptionCallOptions) {
116
- const warnings: SharedV3Warning[] = [];
116
+ const warnings: SharedV4Warning[] = [];
117
117
 
118
118
  // Parse provider options
119
119
  const openAIOptions = await parseProviderOptions({
@@ -176,7 +176,7 @@ export class OpenAITranscriptionModel implements TranscriptionModelV3 {
176
176
 
177
177
  async doGenerate(
178
178
  options: OpenAITranscriptionCallOptions,
179
- ): Promise<Awaited<ReturnType<TranscriptionModelV3['doGenerate']>>> {
179
+ ): Promise<Awaited<ReturnType<TranscriptionModelV4['doGenerate']>>> {
180
180
  const currentDate = this.config._internal?.currentDate?.() ?? new Date();
181
181
  const { formData, warnings } = await this.getArgs(options);
182
182