@ai-sdk/openai 4.0.19 → 4.0.20

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,11 @@
1
1
  # @ai-sdk/openai
2
2
 
3
+ ## 4.0.20
4
+
5
+ ### Patch Changes
6
+
7
+ - 1f6dd3a: Add OpenAI Responses Programmatic Tool Calling with hosted program tools, function caller controls, structured output schemas, and multi-step continuation support.
8
+
3
9
  ## 4.0.19
4
10
 
5
11
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _ai_sdk_provider from '@ai-sdk/provider';
2
- import { JSONValue, ProviderV4, LanguageModelV4, EmbeddingModelV4, ImageModelV4, TranscriptionModelV4, SpeechModelV4, Experimental_RealtimeFactoryV4, FilesV4, SkillsV4, Experimental_RealtimeModelV4, Experimental_RealtimeModelV4ClientSecretOptions, Experimental_RealtimeModelV4ClientSecretResult, Experimental_RealtimeModelV4ServerEvent, Experimental_RealtimeModelV4ClientEvent, Experimental_RealtimeModelV4SessionConfig } from '@ai-sdk/provider';
2
+ import { JSONValue, ProviderV4, LanguageModelV4, EmbeddingModelV4, ImageModelV4, TranscriptionModelV4, SpeechModelV4, Experimental_RealtimeFactoryV4, FilesV4, SkillsV4, Experimental_RealtimeModelV4, Experimental_RealtimeModelV4ClientSecretOptions, Experimental_RealtimeModelV4ClientSecretResult, Experimental_RealtimeModelV4ServerEvent, Experimental_RealtimeModelV4ClientEvent, Experimental_RealtimeModelV4SessionConfig, JSONObject } from '@ai-sdk/provider';
3
3
  import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
4
4
  import { InferSchema, FetchFunction, WebSocketConstructor } from '@ai-sdk/provider-utils';
5
5
  import { z } from 'zod/v4';
