@ai-sdk/openai 2.0.28 → 2.0.29

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.
@@ -2362,6 +2362,18 @@ var import_provider7 = require("@ai-sdk/provider");
2362
2362
  // src/tool/code-interpreter.ts
2363
2363
  var import_provider_utils13 = require("@ai-sdk/provider-utils");
2364
2364
  var import_v415 = require("zod/v4");
2365
+ var codeInterpreterInputSchema = import_v415.z.object({
2366
+ code: import_v415.z.string().nullish(),
2367
+ containerId: import_v415.z.string()
2368
+ });
2369
+ var codeInterpreterOutputSchema = import_v415.z.object({
2370
+ outputs: import_v415.z.array(
2371
+ import_v415.z.discriminatedUnion("type", [
2372
+ import_v415.z.object({ type: import_v415.z.literal("logs"), logs: import_v415.z.string() }),
2373
+ import_v415.z.object({ type: import_v415.z.literal("image"), url: import_v415.z.string() })
2374
+ ])
2375
+ ).nullish()
2376
+ });
2365
2377
  var codeInterpreterArgsSchema = import_v415.z.object({
2366
2378
  container: import_v415.z.union([
2367
2379
  import_v415.z.string(),
@@ -2370,10 +2382,11 @@ var codeInterpreterArgsSchema = import_v415.z.object({
2370
2382
  })
2371
2383
  ]).optional()
2372
2384
  });
2373
- var codeInterpreterToolFactory = (0, import_provider_utils13.createProviderDefinedToolFactory)({
2385
+ var codeInterpreterToolFactory = (0, import_provider_utils13.createProviderDefinedToolFactoryWithOutputSchema)({
2374
2386
  id: "openai.code_interpreter",
2375
2387
  name: "code_interpreter",
2376
- inputSchema: import_v415.z.object({})
2388
+ inputSchema: codeInterpreterInputSchema,
2389
+ outputSchema: codeInterpreterOutputSchema
2377
2390
  });
2378
2391
 
2379
2392
  // src/tool/web-search.ts
@@ -2534,6 +2547,18 @@ var webSearchCallItem = import_v417.z.object({
2534
2547
  })
2535
2548
  ]).nullish()
2536
2549
  });
2550
+ var codeInterpreterCallItem = import_v417.z.object({
2551
+ type: import_v417.z.literal("code_interpreter_call"),
2552
+ id: import_v417.z.string(),
2553
+ code: import_v417.z.string().nullable(),
2554
+ container_id: import_v417.z.string(),
2555
+ outputs: import_v417.z.array(
2556
+ import_v417.z.discriminatedUnion("type", [
2557
+ import_v417.z.object({ type: import_v417.z.literal("logs"), logs: import_v417.z.string() }),
2558
+ import_v417.z.object({ type: import_v417.z.literal("image"), url: import_v417.z.string() })
2559
+ ])
2560
+ ).nullable()
2561
+ });
2537
2562
  var TOP_LOGPROBS_MAX = 20;
