@superinterface/react 2.0.4 → 2.0.6

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,9 @@ 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
+ }));
543
565
  };
544
566
  // src/lib/messages/messagesQueryOptions.ts
545
567
  var messagesQueryOptions = function(param) {
@@ -657,35 +679,18 @@ var useMessageGroups = function(param) {
657
679
  };
658
680
  // src/components/skeletons/MessagesSkeleton/index.tsx
659
681
  var import_react6 = require("react");
660
- var import_themes4 = require("@radix-ui/themes");
661
- // src/components/skeletons/Skeleton/index.tsx
662
- var import_themes = require("@radix-ui/themes");
663
- var import_jsx_runtime2 = require("react/jsx-runtime");
664
- var Skeleton = function(_param) {
665
- var height = _param.height, style = _param.style, rest = _object_without_properties(_param, [
666
- "height",
667
- "style"
668
- ]);
669
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_themes.Flex, _object_spread({
670
- height: "var(--space-".concat(height, ")"),
671
- style: _object_spread({
672
- animation: "pulse 2s cubic-bezier(.4,0,.6,1) infinite",
673
- borderRadius: "var(--radius-3)",
674
- backgroundColor: "var(--gray-5)"
675
- }, style)
676
- }, rest));
677
- };
682
+ var import_themes3 = require("@radix-ui/themes");
678
683
  // src/components/messageGroups/MessageGroupBase/index.tsx
679
684
  var import_react5 = require("react");
