@mastra/client-js 1.56.0-alpha.1 → 1.56.0-alpha.2

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.
Files changed (31) hide show
  1. package/dist/docs/SKILL.md +1 -1
  2. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  3. package/dist/index.cjs +583 -7
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.js +577 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/resources/agent.d.ts +2 -2
  8. package/dist/resources/agent.d.ts.map +1 -1
  9. package/dist/route-types.generated.d.ts +33 -0
  10. package/dist/route-types.generated.d.ts.map +1 -1
  11. package/dist/types.d.ts +2 -2
  12. package/dist/types.d.ts.map +1 -1
  13. package/dist/utils/ai-sdk-v4/data-stream-parts.d.ts +89 -0
  14. package/dist/utils/ai-sdk-v4/data-stream-parts.d.ts.map +1 -0
  15. package/dist/utils/ai-sdk-v4/fix-json.d.ts +2 -0
  16. package/dist/utils/ai-sdk-v4/fix-json.d.ts.map +1 -0
  17. package/dist/utils/ai-sdk-v4/index.d.ts +5 -0
  18. package/dist/utils/ai-sdk-v4/index.d.ts.map +1 -0
  19. package/dist/utils/ai-sdk-v4/parse-partial-json.d.ts +6 -0
  20. package/dist/utils/ai-sdk-v4/parse-partial-json.d.ts.map +1 -0
  21. package/dist/utils/ai-sdk-v4/process-data-stream.d.ts +53 -0
  22. package/dist/utils/ai-sdk-v4/process-data-stream.d.ts.map +1 -0
  23. package/dist/utils/ai-sdk-v4/types.d.ts +93 -0
  24. package/dist/utils/ai-sdk-v4/types.d.ts.map +1 -0
  25. package/package.json +4 -5
  26. package/dist/_types/@ai-sdk_provider/dist/index.d.ts +0 -1587
  27. package/dist/_types/@ai-sdk_provider/package.json +0 -1
  28. package/dist/_types/@ai-sdk_provider-utils/dist/index.d.ts +0 -379
  29. package/dist/_types/@ai-sdk_provider-utils/package.json +0 -1
  30. package/dist/_types/@ai-sdk_ui-utils/dist/index.d.ts +0 -820
  31. package/dist/_types/@ai-sdk_ui-utils/package.json +0 -1
@@ -3,7 +3,7 @@ name: mastra-client-js
3
3
  description: Documentation for @mastra/client-js. Use when working with @mastra/client-js APIs, configuration, or implementation.
4
4
  metadata:
5
5
  package: "@mastra/client-js"
6
- version: "1.56.0-alpha.1"
6
+ version: "1.56.0-alpha.2"
7
7
  ---
8
8
 
9
9
  ## When to use
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.56.0-alpha.1",
2
+ "version": "1.56.0-alpha.2",
3
3
  "package": "@mastra/client-js",
4
4
  "exports": {},
5
5
  "modules": {}
package/dist/index.cjs CHANGED
@@ -21,7 +21,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
21
21
  enumerable: true
22
22
  }) : target, mod));
23
23
  //#endregion
24
- let _ai_sdk_ui_utils = require("@ai-sdk/ui-utils");
25
24
  let _lukeed_uuid = require("@lukeed/uuid");
26
25
  let _mastra_core_error = require("@mastra/core/error");
27
26
  let _mastra_schema_compat_schema = require("@mastra/schema-compat/schema");
@@ -410,6 +409,583 @@ function isTerminalReconnectError(error) {
410
409
  return isTerminalHttpError(error) && status !== 408 && status !== 429;
411
410
  }
412
411
  //#endregion
