@superinterface/react 2.1.2 → 2.3.0

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.js CHANGED
@@ -654,8 +654,23 @@ var AssistantNameContext = createContext4("Assistant");
654
654
  // src/components/threads/Thread/Messages/Content/MessageGroup/Content/index.tsx
655
655
  import { Flex as Flex10 } from "@radix-ui/themes";
656
656
  // src/components/threads/Thread/Message/index.tsx
657
- import { useMemo as useMemo4 } from "react";
657
+ import { useMemo as useMemo4, Fragment } from "react";
658
658
  import { Box as Box9 } from "@radix-ui/themes";
659
+ // src/components/skeletons/StartingContentSkeleton/index.tsx
660
+ import { Skeleton as Skeleton2 } from "@radix-ui/themes";
661
+ import { jsx as jsx7 } from "react/jsx-runtime";
662
+ var StartingContentSkeleton = function() {
663
+ return /* @__PURE__ */ jsx7(Skeleton2, {
664
+ loading: true,
665
+ mt: "1",
666
+ height: "var(--space-4)",
667
+ width: "var(--space-4)",
668
+ style: {
669
+ borderRadius: "var(--radius-6)",
670
+ flexShrink: 0
671
+ }
672
+ });
673
+ };
659
674
  // src/components/runSteps/RunSteps/index.tsx
660
675
  import { Flex as Flex9 } from "@radix-ui/themes";
661
676
  // src/components/runSteps/RunStep/ToolCalls/index.tsx
@@ -671,14 +686,14 @@ var FunctionComponentsContext = createContext5({});
671
686
  import { PopoverRoot, PopoverContent } from "@radix-ui/themes";
672
687
  // src/components/toolCalls/ToolCallBase/index.tsx
673
688
  import { Flex as Flex5, Button, PopoverTrigger } from "@radix-ui/themes";
