@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/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @ai-sdk/anthropic
2
2
 
3
+ ## 3.0.107
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [ee2bf30]
8
+ - @ai-sdk/provider-utils@4.0.42
9
+
10
+ ## 3.0.106
11
+
12
+ ### Patch Changes
13
+
14
+ - b74e654: Reject spliced Anthropic generations while allowing duplicate message start events for the active message.
15
+
3
16
  ## 3.0.105
4
17
 
5
18
  ### Patch Changes
package/dist/index.js CHANGED
@@ -32,7 +32,7 @@ var import_provider4 = require("@ai-sdk/provider");
32
32
  var import_provider_utils26 = require("@ai-sdk/provider-utils");
33
33
 
34
34
  // src/version.ts
35
- var VERSION = true ? "3.0.105" : "0.0.0-test";
35
+ var VERSION = true ? "3.0.107" : "0.0.0-test";
36
36
 
37
37
  // src/anthropic-messages-language-model.ts
38
38
  var import_provider3 = require("@ai-sdk/provider");
@@ -4466,6 +4466,9 @@ var AnthropicMessagesLanguageModel = class {
4466
4466
  let stopDetails = void 0;
4467
4467
  let container = null;
4468
4468
  let isJsonResponseFromTool = false;
4469
+ let isMessageOpen = false;
4470
+ let activeMessageId;
4471
+ let hasInvalidMessageSequence = false;
4469
4472
  let blockType = void 0;
4470
4473
  const generateId3 = this.generateId;
4471
4474
  const transformedStream = response.pipeThrough(
@@ -4475,6 +4478,9 @@ var AnthropicMessagesLanguageModel = class {
4475
4478
  },
4476
4479
  transform(chunk, controller) {
4477
4480
  var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
4481
+ if (hasInvalidMessageSequence) {
4482
+ return;
4483
+ }
4478
4484
  if (options.includeRawChunks) {
4479
4485
  controller.enqueue({ type: "raw", rawValue: chunk.rawValue });
4480
4486
  }
@@ -5095,6 +5101,22 @@ var AnthropicMessagesLanguageModel = class {
5095
5101
  }
5096
5102
  }
5097
5103
  case "message_start": {
5104
+ if (isMessageOpen) {
5105
+ if (activeMessageId === value.message.id) {
5106
+ return;
5107
+ }
5108
+ hasInvalidMessageSequence = true;
5109
+ controller.enqueue({
5110
+ type: "error",
5111
+ error: new import_provider3.InvalidResponseDataError({
5112
+ data: value,
5113
+ message: `Received message_start for message ${JSON.stringify(value.message.id)} while message ${JSON.stringify(activeMessageId)} is still open.`
5114
+ })
5115
+ });
5116
+ return;
5117
+ }
5118
+ isMessageOpen = true;
5119
+ activeMessageId = value.message.id;
5098
5120
  usage.input_tokens = value.message.usage.input_tokens;
5099
5121
  usage.cache_read_input_tokens = (_e = value.message.usage.cache_read_input_tokens) != null ? _e : 0;
5100
5122
  usage.cache_creation_input_tokens = (_f = value.message.usage.cache_creation_input_tokens) != null ? _f : 0;
@@ -5213,6 +5235,8 @@ var AnthropicMessagesLanguageModel = class {
5213
5235
  return;
5214
5236
  }
5215
5237
  case "message_stop": {
5238
+ isMessageOpen = false;
5239
+ activeMessageId = void 0;
5216
5240
  const anthropicMetadata = {
5217
5241
  usage: rawUsage != null ? rawUsage : null,
5218
5242
  cacheCreationInputTokens,