680
- var import_themes2 = require("@radix-ui/themes");
681
- 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");
682
687
  var MessageGroupBase = (0, import_react5.forwardRef)(function MessageGroupBase2(param, ref) {
683
688
  var children = param.children;
684
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_themes2.Container, {
689
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_themes.Container, {
685
690
  ref: ref,
686
691
  size: "2",
687
692
  flexGrow: "0",
688
- children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_themes2.Flex, {
693
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_themes.Flex, {
689
694
  flexShrink: "0",
690
695
  gap: "3",
691
696
  children: children
@@ -693,14 +698,14 @@ var MessageGroupBase = (0, import_react5.forwardRef)(function MessageGroupBase2(
693
698
  });
694
699
  });
695
700
  // src/components/messageGroups/MessageGroupBase/Name.tsx
696
- var import_themes3 = require("@radix-ui/themes");
697
- 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");
698
703
  var Name = function(param) {
699
704
  var children = param.children;
700
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_themes3.Flex, {
705
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_themes2.Flex, {
701
706
  align: "center",
702
707
  height: "var(--space-5)",
703
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_themes3.Text, {
708
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_themes2.Text, {
704
709
  size: "2",
705
710
  weight: "bold",
706
711
  children: children
@@ -708,44 +713,44 @@ var Name = function(param) {
708
713
  });
709
714
  };
710
715
  // src/components/skeletons/MessagesSkeleton/index.tsx
711
- var import_jsx_runtime5 = require("react/jsx-runtime");
716
+ var import_jsx_runtime4 = require("react/jsx-runtime");
712
717
  var MessagesSkeleton = (0, import_react6.forwardRef)(function MessagesSkeleton2(_props, ref) {
713
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(MessageGroupBase, {
718
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(MessageGroupBase, {
714
719
  ref: ref,
715
720
  children: [
716
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_themes4.Avatar, {
717
- fallback: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_themes4.Flex, {}),
718
- size: "1",
719
- style: {
720
- animation: "pulse 2s cubic-bezier(.4,0,.6,1) infinite"
721
- }
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
+ })
722
727
  }),
723
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_themes4.Box, {
728
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_themes3.Box, {
724
729
  pb: "3",
725
730
  children: [
726
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Name, {
727
- children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Skeleton, {
728
- height: "1",
731
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Name, {
732
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_themes3.Skeleton, {
733
+ loading: true,
729
734
  style: {
730
735
  width: "128px"
731
736
  }
732
737
  })
733
738
  }),
734
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Skeleton, {
735
- height: "2",
739
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_themes3.Skeleton, {
740
+ loading: true,
736
741
  style: {
737
742
  width: "256px"
738
743
  }
739
744
  }),
740
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Skeleton, {
741
- height: "2",
745
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_themes3.Skeleton, {
746
+ loading: true,
742
747
  style: {
743
748
  width: "256px",
744
749
  marginTop: "var(--space-2)"
745
750
  }
746
751
  }),
747
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Skeleton, {
748
- height: "2",
752
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_themes3.Skeleton, {
753
+ loading: true,
749
754
  style: {
750
755
  width: "256px",
751
756
  marginTop: "var(--space-2)"
@@ -757,26 +762,26 @@ var MessagesSkeleton = (0, import_react6.forwardRef)(function MessagesSkeleton2(
757
762
  });
758
763
  });
759
764
  // src/components/threads/Thread/Messages/Content/MessageGroup/index.tsx
760
- var import_react16 = require("react");
761
- var import_themes24 = require("@radix-ui/themes");
765
+ var import_react17 = require("react");
766
+ var import_themes25 = require("@radix-ui/themes");
762
767
  var import_react_icons4 = require("@radix-ui/react-icons");
763
768
  // src/components/messageGroups/MessageGroupBase/AssistantAvatar.tsx
764
769
  var import_react8 = require("react");
765
- var import_themes6 = require("@radix-ui/themes");
770
+ var import_themes5 = require("@radix-ui/themes");
766
771
  // src/contexts/assistants/AssistantAvatarContext/index.tsx
767
772
  var import_react7 = require("react");
768
- var import_themes5 = require("@radix-ui/themes");
773
+ var import_themes4 = require("@radix-ui/themes");
769
774
  var import_react_icons = require("@radix-ui/react-icons");
770
- var import_jsx_runtime6 = require("react/jsx-runtime");
771
- var AssistantAvatarContext = (0, import_react7.createContext)(/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_themes5.Avatar, {
772
- 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, {}),
773
778
  size: "1"
774
779
  }));
775
780
  // src/components/messageGroups/MessageGroupBase/AssistantAvatar.tsx
776
- var import_jsx_runtime7 = require("react/jsx-runtime");
781
+ var import_jsx_runtime6 = require("react/jsx-runtime");
777
782
  var AssistantAvatar = function() {
778
783
  var AssistantAvatarContextValue = (0, import_react8.useContext)(AssistantAvatarContext);
779
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_themes6.Flex, {
784
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_themes5.Flex, {
780
785
  flexShrink: "0",
781
786
  height: "24px",
782
787
  width: "24px",
@@ -791,33 +796,33 @@ var AssistantAvatar = function() {
791
796
  var import_react9 = require("react");
792
797
  var AssistantNameContext = (0, import_react9.createContext)("Assistant");
793
798
  // src/components/threads/Thread/Messages/Content/MessageGroup/Content/index.tsx
794
- var import_themes23 = require("@radix-ui/themes");
799
+ var import_themes24 = require("@radix-ui/themes");
795
800
  // src/components/threads/Thread/Message/index.tsx
796
- var import_react15 = require("react");
797
- var import_themes22 = require("@radix-ui/themes");
801
+ var import_react16 = require("react");
802
+ var import_themes23 = require("@radix-ui/themes");
798
803
  // src/components/runSteps/RunSteps/index.tsx
799
- var import_themes15 = require("@radix-ui/themes");
800
- // src/components/runSteps/RunStep/ToolCalls/index.tsx
801
804
  var import_themes14 = require("@radix-ui/themes");
805
+ // src/components/runSteps/RunStep/ToolCalls/index.tsx
806
+ var import_themes13 = require("@radix-ui/themes");
802
807
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/index.tsx
803
- var import_themes12 = require("@radix-ui/themes");
808
+ var import_themes11 = require("@radix-ui/themes");
804
809
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/index.tsx
805
810
  var import_react12 = require("react");
806
811
  // src/contexts/functions/FunctionComponentsContext/index.tsx
807
812
  var import_react10 = require("react");
808
813
  var FunctionComponentsContext = (0, import_react10.createContext)({});
809
814
  // src/components/functions/FunctionBase/index.tsx
810
- var import_themes10 = require("@radix-ui/themes");
815
+ var import_themes9 = require("@radix-ui/themes");
811
816
  // src/components/toolCalls/ToolCallBase/index.tsx
812
- var import_themes7 = require("@radix-ui/themes");
813
- 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");
814
819
  var ToolCallBase = function(param) {
815
820
  var children = param.children;
816
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_themes7.Flex, {
821
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_themes6.Flex, {
817
822
  py: "1",
818
823
  ml: "-2",
819
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_themes7.PopoverTrigger, {
820
- 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, {
821
826
  size: "1",
822
827
  color: "gold",
823
828
  variant: "outline",
@@ -830,32 +835,32 @@ var ToolCallBase = function(param) {
830
835
  });
831
836
  };
832
837
  // src/components/toolCalls/ToolCallBase/ToolCallTitle.tsx
833
- var import_themes8 = require("@radix-ui/themes");
834
- 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");
835
840
  var ToolCallTitle = function(param) {
836
841
  var children = param.children;
837
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_themes8.Text, {
842
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_themes7.Text, {
838
843
  weight: "regular",
839
844
  children: children
840
845
  });
841
846
  };
842
847
  // src/components/functions/FunctionBase/Icon.tsx
843
848
  var import_react_icons2 = require("@radix-ui/react-icons");
844
- var import_jsx_runtime10 = require("react/jsx-runtime");
849
+ var import_jsx_runtime9 = require("react/jsx-runtime");
845
850
  var Icon = function(param) {
846
851
  var runStep = param.runStep;
847
852
  if (runStep.completed_at) {
848
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_icons2.CheckCircledIcon, {});
853
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_icons2.CheckCircledIcon, {});
849
854
  } else if (runStep.cancelled_at || runStep.failed_at || runStep.status === "expired") {
850
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_icons2.CircleBackslashIcon, {});
855
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_icons2.CircleBackslashIcon, {});
851
856
  } else {
852
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_icons2.CircleIcon, {});
857
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_icons2.CircleIcon, {});
853
858
  }
854
859
  };
855
860
  // src/components/functions/FunctionBase/Content.tsx
856
861
  var import_react11 = require("react");
857
- var import_themes9 = require("@radix-ui/themes");
858
- 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");
859
864
  var Content = function(param) {
860
865
  var fn = param.fn;
861
866
  var args = (0, import_react11.useMemo)(function() {
@@ -886,7 +891,7 @@ var Content = function(param) {
886
891
  if (!args) {
887
892
  return null;
888
893
  }
889
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_themes9.Code, {
894
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_themes8.Code, {
890
895
  variant: "ghost",
891
896
  color: "gold",
892
897
  style: {
@@ -894,36 +899,36 @@ var Content = function(param) {
894
899
  wordBreak: "break-word"
895
900
  },
896
901
  children: [
897
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_themes9.Box, {
902
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_themes8.Box, {
898
903
  children: args && JSON.stringify(args, null, 2)
899
904
  }),
900
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_themes9.Box, {
905
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_themes8.Box, {
901
906
  children: output && JSON.stringify(output, null, 2)
902
907
  })
903
908
  ]
904
909
  });
905
910
  };
906
911
  // src/components/functions/FunctionBase/index.tsx
907
- var import_jsx_runtime12 = require("react/jsx-runtime");
912
+ var import_jsx_runtime11 = require("react/jsx-runtime");
908
913
  var FunctionBase = function(param) {
909
914
  var fn = param.fn, runStep = param.runStep, title2 = param.title;
910
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_themes10.PopoverRoot, {
915
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_themes9.PopoverRoot, {
911
916
  children: [
912
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(ToolCallBase, {
917
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(ToolCallBase, {
913
918
  children: [
914
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Icon, {
919
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Icon, {
915
920
  runStep: runStep
916
921
  }),
917
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ToolCallTitle, {
922
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(ToolCallTitle, {
918
923
  children: title2
919
924
  })
920
925
  ]
921
926
  }),
922
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_themes10.PopoverContent, {
927
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_themes9.PopoverContent, {
923
928
  style: {
924
929
  maxHeight: "500px"
925
930
  },
926
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Content, {
931
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Content, {
927
932
  fn: fn
928
933
  })
929
934
  })
@@ -942,10 +947,10 @@ var title = function(param) {
942
947
  }
943
948
  };
944
949
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/DefaultFunction/index.tsx
945
- var import_jsx_runtime13 = require("react/jsx-runtime");
950
+ var import_jsx_runtime12 = require("react/jsx-runtime");
946
951
  var DefaultFunction = function(param) {
947
952
  var fn = param.fn, runStep = param.runStep;
948
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(FunctionBase, {
953
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(FunctionBase, {
949
954
  fn: fn,
950
955
  runStep: runStep,
951
956
  title: title({
@@ -955,66 +960,66 @@ var DefaultFunction = function(param) {
955
960
  });
956
961
  };
957
962
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/index.tsx
958
- var import_jsx_runtime14 = // @ts-ignore-next-line
963
+ var import_jsx_runtime13 = // @ts-ignore-next-line
959
964
  require("react/jsx-runtime");
960
965
  var Fn = function(param) {
961
966
  var fn = param.fn, runStep = param.runStep;
962
967
  var functionComponentsContext = (0, import_react12.useContext)(FunctionComponentsContext);
963
968
  var Component = functionComponentsContext[fn.name] || DefaultFunction;
964
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Component, {
969
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Component, {
965
970
  fn: fn,
966
971
  runStep: runStep
967
972
  });
968
973
  };
969
974
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/CodeInterpreter/index.tsx
970
- var import_themes11 = require("@radix-ui/themes");
971
- 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");
972
977
  var CodeInterpreter = function(param) {
973
978
  var codeInterpreter = param.codeInterpreter;
974
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_themes11.Flex, {
979
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_themes10.Flex, {
975
980
  children: codeInterpreter.input
976
981
  });
977
982
  };
978
983
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/index.tsx
979
- var import_jsx_runtime16 = require("react/jsx-runtime");
984
+ var import_jsx_runtime15 = require("react/jsx-runtime");
980
985
  var ToolCall = function(param) {
981
986
  var toolCall = param.toolCall, runStep = param.runStep;
982
987
  if (toolCall.type === "function") {
983
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Fn, {
988
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Fn, {
984
989
  fn: toolCall.function,
985
990
  runStep: runStep
986
991
  });
987
992
  }
988
993
  if (toolCall.type === "code_interpreter") {
989
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(CodeInterpreter, {
994
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CodeInterpreter, {
990
995
  codeInterpreter: toolCall.code_interpreter,
991
996
  runStep: runStep
992
997
  });
993
998
  }
994
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_themes12.Flex, {
999
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_themes11.Flex, {
995
1000
  children: toolCall.type
996
1001
  });
997
1002
  };
998
1003
  // src/components/runSteps/RunStep/ToolCalls/Starting/index.tsx
999
- var import_themes13 = require("@radix-ui/themes");
1004
+ var import_themes12 = require("@radix-ui/themes");
1000
1005
  var import_react_icons3 = require("@radix-ui/react-icons");
1001
- var import_jsx_runtime17 = require("react/jsx-runtime");
1006
+ var import_jsx_runtime16 = require("react/jsx-runtime");
1002
1007
  var Starting = function() {
1003
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_themes13.PopoverRoot, {
1008
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_themes12.PopoverRoot, {
1004
1009
  children: [
1005
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(ToolCallBase, {
1010
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(ToolCallBase, {
1006
1011
  children: [
1007
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_icons3.CircleIcon, {}),
1008
- /* @__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, {
1009
1014
  children: "Starting actions"
1010
1015
  })
1011
1016
  ]
1012
1017
  }),
1013
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_themes13.PopoverContent, {
1018
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_themes12.PopoverContent, {
1014
1019
  style: {
1015
1020
  maxHeight: "500px"
1016
1021
  },
1017
- children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_themes13.Text, {
1022
+ children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_themes12.Text, {
1018
1023
  children: "Getting ready to connect to domain API"
1019
1024
  })
1020
1025
  })
@@ -1022,15 +1027,15 @@ var Starting = function() {
1022
1027
  });
1023
1028
  };
1024
1029
  // src/components/runSteps/RunStep/ToolCalls/index.tsx
1025
- var import_jsx_runtime18 = require("react/jsx-runtime");
1030
+ var import_jsx_runtime17 = require("react/jsx-runtime");
1026
1031
  var ToolCalls = function(param) {
1027
1032
  var stepDetails = param.stepDetails, runStep = param.runStep;
1028
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_themes14.Flex, {
1033
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_themes13.Flex, {
1029
1034
  direction: "column",
1030
1035
  children: [
1031
- !stepDetails.tool_calls.length && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Starting, {}),
1036
+ !stepDetails.tool_calls.length && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Starting, {}),
1032
1037
  stepDetails.tool_calls.map(function(toolCall) {
1033
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ToolCall, {
1038
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ToolCall, {
1034
1039
  toolCall: toolCall,
1035
1040
  runStep: runStep
1036
1041
  }, toolCall.id);
@@ -1039,11 +1044,11 @@ var ToolCalls = function(param) {
1039
1044
  });
1040
1045
  };
1041
1046
  // src/components/runSteps/RunStep/index.tsx
1042
- var import_jsx_runtime19 = require("react/jsx-runtime");
1047
+ var import_jsx_runtime18 = require("react/jsx-runtime");
1043
1048
  var RunStep = function(param) {
1044
1049
  var runStep = param.runStep;
1045
1050
  if (runStep.step_details.type === "tool_calls") {
1046
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ToolCalls, {
1051
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ToolCalls, {
1047
1052
  stepDetails: runStep.step_details,
1048
1053
  runStep: runStep
1049
1054
  });
@@ -1051,31 +1056,39 @@ var RunStep = function(param) {
1051
1056
  return null;
1052
1057
  };
1053
1058
  // src/components/runSteps/RunSteps/index.tsx
1054
- var import_jsx_runtime20 = require("react/jsx-runtime");
1059
+ var import_jsx_runtime19 = require("react/jsx-runtime");
1055
1060
  var RunSteps = function(param) {
1056
1061
  var runSteps = param.runSteps;
1057
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_themes15.Flex, {
1062
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_themes14.Flex, {
1058
1063
  direction: "column-reverse",
1059
1064
  children: runSteps.map(function(runStep) {
1060
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(RunStep, {
1065
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(RunStep, {
1061
1066
  runStep: runStep
1062
1067
  }, runStep.id);
1063
1068
  })
1064
1069
  });
1065
1070
  };
1066
- // src/components/threads/Thread/Message/TextContent/index.tsx
1067
- 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
1068
1079
  var import_react_remark = require("react-remark");
1080
+ // src/hooks/markdown/useMarkdownContext/index.ts
1081
+ var import_react15 = require("react");
1069
1082
  // src/contexts/markdown/MarkdownContext/index.ts
1070
- var import_react13 = require("react");
1083
+ var import_react14 = require("react");
1071
1084
  // src/contexts/markdown/MarkdownContext/lib/components/Paragraph.tsx
1072
- var import_themes16 = require("@radix-ui/themes");
1073
- 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");
1074
1087
  var Paragraph = function(param) {
1075
1088
  var children = param.children;
1076
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_themes16.Box, {
1089
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_themes15.Box, {
1077
1090
  pb: "3",
1078
- children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_themes16.Text, {
1091
+ children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_themes15.Text, {
1079
1092
  size: "3",
1080
1093
  style: {
1081
1094
  whiteSpace: "pre-line",
@@ -1086,24 +1099,24 @@ var Paragraph = function(param) {
1086
1099
  });
1087
1100
  };
1088
1101
  // src/contexts/markdown/MarkdownContext/lib/components/Link.tsx
1089
- var import_themes17 = require("@radix-ui/themes");
1090
- 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");
1091
1104
  var Link = function(param) {
1092
1105
  var children = param.children, href = param.href;
1093
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_themes17.Link, {
1106
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_themes16.Link, {
1094
1107
  href: href,
1095
1108
  children: children
1096
1109
  });
1097
1110
  };
1098
1111
  // src/contexts/markdown/MarkdownContext/lib/components/UnorderedList.tsx
1099
- var import_themes18 = require("@radix-ui/themes");
1100
- 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");
1101
1114
  var UnorderedList = function(param) {
1102
1115
  var children = param.children;
1103
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_themes18.Box, {
1116
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_themes17.Box, {
1104
1117
  pb: "3",
1105
1118
  asChild: true,
1106
- children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("ul", {
1119
+ children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("ul", {
1107
1120
  style: {
1108
1121
  listStylePosition: "inside"
1109
1122
  },
@@ -1112,14 +1125,14 @@ var UnorderedList = function(param) {
1112
1125
  });
1113
1126
  };
1114
1127
  // src/contexts/markdown/MarkdownContext/lib/components/OrderedList.tsx
1115
- var import_themes19 = require("@radix-ui/themes");
1116
- 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");
1117
1130
  var OrderedList = function(param) {
1118
1131
  var children = param.children;
1119
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_themes19.Box, {
1132
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_themes18.Box, {
1120
1133
  pb: "3",
1121
1134
  asChild: true,
1122
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("ol", {
1135
+ children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("ol", {
1123
1136
  style: {
1124
1137
  listStylePosition: "inside"
1125
1138
  },
@@ -1128,23 +1141,45 @@ var OrderedList = function(param) {
1128
1141
  });
1129
1142
  };
1130
1143
  // src/contexts/markdown/MarkdownContext/lib/components/ListItem.tsx
1131
- var import_themes20 = require("@radix-ui/themes");
1132
- 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");
1133
1146
  var ListItem = function(param) {
1134
1147
  var children = param.children;
1135
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_themes20.Box, {
1148
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_themes19.Box, {
1136
1149
  pb: "1",
1137
- children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("li", {
1150
+ children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("li", {
1138
1151
  children: children
1139
1152
  })
1140
1153
  });
1141
1154
  };
1142
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
1143
1165
  var import_themes21 = require("@radix-ui/themes");
1144
1166
  var import_jsx_runtime26 = require("react/jsx-runtime");
1145
- var Strong = function(param) {
1167
+ var Pre = function(param) {
1146
1168
  var children = param.children;
1147
- 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, {
1148
1183
  children: children
1149
1184
  });
1150
1185
  };
@@ -1155,26 +1190,32 @@ var components = {
1155
1190
  strong: Strong,
1156
1191
  ul: UnorderedList,
1157
1192
  ol: OrderedList,
1158
- li: ListItem
1193
+ li: ListItem,
1194
+ pre: Pre,
1195
+ code: Code2
1159
1196
  };
1160
1197
  // src/contexts/markdown/MarkdownContext/index.ts
1161
- var MarkdownContext = (0, import_react13.createContext)({
1198
+ var MarkdownContext = (0, import_react14.createContext)({
1162
1199
  remarkPlugins: [],
1163
1200
  rehypeReactOptions: {
1164
1201
  components: components
1165
1202
  }
1166
1203
  });
1167
- // 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
1168
1209
  var TextContent = function(param) {
1169
1210
  var content = param.content;
1170
- var markdownContext = (0, import_react14.useContext)(MarkdownContext);
1211
+ var markdownContext = useMarkdownContext();
1171
1212
  return (0, import_react_remark.useRemarkSync)(content.text.value, markdownContext);
1172
1213
  };
1173
1214
  // src/components/threads/Thread/Message/index.tsx
1174
- var import_jsx_runtime27 = require("react/jsx-runtime");
1215
+ var import_jsx_runtime28 = require("react/jsx-runtime");
1175
1216
  var Message = function(param) {
1176
1217
  var message = param.message;
1177
- var _ref = _sliced_to_array((0, import_react15.useMemo)(function() {
1218
+ var _ref = _sliced_to_array((0, import_react16.useMemo)(function() {
1178
1219
  if (!message.runSteps.length) return [
1179
1220
  [],
1180
1221
  []
@@ -1206,55 +1247,60 @@ var Message = function(param) {
1206
1247
  }, [
1207
1248
  message
1208
1249
  ]), 2), olderRunSteps = _ref[0], laterRunSteps = _ref[1];
1209
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_themes22.Box, {
1210
- children: [
1211
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(RunSteps, {
1212
- runSteps: olderRunSteps
1213
- }),
1214
- message.content.map(function(content, index) {
1215
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_themes22.Box, {
1216
- children: content.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(TextContent, {
1217
- content: content
1218
- })
1219
- }, index);
1220
- }),
1221
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(RunSteps, {
1222
- runSteps: laterRunSteps
1223
- })
1224
- ]
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
+ })
1225
1271
  });
1226
1272
  };
1227
1273
  // src/components/threads/Thread/Messages/Content/MessageGroup/Content/index.tsx
1228
- var import_jsx_runtime28 = require("react/jsx-runtime");
1274
+ var import_jsx_runtime29 = require("react/jsx-runtime");
1229
1275
  var Content2 = function(param) {
1230
1276
  var messageGroup = param.messageGroup;
1231
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_themes23.Flex, {
1277
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_themes24.Flex, {
1232
1278
  direction: "column-reverse",
1233
1279
  children: messageGroup.messages.map(function(message) {
1234
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Message, {
1280
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Message, {
1235
1281
  message: message
1236
1282
  }, message.id);
1237
1283
  })
1238
1284
  });
1239
1285
  };
1240
1286
  // src/components/threads/Thread/Messages/Content/MessageGroup/index.tsx
1241
- var import_jsx_runtime29 = require("react/jsx-runtime");
1287
+ var import_jsx_runtime30 = require("react/jsx-runtime");
1242
1288
  var MessageGroup = function(param) {
1243
1289
  var messageGroup = param.messageGroup;
1244
- var assistantNameContext = (0, import_react16.useContext)(AssistantNameContext);
1245
- 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, {
1246
1292
  children: [
1247
- messageGroup.role === "user" ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_themes24.Avatar, {
1248
- 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, {}),
1249
1295
  size: "1"
1250
- }) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(AssistantAvatar, {}),
1251
- /* @__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, {
1252
1298
  flexGrow: "1",
1253
1299
  children: [
1254
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Name, {
1300
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Name, {
1255
1301
  children: messageGroup.role === "user" ? "You" : assistantNameContext
1256
1302
  }),
1257
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Content2, {
1303
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Content2, {
1258
1304
  messageGroup: messageGroup
1259
1305
  })
1260
1306
  ]
@@ -1263,68 +1309,74 @@ var MessageGroup = function(param) {
1263
1309
  });
1264
1310
  };
1265
1311
  // src/components/threads/Thread/Messages/Content/index.tsx
1266
- var import_jsx_runtime30 = require("react/jsx-runtime");
1312
+ var import_jsx_runtime31 = require("react/jsx-runtime");
1267
1313
  var Content3 = function() {
1268
1314
  var _useMessages = useMessages(), messages2 = _useMessages.messages, isLoading = _useMessages.isLoading, isLoadingError = _useMessages.isLoadingError;
1269
1315
  var _useMessageGroups = useMessageGroups({
1270
1316
  messages: messages2
1271
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
+ ]);
1272
1325
  if (isLoading || isLoadingError) {
1273
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(MessagesSkeleton, {});
1326
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(MessagesSkeleton, {});
1274
1327
  }
1275
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_jsx_runtime30.Fragment, {
1328
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_jsx_runtime31.Fragment, {
1276
1329
  children: messageGroups2.map(function(messageGroup) {
1277
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(MessageGroup, {
1330
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(MessageGroup, {
1278
1331
  messageGroup: messageGroup
1279
1332
  }, messageGroup.id);
1280
1333
  })
1281
1334
  });
1282
1335
  };
1283
1336
  // src/components/threads/Thread/Messages/Progress/index.tsx
1284
- var import_themes27 = require("@radix-ui/themes");
1337
+ var import_themes28 = require("@radix-ui/themes");
1285
1338
  // src/components/skeletons/StartingContentSkeleton/index.tsx
1286
- var import_themes25 = require("@radix-ui/themes");
1287
- 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");
1288
1341
  var StartingContentSkeleton = function() {
1289
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_themes25.Box, {
1290
- flexShrink: "0",
1342
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_themes26.Skeleton, {
1343
+ loading: true,
1291
1344
  mt: "1",
1292
1345
  height: "var(--space-4)",
1293
1346
  width: "var(--space-4)",
1294
1347
  style: {
1295
- animation: "pulse 2s cubic-bezier(.4,0,.6,1) infinite",
1296
- borderRadius: "var(--radius-3)",
1297
- backgroundColor: "var(--gray-12)"
1348
+ borderRadius: "var(--radius-6)",
1349
+ flexShrink: 0
1298
1350
  }
1299
1351
  });
1300
1352
  };
1301
1353
  // src/components/skeletons/StartingSkeleton/index.tsx
1302
- var import_react17 = require("react");
1303
- var import_themes26 = require("@radix-ui/themes");
1304
- 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");
1305
1357
  var StartingSkeleton = function(param) {
1306
1358
  var children = param.children;
1307
- var assistantNameContext = (0, import_react17.useContext)(AssistantNameContext);
1308
- 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, {
1309
1361
  children: [
1310
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(AssistantAvatar, {}),
1311
- /* @__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, {
1312
1364
  children: [
1313
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Name, {
1365
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Name, {
1314
1366
  children: assistantNameContext
1315
1367
  }),
1316
1368
  children,
1317
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(StartingContentSkeleton, {})
1369
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(StartingContentSkeleton, {})
1318
1370
  ]
1319
1371
  })
1320
1372
  ]
1321
1373
  });
1322
1374
  };
1323
1375
  // src/hooks/messages/useLatestMessage/index.ts
1324
- var import_react18 = require("react");
1376
+ var import_react20 = require("react");
1325
1377
  var useLatestMessage = function() {
1326
1378
  var props = useMessages();
1327
- return (0, import_react18.useMemo)(function() {
1379
+ return (0, import_react20.useMemo)(function() {
1328
1380
  return _object_spread_props(_object_spread({}, props), {
1329
1381
  latestMessage: props.messages[0] || null
1330
1382
  });
@@ -1333,12 +1385,12 @@ var useLatestMessage = function() {
1333
1385
  ]);
1334
1386
  };
1335
1387
  // src/hooks/runs/useIsRunActive/index.tsx
1336
- var import_react21 = require("react");
1388
+ var import_react25 = require("react");
1337
1389
  var import_react_query4 = require("@tanstack/react-query");
1338
1390
  // src/hooks/runs/useLatestRun/index.ts
1339
- var import_react20 = require("react");
1391
+ var import_react22 = require("react");
1340
1392
  // src/hooks/runs/useRuns/index.tsx
1341
- var import_react19 = require("react");
1393
+ var import_react21 = require("react");
1342
1394
  var import_react_query3 = require("@tanstack/react-query");
1343
1395
  // src/lib/runs/runsQueryOptions.ts
1344
1396
  var runsQueryOptions = function(param) {
@@ -1371,7 +1423,7 @@ var useRuns = function() {
1371
1423
  threadContext: threadContext,
1372
1424
  superinterfaceContext: superinterfaceContext
1373
1425
  }));
1374
- return (0, import_react19.useMemo)(function() {
1426
+ return (0, import_react21.useMemo)(function() {
1375
1427
  return _object_spread_props(_object_spread({}, props), {
1376
1428
  // @ts-ignore-next-line
1377
1429
  runs: getRuns({
@@ -1385,7 +1437,7 @@ var useRuns = function() {
1385
1437
  // src/hooks/runs/useLatestRun/index.ts
1386
1438
  var useLatestRun = function() {
1387
1439
  var props = useRuns();
1388
- return (0, import_react20.useMemo)(function() {
1440
+ return (0, import_react22.useMemo)(function() {
1389
1441
  return _object_spread_props(_object_spread({}, props), {
1390
1442
  latestRun: props.runs[0]
1391
1443
  });
@@ -1406,6 +1458,18 @@ var isRunEditingMessage = function(param) {
1406
1458
  });
1407
1459
  return !hasContent;
1408
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
+ };
1409
1473
  // src/hooks/runs/useIsRunActive/index.tsx
1410
1474
  var progressStatuses = [
1411
1475
  "queued",
@@ -1419,8 +1483,9 @@ var stoppedStatuses = [
1419
1483
  "failed"
1420
1484
  ];
1421
1485
  var isRunActive = function(param) {
1422
- var latestRunProps = param.latestRunProps, latestMessageProps = param.latestMessageProps, isMutating = param.isMutating;
1486
+ var pollingContext = param.pollingContext, latestRunProps = param.latestRunProps, latestMessageProps = param.latestMessageProps, isMutating = param.isMutating;
1423
1487
  var _latestMessageProps_latestMessage_metadata, _latestMessageProps_latestMessage;
1488
+ if (pollingContext.isPollRefetching) return true;
1424
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;
1425
1490
  if (isMutating) return true;
1426
1491
  if (!latestRunProps.latestRun) return false;
@@ -1434,6 +1499,7 @@ var useIsRunActive = function() {
1434
1499
  var latestRunProps = useLatestRun();
1435
1500
  var latestMessageProps = useLatestMessage();
1436
1501
  var threadContext = useSuperinterfaceContext();
1502
+ var pollingContext = usePollingContext();
1437
1503
  var isMutatingCreateRun = (0, import_react_query4.useIsMutating)({
1438
1504
  mutationKey: [
1439
1505
  "createRun",
@@ -1452,9 +1518,10 @@ var useIsRunActive = function() {
1452
1518
  threadContext.variables
1453
1519
  ]
1454
1520
  });
1455
- return (0, import_react21.useMemo)(function() {
1521
+ return (0, import_react25.useMemo)(function() {
1456
1522
  return _object_spread_props(_object_spread({}, latestRunProps), {
1457
1523
  isRunActive: isRunActive({
1524
+ pollingContext: pollingContext,
1458
1525
  latestRunProps: latestRunProps,
1459
1526
  latestMessageProps: latestMessageProps,
1460
1527
  isMutating: isMutatingCreateRun > 0 || isMutatingCreateMessage > 0 || isMutatingCreateHandleAction > 0
@@ -1463,42 +1530,43 @@ var useIsRunActive = function() {
1463
1530
  }, [
1464
1531
  latestRunProps,
1465
1532
  latestMessageProps,
1533
+ pollingContext,
1466
1534
  isMutatingCreateRun,
1467
1535
  isMutatingCreateMessage,
1468
1536
  isMutatingCreateHandleAction
1469
1537
  ]);
1470
1538
  };
1471
1539
  // src/components/threads/Thread/Messages/Progress/index.tsx
1472
- var import_jsx_runtime33 = require("react/jsx-runtime");
1540
+ var import_jsx_runtime34 = require("react/jsx-runtime");
1473
1541
  var Progress = function() {
1474
1542
  var _useIsRunActive = useIsRunActive(), isRunActive2 = _useIsRunActive.isRunActive;
1475
1543
  var latestMessage = useLatestMessage().latestMessage;
1476
1544
  if (!latestMessage) return null;
1477
1545
  if (!isRunActive2) return null;
1478
1546
  if (latestMessage.role === "user") {
1479
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(StartingSkeleton, {});
1547
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(StartingSkeleton, {});
1480
1548
  }
1481
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(MessageGroupBase, {
1549
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(MessageGroupBase, {
1482
1550
  children: [
1483
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_themes27.Box, {
1551
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_themes28.Box, {
1484
1552
  pl: "5"
1485
1553
  }),
1486
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(StartingContentSkeleton, {})
1554
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(StartingContentSkeleton, {})
1487
1555
  ]
1488
1556
  });
1489
1557
  };
1490
1558
  // src/components/threads/Thread/Messages/Root/index.tsx
1491
- var import_themes28 = require("@radix-ui/themes");
1559
+ var import_themes29 = require("@radix-ui/themes");
1492
1560
  // src/hooks/misc/useInfiniteScroll/index.tsx
1493
- var import_react23 = require("react");
1561
+ var import_react27 = require("react");
1494
1562
  var import_react_intersection_observer = require("react-intersection-observer");
1495
1563
  // src/hooks/misc/useThrottledEffect/index.tsx
1496
1564
  var import_lodash5 = __toESM(require("lodash"), 1);
1497
- var import_react22 = require("react");
1565
+ var import_react26 = require("react");
1498
1566
  var useThrottledEffect = function(cb, delay, additionalDeps) {
1499
1567
  var _cbRef;
1500
- var cbRef = (0, import_react22.useRef)(cb);
1501
- 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() {
1502
1570
  for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1503
1571
  args[_key] = arguments[_key];
1504
1572
  }
@@ -1509,17 +1577,17 @@ var useThrottledEffect = function(cb, delay, additionalDeps) {
1509
1577
  }), [
1510
1578
  delay
1511
1579
  ]);
1512
- (0, import_react22.useEffect)(function() {
1580
+ (0, import_react26.useEffect)(function() {
1513
1581
  cbRef.current = cb;
1514
1582
  });
1515
- (0, import_react22.useEffect)(throttledCb, [
1583
+ (0, import_react26.useEffect)(throttledCb, [
1516
1584
  throttledCb
1517
1585
  ].concat(_to_consumable_array(additionalDeps)));
1518
1586
  };
1519
1587
  // src/hooks/misc/useInfiniteScroll/index.tsx
1520
1588
  var useInfiniteScroll = function(param) {
1521
1589
  var isFetchingNextPage = param.isFetchingNextPage, hasNextPage = param.hasNextPage, fetchNextPage = param.fetchNextPage;
1522
- var containerRef = (0, import_react23.useRef)(null);
1590
+ var containerRef = (0, import_react27.useRef)(null);
1523
1591
  var _ref = (0, import_react_intersection_observer.useInView)({
1524
1592
  root: containerRef.current,
1525
1593
  rootMargin: "0px",
@@ -1544,8 +1612,9 @@ var useInfiniteScroll = function(param) {
1544
1612
  };
1545
1613
  };
1546
1614
  // src/hooks/runs/useManageRuns/index.tsx
1615
+ var import_sonner3 = require("sonner");
1547
1616
  var import_react_query6 = require("@tanstack/react-query");
1548
- var import_react24 = require("react");
1617
+ var import_react28 = require("react");
1549
1618
  // src/hooks/runs/useCreateRun/index.ts
1550
1619
  var import_radash4 = require("radash");
1551
1620
  var import_react_query5 = require("@tanstack/react-query");
@@ -1555,7 +1624,7 @@ var mutationOptions = function(param) {
1555
1624
  var mutationKey = _to_consumable_array(mutationKeyBase).concat([
1556
1625
  threadContext.variables
1557
1626
  ]);
1558
- return _object_spread(_object_spread_props(_object_spread({
1627
+ return _object_spread_props(_object_spread({
1559
1628
  mutationFn: function(variables) {
1560
1629
  return fetch("".concat(superinterfaceContext.baseUrl).concat(path), _object_spread({
1561
1630
  method: "POST",
@@ -1573,7 +1642,7 @@ var mutationOptions = function(param) {
1573
1642
  case 0:
1574
1643
  if (!(response.status !== 200)) return [
1575
1644
  3,
1576
- 4
1645
+ 5
1577
1646
  ];
1578
1647
  _state.label = 1;
1579
1648
  case 1:
@@ -1583,17 +1652,23 @@ var mutationOptions = function(param) {
1583
1652
  ,
1584
1653
  4
1585
1654
  ]);
1655
+ console.log("response", response);
1586
1656
  return [
1587
1657
  4,
1588
1658
  response.json()
1589
1659
  ];
1590
1660
  case 2:
1591
1661
  errorResponse = _state.sent();
1592
- throw new Error(errorResponse.error);
1662
+ return [
1663
+ 3,
1664
+ 4
1665
+ ];
1593
1666
  case 3:
1594
1667
  error = _state.sent();
1595
1668
  throw new Error("Failed to fetch");
1596
1669
  case 4:
1670
+ throw new Error(errorResponse.error);
1671
+ case 5:
1597
1672
  return [
1598
1673
  2,
1599
1674
  response.json()
@@ -1606,9 +1681,9 @@ var mutationOptions = function(param) {
1606
1681
  };
1607
1682
  }());
1608
1683
  }
1609
- }, queryClient.getMutationDefaults(mutationKey)), {
1684
+ }, threadContext.defaultOptions.mutations, queryClient.getMutationDefaults(mutationKey)), {
1610
1685
  mutationKey: mutationKey
1611
- }), threadContext.defaultOptions.mutations);
1686
+ });
1612
1687
  };
1613
1688
  // src/hooks/runs/useCreateRun/lib/onSuccess.ts
1614
1689
  var onSuccess = function(param) {
@@ -1827,7 +1902,22 @@ var useManageRuns = function() {
1827
1902
  var latestMessageProps = useLatestMessage();
1828
1903
  var createRunProps = useCreateRun();
1829
1904
  var threadContext = useSuperinterfaceContext();
1830
- (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() {
1831
1921
  if (createRunProps.isPending) return;
1832
1922
  if (latestRunProps.isFetching) return;
1833
1923
  if (latestMessageProps.isFetching) return;
@@ -1903,19 +1993,35 @@ var refetch = function() {
1903
1993
  var usePolling = function() {
1904
1994
  var threadContext = useSuperinterfaceContext();
1905
1995
  var queryClient = (0, import_react_query7.useQueryClient)();
1996
+ var setIsPollRefetching = usePollingContext().setIsPollRefetching;
1906
1997
  var isRunActiveProps = useIsRunActive();
1907
- (0, import_react_use.useInterval)(function() {
1908
- refetch({
1909
- queryClient: queryClient,
1910
- 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
+ }
1911
2018
  });
1912
- console.log("poll refetched");
1913
- }, isRunActiveProps.isRunActive ? 3e3 : null);
2019
+ }), isRunActiveProps.isRunActive ? 3e3 : null);
1914
2020
  return null;
1915
2021
  };
1916
2022
  // src/hooks/actions/useManageActions/index.tsx
1917
2023
  var import_react_query9 = require("@tanstack/react-query");
1918
- var import_react25 = require("react");
2024
+ var import_react29 = require("react");
1919
2025
  // src/hooks/actions/useHandleAction/index.tsx
1920
2026
  var import_radash5 = require("radash");
1921
2027
  var import_react_query8 = require("@tanstack/react-query");
@@ -1988,7 +2094,7 @@ var useManageActions = function() {
1988
2094
  var threadContext = useSuperinterfaceContext();
1989
2095
  var latestRunProps = useLatestRun();
1990
2096
  var handleActionProps = useHandleAction();
1991
- (0, import_react25.useEffect)(function() {
2097
+ (0, import_react29.useEffect)(function() {
1992
2098
  if (handleActionProps.isPending) return;
1993
2099
  if (latestRunProps.isFetching) return;
1994
2100
  if (!latestRunProps.latestRun) return;
@@ -2020,7 +2126,7 @@ var useLifecycle = function() {
2020
2126
  return null;
2021
2127
  };
2022
2128
  // src/components/threads/Thread/Messages/Root/index.tsx
2023
- var import_jsx_runtime34 = require("react/jsx-runtime");
2129
+ var import_jsx_runtime35 = require("react/jsx-runtime");
2024
2130
  var Root = function(param) {
2025
2131
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2026
2132
  var _useMessages = useMessages(), isFetchingNextPage = _useMessages.isFetchingNextPage, hasNextPage = _useMessages.hasNextPage, fetchNextPage = _useMessages.fetchNextPage;
@@ -2030,7 +2136,7 @@ var Root = function(param) {
2030
2136
  hasNextPage: hasNextPage,
2031
2137
  fetchNextPage: fetchNextPage
2032
2138
  }), containerRef = _useInfiniteScroll.containerRef, loaderRef = _useInfiniteScroll.loaderRef;
2033
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_themes28.Flex, {
2139
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_themes29.Flex, {
2034
2140
  ref: containerRef,
2035
2141
  direction: "column-reverse",
2036
2142
  flexGrow: "1",
@@ -2039,10 +2145,10 @@ var Root = function(param) {
2039
2145
  }),
2040
2146
  children: [
2041
2147
  children,
2042
- hasNextPage && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_themes28.Flex, {
2148
+ hasNextPage && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_themes29.Flex, {
2043
2149
  ref: loaderRef
2044
2150
  }),
2045
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_themes28.Flex, {
2151
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_themes29.Flex, {
2046
2152
  flexShrink: "0",
2047
2153
  flexGrow: "1"
2048
2154
  })
@@ -2050,30 +2156,30 @@ var Root = function(param) {
2050
2156
  });
2051
2157
  };
2052
2158
  // src/components/threads/Thread/Messages/NextPageSkeleton.tsx
2053
- var import_jsx_runtime35 = require("react/jsx-runtime");
2159
+ var import_jsx_runtime36 = require("react/jsx-runtime");
2054
2160
  var NextPageSkeleton = function() {
2055
2161
  var hasNextPage = useMessages().hasNextPage;
2056
2162
  if (!hasNextPage) {
2057
2163
  return null;
2058
2164
  }
2059
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(MessagesSkeleton, {});
2165
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(MessagesSkeleton, {});
2060
2166
  };
2061
2167
  // src/components/threads/Thread/Messages/index.tsx
2062
- var import_jsx_runtime36 = require("react/jsx-runtime");
2168
+ var import_jsx_runtime37 = require("react/jsx-runtime");
2063
2169
  var Messages = function(param) {
2064
2170
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2065
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Root, {
2171
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Root, {
2066
2172
  style: style,
2067
2173
  children: [
2068
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_themes29.Flex, {
2174
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_themes30.Flex, {
2069
2175
  flexShrink: "0",
2070
2176
  height: "var(--space-3)"
2071
2177
  }),
2072
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Progress, {}),
2178
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Progress, {}),
2073
2179
  children,
2074
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Content3, {}),
2075
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(NextPageSkeleton, {}),
2076
- /* @__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, {
2077
2183
  flexShrink: "0",
2078
2184
  flexGrow: "1"
2079
2185
  })
@@ -2084,59 +2190,38 @@ Messages.Root = Root;
2084
2190
  Messages.Message = Message;
2085
2191
  Messages.NextPageSkeleton = NextPageSkeleton;
2086
2192
  // src/components/threads/Thread/MessageForm/index.tsx
2087
- var import_themes32 = require("@radix-ui/themes");
2193
+ var import_themes33 = require("@radix-ui/themes");
2088
2194
  // src/components/threads/Thread/MessageForm/Submit/index.tsx
2089
2195
  var import_react_icons5 = require("@radix-ui/react-icons");
2090
- var import_themes30 = require("@radix-ui/themes");
2091
- // src/components/spinners/Spinner/index.tsx
2092
- var import_jsx_runtime37 = require("react/jsx-runtime");
2093
- var Spinner = function(props) {
2094
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("svg", _object_spread_props(_object_spread({
2095
- xmlns: "http://www.w3.org/2000/svg",
2096
- width: "24",
2097
- height: "24",
2098
- viewBox: "0 0 24 24",
2099
- fill: "none",
2100
- stroke: "currentColor",
2101
- strokeWidth: "2",
2102
- strokeLinecap: "round",
2103
- strokeLinejoin: "round",
2104
- style: {
2105
- height: "var(--space-4)",
2106
- width: "var(--space-4)",
2107
- animation: "spin 1s linear infinite"
2108
- }
2109
- }, props), {
2110
- children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", {
2111
- d: "M21 12a9 9 0 1 1-6.219-8.56"
2112
- })
2113
- }));
2114
- };
2196
+ var import_themes31 = require("@radix-ui/themes");
2115
2197
  // src/hooks/messages/useMessageFormContext/index.ts
2116
- var import_react27 = require("react");
2198
+ var import_react31 = require("react");
2117
2199
  // src/contexts/messages/MessageFormContext/index.ts
2118
- var import_react26 = require("react");
2119
- var MessageFormContext = (0, import_react26.createContext)({
2200
+ var import_react30 = require("react");
2201
+ var MessageFormContext = (0, import_react30.createContext)({
2120
2202
  isDisabled: false,
2121
2203
  isLoading: false
2122
2204
  });
2123
2205
  // src/hooks/messages/useMessageFormContext/index.ts
2124
2206
  var useMessageFormContext = function() {
2125
- return (0, import_react27.useContext)(MessageFormContext);
2207
+ return (0, import_react31.useContext)(MessageFormContext);
2126
2208
  };
2127
2209
  // src/components/threads/Thread/MessageForm/Submit/index.tsx
2128
2210
  var import_jsx_runtime38 = require("react/jsx-runtime");
2129
2211
  var Submit = function() {
2130
2212
  var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
2131
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_themes30.Button, {
2213
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_themes31.Button, {
2132
2214
  type: "submit",
2133
2215
  radius: "large",
2134
- disabled: isDisabled,
2135
- 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
+ })
2136
2221
  });
2137
2222
  };
2138
2223
  // src/components/threads/Thread/MessageForm/Root/index.tsx
2139
- var import_react28 = require("react");
2224
+ var import_react32 = require("react");
2140
2225
  var import_react_hook_form = require("react-hook-form");
2141
2226
  // src/hooks/messages/useCreateMessage/index.ts
2142
2227
  var import_radash8 = require("radash");
@@ -2323,7 +2408,7 @@ var Root2 = function(param) {
2323
2408
  var formProps = (0, import_react_hook_form.useForm)(formOptions);
2324
2409
  var handleSubmit = formProps.handleSubmit, isSubmitting = formProps.formState.isSubmitting, reset = formProps.reset;
2325
2410
  var _useIsRunActive = useIsRunActive(), isRunActive2 = _useIsRunActive.isRunActive;
2326
- var isLoading = (0, import_react28.useMemo)(function() {
2411
+ var isLoading = (0, import_react32.useMemo)(function() {
2327
2412
  return isRunActive2 || isSubmitting;
2328
2413
  }, [
2329
2414
  isRunActive2,
@@ -2355,7 +2440,7 @@ var Root2 = function(param) {
2355
2440
  };
2356
2441
  }();
2357
2442
  var latestMessage = useLatestMessage().latestMessage;
2358
- var isDisabled = (0, import_react28.useMemo)(function() {
2443
+ var isDisabled = (0, import_react32.useMemo)(function() {
2359
2444
  var // @ts-ignore-next-line
2360
2445
  _latestMessage_metadata;
2361
2446
  return latestMessage === null || latestMessage === void 0 ? void 0 : (_latestMessage_metadata = latestMessage.metadata) === null || _latestMessage_metadata === void 0 ? void 0 : _latestMessage_metadata.isBlocking;
@@ -2378,46 +2463,56 @@ var Root2 = function(param) {
2378
2463
  };
2379
2464
  // src/components/threads/Thread/MessageForm/Field/index.tsx
2380
2465
  var import_react_use2 = require("react-use");
2381
- var import_react30 = require("react");
2466
+ var import_react34 = require("react");
2382
2467
  // src/components/textareas/TextareaBase/index.tsx
2383
- var import_react29 = require("react");
2468
+ var import_react33 = require("react");
2384
2469
  var import_react_textarea_autosize = __toESM(require("react-textarea-autosize"), 1);
2385
2470
  var import_jsx_runtime40 = require("react/jsx-runtime");
2386
2471
  var UPSCALE_RATIO = 16 / 14;
2387
- var TextareaBase = (0, import_react29.forwardRef)(function TextareaBase2(props, ref) {
2388
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_react_textarea_autosize.default, _object_spread({
2389
- ref: ref,
2390
- className: "textarea-base",
2391
- style: {
2392
- resize: "none",
2393
- fontSize: "".concat(14 * UPSCALE_RATIO, "px"),
2394
- lineHeight: "".concat(24 * UPSCALE_RATIO, "px"),
2395
- transform: "scale(".concat(1 / UPSCALE_RATIO, ")"),
2396
- margin: "0 ".concat((-100 * UPSCALE_RATIO + 100) / 2, "%"),
2397
- width: "".concat(100 * UPSCALE_RATIO, "%"),
2398
- maxWidth: "".concat(100 * UPSCALE_RATIO, "%"),
2399
- flexGrow: 1,
2400
- display: "flex"
2401
- }
2402
- }, 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: "rt-reset 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
+ });
2403
2498
  });
2404
2499
  // src/components/threads/Thread/MessageForm/Field/index.tsx
2405
2500
  var import_react_hook_form2 = require("react-hook-form");
2406
- var import_themes31 = require("@radix-ui/themes");
2501
+ var import_themes32 = require("@radix-ui/themes");
2407
2502
  var import_jsx_runtime41 = require("react/jsx-runtime");
2408
2503
  var Root3 = function(param) {
2409
2504
  var children = param.children;
2410
2505
  var _ref = (0, import_react_hook_form2.useFormContext)(), errors = _ref.formState.errors;
2411
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes31.Container, {
2506
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes32.Container, {
2412
2507
  size: "2",
2413
2508
  flexGrow: "0",
2414
- children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes31.Flex, {
2509
+ children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes32.Flex, {
2415
2510
  direction: "column",
2416
2511
  flexShrink: "0",
2417
- children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes31.Flex, {
2512
+ children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes32.Flex, {
2418
2513
  direction: "column",
2419
2514
  flexShrink: "0",
2420
- children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes31.Flex, {
2515
+ children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes32.Flex, {
2421
2516
  style: _object_spread({
2422
2517
  borderRadius: "var(--radius-2)",
2423
2518
  borderWidth: "1px",
@@ -2435,19 +2530,19 @@ var Root3 = function(param) {
2435
2530
  });
2436
2531
  };
2437
2532
  var Control = function() {
2438
- var assistantNameContext = (0, import_react30.useContext)(AssistantNameContext);
2533
+ var assistantNameContext = (0, import_react34.useContext)(AssistantNameContext);
2439
2534
  var register = (0, import_react_hook_form2.useFormContext)().register;
2440
2535
  var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
2441
- var isSubmitDisabled = (0, import_react30.useMemo)(function() {
2536
+ var isSubmitDisabled = (0, import_react34.useMemo)(function() {
2442
2537
  return isDisabled || isLoading;
2443
2538
  }, [
2444
2539
  isDisabled,
2445
2540
  isLoading
2446
2541
  ]);
2447
2542
  var isDisabledPrevious = (0, import_react_use2.usePrevious)(isDisabled);
2448
- var textareaRef = (0, import_react30.useRef)(null);
2543
+ var textareaRef = (0, import_react34.useRef)(null);
2449
2544
  var textareaProps = register("content");
2450
- (0, import_react30.useEffect)(function() {
2545
+ (0, import_react34.useEffect)(function() {
2451
2546
  if (isDisabled) return;
2452
2547
  if (!isDisabledPrevious) return;
2453
2548
  if (!textareaRef.current) return;
@@ -2486,18 +2581,18 @@ var MessageForm = function() {
2486
2581
  return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Root2, {
2487
2582
  children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Field.Root, {
2488
2583
  children: [
2489
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes32.Text, {
2584
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes33.Text, {
2490
2585
  size: "2",
2491
2586
  style: {
2492
2587
  flexGrow: 1
2493
2588
  },
2494
- children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes32.Flex, {
2589
+ children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes33.Flex, {
2495
2590
  flexGrow: "1",
2496
2591
  direction: "column",
2497
2592
  children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Field.Control, {})
2498
2593
  })
2499
2594
  }),
2500
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes32.Flex, {
2595
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes33.Flex, {
2501
2596
  flexShrink: "0",
2502
2597
  align: "end",
2503
2598
  children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Submit, {})
@@ -2510,14 +2605,36 @@ MessageForm.Root = Root2;
2510
2605
  MessageForm.Field = Field;
2511
2606
  MessageForm.Submit = Submit;
2512
2607
  // src/components/threads/Thread/Root/index.tsx
2513
- 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");
2514
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");
2515
2632
  var Root4 = function(_param) {
2516
2633
  var children = _param.children, rest = _object_without_properties(_param, [
2517
2634
  "children"
2518
2635
  ]);
2519
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(SuperinterfaceProvider, _object_spread_props(_object_spread({}, rest), {
2520
- 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, {
2521
2638
  direction: "column",
2522
2639
  flexGrow: "1",
2523
2640
  children: children
@@ -2525,40 +2642,45 @@ var Root4 = function(_param) {
2525
2642
  }));
2526
2643
  };
2527
2644
  // src/components/threads/Thread/index.tsx
2528
- var import_jsx_runtime44 = require("react/jsx-runtime");
2645
+ var import_jsx_runtime46 = require("react/jsx-runtime");
2529
2646
  var Thread = function(props) {
2530
- 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), {
2531
2648
  children: [
2532
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Messages, {}),
2533
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(MessageForm, {})
2649
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Messages, {}),
2650
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(MessageForm, {})
2534
2651
  ]
2535
2652
  }));
2536
2653
  };
2537
2654
  Thread.Root = Root4;
2538
2655
  Thread.Messages = Messages;
2539
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
+ };
2540
2662
  // src/components/threads/ThreadDialog/Root/index.tsx
2541
- var import_themes34 = require("@radix-ui/themes");
2663
+ var import_themes35 = require("@radix-ui/themes");
2542
2664
  // src/components/threads/ThreadDialog/Provider/index.tsx
2543
- var import_react33 = require("react");
2665
+ var import_react39 = require("react");
2544
2666
  // src/contexts/threads/ThreadDialogContext/index.ts
2545
- var import_react31 = require("react");
2546
- var ThreadDialogContext = (0, import_react31.createContext)({
2667
+ var import_react37 = require("react");
2668
+ var ThreadDialogContext = (0, import_react37.createContext)({
2547
2669
  isOpen: false,
2548
2670
  setIsOpen: function() {}
2549
2671
  });
2550
2672
  // src/hooks/threads/useThreadDialogContext/index.ts
2551
- var import_react32 = require("react");
2673
+ var import_react38 = require("react");
2552
2674
  var useThreadDialogContext = function() {
2553
- return (0, import_react32.useContext)(ThreadDialogContext);
2675
+ return (0, import_react38.useContext)(ThreadDialogContext);
2554
2676
  };
2555
2677
  // src/components/threads/ThreadDialog/Provider/index.tsx
2556
- var import_jsx_runtime45 = require("react/jsx-runtime");
2557
- var Provider = function(param) {
2678
+ var import_jsx_runtime47 = require("react/jsx-runtime");
2679
+ var Provider3 = function(param) {
2558
2680
  var children = param.children;
2559
2681
  var threadDialogContext = useThreadDialogContext();
2560
- var _ref = _sliced_to_array((0, import_react33.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
2561
- 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, {
2562
2684
  value: {
2563
2685
  isOpen: isOpen,
2564
2686
  setIsOpen: setIsOpen
@@ -2567,11 +2689,11 @@ var Provider = function(param) {
2567
2689
  });
2568
2690
  };
2569
2691
  // src/components/threads/ThreadDialog/Root/index.tsx
2570
- var import_jsx_runtime46 = require("react/jsx-runtime");
2692
+ var import_jsx_runtime48 = require("react/jsx-runtime");
2571
2693
  var Root5 = function(param) {
2572
2694
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2573
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Provider, {
2574
- 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, {
2575
2697
  direction: "column",
2576
2698
  justify: "end",
2577
2699
  align: "end",
@@ -2587,12 +2709,12 @@ var Root5 = function(param) {
2587
2709
  });
2588
2710
  };
2589
2711
  // src/components/threads/ThreadDialog/Trigger/index.tsx
2590
- var import_themes35 = require("@radix-ui/themes");
2591
- 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");
2592
2714
  var Trigger = function(param) {
2593
2715
  var children = param.children;
2594
2716
  var setIsOpen = useThreadDialogContext().setIsOpen;
2595
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_themes35.Flex, {
2717
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes36.Flex, {
2596
2718
  onClick: function() {
2597
2719
  return setIsOpen(function(prev) {
2598
2720
  return !prev;
@@ -2604,24 +2726,24 @@ var Trigger = function(param) {
2604
2726
  });
2605
2727
  };
2606
2728
  // src/components/threads/ThreadDialog/Button/index.tsx
2607
- var import_themes36 = require("@radix-ui/themes");
2729
+ var import_themes37 = require("@radix-ui/themes");
2608
2730
  var import_react_icons6 = require("@radix-ui/react-icons");
2609
- var import_jsx_runtime48 = require("react/jsx-runtime");
2731
+ var import_jsx_runtime50 = require("react/jsx-runtime");
2610
2732
  var Button3 = function() {
2611
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes36.IconButton, {
2733
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_themes37.IconButton, {
2612
2734
  size: "4",
2613
2735
  radius: "full",
2614
- children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_react_icons6.ChatBubbleIcon, {})
2736
+ children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_react_icons6.ChatBubbleIcon, {})
2615
2737
  });
2616
2738
  };
2617
2739
  // src/components/threads/ThreadDialog/Content/index.tsx
2618
- var import_themes37 = require("@radix-ui/themes");
2619
- 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");
2620
2742
  var Root6 = function(param) {
2621
2743
  var children = param.children;
2622
2744
  var isOpen = useThreadDialogContext().isOpen;
2623
2745
  if (!isOpen) return null;
2624
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes37.Card, {
2746
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes38.Card, {
2625
2747
  mb: "3",
2626
2748
  style: {
2627
2749
  display: "flex",
@@ -2630,7 +2752,7 @@ var Root6 = function(param) {
2630
2752
  maxWidth: "400px",
2631
2753
  maxHeight: "720px"
2632
2754
  },
2633
- children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes37.Inset, {
2755
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes38.Inset, {
2634
2756
  clip: "padding-box",
2635
2757
  side: "all",
2636
2758
  pb: "current",
@@ -2643,21 +2765,23 @@ var Root6 = function(param) {
2643
2765
  });
2644
2766
  };
2645
2767
  var Content4 = function() {
2646
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Root6, {
2647
- 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, {
2648
2770
  children: [
2649
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Thread.Messages, {
2771
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Thread.Messages, {
2650
2772
  style: {
2651
- padding: "var(--space-5)"
2773
+ paddingTop: "var(--space-5)",
2774
+ paddingRight: "var(--space-5)",
2775
+ paddingLeft: "var(--space-5)"
2652
2776
  }
2653
2777
  }),
2654
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes37.Flex, {
2778
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes38.Flex, {
2655
2779
  direction: "column",
2656
2780
  pl: "5",
2657
2781
  pr: "5",
2658
2782
  pb: "3",
2659
2783
  flexShrink: "0",
2660
- children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Thread.MessageForm, {})
2784
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Thread.MessageForm, {})
2661
2785
  })
2662
2786
  ]
2663
2787
  })
@@ -2665,13 +2789,13 @@ var Content4 = function() {
2665
2789
  };
2666
2790
  Content4.Root = Root6;
2667
2791
  // src/components/threads/ThreadDialog/index.tsx
2668
- var import_jsx_runtime50 = require("react/jsx-runtime");
2792
+ var import_jsx_runtime52 = require("react/jsx-runtime");
2669
2793
  var ThreadDialog = function() {
2670
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Root5, {
2794
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Root5, {
2671
2795
  children: [
2672
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Content4, {}),
2673
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Trigger, {
2674
- 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, {})
2675
2799
  })
2676
2800
  ]
2677
2801
  });
@@ -2682,12 +2806,10 @@ ThreadDialog.Button = Button3;
2682
2806
  ThreadDialog.Content = Content4;
2683
2807
  // src/components/threads/AudioThread/Root/index.tsx
2684
2808
  var import_runtime = require("regenerator-runtime/runtime");
2685
- var import_react38 = require("react");
2686
- var import_themes38 = require("@radix-ui/themes");
2687
- var import_react_speech_recognition = __toESM(require("react-speech-recognition"), 1);
2809
+ var import_themes39 = require("@radix-ui/themes");
2688
2810
  // src/contexts/threads/AudioThreadContext/index.ts
2689
- var import_react34 = require("react");
2690
- var AudioThreadContext = (0, import_react34.createContext)({
2811
+ var import_react40 = require("react");
2812
+ var AudioThreadContext = (0, import_react40.createContext)({
2691
2813
  status: "idle",
2692
2814
  recorderProps: {
2693
2815
  status: "idle",
@@ -2744,12 +2866,22 @@ var AudioThreadContext = (0, import_react34.createContext)({
2744
2866
  });
2745
2867
  // src/components/threads/AudioThread/Root/index.tsx
2746
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
+ };
2747
2879
  // src/hooks/audioThreads/useStatus/index.ts
2748
- var import_react35 = require("react");
2880
+ var import_react41 = require("react");
2749
2881
  var useStatus = function(param) {
2750
2882
  var messageAudioProps = param.messageAudioProps, recorderProps = param.recorderProps, createMessageProps = param.createMessageProps;
2751
2883
  var isRunActiveProps = useIsRunActive();
2752
- var status = (0, import_react35.useMemo)(function() {
2884
+ var status = (0, import_react41.useMemo)(function() {
2753
2885
  if (recorderProps.status === "recording") return "recording";
2754
2886
  if (createMessageProps.isPending) return "creatingMessage";
2755
2887
  if (isRunActiveProps.isRunActive) return "runActive";
@@ -2772,27 +2904,21 @@ var useStatus = function(param) {
2772
2904
  // src/hooks/audioThreads/useRecorder/index.ts
2773
2905
  var import_dayjs = __toESM(require("dayjs"), 1);
2774
2906
  var import_use_audio_capture = require("use-audio-capture");
2775
- var import_react36 = require("react");
2907
+ var import_react42 = require("react");
2776
2908
  var import_react_use_audio_player = require("react-use-audio-player");
2777
2909
  var import_react_use3 = require("react-use");
2778
2910
  var useRecorder = function(param) {
2779
2911
  var isStopOnSilence = param.isStopOnSilence, onStart = param.onStart, onStop = param.onStop;
2780
- var _ref = _sliced_to_array((0, import_react36.useState)(null), 2), silenceStart = _ref[0], setSilenceStart = _ref[1];
2781
- var _ref1 = _sliced_to_array((0, import_react36.useState)(null), 2), noiseStart = _ref1[0], setNoiseStart = _ref1[1];
2782
- var _ref2 = _sliced_to_array((0, import_react36.useState)(null), 2), mediaStream = _ref2[0], setMediaStream = _ref2[1];
2783
- 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];
2784
2916
  var startAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
2785
2917
  var endAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
2786
- var _ref4 = _sliced_to_array((0, import_react36.useState)(false), 2), isLoaded = _ref4[0], setIsLoaded = _ref4[1];
2787
- (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() {
2788
2920
  if (isLoaded) return;
2789
2921
  setIsLoaded(true);
2790
- startAudioPlayer.load("/sounds/warning.wav", {
2791
- html5: true
2792
- });
2793
- endAudioPlayer.load("/sounds/success.wav", {
2794
- html5: true
2795
- });
2796
2922
  }, [
2797
2923
  isLoaded,
2798
2924
  startAudioPlayer,
@@ -2800,7 +2926,6 @@ var useRecorder = function(param) {
2800
2926
  ]);
2801
2927
  var audioCaptureProps = (0, import_use_audio_capture.useAudioCapture)({
2802
2928
  onStart: function(event, opts) {
2803
- startAudioPlayer.play();
2804
2929
  setStatus("recording");
2805
2930
  setMediaStream(opts.mediaStream);
2806
2931
  isInited.current = false;
@@ -2817,7 +2942,6 @@ var useRecorder = function(param) {
2817
2942
  for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
2818
2943
  args[_key] = _arguments[_key];
2819
2944
  }
2820
- endAudioPlayer.play();
2821
2945
  setStatus("stopped");
2822
2946
  if (!onStop) return [
2823
2947
  3,
@@ -2850,9 +2974,9 @@ var useRecorder = function(param) {
2850
2974
  setNoiseStart(null);
2851
2975
  }
2852
2976
  });
2853
- var _ref5 = _sliced_to_array((0, import_react36.useState)(null), 2), audioEngine = _ref5[0], setAudioEngine = _ref5[1];
2854
- var isInited = (0, import_react36.useRef)(false);
2855
- (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() {
2856
2980
  if (!mediaStream) return;
2857
2981
  if (isInited.current) return;
2858
2982
  isInited.current = true;
@@ -2865,7 +2989,7 @@ var useRecorder = function(param) {
2865
2989
  isInited,
2866
2990
  mediaStream
2867
2991
  ]);
2868
- var visualizationAnalyser = (0, import_react36.useMemo)(function() {
2992
+ var visualizationAnalyser = (0, import_react42.useMemo)(function() {
2869
2993
  if (!audioEngine) return null;
2870
2994
  var result = audioEngine.audioContext.createAnalyser();
2871
2995
  audioEngine.source.connect(result);
@@ -2873,7 +2997,7 @@ var useRecorder = function(param) {
2873
2997
  }, [
2874
2998
  audioEngine
2875
2999
  ]);
2876
- var silenceAnalyser = (0, import_react36.useMemo)(function() {
3000
+ var silenceAnalyser = (0, import_react42.useMemo)(function() {
2877
3001
  if (!audioEngine) return null;
2878
3002
  var result = audioEngine.audioContext.createAnalyser();
2879
3003
  result.minDecibels = -45;
@@ -2882,7 +3006,7 @@ var useRecorder = function(param) {
2882
3006
  }, [
2883
3007
  audioEngine
2884
3008
  ]);
2885
- var handleSilence = (0, import_react36.useCallback)(function() {
3009
+ var handleSilence = (0, import_react42.useCallback)(function() {
2886
3010
  if (!silenceAnalyser) return;
2887
3011
  var frequencyData = new Uint8Array(silenceAnalyser.frequencyBinCount);
2888
3012
  silenceAnalyser.getByteFrequencyData(frequencyData);
@@ -2905,7 +3029,7 @@ var useRecorder = function(param) {
2905
3029
  setNoiseStart,
2906
3030
  setSilenceStart
2907
3031
  ]);
2908
- (0, import_react36.useEffect)(function() {
3032
+ (0, import_react42.useEffect)(function() {
2909
3033
  if (!isStopOnSilence) return;
2910
3034
  requestAnimationFrame(function() {
2911
3035
  return handleSilence();
@@ -2928,7 +3052,7 @@ var useRecorder = function(param) {
2928
3052
  });
2929
3053
  };
2930
3054
  // src/hooks/audioThreads/useMessageAudio/index.ts
2931
- var import_react37 = require("react");
3055
+ var import_react43 = require("react");
2932
3056
  var import_howler = require("howler");
2933
3057
  var import_react_use_audio_player2 = require("react-use-audio-player");
2934
3058
  // src/hooks/audioThreads/useMessageAudio/lib/input.ts
@@ -2954,11 +3078,11 @@ var isHtmlAudioSupported = !unsupportedNames.includes(((_this = (0, import_detec
2954
3078
  // src/hooks/audioThreads/useMessageAudio/index.ts
2955
3079
  var useMessageAudio = function(param) {
2956
3080
  var onEnd = param.onEnd;
2957
- 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];
2958
3082
  var audioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
2959
3083
  var superinterfaceContext = useSuperinterfaceContext();
2960
3084
  var latestMessageProps = useLatestMessage();
2961
- (0, import_react37.useEffect)(function() {
3085
+ (0, import_react43.useEffect)(function() {
2962
3086
  if (audioPlayer.playing) return;
2963
3087
  if (!latestMessageProps.latestMessage) return;
2964
3088
  if (latestMessageProps.latestMessage.role !== "assistant") return;
@@ -2976,7 +3100,14 @@ var useMessageAudio = function(param) {
2976
3100
  format: "mp3",
2977
3101
  autoplay: true,
2978
3102
  html5: isHtmlAudioSupported,
2979
- 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
+ })
2980
3111
  });
2981
3112
  }, [
2982
3113
  superinterfaceContext,
@@ -2985,9 +3116,9 @@ var useMessageAudio = function(param) {
2985
3116
  playedMessageIds,
2986
3117
  onEnd
2987
3118
  ]);
2988
- var isInited = (0, import_react37.useRef)(false);
2989
- var _ref1 = _sliced_to_array((0, import_react37.useState)(null), 2), audioEngine = _ref1[0], setAudioEngine = _ref1[1];
2990
- (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() {
2991
3122
  if (!audioPlayer.playing) return;
2992
3123
  if (isInited.current) return;
2993
3124
  isInited.current = true;
@@ -3008,7 +3139,7 @@ var useMessageAudio = function(param) {
3008
3139
  audioPlayer,
3009
3140
  isInited
3010
3141
  ]);
3011
- var visualizationAnalyser = (0, import_react37.useMemo)(function() {
3142
+ var visualizationAnalyser = (0, import_react43.useMemo)(function() {
3012
3143
  if (!audioEngine) return null;
3013
3144
  var result = audioEngine.audioContext.createAnalyser();
3014
3145
  audioEngine.source.connect(audioEngine.audioContext.destination);
@@ -3022,48 +3153,47 @@ var useMessageAudio = function(param) {
3022
3153
  });
3023
3154
  };
3024
3155
  // src/components/threads/AudioThread/Root/index.tsx
3025
- var import_jsx_runtime51 = require("react/jsx-runtime");
3156
+ var import_jsx_runtime53 = require("react/jsx-runtime");
3026
3157
  var Root7 = function(param) {
3027
3158
  var children = param.children;
3028
3159
  useLifecycle();
3029
3160
  var createMessageProps = useCreateMessage();
3030
- var _ref = (0, import_react_speech_recognition.useSpeechRecognition)(), transcript = _ref.transcript, resetTranscript = _ref.resetTranscript;
3031
- var transcriptRef = (0, import_react38.useRef)(transcript);
3032
- (0, import_react38.useEffect)(function() {
3033
- transcriptRef.current = transcript;
3034
- }, [
3035
- transcript
3036
- ]);
3037
3161
  var recorderProps = useRecorder({
3038
3162
  isStopOnSilence: true,
3039
3163
  onStart: /*#__PURE__*/ _async_to_generator(function() {
3040
3164
  return _ts_generator(this, function(_state) {
3041
3165
  console.log("start");
3042
- resetTranscript();
3043
- import_react_speech_recognition.default.default.startListening({
3044
- continuous: true
3045
- });
3046
3166
  return [
3047
3167
  2
3048
3168
  ];
3049
3169
  });
3050
3170
  }),
3051
3171
  onStop: function() {
3052
- var _ref = _async_to_generator(function(_event, _chunks) {
3172
+ var _ref = _async_to_generator(function(_event, chunks) {
3173
+ var blob, audioContent;
3053
3174
  return _ts_generator(this, function(_state) {
3054
- console.log({
3055
- transcript: transcriptRef.current
3056
- });
3057
- return [
3058
- 2,
3059
- createMessageProps.createMessage({
3060
- // @ts-ignore-next-line
3061
- content: transcriptRef.current
3062
- })
3063
- ];
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
+ }
3064
3194
  });
3065
3195
  });
3066
- return function(_event, _chunks) {
3196
+ return function(_event, chunks) {
3067
3197
  return _ref.apply(this, arguments);
3068
3198
  };
3069
3199
  }()
@@ -3083,13 +3213,13 @@ var Root7 = function(param) {
3083
3213
  createMessageProps: createMessageProps,
3084
3214
  messageAudioProps: messageAudioProps
3085
3215
  }).status;
3086
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(AudioThreadContext.Provider, {
3216
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(AudioThreadContext.Provider, {
3087
3217
  value: {
3088
3218
  status: status,
3089
3219
  recorderProps: recorderProps,
3090
3220
  messageAudioProps: messageAudioProps
3091
3221
  },
3092
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes38.Flex, {
3222
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes39.Flex, {
3093
3223
  direction: "column",
3094
3224
  flexGrow: "1",
3095
3225
  p: "5",
@@ -3098,23 +3228,23 @@ var Root7 = function(param) {
3098
3228
  });
3099
3229
  };
3100
3230
  // src/components/threads/AudioThread/Visualization/index.tsx
3101
- var import_themes39 = require("@radix-ui/themes");
3231
+ var import_themes40 = require("@radix-ui/themes");
3102
3232
  // src/hooks/threads/useAudioThreadContext/index.ts
3103
- var import_react39 = require("react");
3233
+ var import_react44 = require("react");
3104
3234
  var useAudioThreadContext = function() {
3105
- return (0, import_react39.useContext)(AudioThreadContext);
3235
+ return (0, import_react44.useContext)(AudioThreadContext);
3106
3236
  };
3107
3237
  // src/components/threads/AudioThread/Visualization/index.tsx
3108
- var import_jsx_runtime52 = require("react/jsx-runtime");
3238
+ var import_jsx_runtime54 = require("react/jsx-runtime");
3109
3239
  var Visualization = function() {
3110
3240
  var audioThreadContext = useAudioThreadContext();
3111
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_themes39.Flex, {
3241
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes40.Flex, {
3112
3242
  direction: "column",
3113
3243
  align: "center",
3114
3244
  justify: "center",
3115
3245
  mb: "3",
3116
3246
  flexGrow: "1",
3117
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_themes39.Flex, {
3247
+ children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes40.Flex, {
3118
3248
  align: "center",
3119
3249
  justify: "center",
3120
3250
  height: "200px",
@@ -3128,22 +3258,22 @@ var Visualization = function() {
3128
3258
  };
3129
3259
  // src/components/threads/AudioThread/Form/index.tsx
3130
3260
  var import_react_icons8 = require("@radix-ui/react-icons");
3131
- var import_themes42 = require("@radix-ui/themes");
3261
+ var import_themes43 = require("@radix-ui/themes");
3132
3262
  // src/components/threads/AudioThread/Form/Visualizer/index.tsx
3133
3263
  var import_lodash7 = __toESM(require("lodash"), 1);
3134
- var import_themes40 = require("@radix-ui/themes");
3135
- var import_react40 = require("react");
3264
+ var import_themes41 = require("@radix-ui/themes");
3265
+ var import_react45 = require("react");
3136
3266
  var import_radash10 = require("radash");
3137
- var import_jsx_runtime53 = require("react/jsx-runtime");
3267
+ var import_jsx_runtime55 = require("react/jsx-runtime");
3138
3268
  var barCount = 4;
3139
3269
  var Visualizer = function() {
3140
3270
  var audioThreadContext = useAudioThreadContext();
3141
3271
  var visualizationAnalyser = audioThreadContext.recorderProps.visualizationAnalyser;
3142
- var _ref = _sliced_to_array((0, import_react40.useState)(function() {
3272
+ var _ref = _sliced_to_array((0, import_react45.useState)(function() {
3143
3273
  return new AudioContext().createAnalyser();
3144
3274
  }), 1), emptyVisualizer = _ref[0];
3145
- var _ref1 = _sliced_to_array((0, import_react40.useState)([]), 2), barHeights = _ref1[0], setBarHeights = _ref1[1];
3146
- 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) {
3147
3277
  var visualizationAnalyser2 = param.visualizationAnalyser;
3148
3278
  var frequencyData = new Uint8Array(visualizationAnalyser2.frequencyBinCount / 15);
3149
3279
  visualizationAnalyser2.getByteFrequencyData(frequencyData);
@@ -3157,7 +3287,7 @@ var Visualizer = function() {
3157
3287
  });
3158
3288
  });
3159
3289
  }, []);
3160
- (0, import_react40.useEffect)(function() {
3290
+ (0, import_react45.useEffect)(function() {
3161
3291
  draw({
3162
3292
  visualizationAnalyser: visualizationAnalyser || emptyVisualizer
3163
3293
  });
@@ -3166,7 +3296,7 @@ var Visualizer = function() {
3166
3296
  visualizationAnalyser,
3167
3297
  emptyVisualizer
3168
3298
  ]);
3169
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes40.Grid, {
3299
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes41.Grid, {
3170
3300
  columns: "".concat(barCount),
3171
3301
  gap: "1",
3172
3302
  width: "auto",
@@ -3175,12 +3305,12 @@ var Visualizer = function() {
3175
3305
  gridTemplateColumns: "repeat(4, minmax(0, 1fr))"
3176
3306
  },
3177
3307
  children: barHeights.map(function(barHeight, index) {
3178
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes40.Flex, {
3308
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes41.Flex, {
3179
3309
  direction: "column",
3180
3310
  align: "center",
3181
3311
  justify: "center",
3182
3312
  height: "20px",
3183
- children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes40.Flex, {
3313
+ children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes41.Flex, {
3184
3314
  minHeight: "50%",
3185
3315
  maxHeight: "100%",
3186
3316
  height: "".concat(barHeight + 20, "%"),
@@ -3195,31 +3325,31 @@ var Visualizer = function() {
3195
3325
  });
3196
3326
  };
3197
3327
  // src/components/threads/AudioThread/Form/ActionButton/index.tsx
3198
- var import_themes41 = require("@radix-ui/themes");
3328
+ var import_themes42 = require("@radix-ui/themes");
3199
3329
  var import_react_icons7 = require("@radix-ui/react-icons");
3200
- var import_jsx_runtime54 = require("react/jsx-runtime");
3330
+ var import_jsx_runtime56 = require("react/jsx-runtime");
3201
3331
  var ActionButton = function() {
3202
3332
  var audioThreadContext = useAudioThreadContext();
3203
3333
  if (audioThreadContext.status === "recording") {
3204
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_themes41.Flex, {
3334
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_themes42.Flex, {
3205
3335
  align: "center",
3206
3336
  children: [
3207
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes41.Flex, {
3337
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.Flex, {
3208
3338
  mr: "3",
3209
3339
  ml: "-7",
3210
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes41.IconButton, {
3340
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3211
3341
  onClick: audioThreadContext.recorderProps.pause,
3212
3342
  color: "gray",
3213
3343
  radius: "full",
3214
3344
  size: "1",
3215
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_icons7.PauseIcon, {})
3345
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.PauseIcon, {})
3216
3346
  })
3217
3347
  }),
3218
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes41.Tooltip, {
3348
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.Tooltip, {
3219
3349
  open: true,
3220
3350
  content: "Send your message",
3221
3351
  side: "bottom",
3222
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes41.IconButton, {
3352
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3223
3353
  onClick: audioThreadContext.recorderProps.stop,
3224
3354
  color: "gray",
3225
3355
  highContrast: true,
@@ -3228,14 +3358,14 @@ var ActionButton = function() {
3228
3358
  style: {
3229
3359
  border: "2px solid var(--gray-8)"
3230
3360
  },
3231
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_icons7.ArrowUpIcon, {})
3361
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.ArrowUpIcon, {})
3232
3362
  })
3233
3363
  })
3234
3364
  ]
3235
3365
  });
3236
3366
  }
3237
3367
  if (audioThreadContext.status === "recorderPaused") {
3238
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes41.IconButton, {
3368
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3239
3369
  onClick: audioThreadContext.recorderProps.resume,
3240
3370
  color: "red",
3241
3371
  radius: "full",
@@ -3243,11 +3373,11 @@ var ActionButton = function() {
3243
3373
  style: {
3244
3374
  border: "2px solid var(--gray-8)"
3245
3375
  },
3246
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_icons7.ResumeIcon, {})
3376
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.ResumeIcon, {})
3247
3377
  });
3248
3378
  }
3249
3379
  if (audioThreadContext.status === "idle") {
3250
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes41.IconButton, {
3380
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3251
3381
  onClick: function() {
3252
3382
  return audioThreadContext.recorderProps.start();
3253
3383
  },
@@ -3260,7 +3390,7 @@ var ActionButton = function() {
3260
3390
  });
3261
3391
  }
3262
3392
  if (audioThreadContext.status === "playing") {
3263
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes41.IconButton, {
3393
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3264
3394
  onClick: function() {
3265
3395
  return audioThreadContext.messageAudioProps.pause();
3266
3396
  },
@@ -3270,11 +3400,11 @@ var ActionButton = function() {
3270
3400
  style: {
3271
3401
  border: "2px solid var(--gray-8)"
3272
3402
  },
3273
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_icons7.PauseIcon, {})
3403
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.PauseIcon, {})
3274
3404
  });
3275
3405
  }
3276
3406
  if (audioThreadContext.status === "playerPaused") {
3277
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes41.IconButton, {
3407
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3278
3408
  onClick: function() {
3279
3409
  return audioThreadContext.messageAudioProps.play();
3280
3410
  },
@@ -3284,10 +3414,10 @@ var ActionButton = function() {
3284
3414
  style: {
3285
3415
  border: "2px solid var(--gray-8)"
3286
3416
  },
3287
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_icons7.ResumeIcon, {})
3417
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.ResumeIcon, {})
3288
3418
  });
3289
3419
  }
3290
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes41.IconButton, {
3420
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3291
3421
  size: "4",
3292
3422
  color: "red",
3293
3423
  radius: "full",
@@ -3298,49 +3428,49 @@ var ActionButton = function() {
3298
3428
  });
3299
3429
  };
3300
3430
  // src/components/threads/AudioThread/Form/index.tsx
3301
- var import_jsx_runtime55 = require("react/jsx-runtime");
3431
+ var import_jsx_runtime57 = require("react/jsx-runtime");
3302
3432
  var Form = function() {
3303
3433
  var audioThreadContext = useAudioThreadContext();
3304
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_themes42.Flex, {
3434
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_themes43.Flex, {
3305
3435
  direction: "column",
3306
3436
  align: "center",
3307
3437
  children: [
3308
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_themes42.Flex, {
3438
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_themes43.Flex, {
3309
3439
  pb: "3",
3310
3440
  align: "center",
3311
3441
  children: [
3312
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes42.Flex, {
3442
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes43.Flex, {
3313
3443
  ml: "-5",
3314
3444
  mr: "2",
3315
3445
  align: "center",
3316
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_react_icons8.SpeakerModerateIcon, {
3446
+ children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react_icons8.SpeakerModerateIcon, {
3317
3447
  style: {
3318
3448
  color: "var(--".concat(audioThreadContext.status === "recording" ? "mint" : "gray", "-12)")
3319
3449
  }
3320
3450
  })
3321
3451
  }),
3322
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes42.Flex, {
3452
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes43.Flex, {
3323
3453
  px: "2",
3324
3454
  py: "1",
3325
3455
  style: {
3326
3456
  backgroundColor: "var(--".concat(audioThreadContext.status === "recording" ? "mint" : "gray", "-4)"),
3327
3457
  borderRadius: "var(--radius-6)"
3328
3458
  },
3329
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Visualizer, {})
3459
+ children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Visualizer, {})
3330
3460
  })
3331
3461
  ]
3332
3462
  }),
3333
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ActionButton, {})
3463
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ActionButton, {})
3334
3464
  ]
3335
3465
  });
3336
3466
  };
3337
3467
  // src/components/threads/AudioThread/index.tsx
3338
- var import_jsx_runtime56 = require("react/jsx-runtime");
3468
+ var import_jsx_runtime58 = require("react/jsx-runtime");
3339
3469
  var AudioThread = function(props) {
3340
- 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), {
3341
3471
  children: [
3342
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Visualization, {}),
3343
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Form, {})
3472
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Visualization, {}),
3473
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Form, {})
3344
3474
  ]
3345
3475
  }));
3346
3476
  };
@@ -3348,15 +3478,15 @@ AudioThread.Root = Root7;
3348
3478
  AudioThread.Visualization = Visualization;
3349
3479
  AudioThread.Form = Form;
3350
3480
  // src/components/threads/AudioThreadDialog/index.tsx
3351
- var import_jsx_runtime57 = require("react/jsx-runtime");
3481
+ var import_jsx_runtime59 = require("react/jsx-runtime");
3352
3482
  var AudioThreadDialog = function() {
3353
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(Root5, {
3483
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(Root5, {
3354
3484
  children: [
3355
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Content4.Root, {
3356
- 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, {})
3357
3487
  }),
3358
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Trigger, {
3359
- 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, {})
3360
3490
  })
3361
3491
  ]
3362
3492
  });
@@ -3366,84 +3496,125 @@ AudioThreadDialog.Trigger = Trigger;
3366
3496
  AudioThreadDialog.Button = Button3;
3367
3497
  AudioThreadDialog.Content = Content4;
3368
3498
  // src/components/suggestions/Suggestions/index.tsx
3369
- var import_react41 = require("react");
3370
- var import_themes44 = require("@radix-ui/themes");
3371
- // 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
3372
3506
  var import_react_icons9 = require("@radix-ui/react-icons");
3373
- var import_themes43 = require("@radix-ui/themes");
3374
- var import_jsx_runtime58 = require("react/jsx-runtime");
3375
- var Suggestion = function(param) {
3376
- var suggestion = param.suggestion;
3377
- var createMessage = useCreateMessage().createMessage;
3378
- var _useIsRunActive = useIsRunActive(), isRunActive2 = _useIsRunActive.isRunActive;
3379
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_themes43.Button, {
3380
- variant: "soft",
3381
- style: {
3382
- justifyContent: "space-between"
3383
- },
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, {
3384
3513
  onClick: function() {
3385
3514
  createMessage({
3386
3515
  // @ts-ignore-next-line
3387
3516
  content: suggestion
3388
3517
  });
3389
3518
  },
3390
- 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,
3391
3530
  children: [
3392
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.Text, {
3531
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_themes44.Text, {
3393
3532
  size: "1",
3394
3533
  weight: "regular",
3395
- children: suggestion
3534
+ children: children
3396
3535
  }),
3397
- /* @__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
+ })
3398
3540
  ]
3399
3541
  });
3400
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
+ };
3401
3581
  // src/components/suggestions/Suggestions/index.tsx
3402
- var import_jsx_runtime59 = require("react/jsx-runtime");
3582
+ var import_jsx_runtime62 = require("react/jsx-runtime");
3403
3583
  var Suggestions = function(param) {
3404
- 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;
3405
3585
  var latestMessageProps = useLatestMessage();
3406
- var isRunActiveProps = useIsRunActive();
3407
- var isDisabled = (0, import_react41.useMemo)(function() {
3586
+ var isDisabled = (0, import_react47.useMemo)(function() {
3408
3587
  var // @ts-ignore-next-line
3409
3588
  _latestMessageProps_latestMessage_metadata, _latestMessageProps_latestMessage;
3410
- 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;
3411
3590
  }, [
3412
- latestMessageProps,
3413
- isRunActiveProps
3591
+ latestMessageProps
3414
3592
  ]);
3415
3593
  if (latestMessageProps.isLoading) return null;
3416
3594
  if (isDisabled) return null;
3417
- if (!latestMessageProps.latestMessage && emptyStateSuggestions.length > 0) {
3418
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_themes44.Flex, {
3419
- gap: "2",
3420
- py: "2",
3421
- wrap: "wrap",
3422
- children: emptyStateSuggestions.map(function(suggestion) {
3423
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Suggestion, {
3424
- suggestion: suggestion
3425
- }, suggestion);
3426
- })
3427
- });
3428
- }
3429
- if (latestMessageProps.latestMessage.role === "assistant") {
3430
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_themes44.Flex, {
3431
- gap: "2",
3432
- py: "2",
3433
- wrap: "wrap",
3434
- children: suggestions.map(function(suggestion) {
3435
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Suggestion, {
3436
- suggestion: suggestion
3437
- }, suggestion);
3438
- })
3439
- });
3440
- }
3441
- return null;
3595
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Content6, {
3596
+ children: children
3597
+ });
3442
3598
  };
3443
- // src/hooks/markdown/useMarkdownContext/index.ts
3444
- var import_react42 = require("react");
3445
- var useMarkdownContext = function() {
3446
- 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
+ });
3447
3618
  };
3448
3619
  // Annotate the CommonJS export names for ESM import in node:
3449
3620
  0 && (module.exports = {
@@ -3454,7 +3625,7 @@ var useMarkdownContext = function() {
3454
3625
  FunctionBase: FunctionBase,
3455
3626
  FunctionComponentsContext: FunctionComponentsContext,
3456
3627
  MarkdownContext: MarkdownContext,
3457
- Suggestion: Suggestion,
3628
+ MarkdownProvider: MarkdownProvider,
3458
3629
  Suggestions: Suggestions,
3459
3630
  SuperinterfaceProvider: SuperinterfaceProvider,
3460
3631
  Thread: Thread,
@@ -3467,6 +3638,7 @@ var useMarkdownContext = function() {
3467
3638
  useLatestRun: useLatestRun,
3468
3639
  useLifecycle: useLifecycle,
3469
3640
  useMarkdownContext: useMarkdownContext,
3641
+ useMessageContext: useMessageContext,
3470
3642
  useMessages: useMessages,
3471
3643
  useRuns: useRuns,
3472
3644
  useSuperinterfaceContext: useSuperinterfaceContext,