674
- import { jsx as jsx7 } from "react/jsx-runtime";
689
+ import { jsx as jsx8 } from "react/jsx-runtime";
675
690
  var ToolCallBase = function(param) {
676
691
  var children = param.children;
677
- return /* @__PURE__ */ jsx7(Flex5, {
692
+ return /* @__PURE__ */ jsx8(Flex5, {
678
693
  py: "1",
679
694
  ml: "-2",
680
- children: /* @__PURE__ */ jsx7(PopoverTrigger, {
681
- children: /* @__PURE__ */ jsx7(Button, {
695
+ children: /* @__PURE__ */ jsx8(PopoverTrigger, {
696
+ children: /* @__PURE__ */ jsx8(Button, {
682
697
  size: "1",
683
698
  color: "gold",
684
699
  variant: "outline",
@@ -692,31 +707,31 @@ var ToolCallBase = function(param) {
692
707
  };
693
708
  // src/components/toolCalls/ToolCallBase/ToolCallTitle.tsx
694
709
  import { Text as Text2 } from "@radix-ui/themes";
695
- import { jsx as jsx8 } from "react/jsx-runtime";
710
+ import { jsx as jsx9 } from "react/jsx-runtime";
696
711
  var ToolCallTitle = function(param) {
697
712
  var children = param.children;
698
- return /* @__PURE__ */ jsx8(Text2, {
713
+ return /* @__PURE__ */ jsx9(Text2, {
699
714
  weight: "regular",
700
715
  children: children
701
716
  });
702
717
  };
703
718
  // src/components/functions/FunctionBase/Icon.tsx
704
719
  import { CircleIcon, CircleBackslashIcon, CheckCircledIcon } from "@radix-ui/react-icons";
705
- import { jsx as jsx9 } from "react/jsx-runtime";
720
+ import { jsx as jsx10 } from "react/jsx-runtime";
706
721
  var Icon = function(param) {
707
722
  var runStep = param.runStep;
708
723
  if (runStep.completed_at) {
709
- return /* @__PURE__ */ jsx9(CheckCircledIcon, {});
724
+ return /* @__PURE__ */ jsx10(CheckCircledIcon, {});
710
725
  } else if (runStep.cancelled_at || runStep.failed_at || runStep.status === "expired") {
711
- return /* @__PURE__ */ jsx9(CircleBackslashIcon, {});
726
+ return /* @__PURE__ */ jsx10(CircleBackslashIcon, {});
712
727
  } else {
713
- return /* @__PURE__ */ jsx9(CircleIcon, {});
728
+ return /* @__PURE__ */ jsx10(CircleIcon, {});
714
729
  }
715
730
  };
716
731
  // src/components/functions/FunctionBase/Content.tsx
717
732
  import { useMemo as useMemo3 } from "react";
718
733
  import { Code, Box as Box2 } from "@radix-ui/themes";
719
- import { jsx as jsx10, jsxs as jsxs2 } from "react/jsx-runtime";
734
+ import { jsx as jsx11, jsxs as jsxs2 } from "react/jsx-runtime";
720
735
  var Content = function(param) {
721
736
  var fn = param.fn;
722
737
  var args = useMemo3(function() {
@@ -755,36 +770,36 @@ var Content = function(param) {
755
770
  wordBreak: "break-word"
756
771
  },
757
772
  children: [
758
- /* @__PURE__ */ jsx10(Box2, {
773
+ /* @__PURE__ */ jsx11(Box2, {
759
774
  children: args && JSON.stringify(args, null, 2)
760
775
  }),
761
- /* @__PURE__ */ jsx10(Box2, {
776
+ /* @__PURE__ */ jsx11(Box2, {
762
777
  children: output && JSON.stringify(output, null, 2)
763
778
  })
764
779
  ]
765
780
  });
766
781
  };
767
782
  // src/components/functions/FunctionBase/index.tsx
768
- import { jsx as jsx11, jsxs as jsxs3 } from "react/jsx-runtime";
783
+ import { jsx as jsx12, jsxs as jsxs3 } from "react/jsx-runtime";
769
784
  var FunctionBase = function(param) {
770
785
  var fn = param.fn, runStep = param.runStep, title2 = param.title;
771
786
  return /* @__PURE__ */ jsxs3(PopoverRoot, {
772
787
  children: [
773
788
  /* @__PURE__ */ jsxs3(ToolCallBase, {
774
789
  children: [
775
- /* @__PURE__ */ jsx11(Icon, {
790
+ /* @__PURE__ */ jsx12(Icon, {
776
791
  runStep: runStep
777
792
  }),
778
- /* @__PURE__ */ jsx11(ToolCallTitle, {
793
+ /* @__PURE__ */ jsx12(ToolCallTitle, {
779
794
  children: title2
780
795
  })
781
796
  ]
782
797
  }),
783
- /* @__PURE__ */ jsx11(PopoverContent, {
798
+ /* @__PURE__ */ jsx12(PopoverContent, {
784
799
  style: {
785
- maxHeight: "500px"
800
+ maxHeight: "200px"
786
801
  },
787
- children: /* @__PURE__ */ jsx11(Content, {
802
+ children: /* @__PURE__ */ jsx12(Content, {
788
803
  fn: fn
789
804
  })
790
805
  })
@@ -803,10 +818,10 @@ var title = function(param) {
803
818
  }
804
819
  };
805
820
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/DefaultFunction/index.tsx
806
- import { jsx as jsx12 } from "react/jsx-runtime";
821
+ import { jsx as jsx13 } from "react/jsx-runtime";
807
822
  var DefaultFunction = function(param) {
808
823
  var fn = param.fn, runStep = param.runStep;
809
- return /* @__PURE__ */ jsx12(FunctionBase, {
824
+ return /* @__PURE__ */ jsx13(FunctionBase, {
810
825
  fn: fn,
811
826
  runStep: runStep,
812
827
  title: title({
@@ -816,66 +831,66 @@ var DefaultFunction = function(param) {
816
831
  });
817
832
  };
818
833
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/index.tsx
819
- import { jsx as jsx13 } from "react/jsx-runtime";
834
+ import { jsx as jsx14 } from "react/jsx-runtime";
820
835
  var Fn = function(param) {
821
836
  var fn = param.fn, runStep = param.runStep;
822
837
  var functionComponentsContext = useContext4(FunctionComponentsContext);
823
838
  var Component = functionComponentsContext[fn.name] || DefaultFunction;
824
839
  return(// @ts-ignore-next-line
825
- /* @__PURE__ */ jsx13(Component, {
840
+ /* @__PURE__ */ jsx14(Component, {
826
841
  fn: fn,
827
842
  runStep: runStep
828
843
  }));
829
844
  };
830
845
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/CodeInterpreter/index.tsx
831
846
  import { Flex as Flex6 } from "@radix-ui/themes";
832
- import { jsx as jsx14 } from "react/jsx-runtime";
847
+ import { jsx as jsx15 } from "react/jsx-runtime";
833
848
  var CodeInterpreter = function(param) {
834
849
  var codeInterpreter = param.codeInterpreter;
835
- return /* @__PURE__ */ jsx14(Flex6, {
850
+ return /* @__PURE__ */ jsx15(Flex6, {
836
851
  children: codeInterpreter.input
837
852
  });
838
853
  };
839
854
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/index.tsx
840
- import { jsx as jsx15 } from "react/jsx-runtime";
855
+ import { jsx as jsx16 } from "react/jsx-runtime";
841
856
  var ToolCall = function(param) {
842
857
  var toolCall = param.toolCall, runStep = param.runStep;
843
858
  if (toolCall.type === "function") {
844
- return /* @__PURE__ */ jsx15(Fn, {
859
+ return /* @__PURE__ */ jsx16(Fn, {
845
860
  fn: toolCall.function,
846
861
  runStep: runStep
847
862
  });
848
863
  }
849
864
  if (toolCall.type === "code_interpreter") {
850
- return /* @__PURE__ */ jsx15(CodeInterpreter, {
865
+ return /* @__PURE__ */ jsx16(CodeInterpreter, {
851
866
  codeInterpreter: toolCall.code_interpreter,
852
867
  runStep: runStep
853
868
  });
854
869
  }
855
- return /* @__PURE__ */ jsx15(Flex7, {
870
+ return /* @__PURE__ */ jsx16(Flex7, {
856
871
  children: toolCall.type
857
872
  });
858
873
  };
859
874
  // src/components/runSteps/RunStep/ToolCalls/Starting/index.tsx
860
875
  import { PopoverRoot as PopoverRoot2, PopoverContent as PopoverContent2, Text as Text3 } from "@radix-ui/themes";
861
876
  import { CircleIcon as CircleIcon2 } from "@radix-ui/react-icons";
862
- import { jsx as jsx16, jsxs as jsxs4 } from "react/jsx-runtime";
877
+ import { jsx as jsx17, jsxs as jsxs4 } from "react/jsx-runtime";
863
878
  var Starting = function() {
864
879
  return /* @__PURE__ */ jsxs4(PopoverRoot2, {
865
880
  children: [
866
881
  /* @__PURE__ */ jsxs4(ToolCallBase, {
867
882
  children: [
868
- /* @__PURE__ */ jsx16(CircleIcon2, {}),
869
- /* @__PURE__ */ jsx16(ToolCallTitle, {
883
+ /* @__PURE__ */ jsx17(CircleIcon2, {}),
884
+ /* @__PURE__ */ jsx17(ToolCallTitle, {
870
885
  children: "Starting actions"
871
886
  })
872
887
  ]
873
888
  }),
874
- /* @__PURE__ */ jsx16(PopoverContent2, {
889
+ /* @__PURE__ */ jsx17(PopoverContent2, {
875
890
  style: {
876
891
  maxHeight: "500px"
877
892
  },
878
- children: /* @__PURE__ */ jsx16(Text3, {
893
+ children: /* @__PURE__ */ jsx17(Text3, {
879
894
  children: "Getting ready to connect to domain API"
880
895
  })
881
896
  })
@@ -883,15 +898,15 @@ var Starting = function() {
883
898
  });
884
899
  };
885
900
  // src/components/runSteps/RunStep/ToolCalls/index.tsx
886
- import { jsx as jsx17, jsxs as jsxs5 } from "react/jsx-runtime";
901
+ import { jsx as jsx18, jsxs as jsxs5 } from "react/jsx-runtime";
887
902
  var ToolCalls = function(param) {
888
903
  var stepDetails = param.stepDetails, runStep = param.runStep;
889
904
  return /* @__PURE__ */ jsxs5(Flex8, {
890
905
  direction: "column",
891
906
  children: [
892
- !stepDetails.tool_calls.length && /* @__PURE__ */ jsx17(Starting, {}),
907
+ !stepDetails.tool_calls.length && /* @__PURE__ */ jsx18(Starting, {}),
893
908
  stepDetails.tool_calls.map(function(toolCall) {
894
- return /* @__PURE__ */ jsx17(ToolCall, {
909
+ return /* @__PURE__ */ jsx18(ToolCall, {
895
910
  toolCall: toolCall,
896
911
  runStep: runStep
897
912
  }, toolCall.id);
@@ -900,11 +915,11 @@ var ToolCalls = function(param) {
900
915
  });
901
916
  };
902
917
  // src/components/runSteps/RunStep/index.tsx
903
- import { jsx as jsx18 } from "react/jsx-runtime";
918
+ import { jsx as jsx19 } from "react/jsx-runtime";
904
919
  var RunStep = function(param) {
905
920
  var runStep = param.runStep;
906
921
  if (runStep.step_details.type === "tool_calls") {
907
- return /* @__PURE__ */ jsx18(ToolCalls, {
922
+ return /* @__PURE__ */ jsx19(ToolCalls, {
908
923
  stepDetails: runStep.step_details,
909
924
  runStep: runStep
910
925
  });
@@ -912,13 +927,13 @@ var RunStep = function(param) {
912
927
  return null;
913
928
  };
914
929
  // src/components/runSteps/RunSteps/index.tsx
915
- import { jsx as jsx19 } from "react/jsx-runtime";
930
+ import { jsx as jsx20 } from "react/jsx-runtime";
916
931
  var RunSteps = function(param) {
917
932
  var runSteps = param.runSteps;
918
- return /* @__PURE__ */ jsx19(Flex9, {
933
+ return /* @__PURE__ */ jsx20(Flex9, {
919
934
  direction: "column-reverse",
920
935
  children: runSteps.map(function(runStep) {
921
- return /* @__PURE__ */ jsx19(RunStep, {
936
+ return /* @__PURE__ */ jsx20(RunStep, {
922
937
  runStep: runStep
923
938
  }, runStep.id);
924
939
  })
@@ -939,12 +954,12 @@ import { useContext as useContext5 } from "react";
939
954
  import { createContext as createContext7 } from "react";
940
955
  // src/contexts/markdown/MarkdownContext/lib/components/Paragraph.tsx
941
956
  import { Box as Box3, Text as Text4 } from "@radix-ui/themes";
942
- import { jsx as jsx20 } from "react/jsx-runtime";
957
+ import { jsx as jsx21 } from "react/jsx-runtime";
943
958
  var Paragraph = function(param) {
944
959
  var children = param.children;
945
- return /* @__PURE__ */ jsx20(Box3, {
960
+ return /* @__PURE__ */ jsx21(Box3, {
946
961
  pb: "3",
947
- children: /* @__PURE__ */ jsx20(Text4, {
962
+ children: /* @__PURE__ */ jsx21(Text4, {
948
963
  size: "3",
949
964
  style: {
950
965
  whiteSpace: "pre-line",
@@ -956,23 +971,23 @@ var Paragraph = function(param) {
956
971
  };
957
972
  // src/contexts/markdown/MarkdownContext/lib/components/Link.tsx
958
973
  import { Link as RadixLink } from "@radix-ui/themes";
959
- import { jsx as jsx21 } from "react/jsx-runtime";
974
+ import { jsx as jsx22 } from "react/jsx-runtime";
960
975
  var Link = function(param) {
961
976
  var children = param.children, href = param.href;
962
- return /* @__PURE__ */ jsx21(RadixLink, {
977
+ return /* @__PURE__ */ jsx22(RadixLink, {
963
978
  href: href,
964
979
  children: children
965
980
  });
966
981
  };
967
982
  // src/contexts/markdown/MarkdownContext/lib/components/UnorderedList.tsx
968
983
  import { Box as Box4 } from "@radix-ui/themes";
969
- import { jsx as jsx22 } from "react/jsx-runtime";
984
+ import { jsx as jsx23 } from "react/jsx-runtime";
970
985
  var UnorderedList = function(param) {
971
986
  var children = param.children;
972
- return /* @__PURE__ */ jsx22(Box4, {
987
+ return /* @__PURE__ */ jsx23(Box4, {
973
988
  pb: "3",
974
989
  asChild: true,
975
- children: /* @__PURE__ */ jsx22("ul", {
990
+ children: /* @__PURE__ */ jsx23("ul", {
976
991
  style: {
977
992
  listStylePosition: "inside"
978
993
  },
@@ -982,13 +997,13 @@ var UnorderedList = function(param) {
982
997
  };
983
998
  // src/contexts/markdown/MarkdownContext/lib/components/OrderedList.tsx
984
999
  import { Box as Box5 } from "@radix-ui/themes";
985
- import { jsx as jsx23 } from "react/jsx-runtime";
1000
+ import { jsx as jsx24 } from "react/jsx-runtime";
986
1001
  var OrderedList = function(param) {
987
1002
  var children = param.children;
988
- return /* @__PURE__ */ jsx23(Box5, {
1003
+ return /* @__PURE__ */ jsx24(Box5, {
989
1004
  pb: "3",
990
1005
  asChild: true,
991
- children: /* @__PURE__ */ jsx23("ol", {
1006
+ children: /* @__PURE__ */ jsx24("ol", {
992
1007
  style: {
993
1008
  listStylePosition: "inside"
994
1009
  },
@@ -998,31 +1013,31 @@ var OrderedList = function(param) {
998
1013
  };
999
1014
  // src/contexts/markdown/MarkdownContext/lib/components/ListItem.tsx
1000
1015
  import { Box as Box6 } from "@radix-ui/themes";
1001
- import { jsx as jsx24 } from "react/jsx-runtime";
1016
+ import { jsx as jsx25 } from "react/jsx-runtime";
1002
1017
  var ListItem = function(param) {
1003
1018
  var children = param.children;
1004
- return /* @__PURE__ */ jsx24(Box6, {
1019
+ return /* @__PURE__ */ jsx25(Box6, {
1005
1020
  pb: "1",
1006
- children: /* @__PURE__ */ jsx24("li", {
1021
+ children: /* @__PURE__ */ jsx25("li", {
1007
1022
  children: children
1008
1023
  })
1009
1024
  });
1010
1025
  };
1011
1026
  // src/contexts/markdown/MarkdownContext/lib/components/Strong.tsx
1012
1027
  import { Strong as RadixStrong } from "@radix-ui/themes";
1013
- import { jsx as jsx25 } from "react/jsx-runtime";
1028
+ import { jsx as jsx26 } from "react/jsx-runtime";
1014
1029
  var Strong = function(param) {
1015
1030
  var children = param.children;
1016
- return /* @__PURE__ */ jsx25(RadixStrong, {
1031
+ return /* @__PURE__ */ jsx26(RadixStrong, {
1017
1032
  children: children
1018
1033
  });
1019
1034
  };
1020
1035
  // src/contexts/markdown/MarkdownContext/lib/components/Pre.tsx
1021
1036
  import { Box as Box7 } from "@radix-ui/themes";
1022
- import { jsx as jsx26 } from "react/jsx-runtime";
1037
+ import { jsx as jsx27 } from "react/jsx-runtime";
1023
1038
  var Pre = function(param) {
1024
1039
  var children = param.children;
1025
- return /* @__PURE__ */ jsx26(Box7, {
1040
+ return /* @__PURE__ */ jsx27(Box7, {
1026
1041
  style: {
1027
1042
  whiteSpace: "pre-wrap",
1028
1043
  wordBreak: "break-word"
@@ -1032,20 +1047,20 @@ var Pre = function(param) {
1032
1047
  };
1033
1048
  // src/contexts/markdown/MarkdownContext/lib/components/Code.tsx
1034
1049
  import { Code as RadixCode } from "@radix-ui/themes";
1035
- import { jsx as jsx27 } from "react/jsx-runtime";
1050
+ import { jsx as jsx28 } from "react/jsx-runtime";
1036
1051
  var Code2 = function(param) {
1037
1052
  var children = param.children;
1038
- return /* @__PURE__ */ jsx27(RadixCode, {
1053
+ return /* @__PURE__ */ jsx28(RadixCode, {
1039
1054
  children: children
1040
1055
  });
1041
1056
  };
1042
1057
  // src/contexts/markdown/MarkdownContext/lib/components/Img.tsx
1043
1058
  import { Box as Box8 } from "@radix-ui/themes";
1044
- import { jsx as jsx28 } from "react/jsx-runtime";
1059
+ import { jsx as jsx29 } from "react/jsx-runtime";
1045
1060
  var Img = function(props) {
1046
- return /* @__PURE__ */ jsx28(Box8, {
1061
+ return /* @__PURE__ */ jsx29(Box8, {
1047
1062
  pb: "3",
1048
- children: /* @__PURE__ */ jsx28("img", _object_spread_props(_object_spread({}, props), {
1063
+ children: /* @__PURE__ */ jsx29("img", _object_spread_props(_object_spread({}, props), {
1049
1064
  style: {
1050
1065
  maxWidth: "100%",
1051
1066
  height: "auto"
@@ -1083,7 +1098,7 @@ var TextContent = function(param) {
1083
1098
  return useRemarkSync(content.text.value, markdownContext);
1084
1099
  };
1085
1100
  // src/components/threads/Thread/Message/index.tsx
1086
- import { jsx as jsx29, jsxs as jsxs6 } from "react/jsx-runtime";
1101
+ import { jsx as jsx30, jsxs as jsxs6 } from "react/jsx-runtime";
1087
1102
  var Message = function(param) {
1088
1103
  var message = param.message;
1089
1104
  var _useMemo4 = _sliced_to_array(useMemo4(function() {
@@ -1118,23 +1133,28 @@ var Message = function(param) {
1118
1133
  }, [
1119
1134
  message
1120
1135
  ]), 2), olderRunSteps = _useMemo4[0], laterRunSteps = _useMemo4[1];
1121
- return /* @__PURE__ */ jsx29(Provider, {
1136
+ return /* @__PURE__ */ jsx30(Provider, {
1122
1137
  value: {
1123
1138
  message: message
1124
1139
  },
1125
1140
  children: /* @__PURE__ */ jsxs6(Box9, {
1126
1141
  children: [
1127
- /* @__PURE__ */ jsx29(RunSteps, {
1142
+ /* @__PURE__ */ jsx30(RunSteps, {
1128
1143
  runSteps: olderRunSteps
1129
1144
  }),
1130
- message.content.map(function(content, index) {
1131
- return /* @__PURE__ */ jsx29(Box9, {
1132
- children: content.type === "text" && /* @__PURE__ */ jsx29(TextContent, {
1133
- content: content
1134
- })
1135
- }, index);
1145
+ /* @__PURE__ */ jsxs6(Box9, {
1146
+ children: [
1147
+ message.content.map(function(content, index) {
1148
+ return /* @__PURE__ */ jsx30(Fragment, {
1149
+ children: content.type === "text" && /* @__PURE__ */ jsx30(TextContent, {
1150
+ content: content
1151
+ })
1152
+ }, index);
1153
+ }),
1154
+ message.status === "in_progress" && /* @__PURE__ */ jsx30(StartingContentSkeleton, {})
1155
+ ]
1136
1156
  }),
1137
- /* @__PURE__ */ jsx29(RunSteps, {
1157
+ /* @__PURE__ */ jsx30(RunSteps, {
1138
1158
  runSteps: laterRunSteps
1139
1159
  })
1140
1160
  ]
@@ -1142,36 +1162,36 @@ var Message = function(param) {
1142
1162
  });
1143
1163
  };
1144
1164
  // src/components/threads/Thread/Messages/Content/MessageGroup/Content/index.tsx
1145
- import { jsx as jsx30 } from "react/jsx-runtime";
1165
+ import { jsx as jsx31 } from "react/jsx-runtime";
1146
1166
  var Content2 = function(param) {
1147
1167
  var messageGroup = param.messageGroup;
1148
- return /* @__PURE__ */ jsx30(Flex10, {
1168
+ return /* @__PURE__ */ jsx31(Flex10, {
1149
1169
  direction: "column-reverse",
1150
1170
  children: messageGroup.messages.map(function(message) {
1151
- return /* @__PURE__ */ jsx30(Message, {
1171
+ return /* @__PURE__ */ jsx31(Message, {
1152
1172
  message: message
1153
1173
  }, message.id);
1154
1174
  })
1155
1175
  });
1156
1176
  };
1157
1177
  // src/components/threads/Thread/Messages/Content/MessageGroup/index.tsx
1158
- import { jsx as jsx31, jsxs as jsxs7 } from "react/jsx-runtime";
1178
+ import { jsx as jsx32, jsxs as jsxs7 } from "react/jsx-runtime";
1159
1179
  var MessageGroup = function(param) {
1160
1180
  var messageGroup = param.messageGroup;
1161
1181
  var assistantNameContext = useContext6(AssistantNameContext);
1162
1182
  return /* @__PURE__ */ jsxs7(MessageGroupBase, {
1163
1183
  children: [
1164
- messageGroup.role === "user" ? /* @__PURE__ */ jsx31(Avatar3, {
1165
- fallback: /* @__PURE__ */ jsx31(PersonIcon, {}),
1184
+ messageGroup.role === "user" ? /* @__PURE__ */ jsx32(Avatar3, {
1185
+ fallback: /* @__PURE__ */ jsx32(PersonIcon, {}),
1166
1186
  size: "1"
1167
- }) : /* @__PURE__ */ jsx31(AssistantAvatar, {}),
1187
+ }) : /* @__PURE__ */ jsx32(AssistantAvatar, {}),
1168
1188
  /* @__PURE__ */ jsxs7(Box10, {
1169
1189
  flexGrow: "1",
1170
1190
  children: [
1171
- /* @__PURE__ */ jsx31(Name, {
1191
+ /* @__PURE__ */ jsx32(Name, {
1172
1192
  children: messageGroup.role === "user" ? "You" : assistantNameContext
1173
1193
  }),
1174
- /* @__PURE__ */ jsx31(Content2, {
1194
+ /* @__PURE__ */ jsx32(Content2, {
1175
1195
  messageGroup: messageGroup
1176
1196
  })
1177
1197
  ]
@@ -1180,7 +1200,7 @@ var MessageGroup = function(param) {
1180
1200
  });
1181
1201
  };
1182
1202
  // src/components/threads/Thread/Messages/Content/index.tsx
1183
- import { Fragment, jsx as jsx32 } from "react/jsx-runtime";
1203
+ import { Fragment as Fragment2, jsx as jsx33 } from "react/jsx-runtime";
1184
1204
  var Content3 = function() {
1185
1205
  var _useMessages = useMessages(), messages2 = _useMessages.messages, isLoading = _useMessages.isLoading, isLoadingError = _useMessages.isLoadingError;
1186
1206
  var addToast = useToasts().addToast;
@@ -1199,33 +1219,18 @@ var Content3 = function() {
1199
1219
  addToast
1200
1220
  ]);
1201
1221
  if (isLoading || isLoadingError) {
1202
- return /* @__PURE__ */ jsx32(MessagesSkeleton, {});
1222
+ return /* @__PURE__ */ jsx33(MessagesSkeleton, {});
1203
1223
  }
1204
- return /* @__PURE__ */ jsx32(Fragment, {
1224
+ return /* @__PURE__ */ jsx33(Fragment2, {
1205
1225
  children: messageGroups2.map(function(messageGroup) {
1206
- return /* @__PURE__ */ jsx32(MessageGroup, {
1226
+ return /* @__PURE__ */ jsx33(MessageGroup, {
1207
1227
  messageGroup: messageGroup
1208
1228
  }, messageGroup.id);
1209
1229
  })
1210
1230
  });
1211
1231
  };
1212
1232
  // src/components/threads/Thread/Messages/Progress/index.tsx
1213
- import { Box as Box12 } from "@radix-ui/themes";
1214
- // src/components/skeletons/StartingContentSkeleton/index.tsx
1215
- import { Skeleton as Skeleton2 } from "@radix-ui/themes";
1216
- import { jsx as jsx33 } from "react/jsx-runtime";
1217
- var StartingContentSkeleton = function() {
1218
- return /* @__PURE__ */ jsx33(Skeleton2, {
1219
- loading: true,
1220
- mt: "1",
1221
- height: "var(--space-4)",
1222
- width: "var(--space-4)",
1223
- style: {
1224
- borderRadius: "var(--radius-6)",
1225
- flexShrink: 0
1226
- }
1227
- });
1228
- };
1233
+ import { useMemo as useMemo7 } from "react";
1229
1234
  // src/components/skeletons/StartingSkeleton/index.tsx
1230
1235
  import { useContext as useContext7 } from "react";
1231
1236
  import { Box as Box11 } from "@radix-ui/themes";
@@ -1260,161 +1265,50 @@ var useLatestMessage = function() {
1260
1265
  props
1261
1266
  ]);
1262
1267
  };
1263
- // src/hooks/runs/useIsRunActive/index.tsx
1264
- import { useMemo as useMemo8 } from "react";
1265
- import { useIsMutating } from "@tanstack/react-query";
1266
- // src/hooks/runs/useLatestRun/index.ts
1267
- import { useMemo as useMemo7 } from "react";
1268
- // src/hooks/runs/useRuns/index.tsx
1269
- import { useMemo as useMemo6 } from "react";
1270
- import { useInfiniteQuery as useInfiniteQuery2, useQueryClient as useQueryClient3 } from "@tanstack/react-query";
1271
- // src/lib/runs/runsQueryOptions.ts
1272
- var runsQueryOptions = function(param) {
1273
- var queryClient = param.queryClient, threadContext = param.threadContext, superinterfaceContext = param.superinterfaceContext;
1274
- return queryOptions({
1275
- queryKeyBase: [
1276
- "runs"
1277
- ],
1278
- path: "/runs",
1279
- queryClient: queryClient,
1280
- threadContext: threadContext,
1281
- superinterfaceContext: superinterfaceContext
1282
- });
1283
- };
1284
- // src/hooks/runs/useRuns/lib/getRuns.ts
1285
- var getRuns = function(param) {
1286
- var data3 = param.data;
1287
- if (!data3) return [];
1288
- return data3.pages.reduce(function(acc, page) {
1289
- return acc.concat(page.data);
1290
- }, []);
1291
- };
1292
- // src/hooks/runs/useRuns/index.tsx
1293
- var useRuns = function() {
1294
- var queryClient = useQueryClient3();
1295
- var superinterfaceContext = useSuperinterfaceContext();
1296
- var threadContext = useSuperinterfaceContext();
1297
- var props = useInfiniteQuery2(runsQueryOptions({
1298
- queryClient: queryClient,
1299
- threadContext: threadContext,
1300
- superinterfaceContext: superinterfaceContext
1301
- }));
1302
- return useMemo6(function() {
1303
- return _object_spread_props(_object_spread({}, props), {
1304
- // @ts-ignore-next-line
1305
- runs: getRuns({
1306
- data: props.data
1307
- })
1308
- });
1309
- }, [
1310
- props
1311
- ]);
1312
- };
1313
- // src/hooks/runs/useLatestRun/index.ts
1314
- var useLatestRun = function() {
1315
- var props = useRuns();
1316
- return useMemo7(function() {
1317
- return _object_spread_props(_object_spread({}, props), {
1318
- latestRun: props.runs[0]
1319
- });
1320
- }, [
1321
- props
1322
- ]);
1268
+ // src/lib/optimistic/isOptimistic.ts
1269
+ import _4 from "lodash";
1270
+ var isOptimistic = function(param) {
1271
+ var id = param.id;
1272
+ return _4.startsWith(id, "-");
1323
1273
  };
1324
- // src/hooks/runs/usePollingContext/index.ts
1325
- import { useContext as useContext8 } from "react";
1326
- // src/contexts/runs/PollingContext/index.tsx
1327
- import { createContext as createContext8 } from "react";
1328
- var PollingContext = createContext8({
1329
- isPollRefetching: false,
1330
- setIsPollRefetching: function() {}
1331
- });
1332
- // src/hooks/runs/usePollingContext/index.ts
1333
- var usePollingContext = function() {
1334
- return useContext8(PollingContext);
1335
- };
1336
- // src/hooks/runs/useIsRunActive/index.tsx
1337
- var progressStatuses = [
1338
- "queued",
1339
- "in_progress",
1340
- "cancelling",
1341
- "requires_action"
1342
- ];
1343
- var stoppedStatuses = [
1344
- "expired",
1345
- "cancelled",
1346
- "failed"
1347
- ];
1348
- var isRunActive = function(param) {
1349
- var pollingContext = param.pollingContext, latestRunProps = param.latestRunProps, latestMessageProps = param.latestMessageProps, isMutating = param.isMutating;
1350
- var _latestMessageProps_latestMessage_metadata, _latestMessageProps_latestMessage;
1351
- if (pollingContext.isPollRefetching) return true;
1352
- if ((_latestMessageProps_latestMessage = latestMessageProps.latestMessage) === null || _latestMessageProps_latestMessage === void 0 ? void 0 : (_latestMessageProps_latestMessage_metadata = _latestMessageProps_latestMessage.metadata) === null || _latestMessageProps_latestMessage_metadata === void 0 ? void 0 : _latestMessageProps_latestMessage_metadata.isBlocking) return false;
1353
- if (isMutating) return true;
1354
- if (!latestRunProps.latestRun) return false;
1355
- if (progressStatuses.includes(latestRunProps.latestRun.status)) return true;
1356
- if (stoppedStatuses.includes(latestRunProps.latestRun.status)) return false;
1357
- return false;
1358
- };
1359
- var useIsRunActive = function() {
1360
- var latestRunProps = useLatestRun();
1361
- var latestMessageProps = useLatestMessage();
1274
+ // src/hooks/messages/useIsMutatingMessage/index.ts
1275
+ import { useMemo as useMemo6 } from "react";
1276
+ import { useIsMutating } from "@tanstack/react-query";
1277
+ var useIsMutatingMessage = function() {
1362
1278
  var threadContext = useSuperinterfaceContext();
1363
- var pollingContext = usePollingContext();
1364
- var isMutatingCreateRun = useIsMutating({
1365
- mutationKey: [
1366
- "createRun",
1367
- threadContext.variables
1368
- ]
1369
- });
1370
- var isMutatingCreateMessage = useIsMutating({
1279
+ var mutatingMessagesCount = useIsMutating({
1371
1280
  mutationKey: [
1372
1281
  "createMessage",
1373
1282
  threadContext.variables
1374
1283
  ]
1375
1284
  });
1376
- var isMutatingCreateHandleAction = useIsMutating({
1377
- mutationKey: [
1378
- "handleAction",
1379
- threadContext.variables
1380
- ]
1381
- });
1382
- return useMemo8(function() {
1383
- return _object_spread_props(_object_spread({}, latestRunProps), {
1384
- isRunActive: isRunActive({
1385
- pollingContext: pollingContext,
1386
- latestRunProps: latestRunProps,
1387
- latestMessageProps: latestMessageProps,
1388
- isMutating: isMutatingCreateRun > 0 || isMutatingCreateMessage > 0 || isMutatingCreateHandleAction > 0
1389
- })
1390
- });
1285
+ var isMutatingMessage = useMemo6(function() {
1286
+ return mutatingMessagesCount > 0;
1391
1287
  }, [
1392
- latestRunProps,
1393
- latestMessageProps,
1394
- pollingContext,
1395
- isMutatingCreateRun,
1396
- isMutatingCreateMessage,
1397
- isMutatingCreateHandleAction
1288
+ mutatingMessagesCount
1398
1289
  ]);
1290
+ return isMutatingMessage;
1399
1291
  };
1400
1292
  // src/components/threads/Thread/Messages/Progress/index.tsx
1401
- import { jsx as jsx35, jsxs as jsxs9 } from "react/jsx-runtime";
1293
+ import { jsx as jsx35 } from "react/jsx-runtime";
1402
1294
  var Progress = function() {
1403
- var _useIsRunActive = useIsRunActive(), isRunActive2 = _useIsRunActive.isRunActive;
1404
1295
  var latestMessage = useLatestMessage().latestMessage;
1405
- if (!latestMessage) return null;
1406
- if (!isRunActive2) return null;
1407
- if (latestMessage.role === "user") {
1408
- return /* @__PURE__ */ jsx35(StartingSkeleton, {});
1409
- }
1410
- return /* @__PURE__ */ jsxs9(MessageGroupBase, {
1411
- children: [
1412
- /* @__PURE__ */ jsx35(Box12, {
1413
- pl: "5"
1414
- }),
1415
- /* @__PURE__ */ jsx35(StartingContentSkeleton, {})
1416
- ]
1417
- });
1296
+ var isMutatingMessage = useIsMutatingMessage();
1297
+ var isVisible = useMemo7(function() {
1298
+ if (!latestMessage) return false;
1299
+ if (latestMessage.role !== "user") return false;
1300
+ if (latestMessage.status === "in_progress") return false;
1301
+ if (!isOptimistic({
1302
+ id: latestMessage.id
1303
+ })) return false;
1304
+ if (!isMutatingMessage) return false;
1305
+ return true;
1306
+ }, [
1307
+ latestMessage,
1308
+ isMutatingMessage
1309
+ ]);
1310
+ if (!isVisible) return null;
1311
+ return /* @__PURE__ */ jsx35(StartingSkeleton, {});
1418
1312
  };
1419
1313
  // src/components/threads/Thread/Messages/Root/index.tsx
1420
1314
  import { Flex as Flex11 } from "@radix-ui/themes";
@@ -1422,12 +1316,12 @@ import { Flex as Flex11 } from "@radix-ui/themes";
1422
1316
  import { useRef as useRef2 } from "react";
1423
1317
  import { useInView } from "react-intersection-observer";
1424
1318
  // src/hooks/misc/useThrottledEffect/index.tsx
1425
- import _4 from "lodash";
1319
+ import _5 from "lodash";
1426
1320
  import { useRef, useEffect as useEffect2, useCallback } from "react";
1427
1321
  var useThrottledEffect = function(cb, delay, additionalDeps) {
1428
1322
  var _cbRef;
1429
1323
  var cbRef = useRef(cb);
1430
- var throttledCb = useCallback(_4.throttle(function() {
1324
+ var throttledCb = useCallback(_5.throttle(function() {
1431
1325
  for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1432
1326
  args[_key] = arguments[_key];
1433
1327
  }
@@ -1472,229 +1366,179 @@ var useInfiniteScroll = function(param) {
1472
1366
  inView: inView
1473
1367
  };
1474
1368
  };
1475
- // src/hooks/runs/useManageRuns/index.tsx
1476
- import { useQueryClient as useQueryClient5 } from "@tanstack/react-query";
1477
- import { useEffect as useEffect3, useState } from "react";
1478
- // src/hooks/runs/useCreateRun/index.ts
1479
- import { partob } from "radash";
1480
- import { useMutation, useQueryClient as useQueryClient4 } from "@tanstack/react-query";
1481
- // src/lib/threads/mutationOptions/index.ts
1482
- var mutationOptions = function(param) {
1483
- var mutationKeyBase = param.mutationKeyBase, path = param.path, queryClient = param.queryClient, threadContext = param.threadContext, superinterfaceContext = param.superinterfaceContext;
1484
- var mutationKey = _to_consumable_array(mutationKeyBase).concat([
1485
- threadContext.variables
1486
- ]);
1487
- return _object_spread_props(_object_spread({
1488
- mutationFn: function(variables) {
1489
- return fetch("".concat(superinterfaceContext.baseUrl).concat(path), _object_spread({
1490
- method: "POST",
1491
- body: JSON.stringify(variables),
1492
- credentials: "include"
1493
- }, superinterfaceContext.publicApiKey ? {
1494
- headers: {
1495
- Authorization: "Bearer ".concat(superinterfaceContext.publicApiKey)
1496
- }
1497
- } : {})).then(function() {
1498
- var _ref = _async_to_generator(function(response) {
1499
- var errorResponse, error;
1500
- return _ts_generator(this, function(_state) {
1501
- switch(_state.label){
1502
- case 0:
1503
- if (!(response.status !== 200)) return [
1504
- 3,
1505
- 5
1506
- ];
1507
- _state.label = 1;
1508
- case 1:
1509
- _state.trys.push([
1510
- 1,
1511
- 3,
1512
- ,
1513
- 4
1514
- ]);
1515
- console.log("response", response);
1516
- return [
1517
- 4,
1518
- response.json()
1519
- ];
1520
- case 2:
1521
- errorResponse = _state.sent();
1522
- return [
1523
- 3,
1524
- 4
1525
- ];
1526
- case 3:
1527
- error = _state.sent();
1528
- throw new Error("Failed to fetch");
1529
- case 4:
1530
- throw new Error(errorResponse.error);
1531
- case 5:
1532
- return [
1533
- 2,
1534
- response.json()
1535
- ];
1536
- }
1537
- });
1538
- });
1539
- return function(response) {
1540
- return _ref.apply(this, arguments);
1541
- };
1542
- }());
1543
- }
1544
- }, threadContext.defaultOptions.mutations, queryClient.getMutationDefaults(mutationKey)), {
1545
- mutationKey: mutationKey
1369
+ // src/components/threads/Thread/Messages/Root/index.tsx
1370
+ import { jsx as jsx36, jsxs as jsxs9 } from "react/jsx-runtime";
1371
+ var Root = function(param) {
1372
+ var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
1373
+ var _useMessages = useMessages(), isFetchingNextPage = _useMessages.isFetchingNextPage, hasNextPage = _useMessages.hasNextPage, fetchNextPage = _useMessages.fetchNextPage;
1374
+ var _useInfiniteScroll = useInfiniteScroll({
1375
+ isFetchingNextPage: isFetchingNextPage,
1376
+ hasNextPage: hasNextPage,
1377
+ fetchNextPage: fetchNextPage
1378
+ }), containerRef = _useInfiniteScroll.containerRef, loaderRef = _useInfiniteScroll.loaderRef;
1379
+ return /* @__PURE__ */ jsxs9(Flex11, {
1380
+ ref: containerRef,
1381
+ direction: "column-reverse",
1382
+ flexGrow: "1",
1383
+ style: _object_spread_props(_object_spread({}, style), {
1384
+ overflow: "auto"
1385
+ }),
1386
+ children: [
1387
+ children,
1388
+ hasNextPage && /* @__PURE__ */ jsx36(Flex11, {
1389
+ ref: loaderRef
1390
+ }),
1391
+ /* @__PURE__ */ jsx36(Flex11, {
1392
+ flexShrink: "0",
1393
+ flexGrow: "1"
1394
+ })
1395
+ ]
1546
1396
  });
1547
1397
  };
1548
- // src/hooks/runs/useCreateRun/lib/onSuccess.ts
1549
- var onSuccess = function(param) {
1550
- var queryClient = param.queryClient;
1551
- return function() {
1552
- var _ref = _async_to_generator(function(data3, variables) {
1553
- return _ts_generator(this, function(_state) {
1554
- return [
1555
- 2,
1556
- queryClient.setQueryData([
1557
- "runs",
1558
- variables
1559
- ], function(prevData) {
1560
- if (!prevData) {
1561
- return {
1562
- pageParams: [],
1563
- pages: [
1564
- {
1565
- data: [
1566
- data3.run
1567
- ],
1568
- hasNextPage: false,
1569
- lastId: data3.run.id
1570
- }
1571
- ]
1572
- };
1573
- }
1574
- var _prevData_pages = _to_array(prevData.pages), latestPage = _prevData_pages[0], pagesRest = _prevData_pages.slice(1);
1575
- return _object_spread_props(_object_spread({}, prevData), {
1576
- pages: [
1577
- _object_spread_props(_object_spread({}, latestPage), {
1578
- data: [
1579
- data3.run
1580
- ].concat(_to_consumable_array(latestPage.data))
1581
- })
1582
- ].concat(_to_consumable_array(pagesRest))
1583
- });
1584
- })
1585
- ];
1586
- });
1587
- });
1588
- return function(data3, variables) {
1589
- return _ref.apply(this, arguments);
1590
- };
1591
- }();
1592
- };
1593
- // src/hooks/runs/useCreateRun/lib/onSettled.ts
1594
- var onSettled = function(param) {
1595
- var queryClient = param.queryClient;
1596
- return function() {
1597
- var _ref = _async_to_generator(function(_data, _error, variables) {
1598
- return _ts_generator(this, function(_state) {
1599
- switch(_state.label){
1600
- case 0:
1601
- return [
1602
- 4,
1603
- queryClient.invalidateQueries({
1604
- queryKey: [
1605
- "messages",
1606
- variables
1607
- ]
1608
- })
1609
- ];
1610
- case 1:
1611
- _state.sent();
1612
- return [
1613
- 4,
1614
- queryClient.invalidateQueries({
1615
- queryKey: [
1616
- "runs",
1617
- variables
1618
- ]
1619
- })
1620
- ];
1621
- case 2:
1622
- _state.sent();
1623
- return [
1624
- 2
1625
- ];
1626
- }
1627
- });
1628
- });
1629
- return function(_data, _error, variables) {
1630
- return _ref.apply(this, arguments);
1631
- };
1632
- }();
1633
- };
1634
- // src/lib/optimistic/optimisticId.ts
1635
- import { uid } from "radash";
1636
- var optimisticId = function() {
1637
- return "-".concat(uid(24));
1638
- };
1639
- // src/hooks/runs/useCreateRun/lib/onMutate/data.ts
1640
- var data = function(prevData) {
1641
- var run = {
1642
- id: optimisticId(),
1643
- object: "thread.run",
1644
- created_at: +/* @__PURE__ */ new Date(),
1645
- assistant_id: null,
1646
- thread_id: null,
1647
- status: "in_progress",
1648
- expires_at: +/* @__PURE__ */ new Date() + 1e3 * 60 * 60 * 24,
1649
- cancelled_at: null,
1650
- failed_at: null,
1651
- completed_at: null,
1652
- required_action: null,
1653
- last_error: null,
1654
- model: null,
1655
- instructions: null,
1656
- tools: [],
1657
- file_ids: [],
1658
- metadata: {},
1659
- usage: null
1660
- };
1661
- if (!prevData) {
1662
- return {
1663
- pageParams: [],
1664
- pages: [
1665
- {
1666
- data: [
1667
- run
1668
- ],
1669
- hasNextPage: false,
1670
- lastId: run.id
1671
- }
1672
- ]
1673
- };
1398
+ // src/components/threads/Thread/Messages/NextPageSkeleton.tsx
1399
+ import { jsx as jsx37 } from "react/jsx-runtime";
1400
+ var NextPageSkeleton = function() {
1401
+ var hasNextPage = useMessages().hasNextPage;
1402
+ if (!hasNextPage) {
1403
+ return null;
1674
1404
  }
1675
- var _prevData_pages = _to_array(prevData.pages), latestPage = _prevData_pages[0], pagesRest = _prevData_pages.slice(1);
1676
- return _object_spread_props(_object_spread({}, prevData), {
1677
- pages: [
1678
- _object_spread_props(_object_spread({}, latestPage), {
1679
- data: [
1680
- run
1681
- ].concat(_to_consumable_array(latestPage.data))
1405
+ return /* @__PURE__ */ jsx37(MessagesSkeleton, {});
1406
+ };
1407
+ // src/components/threads/Thread/Messages/index.tsx
1408
+ import { jsx as jsx38, jsxs as jsxs10 } from "react/jsx-runtime";
1409
+ var Messages = function(param) {
1410
+ var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
1411
+ return /* @__PURE__ */ jsxs10(Root, {
1412
+ style: style,
1413
+ children: [
1414
+ /* @__PURE__ */ jsx38(Flex12, {
1415
+ flexShrink: "0",
1416
+ height: "var(--space-3)"
1417
+ }),
1418
+ /* @__PURE__ */ jsx38(Progress, {}),
1419
+ children,
1420
+ /* @__PURE__ */ jsx38(Content3, {}),
1421
+ /* @__PURE__ */ jsx38(NextPageSkeleton, {}),
1422
+ /* @__PURE__ */ jsx38(Flex12, {
1423
+ flexShrink: "0",
1424
+ flexGrow: "1"
1682
1425
  })
1683
- ].concat(_to_consumable_array(pagesRest))
1426
+ ]
1684
1427
  });
1685
1428
  };
1686
- // src/hooks/runs/useCreateRun/lib/onMutate/index.ts
1687
- var onMutate = function(param) {
1429
+ Messages.Root = Root;
1430
+ Messages.Message = Message;
1431
+ Messages.NextPageSkeleton = NextPageSkeleton;
1432
+ // src/components/threads/Thread/MessageForm/index.tsx
1433
+ import { Flex as Flex14, Text as Text5 } from "@radix-ui/themes";
1434
+ // src/components/threads/Thread/MessageForm/Submit/index.tsx
1435
+ import { ArrowUpIcon } from "@radix-ui/react-icons";
1436
+ import { IconButton, Spinner } from "@radix-ui/themes";
1437
+ // src/hooks/messages/useMessageFormContext/index.ts
1438
+ import { useContext as useContext8 } from "react";
1439
+ // src/contexts/messages/MessageFormContext/index.ts
1440
+ import { createContext as createContext8 } from "react";
1441
+ var MessageFormContext = createContext8({
1442
+ isDisabled: false,
1443
+ isLoading: false
1444
+ });
1445
+ // src/hooks/messages/useMessageFormContext/index.ts
1446
+ var useMessageFormContext = function() {
1447
+ return useContext8(MessageFormContext);
1448
+ };
1449
+ // src/components/threads/Thread/MessageForm/Submit/index.tsx
1450
+ import { jsx as jsx39 } from "react/jsx-runtime";
1451
+ var Submit = function() {
1452
+ var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
1453
+ return /* @__PURE__ */ jsx39(IconButton, {
1454
+ type: "submit",
1455
+ disabled: isDisabled || isLoading,
1456
+ children: /* @__PURE__ */ jsx39(Spinner, {
1457
+ loading: isLoading,
1458
+ children: /* @__PURE__ */ jsx39(ArrowUpIcon, {})
1459
+ })
1460
+ });
1461
+ };
1462
+ // src/components/threads/Thread/MessageForm/Root/index.tsx
1463
+ import { useMemo as useMemo8 } from "react";
1464
+ import { useForm, FormProvider } from "react-hook-form";
1465
+ // src/hooks/messages/useCreateMessage/index.ts
1466
+ import { partob } from "radash";
1467
+ import { useMutation, useQueryClient as useQueryClient3 } from "@tanstack/react-query";
1468
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/index.ts
1469
+ import { omit } from "radash";
1470
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/data.ts
1471
+ import dayjs from "dayjs";
1472
+ // src/lib/optimistic/optimisticId.ts
1473
+ import { uid } from "radash";
1474
+ var optimisticId = function() {
1475
+ return "-".concat(uid(24));
1476
+ };
1477
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/data.ts
1478
+ var data = function(param) {
1479
+ var newMessage = param.newMessage;
1480
+ return function(prevData) {
1481
+ var message = {
1482
+ id: optimisticId(),
1483
+ role: "user",
1484
+ created_at: dayjs().unix(),
1485
+ object: "thread.message",
1486
+ content: [
1487
+ {
1488
+ type: "text",
1489
+ text: {
1490
+ annotations: [],
1491
+ value: newMessage.content
1492
+ }
1493
+ }
1494
+ ],
1495
+ run_id: null,
1496
+ assistant_id: null,
1497
+ thread_id: null,
1498
+ file_ids: [],
1499
+ metadata: {},
1500
+ runSteps: []
1501
+ };
1502
+ if (!prevData) {
1503
+ return {
1504
+ pageParams: [],
1505
+ pages: [
1506
+ {
1507
+ data: [
1508
+ message
1509
+ ],
1510
+ hasNextPage: false,
1511
+ lastId: message.id
1512
+ }
1513
+ ]
1514
+ };
1515
+ }
1516
+ var _prevData_pages = _to_array(prevData.pages), latestPage = _prevData_pages[0], pagesRest = _prevData_pages.slice(1);
1517
+ return _object_spread_props(_object_spread({}, prevData), {
1518
+ pages: [
1519
+ _object_spread_props(_object_spread({}, latestPage), {
1520
+ data: [
1521
+ message
1522
+ ].concat(_to_consumable_array(latestPage.data))
1523
+ })
1524
+ ].concat(_to_consumable_array(pagesRest))
1525
+ });
1526
+ };
1527
+ };
1528
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/index.ts
1529
+ var onMutate = function(param) {
1688
1530
  var queryClient = param.queryClient;
1689
1531
  return function() {
1690
- var _ref = _async_to_generator(function(variables) {
1691
- var queryKey, prevRuns;
1532
+ var _ref = _async_to_generator(function(newMessage) {
1533
+ var queryKey, prevMessages;
1692
1534
  return _ts_generator(this, function(_state) {
1693
1535
  switch(_state.label){
1694
1536
  case 0:
1695
1537
  queryKey = [
1696
- "runs",
1697
- variables
1538
+ "messages",
1539
+ omit(newMessage, [
1540
+ "content"
1541
+ ])
1698
1542
  ];
1699
1543
  return [
1700
1544
  4,
@@ -1704,588 +1548,492 @@ var onMutate = function(param) {
1704
1548
  ];
1705
1549
  case 1:
1706
1550
  _state.sent();
1707
- prevRuns = queryClient.getQueryData(queryKey);
1708
- queryClient.setQueryData(queryKey, data);
1551
+ prevMessages = queryClient.getQueryData(queryKey);
1552
+ queryClient.setQueryData(queryKey, data({
1553
+ newMessage: newMessage
1554
+ }));
1709
1555
  return [
1710
1556
  2,
1711
1557
  {
1712
- prevRuns: prevRuns,
1713
- variables: variables
1558
+ prevMessages: prevMessages,
1559
+ newMessage: newMessage
1714
1560
  }
1715
1561
  ];
1716
1562
  }
1717
1563
  });
1718
1564
  });
1719
- return function(variables) {
1565
+ return function(newMessage) {
1720
1566
  return _ref.apply(this, arguments);
1721
1567
  };
1722
1568
  }();
1723
1569
  };
1724
- // src/hooks/runs/useCreateRun/index.ts
1725
- var useCreateRun = function() {
1726
- var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
1727
- onError: function() {}
1728
- }, _ref_onError = _ref.onError, onError = _ref_onError === void 0 ? function() {} : _ref_onError;
1729
- var queryClient = useQueryClient4();
1730
- var superinterfaceContext = useSuperinterfaceContext();
1731
- var threadContext = useSuperinterfaceContext();
1732
- var props = useMutation(_object_spread({
1733
- onSuccess: onSuccess({
1734
- queryClient: queryClient
1735
- }),
1736
- onSettled: onSettled({
1737
- queryClient: queryClient
1738
- }),
1739
- onMutate: onMutate({
1740
- queryClient: queryClient
1741
- }),
1742
- onError: onError
1743
- }, mutationOptions({
1744
- mutationKeyBase: [
1745
- "createRun"
1746
- ],
1747
- path: "/runs",
1748
- queryClient: queryClient,
1749
- threadContext: threadContext,
1750
- superinterfaceContext: superinterfaceContext
1751
- })));
1752
- return _object_spread_props(_object_spread({}, props), {
1753
- createRun: partob(props.mutate, threadContext.variables)
1570
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn/index.ts
1571
+ import { JSONParser } from "@streamparser/json-whatwg";
1572
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn/handleResponse/handlers/extendMessage.ts
1573
+ import { last as last2 } from "radash";
1574
+ var extendMessage = function(param) {
1575
+ var message = param.message, messages2 = param.messages;
1576
+ var _last2, _last21;
1577
+ var prevRunMessages = messages2.filter(function(m) {
1578
+ return m.run_id === message.run_id;
1579
+ });
1580
+ var prevOptimitisticRunMessages = prevRunMessages.filter(function(m) {
1581
+ return isOptimistic({
1582
+ id: m.id
1583
+ });
1754
1584
  });
1755
- };
1756
- // src/lib/optimistic/isOptimistic.ts
1757
- import _5 from "lodash";
1758
- var isOptimistic = function(param) {
1759
- var id = param.id;
1760
- return _5.startsWith(id, "-");
1761
- };
1762
- // src/hooks/runs/useManageRuns/index.tsx
1763
- var useManageRuns = function() {
1764
- var addToast = useToasts().addToast;
1765
- var queryClient = useQueryClient5();
1766
- var latestRunProps = useLatestRun();
1767
- var latestMessageProps = useLatestMessage();
1768
- var createRunProps = useCreateRun({
1769
- onError: function(error) {
1770
- return addToast({
1771
- type: "error",
1772
- message: error.message
1773
- });
1774
- }
1585
+ var _last2_runSteps, _ref;
1586
+ var runSteps = (_ref = (_last2_runSteps = (_last2 = last2(prevOptimitisticRunMessages)) === null || _last2 === void 0 ? void 0 : _last2.runSteps) !== null && _last2_runSteps !== void 0 ? _last2_runSteps : (_last21 = last2(prevRunMessages)) === null || _last21 === void 0 ? void 0 : _last21.runSteps) !== null && _ref !== void 0 ? _ref : [];
1587
+ return _object_spread_props(_object_spread({}, message), {
1588
+ runSteps: runSteps
1775
1589
  });
1776
- var threadContext = useSuperinterfaceContext();
1777
- var _useState = _sliced_to_array(useState([]), 2), toastedErrorRunIds = _useState[0], setToastedErrorRunIds = _useState[1];
1778
- useEffect3(function() {
1779
- var _latestRunProps_latestRun;
1780
- if (((_latestRunProps_latestRun = latestRunProps.latestRun) === null || _latestRunProps_latestRun === void 0 ? void 0 : _latestRunProps_latestRun.status) !== "failed") return;
1781
- if (toastedErrorRunIds.includes(latestRunProps.latestRun.id)) return;
1782
- setToastedErrorRunIds(function(prev) {
1783
- return _to_consumable_array(prev).concat([
1784
- latestRunProps.latestRun.id
1785
- ]);
1786
- });
1787
- addToast({
1788
- type: "error",
1789
- message: "AI run failed. Please try again."
1790
- });
1791
- }, [
1792
- latestRunProps,
1793
- toastedErrorRunIds,
1794
- addToast
1795
- ]);
1796
- useEffect3(function() {
1797
- if (createRunProps.isPending) return;
1798
- if (latestRunProps.isFetching) return;
1799
- if (latestMessageProps.isFetching) return;
1800
- if (!latestMessageProps.latestMessage) return;
1801
- if (latestMessageProps.latestMessage.role !== "user") return;
1802
- if (isOptimistic({
1803
- id: latestMessageProps.latestMessage.id
1804
- })) return;
1805
- if (latestRunProps.latestRun && latestRunProps.latestRun.created_at > latestMessageProps.latestMessage.created_at) {
1806
- return;
1807
- }
1808
- var isMutating = queryClient.isMutating({
1809
- mutationKey: [
1810
- "createRun",
1811
- threadContext.variables
1812
- ]
1813
- });
1814
- if (isMutating) return;
1815
- createRunProps.createRun();
1816
- }, [
1817
- threadContext,
1818
- queryClient,
1819
- createRunProps,
1820
- latestRunProps,
1821
- latestMessageProps
1822
- ]);
1823
- return null;
1824
1590
  };
1825
- // src/hooks/runs/usePolling/index.tsx
1826
- import { useEffect as useEffect4 } from "react";
1827
- import { useQueryClient as useQueryClient6 } from "@tanstack/react-query";
1828
- import { useInterval, usePrevious } from "react-use";
1829
- // src/hooks/runs/usePolling/lib/refetch.ts
1830
- var refetch = function() {
1831
- var _ref = _async_to_generator(function(param) {
1832
- var queryClient, threadContext, _threadContext_defaultOptions_queries_queryKey, _threadContext_defaultOptions_queries_queryKey1;
1833
- return _ts_generator(this, function(_state) {
1834
- switch(_state.label){
1835
- case 0:
1836
- queryClient = param.queryClient, threadContext = param.threadContext;
1837
- return [
1838
- 4,
1839
- queryClient.refetchQueries({
1840
- queryKey: (_threadContext_defaultOptions_queries_queryKey = threadContext.defaultOptions.queries.queryKey) !== null && _threadContext_defaultOptions_queries_queryKey !== void 0 ? _threadContext_defaultOptions_queries_queryKey : [
1841
- "messages",
1842
- threadContext.variables
1843
- ]
1844
- })
1845
- ];
1846
- case 1:
1847
- _state.sent();
1848
- return [
1849
- 4,
1850
- queryClient.refetchQueries({
1851
- queryKey: (_threadContext_defaultOptions_queries_queryKey1 = threadContext.defaultOptions.queries.queryKey) !== null && _threadContext_defaultOptions_queries_queryKey1 !== void 0 ? _threadContext_defaultOptions_queries_queryKey1 : [
1852
- "runs",
1853
- threadContext.variables
1854
- ]
1855
- })
1856
- ];
1857
- case 2:
1858
- _state.sent();
1859
- return [
1860
- 2
1861
- ];
1862
- }
1591
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn/handleResponse/handlers/threadMessageCreated.ts
1592
+ var appendMessage = function(param) {
1593
+ var message = param.message, messages2 = param.messages;
1594
+ var prevMessages = messages2.filter(function(m) {
1595
+ return m.run_id != message.run_id || !isOptimistic({
1596
+ id: m.id
1863
1597
  });
1864
1598
  });
1865
- return function refetch(_) {
1866
- return _ref.apply(this, arguments);
1867
- };
1868
- }();
1869
- // src/hooks/runs/usePolling/index.tsx
1870
- var usePolling = function() {
1871
- var threadContext = useSuperinterfaceContext();
1872
- var queryClient = useQueryClient6();
1873
- var _usePollingContext = usePollingContext(), isPollRefetching = _usePollingContext.isPollRefetching, setIsPollRefetching = _usePollingContext.setIsPollRefetching;
1874
- var isRunActiveProps = useIsRunActive();
1875
- useInterval(/*#__PURE__*/ _async_to_generator(function() {
1876
- return _ts_generator(this, function(_state) {
1877
- switch(_state.label){
1878
- case 0:
1879
- if (isPollRefetching) return [
1880
- 2
1881
- ];
1882
- setIsPollRefetching(true);
1883
- return [
1884
- 4,
1885
- refetch({
1886
- queryClient: queryClient,
1887
- threadContext: threadContext
1888
- })
1889
- ];
1890
- case 1:
1891
- _state.sent();
1892
- setIsPollRefetching(false);
1893
- console.log("Polling...");
1894
- return [
1895
- 2
1896
- ];
1897
- }
1898
- });
1899
- }), isRunActiveProps.isRunActive ? 3e3 : null);
1900
- var prevIsRunActive = usePrevious(isRunActiveProps.isRunActive);
1901
- useEffect4(function() {
1902
- if (prevIsRunActive && !isRunActiveProps.isRunActive) {
1903
- refetch({
1904
- queryClient: queryClient,
1905
- threadContext: threadContext
1906
- });
1907
- }
1908
- }, [
1909
- queryClient,
1910
- threadContext,
1911
- isRunActiveProps,
1912
- prevIsRunActive
1913
- ]);
1914
- return null;
1915
- };
1916
- // src/hooks/actions/useManageActions/index.tsx
1917
- import { useEffect as useEffect5, useState as useState2 } from "react";
1918
- // src/hooks/actions/useHandleAction/index.tsx
1919
- import { partob as partob2 } from "radash";
1920
- import { useMutation as useMutation2, useQueryClient as useQueryClient7 } from "@tanstack/react-query";
1921
- // src/hooks/actions/useHandleAction/lib/onSettled.ts
1922
- var onSettled2 = function(param) {
1923
- var queryClient = param.queryClient;
1924
- return function() {
1925
- var _ref = _async_to_generator(function(_data, _error, variables) {
1926
- return _ts_generator(this, function(_state) {
1927
- switch(_state.label){
1928
- case 0:
1929
- return [
1930
- 4,
1931
- queryClient.invalidateQueries({
1932
- queryKey: [
1933
- "messages",
1934
- variables
1935
- ]
1936
- })
1937
- ];
1938
- case 1:
1939
- _state.sent();
1940
- return [
1941
- 4,
1942
- queryClient.invalidateQueries({
1943
- queryKey: [
1944
- "runs",
1945
- variables
1946
- ]
1947
- })
1948
- ];
1949
- case 2:
1950
- _state.sent();
1951
- return [
1952
- 2
1953
- ];
1954
- }
1955
- });
1956
- });
1957
- return function(_data, _error, variables) {
1958
- return _ref.apply(this, arguments);
1959
- };
1960
- }();
1961
- };
1962
- // src/hooks/actions/useHandleAction/index.tsx
1963
- var useHandleAction = function() {
1964
- var queryClient = useQueryClient7();
1965
- var superinterfaceContext = useSuperinterfaceContext();
1966
- var threadContext = useSuperinterfaceContext();
1967
- var props = useMutation2(_object_spread({
1968
- onSettled: onSettled2({
1969
- queryClient: queryClient
1599
+ return [
1600
+ extendMessage({
1601
+ message: message,
1602
+ messages: messages2
1970
1603
  })
1971
- }, mutationOptions({
1972
- mutationKeyBase: [
1973
- "handleAction"
1974
- ],
1975
- path: "/actions",
1976
- queryClient: queryClient,
1977
- threadContext: threadContext,
1978
- superinterfaceContext: superinterfaceContext
1979
- })));
1980
- return _object_spread_props(_object_spread({}, props), {
1981
- handleAction: partob2(props.mutateAsync, threadContext.variables)
1982
- });
1604
+ ].concat(_to_consumable_array(prevMessages));
1983
1605
  };
1984
- // src/hooks/actions/useManageActions/index.tsx
1985
- var useManageActions = function() {
1986
- var latestRunProps = useLatestRun();
1987
- var handleActionProps = useHandleAction();
1988
- var _useState2 = _sliced_to_array(useState2([]), 2), handledRunIds = _useState2[0], setHandledRunIds = _useState2[1];
1989
- useEffect5(function() {
1990
- if (handleActionProps.isPending) return;
1991
- if (latestRunProps.isFetching) return;
1992
- if (!latestRunProps.latestRun) return;
1993
- if (latestRunProps.latestRun.status !== "requires_action") return;
1994
- if (handledRunIds.includes(latestRunProps.latestRun.id)) return;
1995
- setHandledRunIds(function(prev) {
1996
- return _to_consumable_array(prev).concat([
1997
- latestRunProps.latestRun.id
1998
- ]);
1999
- });
2000
- console.log("Requires action", {
2001
- latestRunProps: latestRunProps,
2002
- handleActionProps: handleActionProps
2003
- });
2004
- handleActionProps.handleAction({
2005
- latestRun: latestRunProps.latestRun
1606
+ var threadMessageCreated = function(param) {
1607
+ var value = param.value;
1608
+ return function(prevData) {
1609
+ if (!prevData) {
1610
+ return {
1611
+ pageParams: [],
1612
+ pages: [
1613
+ {
1614
+ data: appendMessage({
1615
+ message: value.data,
1616
+ messages: []
1617
+ }),
1618
+ hasNextPage: false,
1619
+ lastId: value.data.id
1620
+ }
1621
+ ]
1622
+ };
1623
+ }
1624
+ var _prevData_pages = _to_array(prevData.pages), latestPage = _prevData_pages[0], pagesRest = _prevData_pages.slice(1);
1625
+ return _object_spread_props(_object_spread({}, prevData), {
1626
+ pages: [
1627
+ _object_spread_props(_object_spread({}, latestPage), {
1628
+ data: appendMessage({
1629
+ message: value.data,
1630
+ messages: latestPage.data
1631
+ })
1632
+ })
1633
+ ].concat(_to_consumable_array(pagesRest))
2006
1634
  });
2007
- }, [
2008
- handledRunIds,
2009
- handleActionProps,
2010
- latestRunProps
2011
- ]);
2012
- return null;
2013
- };
2014
- // src/hooks/threads/useLifecycle/index.tsx
2015
- var useLifecycle = function() {
2016
- useManageRuns();
2017
- useManageActions();
2018
- usePolling();
2019
- return null;
2020
- };
2021
- // src/components/threads/Thread/Messages/Root/index.tsx
2022
- import { jsx as jsx36, jsxs as jsxs10 } from "react/jsx-runtime";
2023
- var Root = function(param) {
2024
- var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2025
- var _useMessages = useMessages(), isFetchingNextPage = _useMessages.isFetchingNextPage, hasNextPage = _useMessages.hasNextPage, fetchNextPage = _useMessages.fetchNextPage;
2026
- useLifecycle();
2027
- var _useInfiniteScroll = useInfiniteScroll({
2028
- isFetchingNextPage: isFetchingNextPage,
2029
- hasNextPage: hasNextPage,
2030
- fetchNextPage: fetchNextPage
2031
- }), containerRef = _useInfiniteScroll.containerRef, loaderRef = _useInfiniteScroll.loaderRef;
2032
- return /* @__PURE__ */ jsxs10(Flex11, {
2033
- ref: containerRef,
2034
- direction: "column-reverse",
2035
- flexGrow: "1",
2036
- style: _object_spread_props(_object_spread({}, style), {
2037
- overflow: "auto"
2038
- }),
2039
- children: [
2040
- children,
2041
- hasNextPage && /* @__PURE__ */ jsx36(Flex11, {
2042
- ref: loaderRef
2043
- }),
2044
- /* @__PURE__ */ jsx36(Flex11, {
2045
- flexShrink: "0",
2046
- flexGrow: "1"
2047
- })
2048
- ]
2049
- });
1635
+ };
2050
1636
  };
2051
- // src/components/threads/Thread/Messages/NextPageSkeleton.tsx
2052
- import { jsx as jsx37 } from "react/jsx-runtime";
2053
- var NextPageSkeleton = function() {
2054
- var hasNextPage = useMessages().hasNextPage;
2055
- if (!hasNextPage) {
2056
- return null;
1637
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn/handleResponse/handlers/threadMessageDelta.ts
1638
+ import _6 from "lodash";
1639
+ import { omit as omit2 } from "radash";
1640
+ var updatedContentPart = function(param) {
1641
+ var prevContentPart = param.prevContentPart, delta = param.delta;
1642
+ if (!prevContentPart) {
1643
+ return omit2(delta, [
1644
+ "index"
1645
+ ]);
2057
1646
  }
2058
- return /* @__PURE__ */ jsx37(MessagesSkeleton, {});
2059
- };
2060
- // src/components/threads/Thread/Messages/index.tsx
2061
- import { jsx as jsx38, jsxs as jsxs11 } from "react/jsx-runtime";
2062
- var Messages = function(param) {
2063
- var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2064
- return /* @__PURE__ */ jsxs11(Root, {
2065
- style: style,
2066
- children: [
2067
- /* @__PURE__ */ jsx38(Flex12, {
2068
- flexShrink: "0",
2069
- height: "var(--space-3)"
2070
- }),
2071
- /* @__PURE__ */ jsx38(Progress, {}),
2072
- children,
2073
- /* @__PURE__ */ jsx38(Content3, {}),
2074
- /* @__PURE__ */ jsx38(NextPageSkeleton, {}),
2075
- /* @__PURE__ */ jsx38(Flex12, {
2076
- flexShrink: "0",
2077
- flexGrow: "1"
1647
+ if (delta.type === "text" && delta.text && prevContentPart.type == "text" && prevContentPart.text) {
1648
+ var _prevContentPart_text_annotations, _delta_text_annotations;
1649
+ return _object_spread_props(_object_spread({}, prevContentPart), {
1650
+ text: _object_spread_props(_object_spread({}, prevContentPart.text), {
1651
+ value: "".concat(prevContentPart.text.value).concat(delta.text.value),
1652
+ annotations: _to_consumable_array((_prevContentPart_text_annotations = prevContentPart.text.annotations) !== null && _prevContentPart_text_annotations !== void 0 ? _prevContentPart_text_annotations : []).concat(_to_consumable_array((_delta_text_annotations = delta.text.annotations) !== null && _delta_text_annotations !== void 0 ? _delta_text_annotations : []))
2078
1653
  })
2079
- ]
1654
+ });
1655
+ }
1656
+ return prevContentPart;
1657
+ };
1658
+ var updatedContent = function(param) {
1659
+ var content = param.content, value = param.value;
1660
+ if (!value.data.delta.content) return content;
1661
+ var result = _6.cloneDeep(content);
1662
+ value.data.delta.content.forEach(function(delta) {
1663
+ result[delta.index] = updatedContentPart({
1664
+ // @ts-ignore-next-line
1665
+ prevContentPart: result[delta.index],
1666
+ delta: delta
1667
+ });
2080
1668
  });
1669
+ return result;
2081
1670
  };
2082
- Messages.Root = Root;
2083
- Messages.Message = Message;
2084
- Messages.NextPageSkeleton = NextPageSkeleton;
2085
- // src/components/threads/Thread/MessageForm/index.tsx
2086
- import { Flex as Flex14, Text as Text5 } from "@radix-ui/themes";
2087
- // src/components/threads/Thread/MessageForm/Submit/index.tsx
2088
- import { ArrowUpIcon } from "@radix-ui/react-icons";
2089
- import { IconButton, Spinner } from "@radix-ui/themes";
2090
- // src/hooks/messages/useMessageFormContext/index.ts
2091
- import { useContext as useContext9 } from "react";
2092
- // src/contexts/messages/MessageFormContext/index.ts
2093
- import { createContext as createContext9 } from "react";
2094
- var MessageFormContext = createContext9({
2095
- isDisabled: false,
2096
- isLoading: false
2097
- });
2098
- // src/hooks/messages/useMessageFormContext/index.ts
2099
- var useMessageFormContext = function() {
2100
- return useContext9(MessageFormContext);
2101
- };
2102
- // src/components/threads/Thread/MessageForm/Submit/index.tsx
2103
- import { jsx as jsx39 } from "react/jsx-runtime";
2104
- var Submit = function() {
2105
- var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
2106
- return /* @__PURE__ */ jsx39(IconButton, {
2107
- type: "submit",
2108
- disabled: isDisabled || isLoading,
2109
- children: /* @__PURE__ */ jsx39(Spinner, {
2110
- loading: isLoading,
2111
- children: /* @__PURE__ */ jsx39(ArrowUpIcon, {})
2112
- })
2113
- });
1671
+ var threadMessageDelta = function(param) {
1672
+ var value = param.value;
1673
+ return function(prevData) {
1674
+ if (!prevData) {
1675
+ return {
1676
+ pageParams: [],
1677
+ pages: [
1678
+ {
1679
+ data: [],
1680
+ hasNextPage: false,
1681
+ lastId: null
1682
+ }
1683
+ ]
1684
+ };
1685
+ }
1686
+ var _prevData_pages = _to_array(prevData.pages), latestPage = _prevData_pages[0], pagesRest = _prevData_pages.slice(1);
1687
+ var _latestPage_data = _to_array(latestPage.data), latestMessage = _latestPage_data[0], messagesRest = _latestPage_data.slice(1);
1688
+ return _object_spread_props(_object_spread({}, prevData), {
1689
+ pages: [
1690
+ _object_spread_props(_object_spread({}, latestPage), {
1691
+ data: [
1692
+ _object_spread_props(_object_spread({}, latestMessage), {
1693
+ content: updatedContent({
1694
+ content: latestMessage.content,
1695
+ value: value
1696
+ })
1697
+ })
1698
+ ].concat(_to_consumable_array(messagesRest))
1699
+ })
1700
+ ].concat(_to_consumable_array(pagesRest))
1701
+ });
1702
+ };
2114
1703
  };
2115
- // src/components/threads/Thread/MessageForm/Root/index.tsx
2116
- import { useMemo as useMemo9 } from "react";
2117
- import { useForm, FormProvider } from "react-hook-form";
2118
- // src/hooks/messages/useCreateMessage/index.ts
2119
- import { partob as partob3 } from "radash";
2120
- import { useMutation as useMutation3, useQueryClient as useQueryClient8 } from "@tanstack/react-query";
2121
- // src/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/index.ts
2122
- import { omit } from "radash";
2123
- // src/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/data.ts
2124
- var data2 = function(param) {
2125
- var newMessage = param.newMessage;
1704
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn/handleResponse/handlers/threadMessageCompleted.ts
1705
+ import { replace } from "radash";
1706
+ var threadMessageCompleted = function(param) {
1707
+ var value = param.value;
2126
1708
  return function(prevData) {
2127
- var message = {
2128
- id: optimisticId(),
2129
- role: "user",
2130
- created_at: +/* @__PURE__ */ new Date(),
2131
- object: "thread.message",
2132
- content: [
2133
- {
2134
- type: "text",
2135
- text: {
2136
- annotations: [],
2137
- value: newMessage.content
2138
- }
2139
- }
2140
- ],
2141
- run_id: null,
2142
- assistant_id: null,
2143
- thread_id: null,
2144
- file_ids: [],
2145
- metadata: {},
2146
- runSteps: []
2147
- };
2148
1709
  if (!prevData) {
2149
1710
  return {
2150
1711
  pageParams: [],
2151
1712
  pages: [
2152
1713
  {
2153
- data: [
2154
- message
2155
- ],
1714
+ data: [],
2156
1715
  hasNextPage: false,
2157
- lastId: message.id
1716
+ lastId: null
2158
1717
  }
2159
1718
  ]
2160
1719
  };
2161
1720
  }
2162
1721
  var _prevData_pages = _to_array(prevData.pages), latestPage = _prevData_pages[0], pagesRest = _prevData_pages.slice(1);
1722
+ return _object_spread_props(_object_spread({}, prevData), {
1723
+ pages: [
1724
+ _object_spread_props(_object_spread({}, latestPage), {
1725
+ data: replace(latestPage.data, extendMessage({
1726
+ message: value.data,
1727
+ messages: latestPage.data
1728
+ }), function(m) {
1729
+ return m.id === value.data.id;
1730
+ })
1731
+ })
1732
+ ].concat(_to_consumable_array(pagesRest))
1733
+ });
1734
+ };
1735
+ };
1736
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn/handleResponse/handlers/threadRunCreated.ts
1737
+ var threadRunCreated = function(param) {
1738
+ var value = param.value;
1739
+ return function(prevData) {
1740
+ if (!prevData) return prevData;
1741
+ var _prevData_pages = _to_array(prevData.pages), latestPage = _prevData_pages[0], pagesRest = _prevData_pages.slice(1);
2163
1742
  return _object_spread_props(_object_spread({}, prevData), {
2164
1743
  pages: [
2165
1744
  _object_spread_props(_object_spread({}, latestPage), {
2166
1745
  data: [
2167
- message
1746
+ {
1747
+ id: optimisticId(),
1748
+ assistant_id: value.data.assistant_id,
1749
+ content: [],
1750
+ created_at: value.data.created_at,
1751
+ file_ids: [],
1752
+ metadata: {},
1753
+ status: "in_progress",
1754
+ role: "assistant",
1755
+ runSteps: [],
1756
+ run_id: value.data.id,
1757
+ thread_id: value.data.thread_id
1758
+ }
2168
1759
  ].concat(_to_consumable_array(latestPage.data))
2169
1760
  })
2170
1761
  ].concat(_to_consumable_array(pagesRest))
2171
1762
  });
2172
1763
  };
2173
1764
  };
2174
- // src/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/index.ts
2175
- var onMutate2 = function(param) {
2176
- var queryClient = param.queryClient;
2177
- return function() {
2178
- var _ref = _async_to_generator(function(newMessage) {
2179
- var queryKey, prevMessages;
2180
- return _ts_generator(this, function(_state) {
2181
- switch(_state.label){
2182
- case 0:
2183
- queryKey = [
2184
- "messages",
2185
- omit(newMessage, [
2186
- "content"
2187
- ])
2188
- ];
2189
- return [
2190
- 4,
2191
- queryClient.cancelQueries({
2192
- queryKey: queryKey
2193
- })
2194
- ];
2195
- case 1:
2196
- _state.sent();
2197
- prevMessages = queryClient.getQueryData(queryKey);
2198
- queryClient.setQueryData(queryKey, data2({
2199
- newMessage: newMessage
2200
- }));
2201
- return [
2202
- 2,
2203
- {
2204
- prevMessages: prevMessages,
2205
- newMessage: newMessage
2206
- }
2207
- ];
1765
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn/handleResponse/handlers/threadRunStepCreated.ts
1766
+ var threadRunStepCreated = function(param) {
1767
+ var value = param.value;
1768
+ return function(prevData) {
1769
+ if (!prevData) return prevData;
1770
+ var _prevData_pages = _to_array(prevData.pages), latestPage = _prevData_pages[0], pagesRest = _prevData_pages.slice(1);
1771
+ return _object_spread_props(_object_spread({}, prevData), {
1772
+ pages: [
1773
+ _object_spread_props(_object_spread({}, latestPage), {
1774
+ data: latestPage.data.map(function(m) {
1775
+ if (m.run_id === value.data.run_id) {
1776
+ return _object_spread_props(_object_spread({}, m), {
1777
+ runSteps: [
1778
+ value.data
1779
+ ].concat(_to_consumable_array(m.runSteps))
1780
+ });
1781
+ }
1782
+ return m;
1783
+ })
1784
+ })
1785
+ ].concat(_to_consumable_array(pagesRest))
1786
+ });
1787
+ };
1788
+ };
1789
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn/handleResponse/handlers/threadRunStepDelta.ts
1790
+ import _7 from "lodash";
1791
+ import { omit as omit3 } from "radash";
1792
+ var updatedToolCall = function(param) {
1793
+ var toolCall = param.toolCall, delta = param.delta;
1794
+ if (!toolCall) {
1795
+ return omit3(delta, [
1796
+ "index"
1797
+ ]);
1798
+ }
1799
+ if (delta.type === "function" && delta.function && toolCall.type === "function" && toolCall.function) {
1800
+ var result = _7.cloneDeep(toolCall);
1801
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
1802
+ try {
1803
+ for(var _iterator = Object.entries(delta.function)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
1804
+ var _step_value = _sliced_to_array(_step.value, 2), key = _step_value[0], value = _step_value[1];
1805
+ var _result_function_key;
1806
+ result.function[key] = "".concat((_result_function_key = result.function[key]) !== null && _result_function_key !== void 0 ? _result_function_key : "").concat(value);
1807
+ }
1808
+ } catch (err) {
1809
+ _didIteratorError = true;
1810
+ _iteratorError = err;
1811
+ } finally{
1812
+ try {
1813
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
1814
+ _iterator.return();
2208
1815
  }
1816
+ } finally{
1817
+ if (_didIteratorError) {
1818
+ throw _iteratorError;
1819
+ }
1820
+ }
1821
+ }
1822
+ return result;
1823
+ }
1824
+ return toolCall;
1825
+ };
1826
+ var updatedRunStep = function(param) {
1827
+ var runStep = param.runStep, value = param.value;
1828
+ var _runStep_step_details, _value_data_delta_step_details, _value_data_delta;
1829
+ if (!(runStep === null || runStep === void 0 ? void 0 : (_runStep_step_details = runStep.step_details) === null || _runStep_step_details === void 0 ? void 0 : _runStep_step_details.tool_calls)) return runStep;
1830
+ if (((_value_data_delta = value.data.delta) === null || _value_data_delta === void 0 ? void 0 : (_value_data_delta_step_details = _value_data_delta.step_details) === null || _value_data_delta_step_details === void 0 ? void 0 : _value_data_delta_step_details.type) === "tool_calls") {
1831
+ if (!value.data.delta.step_details.tool_calls) return runStep;
1832
+ var newToolCalls = _7.cloneDeep(runStep.step_details.tool_calls);
1833
+ value.data.delta.step_details.tool_calls.forEach(function(delta) {
1834
+ return newToolCalls[delta.index] = updatedToolCall({
1835
+ toolCall: newToolCalls[delta.index],
1836
+ delta: delta
2209
1837
  });
2210
1838
  });
2211
- return function(newMessage) {
2212
- return _ref.apply(this, arguments);
2213
- };
2214
- }();
1839
+ return _object_spread_props(_object_spread({}, runStep), {
1840
+ step_details: _object_spread_props(_object_spread({}, runStep.step_details, value.data.delta.step_details), {
1841
+ tool_calls: newToolCalls
1842
+ })
1843
+ });
1844
+ } else {
1845
+ return runStep;
1846
+ }
2215
1847
  };
2216
- // src/hooks/messages/useCreateMessage/lib/mutationOptions/onSettled.ts
2217
- import { omit as omit2 } from "radash";
2218
- var onSettled3 = function(param) {
2219
- var queryClient = param.queryClient;
1848
+ var threadRunStepDelta = function(param) {
1849
+ var value = param.value;
1850
+ return function(prevData) {
1851
+ if (!prevData) return prevData;
1852
+ var _prevData_pages = _to_array(prevData.pages), latestPage = _prevData_pages[0], pagesRest = _prevData_pages.slice(1);
1853
+ return _object_spread_props(_object_spread({}, prevData), {
1854
+ pages: [
1855
+ _object_spread_props(_object_spread({}, latestPage), {
1856
+ data: latestPage.data.map(function(m) {
1857
+ if (m.run_id === value.data.run_id) {
1858
+ return _object_spread_props(_object_spread({}, m), {
1859
+ runSteps: m.runSteps.map(function(rs) {
1860
+ if (rs.id === value.data.id) {
1861
+ return updatedRunStep({
1862
+ runStep: rs,
1863
+ value: value
1864
+ });
1865
+ }
1866
+ return rs;
1867
+ })
1868
+ });
1869
+ }
1870
+ return m;
1871
+ })
1872
+ })
1873
+ ].concat(_to_consumable_array(pagesRest))
1874
+ });
1875
+ };
1876
+ };
1877
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn/handleResponse/handlers/threadRunStepCompleted.ts
1878
+ import { replace as replace2 } from "radash";
1879
+ var threadRunStepCompleted = function(param) {
1880
+ var value = param.value;
1881
+ return function(prevData) {
1882
+ if (!prevData) return prevData;
1883
+ var _prevData_pages = _to_array(prevData.pages), latestPage = _prevData_pages[0], pagesRest = _prevData_pages.slice(1);
1884
+ return _object_spread_props(_object_spread({}, prevData), {
1885
+ pages: [
1886
+ _object_spread_props(_object_spread({}, latestPage), {
1887
+ data: latestPage.data.map(function(m) {
1888
+ if (m.run_id === value.data.run_id) {
1889
+ return _object_spread_props(_object_spread({}, m), {
1890
+ runSteps: replace2(m.runSteps, value.data, function(rs) {
1891
+ return rs.id === value.data.id;
1892
+ })
1893
+ });
1894
+ }
1895
+ return m;
1896
+ })
1897
+ })
1898
+ ].concat(_to_consumable_array(pagesRest))
1899
+ });
1900
+ };
1901
+ };
1902
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn/handleResponse/handlers/index.ts
1903
+ var handlers = {
1904
+ "thread.message.created": threadMessageCreated,
1905
+ "thread.message.delta": threadMessageDelta,
1906
+ "thread.message.completed": threadMessageCompleted,
1907
+ "thread.run.created": threadRunCreated,
1908
+ "thread.run.step.created": threadRunStepCreated,
1909
+ "thread.run.step.delta": threadRunStepDelta,
1910
+ "thread.run.step.completed": threadRunStepCompleted
1911
+ };
1912
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn/handleResponse/index.ts
1913
+ var handleResponse = function(param) {
1914
+ var value = param.value, messagesQueryKey = param.messagesQueryKey, queryClient = param.queryClient;
1915
+ var handler = handlers[value.value.event];
1916
+ if (!handler) {
1917
+ return console.log("Missing handler", {
1918
+ value: value
1919
+ });
1920
+ }
1921
+ return queryClient.setQueryData(messagesQueryKey, handler({
1922
+ value: value.value
1923
+ }));
1924
+ };
1925
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn/index.ts
1926
+ var mutationFn = function(param) {
1927
+ var superinterfaceContext = param.superinterfaceContext, queryClient = param.queryClient, threadContext = param.threadContext;
2220
1928
  return function() {
2221
- var _ref = _async_to_generator(function(_data, _error, variables) {
1929
+ var _ref = _async_to_generator(function(variables) {
1930
+ var response, parser, reader, messagesQueryKey, _ref, done, value;
2222
1931
  return _ts_generator(this, function(_state) {
2223
1932
  switch(_state.label){
2224
1933
  case 0:
2225
1934
  return [
2226
1935
  4,
2227
- queryClient.invalidateQueries({
2228
- queryKey: [
2229
- "messages",
2230
- omit2(variables, [
2231
- "content"
2232
- ])
2233
- ]
2234
- })
1936
+ fetch("".concat(superinterfaceContext.baseUrl, "/messages"), _object_spread({
1937
+ method: "POST",
1938
+ body: JSON.stringify(variables),
1939
+ credentials: "include"
1940
+ }, superinterfaceContext.publicApiKey ? {
1941
+ headers: {
1942
+ Authorization: "Bearer ".concat(superinterfaceContext.publicApiKey)
1943
+ }
1944
+ } : {}))
2235
1945
  ];
2236
1946
  case 1:
2237
- _state.sent();
1947
+ response = _state.sent();
1948
+ if (response.body == null) {
1949
+ throw new Error("The response body is empty.");
1950
+ }
1951
+ parser = new JSONParser({
1952
+ stringBufferSize: void 0,
1953
+ paths: [
1954
+ "$"
1955
+ ],
1956
+ separator: ""
1957
+ });
1958
+ reader = response.body.pipeThrough(parser).getReader();
1959
+ messagesQueryKey = [
1960
+ "messages",
1961
+ threadContext.variables
1962
+ ];
1963
+ _state.label = 2;
1964
+ case 2:
1965
+ if (!true) return [
1966
+ 3,
1967
+ 4
1968
+ ];
2238
1969
  return [
2239
1970
  4,
2240
- queryClient.invalidateQueries({
2241
- queryKey: [
2242
- "runs",
2243
- omit2(variables, [
2244
- "content"
2245
- ])
2246
- ]
2247
- })
1971
+ reader.read()
2248
1972
  ];
2249
- case 2:
2250
- _state.sent();
1973
+ case 3:
1974
+ _ref = _state.sent(), done = _ref.done, value = _ref.value;
1975
+ if (done) return [
1976
+ 3,
1977
+ 4
1978
+ ];
1979
+ handleResponse({
1980
+ value: value,
1981
+ messagesQueryKey: messagesQueryKey,
1982
+ queryClient: queryClient
1983
+ });
1984
+ return [
1985
+ 3,
1986
+ 2
1987
+ ];
1988
+ case 4:
2251
1989
  return [
2252
1990
  2
2253
1991
  ];
2254
1992
  }
2255
1993
  });
2256
1994
  });
2257
- return function(_data, _error, variables) {
1995
+ return function(variables) {
2258
1996
  return _ref.apply(this, arguments);
2259
1997
  };
2260
1998
  }();
2261
1999
  };
2000
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/index.ts
2001
+ var mutationOptions = function(param) {
2002
+ var queryClient = param.queryClient, threadContext = param.threadContext, superinterfaceContext = param.superinterfaceContext, onError = param.onError;
2003
+ var mutationKey = [
2004
+ "createMessage",
2005
+ threadContext.variables
2006
+ ];
2007
+ return _object_spread_props(_object_spread({
2008
+ mutationFn: mutationFn({
2009
+ queryClient: queryClient,
2010
+ superinterfaceContext: superinterfaceContext,
2011
+ threadContext: threadContext
2012
+ }),
2013
+ onMutate: onMutate({
2014
+ queryClient: queryClient
2015
+ }),
2016
+ onError: onError
2017
+ }, threadContext.defaultOptions.mutations, queryClient.getMutationDefaults(mutationKey)), {
2018
+ mutationKey: mutationKey
2019
+ });
2020
+ };
2262
2021
  // src/hooks/messages/useCreateMessage/index.ts
2263
2022
  var useCreateMessage = function() {
2264
2023
  var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
2265
2024
  onError: function() {}
2266
2025
  }, _ref_onError = _ref.onError, onError = _ref_onError === void 0 ? function() {} : _ref_onError;
2267
- var queryClient = useQueryClient8();
2026
+ var queryClient = useQueryClient3();
2268
2027
  var superinterfaceContext = useSuperinterfaceContext();
2269
2028
  var threadContext = useSuperinterfaceContext();
2270
- var props = useMutation3(_object_spread({
2271
- onMutate: onMutate2({
2272
- queryClient: queryClient
2273
- }),
2274
- onSettled: onSettled3({
2275
- queryClient: queryClient
2276
- }),
2277
- onError: onError
2278
- }, mutationOptions({
2279
- mutationKeyBase: [
2280
- "createMessage"
2281
- ],
2282
- path: "/messages",
2029
+ var props = useMutation(mutationOptions({
2283
2030
  queryClient: queryClient,
2284
2031
  threadContext: threadContext,
2285
- superinterfaceContext: superinterfaceContext
2286
- })));
2032
+ superinterfaceContext: superinterfaceContext,
2033
+ onError: onError
2034
+ }));
2287
2035
  return _object_spread_props(_object_spread({}, props), {
2288
- createMessage: partob3(props.mutateAsync, threadContext.variables)
2036
+ createMessage: partob(props.mutateAsync, threadContext.variables)
2289
2037
  });
2290
2038
  };
2291
2039
  // src/components/threads/Thread/MessageForm/Root/lib/formOptions.ts
@@ -2303,13 +2051,6 @@ var Root2 = function(param) {
2303
2051
  var children = param.children;
2304
2052
  var formProps = useForm(formOptions);
2305
2053
  var handleSubmit = formProps.handleSubmit, isSubmitting = formProps.formState.isSubmitting, reset = formProps.reset;
2306
- var _useIsRunActive = useIsRunActive(), isRunActive2 = _useIsRunActive.isRunActive;
2307
- var isLoading = useMemo9(function() {
2308
- return isRunActive2 || isSubmitting;
2309
- }, [
2310
- isRunActive2,
2311
- isSubmitting
2312
- ]);
2313
2054
  var addToast = useToasts().addToast;
2314
2055
  var createMessage = useCreateMessage({
2315
2056
  onError: function(error) {
@@ -2319,8 +2060,15 @@ var Root2 = function(param) {
2319
2060
  });
2320
2061
  }
2321
2062
  }).createMessage;
2063
+ var isMutatingMessage = useIsMutatingMessage();
2064
+ var isLoading = useMemo8(function() {
2065
+ return isMutatingMessage || isSubmitting;
2066
+ }, [
2067
+ isMutatingMessage,
2068
+ isSubmitting
2069
+ ]);
2322
2070
  var onSubmit = function() {
2323
- var _ref = _async_to_generator(function(data3) {
2071
+ var _ref = _async_to_generator(function(data2) {
2324
2072
  return _ts_generator(this, function(_state) {
2325
2073
  switch(_state.label){
2326
2074
  case 0:
@@ -2328,7 +2076,7 @@ var Root2 = function(param) {
2328
2076
  return [
2329
2077
  4,
2330
2078
  createMessage({
2331
- content: data3.content
2079
+ content: data2.content
2332
2080
  })
2333
2081
  ];
2334
2082
  case 1:
@@ -2339,12 +2087,12 @@ var Root2 = function(param) {
2339
2087
  }
2340
2088
  });
2341
2089
  });
2342
- return function onSubmit(data3) {
2090
+ return function onSubmit(data2) {
2343
2091
  return _ref.apply(this, arguments);
2344
2092
  };
2345
2093
  }();
2346
2094
  var latestMessage = useLatestMessage().latestMessage;
2347
- var isDisabled = useMemo9(function() {
2095
+ var isDisabled = useMemo8(function() {
2348
2096
  var // @ts-ignore-next-line
2349
2097
  _latestMessage_metadata;
2350
2098
  return latestMessage === null || latestMessage === void 0 ? void 0 : (_latestMessage_metadata = latestMessage.metadata) === null || _latestMessage_metadata === void 0 ? void 0 : _latestMessage_metadata.isBlocking;
@@ -2366,15 +2114,15 @@ var Root2 = function(param) {
2366
2114
  });
2367
2115
  };
2368
2116
  // src/components/threads/Thread/MessageForm/Field/index.tsx
2369
- import { usePrevious as usePrevious2 } from "react-use";
2370
- import { useContext as useContext10, useMemo as useMemo10, useRef as useRef3, useEffect as useEffect6 } from "react";
2117
+ import { usePrevious } from "react-use";
2118
+ import { useContext as useContext9, useMemo as useMemo9, useRef as useRef3, useEffect as useEffect3 } from "react";
2371
2119
  // src/components/textareas/TextareaBase/index.tsx
2372
2120
  import { forwardRef as forwardRef3 } from "react";
2373
2121
  import TextareaAutosize from "react-textarea-autosize";
2374
- import { Fragment as Fragment2, jsx as jsx41, jsxs as jsxs12 } from "react/jsx-runtime";
2122
+ import { Fragment as Fragment3, jsx as jsx41, jsxs as jsxs11 } from "react/jsx-runtime";
2375
2123
  var UPSCALE_RATIO = 16 / 14;
2376
2124
  var TextareaBase = forwardRef3(function TextareaBase2(props, ref) {
2377
- return /* @__PURE__ */ jsxs12(Fragment2, {
2125
+ return /* @__PURE__ */ jsxs11(Fragment3, {
2378
2126
  children: [
2379
2127
  /* @__PURE__ */ jsx41("style", {
2380
2128
  children: ".superinterface-textarea { min-height: inherit; height: 30px; }\n.superinterface-textarea::placeholder { color: var(--gray-a10); }"
@@ -2435,19 +2183,19 @@ var Root3 = function(param) {
2435
2183
  });
2436
2184
  };
2437
2185
  var Control = function() {
2438
- var assistantNameContext = useContext10(AssistantNameContext);
2186
+ var assistantNameContext = useContext9(AssistantNameContext);
2439
2187
  var register = useFormContext().register;
2440
2188
  var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
2441
- var isSubmitDisabled = useMemo10(function() {
2189
+ var isSubmitDisabled = useMemo9(function() {
2442
2190
  return isDisabled || isLoading;
2443
2191
  }, [
2444
2192
  isDisabled,
2445
2193
  isLoading
2446
2194
  ]);
2447
- var isDisabledPrevious = usePrevious2(isDisabled);
2195
+ var isDisabledPrevious = usePrevious(isDisabled);
2448
2196
  var textareaRef = useRef3(null);
2449
2197
  var textareaProps = register("content");
2450
- useEffect6(function() {
2198
+ useEffect3(function() {
2451
2199
  if (isDisabled) return;
2452
2200
  if (!isDisabledPrevious) return;
2453
2201
  if (!textareaRef.current) return;
@@ -2481,10 +2229,10 @@ var Field = {
2481
2229
  Control: Control
2482
2230
  };
2483
2231
  // src/components/threads/Thread/MessageForm/index.tsx
2484
- import { jsx as jsx43, jsxs as jsxs13 } from "react/jsx-runtime";
2232
+ import { jsx as jsx43, jsxs as jsxs12 } from "react/jsx-runtime";
2485
2233
  var MessageForm = function() {
2486
2234
  return /* @__PURE__ */ jsx43(Root2, {
2487
- children: /* @__PURE__ */ jsxs13(Field.Root, {
2235
+ children: /* @__PURE__ */ jsxs12(Field.Root, {
2488
2236
  children: [
2489
2237
  /* @__PURE__ */ jsx43(Text5, {
2490
2238
  size: "2",
@@ -2511,35 +2259,16 @@ MessageForm.Field = Field;
2511
2259
  MessageForm.Submit = Submit;
2512
2260
  // src/components/threads/Thread/Root/index.tsx
2513
2261
  import { Flex as Flex15 } from "@radix-ui/themes";
2514
- // src/components/runs/PollingProvider/index.tsx
2515
- import { useState as useState3 } from "react";
2516
- import { jsx as jsx44 } from "react/jsx-runtime";
2517
- var PollingProvider = function(param) {
2518
- var children = param.children;
2519
- var _useState3 = _sliced_to_array(useState3(false), 2), isPollRefetching = _useState3[0], setIsPollRefetching = _useState3[1];
2520
- return /* @__PURE__ */ jsx44(PollingContext.Provider, {
2521
- value: {
2522
- isPollRefetching: isPollRefetching,
2523
- setIsPollRefetching: setIsPollRefetching
2524
- },
2525
- children: children
2526
- });
2527
- };
2528
2262
  // src/components/threads/Thread/Provider/index.tsx
2529
- import { jsx as jsx45 } from "react/jsx-runtime";
2530
- var Provider2 = function(args) {
2531
- return /* @__PURE__ */ jsx45(PollingProvider, {
2532
- children: /* @__PURE__ */ jsx45(SuperinterfaceProvider, _object_spread({}, args))
2533
- });
2534
- };
2263
+ var Provider2 = SuperinterfaceProvider;
2535
2264
  // src/components/threads/Thread/Root/index.tsx
2536
- import { jsx as jsx46 } from "react/jsx-runtime";
2265
+ import { jsx as jsx44 } from "react/jsx-runtime";
2537
2266
  var Root4 = function(_param) {
2538
2267
  var children = _param.children, rest = _object_without_properties(_param, [
2539
2268
  "children"
2540
2269
  ]);
2541
- return /* @__PURE__ */ jsx46(Provider2, _object_spread_props(_object_spread({}, rest), {
2542
- children: /* @__PURE__ */ jsx46(Flex15, {
2270
+ return /* @__PURE__ */ jsx44(Provider2, _object_spread_props(_object_spread({}, rest), {
2271
+ children: /* @__PURE__ */ jsx44(Flex15, {
2543
2272
  direction: "column",
2544
2273
  flexGrow: "1",
2545
2274
  children: children
@@ -2547,12 +2276,12 @@ var Root4 = function(_param) {
2547
2276
  }));
2548
2277
  };
2549
2278
  // src/components/threads/Thread/index.tsx
2550
- import { jsx as jsx47, jsxs as jsxs14 } from "react/jsx-runtime";
2279
+ import { jsx as jsx45, jsxs as jsxs13 } from "react/jsx-runtime";
2551
2280
  var Thread = function(props) {
2552
- return /* @__PURE__ */ jsxs14(Root4, _object_spread_props(_object_spread({}, props), {
2281
+ return /* @__PURE__ */ jsxs13(Root4, _object_spread_props(_object_spread({}, props), {
2553
2282
  children: [
2554
- /* @__PURE__ */ jsx47(Messages, {}),
2555
- /* @__PURE__ */ jsx47(MessageForm, {})
2283
+ /* @__PURE__ */ jsx45(Messages, {}),
2284
+ /* @__PURE__ */ jsx45(MessageForm, {})
2556
2285
  ]
2557
2286
  }));
2558
2287
  };
@@ -2560,30 +2289,30 @@ Thread.Root = Root4;
2560
2289
  Thread.Messages = Messages;
2561
2290
  Thread.MessageForm = MessageForm;
2562
2291
  // src/hooks/messages/useMessageContext/index.ts
2563
- import { useContext as useContext11 } from "react";
2292
+ import { useContext as useContext10 } from "react";
2564
2293
  var useMessageContext = function() {
2565
- return useContext11(MessageContext);
2294
+ return useContext10(MessageContext);
2566
2295
  };
2567
2296
  // src/components/threads/ThreadDialog/Provider/index.tsx
2568
- import { useState as useState4 } from "react";
2297
+ import { useState } from "react";
2569
2298
  // src/contexts/threads/ThreadDialogContext/index.ts
2570
- import { createContext as createContext10 } from "react";
2571
- var ThreadDialogContext = createContext10({
2299
+ import { createContext as createContext9 } from "react";
2300
+ var ThreadDialogContext = createContext9({
2572
2301
  isOpen: false,
2573
2302
  setIsOpen: function() {}
2574
2303
  });
2575
2304
  // src/hooks/threads/useThreadDialogContext/index.ts
2576
- import { useContext as useContext12 } from "react";
2305
+ import { useContext as useContext11 } from "react";
2577
2306
  var useThreadDialogContext = function() {
2578
- return useContext12(ThreadDialogContext);
2307
+ return useContext11(ThreadDialogContext);
2579
2308
  };
2580
2309
  // src/components/threads/ThreadDialog/Provider/index.tsx
2581
- import { jsx as jsx48 } from "react/jsx-runtime";
2310
+ import { jsx as jsx46 } from "react/jsx-runtime";
2582
2311
  var Provider3 = function(param) {
2583
2312
  var children = param.children;
2584
2313
  var threadDialogContext = useThreadDialogContext();
2585
- var _useState4 = _sliced_to_array(useState4(threadDialogContext.isOpen), 2), isOpen = _useState4[0], setIsOpen = _useState4[1];
2586
- return /* @__PURE__ */ jsx48(ThreadDialogContext.Provider, {
2314
+ var _useState = _sliced_to_array(useState(threadDialogContext.isOpen), 2), isOpen = _useState[0], setIsOpen = _useState[1];
2315
+ return /* @__PURE__ */ jsx46(ThreadDialogContext.Provider, {
2587
2316
  value: {
2588
2317
  isOpen: isOpen,
2589
2318
  setIsOpen: setIsOpen
@@ -2592,31 +2321,31 @@ var Provider3 = function(param) {
2592
2321
  });
2593
2322
  };
2594
2323
  // src/components/toasts/ToastsProvider/index.tsx
2595
- import { useState as useState5, useCallback as useCallback2 } from "react";
2324
+ import { useState as useState2, useCallback as useCallback2 } from "react";
2596
2325
  import * as Toast2 from "@radix-ui/react-toast";
2597
2326
  // src/components/toasts/ToastsProvider/CustomToast.tsx
2598
2327
  import * as Toast from "@radix-ui/react-toast";
2599
2328
  import { Card, Text as Text6, Flex as Flex16 } from "@radix-ui/themes";
2600
2329
  import { CheckCircledIcon as CheckCircledIcon2, CrossCircledIcon } from "@radix-ui/react-icons";
2601
- import { jsx as jsx49, jsxs as jsxs15 } from "react/jsx-runtime";
2330
+ import { jsx as jsx47, jsxs as jsxs14 } from "react/jsx-runtime";
2602
2331
  var CustomToast = function(param) {
2603
2332
  var toast = param.toast;
2604
- return /* @__PURE__ */ jsx49(Toast.Root, {
2605
- children: /* @__PURE__ */ jsx49(Card, {
2606
- children: /* @__PURE__ */ jsx49(Toast.Title, {
2607
- children: /* @__PURE__ */ jsxs15(Flex16, {
2333
+ return /* @__PURE__ */ jsx47(Toast.Root, {
2334
+ children: /* @__PURE__ */ jsx47(Card, {
2335
+ children: /* @__PURE__ */ jsx47(Toast.Title, {
2336
+ children: /* @__PURE__ */ jsxs14(Flex16, {
2608
2337
  children: [
2609
- /* @__PURE__ */ jsx49(Flex16, {
2338
+ /* @__PURE__ */ jsx47(Flex16, {
2610
2339
  pr: "2",
2611
2340
  height: "14px",
2612
2341
  align: "center",
2613
- children: toast.type === "success" ? /* @__PURE__ */ jsx49(CheckCircledIcon2, {
2342
+ children: toast.type === "success" ? /* @__PURE__ */ jsx47(CheckCircledIcon2, {
2614
2343
  color: "var(--mint-9)"
2615
- }) : /* @__PURE__ */ jsx49(CrossCircledIcon, {
2344
+ }) : /* @__PURE__ */ jsx47(CrossCircledIcon, {
2616
2345
  color: "var(--red-9)"
2617
2346
  })
2618
2347
  }),
2619
- /* @__PURE__ */ jsx49(Text6, {
2348
+ /* @__PURE__ */ jsx47(Text6, {
2620
2349
  weight: "medium",
2621
2350
  size: "1",
2622
2351
  children: toast.message
@@ -2628,10 +2357,10 @@ var CustomToast = function(param) {
2628
2357
  });
2629
2358
  };
2630
2359
  // src/components/toasts/ToastsProvider/index.tsx
2631
- import { jsx as jsx50, jsxs as jsxs16 } from "react/jsx-runtime";
2360
+ import { jsx as jsx48, jsxs as jsxs15 } from "react/jsx-runtime";
2632
2361
  var ToastsProvider = function(param) {
2633
2362
  var children = param.children;
2634
- var _useState5 = _sliced_to_array(useState5([]), 2), toasts = _useState5[0], setToasts = _useState5[1];
2363
+ var _useState2 = _sliced_to_array(useState2([]), 2), toasts = _useState2[0], setToasts = _useState2[1];
2635
2364
  var addToast = useCallback2(function(toast) {
2636
2365
  return setToasts(function(prevToasts) {
2637
2366
  return _to_consumable_array(prevToasts).concat([
@@ -2639,20 +2368,20 @@ var ToastsProvider = function(param) {
2639
2368
  ]);
2640
2369
  });
2641
2370
  }, []);
2642
- return /* @__PURE__ */ jsx50(ToastsContext.Provider, {
2371
+ return /* @__PURE__ */ jsx48(ToastsContext.Provider, {
2643
2372
  value: {
2644
2373
  toasts: toasts,
2645
2374
  addToast: addToast
2646
2375
  },
2647
- children: /* @__PURE__ */ jsxs16(Toast2.Provider, {
2376
+ children: /* @__PURE__ */ jsxs15(Toast2.Provider, {
2648
2377
  children: [
2649
2378
  children,
2650
2379
  Array.from(toasts).map(function(toast, index) {
2651
- return /* @__PURE__ */ jsx50(CustomToast, {
2380
+ return /* @__PURE__ */ jsx48(CustomToast, {
2652
2381
  toast: toast
2653
2382
  }, index);
2654
2383
  }),
2655
- /* @__PURE__ */ jsx50(Toast2.Viewport, {
2384
+ /* @__PURE__ */ jsx48(Toast2.Viewport, {
2656
2385
  style: {
2657
2386
  position: "absolute",
2658
2387
  bottom: 0,
@@ -2674,22 +2403,22 @@ var ToastsProvider = function(param) {
2674
2403
  });
2675
2404
  };
2676
2405
  // src/components/threads/ThreadDialog/Root/index.tsx
2677
- import { jsx as jsx51 } from "react/jsx-runtime";
2406
+ import { jsx as jsx49 } from "react/jsx-runtime";
2678
2407
  var Root6 = function(param) {
2679
- var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2680
- return /* @__PURE__ */ jsx51(ToastsProvider, {
2681
- children: /* @__PURE__ */ jsx51(Provider3, {
2408
+ var children = param.children;
2409
+ return /* @__PURE__ */ jsx49(ToastsProvider, {
2410
+ children: /* @__PURE__ */ jsx49(Provider3, {
2682
2411
  children: children
2683
2412
  })
2684
2413
  });
2685
2414
  };
2686
2415
  // src/components/threads/ThreadDialog/Trigger/index.tsx
2687
2416
  import { Flex as Flex17 } from "@radix-ui/themes";
2688
- import { jsx as jsx52 } from "react/jsx-runtime";
2417
+ import { jsx as jsx50 } from "react/jsx-runtime";
2689
2418
  var Trigger = function(param) {
2690
2419
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2691
2420
  var _useThreadDialogContext = useThreadDialogContext(), setIsOpen = _useThreadDialogContext.setIsOpen, isOpen = _useThreadDialogContext.isOpen;
2692
- return /* @__PURE__ */ jsx52(Flex17, {
2421
+ return /* @__PURE__ */ jsx50(Flex17, {
2693
2422
  display: {
2694
2423
  initial: isOpen ? "none" : "flex",
2695
2424
  sm: "flex"
@@ -2715,12 +2444,12 @@ var Trigger = function(param) {
2715
2444
  // src/components/threads/ThreadDialog/Button/index.tsx
2716
2445
  import { IconButton as IconButton2 } from "@radix-ui/themes";
2717
2446
  import { ChatBubbleIcon } from "@radix-ui/react-icons";
2718
- import { jsx as jsx53 } from "react/jsx-runtime";
2447
+ import { jsx as jsx51 } from "react/jsx-runtime";
2719
2448
  var Button2 = function() {
2720
- return /* @__PURE__ */ jsx53(IconButton2, {
2449
+ return /* @__PURE__ */ jsx51(IconButton2, {
2721
2450
  size: "4",
2722
2451
  radius: "full",
2723
- children: /* @__PURE__ */ jsx53(ChatBubbleIcon, {})
2452
+ children: /* @__PURE__ */ jsx51(ChatBubbleIcon, {})
2724
2453
  });
2725
2454
  };
2726
2455
  // src/components/threads/ThreadDialog/Content/index.tsx
@@ -2728,10 +2457,10 @@ import { Card as Card2, Inset, Flex as Flex19 } from "@radix-ui/themes";
2728
2457
  // src/components/threads/ThreadDialog/Close/index.tsx
2729
2458
  import { Cross1Icon } from "@radix-ui/react-icons";
2730
2459
  import { IconButton as IconButton3, Flex as Flex18 } from "@radix-ui/themes";
2731
- import { jsx as jsx54 } from "react/jsx-runtime";
2460
+ import { jsx as jsx52 } from "react/jsx-runtime";
2732
2461
  var Close = function() {
2733
2462
  var _useThreadDialogContext = useThreadDialogContext(), setIsOpen = _useThreadDialogContext.setIsOpen, isOpen = _useThreadDialogContext.isOpen;
2734
- return /* @__PURE__ */ jsx54(Flex18, {
2463
+ return /* @__PURE__ */ jsx52(Flex18, {
2735
2464
  display: {
2736
2465
  initial: isOpen ? "flex" : "none",
2737
2466
  sm: "none"
@@ -2751,20 +2480,20 @@ var Close = function() {
2751
2480
  style: {
2752
2481
  zIndex: 9999999999
2753
2482
  },
2754
- children: /* @__PURE__ */ jsx54(IconButton3, {
2483
+ children: /* @__PURE__ */ jsx52(IconButton3, {
2755
2484
  size: "2",
2756
2485
  variant: "soft",
2757
- children: /* @__PURE__ */ jsx54(Cross1Icon, {})
2486
+ children: /* @__PURE__ */ jsx52(Cross1Icon, {})
2758
2487
  })
2759
2488
  });
2760
2489
  };
2761
2490
  // src/components/threads/ThreadDialog/Content/index.tsx
2762
- import { jsx as jsx55, jsxs as jsxs17 } from "react/jsx-runtime";
2491
+ import { jsx as jsx53, jsxs as jsxs16 } from "react/jsx-runtime";
2763
2492
  var Root7 = function(param) {
2764
2493
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2765
2494
  var isOpen = useThreadDialogContext().isOpen;
2766
2495
  if (!isOpen) return null;
2767
- return /* @__PURE__ */ jsx55(Flex19, {
2496
+ return /* @__PURE__ */ jsx53(Flex19, {
2768
2497
  direction: "column",
2769
2498
  justify: "end",
2770
2499
  position: "fixed",
@@ -2792,7 +2521,7 @@ var Root7 = function(param) {
2792
2521
  style: _object_spread({
2793
2522
  zIndex: 9999999999
2794
2523
  }, style),
2795
- children: /* @__PURE__ */ jsxs17(Card2, {
2524
+ children: /* @__PURE__ */ jsxs16(Card2, {
2796
2525
  mb: {
2797
2526
  initial: void 0,
2798
2527
  sm: "3"
@@ -2803,7 +2532,7 @@ var Root7 = function(param) {
2803
2532
  flexGrow: 1
2804
2533
  },
2805
2534
  children: [
2806
- /* @__PURE__ */ jsx55(Inset, {
2535
+ /* @__PURE__ */ jsx53(Inset, {
2807
2536
  clip: "padding-box",
2808
2537
  side: "all",
2809
2538
  pb: "current",
@@ -2813,31 +2542,31 @@ var Root7 = function(param) {
2813
2542
  },
2814
2543
  children: children
2815
2544
  }),
2816
- /* @__PURE__ */ jsx55(Close, {})
2545
+ /* @__PURE__ */ jsx53(Close, {})
2817
2546
  ]
2818
2547
  })
2819
2548
  });
2820
2549
  };
2821
2550
  var Content4 = function(param) {
2822
2551
  var _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2823
- return /* @__PURE__ */ jsx55(Root7, {
2552
+ return /* @__PURE__ */ jsx53(Root7, {
2824
2553
  style: style,
2825
- children: /* @__PURE__ */ jsxs17(Thread.Root, {
2554
+ children: /* @__PURE__ */ jsxs16(Thread.Root, {
2826
2555
  children: [
2827
- /* @__PURE__ */ jsx55(Thread.Messages, {
2556
+ /* @__PURE__ */ jsx53(Thread.Messages, {
2828
2557
  style: {
2829
2558
  paddingTop: "var(--space-5)",
2830
2559
  paddingRight: "var(--space-5)",
2831
2560
  paddingLeft: "var(--space-5)"
2832
2561
  }
2833
2562
  }),
2834
- /* @__PURE__ */ jsx55(Flex19, {
2563
+ /* @__PURE__ */ jsx53(Flex19, {
2835
2564
  direction: "column",
2836
2565
  pl: "5",
2837
2566
  pr: "5",
2838
2567
  pb: "3",
2839
2568
  flexShrink: "0",
2840
- children: /* @__PURE__ */ jsx55(Thread.MessageForm, {})
2569
+ children: /* @__PURE__ */ jsx53(Thread.MessageForm, {})
2841
2570
  })
2842
2571
  ]
2843
2572
  })
@@ -2845,13 +2574,13 @@ var Content4 = function(param) {
2845
2574
  };
2846
2575
  Content4.Root = Root7;
2847
2576
  // src/components/threads/ThreadDialog/index.tsx
2848
- import { jsx as jsx56, jsxs as jsxs18 } from "react/jsx-runtime";
2577
+ import { jsx as jsx54, jsxs as jsxs17 } from "react/jsx-runtime";
2849
2578
  var ThreadDialog = function() {
2850
- return /* @__PURE__ */ jsxs18(Root6, {
2579
+ return /* @__PURE__ */ jsxs17(Root6, {
2851
2580
  children: [
2852
- /* @__PURE__ */ jsx56(Content4, {}),
2853
- /* @__PURE__ */ jsx56(Trigger, {
2854
- children: /* @__PURE__ */ jsx56(Button2, {})
2581
+ /* @__PURE__ */ jsx54(Content4, {}),
2582
+ /* @__PURE__ */ jsx54(Trigger, {
2583
+ children: /* @__PURE__ */ jsx54(Button2, {})
2855
2584
  })
2856
2585
  ]
2857
2586
  });
@@ -2864,8 +2593,8 @@ ThreadDialog.Content = Content4;
2864
2593
  import "regenerator-runtime/runtime";
2865
2594
  import { Flex as Flex20 } from "@radix-ui/themes";
2866
2595
  // src/contexts/threads/AudioThreadContext/index.ts
2867
- import { createContext as createContext11 } from "react";
2868
- var AudioThreadContext = createContext11({
2596
+ import { createContext as createContext10 } from "react";
2597
+ var AudioThreadContext = createContext10({
2869
2598
  status: "idle",
2870
2599
  recorderProps: {
2871
2600
  status: "idle",
@@ -2933,14 +2662,12 @@ var blobToData = function(blob) {
2933
2662
  });
2934
2663
  };
2935
2664
  // src/hooks/audioThreads/useStatus/index.ts
2936
- import { useMemo as useMemo11 } from "react";
2665
+ import { useMemo as useMemo10 } from "react";
2937
2666
  var useStatus = function(param) {
2938
2667
  var messageAudioProps = param.messageAudioProps, recorderProps = param.recorderProps, createMessageProps = param.createMessageProps;
2939
- var isRunActiveProps = useIsRunActive();
2940
- var status = useMemo11(function() {
2668
+ var status = useMemo10(function() {
2941
2669
  if (recorderProps.status === "recording") return "recording";
2942
2670
  if (createMessageProps.isPending) return "creatingMessage";
2943
- if (isRunActiveProps.isRunActive) return "runActive";
2944
2671
  if (messageAudioProps.playing) return "playing";
2945
2672
  if (messageAudioProps.paused) return "playerPaused";
2946
2673
  if (!messageAudioProps.isReady) return "loading";
@@ -2950,29 +2677,28 @@ var useStatus = function(param) {
2950
2677
  }, [
2951
2678
  messageAudioProps,
2952
2679
  recorderProps,
2953
- createMessageProps,
2954
- isRunActiveProps
2680
+ createMessageProps
2955
2681
  ]);
2956
2682
  return {
2957
2683
  status: status
2958
2684
  };
2959
2685
  };
2960
2686
  // src/hooks/audioThreads/useRecorder/index.ts
2961
- import dayjs from "dayjs";
2687
+ import dayjs2 from "dayjs";
2962
2688
  import { useAudioCapture } from "use-audio-capture";
2963
- import { useMemo as useMemo12, useRef as useRef4, useState as useState6, useCallback as useCallback3, useEffect as useEffect7 } from "react";
2689
+ import { useMemo as useMemo11, useRef as useRef4, useState as useState3, useCallback as useCallback3, useEffect as useEffect4 } from "react";
2964
2690
  import { useAudioPlayer } from "react-use-audio-player";
2965
- import { useInterval as useInterval2 } from "react-use";
2691
+ import { useInterval } from "react-use";
2966
2692
  var useRecorder = function(param) {
2967
2693
  var isStopOnSilence = param.isStopOnSilence, onStart = param.onStart, onStop = param.onStop;
2968
- var _useState6 = _sliced_to_array(useState6(null), 2), silenceStart = _useState6[0], setSilenceStart = _useState6[1];
2969
- var _useState61 = _sliced_to_array(useState6(null), 2), noiseStart = _useState61[0], setNoiseStart = _useState61[1];
2970
- var _useState62 = _sliced_to_array(useState6(null), 2), mediaStream = _useState62[0], setMediaStream = _useState62[1];
2971
- var _useState63 = _sliced_to_array(useState6("idle"), 2), status = _useState63[0], setStatus = _useState63[1];
2694
+ var _useState3 = _sliced_to_array(useState3(null), 2), silenceStart = _useState3[0], setSilenceStart = _useState3[1];
2695
+ var _useState31 = _sliced_to_array(useState3(null), 2), noiseStart = _useState31[0], setNoiseStart = _useState31[1];
2696
+ var _useState32 = _sliced_to_array(useState3(null), 2), mediaStream = _useState32[0], setMediaStream = _useState32[1];
2697
+ var _useState33 = _sliced_to_array(useState3("idle"), 2), status = _useState33[0], setStatus = _useState33[1];
2972
2698
  var startAudioPlayer = useAudioPlayer();
2973
2699
  var endAudioPlayer = useAudioPlayer();
2974
- var _useState64 = _sliced_to_array(useState6(false), 2), isLoaded = _useState64[0], setIsLoaded = _useState64[1];
2975
- useEffect7(function() {
2700
+ var _useState34 = _sliced_to_array(useState3(false), 2), isLoaded = _useState34[0], setIsLoaded = _useState34[1];
2701
+ useEffect4(function() {
2976
2702
  if (isLoaded) return;
2977
2703
  setIsLoaded(true);
2978
2704
  }, [
@@ -3030,9 +2756,9 @@ var useRecorder = function(param) {
3030
2756
  setNoiseStart(null);
3031
2757
  }
3032
2758
  });
3033
- var _useState65 = _sliced_to_array(useState6(null), 2), audioEngine = _useState65[0], setAudioEngine = _useState65[1];
2759
+ var _useState35 = _sliced_to_array(useState3(null), 2), audioEngine = _useState35[0], setAudioEngine = _useState35[1];
3034
2760
  var isInited = useRef4(false);
3035
- useEffect7(function() {
2761
+ useEffect4(function() {
3036
2762
  if (!mediaStream) return;
3037
2763
  if (isInited.current) return;
3038
2764
  isInited.current = true;
@@ -3045,7 +2771,7 @@ var useRecorder = function(param) {
3045
2771
  isInited,
3046
2772
  mediaStream
3047
2773
  ]);
3048
- var visualizationAnalyser = useMemo12(function() {
2774
+ var visualizationAnalyser = useMemo11(function() {
3049
2775
  if (!audioEngine) return null;
3050
2776
  var result = audioEngine.audioContext.createAnalyser();
3051
2777
  audioEngine.source.connect(result);
@@ -3053,7 +2779,7 @@ var useRecorder = function(param) {
3053
2779
  }, [
3054
2780
  audioEngine
3055
2781
  ]);
3056
- var silenceAnalyser = useMemo12(function() {
2782
+ var silenceAnalyser = useMemo11(function() {
3057
2783
  if (!audioEngine) return null;
3058
2784
  var result = audioEngine.audioContext.createAnalyser();
3059
2785
  result.minDecibels = -45;
@@ -3070,12 +2796,12 @@ var useRecorder = function(param) {
3070
2796
  return f === 0;
3071
2797
  });
3072
2798
  setSilenceStart(function(silenceStart2) {
3073
- if (isSilent) return silenceStart2 || dayjs();
2799
+ if (isSilent) return silenceStart2 || dayjs2();
3074
2800
  return null;
3075
2801
  });
3076
2802
  setNoiseStart(function(noiseStart2) {
3077
2803
  if (isSilent) return noiseStart2;
3078
- return noiseStart2 || dayjs();
2804
+ return noiseStart2 || dayjs2();
3079
2805
  });
3080
2806
  requestAnimationFrame(function() {
3081
2807
  return handleSilence();
@@ -3085,7 +2811,7 @@ var useRecorder = function(param) {
3085
2811
  setNoiseStart,
3086
2812
  setSilenceStart
3087
2813
  ]);
3088
- useEffect7(function() {
2814
+ useEffect4(function() {
3089
2815
  if (!isStopOnSilence) return;
3090
2816
  requestAnimationFrame(function() {
3091
2817
  return handleSilence();
@@ -3094,12 +2820,12 @@ var useRecorder = function(param) {
3094
2820
  handleSilence,
3095
2821
  isStopOnSilence
3096
2822
  ]);
3097
- useInterval2(function() {
2823
+ useInterval(function() {
3098
2824
  if (!isStopOnSilence) return;
3099
2825
  if (status !== "recording") return;
3100
2826
  if (!silenceStart) return;
3101
2827
  if (!noiseStart) return;
3102
- if (!silenceStart.isBefore(dayjs().subtract(1, "second"))) return;
2828
+ if (!silenceStart.isBefore(dayjs2().subtract(1, "second"))) return;
3103
2829
  audioCaptureProps.stop();
3104
2830
  }, 100);
3105
2831
  return _object_spread_props(_object_spread({}, audioCaptureProps), {
@@ -3108,7 +2834,7 @@ var useRecorder = function(param) {
3108
2834
  });
3109
2835
  };
3110
2836
  // src/hooks/audioThreads/useMessageAudio/index.ts
3111
- import { useMemo as useMemo13, useRef as useRef5, useState as useState7, useEffect as useEffect8 } from "react";
2837
+ import { useMemo as useMemo12, useRef as useRef5, useState as useState4, useEffect as useEffect5 } from "react";
3112
2838
  import { Howler } from "howler";
3113
2839
  import { useAudioPlayer as useAudioPlayer2 } from "react-use-audio-player";
3114
2840
  // src/hooks/audioThreads/useMessageAudio/lib/input.ts
@@ -3134,11 +2860,11 @@ var isHtmlAudioSupported = !unsupportedNames.includes(((_detect = detect()) ===
3134
2860
  // src/hooks/audioThreads/useMessageAudio/index.ts
3135
2861
  var useMessageAudio = function(param) {
3136
2862
  var onEnd = param.onEnd;
3137
- var _useState7 = _sliced_to_array(useState7([]), 2), playedMessages = _useState7[0], setPlayedMessages = _useState7[1];
2863
+ var _useState4 = _sliced_to_array(useState4([]), 2), playedMessages = _useState4[0], setPlayedMessages = _useState4[1];
3138
2864
  var audioPlayer = useAudioPlayer2();
3139
2865
  var superinterfaceContext = useSuperinterfaceContext();
3140
2866
  var latestMessageProps = useLatestMessage();
3141
- useEffect8(function() {
2867
+ useEffect5(function() {
3142
2868
  if (audioPlayer.playing) return;
3143
2869
  if (!latestMessageProps.latestMessage) return;
3144
2870
  if (latestMessageProps.latestMessage.role !== "assistant") return;
@@ -3157,11 +2883,17 @@ var useMessageAudio = function(param) {
3157
2883
  latestMessageProps.latestMessage
3158
2884
  ]);
3159
2885
  });
3160
- audioPlayer.load("".concat(superinterfaceContext.baseUrl, "/tts?input=").concat(input2), {
2886
+ var searchParams = new URLSearchParams(_object_spread({
2887
+ input: input2
2888
+ }, isHtmlAudioSupported && superinterfaceContext.publicApiKey ? {
2889
+ publicApiKey: superinterfaceContext.publicApiKey
2890
+ } : {}));
2891
+ audioPlayer.load("".concat(superinterfaceContext.baseUrl, "/tts?").concat(searchParams), _object_spread({
3161
2892
  format: "mp3",
3162
2893
  autoplay: true,
3163
2894
  html5: isHtmlAudioSupported,
3164
- onend: onEnd,
2895
+ onend: onEnd
2896
+ }, isHtmlAudioSupported ? {} : {
3165
2897
  xhr: _object_spread_props(_object_spread({}, superinterfaceContext.publicApiKey ? {
3166
2898
  headers: {
3167
2899
  Authorization: "Bearer ".concat(superinterfaceContext.publicApiKey)
@@ -3169,7 +2901,7 @@ var useMessageAudio = function(param) {
3169
2901
  } : {}), {
3170
2902
  withCredentials: true
3171
2903
  })
3172
- });
2904
+ }));
3173
2905
  }, [
3174
2906
  superinterfaceContext,
3175
2907
  latestMessageProps,
@@ -3178,8 +2910,8 @@ var useMessageAudio = function(param) {
3178
2910
  onEnd
3179
2911
  ]);
3180
2912
  var isInited = useRef5(false);
3181
- var _useState71 = _sliced_to_array(useState7(null), 2), audioEngine = _useState71[0], setAudioEngine = _useState71[1];
3182
- useEffect8(function() {
2913
+ var _useState41 = _sliced_to_array(useState4(null), 2), audioEngine = _useState41[0], setAudioEngine = _useState41[1];
2914
+ useEffect5(function() {
3183
2915
  if (!audioPlayer.playing) return;
3184
2916
  if (isInited.current) return;
3185
2917
  isInited.current = true;
@@ -3200,7 +2932,7 @@ var useMessageAudio = function(param) {
3200
2932
  audioPlayer,
3201
2933
  isInited
3202
2934
  ]);
3203
- var visualizationAnalyser = useMemo13(function() {
2935
+ var visualizationAnalyser = useMemo12(function() {
3204
2936
  if (!audioEngine) return null;
3205
2937
  var result = audioEngine.audioContext.createAnalyser();
3206
2938
  audioEngine.source.connect(audioEngine.audioContext.destination);
@@ -3214,10 +2946,9 @@ var useMessageAudio = function(param) {
3214
2946
  });
3215
2947
  };
3216
2948
  // src/components/threads/AudioThread/Root/index.tsx
3217
- import { jsx as jsx57 } from "react/jsx-runtime";
2949
+ import { jsx as jsx55 } from "react/jsx-runtime";
3218
2950
  var Root8 = function(param) {
3219
2951
  var children = param.children;
3220
- useLifecycle();
3221
2952
  var createMessageProps = useCreateMessage();
3222
2953
  var recorderProps = useRecorder({
3223
2954
  isStopOnSilence: true,
@@ -3274,13 +3005,13 @@ var Root8 = function(param) {
3274
3005
  createMessageProps: createMessageProps,
3275
3006
  messageAudioProps: messageAudioProps
3276
3007
  }).status;
3277
- return /* @__PURE__ */ jsx57(AudioThreadContext.Provider, {
3008
+ return /* @__PURE__ */ jsx55(AudioThreadContext.Provider, {
3278
3009
  value: {
3279
3010
  status: status,
3280
3011
  recorderProps: recorderProps,
3281
3012
  messageAudioProps: messageAudioProps
3282
3013
  },
3283
- children: /* @__PURE__ */ jsx57(Flex20, {
3014
+ children: /* @__PURE__ */ jsx55(Flex20, {
3284
3015
  direction: "column",
3285
3016
  flexGrow: "1",
3286
3017
  p: "9",
@@ -3291,20 +3022,20 @@ var Root8 = function(param) {
3291
3022
  // src/components/threads/AudioThread/Visualization/index.tsx
3292
3023
  import { Flex as Flex22 } from "@radix-ui/themes";
3293
3024
  // src/hooks/threads/useAudioThreadContext/index.ts
3294
- import { useContext as useContext13 } from "react";
3025
+ import { useContext as useContext12 } from "react";
3295
3026
  var useAudioThreadContext = function() {
3296
- return useContext13(AudioThreadContext);
3027
+ return useContext12(AudioThreadContext);
3297
3028
  };
3298
3029
  // src/components/threads/AudioThread/BarsVisualizer/index.tsx
3299
- import _6 from "lodash";
3030
+ import _8 from "lodash";
3300
3031
  import { Flex as Flex21, Grid } from "@radix-ui/themes";
3301
- import { useState as useState8, useEffect as useEffect9, useCallback as useCallback4 } from "react";
3032
+ import { useState as useState5, useEffect as useEffect6, useCallback as useCallback4 } from "react";
3302
3033
  import { cluster } from "radash";
3303
- import { jsx as jsx58 } from "react/jsx-runtime";
3034
+ import { jsx as jsx56 } from "react/jsx-runtime";
3304
3035
  var barCount = 4;
3305
3036
  var BarsVisualizer = function(param) {
3306
3037
  var visualizationAnalyser = param.visualizationAnalyser, color = param.color, height = param.height, barWidth = param.barWidth;
3307
- var _useState8 = _sliced_to_array(useState8(null), 2), cachedEmptyVisualizer = _useState8[0], setCachedEmptyVisualizer = _useState8[1];
3038
+ var _useState5 = _sliced_to_array(useState5(null), 2), cachedEmptyVisualizer = _useState5[0], setCachedEmptyVisualizer = _useState5[1];
3308
3039
  var getEmptyVisualizer = useCallback4(function() {
3309
3040
  var result = new AudioContext().createAnalyser();
3310
3041
  setCachedEmptyVisualizer(result);
@@ -3312,14 +3043,14 @@ var BarsVisualizer = function(param) {
3312
3043
  }, [
3313
3044
  cachedEmptyVisualizer
3314
3045
  ]);
3315
- var _useState81 = _sliced_to_array(useState8([]), 2), barHeights = _useState81[0], setBarHeights = _useState81[1];
3046
+ var _useState51 = _sliced_to_array(useState5([]), 2), barHeights = _useState51[0], setBarHeights = _useState51[1];
3316
3047
  var draw = useCallback4(function(param) {
3317
3048
  var visualizationAnalyser2 = param.visualizationAnalyser;
3318
3049
  var frequencyData = new Uint8Array(visualizationAnalyser2.frequencyBinCount / 15);
3319
3050
  visualizationAnalyser2.getByteFrequencyData(frequencyData);
3320
3051
  var clusteredFrequencyData = cluster(frequencyData, frequencyData.length / barCount);
3321
3052
  setBarHeights(clusteredFrequencyData.map(function(frequencyDataCluster) {
3322
- return _6.mean(frequencyDataCluster) / 255 * 100;
3053
+ return _8.mean(frequencyDataCluster) / 255 * 100;
3323
3054
  }));
3324
3055
  requestAnimationFrame(function() {
3325
3056
  return draw({
@@ -3327,7 +3058,7 @@ var BarsVisualizer = function(param) {
3327
3058
  });
3328
3059
  });
3329
3060
  }, []);
3330
- useEffect9(function() {
3061
+ useEffect6(function() {
3331
3062
  draw({
3332
3063
  visualizationAnalyser: visualizationAnalyser || cachedEmptyVisualizer || getEmptyVisualizer()
3333
3064
  });
@@ -3337,7 +3068,7 @@ var BarsVisualizer = function(param) {
3337
3068
  cachedEmptyVisualizer,
3338
3069
  getEmptyVisualizer
3339
3070
  ]);
3340
- return /* @__PURE__ */ jsx58(Grid, {
3071
+ return /* @__PURE__ */ jsx56(Grid, {
3341
3072
  columns: "".concat(barCount),
3342
3073
  gap: "1",
3343
3074
  width: "auto",
@@ -3346,12 +3077,12 @@ var BarsVisualizer = function(param) {
3346
3077
  gridTemplateColumns: "repeat(4, minmax(0, 1fr))"
3347
3078
  },
3348
3079
  children: barHeights.map(function(barHeight, index) {
3349
- return /* @__PURE__ */ jsx58(Flex21, {
3080
+ return /* @__PURE__ */ jsx56(Flex21, {
3350
3081
  direction: "column",
3351
3082
  align: "center",
3352
3083
  justify: "center",
3353
3084
  height: height,
3354
- children: /* @__PURE__ */ jsx58(Flex21, {
3085
+ children: /* @__PURE__ */ jsx56(Flex21, {
3355
3086
  minHeight: "50%",
3356
3087
  maxHeight: "100%",
3357
3088
  height: "".concat(barHeight + 20, "%"),
@@ -3366,16 +3097,16 @@ var BarsVisualizer = function(param) {
3366
3097
  });
3367
3098
  };
3368
3099
  // src/components/threads/AudioThread/Visualization/index.tsx
3369
- import { jsx as jsx59 } from "react/jsx-runtime";
3100
+ import { jsx as jsx57 } from "react/jsx-runtime";
3370
3101
  var Visualization = function() {
3371
3102
  var audioThreadContext = useAudioThreadContext();
3372
- return /* @__PURE__ */ jsx59(Flex22, {
3103
+ return /* @__PURE__ */ jsx57(Flex22, {
3373
3104
  direction: "column",
3374
3105
  align: "center",
3375
3106
  justify: "center",
3376
3107
  mb: "3",
3377
3108
  flexGrow: "1",
3378
- children: /* @__PURE__ */ jsx59(Flex22, {
3109
+ children: /* @__PURE__ */ jsx57(Flex22, {
3379
3110
  align: "center",
3380
3111
  justify: "center",
3381
3112
  height: "200px",
@@ -3384,7 +3115,7 @@ var Visualization = function() {
3384
3115
  backgroundColor: "var(--".concat(audioThreadContext.status === "playing" ? "mint" : "gray", "-4)"),
3385
3116
  borderRadius: "9999px"
3386
3117
  },
3387
- children: /* @__PURE__ */ jsx59(BarsVisualizer, {
3118
+ children: /* @__PURE__ */ jsx57(BarsVisualizer, {
3388
3119
  visualizationAnalyser: audioThreadContext.messageAudioProps.visualizationAnalyser,
3389
3120
  color: audioThreadContext.status === "playing" ? "mint" : "gray",
3390
3121
  height: "40px",
@@ -3399,25 +3130,25 @@ import { Flex as Flex24 } from "@radix-ui/themes";
3399
3130
  // src/components/threads/AudioThread/Form/ActionButton/index.tsx
3400
3131
  import { Flex as Flex23, IconButton as IconButton4 } from "@radix-ui/themes";
3401
3132
  import { PauseIcon, ArrowUpIcon as ArrowUpIcon2, ResumeIcon } from "@radix-ui/react-icons";
3402
- import { jsx as jsx60, jsxs as jsxs19 } from "react/jsx-runtime";
3133
+ import { jsx as jsx58, jsxs as jsxs18 } from "react/jsx-runtime";
3403
3134
  var ActionButton = function() {
3404
3135
  var audioThreadContext = useAudioThreadContext();
3405
3136
  if (audioThreadContext.status === "recording") {
3406
- return /* @__PURE__ */ jsxs19(Flex23, {
3137
+ return /* @__PURE__ */ jsxs18(Flex23, {
3407
3138
  align: "center",
3408
3139
  children: [
3409
- /* @__PURE__ */ jsx60(Flex23, {
3140
+ /* @__PURE__ */ jsx58(Flex23, {
3410
3141
  mr: "3",
3411
3142
  ml: "-7",
3412
- children: /* @__PURE__ */ jsx60(IconButton4, {
3143
+ children: /* @__PURE__ */ jsx58(IconButton4, {
3413
3144
  onClick: audioThreadContext.recorderProps.pause,
3414
3145
  color: "gray",
3415
3146
  radius: "full",
3416
3147
  size: "1",
3417
- children: /* @__PURE__ */ jsx60(PauseIcon, {})
3148
+ children: /* @__PURE__ */ jsx58(PauseIcon, {})
3418
3149
  })
3419
3150
  }),
3420
- /* @__PURE__ */ jsx60(IconButton4, {
3151
+ /* @__PURE__ */ jsx58(IconButton4, {
3421
3152
  onClick: audioThreadContext.recorderProps.stop,
3422
3153
  color: "gray",
3423
3154
  highContrast: true,
@@ -3426,13 +3157,13 @@ var ActionButton = function() {
3426
3157
  style: {
3427
3158
  border: "2px solid var(--gray-8)"
3428
3159
  },
3429
- children: /* @__PURE__ */ jsx60(ArrowUpIcon2, {})
3160
+ children: /* @__PURE__ */ jsx58(ArrowUpIcon2, {})
3430
3161
  })
3431
3162
  ]
3432
3163
  });
3433
3164
  }
3434
3165
  if (audioThreadContext.status === "recorderPaused") {
3435
- return /* @__PURE__ */ jsx60(IconButton4, {
3166
+ return /* @__PURE__ */ jsx58(IconButton4, {
3436
3167
  onClick: audioThreadContext.recorderProps.resume,
3437
3168
  color: "red",
3438
3169
  radius: "full",
@@ -3440,11 +3171,11 @@ var ActionButton = function() {
3440
3171
  style: {
3441
3172
  border: "2px solid var(--gray-8)"
3442
3173
  },
3443
- children: /* @__PURE__ */ jsx60(ResumeIcon, {})
3174
+ children: /* @__PURE__ */ jsx58(ResumeIcon, {})
3444
3175
  });
3445
3176
  }
3446
3177
  if (audioThreadContext.status === "idle") {
3447
- return /* @__PURE__ */ jsx60(IconButton4, {
3178
+ return /* @__PURE__ */ jsx58(IconButton4, {
3448
3179
  onClick: function() {
3449
3180
  return audioThreadContext.recorderProps.start();
3450
3181
  },
@@ -3457,7 +3188,7 @@ var ActionButton = function() {
3457
3188
  });
3458
3189
  }
3459
3190
  if (audioThreadContext.status === "playing") {
3460
- return /* @__PURE__ */ jsx60(IconButton4, {
3191
+ return /* @__PURE__ */ jsx58(IconButton4, {
3461
3192
  onClick: function() {
3462
3193
  return audioThreadContext.messageAudioProps.pause();
3463
3194
  },
@@ -3467,11 +3198,11 @@ var ActionButton = function() {
3467
3198
  style: {
3468
3199
  border: "2px solid var(--gray-8)"
3469
3200
  },
3470
- children: /* @__PURE__ */ jsx60(PauseIcon, {})
3201
+ children: /* @__PURE__ */ jsx58(PauseIcon, {})
3471
3202
  });
3472
3203
  }
3473
3204
  if (audioThreadContext.status === "playerPaused") {
3474
- return /* @__PURE__ */ jsx60(IconButton4, {
3205
+ return /* @__PURE__ */ jsx58(IconButton4, {
3475
3206
  onClick: function() {
3476
3207
  return audioThreadContext.messageAudioProps.play();
3477
3208
  },
@@ -3481,10 +3212,10 @@ var ActionButton = function() {
3481
3212
  style: {
3482
3213
  border: "2px solid var(--gray-8)"
3483
3214
  },
3484
- children: /* @__PURE__ */ jsx60(ResumeIcon, {})
3215
+ children: /* @__PURE__ */ jsx58(ResumeIcon, {})
3485
3216
  });
3486
3217
  }
3487
- return /* @__PURE__ */ jsx60(IconButton4, {
3218
+ return /* @__PURE__ */ jsx58(IconButton4, {
3488
3219
  size: "4",
3489
3220
  color: "red",
3490
3221
  radius: "full",
@@ -3495,35 +3226,35 @@ var ActionButton = function() {
3495
3226
  });
3496
3227
  };
3497
3228
  // src/components/threads/AudioThread/Form/index.tsx
3498
- import { jsx as jsx61, jsxs as jsxs20 } from "react/jsx-runtime";
3229
+ import { jsx as jsx59, jsxs as jsxs19 } from "react/jsx-runtime";
3499
3230
  var Form = function() {
3500
3231
  var audioThreadContext = useAudioThreadContext();
3501
- return /* @__PURE__ */ jsxs20(Flex24, {
3232
+ return /* @__PURE__ */ jsxs19(Flex24, {
3502
3233
  direction: "column",
3503
3234
  align: "center",
3504
3235
  children: [
3505
- /* @__PURE__ */ jsxs20(Flex24, {
3236
+ /* @__PURE__ */ jsxs19(Flex24, {
3506
3237
  pb: "3",
3507
3238
  align: "center",
3508
3239
  children: [
3509
- /* @__PURE__ */ jsx61(Flex24, {
3240
+ /* @__PURE__ */ jsx59(Flex24, {
3510
3241
  ml: "-5",
3511
3242
  mr: "2",
3512
3243
  align: "center",
3513
- children: /* @__PURE__ */ jsx61(SpeakerModerateIcon, {
3244
+ children: /* @__PURE__ */ jsx59(SpeakerModerateIcon, {
3514
3245
  style: {
3515
3246
  color: "var(--".concat(audioThreadContext.status === "recording" ? "mint" : "gray", "-12)")
3516
3247
  }
3517
3248
  })
3518
3249
  }),
3519
- /* @__PURE__ */ jsx61(Flex24, {
3250
+ /* @__PURE__ */ jsx59(Flex24, {
3520
3251
  px: "2",
3521
3252
  py: "1",
3522
3253
  style: {
3523
3254
  backgroundColor: "var(--".concat(audioThreadContext.status === "recording" ? "mint" : "gray", "-4)"),
3524
3255
  borderRadius: "var(--radius-6)"
3525
3256
  },
3526
- children: /* @__PURE__ */ jsx61(BarsVisualizer, {
3257
+ children: /* @__PURE__ */ jsx59(BarsVisualizer, {
3527
3258
  visualizationAnalyser: audioThreadContext.recorderProps.visualizationAnalyser,
3528
3259
  color: audioThreadContext.status === "recording" ? "mint" : "gray",
3529
3260
  height: "20px",
@@ -3532,17 +3263,17 @@ var Form = function() {
3532
3263
  })
3533
3264
  ]
3534
3265
  }),
3535
- /* @__PURE__ */ jsx61(ActionButton, {})
3266
+ /* @__PURE__ */ jsx59(ActionButton, {})
3536
3267
  ]
3537
3268
  });
3538
3269
  };
3539
3270
  // src/components/threads/AudioThread/index.tsx
3540
- import { jsx as jsx62, jsxs as jsxs21 } from "react/jsx-runtime";
3271
+ import { jsx as jsx60, jsxs as jsxs20 } from "react/jsx-runtime";
3541
3272
  var AudioThread = function(props) {
3542
- return /* @__PURE__ */ jsxs21(Root8, _object_spread_props(_object_spread({}, props), {
3273
+ return /* @__PURE__ */ jsxs20(Root8, _object_spread_props(_object_spread({}, props), {
3543
3274
  children: [
3544
- /* @__PURE__ */ jsx62(Visualization, {}),
3545
- /* @__PURE__ */ jsx62(Form, {})
3275
+ /* @__PURE__ */ jsx60(Visualization, {}),
3276
+ /* @__PURE__ */ jsx60(Form, {})
3546
3277
  ]
3547
3278
  }));
3548
3279
  };
@@ -3550,15 +3281,15 @@ AudioThread.Root = Root8;
3550
3281
  AudioThread.Visualization = Visualization;
3551
3282
  AudioThread.Form = Form;
3552
3283
  // src/components/threads/AudioThreadDialog/index.tsx
3553
- import { jsx as jsx63, jsxs as jsxs22 } from "react/jsx-runtime";
3284
+ import { jsx as jsx61, jsxs as jsxs21 } from "react/jsx-runtime";
3554
3285
  var AudioThreadDialog = function() {
3555
- return /* @__PURE__ */ jsxs22(Root6, {
3286
+ return /* @__PURE__ */ jsxs21(Root6, {
3556
3287
  children: [
3557
- /* @__PURE__ */ jsx63(Content4.Root, {
3558
- children: /* @__PURE__ */ jsx63(AudioThread, {})
3288
+ /* @__PURE__ */ jsx61(Content4.Root, {
3289
+ children: /* @__PURE__ */ jsx61(AudioThread, {})
3559
3290
  }),
3560
- /* @__PURE__ */ jsx63(Trigger, {
3561
- children: /* @__PURE__ */ jsx63(Button2, {})
3291
+ /* @__PURE__ */ jsx61(Trigger, {
3292
+ children: /* @__PURE__ */ jsx61(Button2, {})
3562
3293
  })
3563
3294
  ]
3564
3295
  });
@@ -3568,20 +3299,20 @@ AudioThreadDialog.Trigger = Trigger;
3568
3299
  AudioThreadDialog.Button = Button2;
3569
3300
  AudioThreadDialog.Content = Content4;
3570
3301
  // src/components/suggestions/Suggestions/index.tsx
3571
- import { useMemo as useMemo16 } from "react";
3572
- // src/components/suggestions/Suggestions/Content.tsx
3573
3302
  import { useMemo as useMemo15 } from "react";
3303
+ // src/components/suggestions/Suggestions/Content.tsx
3304
+ import { useMemo as useMemo14 } from "react";
3574
3305
  import { isEmpty as isEmpty2 } from "radash";
3575
3306
  import { onlyText } from "react-children-utilities";
3576
3307
  import { Flex as Flex25 } from "@radix-ui/themes";
3577
3308
  // src/components/suggestions/Suggestions/Item.tsx
3578
3309
  import { ArrowUpIcon as ArrowUpIcon3 } from "@radix-ui/react-icons";
3579
3310
  import { Text as Text7, Button as Button3, Spinner as Spinner2 } from "@radix-ui/themes";
3580
- import { jsx as jsx64, jsxs as jsxs23 } from "react/jsx-runtime";
3311
+ import { jsx as jsx62, jsxs as jsxs22 } from "react/jsx-runtime";
3581
3312
  var Item = function(param) {
3582
3313
  var suggestion = param.suggestion, isDisabled = param.isDisabled;
3583
3314
  var _useCreateMessage = useCreateMessage(), createMessage = _useCreateMessage.createMessage, isPending = _useCreateMessage.isPending;
3584
- return /* @__PURE__ */ jsx64(Content5, {
3315
+ return /* @__PURE__ */ jsx62(Content5, {
3585
3316
  onClick: function() {
3586
3317
  createMessage({
3587
3318
  // @ts-ignore-next-line
@@ -3595,7 +3326,7 @@ var Item = function(param) {
3595
3326
  };
3596
3327
  var Content5 = function(param) {
3597
3328
  var onClick = param.onClick, isDisabled = param.isDisabled, isPending = param.isPending, children = param.children;
3598
- return /* @__PURE__ */ jsxs23(Button3, {
3329
+ return /* @__PURE__ */ jsxs22(Button3, {
3599
3330
  variant: "soft",
3600
3331
  onClick: onClick,
3601
3332
  disabled: isDisabled,
@@ -3605,14 +3336,14 @@ var Content5 = function(param) {
3605
3336
  flexShrink: 1
3606
3337
  },
3607
3338
  children: [
3608
- /* @__PURE__ */ jsx64(Text7, {
3339
+ /* @__PURE__ */ jsx62(Text7, {
3609
3340
  size: "1",
3610
3341
  weight: "regular",
3611
3342
  children: children
3612
3343
  }),
3613
- /* @__PURE__ */ jsx64(Spinner2, {
3344
+ /* @__PURE__ */ jsx62(Spinner2, {
3614
3345
  loading: isPending,
3615
- children: /* @__PURE__ */ jsx64(ArrowUpIcon3, {
3346
+ children: /* @__PURE__ */ jsx62(ArrowUpIcon3, {
3616
3347
  style: {
3617
3348
  flexShrink: 0
3618
3349
  }
@@ -3623,11 +3354,11 @@ var Content5 = function(param) {
3623
3354
  };
3624
3355
  Item.Content = Content5;
3625
3356
  // src/components/suggestions/Suggestions/Content.tsx
3626
- import { jsx as jsx65 } from "react/jsx-runtime";
3357
+ import { jsx as jsx63 } from "react/jsx-runtime";
3627
3358
  var Content6 = function(param) {
3628
3359
  var children = param.children;
3629
- var isRunActiveProps = useIsRunActive();
3630
- var suggestions = useMemo15(function() {
3360
+ var isMutatingMessage = useIsMutatingMessage();
3361
+ var suggestions = useMemo14(function() {
3631
3362
  return onlyText(children).split(/\r?\n/).filter(function(c) {
3632
3363
  return !isEmpty2(c);
3633
3364
  }).map(function(c) {
@@ -3636,30 +3367,25 @@ var Content6 = function(param) {
3636
3367
  }, [
3637
3368
  children
3638
3369
  ]);
3639
- var isDisabled = useMemo15(function() {
3640
- return isRunActiveProps.isRunActive;
3641
- }, [
3642
- isRunActiveProps
3643
- ]);
3644
3370
  if (isEmpty2(suggestions)) return null;
3645
- return /* @__PURE__ */ jsx65(Flex25, {
3371
+ return /* @__PURE__ */ jsx63(Flex25, {
3646
3372
  gap: "2",
3647
3373
  py: "2",
3648
3374
  wrap: "wrap",
3649
3375
  children: suggestions.map(function(suggestion) {
3650
- return /* @__PURE__ */ jsx65(Item, {
3376
+ return /* @__PURE__ */ jsx63(Item, {
3651
3377
  suggestion: suggestion,
3652
- isDisabled: isDisabled
3378
+ isDisabled: isMutatingMessage
3653
3379
  }, suggestion);
3654
3380
  })
3655
3381
  });
3656
3382
  };
3657
3383
  // src/components/suggestions/Suggestions/index.tsx
3658
- import { jsx as jsx66 } from "react/jsx-runtime";
3384
+ import { jsx as jsx64 } from "react/jsx-runtime";
3659
3385
  var Suggestions = function(param) {
3660
3386
  var children = param.children;
3661
3387
  var latestMessageProps = useLatestMessage();
3662
- var isDisabled = useMemo16(function() {
3388
+ var isDisabled = useMemo15(function() {
3663
3389
  var // @ts-ignore-next-line
3664
3390
  _latestMessageProps_latestMessage_metadata, _latestMessageProps_latestMessage;
3665
3391
  return (_latestMessageProps_latestMessage = latestMessageProps.latestMessage) === null || _latestMessageProps_latestMessage === void 0 ? void 0 : (_latestMessageProps_latestMessage_metadata = _latestMessageProps_latestMessage.metadata) === null || _latestMessageProps_latestMessage_metadata === void 0 ? void 0 : _latestMessageProps_latestMessage_metadata.isBlocking;
@@ -3668,29 +3394,29 @@ var Suggestions = function(param) {
3668
3394
  ]);
3669
3395
  if (latestMessageProps.isLoading) return null;
3670
3396
  if (isDisabled) return null;
3671
- return /* @__PURE__ */ jsx66(Content6, {
3397
+ return /* @__PURE__ */ jsx64(Content6, {
3672
3398
  children: children
3673
3399
  });
3674
3400
  };
3675
3401
  Suggestions.Item = Item;
3676
3402
  // src/components/markdown/MarkdownProvider/index.tsx
3677
- import { useMemo as useMemo17 } from "react";
3678
- import { jsx as jsx67 } from "react/jsx-runtime";
3403
+ import { useMemo as useMemo16 } from "react";
3404
+ import { jsx as jsx65 } from "react/jsx-runtime";
3679
3405
  var MarkdownProvider = function(_param) {
3680
3406
  var children = _param.children, rest = _object_without_properties(_param, [
3681
3407
  "children"
3682
3408
  ]);
3683
3409
  var prevMarkdownContext = useMarkdownContext();
3684
- var value = useMemo17(function() {
3410
+ var value = useMemo16(function() {
3685
3411
  return merge(prevMarkdownContext, rest);
3686
3412
  }, [
3687
3413
  rest,
3688
3414
  prevMarkdownContext
3689
3415
  ]);
3690
- return /* @__PURE__ */ jsx67(MarkdownContext.Provider, {
3416
+ return /* @__PURE__ */ jsx65(MarkdownContext.Provider, {
3691
3417
  value: value,
3692
3418
  children: children
3693
3419
  });
3694
3420
  };
3695
- export { AssistantAvatarContext, AssistantNameContext, AudioThread, AudioThreadDialog, FunctionBase, FunctionComponentsContext, MarkdownContext, MarkdownProvider, Suggestions, SuperinterfaceProvider, Thread, ThreadDialog, ThreadDialogContext, useCreateMessage, useCreateRun, useIsRunActive, useLatestMessage, useLatestRun, useLifecycle, useMarkdownContext, useMessageContext, useMessages, useRuns, useSuperinterfaceContext, useSuperinterfaceContext as useThreadContext };
3421
+ export { AssistantAvatarContext, AssistantNameContext, AudioThread, AudioThreadDialog, FunctionBase, FunctionComponentsContext, MarkdownContext, MarkdownProvider, Suggestions, SuperinterfaceProvider, Thread, ThreadDialog, ThreadDialogContext, useCreateMessage, useLatestMessage, useMarkdownContext, useMessageContext, useMessages, useSuperinterfaceContext, useSuperinterfaceContext as useThreadContext };
3696
3422
  //# sourceMappingURL=index.js.map