@superinterface/react 2.0.3 → 2.0.5

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.cjs CHANGED
@@ -347,8 +347,8 @@ __export(src_exports, {
347
347
  MarkdownContext: function() {
348
348
  return MarkdownContext;
349
349
  },
350
- Suggestion: function() {
351
- return Suggestion;
350
+ MarkdownProvider: function() {
351
+ return MarkdownProvider;
352
352
  },
353
353
  Suggestions: function() {
354
354
  return Suggestions;
@@ -386,6 +386,9 @@ __export(src_exports, {
386
386
  useMarkdownContext: function() {
387
387
  return useMarkdownContext;
388
388
  },
389
+ useMessageContext: function() {
390
+ return useMessageContext;
391
+ },
389
392
  useMessages: function() {
390
393
  return useMessages;
391
394
  },
@@ -400,6 +403,8 @@ __export(src_exports, {
400
403
  }
401
404
  });
402
405
  module.exports = __toCommonJS(src_exports);
406
+ // src/components/core/SuperinterfaceProvider/index.tsx
407
+ var import_sonner = require("sonner");
403
408
  // src/lib/misc/merge/index.ts
404
409
  var import_lodash2 = __toESM(require("lodash"), 1);
405
410
  // src/lib/misc/merge/customizer.ts
@@ -427,7 +432,8 @@ var SuperinterfaceContext = (0, import_react.createContext)({
427
432
  defaultOptions: {
428
433
  queries: {},
429
434
  mutations: {}
430
- }
435
+ },
436
+ isToasterRendered: false
431
437
  });
432
438
  // src/hooks/core/useSuperinterfaceContext/index.ts
433
439
  var import_react2 = require("react");
@@ -439,22 +445,38 @@ var import_jsx_runtime = require("react/jsx-runtime");
439
445
  var SuperinterfaceProvider = function(param) {
440
446
  var children = param.children, baseUrl = param.baseUrl, publicApiKey = param.publicApiKey, variables = param.variables, defaultOptions = param.defaultOptions;
441
447
  var superinterfaceContext = useSuperinterfaceContext();
442
- var value = merge(superinterfaceContext, _object_spread({}, baseUrl ? {
448
+ var value = merge(superinterfaceContext, _object_spread_props(_object_spread({}, baseUrl ? {
443
449
  baseUrl: baseUrl
444
450
  } : {}, publicApiKey ? {
445
451
  publicApiKey: publicApiKey
446
452
  } : {}, variables ? {
447
453
  variables: variables
448
- } : {}, defaultOptions ? {
454
+ } : {}, merge({
455
+ defaultOptions: {
456
+ mutations: {
457
+ onError: function(error) {
458
+ return import_sonner.toast.error(error.message);
459
+ }
460
+ }
461
+ }
462
+ }, defaultOptions !== null && defaultOptions !== void 0 ? defaultOptions : {
449
463
  defaultOptions: defaultOptions
450
- } : {}));
451
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SuperinterfaceContext.Provider, {
464
+ })), {
465
+ isToasterRendered: true
466
+ }));
467
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(SuperinterfaceContext.Provider, {
452
468
  value: value,
453
- children: children
469
+ children: [
470
+ children,
471
+ !superinterfaceContext.isToasterRendered && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_sonner.Toaster, {})
472
+ ]
454
473
  });
455
474
  };
456
475
  // src/components/threads/Thread/Messages/index.tsx
457
- var import_themes29 = require("@radix-ui/themes");
476
+ var import_themes30 = require("@radix-ui/themes");
477
+ // src/components/threads/Thread/Messages/Content/index.tsx
478
+ var import_react18 = require("react");
479
+ var import_sonner2 = require("sonner");
458
480
  // src/hooks/messages/useMessages/index.tsx
459
481
  var import_react3 = require("react");
460
482
  var import_react_query2 = require("@tanstack/react-query");
@@ -465,7 +487,7 @@ var queryOptions = function(param) {
465
487
  var queryKey = _to_consumable_array(queryKeyBase).concat([
466
488
  threadContext.variables
467
489
  ]);
468
- return (0, import_react_query.infiniteQueryOptions)(_object_spread(_object_spread_props(_object_spread({
490
+ return (0, import_react_query.infiniteQueryOptions)(_object_spread_props(_object_spread({
469
491
  // @ts-ignore-next-line
470
492
  queryFn: function() {
471
493
  var _ref = _async_to_generator(function(param) {
@@ -537,9 +559,22 @@ var queryOptions = function(param) {
537
559
  return lastPage.lastId;
538
560
  },
539
561
  limit: 10
540
- }, queryClient.getQueryDefaults(queryKey)), {
562
+ }, threadContext.defaultOptions.queries, queryClient.getQueryDefaults(queryKey)), {
541
563
  queryKey: queryKey
542
- }), threadContext.defaultOptions.queries));
564
+ }));
565
+ };
566
+ // src/lib/messages/messagesQueryOptions.ts
567
+ var messagesQueryOptions = function(param) {
568
+ var queryClient = param.queryClient, threadContext = param.threadContext, superinterfaceContext = param.superinterfaceContext;
569
+ return queryOptions({
570
+ queryKeyBase: [
571
+ "messages"
572
+ ],
573
+ path: "/messages",
574
+ queryClient: queryClient,
575
+ threadContext: threadContext,
576
+ superinterfaceContext: superinterfaceContext
577
+ });
543
578
  };
544
579
  // src/hooks/messages/useMessages/index.tsx
545
580
  var messages = function(param) {
@@ -553,11 +588,7 @@ var useMessages = function() {
553
588
  var queryClient = (0, import_react_query2.useQueryClient)();
554
589
  var threadContext = useSuperinterfaceContext();
555
590
  var superinterfaceContext = useSuperinterfaceContext();
556
- var props = (0, import_react_query2.useInfiniteQuery)(queryOptions({
557
- queryKeyBase: [
558
- "messages"
559
- ],
560
- path: "/messages",
591
+ var props = (0, import_react_query2.useInfiniteQuery)(messagesQueryOptions({
561
592
  queryClient: queryClient,
562
593
  threadContext: threadContext,
563
594
  superinterfaceContext: superinterfaceContext
@@ -648,35 +679,18 @@ var useMessageGroups = function(param) {
648
679
  };
649
680
  // src/components/skeletons/MessagesSkeleton/index.tsx
650
681
  var import_react6 = require("react");
651
- var import_themes4 = require("@radix-ui/themes");
652
- // src/components/skeletons/Skeleton/index.tsx
653
- var import_themes = require("@radix-ui/themes");
654
- var import_jsx_runtime2 = require("react/jsx-runtime");
655
- var Skeleton = function(_param) {
656
- var height = _param.height, style = _param.style, rest = _object_without_properties(_param, [
657
- "height",
658
- "style"
659
- ]);
660
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_themes.Flex, _object_spread({
661
- height: "var(--space-".concat(height, ")"),
662
- style: _object_spread({
663
- animation: "pulse 2s cubic-bezier(.4,0,.6,1) infinite",
664
- borderRadius: "var(--radius-3)",
665
- backgroundColor: "var(--gray-5)"
666
- }, style)
667
- }, rest));
668
- };
682
+ var import_themes3 = require("@radix-ui/themes");
669
683
  // src/components/messageGroups/MessageGroupBase/index.tsx
670
684
  var import_react5 = require("react");
671
- var import_themes2 = require("@radix-ui/themes");
672
- var import_jsx_runtime3 = require("react/jsx-runtime");
685
+ var import_themes = require("@radix-ui/themes");
686
+ var import_jsx_runtime2 = require("react/jsx-runtime");
673
687
  var MessageGroupBase = (0, import_react5.forwardRef)(function MessageGroupBase2(param, ref) {
674
688
  var children = param.children;
675
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_themes2.Container, {
689
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_themes.Container, {
676
690
  ref: ref,
677
691
  size: "2",
678
692
  flexGrow: "0",
679
- children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_themes2.Flex, {
693
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_themes.Flex, {
680
694
  flexShrink: "0",
681
695
  gap: "3",
682
696
  children: children
@@ -684,14 +698,14 @@ var MessageGroupBase = (0, import_react5.forwardRef)(function MessageGroupBase2(
684
698
  });
685
699
  });
686
700
  // src/components/messageGroups/MessageGroupBase/Name.tsx
687
- var import_themes3 = require("@radix-ui/themes");
688
- var import_jsx_runtime4 = require("react/jsx-runtime");
701
+ var import_themes2 = require("@radix-ui/themes");
702
+ var import_jsx_runtime3 = require("react/jsx-runtime");
689
703
  var Name = function(param) {
690
704
  var children = param.children;
691
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_themes3.Flex, {
705
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_themes2.Flex, {
692
706
  align: "center",
693
707
  height: "var(--space-5)",
694
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_themes3.Text, {
708
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_themes2.Text, {
695
709
  size: "2",
696
710
  weight: "bold",
697
711
  children: children
@@ -699,44 +713,44 @@ var Name = function(param) {
699
713
  });
700
714
  };
701
715
  // src/components/skeletons/MessagesSkeleton/index.tsx
702
- var import_jsx_runtime5 = require("react/jsx-runtime");
716
+ var import_jsx_runtime4 = require("react/jsx-runtime");
703
717
  var MessagesSkeleton = (0, import_react6.forwardRef)(function MessagesSkeleton2(_props, ref) {
704
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(MessageGroupBase, {
718
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(MessageGroupBase, {
705
719
  ref: ref,
706
720
  children: [
707
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_themes4.Avatar, {
708
- fallback: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_themes4.Flex, {}),
709
- size: "1",
710
- style: {
711
- animation: "pulse 2s cubic-bezier(.4,0,.6,1) infinite"
712
- }
721
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_themes3.Skeleton, {
722
+ loading: true,
723
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_themes3.Avatar, {
724
+ fallback: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_themes3.Flex, {}),
725
+ size: "1"
726
+ })
713
727
  }),
714
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_themes4.Box, {
728
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_themes3.Box, {
715
729
  pb: "3",
716
730
  children: [
717
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Name, {
718
- children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Skeleton, {
719
- height: "1",
731
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Name, {
732
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_themes3.Skeleton, {
733
+ loading: true,
720
734
  style: {
721
735
  width: "128px"
722
736
  }
723
737
  })
724
738
  }),
725
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Skeleton, {
726
- height: "2",
739
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_themes3.Skeleton, {
740
+ loading: true,
727
741
  style: {
728
742
  width: "256px"
729
743
  }
730
744
  }),
731
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Skeleton, {
732
- height: "2",
745
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_themes3.Skeleton, {
746
+ loading: true,
733
747
  style: {
734
748
  width: "256px",
735
749
  marginTop: "var(--space-2)"
736
750
  }
737
751
  }),
738
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Skeleton, {
739
- height: "2",
752
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_themes3.Skeleton, {
753
+ loading: true,
740
754
  style: {
741
755
  width: "256px",
742
756
  marginTop: "var(--space-2)"
@@ -748,26 +762,26 @@ var MessagesSkeleton = (0, import_react6.forwardRef)(function MessagesSkeleton2(
748
762
  });
749
763
  });
750
764
  // src/components/threads/Thread/Messages/Content/MessageGroup/index.tsx
751
- var import_react16 = require("react");
752
- var import_themes24 = require("@radix-ui/themes");
765
+ var import_react17 = require("react");
766
+ var import_themes25 = require("@radix-ui/themes");
753
767
  var import_react_icons4 = require("@radix-ui/react-icons");
754
768
  // src/components/messageGroups/MessageGroupBase/AssistantAvatar.tsx
755
769
  var import_react8 = require("react");
756
- var import_themes6 = require("@radix-ui/themes");
770
+ var import_themes5 = require("@radix-ui/themes");
757
771
  // src/contexts/assistants/AssistantAvatarContext/index.tsx
758
772
  var import_react7 = require("react");
759
- var import_themes5 = require("@radix-ui/themes");
773
+ var import_themes4 = require("@radix-ui/themes");
760
774
  var import_react_icons = require("@radix-ui/react-icons");
761
- var import_jsx_runtime6 = require("react/jsx-runtime");
762
- var AssistantAvatarContext = (0, import_react7.createContext)(/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_themes5.Avatar, {
763
- fallback: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_icons.LightningBoltIcon, {}),
775
+ var import_jsx_runtime5 = require("react/jsx-runtime");
776
+ var AssistantAvatarContext = (0, import_react7.createContext)(/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_themes4.Avatar, {
777
+ fallback: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_icons.LightningBoltIcon, {}),
764
778
  size: "1"
765
779
  }));
766
780
  // src/components/messageGroups/MessageGroupBase/AssistantAvatar.tsx
767
- var import_jsx_runtime7 = require("react/jsx-runtime");
781
+ var import_jsx_runtime6 = require("react/jsx-runtime");
768
782
  var AssistantAvatar = function() {
769
783
  var AssistantAvatarContextValue = (0, import_react8.useContext)(AssistantAvatarContext);
770
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_themes6.Flex, {
784
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_themes5.Flex, {
771
785
  flexShrink: "0",
772
786
  height: "24px",
773
787
  width: "24px",
@@ -782,33 +796,33 @@ var AssistantAvatar = function() {
782
796
  var import_react9 = require("react");
783
797
  var AssistantNameContext = (0, import_react9.createContext)("Assistant");
784
798
  // src/components/threads/Thread/Messages/Content/MessageGroup/Content/index.tsx
785
- var import_themes23 = require("@radix-ui/themes");
799
+ var import_themes24 = require("@radix-ui/themes");
786
800
  // src/components/threads/Thread/Message/index.tsx
787
- var import_react15 = require("react");
788
- var import_themes22 = require("@radix-ui/themes");
801
+ var import_react16 = require("react");
802
+ var import_themes23 = require("@radix-ui/themes");
789
803
  // src/components/runSteps/RunSteps/index.tsx
790
- var import_themes15 = require("@radix-ui/themes");
791
- // src/components/runSteps/RunStep/ToolCalls/index.tsx
792
804
  var import_themes14 = require("@radix-ui/themes");
805
+ // src/components/runSteps/RunStep/ToolCalls/index.tsx
806
+ var import_themes13 = require("@radix-ui/themes");
793
807
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/index.tsx
794
- var import_themes12 = require("@radix-ui/themes");
808
+ var import_themes11 = require("@radix-ui/themes");
795
809
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/index.tsx
796
810
  var import_react12 = require("react");
797
811
  // src/contexts/functions/FunctionComponentsContext/index.tsx
798
812
  var import_react10 = require("react");
799
813
  var FunctionComponentsContext = (0, import_react10.createContext)({});
800
814
  // src/components/functions/FunctionBase/index.tsx
801
- var import_themes10 = require("@radix-ui/themes");
815
+ var import_themes9 = require("@radix-ui/themes");
802
816
  // src/components/toolCalls/ToolCallBase/index.tsx
803
- var import_themes7 = require("@radix-ui/themes");
804
- var import_jsx_runtime8 = require("react/jsx-runtime");
817
+ var import_themes6 = require("@radix-ui/themes");
818
+ var import_jsx_runtime7 = require("react/jsx-runtime");
805
819
  var ToolCallBase = function(param) {
806
820
  var children = param.children;
807
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_themes7.Flex, {
821
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_themes6.Flex, {
808
822
  py: "1",
809
823
  ml: "-2",
810
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_themes7.PopoverTrigger, {
811
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_themes7.Button, {
824
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_themes6.PopoverTrigger, {
825
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_themes6.Button, {
812
826
  size: "1",
813
827
  color: "gold",
814
828
  variant: "outline",
@@ -821,32 +835,32 @@ var ToolCallBase = function(param) {
821
835
  });
822
836
  };
823
837
  // src/components/toolCalls/ToolCallBase/ToolCallTitle.tsx
824
- var import_themes8 = require("@radix-ui/themes");
825
- var import_jsx_runtime9 = require("react/jsx-runtime");
838
+ var import_themes7 = require("@radix-ui/themes");
839
+ var import_jsx_runtime8 = require("react/jsx-runtime");
826
840
  var ToolCallTitle = function(param) {
827
841
  var children = param.children;
828
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_themes8.Text, {
842
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_themes7.Text, {
829
843
  weight: "regular",
830
844
  children: children
831
845
  });
832
846
  };
833
847
  // src/components/functions/FunctionBase/Icon.tsx
834
848
  var import_react_icons2 = require("@radix-ui/react-icons");
835
- var import_jsx_runtime10 = require("react/jsx-runtime");
849
+ var import_jsx_runtime9 = require("react/jsx-runtime");
836
850
  var Icon = function(param) {
837
851
  var runStep = param.runStep;
838
852
  if (runStep.completed_at) {
839
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_icons2.CheckCircledIcon, {});
853
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_icons2.CheckCircledIcon, {});
840
854
  } else if (runStep.cancelled_at || runStep.failed_at || runStep.status === "expired") {
841
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_icons2.CircleBackslashIcon, {});
855
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_icons2.CircleBackslashIcon, {});
842
856
  } else {
843
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_icons2.CircleIcon, {});
857
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_icons2.CircleIcon, {});
844
858
  }
845
859
  };
846
860
  // src/components/functions/FunctionBase/Content.tsx
847
861
  var import_react11 = require("react");
848
- var import_themes9 = require("@radix-ui/themes");
849
- var import_jsx_runtime11 = require("react/jsx-runtime");
862
+ var import_themes8 = require("@radix-ui/themes");
863
+ var import_jsx_runtime10 = require("react/jsx-runtime");
850
864
  var Content = function(param) {
851
865
  var fn = param.fn;
852
866
  var args = (0, import_react11.useMemo)(function() {
@@ -877,7 +891,7 @@ var Content = function(param) {
877
891
  if (!args) {
878
892
  return null;
879
893
  }
880
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_themes9.Code, {
894
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_themes8.Code, {
881
895
  variant: "ghost",
882
896
  color: "gold",
883
897
  style: {
@@ -885,36 +899,36 @@ var Content = function(param) {
885
899
  wordBreak: "break-word"
886
900
  },
887
901
  children: [
888
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_themes9.Box, {
902
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_themes8.Box, {
889
903
  children: args && JSON.stringify(args, null, 2)
890
904
  }),
891
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_themes9.Box, {
905
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_themes8.Box, {
892
906
  children: output && JSON.stringify(output, null, 2)
893
907
  })
894
908
  ]
895
909
  });
896
910
  };
897
911
  // src/components/functions/FunctionBase/index.tsx
898
- var import_jsx_runtime12 = require("react/jsx-runtime");
912
+ var import_jsx_runtime11 = require("react/jsx-runtime");
899
913
  var FunctionBase = function(param) {
900
914
  var fn = param.fn, runStep = param.runStep, title2 = param.title;
901
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_themes10.PopoverRoot, {
915
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_themes9.PopoverRoot, {
902
916
  children: [
903
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(ToolCallBase, {
917
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(ToolCallBase, {
904
918
  children: [
905
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Icon, {
919
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Icon, {
906
920
  runStep: runStep
907
921
  }),
908
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ToolCallTitle, {
922
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(ToolCallTitle, {
909
923
  children: title2
910
924
  })
911
925
  ]
912
926
  }),
913
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_themes10.PopoverContent, {
927
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_themes9.PopoverContent, {
914
928
  style: {
915
929
  maxHeight: "500px"
916
930
  },
917
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Content, {
931
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Content, {
918
932
  fn: fn
919
933
  })
920
934
  })
@@ -933,10 +947,10 @@ var title = function(param) {
933
947
  }
934
948
  };
935
949
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/DefaultFunction/index.tsx
936
- var import_jsx_runtime13 = require("react/jsx-runtime");
950
+ var import_jsx_runtime12 = require("react/jsx-runtime");
937
951
  var DefaultFunction = function(param) {
938
952
  var fn = param.fn, runStep = param.runStep;
939
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(FunctionBase, {
953
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(FunctionBase, {
940
954
  fn: fn,
941
955
  runStep: runStep,
942
956
  title: title({
@@ -946,66 +960,66 @@ var DefaultFunction = function(param) {
946
960
  });
947
961
  };
948
962
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/index.tsx
949
- var import_jsx_runtime14 = // @ts-ignore-next-line
963
+ var import_jsx_runtime13 = // @ts-ignore-next-line
950
964
  require("react/jsx-runtime");
951
965
  var Fn = function(param) {
952
966
  var fn = param.fn, runStep = param.runStep;
953
967
  var functionComponentsContext = (0, import_react12.useContext)(FunctionComponentsContext);
954
968
  var Component = functionComponentsContext[fn.name] || DefaultFunction;
955
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Component, {
969
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Component, {
956
970
  fn: fn,
957
971
  runStep: runStep
958
972
  });
959
973
  };
960
974
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/CodeInterpreter/index.tsx
961
- var import_themes11 = require("@radix-ui/themes");
962
- var import_jsx_runtime15 = require("react/jsx-runtime");
975
+ var import_themes10 = require("@radix-ui/themes");
976
+ var import_jsx_runtime14 = require("react/jsx-runtime");
963
977
  var CodeInterpreter = function(param) {
964
978
  var codeInterpreter = param.codeInterpreter;
965
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_themes11.Flex, {
979
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_themes10.Flex, {
966
980
  children: codeInterpreter.input
967
981
  });
968
982
  };
969
983
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/index.tsx
970
- var import_jsx_runtime16 = require("react/jsx-runtime");
984
+ var import_jsx_runtime15 = require("react/jsx-runtime");
971
985
  var ToolCall = function(param) {
972
986
  var toolCall = param.toolCall, runStep = param.runStep;
973
987
  if (toolCall.type === "function") {
974
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Fn, {
988
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Fn, {
975
989
  fn: toolCall.function,
976
990
  runStep: runStep
977
991
  });
978
992
  }
979
993
  if (toolCall.type === "code_interpreter") {
980
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(CodeInterpreter, {
994
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CodeInterpreter, {
981
995
  codeInterpreter: toolCall.code_interpreter,
982
996
  runStep: runStep
983
997
  });
984
998
  }
985
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_themes12.Flex, {
999
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_themes11.Flex, {
986
1000
  children: toolCall.type
987
1001
  });
988
1002
  };
989
1003
  // src/components/runSteps/RunStep/ToolCalls/Starting/index.tsx
990
- var import_themes13 = require("@radix-ui/themes");
1004
+ var import_themes12 = require("@radix-ui/themes");
991
1005
  var import_react_icons3 = require("@radix-ui/react-icons");
992
- var import_jsx_runtime17 = require("react/jsx-runtime");
1006
+ var import_jsx_runtime16 = require("react/jsx-runtime");
993
1007
  var Starting = function() {
994
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_themes13.PopoverRoot, {
1008
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_themes12.PopoverRoot, {
995
1009
  children: [
996
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(ToolCallBase, {
1010
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(ToolCallBase, {
997
1011
  children: [
998
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_icons3.CircleIcon, {}),
999
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ToolCallTitle, {
1012
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react_icons3.CircleIcon, {}),
1013
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ToolCallTitle, {
1000
1014
  children: "Starting actions"
1001
1015
  })
1002
1016
  ]
1003
1017
  }),
1004
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_themes13.PopoverContent, {
1018
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_themes12.PopoverContent, {
1005
1019
  style: {
1006
1020
  maxHeight: "500px"
1007
1021
  },
1008
- children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_themes13.Text, {
1022
+ children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_themes12.Text, {
1009
1023
  children: "Getting ready to connect to domain API"
1010
1024
  })
1011
1025
  })
@@ -1013,15 +1027,15 @@ var Starting = function() {
1013
1027
  });
1014
1028
  };
1015
1029
  // src/components/runSteps/RunStep/ToolCalls/index.tsx
1016
- var import_jsx_runtime18 = require("react/jsx-runtime");
1030
+ var import_jsx_runtime17 = require("react/jsx-runtime");
1017
1031
  var ToolCalls = function(param) {
1018
1032
  var stepDetails = param.stepDetails, runStep = param.runStep;
1019
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_themes14.Flex, {
1033
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_themes13.Flex, {
1020
1034
  direction: "column",
1021
1035
  children: [
1022
- !stepDetails.tool_calls.length && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Starting, {}),
1036
+ !stepDetails.tool_calls.length && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Starting, {}),
1023
1037
  stepDetails.tool_calls.map(function(toolCall) {
1024
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ToolCall, {
1038
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ToolCall, {
1025
1039
  toolCall: toolCall,
1026
1040
  runStep: runStep
1027
1041
  }, toolCall.id);
@@ -1030,11 +1044,11 @@ var ToolCalls = function(param) {
1030
1044
  });
1031
1045
  };
1032
1046
  // src/components/runSteps/RunStep/index.tsx
1033
- var import_jsx_runtime19 = require("react/jsx-runtime");
1047
+ var import_jsx_runtime18 = require("react/jsx-runtime");
1034
1048
  var RunStep = function(param) {
1035
1049
  var runStep = param.runStep;
1036
1050
  if (runStep.step_details.type === "tool_calls") {
1037
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ToolCalls, {
1051
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ToolCalls, {
1038
1052
  stepDetails: runStep.step_details,
1039
1053
  runStep: runStep
1040
1054
  });
@@ -1042,31 +1056,39 @@ var RunStep = function(param) {
1042
1056
  return null;
1043
1057
  };
1044
1058
  // src/components/runSteps/RunSteps/index.tsx
1045
- var import_jsx_runtime20 = require("react/jsx-runtime");
1059
+ var import_jsx_runtime19 = require("react/jsx-runtime");
1046
1060
  var RunSteps = function(param) {
1047
1061
  var runSteps = param.runSteps;
1048
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_themes15.Flex, {
1062
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_themes14.Flex, {
1049
1063
  direction: "column-reverse",
1050
1064
  children: runSteps.map(function(runStep) {
1051
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(RunStep, {
1065
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(RunStep, {
1052
1066
  runStep: runStep
1053
1067
  }, runStep.id);
1054
1068
  })
1055
1069
  });
1056
1070
  };
1057
- // src/components/threads/Thread/Message/TextContent/index.tsx
1058
- var import_react14 = require("react");
1071
+ // src/contexts/messages/MessageContext/index.ts
1072
+ var import_react13 = require("react");
1073
+ var MessageContext = (0, import_react13.createContext)({
1074
+ message: null
1075
+ });
1076
+ // src/components/threads/Thread/Message/Provider.tsx
1077
+ var Provider = MessageContext.Provider;
1078
+ // src/components/threads/Thread/Message/TextContent.tsx
1059
1079
  var import_react_remark = require("react-remark");
1080
+ // src/hooks/markdown/useMarkdownContext/index.ts
1081
+ var import_react15 = require("react");
1060
1082
  // src/contexts/markdown/MarkdownContext/index.ts
1061
- var import_react13 = require("react");
1083
+ var import_react14 = require("react");
1062
1084
  // src/contexts/markdown/MarkdownContext/lib/components/Paragraph.tsx
1063
- var import_themes16 = require("@radix-ui/themes");
1064
- var import_jsx_runtime21 = require("react/jsx-runtime");
1085
+ var import_themes15 = require("@radix-ui/themes");
1086
+ var import_jsx_runtime20 = require("react/jsx-runtime");
1065
1087
  var Paragraph = function(param) {
1066
1088
  var children = param.children;
1067
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_themes16.Box, {
1089
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_themes15.Box, {
1068
1090
  pb: "3",
1069
- children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_themes16.Text, {
1091
+ children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_themes15.Text, {
1070
1092
  size: "3",
1071
1093
  style: {
1072
1094
  whiteSpace: "pre-line",
@@ -1077,24 +1099,24 @@ var Paragraph = function(param) {
1077
1099
  });
1078
1100
  };
1079
1101
  // src/contexts/markdown/MarkdownContext/lib/components/Link.tsx
1080
- var import_themes17 = require("@radix-ui/themes");
1081
- var import_jsx_runtime22 = require("react/jsx-runtime");
1102
+ var import_themes16 = require("@radix-ui/themes");
1103
+ var import_jsx_runtime21 = require("react/jsx-runtime");
1082
1104
  var Link = function(param) {
1083
1105
  var children = param.children, href = param.href;
1084
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_themes17.Link, {
1106
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_themes16.Link, {
1085
1107
  href: href,
1086
1108
  children: children
1087
1109
  });
1088
1110
  };
1089
1111
  // src/contexts/markdown/MarkdownContext/lib/components/UnorderedList.tsx
1090
- var import_themes18 = require("@radix-ui/themes");
1091
- var import_jsx_runtime23 = require("react/jsx-runtime");
1112
+ var import_themes17 = require("@radix-ui/themes");
1113
+ var import_jsx_runtime22 = require("react/jsx-runtime");
1092
1114
  var UnorderedList = function(param) {
1093
1115
  var children = param.children;
1094
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_themes18.Box, {
1116
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_themes17.Box, {
1095
1117
  pb: "3",
1096
1118
  asChild: true,
1097
- children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("ul", {
1119
+ children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("ul", {
1098
1120
  style: {
1099
1121
  listStylePosition: "inside"
1100
1122
  },
@@ -1103,14 +1125,14 @@ var UnorderedList = function(param) {
1103
1125
  });
1104
1126
  };
1105
1127
  // src/contexts/markdown/MarkdownContext/lib/components/OrderedList.tsx
1106
- var import_themes19 = require("@radix-ui/themes");
1107
- var import_jsx_runtime24 = require("react/jsx-runtime");
1128
+ var import_themes18 = require("@radix-ui/themes");
1129
+ var import_jsx_runtime23 = require("react/jsx-runtime");
1108
1130
  var OrderedList = function(param) {
1109
1131
  var children = param.children;
1110
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_themes19.Box, {
1132
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_themes18.Box, {
1111
1133
  pb: "3",
1112
1134
  asChild: true,
1113
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("ol", {
1135
+ children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("ol", {
1114
1136
  style: {
1115
1137
  listStylePosition: "inside"
1116
1138
  },
@@ -1119,23 +1141,45 @@ var OrderedList = function(param) {
1119
1141
  });
1120
1142
  };
1121
1143
  // src/contexts/markdown/MarkdownContext/lib/components/ListItem.tsx
1122
- var import_themes20 = require("@radix-ui/themes");
1123
- var import_jsx_runtime25 = require("react/jsx-runtime");
1144
+ var import_themes19 = require("@radix-ui/themes");
1145
+ var import_jsx_runtime24 = require("react/jsx-runtime");
1124
1146
  var ListItem = function(param) {
1125
1147
  var children = param.children;
1126
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_themes20.Box, {
1148
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_themes19.Box, {
1127
1149
  pb: "1",
1128
- children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("li", {
1150
+ children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("li", {
1129
1151
  children: children
1130
1152
  })
1131
1153
  });
1132
1154
  };
1133
1155
  // src/contexts/markdown/MarkdownContext/lib/components/Strong.tsx
1156
+ var import_themes20 = require("@radix-ui/themes");
1157
+ var import_jsx_runtime25 = require("react/jsx-runtime");
1158
+ var Strong = function(param) {
1159
+ var children = param.children;
1160
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_themes20.Strong, {
1161
+ children: children
1162
+ });
1163
+ };
1164
+ // src/contexts/markdown/MarkdownContext/lib/components/Pre.tsx
1134
1165
  var import_themes21 = require("@radix-ui/themes");
1135
1166
  var import_jsx_runtime26 = require("react/jsx-runtime");
1136
- var Strong = function(param) {
1167
+ var Pre = function(param) {
1137
1168
  var children = param.children;
1138
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_themes21.Strong, {
1169
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_themes21.Box, {
1170
+ style: {
1171
+ whiteSpace: "pre-wrap",
1172
+ wordBreak: "break-word"
1173
+ },
1174
+ children: children
1175
+ });
1176
+ };
1177
+ // src/contexts/markdown/MarkdownContext/lib/components/Code.tsx
1178
+ var import_themes22 = require("@radix-ui/themes");
1179
+ var import_jsx_runtime27 = require("react/jsx-runtime");
1180
+ var Code2 = function(param) {
1181
+ var children = param.children;
1182
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_themes22.Code, {
1139
1183
  children: children
1140
1184
  });
1141
1185
  };
@@ -1146,26 +1190,32 @@ var components = {
1146
1190
  strong: Strong,
1147
1191
  ul: UnorderedList,
1148
1192
  ol: OrderedList,
1149
- li: ListItem
1193
+ li: ListItem,
1194
+ pre: Pre,
1195
+ code: Code2
1150
1196
  };
1151
1197
  // src/contexts/markdown/MarkdownContext/index.ts
1152
- var MarkdownContext = (0, import_react13.createContext)({
1198
+ var MarkdownContext = (0, import_react14.createContext)({
1153
1199
  remarkPlugins: [],
1154
1200
  rehypeReactOptions: {
1155
1201
  components: components
1156
1202
  }
1157
1203
  });
1158
- // src/components/threads/Thread/Message/TextContent/index.tsx
1204
+ // src/hooks/markdown/useMarkdownContext/index.ts
1205
+ var useMarkdownContext = function() {
1206
+ return (0, import_react15.useContext)(MarkdownContext);
1207
+ };
1208
+ // src/components/threads/Thread/Message/TextContent.tsx
1159
1209
  var TextContent = function(param) {
1160
1210
  var content = param.content;
1161
- var markdownContext = (0, import_react14.useContext)(MarkdownContext);
1211
+ var markdownContext = useMarkdownContext();
1162
1212
  return (0, import_react_remark.useRemarkSync)(content.text.value, markdownContext);
1163
1213
  };
1164
1214
  // src/components/threads/Thread/Message/index.tsx
1165
- var import_jsx_runtime27 = require("react/jsx-runtime");
1215
+ var import_jsx_runtime28 = require("react/jsx-runtime");
1166
1216
  var Message = function(param) {
1167
1217
  var message = param.message;
1168
- var _ref = _sliced_to_array((0, import_react15.useMemo)(function() {
1218
+ var _ref = _sliced_to_array((0, import_react16.useMemo)(function() {
1169
1219
  if (!message.runSteps.length) return [
1170
1220
  [],
1171
1221
  []
@@ -1197,55 +1247,60 @@ var Message = function(param) {
1197
1247
  }, [
1198
1248
  message
1199
1249
  ]), 2), olderRunSteps = _ref[0], laterRunSteps = _ref[1];
1200
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_themes22.Box, {
1201
- children: [
1202
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(RunSteps, {
1203
- runSteps: olderRunSteps
1204
- }),
1205
- message.content.map(function(content, index) {
1206
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_themes22.Box, {
1207
- children: content.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(TextContent, {
1208
- content: content
1209
- })
1210
- }, index);
1211
- }),
1212
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(RunSteps, {
1213
- runSteps: laterRunSteps
1214
- })
1215
- ]
1250
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Provider, {
1251
+ value: {
1252
+ message: message
1253
+ },
1254
+ children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_themes23.Box, {
1255
+ children: [
1256
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(RunSteps, {
1257
+ runSteps: olderRunSteps
1258
+ }),
1259
+ message.content.map(function(content, index) {
1260
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_themes23.Box, {
1261
+ children: content.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(TextContent, {
1262
+ content: content
1263
+ })
1264
+ }, index);
1265
+ }),
1266
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(RunSteps, {
1267
+ runSteps: laterRunSteps
1268
+ })
1269
+ ]
1270
+ })
1216
1271
  });
1217
1272
  };
1218
1273
  // src/components/threads/Thread/Messages/Content/MessageGroup/Content/index.tsx
1219
- var import_jsx_runtime28 = require("react/jsx-runtime");
1274
+ var import_jsx_runtime29 = require("react/jsx-runtime");
1220
1275
  var Content2 = function(param) {
1221
1276
  var messageGroup = param.messageGroup;
1222
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_themes23.Flex, {
1277
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_themes24.Flex, {
1223
1278
  direction: "column-reverse",
1224
1279
  children: messageGroup.messages.map(function(message) {
1225
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Message, {
1280
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Message, {
1226
1281
  message: message
1227
1282
  }, message.id);
1228
1283
  })
1229
1284
  });
1230
1285
  };
1231
1286
  // src/components/threads/Thread/Messages/Content/MessageGroup/index.tsx
1232
- var import_jsx_runtime29 = require("react/jsx-runtime");
1287
+ var import_jsx_runtime30 = require("react/jsx-runtime");
1233
1288
  var MessageGroup = function(param) {
1234
1289
  var messageGroup = param.messageGroup;
1235
- var assistantNameContext = (0, import_react16.useContext)(AssistantNameContext);
1236
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(MessageGroupBase, {
1290
+ var assistantNameContext = (0, import_react17.useContext)(AssistantNameContext);
1291
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(MessageGroupBase, {
1237
1292
  children: [
1238
- messageGroup.role === "user" ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_themes24.Avatar, {
1239
- fallback: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_icons4.PersonIcon, {}),
1293
+ messageGroup.role === "user" ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_themes25.Avatar, {
1294
+ fallback: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_icons4.PersonIcon, {}),
1240
1295
  size: "1"
1241
- }) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(AssistantAvatar, {}),
1242
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_themes24.Box, {
1296
+ }) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(AssistantAvatar, {}),
1297
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_themes25.Box, {
1243
1298
  flexGrow: "1",
1244
1299
  children: [
1245
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Name, {
1300
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Name, {
1246
1301
  children: messageGroup.role === "user" ? "You" : assistantNameContext
1247
1302
  }),
1248
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Content2, {
1303
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Content2, {
1249
1304
  messageGroup: messageGroup
1250
1305
  })
1251
1306
  ]
@@ -1254,68 +1309,74 @@ var MessageGroup = function(param) {
1254
1309
  });
1255
1310
  };
1256
1311
  // src/components/threads/Thread/Messages/Content/index.tsx
1257
- var import_jsx_runtime30 = require("react/jsx-runtime");
1312
+ var import_jsx_runtime31 = require("react/jsx-runtime");
1258
1313
  var Content3 = function() {
1259
1314
  var _useMessages = useMessages(), messages2 = _useMessages.messages, isLoading = _useMessages.isLoading, isLoadingError = _useMessages.isLoadingError;
1260
1315
  var _useMessageGroups = useMessageGroups({
1261
1316
  messages: messages2
1262
1317
  }), messageGroups2 = _useMessageGroups.messageGroups;
1318
+ (0, import_react18.useEffect)(function() {
1319
+ if (isLoadingError) {
1320
+ import_sonner2.toast.error("Could not load messages. Please try again.");
1321
+ }
1322
+ }, [
1323
+ isLoadingError
1324
+ ]);
1263
1325
  if (isLoading || isLoadingError) {
1264
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(MessagesSkeleton, {});
1326
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(MessagesSkeleton, {});
1265
1327
  }
1266
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_jsx_runtime30.Fragment, {
1328
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_jsx_runtime31.Fragment, {
1267
1329
  children: messageGroups2.map(function(messageGroup) {
1268
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(MessageGroup, {
1330
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(MessageGroup, {
1269
1331
  messageGroup: messageGroup
1270
1332
  }, messageGroup.id);
1271
1333
  })
1272
1334
  });
1273
1335
  };
1274
1336
  // src/components/threads/Thread/Messages/Progress/index.tsx
1275
- var import_themes27 = require("@radix-ui/themes");
1337
+ var import_themes28 = require("@radix-ui/themes");
1276
1338
  // src/components/skeletons/StartingContentSkeleton/index.tsx
1277
- var import_themes25 = require("@radix-ui/themes");
1278
- var import_jsx_runtime31 = require("react/jsx-runtime");
1339
+ var import_themes26 = require("@radix-ui/themes");
1340
+ var import_jsx_runtime32 = require("react/jsx-runtime");
1279
1341
  var StartingContentSkeleton = function() {
1280
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_themes25.Box, {
1281
- flexShrink: "0",
1342
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_themes26.Skeleton, {
1343
+ loading: true,
1282
1344
  mt: "1",
1283
1345
  height: "var(--space-4)",
1284
1346
  width: "var(--space-4)",
1285
1347
  style: {
1286
- animation: "pulse 2s cubic-bezier(.4,0,.6,1) infinite",
1287
- borderRadius: "var(--radius-3)",
1288
- backgroundColor: "var(--gray-12)"
1348
+ borderRadius: "var(--radius-6)",
1349
+ flexShrink: 0
1289
1350
  }
1290
1351
  });
1291
1352
  };
1292
1353
  // src/components/skeletons/StartingSkeleton/index.tsx
1293
- var import_react17 = require("react");
1294
- var import_themes26 = require("@radix-ui/themes");
1295
- var import_jsx_runtime32 = require("react/jsx-runtime");
1354
+ var import_react19 = require("react");
1355
+ var import_themes27 = require("@radix-ui/themes");
1356
+ var import_jsx_runtime33 = require("react/jsx-runtime");
1296
1357
  var StartingSkeleton = function(param) {
1297
1358
  var children = param.children;
1298
- var assistantNameContext = (0, import_react17.useContext)(AssistantNameContext);
1299
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(MessageGroupBase, {
1359
+ var assistantNameContext = (0, import_react19.useContext)(AssistantNameContext);
1360
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(MessageGroupBase, {
1300
1361
  children: [
1301
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(AssistantAvatar, {}),
1302
- /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_themes26.Box, {
1362
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(AssistantAvatar, {}),
1363
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_themes27.Box, {
1303
1364
  children: [
1304
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Name, {
1365
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Name, {
1305
1366
  children: assistantNameContext
1306
1367
  }),
1307
1368
  children,
1308
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(StartingContentSkeleton, {})
1369
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(StartingContentSkeleton, {})
1309
1370
  ]
1310
1371
  })
1311
1372
  ]
1312
1373
  });
1313
1374
  };
1314
1375
  // src/hooks/messages/useLatestMessage/index.ts
1315
- var import_react18 = require("react");
1376
+ var import_react20 = require("react");
1316
1377
  var useLatestMessage = function() {
1317
1378
  var props = useMessages();
1318
- return (0, import_react18.useMemo)(function() {
1379
+ return (0, import_react20.useMemo)(function() {
1319
1380
  return _object_spread_props(_object_spread({}, props), {
1320
1381
  latestMessage: props.messages[0] || null
1321
1382
  });
@@ -1324,13 +1385,26 @@ var useLatestMessage = function() {
1324
1385
  ]);
1325
1386
  };
1326
1387
  // src/hooks/runs/useIsRunActive/index.tsx
1327
- var import_react21 = require("react");
1388
+ var import_react25 = require("react");
1328
1389
  var import_react_query4 = require("@tanstack/react-query");
1329
1390
  // src/hooks/runs/useLatestRun/index.ts
1330
- var import_react20 = require("react");
1391
+ var import_react22 = require("react");
1331
1392
  // src/hooks/runs/useRuns/index.tsx
1332
- var import_react19 = require("react");
1393
+ var import_react21 = require("react");
1333
1394
  var import_react_query3 = require("@tanstack/react-query");
1395
+ // src/lib/runs/runsQueryOptions.ts
1396
+ var runsQueryOptions = function(param) {
1397
+ var queryClient = param.queryClient, threadContext = param.threadContext, superinterfaceContext = param.superinterfaceContext;
1398
+ return queryOptions({
1399
+ queryKeyBase: [
1400
+ "runs"
1401
+ ],
1402
+ path: "/runs",
1403
+ queryClient: queryClient,
1404
+ threadContext: threadContext,
1405
+ superinterfaceContext: superinterfaceContext
1406
+ });
1407
+ };
1334
1408
  // src/hooks/runs/useRuns/lib/getRuns.ts
1335
1409
  var getRuns = function(param) {
1336
1410
  var data3 = param.data;
@@ -1344,16 +1418,12 @@ var useRuns = function() {
1344
1418
  var queryClient = (0, import_react_query3.useQueryClient)();
1345
1419
  var superinterfaceContext = useSuperinterfaceContext();
1346
1420
  var threadContext = useSuperinterfaceContext();
1347
- var props = (0, import_react_query3.useInfiniteQuery)(queryOptions({
1348
- queryKeyBase: [
1349
- "runs"
1350
- ],
1351
- path: "/runs",
1421
+ var props = (0, import_react_query3.useInfiniteQuery)(runsQueryOptions({
1352
1422
  queryClient: queryClient,
1353
1423
  threadContext: threadContext,
1354
1424
  superinterfaceContext: superinterfaceContext
1355
1425
  }));
1356
- return (0, import_react19.useMemo)(function() {
1426
+ return (0, import_react21.useMemo)(function() {
1357
1427
  return _object_spread_props(_object_spread({}, props), {
1358
1428
  // @ts-ignore-next-line
1359
1429
  runs: getRuns({
@@ -1367,7 +1437,7 @@ var useRuns = function() {
1367
1437
  // src/hooks/runs/useLatestRun/index.ts
1368
1438
  var useLatestRun = function() {
1369
1439
  var props = useRuns();
1370
- return (0, import_react20.useMemo)(function() {
1440
+ return (0, import_react22.useMemo)(function() {
1371
1441
  return _object_spread_props(_object_spread({}, props), {
1372
1442
  latestRun: props.runs[0]
1373
1443
  });
@@ -1388,6 +1458,18 @@ var isRunEditingMessage = function(param) {
1388
1458
  });
1389
1459
  return !hasContent;
1390
1460
  };
1461
+ // src/hooks/runs/usePollingContext/index.ts
1462
+ var import_react24 = require("react");
1463
+ // src/contexts/runs/PollingContext/index.tsx
1464
+ var import_react23 = require("react");
1465
+ var PollingContext = (0, import_react23.createContext)({
1466
+ isPollRefetching: false,
1467
+ setIsPollRefetching: function() {}
1468
+ });
1469
+ // src/hooks/runs/usePollingContext/index.ts
1470
+ var usePollingContext = function() {
1471
+ return (0, import_react24.useContext)(PollingContext);
1472
+ };
1391
1473
  // src/hooks/runs/useIsRunActive/index.tsx
1392
1474
  var progressStatuses = [
1393
1475
  "queued",
@@ -1401,8 +1483,9 @@ var stoppedStatuses = [
1401
1483
  "failed"
1402
1484
  ];
1403
1485
  var isRunActive = function(param) {
1404
- var latestRunProps = param.latestRunProps, latestMessageProps = param.latestMessageProps, isMutating = param.isMutating;
1486
+ var pollingContext = param.pollingContext, latestRunProps = param.latestRunProps, latestMessageProps = param.latestMessageProps, isMutating = param.isMutating;
1405
1487
  var _latestMessageProps_latestMessage_metadata, _latestMessageProps_latestMessage;
1488
+ if (pollingContext.isPollRefetching) return true;
1406
1489
  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;
1407
1490
  if (isMutating) return true;
1408
1491
  if (!latestRunProps.latestRun) return false;
@@ -1416,6 +1499,7 @@ var useIsRunActive = function() {
1416
1499
  var latestRunProps = useLatestRun();
1417
1500
  var latestMessageProps = useLatestMessage();
1418
1501
  var threadContext = useSuperinterfaceContext();
1502
+ var pollingContext = usePollingContext();
1419
1503
  var isMutatingCreateRun = (0, import_react_query4.useIsMutating)({
1420
1504
  mutationKey: [
1421
1505
  "createRun",
@@ -1434,9 +1518,10 @@ var useIsRunActive = function() {
1434
1518
  threadContext.variables
1435
1519
  ]
1436
1520
  });
1437
- return (0, import_react21.useMemo)(function() {
1521
+ return (0, import_react25.useMemo)(function() {
1438
1522
  return _object_spread_props(_object_spread({}, latestRunProps), {
1439
1523
  isRunActive: isRunActive({
1524
+ pollingContext: pollingContext,
1440
1525
  latestRunProps: latestRunProps,
1441
1526
  latestMessageProps: latestMessageProps,
1442
1527
  isMutating: isMutatingCreateRun > 0 || isMutatingCreateMessage > 0 || isMutatingCreateHandleAction > 0
@@ -1445,42 +1530,43 @@ var useIsRunActive = function() {
1445
1530
  }, [
1446
1531
  latestRunProps,
1447
1532
  latestMessageProps,
1533
+ pollingContext,
1448
1534
  isMutatingCreateRun,
1449
1535
  isMutatingCreateMessage,
1450
1536
  isMutatingCreateHandleAction
1451
1537
  ]);
1452
1538
  };
1453
1539
  // src/components/threads/Thread/Messages/Progress/index.tsx
1454
- var import_jsx_runtime33 = require("react/jsx-runtime");
1540
+ var import_jsx_runtime34 = require("react/jsx-runtime");
1455
1541
  var Progress = function() {
1456
1542
  var _useIsRunActive = useIsRunActive(), isRunActive2 = _useIsRunActive.isRunActive;
1457
1543
  var latestMessage = useLatestMessage().latestMessage;
1458
1544
  if (!latestMessage) return null;
1459
1545
  if (!isRunActive2) return null;
1460
1546
  if (latestMessage.role === "user") {
1461
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(StartingSkeleton, {});
1547
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(StartingSkeleton, {});
1462
1548
  }
1463
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(MessageGroupBase, {
1549
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(MessageGroupBase, {
1464
1550
  children: [
1465
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_themes27.Box, {
1551
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_themes28.Box, {
1466
1552
  pl: "5"
1467
1553
  }),
1468
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(StartingContentSkeleton, {})
1554
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(StartingContentSkeleton, {})
1469
1555
  ]
1470
1556
  });
1471
1557
  };
1472
1558
  // src/components/threads/Thread/Messages/Root/index.tsx
1473
- var import_themes28 = require("@radix-ui/themes");
1559
+ var import_themes29 = require("@radix-ui/themes");
1474
1560
  // src/hooks/misc/useInfiniteScroll/index.tsx
1475
- var import_react23 = require("react");
1561
+ var import_react27 = require("react");
1476
1562
  var import_react_intersection_observer = require("react-intersection-observer");
1477
1563
  // src/hooks/misc/useThrottledEffect/index.tsx
1478
1564
  var import_lodash5 = __toESM(require("lodash"), 1);
1479
- var import_react22 = require("react");
1565
+ var import_react26 = require("react");
1480
1566
  var useThrottledEffect = function(cb, delay, additionalDeps) {
1481
1567
  var _cbRef;
1482
- var cbRef = (0, import_react22.useRef)(cb);
1483
- var throttledCb = (0, import_react22.useCallback)(import_lodash5.default.throttle(function() {
1568
+ var cbRef = (0, import_react26.useRef)(cb);
1569
+ var throttledCb = (0, import_react26.useCallback)(import_lodash5.default.throttle(function() {
1484
1570
  for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1485
1571
  args[_key] = arguments[_key];
1486
1572
  }
@@ -1491,17 +1577,17 @@ var useThrottledEffect = function(cb, delay, additionalDeps) {
1491
1577
  }), [
1492
1578
  delay
1493
1579
  ]);
1494
- (0, import_react22.useEffect)(function() {
1580
+ (0, import_react26.useEffect)(function() {
1495
1581
  cbRef.current = cb;
1496
1582
  });
1497
- (0, import_react22.useEffect)(throttledCb, [
1583
+ (0, import_react26.useEffect)(throttledCb, [
1498
1584
  throttledCb
1499
1585
  ].concat(_to_consumable_array(additionalDeps)));
1500
1586
  };
1501
1587
  // src/hooks/misc/useInfiniteScroll/index.tsx
1502
1588
  var useInfiniteScroll = function(param) {
1503
1589
  var isFetchingNextPage = param.isFetchingNextPage, hasNextPage = param.hasNextPage, fetchNextPage = param.fetchNextPage;
1504
- var containerRef = (0, import_react23.useRef)(null);
1590
+ var containerRef = (0, import_react27.useRef)(null);
1505
1591
  var _ref = (0, import_react_intersection_observer.useInView)({
1506
1592
  root: containerRef.current,
1507
1593
  rootMargin: "0px",
@@ -1526,8 +1612,9 @@ var useInfiniteScroll = function(param) {
1526
1612
  };
1527
1613
  };
1528
1614
  // src/hooks/runs/useManageRuns/index.tsx
1615
+ var import_sonner3 = require("sonner");
1529
1616
  var import_react_query6 = require("@tanstack/react-query");
1530
- var import_react24 = require("react");
1617
+ var import_react28 = require("react");
1531
1618
  // src/hooks/runs/useCreateRun/index.ts
1532
1619
  var import_radash4 = require("radash");
1533
1620
  var import_react_query5 = require("@tanstack/react-query");
@@ -1537,7 +1624,7 @@ var mutationOptions = function(param) {
1537
1624
  var mutationKey = _to_consumable_array(mutationKeyBase).concat([
1538
1625
  threadContext.variables
1539
1626
  ]);
1540
- return _object_spread(_object_spread_props(_object_spread({
1627
+ return _object_spread_props(_object_spread({
1541
1628
  mutationFn: function(variables) {
1542
1629
  return fetch("".concat(superinterfaceContext.baseUrl).concat(path), _object_spread({
1543
1630
  method: "POST",
@@ -1555,7 +1642,7 @@ var mutationOptions = function(param) {
1555
1642
  case 0:
1556
1643
  if (!(response.status !== 200)) return [
1557
1644
  3,
1558
- 4
1645
+ 5
1559
1646
  ];
1560
1647
  _state.label = 1;
1561
1648
  case 1:
@@ -1565,17 +1652,23 @@ var mutationOptions = function(param) {
1565
1652
  ,
1566
1653
  4
1567
1654
  ]);
1655
+ console.log("response", response);
1568
1656
  return [
1569
1657
  4,
1570
1658
  response.json()
1571
1659
  ];
1572
1660
  case 2:
1573
1661
  errorResponse = _state.sent();
1574
- throw new Error(errorResponse.error);
1662
+ return [
1663
+ 3,
1664
+ 4
1665
+ ];
1575
1666
  case 3:
1576
1667
  error = _state.sent();
1577
1668
  throw new Error("Failed to fetch");
1578
1669
  case 4:
1670
+ throw new Error(errorResponse.error);
1671
+ case 5:
1579
1672
  return [
1580
1673
  2,
1581
1674
  response.json()
@@ -1588,9 +1681,9 @@ var mutationOptions = function(param) {
1588
1681
  };
1589
1682
  }());
1590
1683
  }
1591
- }, queryClient.getMutationDefaults(mutationKey)), {
1684
+ }, threadContext.defaultOptions.mutations, queryClient.getMutationDefaults(mutationKey)), {
1592
1685
  mutationKey: mutationKey
1593
- }), threadContext.defaultOptions.mutations);
1686
+ });
1594
1687
  };
1595
1688
  // src/hooks/runs/useCreateRun/lib/onSuccess.ts
1596
1689
  var onSuccess = function(param) {
@@ -1809,7 +1902,22 @@ var useManageRuns = function() {
1809
1902
  var latestMessageProps = useLatestMessage();
1810
1903
  var createRunProps = useCreateRun();
1811
1904
  var threadContext = useSuperinterfaceContext();
1812
- (0, import_react24.useEffect)(function() {
1905
+ var _ref = _sliced_to_array((0, import_react28.useState)([]), 2), toastedErrorRunIds = _ref[0], setToastedErrorRunIds = _ref[1];
1906
+ (0, import_react28.useEffect)(function() {
1907
+ var _latestRunProps_latestRun;
1908
+ if (((_latestRunProps_latestRun = latestRunProps.latestRun) === null || _latestRunProps_latestRun === void 0 ? void 0 : _latestRunProps_latestRun.status) !== "failed") return;
1909
+ if (toastedErrorRunIds.includes(latestRunProps.latestRun.id)) return;
1910
+ setToastedErrorRunIds(function(prev) {
1911
+ return _to_consumable_array(prev).concat([
1912
+ latestRunProps.latestRun.id
1913
+ ]);
1914
+ });
1915
+ import_sonner3.toast.error("AI run failed. Please try again.");
1916
+ }, [
1917
+ latestRunProps,
1918
+ toastedErrorRunIds
1919
+ ]);
1920
+ (0, import_react28.useEffect)(function() {
1813
1921
  if (createRunProps.isPending) return;
1814
1922
  if (latestRunProps.isFetching) return;
1815
1923
  if (latestMessageProps.isFetching) return;
@@ -1885,19 +1993,35 @@ var refetch = function() {
1885
1993
  var usePolling = function() {
1886
1994
  var threadContext = useSuperinterfaceContext();
1887
1995
  var queryClient = (0, import_react_query7.useQueryClient)();
1996
+ var setIsPollRefetching = usePollingContext().setIsPollRefetching;
1888
1997
  var isRunActiveProps = useIsRunActive();
1889
- (0, import_react_use.useInterval)(function() {
1890
- refetch({
1891
- queryClient: queryClient,
1892
- threadContext: threadContext
1998
+ (0, import_react_use.useInterval)(/*#__PURE__*/ _async_to_generator(function() {
1999
+ return _ts_generator(this, function(_state) {
2000
+ switch(_state.label){
2001
+ case 0:
2002
+ setIsPollRefetching(true);
2003
+ return [
2004
+ 4,
2005
+ refetch({
2006
+ queryClient: queryClient,
2007
+ threadContext: threadContext
2008
+ })
2009
+ ];
2010
+ case 1:
2011
+ _state.sent();
2012
+ setIsPollRefetching(false);
2013
+ console.log("Polling...");
2014
+ return [
2015
+ 2
2016
+ ];
2017
+ }
1893
2018
  });
1894
- console.log("poll refetched");
1895
- }, isRunActiveProps.isRunActive ? 3e3 : null);
2019
+ }), isRunActiveProps.isRunActive ? 3e3 : null);
1896
2020
  return null;
1897
2021
  };
1898
2022
  // src/hooks/actions/useManageActions/index.tsx
1899
2023
  var import_react_query9 = require("@tanstack/react-query");
1900
- var import_react25 = require("react");
2024
+ var import_react29 = require("react");
1901
2025
  // src/hooks/actions/useHandleAction/index.tsx
1902
2026
  var import_radash5 = require("radash");
1903
2027
  var import_react_query8 = require("@tanstack/react-query");
@@ -1970,7 +2094,7 @@ var useManageActions = function() {
1970
2094
  var threadContext = useSuperinterfaceContext();
1971
2095
  var latestRunProps = useLatestRun();
1972
2096
  var handleActionProps = useHandleAction();
1973
- (0, import_react25.useEffect)(function() {
2097
+ (0, import_react29.useEffect)(function() {
1974
2098
  if (handleActionProps.isPending) return;
1975
2099
  if (latestRunProps.isFetching) return;
1976
2100
  if (!latestRunProps.latestRun) return;
@@ -2002,7 +2126,7 @@ var useLifecycle = function() {
2002
2126
  return null;
2003
2127
  };
2004
2128
  // src/components/threads/Thread/Messages/Root/index.tsx
2005
- var import_jsx_runtime34 = require("react/jsx-runtime");
2129
+ var import_jsx_runtime35 = require("react/jsx-runtime");
2006
2130
  var Root = function(param) {
2007
2131
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2008
2132
  var _useMessages = useMessages(), isFetchingNextPage = _useMessages.isFetchingNextPage, hasNextPage = _useMessages.hasNextPage, fetchNextPage = _useMessages.fetchNextPage;
@@ -2012,7 +2136,7 @@ var Root = function(param) {
2012
2136
  hasNextPage: hasNextPage,
2013
2137
  fetchNextPage: fetchNextPage
2014
2138
  }), containerRef = _useInfiniteScroll.containerRef, loaderRef = _useInfiniteScroll.loaderRef;
2015
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_themes28.Flex, {
2139
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_themes29.Flex, {
2016
2140
  ref: containerRef,
2017
2141
  direction: "column-reverse",
2018
2142
  flexGrow: "1",
@@ -2021,10 +2145,10 @@ var Root = function(param) {
2021
2145
  }),
2022
2146
  children: [
2023
2147
  children,
2024
- hasNextPage && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_themes28.Flex, {
2148
+ hasNextPage && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_themes29.Flex, {
2025
2149
  ref: loaderRef
2026
2150
  }),
2027
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_themes28.Flex, {
2151
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_themes29.Flex, {
2028
2152
  flexShrink: "0",
2029
2153
  flexGrow: "1"
2030
2154
  })
@@ -2032,30 +2156,30 @@ var Root = function(param) {
2032
2156
  });
2033
2157
  };
2034
2158
  // src/components/threads/Thread/Messages/NextPageSkeleton.tsx
2035
- var import_jsx_runtime35 = require("react/jsx-runtime");
2159
+ var import_jsx_runtime36 = require("react/jsx-runtime");
2036
2160
  var NextPageSkeleton = function() {
2037
2161
  var hasNextPage = useMessages().hasNextPage;
2038
2162
  if (!hasNextPage) {
2039
2163
  return null;
2040
2164
  }
2041
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(MessagesSkeleton, {});
2165
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(MessagesSkeleton, {});
2042
2166
  };
2043
2167
  // src/components/threads/Thread/Messages/index.tsx
2044
- var import_jsx_runtime36 = require("react/jsx-runtime");
2168
+ var import_jsx_runtime37 = require("react/jsx-runtime");
2045
2169
  var Messages = function(param) {
2046
2170
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2047
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Root, {
2171
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Root, {
2048
2172
  style: style,
2049
2173
  children: [
2050
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_themes29.Flex, {
2174
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_themes30.Flex, {
2051
2175
  flexShrink: "0",
2052
2176
  height: "var(--space-3)"
2053
2177
  }),
2054
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Progress, {}),
2178
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Progress, {}),
2055
2179
  children,
2056
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Content3, {}),
2057
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(NextPageSkeleton, {}),
2058
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_themes29.Flex, {
2180
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Content3, {}),
2181
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(NextPageSkeleton, {}),
2182
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_themes30.Flex, {
2059
2183
  flexShrink: "0",
2060
2184
  flexGrow: "1"
2061
2185
  })
@@ -2066,59 +2190,38 @@ Messages.Root = Root;
2066
2190
  Messages.Message = Message;
2067
2191
  Messages.NextPageSkeleton = NextPageSkeleton;
2068
2192
  // src/components/threads/Thread/MessageForm/index.tsx
2069
- var import_themes32 = require("@radix-ui/themes");
2193
+ var import_themes33 = require("@radix-ui/themes");
2070
2194
  // src/components/threads/Thread/MessageForm/Submit/index.tsx
2071
2195
  var import_react_icons5 = require("@radix-ui/react-icons");
2072
- var import_themes30 = require("@radix-ui/themes");
2073
- // src/components/spinners/Spinner/index.tsx
2074
- var import_jsx_runtime37 = require("react/jsx-runtime");
2075
- var Spinner = function(props) {
2076
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("svg", _object_spread_props(_object_spread({
2077
- xmlns: "http://www.w3.org/2000/svg",
2078
- width: "24",
2079
- height: "24",
2080
- viewBox: "0 0 24 24",
2081
- fill: "none",
2082
- stroke: "currentColor",
2083
- strokeWidth: "2",
2084
- strokeLinecap: "round",
2085
- strokeLinejoin: "round",
2086
- style: {
2087
- height: "var(--space-4)",
2088
- width: "var(--space-4)",
2089
- animation: "spin 1s linear infinite"
2090
- }
2091
- }, props), {
2092
- children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", {
2093
- d: "M21 12a9 9 0 1 1-6.219-8.56"
2094
- })
2095
- }));
2096
- };
2196
+ var import_themes31 = require("@radix-ui/themes");
2097
2197
  // src/hooks/messages/useMessageFormContext/index.ts
2098
- var import_react27 = require("react");
2198
+ var import_react31 = require("react");
2099
2199
  // src/contexts/messages/MessageFormContext/index.ts
2100
- var import_react26 = require("react");
2101
- var MessageFormContext = (0, import_react26.createContext)({
2200
+ var import_react30 = require("react");
2201
+ var MessageFormContext = (0, import_react30.createContext)({
2102
2202
  isDisabled: false,
2103
2203
  isLoading: false
2104
2204
  });
2105
2205
  // src/hooks/messages/useMessageFormContext/index.ts
2106
2206
  var useMessageFormContext = function() {
2107
- return (0, import_react27.useContext)(MessageFormContext);
2207
+ return (0, import_react31.useContext)(MessageFormContext);
2108
2208
  };
2109
2209
  // src/components/threads/Thread/MessageForm/Submit/index.tsx
2110
2210
  var import_jsx_runtime38 = require("react/jsx-runtime");
2111
2211
  var Submit = function() {
2112
2212
  var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
2113
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_themes30.Button, {
2213
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_themes31.Button, {
2114
2214
  type: "submit",
2115
2215
  radius: "large",
2116
- disabled: isDisabled,
2117
- children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Spinner, {}) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_icons5.ArrowUpIcon, {})
2216
+ disabled: isDisabled || isLoading,
2217
+ children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_themes31.Spinner, {
2218
+ loading: isLoading,
2219
+ children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_icons5.ArrowUpIcon, {})
2220
+ })
2118
2221
  });
2119
2222
  };
2120
2223
  // src/components/threads/Thread/MessageForm/Root/index.tsx
2121
- var import_react28 = require("react");
2224
+ var import_react32 = require("react");
2122
2225
  var import_react_hook_form = require("react-hook-form");
2123
2226
  // src/hooks/messages/useCreateMessage/index.ts
2124
2227
  var import_radash8 = require("radash");
@@ -2305,7 +2408,7 @@ var Root2 = function(param) {
2305
2408
  var formProps = (0, import_react_hook_form.useForm)(formOptions);
2306
2409
  var handleSubmit = formProps.handleSubmit, isSubmitting = formProps.formState.isSubmitting, reset = formProps.reset;
2307
2410
  var _useIsRunActive = useIsRunActive(), isRunActive2 = _useIsRunActive.isRunActive;
2308
- var isLoading = (0, import_react28.useMemo)(function() {
2411
+ var isLoading = (0, import_react32.useMemo)(function() {
2309
2412
  return isRunActive2 || isSubmitting;
2310
2413
  }, [
2311
2414
  isRunActive2,
@@ -2337,7 +2440,7 @@ var Root2 = function(param) {
2337
2440
  };
2338
2441
  }();
2339
2442
  var latestMessage = useLatestMessage().latestMessage;
2340
- var isDisabled = (0, import_react28.useMemo)(function() {
2443
+ var isDisabled = (0, import_react32.useMemo)(function() {
2341
2444
  var // @ts-ignore-next-line
2342
2445
  _latestMessage_metadata;
2343
2446
  return latestMessage === null || latestMessage === void 0 ? void 0 : (_latestMessage_metadata = latestMessage.metadata) === null || _latestMessage_metadata === void 0 ? void 0 : _latestMessage_metadata.isBlocking;
@@ -2360,46 +2463,56 @@ var Root2 = function(param) {
2360
2463
  };
2361
2464
  // src/components/threads/Thread/MessageForm/Field/index.tsx
2362
2465
  var import_react_use2 = require("react-use");
2363
- var import_react30 = require("react");
2466
+ var import_react34 = require("react");
2364
2467
  // src/components/textareas/TextareaBase/index.tsx
2365
- var import_react29 = require("react");
2468
+ var import_react33 = require("react");
2366
2469
  var import_react_textarea_autosize = __toESM(require("react-textarea-autosize"), 1);
2367
2470
  var import_jsx_runtime40 = require("react/jsx-runtime");
2368
2471
  var UPSCALE_RATIO = 16 / 14;
2369
- var TextareaBase = (0, import_react29.forwardRef)(function TextareaBase2(props, ref) {
2370
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_react_textarea_autosize.default, _object_spread({
2371
- ref: ref,
2372
- className: "textarea-base",
2373
- style: {
2374
- resize: "none",
2375
- fontSize: "".concat(14 * UPSCALE_RATIO, "px"),
2376
- lineHeight: "".concat(24 * UPSCALE_RATIO, "px"),
2377
- transform: "scale(".concat(1 / UPSCALE_RATIO, ")"),
2378
- margin: "0 ".concat((-100 * UPSCALE_RATIO + 100) / 2, "%"),
2379
- width: "".concat(100 * UPSCALE_RATIO, "%"),
2380
- maxWidth: "".concat(100 * UPSCALE_RATIO, "%"),
2381
- flexGrow: 1,
2382
- display: "flex"
2383
- }
2384
- }, props));
2472
+ var TextareaBase = (0, import_react33.forwardRef)(function TextareaBase2(props, ref) {
2473
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_jsx_runtime40.Fragment, {
2474
+ children: [
2475
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("style", {
2476
+ children: ".superinterface-textarea { min-height: inherit; height: 30px; }"
2477
+ }),
2478
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_react_textarea_autosize.default, _object_spread({
2479
+ ref: ref,
2480
+ className: "superinterface-textarea",
2481
+ style: {
2482
+ border: 0,
2483
+ outline: 0,
2484
+ boxSizing: "border-box",
2485
+ resize: "none",
2486
+ fontSize: "".concat(14 * UPSCALE_RATIO, "px"),
2487
+ lineHeight: "".concat(24 * UPSCALE_RATIO, "px"),
2488
+ transform: "scale(".concat(1 / UPSCALE_RATIO, ")"),
2489
+ margin: "0 ".concat((-100 * UPSCALE_RATIO + 100) / 2, "%"),
2490
+ width: "".concat(100 * UPSCALE_RATIO, "%"),
2491
+ maxWidth: "".concat(100 * UPSCALE_RATIO, "%"),
2492
+ flexGrow: 1,
2493
+ display: "flex"
2494
+ }
2495
+ }, props))
2496
+ ]
2497
+ });
2385
2498
  });
2386
2499
  // src/components/threads/Thread/MessageForm/Field/index.tsx
2387
2500
  var import_react_hook_form2 = require("react-hook-form");
2388
- var import_themes31 = require("@radix-ui/themes");
2501
+ var import_themes32 = require("@radix-ui/themes");
2389
2502
  var import_jsx_runtime41 = require("react/jsx-runtime");
2390
2503
  var Root3 = function(param) {
2391
2504
  var children = param.children;
2392
2505
  var _ref = (0, import_react_hook_form2.useFormContext)(), errors = _ref.formState.errors;
2393
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes31.Container, {
2506
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes32.Container, {
2394
2507
  size: "2",
2395
2508
  flexGrow: "0",
2396
- children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes31.Flex, {
2509
+ children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes32.Flex, {
2397
2510
  direction: "column",
2398
2511
  flexShrink: "0",
2399
- children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes31.Flex, {
2512
+ children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes32.Flex, {
2400
2513
  direction: "column",
2401
2514
  flexShrink: "0",
2402
- children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes31.Flex, {
2515
+ children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes32.Flex, {
2403
2516
  style: _object_spread({
2404
2517
  borderRadius: "var(--radius-2)",
2405
2518
  borderWidth: "1px",
@@ -2417,19 +2530,19 @@ var Root3 = function(param) {
2417
2530
  });
2418
2531
  };
2419
2532
  var Control = function() {
2420
- var assistantNameContext = (0, import_react30.useContext)(AssistantNameContext);
2533
+ var assistantNameContext = (0, import_react34.useContext)(AssistantNameContext);
2421
2534
  var register = (0, import_react_hook_form2.useFormContext)().register;
2422
2535
  var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
2423
- var isSubmitDisabled = (0, import_react30.useMemo)(function() {
2536
+ var isSubmitDisabled = (0, import_react34.useMemo)(function() {
2424
2537
  return isDisabled || isLoading;
2425
2538
  }, [
2426
2539
  isDisabled,
2427
2540
  isLoading
2428
2541
  ]);
2429
2542
  var isDisabledPrevious = (0, import_react_use2.usePrevious)(isDisabled);
2430
- var textareaRef = (0, import_react30.useRef)(null);
2543
+ var textareaRef = (0, import_react34.useRef)(null);
2431
2544
  var textareaProps = register("content");
2432
- (0, import_react30.useEffect)(function() {
2545
+ (0, import_react34.useEffect)(function() {
2433
2546
  if (isDisabled) return;
2434
2547
  if (!isDisabledPrevious) return;
2435
2548
  if (!textareaRef.current) return;
@@ -2468,18 +2581,18 @@ var MessageForm = function() {
2468
2581
  return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Root2, {
2469
2582
  children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Field.Root, {
2470
2583
  children: [
2471
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes32.Text, {
2584
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes33.Text, {
2472
2585
  size: "2",
2473
2586
  style: {
2474
2587
  flexGrow: 1
2475
2588
  },
2476
- children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes32.Flex, {
2589
+ children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes33.Flex, {
2477
2590
  flexGrow: "1",
2478
2591
  direction: "column",
2479
2592
  children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Field.Control, {})
2480
2593
  })
2481
2594
  }),
2482
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes32.Flex, {
2595
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes33.Flex, {
2483
2596
  flexShrink: "0",
2484
2597
  align: "end",
2485
2598
  children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Submit, {})
@@ -2492,14 +2605,36 @@ MessageForm.Root = Root2;
2492
2605
  MessageForm.Field = Field;
2493
2606
  MessageForm.Submit = Submit;
2494
2607
  // src/components/threads/Thread/Root/index.tsx
2495
- var import_themes33 = require("@radix-ui/themes");
2608
+ var import_themes34 = require("@radix-ui/themes");
2609
+ // src/components/runs/PollingProvider/index.tsx
2610
+ var import_react35 = require("react");
2496
2611
  var import_jsx_runtime43 = require("react/jsx-runtime");
2612
+ var PollingProvider = function(param) {
2613
+ var children = param.children;
2614
+ var _ref = _sliced_to_array((0, import_react35.useState)(false), 2), isPollRefetching = _ref[0], setIsPollRefetching = _ref[1];
2615
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(PollingContext.Provider, {
2616
+ value: {
2617
+ isPollRefetching: isPollRefetching,
2618
+ setIsPollRefetching: setIsPollRefetching
2619
+ },
2620
+ children: children
2621
+ });
2622
+ };
2623
+ // src/components/threads/Thread/Provider/index.tsx
2624
+ var import_jsx_runtime44 = require("react/jsx-runtime");
2625
+ var Provider2 = function(args) {
2626
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(PollingProvider, {
2627
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(SuperinterfaceProvider, _object_spread({}, args))
2628
+ });
2629
+ };
2630
+ // src/components/threads/Thread/Root/index.tsx
2631
+ var import_jsx_runtime45 = require("react/jsx-runtime");
2497
2632
  var Root4 = function(_param) {
2498
2633
  var children = _param.children, rest = _object_without_properties(_param, [
2499
2634
  "children"
2500
2635
  ]);
2501
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(SuperinterfaceProvider, _object_spread_props(_object_spread({}, rest), {
2502
- children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_themes33.Flex, {
2636
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Provider2, _object_spread_props(_object_spread({}, rest), {
2637
+ children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_themes34.Flex, {
2503
2638
  direction: "column",
2504
2639
  flexGrow: "1",
2505
2640
  children: children
@@ -2507,40 +2642,45 @@ var Root4 = function(_param) {
2507
2642
  }));
2508
2643
  };
2509
2644
  // src/components/threads/Thread/index.tsx
2510
- var import_jsx_runtime44 = require("react/jsx-runtime");
2645
+ var import_jsx_runtime46 = require("react/jsx-runtime");
2511
2646
  var Thread = function(props) {
2512
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Root4, _object_spread_props(_object_spread({}, props), {
2647
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Root4, _object_spread_props(_object_spread({}, props), {
2513
2648
  children: [
2514
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Messages, {}),
2515
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(MessageForm, {})
2649
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Messages, {}),
2650
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(MessageForm, {})
2516
2651
  ]
2517
2652
  }));
2518
2653
  };
2519
2654
  Thread.Root = Root4;
2520
2655
  Thread.Messages = Messages;
2521
2656
  Thread.MessageForm = MessageForm;
2657
+ // src/hooks/messages/useMessageContext/index.ts
2658
+ var import_react36 = require("react");
2659
+ var useMessageContext = function() {
2660
+ return (0, import_react36.useContext)(MessageContext);
2661
+ };
2522
2662
  // src/components/threads/ThreadDialog/Root/index.tsx
2523
- var import_themes34 = require("@radix-ui/themes");
2663
+ var import_themes35 = require("@radix-ui/themes");
2524
2664
  // src/components/threads/ThreadDialog/Provider/index.tsx
2525
- var import_react33 = require("react");
2665
+ var import_react39 = require("react");
2526
2666
  // src/contexts/threads/ThreadDialogContext/index.ts
2527
- var import_react31 = require("react");
2528
- var ThreadDialogContext = (0, import_react31.createContext)({
2667
+ var import_react37 = require("react");
2668
+ var ThreadDialogContext = (0, import_react37.createContext)({
2529
2669
  isOpen: false,
2530
2670
  setIsOpen: function() {}
2531
2671
  });
2532
2672
  // src/hooks/threads/useThreadDialogContext/index.ts
2533
- var import_react32 = require("react");
2673
+ var import_react38 = require("react");
2534
2674
  var useThreadDialogContext = function() {
2535
- return (0, import_react32.useContext)(ThreadDialogContext);
2675
+ return (0, import_react38.useContext)(ThreadDialogContext);
2536
2676
  };
2537
2677
  // src/components/threads/ThreadDialog/Provider/index.tsx
2538
- var import_jsx_runtime45 = require("react/jsx-runtime");
2539
- var Provider = function(param) {
2678
+ var import_jsx_runtime47 = require("react/jsx-runtime");
2679
+ var Provider3 = function(param) {
2540
2680
  var children = param.children;
2541
2681
  var threadDialogContext = useThreadDialogContext();
2542
- var _ref = _sliced_to_array((0, import_react33.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
2543
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(ThreadDialogContext.Provider, {
2682
+ var _ref = _sliced_to_array((0, import_react39.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
2683
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(ThreadDialogContext.Provider, {
2544
2684
  value: {
2545
2685
  isOpen: isOpen,
2546
2686
  setIsOpen: setIsOpen
@@ -2549,11 +2689,11 @@ var Provider = function(param) {
2549
2689
  });
2550
2690
  };
2551
2691
  // src/components/threads/ThreadDialog/Root/index.tsx
2552
- var import_jsx_runtime46 = require("react/jsx-runtime");
2692
+ var import_jsx_runtime48 = require("react/jsx-runtime");
2553
2693
  var Root5 = function(param) {
2554
2694
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2555
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Provider, {
2556
- children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_themes34.Flex, {
2695
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Provider3, {
2696
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes35.Flex, {
2557
2697
  direction: "column",
2558
2698
  justify: "end",
2559
2699
  align: "end",
@@ -2569,12 +2709,12 @@ var Root5 = function(param) {
2569
2709
  });
2570
2710
  };
2571
2711
  // src/components/threads/ThreadDialog/Trigger/index.tsx
2572
- var import_themes35 = require("@radix-ui/themes");
2573
- var import_jsx_runtime47 = require("react/jsx-runtime");
2712
+ var import_themes36 = require("@radix-ui/themes");
2713
+ var import_jsx_runtime49 = require("react/jsx-runtime");
2574
2714
  var Trigger = function(param) {
2575
2715
  var children = param.children;
2576
2716
  var setIsOpen = useThreadDialogContext().setIsOpen;
2577
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_themes35.Flex, {
2717
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes36.Flex, {
2578
2718
  onClick: function() {
2579
2719
  return setIsOpen(function(prev) {
2580
2720
  return !prev;
@@ -2586,24 +2726,24 @@ var Trigger = function(param) {
2586
2726
  });
2587
2727
  };
2588
2728
  // src/components/threads/ThreadDialog/Button/index.tsx
2589
- var import_themes36 = require("@radix-ui/themes");
2729
+ var import_themes37 = require("@radix-ui/themes");
2590
2730
  var import_react_icons6 = require("@radix-ui/react-icons");
2591
- var import_jsx_runtime48 = require("react/jsx-runtime");
2731
+ var import_jsx_runtime50 = require("react/jsx-runtime");
2592
2732
  var Button3 = function() {
2593
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes36.IconButton, {
2733
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_themes37.IconButton, {
2594
2734
  size: "4",
2595
2735
  radius: "full",
2596
- children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_react_icons6.ChatBubbleIcon, {})
2736
+ children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_react_icons6.ChatBubbleIcon, {})
2597
2737
  });
2598
2738
  };
2599
2739
  // src/components/threads/ThreadDialog/Content/index.tsx
2600
- var import_themes37 = require("@radix-ui/themes");
2601
- var import_jsx_runtime49 = require("react/jsx-runtime");
2740
+ var import_themes38 = require("@radix-ui/themes");
2741
+ var import_jsx_runtime51 = require("react/jsx-runtime");
2602
2742
  var Root6 = function(param) {
2603
2743
  var children = param.children;
2604
2744
  var isOpen = useThreadDialogContext().isOpen;
2605
2745
  if (!isOpen) return null;
2606
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes37.Card, {
2746
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes38.Card, {
2607
2747
  mb: "3",
2608
2748
  style: {
2609
2749
  display: "flex",
@@ -2612,7 +2752,7 @@ var Root6 = function(param) {
2612
2752
  maxWidth: "400px",
2613
2753
  maxHeight: "720px"
2614
2754
  },
2615
- children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes37.Inset, {
2755
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes38.Inset, {
2616
2756
  clip: "padding-box",
2617
2757
  side: "all",
2618
2758
  pb: "current",
@@ -2625,21 +2765,23 @@ var Root6 = function(param) {
2625
2765
  });
2626
2766
  };
2627
2767
  var Content4 = function() {
2628
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Root6, {
2629
- children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Thread.Root, {
2768
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Root6, {
2769
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Thread.Root, {
2630
2770
  children: [
2631
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Thread.Messages, {
2771
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Thread.Messages, {
2632
2772
  style: {
2633
- padding: "var(--space-5)"
2773
+ paddingTop: "var(--space-5)",
2774
+ paddingRight: "var(--space-5)",
2775
+ paddingLeft: "var(--space-5)"
2634
2776
  }
2635
2777
  }),
2636
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes37.Flex, {
2778
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes38.Flex, {
2637
2779
  direction: "column",
2638
2780
  pl: "5",
2639
2781
  pr: "5",
2640
2782
  pb: "3",
2641
2783
  flexShrink: "0",
2642
- children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Thread.MessageForm, {})
2784
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Thread.MessageForm, {})
2643
2785
  })
2644
2786
  ]
2645
2787
  })
@@ -2647,13 +2789,13 @@ var Content4 = function() {
2647
2789
  };
2648
2790
  Content4.Root = Root6;
2649
2791
  // src/components/threads/ThreadDialog/index.tsx
2650
- var import_jsx_runtime50 = require("react/jsx-runtime");
2792
+ var import_jsx_runtime52 = require("react/jsx-runtime");
2651
2793
  var ThreadDialog = function() {
2652
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Root5, {
2794
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Root5, {
2653
2795
  children: [
2654
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Content4, {}),
2655
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Trigger, {
2656
- children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Button3, {})
2796
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Content4, {}),
2797
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Trigger, {
2798
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Button3, {})
2657
2799
  })
2658
2800
  ]
2659
2801
  });
@@ -2664,12 +2806,10 @@ ThreadDialog.Button = Button3;
2664
2806
  ThreadDialog.Content = Content4;
2665
2807
  // src/components/threads/AudioThread/Root/index.tsx
2666
2808
  var import_runtime = require("regenerator-runtime/runtime");
2667
- var import_react38 = require("react");
2668
- var import_themes38 = require("@radix-ui/themes");
2669
- var import_react_speech_recognition = __toESM(require("react-speech-recognition"), 1);
2809
+ var import_themes39 = require("@radix-ui/themes");
2670
2810
  // src/contexts/threads/AudioThreadContext/index.ts
2671
- var import_react34 = require("react");
2672
- var AudioThreadContext = (0, import_react34.createContext)({
2811
+ var import_react40 = require("react");
2812
+ var AudioThreadContext = (0, import_react40.createContext)({
2673
2813
  status: "idle",
2674
2814
  recorderProps: {
2675
2815
  status: "idle",
@@ -2726,12 +2866,22 @@ var AudioThreadContext = (0, import_react34.createContext)({
2726
2866
  });
2727
2867
  // src/components/threads/AudioThread/Root/index.tsx
2728
2868
  var import_react_use4 = require("react-use");
2869
+ // src/components/threads/AudioThread/Root/lib/blobToData.ts
2870
+ var blobToData = function(blob) {
2871
+ return new Promise(function(resolve) {
2872
+ var reader = new FileReader();
2873
+ reader.onloadend = function() {
2874
+ return resolve(reader.result);
2875
+ };
2876
+ reader.readAsDataURL(blob);
2877
+ });
2878
+ };
2729
2879
  // src/hooks/audioThreads/useStatus/index.ts
2730
- var import_react35 = require("react");
2880
+ var import_react41 = require("react");
2731
2881
  var useStatus = function(param) {
2732
2882
  var messageAudioProps = param.messageAudioProps, recorderProps = param.recorderProps, createMessageProps = param.createMessageProps;
2733
2883
  var isRunActiveProps = useIsRunActive();
2734
- var status = (0, import_react35.useMemo)(function() {
2884
+ var status = (0, import_react41.useMemo)(function() {
2735
2885
  if (recorderProps.status === "recording") return "recording";
2736
2886
  if (createMessageProps.isPending) return "creatingMessage";
2737
2887
  if (isRunActiveProps.isRunActive) return "runActive";
@@ -2754,27 +2904,21 @@ var useStatus = function(param) {
2754
2904
  // src/hooks/audioThreads/useRecorder/index.ts
2755
2905
  var import_dayjs = __toESM(require("dayjs"), 1);
2756
2906
  var import_use_audio_capture = require("use-audio-capture");
2757
- var import_react36 = require("react");
2907
+ var import_react42 = require("react");
2758
2908
  var import_react_use_audio_player = require("react-use-audio-player");
2759
2909
  var import_react_use3 = require("react-use");
2760
2910
  var useRecorder = function(param) {
2761
2911
  var isStopOnSilence = param.isStopOnSilence, onStart = param.onStart, onStop = param.onStop;
2762
- var _ref = _sliced_to_array((0, import_react36.useState)(null), 2), silenceStart = _ref[0], setSilenceStart = _ref[1];
2763
- var _ref1 = _sliced_to_array((0, import_react36.useState)(null), 2), noiseStart = _ref1[0], setNoiseStart = _ref1[1];
2764
- var _ref2 = _sliced_to_array((0, import_react36.useState)(null), 2), mediaStream = _ref2[0], setMediaStream = _ref2[1];
2765
- var _ref3 = _sliced_to_array((0, import_react36.useState)("idle"), 2), status = _ref3[0], setStatus = _ref3[1];
2912
+ var _ref = _sliced_to_array((0, import_react42.useState)(null), 2), silenceStart = _ref[0], setSilenceStart = _ref[1];
2913
+ var _ref1 = _sliced_to_array((0, import_react42.useState)(null), 2), noiseStart = _ref1[0], setNoiseStart = _ref1[1];
2914
+ var _ref2 = _sliced_to_array((0, import_react42.useState)(null), 2), mediaStream = _ref2[0], setMediaStream = _ref2[1];
2915
+ var _ref3 = _sliced_to_array((0, import_react42.useState)("idle"), 2), status = _ref3[0], setStatus = _ref3[1];
2766
2916
  var startAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
2767
2917
  var endAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
2768
- var _ref4 = _sliced_to_array((0, import_react36.useState)(false), 2), isLoaded = _ref4[0], setIsLoaded = _ref4[1];
2769
- (0, import_react36.useEffect)(function() {
2918
+ var _ref4 = _sliced_to_array((0, import_react42.useState)(false), 2), isLoaded = _ref4[0], setIsLoaded = _ref4[1];
2919
+ (0, import_react42.useEffect)(function() {
2770
2920
  if (isLoaded) return;
2771
2921
  setIsLoaded(true);
2772
- startAudioPlayer.load("/sounds/warning.wav", {
2773
- html5: true
2774
- });
2775
- endAudioPlayer.load("/sounds/success.wav", {
2776
- html5: true
2777
- });
2778
2922
  }, [
2779
2923
  isLoaded,
2780
2924
  startAudioPlayer,
@@ -2782,7 +2926,6 @@ var useRecorder = function(param) {
2782
2926
  ]);
2783
2927
  var audioCaptureProps = (0, import_use_audio_capture.useAudioCapture)({
2784
2928
  onStart: function(event, opts) {
2785
- startAudioPlayer.play();
2786
2929
  setStatus("recording");
2787
2930
  setMediaStream(opts.mediaStream);
2788
2931
  isInited.current = false;
@@ -2799,7 +2942,6 @@ var useRecorder = function(param) {
2799
2942
  for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
2800
2943
  args[_key] = _arguments[_key];
2801
2944
  }
2802
- endAudioPlayer.play();
2803
2945
  setStatus("stopped");
2804
2946
  if (!onStop) return [
2805
2947
  3,
@@ -2832,9 +2974,9 @@ var useRecorder = function(param) {
2832
2974
  setNoiseStart(null);
2833
2975
  }
2834
2976
  });
2835
- var _ref5 = _sliced_to_array((0, import_react36.useState)(null), 2), audioEngine = _ref5[0], setAudioEngine = _ref5[1];
2836
- var isInited = (0, import_react36.useRef)(false);
2837
- (0, import_react36.useEffect)(function() {
2977
+ var _ref5 = _sliced_to_array((0, import_react42.useState)(null), 2), audioEngine = _ref5[0], setAudioEngine = _ref5[1];
2978
+ var isInited = (0, import_react42.useRef)(false);
2979
+ (0, import_react42.useEffect)(function() {
2838
2980
  if (!mediaStream) return;
2839
2981
  if (isInited.current) return;
2840
2982
  isInited.current = true;
@@ -2847,7 +2989,7 @@ var useRecorder = function(param) {
2847
2989
  isInited,
2848
2990
  mediaStream
2849
2991
  ]);
2850
- var visualizationAnalyser = (0, import_react36.useMemo)(function() {
2992
+ var visualizationAnalyser = (0, import_react42.useMemo)(function() {
2851
2993
  if (!audioEngine) return null;
2852
2994
  var result = audioEngine.audioContext.createAnalyser();
2853
2995
  audioEngine.source.connect(result);
@@ -2855,7 +2997,7 @@ var useRecorder = function(param) {
2855
2997
  }, [
2856
2998
  audioEngine
2857
2999
  ]);
2858
- var silenceAnalyser = (0, import_react36.useMemo)(function() {
3000
+ var silenceAnalyser = (0, import_react42.useMemo)(function() {
2859
3001
  if (!audioEngine) return null;
2860
3002
  var result = audioEngine.audioContext.createAnalyser();
2861
3003
  result.minDecibels = -45;
@@ -2864,7 +3006,7 @@ var useRecorder = function(param) {
2864
3006
  }, [
2865
3007
  audioEngine
2866
3008
  ]);
2867
- var handleSilence = (0, import_react36.useCallback)(function() {
3009
+ var handleSilence = (0, import_react42.useCallback)(function() {
2868
3010
  if (!silenceAnalyser) return;
2869
3011
  var frequencyData = new Uint8Array(silenceAnalyser.frequencyBinCount);
2870
3012
  silenceAnalyser.getByteFrequencyData(frequencyData);
@@ -2887,7 +3029,7 @@ var useRecorder = function(param) {
2887
3029
  setNoiseStart,
2888
3030
  setSilenceStart
2889
3031
  ]);
2890
- (0, import_react36.useEffect)(function() {
3032
+ (0, import_react42.useEffect)(function() {
2891
3033
  if (!isStopOnSilence) return;
2892
3034
  requestAnimationFrame(function() {
2893
3035
  return handleSilence();
@@ -2910,7 +3052,7 @@ var useRecorder = function(param) {
2910
3052
  });
2911
3053
  };
2912
3054
  // src/hooks/audioThreads/useMessageAudio/index.ts
2913
- var import_react37 = require("react");
3055
+ var import_react43 = require("react");
2914
3056
  var import_howler = require("howler");
2915
3057
  var import_react_use_audio_player2 = require("react-use-audio-player");
2916
3058
  // src/hooks/audioThreads/useMessageAudio/lib/input.ts
@@ -2936,11 +3078,11 @@ var isHtmlAudioSupported = !unsupportedNames.includes(((_this = (0, import_detec
2936
3078
  // src/hooks/audioThreads/useMessageAudio/index.ts
2937
3079
  var useMessageAudio = function(param) {
2938
3080
  var onEnd = param.onEnd;
2939
- var _ref = _sliced_to_array((0, import_react37.useState)([]), 2), playedMessageIds = _ref[0], setPlayedMessageIds = _ref[1];
3081
+ var _ref = _sliced_to_array((0, import_react43.useState)([]), 2), playedMessageIds = _ref[0], setPlayedMessageIds = _ref[1];
2940
3082
  var audioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
2941
3083
  var superinterfaceContext = useSuperinterfaceContext();
2942
3084
  var latestMessageProps = useLatestMessage();
2943
- (0, import_react37.useEffect)(function() {
3085
+ (0, import_react43.useEffect)(function() {
2944
3086
  if (audioPlayer.playing) return;
2945
3087
  if (!latestMessageProps.latestMessage) return;
2946
3088
  if (latestMessageProps.latestMessage.role !== "assistant") return;
@@ -2958,7 +3100,14 @@ var useMessageAudio = function(param) {
2958
3100
  format: "mp3",
2959
3101
  autoplay: true,
2960
3102
  html5: isHtmlAudioSupported,
2961
- onend: onEnd
3103
+ onend: onEnd,
3104
+ xhr: _object_spread_props(_object_spread({}, superinterfaceContext.publicApiKey ? {
3105
+ headers: {
3106
+ Authorization: "Bearer ".concat(superinterfaceContext.publicApiKey)
3107
+ }
3108
+ } : {}), {
3109
+ withCredentials: true
3110
+ })
2962
3111
  });
2963
3112
  }, [
2964
3113
  superinterfaceContext,
@@ -2967,9 +3116,9 @@ var useMessageAudio = function(param) {
2967
3116
  playedMessageIds,
2968
3117
  onEnd
2969
3118
  ]);
2970
- var isInited = (0, import_react37.useRef)(false);
2971
- var _ref1 = _sliced_to_array((0, import_react37.useState)(null), 2), audioEngine = _ref1[0], setAudioEngine = _ref1[1];
2972
- (0, import_react37.useEffect)(function() {
3119
+ var isInited = (0, import_react43.useRef)(false);
3120
+ var _ref1 = _sliced_to_array((0, import_react43.useState)(null), 2), audioEngine = _ref1[0], setAudioEngine = _ref1[1];
3121
+ (0, import_react43.useEffect)(function() {
2973
3122
  if (!audioPlayer.playing) return;
2974
3123
  if (isInited.current) return;
2975
3124
  isInited.current = true;
@@ -2990,7 +3139,7 @@ var useMessageAudio = function(param) {
2990
3139
  audioPlayer,
2991
3140
  isInited
2992
3141
  ]);
2993
- var visualizationAnalyser = (0, import_react37.useMemo)(function() {
3142
+ var visualizationAnalyser = (0, import_react43.useMemo)(function() {
2994
3143
  if (!audioEngine) return null;
2995
3144
  var result = audioEngine.audioContext.createAnalyser();
2996
3145
  audioEngine.source.connect(audioEngine.audioContext.destination);
@@ -3004,48 +3153,47 @@ var useMessageAudio = function(param) {
3004
3153
  });
3005
3154
  };
3006
3155
  // src/components/threads/AudioThread/Root/index.tsx
3007
- var import_jsx_runtime51 = require("react/jsx-runtime");
3156
+ var import_jsx_runtime53 = require("react/jsx-runtime");
3008
3157
  var Root7 = function(param) {
3009
3158
  var children = param.children;
3010
3159
  useLifecycle();
3011
3160
  var createMessageProps = useCreateMessage();
3012
- var _ref = (0, import_react_speech_recognition.useSpeechRecognition)(), transcript = _ref.transcript, resetTranscript = _ref.resetTranscript;
3013
- var transcriptRef = (0, import_react38.useRef)(transcript);
3014
- (0, import_react38.useEffect)(function() {
3015
- transcriptRef.current = transcript;
3016
- }, [
3017
- transcript
3018
- ]);
3019
3161
  var recorderProps = useRecorder({
3020
3162
  isStopOnSilence: true,
3021
3163
  onStart: /*#__PURE__*/ _async_to_generator(function() {
3022
3164
  return _ts_generator(this, function(_state) {
3023
3165
  console.log("start");
3024
- resetTranscript();
3025
- import_react_speech_recognition.default.default.startListening({
3026
- continuous: true
3027
- });
3028
3166
  return [
3029
3167
  2
3030
3168
  ];
3031
3169
  });
3032
3170
  }),
3033
3171
  onStop: function() {
3034
- var _ref = _async_to_generator(function(_event, _chunks) {
3172
+ var _ref = _async_to_generator(function(_event, chunks) {
3173
+ var blob, audioContent;
3035
3174
  return _ts_generator(this, function(_state) {
3036
- console.log({
3037
- transcript: transcriptRef.current
3038
- });
3039
- return [
3040
- 2,
3041
- createMessageProps.createMessage({
3042
- // @ts-ignore-next-line
3043
- content: transcriptRef.current
3044
- })
3045
- ];
3175
+ switch(_state.label){
3176
+ case 0:
3177
+ blob = new Blob(chunks, {
3178
+ type: chunks[0].type
3179
+ });
3180
+ return [
3181
+ 4,
3182
+ blobToData(blob)
3183
+ ];
3184
+ case 1:
3185
+ audioContent = _state.sent();
3186
+ return [
3187
+ 2,
3188
+ createMessageProps.createMessage({
3189
+ // @ts-ignore-next-line
3190
+ audioContent: audioContent
3191
+ })
3192
+ ];
3193
+ }
3046
3194
  });
3047
3195
  });
3048
- return function(_event, _chunks) {
3196
+ return function(_event, chunks) {
3049
3197
  return _ref.apply(this, arguments);
3050
3198
  };
3051
3199
  }()
@@ -3065,13 +3213,13 @@ var Root7 = function(param) {
3065
3213
  createMessageProps: createMessageProps,
3066
3214
  messageAudioProps: messageAudioProps
3067
3215
  }).status;
3068
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(AudioThreadContext.Provider, {
3216
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(AudioThreadContext.Provider, {
3069
3217
  value: {
3070
3218
  status: status,
3071
3219
  recorderProps: recorderProps,
3072
3220
  messageAudioProps: messageAudioProps
3073
3221
  },
3074
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes38.Flex, {
3222
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes39.Flex, {
3075
3223
  direction: "column",
3076
3224
  flexGrow: "1",
3077
3225
  p: "5",
@@ -3080,23 +3228,23 @@ var Root7 = function(param) {
3080
3228
  });
3081
3229
  };
3082
3230
  // src/components/threads/AudioThread/Visualization/index.tsx
3083
- var import_themes39 = require("@radix-ui/themes");
3231
+ var import_themes40 = require("@radix-ui/themes");
3084
3232
  // src/hooks/threads/useAudioThreadContext/index.ts
3085
- var import_react39 = require("react");
3233
+ var import_react44 = require("react");
3086
3234
  var useAudioThreadContext = function() {
3087
- return (0, import_react39.useContext)(AudioThreadContext);
3235
+ return (0, import_react44.useContext)(AudioThreadContext);
3088
3236
  };
3089
3237
  // src/components/threads/AudioThread/Visualization/index.tsx
3090
- var import_jsx_runtime52 = require("react/jsx-runtime");
3238
+ var import_jsx_runtime54 = require("react/jsx-runtime");
3091
3239
  var Visualization = function() {
3092
3240
  var audioThreadContext = useAudioThreadContext();
3093
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_themes39.Flex, {
3241
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes40.Flex, {
3094
3242
  direction: "column",
3095
3243
  align: "center",
3096
3244
  justify: "center",
3097
3245
  mb: "3",
3098
3246
  flexGrow: "1",
3099
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_themes39.Flex, {
3247
+ children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes40.Flex, {
3100
3248
  align: "center",
3101
3249
  justify: "center",
3102
3250
  height: "200px",
@@ -3110,22 +3258,22 @@ var Visualization = function() {
3110
3258
  };
3111
3259
  // src/components/threads/AudioThread/Form/index.tsx
3112
3260
  var import_react_icons8 = require("@radix-ui/react-icons");
3113
- var import_themes42 = require("@radix-ui/themes");
3261
+ var import_themes43 = require("@radix-ui/themes");
3114
3262
  // src/components/threads/AudioThread/Form/Visualizer/index.tsx
3115
3263
  var import_lodash7 = __toESM(require("lodash"), 1);
3116
- var import_themes40 = require("@radix-ui/themes");
3117
- var import_react40 = require("react");
3264
+ var import_themes41 = require("@radix-ui/themes");
3265
+ var import_react45 = require("react");
3118
3266
  var import_radash10 = require("radash");
3119
- var import_jsx_runtime53 = require("react/jsx-runtime");
3267
+ var import_jsx_runtime55 = require("react/jsx-runtime");
3120
3268
  var barCount = 4;
3121
3269
  var Visualizer = function() {
3122
3270
  var audioThreadContext = useAudioThreadContext();
3123
3271
  var visualizationAnalyser = audioThreadContext.recorderProps.visualizationAnalyser;
3124
- var _ref = _sliced_to_array((0, import_react40.useState)(function() {
3272
+ var _ref = _sliced_to_array((0, import_react45.useState)(function() {
3125
3273
  return new AudioContext().createAnalyser();
3126
3274
  }), 1), emptyVisualizer = _ref[0];
3127
- var _ref1 = _sliced_to_array((0, import_react40.useState)([]), 2), barHeights = _ref1[0], setBarHeights = _ref1[1];
3128
- var draw = (0, import_react40.useCallback)(function(param) {
3275
+ var _ref1 = _sliced_to_array((0, import_react45.useState)([]), 2), barHeights = _ref1[0], setBarHeights = _ref1[1];
3276
+ var draw = (0, import_react45.useCallback)(function(param) {
3129
3277
  var visualizationAnalyser2 = param.visualizationAnalyser;
3130
3278
  var frequencyData = new Uint8Array(visualizationAnalyser2.frequencyBinCount / 15);
3131
3279
  visualizationAnalyser2.getByteFrequencyData(frequencyData);
@@ -3139,7 +3287,7 @@ var Visualizer = function() {
3139
3287
  });
3140
3288
  });
3141
3289
  }, []);
3142
- (0, import_react40.useEffect)(function() {
3290
+ (0, import_react45.useEffect)(function() {
3143
3291
  draw({
3144
3292
  visualizationAnalyser: visualizationAnalyser || emptyVisualizer
3145
3293
  });
@@ -3148,7 +3296,7 @@ var Visualizer = function() {
3148
3296
  visualizationAnalyser,
3149
3297
  emptyVisualizer
3150
3298
  ]);
3151
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes40.Grid, {
3299
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes41.Grid, {
3152
3300
  columns: "".concat(barCount),
3153
3301
  gap: "1",
3154
3302
  width: "auto",
@@ -3157,12 +3305,12 @@ var Visualizer = function() {
3157
3305
  gridTemplateColumns: "repeat(4, minmax(0, 1fr))"
3158
3306
  },
3159
3307
  children: barHeights.map(function(barHeight, index) {
3160
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes40.Flex, {
3308
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes41.Flex, {
3161
3309
  direction: "column",
3162
3310
  align: "center",
3163
3311
  justify: "center",
3164
3312
  height: "20px",
3165
- children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes40.Flex, {
3313
+ children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes41.Flex, {
3166
3314
  minHeight: "50%",
3167
3315
  maxHeight: "100%",
3168
3316
  height: "".concat(barHeight + 20, "%"),
@@ -3177,31 +3325,31 @@ var Visualizer = function() {
3177
3325
  });
3178
3326
  };
3179
3327
  // src/components/threads/AudioThread/Form/ActionButton/index.tsx
3180
- var import_themes41 = require("@radix-ui/themes");
3328
+ var import_themes42 = require("@radix-ui/themes");
3181
3329
  var import_react_icons7 = require("@radix-ui/react-icons");
3182
- var import_jsx_runtime54 = require("react/jsx-runtime");
3330
+ var import_jsx_runtime56 = require("react/jsx-runtime");
3183
3331
  var ActionButton = function() {
3184
3332
  var audioThreadContext = useAudioThreadContext();
3185
3333
  if (audioThreadContext.status === "recording") {
3186
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_themes41.Flex, {
3334
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_themes42.Flex, {
3187
3335
  align: "center",
3188
3336
  children: [
3189
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes41.Flex, {
3337
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.Flex, {
3190
3338
  mr: "3",
3191
3339
  ml: "-7",
3192
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes41.IconButton, {
3340
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3193
3341
  onClick: audioThreadContext.recorderProps.pause,
3194
3342
  color: "gray",
3195
3343
  radius: "full",
3196
3344
  size: "1",
3197
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_icons7.PauseIcon, {})
3345
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.PauseIcon, {})
3198
3346
  })
3199
3347
  }),
3200
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes41.Tooltip, {
3348
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.Tooltip, {
3201
3349
  open: true,
3202
3350
  content: "Send your message",
3203
3351
  side: "bottom",
3204
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes41.IconButton, {
3352
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3205
3353
  onClick: audioThreadContext.recorderProps.stop,
3206
3354
  color: "gray",
3207
3355
  highContrast: true,
@@ -3210,14 +3358,14 @@ var ActionButton = function() {
3210
3358
  style: {
3211
3359
  border: "2px solid var(--gray-8)"
3212
3360
  },
3213
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_icons7.ArrowUpIcon, {})
3361
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.ArrowUpIcon, {})
3214
3362
  })
3215
3363
  })
3216
3364
  ]
3217
3365
  });
3218
3366
  }
3219
3367
  if (audioThreadContext.status === "recorderPaused") {
3220
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes41.IconButton, {
3368
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3221
3369
  onClick: audioThreadContext.recorderProps.resume,
3222
3370
  color: "red",
3223
3371
  radius: "full",
@@ -3225,11 +3373,11 @@ var ActionButton = function() {
3225
3373
  style: {
3226
3374
  border: "2px solid var(--gray-8)"
3227
3375
  },
3228
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_icons7.ResumeIcon, {})
3376
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.ResumeIcon, {})
3229
3377
  });
3230
3378
  }
3231
3379
  if (audioThreadContext.status === "idle") {
3232
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes41.IconButton, {
3380
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3233
3381
  onClick: function() {
3234
3382
  return audioThreadContext.recorderProps.start();
3235
3383
  },
@@ -3242,7 +3390,7 @@ var ActionButton = function() {
3242
3390
  });
3243
3391
  }
3244
3392
  if (audioThreadContext.status === "playing") {
3245
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes41.IconButton, {
3393
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3246
3394
  onClick: function() {
3247
3395
  return audioThreadContext.messageAudioProps.pause();
3248
3396
  },
@@ -3252,11 +3400,11 @@ var ActionButton = function() {
3252
3400
  style: {
3253
3401
  border: "2px solid var(--gray-8)"
3254
3402
  },
3255
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_icons7.PauseIcon, {})
3403
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.PauseIcon, {})
3256
3404
  });
3257
3405
  }
3258
3406
  if (audioThreadContext.status === "playerPaused") {
3259
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes41.IconButton, {
3407
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3260
3408
  onClick: function() {
3261
3409
  return audioThreadContext.messageAudioProps.play();
3262
3410
  },
@@ -3266,10 +3414,10 @@ var ActionButton = function() {
3266
3414
  style: {
3267
3415
  border: "2px solid var(--gray-8)"
3268
3416
  },
3269
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_icons7.ResumeIcon, {})
3417
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.ResumeIcon, {})
3270
3418
  });
3271
3419
  }
3272
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes41.IconButton, {
3420
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3273
3421
  size: "4",
3274
3422
  color: "red",
3275
3423
  radius: "full",
@@ -3280,49 +3428,49 @@ var ActionButton = function() {
3280
3428
  });
3281
3429
  };
3282
3430
  // src/components/threads/AudioThread/Form/index.tsx
3283
- var import_jsx_runtime55 = require("react/jsx-runtime");
3431
+ var import_jsx_runtime57 = require("react/jsx-runtime");
3284
3432
  var Form = function() {
3285
3433
  var audioThreadContext = useAudioThreadContext();
3286
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_themes42.Flex, {
3434
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_themes43.Flex, {
3287
3435
  direction: "column",
3288
3436
  align: "center",
3289
3437
  children: [
3290
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_themes42.Flex, {
3438
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_themes43.Flex, {
3291
3439
  pb: "3",
3292
3440
  align: "center",
3293
3441
  children: [
3294
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes42.Flex, {
3442
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes43.Flex, {
3295
3443
  ml: "-5",
3296
3444
  mr: "2",
3297
3445
  align: "center",
3298
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_react_icons8.SpeakerModerateIcon, {
3446
+ children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react_icons8.SpeakerModerateIcon, {
3299
3447
  style: {
3300
3448
  color: "var(--".concat(audioThreadContext.status === "recording" ? "mint" : "gray", "-12)")
3301
3449
  }
3302
3450
  })
3303
3451
  }),
3304
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes42.Flex, {
3452
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes43.Flex, {
3305
3453
  px: "2",
3306
3454
  py: "1",
3307
3455
  style: {
3308
3456
  backgroundColor: "var(--".concat(audioThreadContext.status === "recording" ? "mint" : "gray", "-4)"),
3309
3457
  borderRadius: "var(--radius-6)"
3310
3458
  },
3311
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Visualizer, {})
3459
+ children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Visualizer, {})
3312
3460
  })
3313
3461
  ]
3314
3462
  }),
3315
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ActionButton, {})
3463
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ActionButton, {})
3316
3464
  ]
3317
3465
  });
3318
3466
  };
3319
3467
  // src/components/threads/AudioThread/index.tsx
3320
- var import_jsx_runtime56 = require("react/jsx-runtime");
3468
+ var import_jsx_runtime58 = require("react/jsx-runtime");
3321
3469
  var AudioThread = function(props) {
3322
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(Root7, _object_spread_props(_object_spread({}, props), {
3470
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(Root7, _object_spread_props(_object_spread({}, props), {
3323
3471
  children: [
3324
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Visualization, {}),
3325
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Form, {})
3472
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Visualization, {}),
3473
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Form, {})
3326
3474
  ]
3327
3475
  }));
3328
3476
  };
@@ -3330,15 +3478,15 @@ AudioThread.Root = Root7;
3330
3478
  AudioThread.Visualization = Visualization;
3331
3479
  AudioThread.Form = Form;
3332
3480
  // src/components/threads/AudioThreadDialog/index.tsx
3333
- var import_jsx_runtime57 = require("react/jsx-runtime");
3481
+ var import_jsx_runtime59 = require("react/jsx-runtime");
3334
3482
  var AudioThreadDialog = function() {
3335
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(Root5, {
3483
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(Root5, {
3336
3484
  children: [
3337
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Content4.Root, {
3338
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(AudioThread, {})
3485
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Content4.Root, {
3486
+ children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(AudioThread, {})
3339
3487
  }),
3340
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Trigger, {
3341
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Button3, {})
3488
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Trigger, {
3489
+ children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Button3, {})
3342
3490
  })
3343
3491
  ]
3344
3492
  });
@@ -3348,84 +3496,125 @@ AudioThreadDialog.Trigger = Trigger;
3348
3496
  AudioThreadDialog.Button = Button3;
3349
3497
  AudioThreadDialog.Content = Content4;
3350
3498
  // src/components/suggestions/Suggestions/index.tsx
3351
- var import_react41 = require("react");
3352
- var import_themes44 = require("@radix-ui/themes");
3353
- // src/components/suggestions/Suggestion/index.tsx
3499
+ var import_react47 = require("react");
3500
+ // src/components/suggestions/Suggestions/Content.tsx
3501
+ var import_react46 = require("react");
3502
+ var import_radash11 = require("radash");
3503
+ var import_react_children_utilities = require("react-children-utilities");
3504
+ var import_themes45 = require("@radix-ui/themes");
3505
+ // src/components/suggestions/Suggestions/Item.tsx
3354
3506
  var import_react_icons9 = require("@radix-ui/react-icons");
3355
- var import_themes43 = require("@radix-ui/themes");
3356
- var import_jsx_runtime58 = require("react/jsx-runtime");
3357
- var Suggestion = function(param) {
3358
- var suggestion = param.suggestion;
3359
- var createMessage = useCreateMessage().createMessage;
3360
- var _useIsRunActive = useIsRunActive(), isRunActive2 = _useIsRunActive.isRunActive;
3361
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_themes43.Button, {
3362
- variant: "soft",
3363
- style: {
3364
- justifyContent: "space-between"
3365
- },
3507
+ var import_themes44 = require("@radix-ui/themes");
3508
+ var import_jsx_runtime60 = require("react/jsx-runtime");
3509
+ var Item = function(param) {
3510
+ var suggestion = param.suggestion, isDisabled = param.isDisabled;
3511
+ var _useCreateMessage = useCreateMessage(), createMessage = _useCreateMessage.createMessage, isPending = _useCreateMessage.isPending;
3512
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Content5, {
3366
3513
  onClick: function() {
3367
3514
  createMessage({
3368
3515
  // @ts-ignore-next-line
3369
3516
  content: suggestion
3370
3517
  });
3371
3518
  },
3372
- disabled: isRunActive2,
3519
+ isDisabled: isDisabled,
3520
+ isPending: isPending,
3521
+ children: suggestion
3522
+ });
3523
+ };
3524
+ var Content5 = function(param) {
3525
+ var onClick = param.onClick, isDisabled = param.isDisabled, isPending = param.isPending, children = param.children;
3526
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_themes44.Button, {
3527
+ variant: "soft",
3528
+ onClick: onClick,
3529
+ disabled: isDisabled,
3373
3530
  children: [
3374
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.Text, {
3531
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_themes44.Text, {
3375
3532
  size: "1",
3376
3533
  weight: "regular",
3377
- children: suggestion
3534
+ children: children
3378
3535
  }),
3379
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons9.ArrowUpIcon, {})
3536
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_themes44.Spinner, {
3537
+ loading: isPending,
3538
+ children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_icons9.ArrowUpIcon, {})
3539
+ })
3380
3540
  ]
3381
3541
  });
3382
3542
  };
3543
+ Item.Content = Content5;
3544
+ // src/components/suggestions/Suggestions/Content.tsx
3545
+ var import_jsx_runtime61 = require("react/jsx-runtime");
3546
+ var Content6 = function(param) {
3547
+ var children = param.children;
3548
+ var messageContext = useMessageContext();
3549
+ var latestMessageProps = useLatestMessage();
3550
+ var isRunActiveProps = useIsRunActive();
3551
+ var suggestions = (0, import_react46.useMemo)(function() {
3552
+ return (0, import_react_children_utilities.onlyText)(children).split(/\r?\n/).filter(function(c) {
3553
+ return !(0, import_radash11.isEmpty)(c);
3554
+ }).map(function(c) {
3555
+ return c.trim();
3556
+ });
3557
+ }, [
3558
+ children
3559
+ ]);
3560
+ var isDisabled = (0, import_react46.useMemo)(function() {
3561
+ var _messageContext_message;
3562
+ return ((_messageContext_message = messageContext.message) === null || _messageContext_message === void 0 ? void 0 : _messageContext_message.id) !== latestMessageProps.latestMessage.id || isRunActiveProps.isRunActive;
3563
+ }, [
3564
+ messageContext,
3565
+ latestMessageProps,
3566
+ isRunActiveProps
3567
+ ]);
3568
+ if ((0, import_radash11.isEmpty)(suggestions)) return null;
3569
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes45.Flex, {
3570
+ gap: "2",
3571
+ py: "2",
3572
+ wrap: "wrap",
3573
+ children: suggestions.map(function(suggestion) {
3574
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Item, {
3575
+ suggestion: suggestion,
3576
+ isDisabled: isDisabled
3577
+ }, suggestion);
3578
+ })
3579
+ });
3580
+ };
3383
3581
  // src/components/suggestions/Suggestions/index.tsx
3384
- var import_jsx_runtime59 = require("react/jsx-runtime");
3582
+ var import_jsx_runtime62 = require("react/jsx-runtime");
3385
3583
  var Suggestions = function(param) {
3386
- var _param_emptyStateSuggestions = param.emptyStateSuggestions, emptyStateSuggestions = _param_emptyStateSuggestions === void 0 ? [] : _param_emptyStateSuggestions, _param_suggestions = param.suggestions, suggestions = _param_suggestions === void 0 ? [] : _param_suggestions;
3584
+ var children = param.children;
3387
3585
  var latestMessageProps = useLatestMessage();
3388
- var isRunActiveProps = useIsRunActive();
3389
- var isDisabled = (0, import_react41.useMemo)(function() {
3586
+ var isDisabled = (0, import_react47.useMemo)(function() {
3390
3587
  var // @ts-ignore-next-line
3391
3588
  _latestMessageProps_latestMessage_metadata, _latestMessageProps_latestMessage;
3392
- 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) || isRunActiveProps.isRunActive;
3589
+ 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;
3393
3590
  }, [
3394
- latestMessageProps,
3395
- isRunActiveProps
3591
+ latestMessageProps
3396
3592
  ]);
3397
3593
  if (latestMessageProps.isLoading) return null;
3398
3594
  if (isDisabled) return null;
3399
- if (!latestMessageProps.latestMessage && emptyStateSuggestions.length > 0) {
3400
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_themes44.Flex, {
3401
- gap: "2",
3402
- py: "2",
3403
- wrap: "wrap",
3404
- children: emptyStateSuggestions.map(function(suggestion) {
3405
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Suggestion, {
3406
- suggestion: suggestion
3407
- }, suggestion);
3408
- })
3409
- });
3410
- }
3411
- if (latestMessageProps.latestMessage.role === "assistant") {
3412
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_themes44.Flex, {
3413
- gap: "2",
3414
- py: "2",
3415
- wrap: "wrap",
3416
- children: suggestions.map(function(suggestion) {
3417
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Suggestion, {
3418
- suggestion: suggestion
3419
- }, suggestion);
3420
- })
3421
- });
3422
- }
3423
- return null;
3595
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Content6, {
3596
+ children: children
3597
+ });
3424
3598
  };
3425
- // src/hooks/markdown/useMarkdownContext/index.ts
3426
- var import_react42 = require("react");
3427
- var useMarkdownContext = function() {
3428
- return (0, import_react42.useContext)(MarkdownContext);
3599
+ Suggestions.Item = Item;
3600
+ // src/components/markdown/MarkdownProvider/index.tsx
3601
+ var import_react48 = require("react");
3602
+ var import_jsx_runtime63 = require("react/jsx-runtime");
3603
+ var MarkdownProvider = function(_param) {
3604
+ var children = _param.children, rest = _object_without_properties(_param, [
3605
+ "children"
3606
+ ]);
3607
+ var prevMarkdownContext = useMarkdownContext();
3608
+ var value = (0, import_react48.useMemo)(function() {
3609
+ return merge(prevMarkdownContext, rest);
3610
+ }, [
3611
+ rest,
3612
+ prevMarkdownContext
3613
+ ]);
3614
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(MarkdownContext.Provider, {
3615
+ value: value,
3616
+ children: children
3617
+ });
3429
3618
  };
3430
3619
  // Annotate the CommonJS export names for ESM import in node:
3431
3620
  0 && (module.exports = {
@@ -3436,7 +3625,7 @@ var useMarkdownContext = function() {
3436
3625
  FunctionBase: FunctionBase,
3437
3626
  FunctionComponentsContext: FunctionComponentsContext,
3438
3627
  MarkdownContext: MarkdownContext,
3439
- Suggestion: Suggestion,
3628
+ MarkdownProvider: MarkdownProvider,
3440
3629
  Suggestions: Suggestions,
3441
3630
  SuperinterfaceProvider: SuperinterfaceProvider,
3442
3631
  Thread: Thread,
@@ -3449,6 +3638,7 @@ var useMarkdownContext = function() {
3449
3638
  useLatestRun: useLatestRun,
3450
3639
  useLifecycle: useLifecycle,
3451
3640
  useMarkdownContext: useMarkdownContext,
3641
+ useMessageContext: useMessageContext,
3452
3642
  useMessages: useMessages,
3453
3643
  useRuns: useRuns,
3454
3644
  useSuperinterfaceContext: useSuperinterfaceContext,