@ai-sdk/anthropic 3.0.105 → 3.0.107

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/dist/index.mjs CHANGED
@@ -12,11 +12,12 @@ import {
12
12
  } from "@ai-sdk/provider-utils";
13
13
 
14
14
  // src/version.ts
15
- var VERSION = true ? "3.0.105" : "0.0.0-test";
15
+ var VERSION = true ? "3.0.107" : "0.0.0-test";
16
16
 
17
17
  // src/anthropic-messages-language-model.ts
18
18
  import {
19
- APICallError
19
+ APICallError,
20
+ InvalidResponseDataError
20
21
  } from "@ai-sdk/provider";
21
22
  import {
22
23
  combineHeaders,
@@ -4517,6 +4518,9 @@ var AnthropicMessagesLanguageModel = class {
4517
4518
  let stopDetails = void 0;
4518
4519
  let container = null;
4519
4520
  let isJsonResponseFromTool = false;
4521
+ let isMessageOpen = false;
4522
+ let activeMessageId;
4523
+ let hasInvalidMessageSequence = false;
4520
4524
  let blockType = void 0;
4521
4525
  const generateId3 = this.generateId;
4522
4526
  const transformedStream = response.pipeThrough(
@@ -4526,6 +4530,9 @@ var AnthropicMessagesLanguageModel = class {
4526
4530
  },
4527
4531
  transform(chunk, controller) {
4528
4532
  var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
4533
+ if (hasInvalidMessageSequence) {
4534
+ return;
4535
+ }
4529
4536
  if (options.includeRawChunks) {
4530
4537
  controller.enqueue({ type: "raw", rawValue: chunk.rawValue });
4531
4538
  }
@@ -5146,6 +5153,22 @@ var AnthropicMessagesLanguageModel = class {
5146
5153
  }
5147
5154
  }
5148
5155
  case "message_start": {
5156
+ if (isMessageOpen) {
5157
+ if (activeMessageId === value.message.id) {
5158
+ return;
5159
+ }
5160
+ hasInvalidMessageSequence = true;
5161
+ controller.enqueue({
5162
+ type: "error",
5163
+ error: new InvalidResponseDataError({
5164
+ data: value,
5165
+ message: `Received message_start for message ${JSON.stringify(value.message.id)} while message ${JSON.stringify(activeMessageId)} is still open.`
5166
+ })
5167
+ });
5168
+ return;
5169
+ }
5170
+ isMessageOpen = true;
5171
+ activeMessageId = value.message.id;
5149
5172
  usage.input_tokens = value.message.usage.input_tokens;
5150
5173
  usage.cache_read_input_tokens = (_e = value.message.usage.cache_read_input_tokens) != null ? _e : 0;
5151
5174
  usage.cache_creation_input_tokens = (_f = value.message.usage.cache_creation_input_tokens) != null ? _f : 0;
@@ -5264,6 +5287,8 @@ var AnthropicMessagesLanguageModel = class {
5264
5287
  return;
5265
5288
  }
5266
5289
  case "message_stop": {
5290
+ isMessageOpen = false;
5291
+ activeMessageId = void 0;
5267
5292
  const anthropicMetadata = {
5268
5293
  usage: rawUsage != null ? rawUsage : null,
5269
5294
  cacheCreationInputTokens,