2538
2563
  var LOGPROBS_SCHEMA = import_v417.z.array(
2539
2564
  import_v417.z.object({
@@ -2575,7 +2600,7 @@ var OpenAIResponsesLanguageModel = class {
2575
2600
  toolChoice,
2576
2601
  responseFormat
2577
2602
  }) {
2578
- var _a, _b, _c;
2603
+ var _a, _b, _c, _d;
2579
2604
  const warnings = [];
2580
2605
  const modelConfig = getResponsesModelConfig(this.modelId);
2581
2606
  if (topK != null) {
@@ -2618,6 +2643,10 @@ var OpenAIResponsesLanguageModel = class {
2618
2643
  (tool) => tool.type === "provider-defined" && (tool.id === "openai.web_search" || tool.id === "openai.web_search_preview")
2619
2644
  )) == null ? void 0 : _b.name;
2620
2645
  include = webSearchToolName ? Array.isArray(include) ? [...include, "web_search_call.action.sources"] : ["web_search_call.action.sources"] : include;
2646
+ const codeInterpreterToolName = (_c = tools == null ? void 0 : tools.find(
2647
+ (tool) => tool.type === "provider-defined" && tool.id === "openai.code_interpreter"
2648
+ )) == null ? void 0 : _c.name;
2649
+ include = codeInterpreterToolName ? Array.isArray(include) ? [...include, "code_interpreter_call.outputs"] : ["code_interpreter_call.outputs"] : include;
2621
2650
  const baseArgs = {
2622
2651
  model: this.modelId,
2623
2652
  input: messages,
@@ -2630,7 +2659,7 @@ var OpenAIResponsesLanguageModel = class {
2630
2659
  format: responseFormat.schema != null ? {
2631
2660
  type: "json_schema",
2632
2661
  strict: strictJsonSchema,
2633
- name: (_c = responseFormat.name) != null ? _c : "response",
2662
+ name: (_d = responseFormat.name) != null ? _d : "response",
2634
2663
  description: responseFormat.description,
2635
2664
  schema: responseFormat.schema
2636
2665
  } : { type: "json_object" }
@@ -2801,9 +2830,7 @@ var OpenAIResponsesLanguageModel = class {
2801
2830
  })
2802
2831
  )
2803
2832
  }),
2804
- import_v417.z.object({
2805
- type: import_v417.z.literal("code_interpreter_call")
2806
- }),
2833
+ codeInterpreterCallItem,
2807
2834
  import_v417.z.object({
2808
2835
  type: import_v417.z.literal("function_call"),
2809
2836
  call_id: import_v417.z.string(),
@@ -2999,6 +3026,28 @@ var OpenAIResponsesLanguageModel = class {
2999
3026
  });
3000
3027
  break;
3001
3028
  }
3029
+ case "code_interpreter_call": {
3030
+ content.push({
3031
+ type: "tool-call",
3032
+ toolCallId: part.id,
3033
+ toolName: "code_interpreter",
3034
+ input: JSON.stringify({
3035
+ code: part.code,
3036
+ containerId: part.container_id
3037
+ }),
3038
+ providerExecuted: true
3039
+ });
3040
+ content.push({
3041
+ type: "tool-result",
3042
+ toolCallId: part.id,
3043
+ toolName: "code_interpreter",
3044
+ result: {
3045
+ outputs: part.outputs
3046
+ },
3047
+ providerExecuted: true
3048
+ });
3049
+ break;
3050
+ }
3002
3051
  }
3003
3052
  }
3004
3053
  const providerMetadata = {
@@ -3242,6 +3291,26 @@ var OpenAIResponsesLanguageModel = class {
3242
3291
  },
3243
3292
  providerExecuted: true
3244
3293
  });
3294
+ } else if (value.item.type === "code_interpreter_call") {
3295
+ controller.enqueue({
3296
+ type: "tool-call",
3297
+ toolCallId: value.item.id,
3298
+ toolName: "code_interpreter",
3299
+ input: JSON.stringify({
3300
+ code: value.item.code,
3301
+ containerId: value.item.container_id
3302
+ }),
3303
+ providerExecuted: true
3304
+ });
3305
+ controller.enqueue({
3306
+ type: "tool-result",
3307
+ toolCallId: value.item.id,
3308
+ toolName: "code_interpreter",
3309
+ result: {
3310
+ outputs: value.item.outputs
3311
+ },
3312
+ providerExecuted: true
3313
+ });
3245
3314
  } else if (value.item.type === "message") {
3246
3315
  controller.enqueue({
3247
3316
  type: "text-end",
@@ -3487,6 +3556,7 @@ var responseOutputItemDoneSchema = import_v417.z.object({
3487
3556
  arguments: import_v417.z.string(),
3488
3557
  status: import_v417.z.literal("completed")
3489
3558
  }),
3559
+ codeInterpreterCallItem,
3490
3560
  webSearchCallItem,
3491
3561
  import_v417.z.object({
3492
3562
  type: import_v417.z.literal("computer_call"),