@@ -414,6 +414,24 @@ declare const openaiResponsesChunkSchema: _ai_sdk_provider_utils.LazySchema<{
414
414
  name: string;
415
415
  arguments: string;
416
416
  namespace?: string | null | undefined;
417
+ caller?: {
418
+ type: "direct";
419
+ } | {
420
+ type: "program";
421
+ caller_id: string;
422
+ } | null | undefined;
423
+ } | {
424
+ type: "program";
425
+ id: string;
426
+ call_id: string;
427
+ code: string;
428
+ fingerprint: string;
429
+ } | {
430
+ type: "program_output";
431
+ id: string;
432
+ call_id: string;
433
+ result: string;
434
+ status: "completed" | "incomplete";
417
435
  } | {
418
436
  type: "web_search_call";
419
437
  id: string;
@@ -608,6 +626,18 @@ declare const openaiResponsesChunkSchema: _ai_sdk_provider_utils.LazySchema<{
608
626
  code?: string | null | undefined;
609
627
  message?: string | null | undefined;
610
628
  }[] | null | undefined;
629
+ } | {
630
+ type: "program";
631
+ id: string;
632
+ call_id: string;
633
+ code: string;
634
+ fingerprint: string;
635
+ } | {
636
+ type: "program_output";
637
+ id: string;
638
+ call_id: string;
639
+ result: string;
640
+ status: "completed" | "incomplete";
611
641
  } | {
612
642
  type: "message";
613
643
  id: string;
@@ -622,8 +652,14 @@ declare const openaiResponsesChunkSchema: _ai_sdk_provider_utils.LazySchema<{
622
652
  call_id: string;
623
653
  name: string;
624
654
  arguments: string;
625
- status: "completed";
655
+ status: "completed" | "in_progress" | "incomplete";
626
656
  namespace?: string | null | undefined;
657
+ caller?: {
658
+ type: "direct";
659
+ } | {
660
+ type: "program";
661
+ caller_id: string;
662
+ } | null | undefined;
627
663
  } | {
628
664
  type: "custom_tool_call";
629
665
  id: string;
@@ -1253,6 +1289,17 @@ declare const openaiTools: {
1253
1289
  output?: string | null;
1254
1290
  error?: _ai_sdk_provider.JSONValue;
1255
1291
  }, {}>;
1292
+ /**
1293
+ * Programmatic Tool Calling lets OpenAI Responses models write and execute
1294
+ * JavaScript that orchestrates eligible tools.
1295
+ */
1296
+ programmaticToolCalling: () => _ai_sdk_provider_utils.ProviderExecutedTool<{
1297
+ code: string;
1298
+ fingerprint: string;
1299
+ }, {
1300
+ result: string;
1301
+ status: "completed" | "incomplete";
1302
+ }, {}>;
1256
1303
  /**
1257
1304
  * Tool search allows the model to dynamically search for and load deferred
1258
1305
  * tools into the model's context as needed. This helps reduce overall token
@@ -1479,6 +1526,16 @@ declare class OpenAIRealtimeModel implements Experimental_RealtimeModelV4 {
1479
1526
  buildSessionConfig(config: Experimental_RealtimeModelV4SessionConfig): Record<string, unknown>;
1480
1527
  }
1481
1528
 
1529
+ type OpenAIToolOptions = {
1530
+ allowedCallers?: Array<'direct' | 'programmatic'>;
1531
+ deferLoading?: boolean;
1532
+ outputSchema?: JSONObject;
1533
+ namespace?: {
1534
+ name: string;
1535
+ description: string;
1536
+ };
1537
+ };
1538
+
1482
1539
  declare const openaiFilesOptionsSchema: _ai_sdk_provider_utils.LazySchema<{
1483
1540
  purpose?: string | undefined;
1484
1541
  expiresAfter?: number | undefined;
@@ -1595,4 +1652,4 @@ type OpenaiResponsesSourceDocumentProviderMetadata = {
1595
1652
 
1596
1653
  declare const VERSION: string;
1597
1654
 
1598
- export { OpenAIRealtimeModel as Experimental_OpenAIRealtimeModel, type OpenAIRealtimeModelConfig as Experimental_OpenAIRealtimeModelConfig, type OpenAILanguageModelChatOptions as OpenAIChatLanguageModelOptions, type OpenAIComputerAction, type OpenAIComputerSafetyCheck, type OpenAIEmbeddingModelOptions, type OpenAIFilesOptions, type OpenAIImageModelEditOptions, type OpenAIImageModelGenerationOptions, type OpenAIImageModelOptions, type OpenAILanguageModelChatOptions, type OpenAILanguageModelCompletionOptions, type OpenAILanguageModelResponsesOptions, type OpenAIProvider, type OpenAIProviderSettings, type OpenAILanguageModelResponsesOptions as OpenAIResponsesProviderOptions, type OpenAISpeechModelOptions, type OpenAITranscriptionModelOptions, type OpenaiResponsesCompactionProviderMetadata, type OpenaiResponsesProviderMetadata, type OpenaiResponsesReasoningProviderMetadata, type OpenaiResponsesSourceDocumentProviderMetadata, type OpenaiResponsesTextProviderMetadata, VERSION, createOpenAI, openai };
1655
+ export { OpenAIRealtimeModel as Experimental_OpenAIRealtimeModel, type OpenAIRealtimeModelConfig as Experimental_OpenAIRealtimeModelConfig, type OpenAILanguageModelChatOptions as OpenAIChatLanguageModelOptions, type OpenAIComputerAction, type OpenAIComputerSafetyCheck, type OpenAIEmbeddingModelOptions, type OpenAIFilesOptions, type OpenAIImageModelEditOptions, type OpenAIImageModelGenerationOptions, type OpenAIImageModelOptions, type OpenAILanguageModelChatOptions, type OpenAILanguageModelCompletionOptions, type OpenAILanguageModelResponsesOptions, type OpenAIProvider, type OpenAIProviderSettings, type OpenAILanguageModelResponsesOptions as OpenAIResponsesProviderOptions, type OpenAISpeechModelOptions, type OpenAIToolOptions, type OpenAITranscriptionModelOptions, type OpenaiResponsesCompactionProviderMetadata, type OpenaiResponsesProviderMetadata, type OpenaiResponsesReasoningProviderMetadata, type OpenaiResponsesSourceDocumentProviderMetadata, type OpenaiResponsesTextProviderMetadata, VERSION, createOpenAI, openai };