412
+ //#region src/utils/ai-sdk-v4/data-stream-parts.ts
413
+ const dataStreamParts = [
414
+ {
415
+ code: "0",
416
+ name: "text",
417
+ parse: (value) => {
418
+ if (typeof value !== "string") throw new Error("\"text\" parts expect a string value.");
419
+ return {
420
+ type: "text",
421
+ value
422
+ };
423
+ }
424
+ },
425
+ {
426
+ code: "2",
427
+ name: "data",
428
+ parse: (value) => {
429
+ if (!Array.isArray(value)) throw new Error("\"data\" parts expect an array value.");
430
+ return {
431
+ type: "data",
432
+ value
433
+ };
434
+ }
435
+ },
436
+ {
437
+ code: "3",
438
+ name: "error",
439
+ parse: (value) => {
440
+ if (typeof value !== "string") throw new Error("\"error\" parts expect a string value.");
441
+ return {
442
+ type: "error",
443
+ value
444
+ };
445
+ }
446
+ },
447
+ {
448
+ code: "8",
449
+ name: "message_annotations",
450
+ parse: (value) => {
451
+ if (!Array.isArray(value)) throw new Error("\"message_annotations\" parts expect an array value.");
452
+ return {
453
+ type: "message_annotations",
454
+ value
455
+ };
456
+ }
457
+ },
458
+ {
459
+ code: "9",
460
+ name: "tool_call",
461
+ parse: (value) => {
462
+ if (value == null || typeof value !== "object" || !("toolCallId" in value) || typeof value.toolCallId !== "string" || !("toolName" in value) || typeof value.toolName !== "string" || !("args" in value) || typeof value.args !== "object") throw new Error("\"tool_call\" parts expect an object with a \"toolCallId\", \"toolName\", and \"args\" property.");
463
+ return {
464
+ type: "tool_call",
465
+ value
466
+ };
467
+ }
468
+ },
469
+ {
470
+ code: "a",
471
+ name: "tool_result",
472
+ parse: (value) => {
473
+ if (value == null || typeof value !== "object" || !("toolCallId" in value) || typeof value.toolCallId !== "string" || !("result" in value)) throw new Error("\"tool_result\" parts expect an object with a \"toolCallId\" and a \"result\" property.");
474
+ return {
475
+ type: "tool_result",
476
+ value
477
+ };
478
+ }
479
+ },
480
+ {
481
+ code: "b",
482
+ name: "tool_call_streaming_start",
483
+ parse: (value) => {
484
+ if (value == null || typeof value !== "object" || !("toolCallId" in value) || typeof value.toolCallId !== "string" || !("toolName" in value) || typeof value.toolName !== "string") throw new Error("\"tool_call_streaming_start\" parts expect an object with a \"toolCallId\" and \"toolName\" property.");
485
+ return {
486
+ type: "tool_call_streaming_start",
487
+ value
488
+ };
489
+ }
490
+ },
491
+ {
492
+ code: "c",
493
+ name: "tool_call_delta",
494
+ parse: (value) => {
495
+ if (value == null || typeof value !== "object" || !("toolCallId" in value) || typeof value.toolCallId !== "string" || !("argsTextDelta" in value) || typeof value.argsTextDelta !== "string") throw new Error("\"tool_call_delta\" parts expect an object with a \"toolCallId\" and \"argsTextDelta\" property.");
496
+ return {
497
+ type: "tool_call_delta",
498
+ value
499
+ };
500
+ }
501
+ },
502
+ {
503
+ code: "d",
504
+ name: "finish_message",
505
+ parse: (value) => {
506
+ if (value == null || typeof value !== "object" || !("finishReason" in value) || typeof value.finishReason !== "string") throw new Error("\"finish_message\" parts expect an object with a \"finishReason\" property.");
507
+ const result = { finishReason: value.finishReason };
508
+ if ("usage" in value && value.usage != null && typeof value.usage === "object" && "promptTokens" in value.usage && "completionTokens" in value.usage) result.usage = {
509
+ promptTokens: typeof value.usage.promptTokens === "number" ? value.usage.promptTokens : NaN,
510
+ completionTokens: typeof value.usage.completionTokens === "number" ? value.usage.completionTokens : NaN
511
+ };
512
+ return {
513
+ type: "finish_message",
514
+ value: result
515
+ };
516
+ }
517
+ },
518
+ {
519
+ code: "e",
520
+ name: "finish_step",
521
+ parse: (value) => {
522
+ if (value == null || typeof value !== "object" || !("finishReason" in value) || typeof value.finishReason !== "string") throw new Error("\"finish_step\" parts expect an object with a \"finishReason\" property.");
523
+ const result = {
524
+ finishReason: value.finishReason,
525
+ isContinued: false
526
+ };
527
+ if ("usage" in value && value.usage != null && typeof value.usage === "object" && "promptTokens" in value.usage && "completionTokens" in value.usage) result.usage = {
528
+ promptTokens: typeof value.usage.promptTokens === "number" ? value.usage.promptTokens : NaN,
529
+ completionTokens: typeof value.usage.completionTokens === "number" ? value.usage.completionTokens : NaN
530
+ };
531
+ if ("isContinued" in value && typeof value.isContinued === "boolean") result.isContinued = value.isContinued;
532
+ return {
533
+ type: "finish_step",
534
+ value: result
535
+ };
536
+ }
537
+ },
538
+ {
539
+ code: "f",
540
+ name: "start_step",
541
+ parse: (value) => {
542
+ if (value == null || typeof value !== "object" || !("messageId" in value) || typeof value.messageId !== "string") throw new Error("\"start_step\" parts expect an object with an \"id\" property.");
543
+ return {
544
+ type: "start_step",
545
+ value: { messageId: value.messageId }
546
+ };
547
+ }
548
+ },
549
+ {
550
+ code: "g",
551
+ name: "reasoning",
552
+ parse: (value) => {
553
+ if (typeof value !== "string") throw new Error("\"reasoning\" parts expect a string value.");
554
+ return {
555
+ type: "reasoning",
556
+ value
557
+ };
558
+ }
559
+ },
560
+ {
561
+ code: "h",
562
+ name: "source",
563
+ parse: (value) => {
564
+ if (value == null || typeof value !== "object") throw new Error("\"source\" parts expect a Source object.");
565
+ return {
566
+ type: "source",
567
+ value
568
+ };
569
+ }
570
+ },
571
+ {
572
+ code: "i",
573
+ name: "redacted_reasoning",
574
+ parse: (value) => {
575
+ if (value == null || typeof value !== "object" || !("data" in value) || typeof value.data !== "string") throw new Error("\"redacted_reasoning\" parts expect an object with a \"data\" property.");
576
+ return {
577
+ type: "redacted_reasoning",
578
+ value: { data: value.data }
579
+ };
580
+ }
581
+ },
582
+ {
583
+ code: "j",
584
+ name: "reasoning_signature",
585
+ parse: (value) => {
586
+ if (value == null || typeof value !== "object" || !("signature" in value) || typeof value.signature !== "string") throw new Error("\"reasoning_signature\" parts expect an object with a \"signature\" property.");
587
+ return {
588
+ type: "reasoning_signature",
589
+ value: { signature: value.signature }
590
+ };
591
+ }
592
+ },
593
+ {
594
+ code: "k",
595
+ name: "file",
596
+ parse: (value) => {
597
+ if (value == null || typeof value !== "object" || !("data" in value) || typeof value.data !== "string" || !("mimeType" in value) || typeof value.mimeType !== "string") throw new Error("\"file\" parts expect an object with a \"data\" and \"mimeType\" property.");
598
+ return {
599
+ type: "file",
600
+ value
601
+ };
602
+ }
603
+ }
604
+ ];
605
+ const dataStreamPartsByCode = Object.fromEntries(dataStreamParts.map((part) => [part.code, part]));
606
+ Object.fromEntries(dataStreamParts.map((part) => [part.name, part.code]));
607
+ const validCodes = dataStreamParts.map((part) => part.code);
608
+ /**
609
+ Parses a stream part from a string.
610
+
611
+ @param line The string to parse.
612
+ @returns The parsed stream part.
613
+ @throws An error if the string cannot be parsed.
614
+ */
615
+ const parseDataStreamPart = (line) => {
616
+ const firstSeparatorIndex = line.indexOf(":");
617
+ if (firstSeparatorIndex === -1) throw new Error("Failed to parse stream string. No separator found.");
618
+ const prefix = line.slice(0, firstSeparatorIndex);
619
+ if (!validCodes.includes(prefix)) throw new Error(`Failed to parse stream string. Invalid code ${prefix}.`);
620
+ const code = prefix;
621
+ const textValue = line.slice(firstSeparatorIndex + 1);
622
+ const jsonValue = JSON.parse(textValue);
623
+ return dataStreamPartsByCode[code].parse(jsonValue);
624
+ };
625
+ //#endregion
626
+ //#region src/utils/ai-sdk-v4/fix-json.ts
627
+ function fixJson(input) {
628
+ const stack = ["ROOT"];
629
+ let lastValidIndex = -1;
630
+ let literalStart = null;
631
+ function processValueStart(char, i, swapState) {
632
+ switch (char) {
633
+ case "\"":
634
+ lastValidIndex = i;
635
+ stack.pop();
636
+ stack.push(swapState);
637
+ stack.push("INSIDE_STRING");
638
+ break;
639
+ case "f":
640
+ case "t":
641
+ case "n":
642
+ lastValidIndex = i;
643
+ literalStart = i;
644
+ stack.pop();
645
+ stack.push(swapState);
646
+ stack.push("INSIDE_LITERAL");
647
+ break;
648
+ case "-":
649
+ stack.pop();
650
+ stack.push(swapState);
651
+ stack.push("INSIDE_NUMBER");
652
+ break;
653
+ case "0":
654
+ case "1":
655
+ case "2":
656
+ case "3":
657
+ case "4":
658
+ case "5":
659
+ case "6":
660
+ case "7":
661
+ case "8":
662
+ case "9":
663
+ lastValidIndex = i;
664
+ stack.pop();
665
+ stack.push(swapState);
666
+ stack.push("INSIDE_NUMBER");
667
+ break;
668
+ case "{":
669
+ lastValidIndex = i;
670
+ stack.pop();
671
+ stack.push(swapState);
672
+ stack.push("INSIDE_OBJECT_START");
673
+ break;
674
+ case "[":
675
+ lastValidIndex = i;
676
+ stack.pop();
677
+ stack.push(swapState);
678
+ stack.push("INSIDE_ARRAY_START");
679
+ break;
680
+ }
681
+ }
682
+ function processAfterObjectValue(char, i) {
683
+ switch (char) {
684
+ case ",":
685
+ stack.pop();
686
+ stack.push("INSIDE_OBJECT_AFTER_COMMA");
687
+ break;
688
+ case "}":
689
+ lastValidIndex = i;
690
+ stack.pop();
691
+ break;
692
+ }
693
+ }
694
+ function processAfterArrayValue(char, i) {
695
+ switch (char) {
696
+ case ",":
697
+ stack.pop();
698
+ stack.push("INSIDE_ARRAY_AFTER_COMMA");
699
+ break;
700
+ case "]":
701
+ lastValidIndex = i;
702
+ stack.pop();
703
+ break;
704
+ }
705
+ }
706
+ for (let i = 0; i < input.length; i++) {
707
+ const char = input[i];
708
+ switch (stack[stack.length - 1]) {
709
+ case "ROOT":
710
+ processValueStart(char, i, "FINISH");
711
+ break;
712
+ case "INSIDE_OBJECT_START":
713
+ switch (char) {
714
+ case "\"":
715
+ stack.pop();
716
+ stack.push("INSIDE_OBJECT_KEY");
717
+ break;
718
+ case "}":
719
+ lastValidIndex = i;
720
+ stack.pop();
721
+ break;
722
+ }
723
+ break;
724
+ case "INSIDE_OBJECT_AFTER_COMMA":
725
+ switch (char) {
726
+ case "\"":
727
+ stack.pop();
728
+ stack.push("INSIDE_OBJECT_KEY");
729
+ break;
730
+ }
731
+ break;
732
+ case "INSIDE_OBJECT_KEY":
733
+ switch (char) {
734
+ case "\"":
735
+ stack.pop();
736
+ stack.push("INSIDE_OBJECT_AFTER_KEY");
737
+ break;
738
+ }
739
+ break;
740
+ case "INSIDE_OBJECT_AFTER_KEY":
741
+ switch (char) {
742
+ case ":":
743
+ stack.pop();
744
+ stack.push("INSIDE_OBJECT_BEFORE_VALUE");
745
+ break;
746
+ }
747
+ break;
748
+ case "INSIDE_OBJECT_BEFORE_VALUE":
749
+ processValueStart(char, i, "INSIDE_OBJECT_AFTER_VALUE");
750
+ break;
751
+ case "INSIDE_OBJECT_AFTER_VALUE":
752
+ processAfterObjectValue(char, i);
753
+ break;
754
+ case "INSIDE_STRING":
755
+ switch (char) {
756
+ case "\"":
757
+ stack.pop();
758
+ lastValidIndex = i;
759
+ break;
760
+ case "\\":
761
+ stack.push("INSIDE_STRING_ESCAPE");
762
+ break;
763
+ default: lastValidIndex = i;
764
+ }
765
+ break;
766
+ case "INSIDE_ARRAY_START":
767
+ switch (char) {
768
+ case "]":
769
+ lastValidIndex = i;
770
+ stack.pop();
771
+ break;
772
+ default:
773
+ lastValidIndex = i;
774
+ processValueStart(char, i, "INSIDE_ARRAY_AFTER_VALUE");
775
+ break;
776
+ }
777
+ break;
778
+ case "INSIDE_ARRAY_AFTER_VALUE":
779
+ switch (char) {
780
+ case ",":
781
+ stack.pop();
782
+ stack.push("INSIDE_ARRAY_AFTER_COMMA");
783
+ break;
784
+ case "]":
785
+ lastValidIndex = i;
786
+ stack.pop();
787
+ break;
788
+ default:
789
+ lastValidIndex = i;
790
+ break;
791
+ }
792
+ break;
793
+ case "INSIDE_ARRAY_AFTER_COMMA":
794
+ processValueStart(char, i, "INSIDE_ARRAY_AFTER_VALUE");
795
+ break;
796
+ case "INSIDE_STRING_ESCAPE":
797
+ stack.pop();
798
+ lastValidIndex = i;
799
+ break;
800
+ case "INSIDE_NUMBER":
801
+ switch (char) {
802
+ case "0":
803
+ case "1":
804
+ case "2":
805
+ case "3":
806
+ case "4":
807
+ case "5":
808
+ case "6":
809
+ case "7":
810
+ case "8":
811
+ case "9":
812
+ lastValidIndex = i;
813
+ break;
814
+ case "e":
815
+ case "E":
816
+ case "-":
817
+ case ".": break;
818
+ case ",":
819
+ stack.pop();
820
+ if (stack[stack.length - 1] === "INSIDE_ARRAY_AFTER_VALUE") processAfterArrayValue(char, i);
821
+ if (stack[stack.length - 1] === "INSIDE_OBJECT_AFTER_VALUE") processAfterObjectValue(char, i);
822
+ break;
823
+ case "}":
824
+ stack.pop();
825
+ if (stack[stack.length - 1] === "INSIDE_OBJECT_AFTER_VALUE") processAfterObjectValue(char, i);
826
+ break;
827
+ case "]":
828
+ stack.pop();
829
+ if (stack[stack.length - 1] === "INSIDE_ARRAY_AFTER_VALUE") processAfterArrayValue(char, i);
830
+ break;
831
+ default:
832
+ stack.pop();
833
+ break;
834
+ }
835
+ break;
836
+ case "INSIDE_LITERAL": {
837
+ const partialLiteral = input.substring(literalStart, i + 1);
838
+ if (!"false".startsWith(partialLiteral) && !"true".startsWith(partialLiteral) && !"null".startsWith(partialLiteral)) {
839
+ stack.pop();
840
+ if (stack[stack.length - 1] === "INSIDE_OBJECT_AFTER_VALUE") processAfterObjectValue(char, i);
841
+ else if (stack[stack.length - 1] === "INSIDE_ARRAY_AFTER_VALUE") processAfterArrayValue(char, i);
842
+ } else lastValidIndex = i;
843
+ break;
844
+ }
845
+ }
846
+ }
847
+ let result = input.slice(0, lastValidIndex + 1);
848
+ for (let i = stack.length - 1; i >= 0; i--) switch (stack[i]) {
849
+ case "INSIDE_STRING":
850
+ result += "\"";
851
+ break;
852
+ case "INSIDE_OBJECT_KEY":
853
+ case "INSIDE_OBJECT_AFTER_KEY":
854
+ case "INSIDE_OBJECT_AFTER_COMMA":
855
+ case "INSIDE_OBJECT_START":
856
+ case "INSIDE_OBJECT_BEFORE_VALUE":
857
+ case "INSIDE_OBJECT_AFTER_VALUE":
858
+ result += "}";
859
+ break;
860
+ case "INSIDE_ARRAY_START":
861
+ case "INSIDE_ARRAY_AFTER_COMMA":
862
+ case "INSIDE_ARRAY_AFTER_VALUE":
863
+ result += "]";
864
+ break;
865
+ case "INSIDE_LITERAL": {
866
+ const partialLiteral = input.substring(literalStart, input.length);
867
+ if ("true".startsWith(partialLiteral)) result += "true".slice(partialLiteral.length);
868
+ else if ("false".startsWith(partialLiteral)) result += "false".slice(partialLiteral.length);
869
+ else if ("null".startsWith(partialLiteral)) result += "null".slice(partialLiteral.length);
870
+ }
871
+ }
872
+ return result;
873
+ }
874
+ //#endregion
875
+ //#region src/utils/ai-sdk-v4/parse-partial-json.ts
876
+ function tryParse(text) {
877
+ try {
878
+ return {
879
+ success: true,
880
+ value: JSON.parse(text)
881
+ };
882
+ } catch {
883
+ return { success: false };
884
+ }
885
+ }
886
+ function parsePartialJson(jsonText) {
887
+ if (jsonText === void 0) return {
888
+ value: void 0,
889
+ state: "undefined-input"
890
+ };
891
+ let result = tryParse(jsonText);
892
+ if (result.success) return {
893
+ value: result.value,
894
+ state: "successful-parse"
895
+ };
896
+ result = tryParse(fixJson(jsonText));
897
+ if (result.success) return {
898
+ value: result.value,
899
+ state: "repaired-parse"
900
+ };
901
+ return {
902
+ value: void 0,
903
+ state: "failed-parse"
904
+ };
905
+ }
906
+ //#endregion
907
+ //#region src/utils/ai-sdk-v4/process-data-stream.ts
908
+ const NEWLINE = "\n".charCodeAt(0);
909
+ function concatChunks(chunks, totalLength) {
910
+ const concatenatedChunks = new Uint8Array(totalLength);
911
+ let offset = 0;
912
+ for (const chunk of chunks) {
913
+ concatenatedChunks.set(chunk, offset);
914
+ offset += chunk.length;
915
+ }
916
+ chunks.length = 0;
917
+ return concatenatedChunks;
918
+ }
919
+ async function processDataStream({ stream, onTextPart, onReasoningPart, onReasoningSignaturePart, onRedactedReasoningPart, onSourcePart, onFilePart, onDataPart, onErrorPart, onToolCallStreamingStartPart, onToolCallDeltaPart, onToolCallPart, onToolResultPart, onMessageAnnotationsPart, onFinishMessagePart, onFinishStepPart, onStartStepPart }) {
920
+ const reader = stream.getReader();
921
+ const decoder = new TextDecoder();
922
+ const chunks = [];
923
+ let totalLength = 0;
924
+ while (true) {
925
+ const { value } = await reader.read();
926
+ if (value) {
927
+ chunks.push(value);
928
+ totalLength += value.length;
929
+ if (value[value.length - 1] !== NEWLINE) continue;
930
+ }
931
+ if (chunks.length === 0) break;
932
+ const concatenatedChunks = concatChunks(chunks, totalLength);
933
+ totalLength = 0;
934
+ const streamParts = decoder.decode(concatenatedChunks, { stream: true }).split("\n").filter((line) => line !== "").map(parseDataStreamPart);
935
+ for (const { type, value } of streamParts) switch (type) {
936
+ case "text":
937
+ await onTextPart?.(value);
938
+ break;
939
+ case "reasoning":
940
+ await onReasoningPart?.(value);
941
+ break;
942
+ case "reasoning_signature":
943
+ await onReasoningSignaturePart?.(value);
944
+ break;
945
+ case "redacted_reasoning":
946
+ await onRedactedReasoningPart?.(value);
947
+ break;
948
+ case "file":
949
+ await onFilePart?.(value);
950
+ break;
951
+ case "source":
952
+ await onSourcePart?.(value);
953
+ break;
954
+ case "data":
955
+ await onDataPart?.(value);
956
+ break;
957
+ case "error":
958
+ await onErrorPart?.(value);
959
+ break;
960
+ case "message_annotations":
961
+ await onMessageAnnotationsPart?.(value);
962
+ break;
963
+ case "tool_call_streaming_start":
964
+ await onToolCallStreamingStartPart?.(value);
965
+ break;
966
+ case "tool_call_delta":
967
+ await onToolCallDeltaPart?.(value);
968
+ break;
969
+ case "tool_call":
970
+ await onToolCallPart?.(value);
971
+ break;
972
+ case "tool_result":
973
+ await onToolResultPart?.(value);
974
+ break;
975
+ case "finish_message":
976
+ await onFinishMessagePart?.(value);
977
+ break;
978
+ case "finish_step":
979
+ await onFinishStepPart?.(value);
980
+ break;
981
+ case "start_step":
982
+ await onStartStepPart?.(value);
983
+ break;
984
+ default: throw new Error(`Unknown stream part type: ${type}`);
985
+ }
986
+ }
987
+ }
988
+ //#endregion
413
989
  //#region src/utils/client-tool-model-output.ts
