ai 4.0.24 → 4.0.25

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
2
2
 
3
+ ## 4.0.25
4
+
5
+ ### Patch Changes
6
+
7
+ - 0823899: fix (ai/core): throw error when accessing output when no output is defined in generateText (breaking/experimental)
8
+
3
9
  ## 4.0.24
4
10
 
5
11
  ### Patch Changes
package/dist/index.js CHANGED
@@ -3296,28 +3296,17 @@ var DefaultStreamObjectResult = class {
3296
3296
  // core/generate-text/generate-text.ts
3297
3297
  var import_provider_utils9 = require("@ai-sdk/provider-utils");
3298
3298
 
3299
- // errors/index.ts
3300
- var import_provider16 = require("@ai-sdk/provider");
3301
-
3302
- // errors/invalid-tool-arguments-error.ts
3299
+ // errors/no-output-specified-error.ts
3303
3300
  var import_provider11 = require("@ai-sdk/provider");
3304
- var name8 = "AI_InvalidToolArgumentsError";
3301
+ var name8 = "AI_NoOutputSpecifiedError";
3305
3302
  var marker8 = `vercel.ai.error.${name8}`;
3306
3303
  var symbol8 = Symbol.for(marker8);
3307
3304
  var _a8;
3308
- var InvalidToolArgumentsError = class extends import_provider11.AISDKError {
3309
- constructor({
3310
- toolArgs,
3311
- toolName,
3312
- cause,
3313
- message = `Invalid arguments for tool ${toolName}: ${(0, import_provider11.getErrorMessage)(
3314
- cause
3315
- )}`
3316
- }) {
3317
- super({ name: name8, message, cause });
3305
+ var NoOutputSpecifiedError = class extends import_provider11.AISDKError {
3306
+ // used in isInstance
3307
+ constructor({ message = "No output specified." } = {}) {
3308
+ super({ name: name8, message });
3318
3309
  this[_a8] = true;
3319
- this.toolArgs = toolArgs;
3320
- this.toolName = toolName;
3321
3310
  }
3322
3311
  static isInstance(error) {
3323
3312
  return import_provider11.AISDKError.hasMarker(error, marker8);
@@ -3325,92 +3314,29 @@ var InvalidToolArgumentsError = class extends import_provider11.AISDKError {
3325
3314
  };
3326
3315
  _a8 = symbol8;
3327
3316
 
3328
- // errors/no-output-specified-error.ts
3317
+ // errors/tool-execution-error.ts
3329
3318
  var import_provider12 = require("@ai-sdk/provider");
3330
- var name9 = "AI_NoOutputSpecifiedError";
3319
+ var name9 = "AI_ToolExecutionError";
3331
3320
  var marker9 = `vercel.ai.error.${name9}`;
3332
3321
  var symbol9 = Symbol.for(marker9);
3333
3322
  var _a9;
3334
- var NoOutputSpecifiedError = class extends import_provider12.AISDKError {
3335
- // used in isInstance
3336
- constructor({ message = "No output specified." } = {}) {
3337
- super({ name: name9, message });
3338
- this[_a9] = true;
3339
- }
3340
- static isInstance(error) {
3341
- return import_provider12.AISDKError.hasMarker(error, marker9);
3342
- }
3343
- };
3344
- _a9 = symbol9;
3345
-
3346
- // errors/no-such-tool-error.ts
3347
- var import_provider13 = require("@ai-sdk/provider");
3348
- var name10 = "AI_NoSuchToolError";
3349
- var marker10 = `vercel.ai.error.${name10}`;
3350
- var symbol10 = Symbol.for(marker10);
3351
- var _a10;
3352
- var NoSuchToolError = class extends import_provider13.AISDKError {
3353
- constructor({
3354
- toolName,
3355
- availableTools = void 0,
3356
- message = `Model tried to call unavailable tool '${toolName}'. ${availableTools === void 0 ? "No tools are available." : `Available tools: ${availableTools.join(", ")}.`}`
3357
- }) {
3358
- super({ name: name10, message });
3359
- this[_a10] = true;
3360
- this.toolName = toolName;
3361
- this.availableTools = availableTools;
3362
- }
3363
- static isInstance(error) {
3364
- return import_provider13.AISDKError.hasMarker(error, marker10);
3365
- }
3366
- };
3367
- _a10 = symbol10;
3368
-
3369
- // errors/tool-call-repair-error.ts
3370
- var import_provider14 = require("@ai-sdk/provider");
3371
- var name11 = "AI_ToolCallRepairError";
3372
- var marker11 = `vercel.ai.error.${name11}`;
3373
- var symbol11 = Symbol.for(marker11);
3374
- var _a11;
3375
- var ToolCallRepairError = class extends import_provider14.AISDKError {
3376
- constructor({
3377
- cause,
3378
- originalError,
3379
- message = `Error repairing tool call: ${(0, import_provider14.getErrorMessage)(cause)}`
3380
- }) {
3381
- super({ name: name11, message, cause });
3382
- this[_a11] = true;
3383
- this.originalError = originalError;
3384
- }
3385
- static isInstance(error) {
3386
- return import_provider14.AISDKError.hasMarker(error, marker11);
3387
- }
3388
- };
3389
- _a11 = symbol11;
3390
-
3391
- // errors/tool-execution-error.ts
3392
- var import_provider15 = require("@ai-sdk/provider");
3393
- var name12 = "AI_ToolExecutionError";
3394
- var marker12 = `vercel.ai.error.${name12}`;
3395
- var symbol12 = Symbol.for(marker12);
3396
- var _a12;
3397
- var ToolExecutionError = class extends import_provider15.AISDKError {
3323
+ var ToolExecutionError = class extends import_provider12.AISDKError {
3398
3324
  constructor({
3399
3325
  toolArgs,
3400
3326
  toolName,
3401
3327
  cause,
3402
- message = `Error executing tool ${toolName}: ${(0, import_provider15.getErrorMessage)(cause)}`
3328
+ message = `Error executing tool ${toolName}: ${(0, import_provider12.getErrorMessage)(cause)}`
3403
3329
  }) {
3404
- super({ name: name12, message, cause });
3405
- this[_a12] = true;
3330
+ super({ name: name9, message, cause });
3331
+ this[_a9] = true;
3406
3332
  this.toolArgs = toolArgs;
3407
3333
  this.toolName = toolName;
3408
3334
  }
3409
3335
  static isInstance(error) {
3410
- return import_provider15.AISDKError.hasMarker(error, marker12);
3336
+ return import_provider12.AISDKError.hasMarker(error, marker9);
3411
3337
  }
3412
3338
  };
3413
- _a12 = symbol12;
3339
+ _a9 = symbol9;
3414
3340
 
3415
3341
  // core/prompt/prepare-tools-and-tool-choice.ts
3416
3342
  var import_ui_utils4 = require("@ai-sdk/ui-utils");
@@ -3480,6 +3406,79 @@ function removeTextAfterLastWhitespace(text2) {
3480
3406
  // core/generate-text/parse-tool-call.ts
3481
3407
  var import_provider_utils8 = require("@ai-sdk/provider-utils");
3482
3408
  var import_ui_utils5 = require("@ai-sdk/ui-utils");
3409
+
3410
+ // errors/invalid-tool-arguments-error.ts
3411
+ var import_provider13 = require("@ai-sdk/provider");
3412
+ var name10 = "AI_InvalidToolArgumentsError";
3413
+ var marker10 = `vercel.ai.error.${name10}`;
3414
+ var symbol10 = Symbol.for(marker10);
3415
+ var _a10;
3416
+ var InvalidToolArgumentsError = class extends import_provider13.AISDKError {
3417
+ constructor({
3418
+ toolArgs,
3419
+ toolName,
3420
+ cause,
3421
+ message = `Invalid arguments for tool ${toolName}: ${(0, import_provider13.getErrorMessage)(
3422
+ cause
3423
+ )}`
3424
+ }) {
3425
+ super({ name: name10, message, cause });
3426
+ this[_a10] = true;
3427
+ this.toolArgs = toolArgs;
3428
+ this.toolName = toolName;
3429
+ }
3430
+ static isInstance(error) {
3431
+ return import_provider13.AISDKError.hasMarker(error, marker10);
3432
+ }
3433
+ };
3434
+ _a10 = symbol10;
3435
+
3436
+ // errors/no-such-tool-error.ts
3437
+ var import_provider14 = require("@ai-sdk/provider");
3438
+ var name11 = "AI_NoSuchToolError";
3439
+ var marker11 = `vercel.ai.error.${name11}`;
3440
+ var symbol11 = Symbol.for(marker11);
3441
+ var _a11;
3442
+ var NoSuchToolError = class extends import_provider14.AISDKError {
3443
+ constructor({
3444
+ toolName,
3445
+ availableTools = void 0,
3446
+ message = `Model tried to call unavailable tool '${toolName}'. ${availableTools === void 0 ? "No tools are available." : `Available tools: ${availableTools.join(", ")}.`}`
3447
+ }) {
3448
+ super({ name: name11, message });
3449
+ this[_a11] = true;
3450
+ this.toolName = toolName;
3451
+ this.availableTools = availableTools;
3452
+ }
3453
+ static isInstance(error) {
3454
+ return import_provider14.AISDKError.hasMarker(error, marker11);
3455
+ }
3456
+ };
3457
+ _a11 = symbol11;
3458
+
3459
+ // errors/tool-call-repair-error.ts
3460
+ var import_provider15 = require("@ai-sdk/provider");
3461
+ var name12 = "AI_ToolCallRepairError";
3462
+ var marker12 = `vercel.ai.error.${name12}`;
3463
+ var symbol12 = Symbol.for(marker12);
3464
+ var _a12;
3465
+ var ToolCallRepairError = class extends import_provider15.AISDKError {
3466
+ constructor({
3467
+ cause,
3468
+ originalError,
3469
+ message = `Error repairing tool call: ${(0, import_provider15.getErrorMessage)(cause)}`
3470
+ }) {
3471
+ super({ name: name12, message, cause });
3472
+ this[_a12] = true;
3473
+ this.originalError = originalError;
3474
+ }
3475
+ static isInstance(error) {
3476
+ return import_provider15.AISDKError.hasMarker(error, marker12);
3477
+ }
3478
+ };
3479
+ _a12 = symbol12;
3480
+
3481
+ // core/generate-text/parse-tool-call.ts
3483
3482
  async function parseToolCall({
3484
3483
  toolCall,
3485
3484
  tools,
@@ -3873,13 +3872,15 @@ async function generateText({
3873
3872
  );
3874
3873
  return new DefaultGenerateTextResult({
3875
3874
  text: text2,
3876
- output: output == null ? void 0 : output.parseOutput(
3877
- { text: text2 },
3878
- {
3879
- response: currentModelResponse.response,
3880
- usage
3875
+ outputResolver: () => {
3876
+ if (output == null) {
3877
+ throw new NoOutputSpecifiedError();
3881
3878
  }
3882
- ),
3879
+ return output.parseOutput(
3880
+ { text: text2 },
3881
+ { response: currentModelResponse.response, usage }
3882
+ );
3883
+ },
3883
3884
  toolCalls: currentToolCalls,
3884
3885
  toolResults: currentToolResults,
3885
3886
  finishReason: currentModelResponse.finishReason,
@@ -3985,7 +3986,10 @@ var DefaultGenerateTextResult = class {
3985
3986
  this.steps = options.steps;
3986
3987
  this.experimental_providerMetadata = options.providerMetadata;
3987
3988
  this.logprobs = options.logprobs;
3988
- this.experimental_output = options.output;
3989
+ this.outputResolver = options.outputResolver;
3990
+ }
3991
+ get experimental_output() {
3992
+ return this.outputResolver();
3989
3993
  }
3990
3994
  };
3991
3995
 
@@ -3997,6 +4001,11 @@ __export(output_exports, {
3997
4001
  });
3998
4002
  var import_provider_utils10 = require("@ai-sdk/provider-utils");
3999
4003
  var import_ui_utils6 = require("@ai-sdk/ui-utils");
4004
+
4005
+ // errors/index.ts
4006
+ var import_provider16 = require("@ai-sdk/provider");
4007
+
4008
+ // core/generate-text/output.ts
4000
4009
  var text = () => ({
4001
4010
  type: "text",
4002
4011
  responseFormat: () => ({ type: "text" }),