414
990
  /**
415
991
  * Normalize modelOutput from toModelOutput() to the AI SDK V2 tool result
@@ -1543,7 +2119,7 @@ var Agent = class extends BaseResource {
1543
2119
  replaceLastMessage
1544
2120
  });
1545
2121
  }
1546
- await (0, _ai_sdk_ui_utils.processDataStream)({
2122
+ await processDataStream({
1547
2123
  stream,
1548
2124
  onTextPart(value) {
1549
2125
  if (currentTextPart == null) {
@@ -1634,7 +2210,7 @@ var Agent = class extends BaseResource {
1634
2210
  onToolCallDeltaPart(value) {
1635
2211
  const partialToolCall = partialToolCalls[value.toolCallId];
1636
2212
  partialToolCall.text += value.argsTextDelta;
1637
- const { value: partialArgs } = (0, _ai_sdk_ui_utils.parsePartialJson)(partialToolCall.text);
2213
+ const { value: partialArgs } = parsePartialJson(partialToolCall.text);
1638
2214
  const invocation = {
1639
2215
  state: "partial-call",
1640
2216
  step: partialToolCall.step,
@@ -1649,7 +2225,7 @@ var Agent = class extends BaseResource {
1649
2225
  },
1650
2226
  async onToolCallPart(value) {
1651
2227
  const partialToolCall = partialToolCalls[value.toolCallId];
1652
- const streamedArgs = partialToolCall?.text ? (0, _ai_sdk_ui_utils.parsePartialJson)(partialToolCall.text).value : void 0;
2228
+ const streamedArgs = partialToolCall?.text ? parsePartialJson(partialToolCall.text).value : void 0;
1653
2229
  const toolCall = streamedArgs === void 0 ? value : {
1654
2230
  ...value,
1655
2231
  args: streamedArgs
@@ -1764,7 +2340,7 @@ var Agent = class extends BaseResource {
1764
2340
  headers: response.headers
1765
2341
  });
1766
2342
  streamResponse.processDataStream = async (options = {}) => {
1767
- await (0, _ai_sdk_ui_utils.processDataStream)({
2343
+ await processDataStream({
1768
2344
  stream: streamResponse.body,
1769
2345
  ...options
1770
2346
  });
@@ -1888,7 +2464,7 @@ var Agent = class extends BaseResource {
1888
2464
  break;
1889
2465
  case "tool-call": {
1890
2466
  const partialToolCall = partialToolCalls[chunk.payload.toolCallId];
1891
- const streamedArgs = partialToolCall?.text ? (0, _ai_sdk_ui_utils.parsePartialJson)(partialToolCall.text).value : void 0;
2467
+ const streamedArgs = partialToolCall?.text ? parsePartialJson(partialToolCall.text).value : void 0;
1892
2468
  const toolCall = streamedArgs === void 0 ? chunk.payload : {
1893
2469
  ...chunk.payload,
1894
2470
  args: streamedArgs
@@ -1947,7 +2523,7 @@ var Agent = class extends BaseResource {
1947
2523
  case "tool-call-delta": {
1948
2524
  const partialToolCall = partialToolCalls[chunk.payload.toolCallId];
1949
2525
  partialToolCall.text += chunk.payload.argsTextDelta;
1950
- const { value: partialArgs } = (0, _ai_sdk_ui_utils.parsePartialJson)(partialToolCall.text);
2526
+ const { value: partialArgs } = parsePartialJson(partialToolCall.text);
1951
2527
  const invocation = {
1952
2528
  state: "partial-call",
1953
2529
  step: partialToolCall.step,