@superinterface/react 2.0.7 → 2.0.8

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
@@ -403,8 +403,6 @@ __export(src_exports, {
403
403
  }
404
404
  });
405
405
  module.exports = __toCommonJS(src_exports);
406
- // src/components/core/SuperinterfaceProvider/index.tsx
407
- var import_sonner = require("sonner");
408
406
  // src/lib/misc/merge/index.ts
409
407
  var import_lodash2 = __toESM(require("lodash"), 1);
410
408
  // src/lib/misc/merge/customizer.ts
@@ -432,8 +430,7 @@ var SuperinterfaceContext = (0, import_react.createContext)({
432
430
  defaultOptions: {
433
431
  queries: {},
434
432
  mutations: {}
435
- },
436
- isToasterRendered: false
433
+ }
437
434
  });
438
435
  // src/hooks/core/useSuperinterfaceContext/index.ts
439
436
  var import_react2 = require("react");
@@ -445,38 +442,24 @@ var import_jsx_runtime = require("react/jsx-runtime");
445
442
  var SuperinterfaceProvider = function(param) {
446
443
  var children = param.children, baseUrl = param.baseUrl, publicApiKey = param.publicApiKey, variables = param.variables, defaultOptions = param.defaultOptions;
447
444
  var superinterfaceContext = useSuperinterfaceContext();
448
- var value = merge(superinterfaceContext, _object_spread_props(_object_spread({}, baseUrl ? {
445
+ var value = merge(superinterfaceContext, _object_spread({}, baseUrl ? {
449
446
  baseUrl: baseUrl
450
447
  } : {}, publicApiKey ? {
451
448
  publicApiKey: publicApiKey
452
449
  } : {}, variables ? {
453
450
  variables: variables
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 : {
451
+ } : {}, defaultOptions ? {
463
452
  defaultOptions: defaultOptions
464
- })), {
465
- isToasterRendered: true
466
- }));
467
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(SuperinterfaceContext.Provider, {
453
+ } : {}));
454
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SuperinterfaceContext.Provider, {
468
455
  value: value,
469
- children: [
470
- children,
471
- !superinterfaceContext.isToasterRendered && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_sonner.Toaster, {})
472
- ]
456
+ children: children
473
457
  });
474
458
  };
475
459
  // src/components/threads/Thread/Messages/index.tsx
476
460
  var import_themes30 = require("@radix-ui/themes");
477
461
  // src/components/threads/Thread/Messages/Content/index.tsx
478
- var import_react18 = require("react");
479
- var import_sonner2 = require("sonner");
462
+ var import_react20 = require("react");
480
463
  // src/hooks/messages/useMessages/index.tsx
481
464
  var import_react3 = require("react");
482
465
  var import_react_query2 = require("@tanstack/react-query");
@@ -761,26 +744,38 @@ var MessagesSkeleton = (0, import_react6.forwardRef)(function MessagesSkeleton2(
761
744
  ]
762
745
  });
763
746
  });
747
+ // src/hooks/toasts/useToasts/index.ts
748
+ var import_react8 = require("react");
749
+ // src/contexts/toasts/ToastsContext/index.ts
750
+ var import_react7 = require("react");
751
+ var ToastsContext = (0, import_react7.createContext)({
752
+ toasts: [],
753
+ addToast: function() {}
754
+ });
755
+ // src/hooks/toasts/useToasts/index.ts
756
+ var useToasts = function() {
757
+ return (0, import_react8.useContext)(ToastsContext);
758
+ };
764
759
  // src/components/threads/Thread/Messages/Content/MessageGroup/index.tsx
765
- var import_react17 = require("react");
760
+ var import_react19 = require("react");
766
761
  var import_themes25 = require("@radix-ui/themes");
767
762
  var import_react_icons4 = require("@radix-ui/react-icons");
768
763
  // src/components/messageGroups/MessageGroupBase/AssistantAvatar.tsx
769
- var import_react8 = require("react");
764
+ var import_react10 = require("react");
770
765
  var import_themes5 = require("@radix-ui/themes");
771
766
  // src/contexts/assistants/AssistantAvatarContext/index.tsx
772
- var import_react7 = require("react");
767
+ var import_react9 = require("react");
773
768
  var import_themes4 = require("@radix-ui/themes");
774
769
  var import_react_icons = require("@radix-ui/react-icons");
775
770
  var import_jsx_runtime5 = require("react/jsx-runtime");
776
- var AssistantAvatarContext = (0, import_react7.createContext)(/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_themes4.Avatar, {
771
+ var AssistantAvatarContext = (0, import_react9.createContext)(/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_themes4.Avatar, {
777
772
  fallback: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_icons.LightningBoltIcon, {}),
778
773
  size: "1"
779
774
  }));
780
775
  // src/components/messageGroups/MessageGroupBase/AssistantAvatar.tsx
781
776
  var import_jsx_runtime6 = require("react/jsx-runtime");
782
777
  var AssistantAvatar = function() {
783
- var AssistantAvatarContextValue = (0, import_react8.useContext)(AssistantAvatarContext);
778
+ var AssistantAvatarContextValue = (0, import_react10.useContext)(AssistantAvatarContext);
784
779
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_themes5.Flex, {
785
780
  flexShrink: "0",
786
781
  height: "24px",
@@ -793,12 +788,12 @@ var AssistantAvatar = function() {
793
788
  });
794
789
  };
795
790
  // src/contexts/assistants/AssistantNameContext/index.tsx
796
- var import_react9 = require("react");
797
- var AssistantNameContext = (0, import_react9.createContext)("Assistant");
791
+ var import_react11 = require("react");
792
+ var AssistantNameContext = (0, import_react11.createContext)("Assistant");
798
793
  // src/components/threads/Thread/Messages/Content/MessageGroup/Content/index.tsx
799
794
  var import_themes24 = require("@radix-ui/themes");
800
795
  // src/components/threads/Thread/Message/index.tsx
801
- var import_react16 = require("react");
796
+ var import_react18 = require("react");
802
797
  var import_themes23 = require("@radix-ui/themes");
803
798
  // src/components/runSteps/RunSteps/index.tsx
804
799
  var import_themes14 = require("@radix-ui/themes");
@@ -807,10 +802,10 @@ var import_themes13 = require("@radix-ui/themes");
807
802
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/index.tsx
808
803
  var import_themes11 = require("@radix-ui/themes");
809
804
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/index.tsx
810
- var import_react12 = require("react");
805
+ var import_react14 = require("react");
811
806
  // src/contexts/functions/FunctionComponentsContext/index.tsx
812
- var import_react10 = require("react");
813
- var FunctionComponentsContext = (0, import_react10.createContext)({});
807
+ var import_react12 = require("react");
808
+ var FunctionComponentsContext = (0, import_react12.createContext)({});
814
809
  // src/components/functions/FunctionBase/index.tsx
815
810
  var import_themes9 = require("@radix-ui/themes");
816
811
  // src/components/toolCalls/ToolCallBase/index.tsx
@@ -858,12 +853,12 @@ var Icon = function(param) {
858
853
  }
859
854
  };
860
855
  // src/components/functions/FunctionBase/Content.tsx
861
- var import_react11 = require("react");
856
+ var import_react13 = require("react");
862
857
  var import_themes8 = require("@radix-ui/themes");
863
858
  var import_jsx_runtime10 = require("react/jsx-runtime");
864
859
  var Content = function(param) {
865
860
  var fn = param.fn;
866
- var args = (0, import_react11.useMemo)(function() {
861
+ var args = (0, import_react13.useMemo)(function() {
867
862
  var result = null;
868
863
  try {
869
864
  result = JSON.parse(fn.arguments);
@@ -874,7 +869,7 @@ var Content = function(param) {
874
869
  }, [
875
870
  fn
876
871
  ]);
877
- var output = (0, import_react11.useMemo)(function() {
872
+ var output = (0, import_react13.useMemo)(function() {
878
873
  if (!fn.output) {
879
874
  return null;
880
875
  }
@@ -964,7 +959,7 @@ var import_jsx_runtime13 = // @ts-ignore-next-line
964
959
  require("react/jsx-runtime");
965
960
  var Fn = function(param) {
966
961
  var fn = param.fn, runStep = param.runStep;
967
- var functionComponentsContext = (0, import_react12.useContext)(FunctionComponentsContext);
962
+ var functionComponentsContext = (0, import_react14.useContext)(FunctionComponentsContext);
968
963
  var Component = functionComponentsContext[fn.name] || DefaultFunction;
969
964
  return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Component, {
970
965
  fn: fn,
@@ -1069,8 +1064,8 @@ var RunSteps = function(param) {
1069
1064
  });
1070
1065
  };
1071
1066
  // src/contexts/messages/MessageContext/index.ts
1072
- var import_react13 = require("react");
1073
- var MessageContext = (0, import_react13.createContext)({
1067
+ var import_react15 = require("react");
1068
+ var MessageContext = (0, import_react15.createContext)({
1074
1069
  message: null
1075
1070
  });
1076
1071
  // src/components/threads/Thread/Message/Provider.tsx
@@ -1078,9 +1073,9 @@ var Provider = MessageContext.Provider;
1078
1073
  // src/components/threads/Thread/Message/TextContent.tsx
1079
1074
  var import_react_remark = require("react-remark");
1080
1075
  // src/hooks/markdown/useMarkdownContext/index.ts
1081
- var import_react15 = require("react");
1076
+ var import_react17 = require("react");
1082
1077
  // src/contexts/markdown/MarkdownContext/index.ts
1083
- var import_react14 = require("react");
1078
+ var import_react16 = require("react");
1084
1079
  // src/contexts/markdown/MarkdownContext/lib/components/Paragraph.tsx
1085
1080
  var import_themes15 = require("@radix-ui/themes");
1086
1081
  var import_jsx_runtime20 = require("react/jsx-runtime");
@@ -1195,7 +1190,7 @@ var components = {
1195
1190
  code: Code2
1196
1191
  };
1197
1192
  // src/contexts/markdown/MarkdownContext/index.ts
1198
- var MarkdownContext = (0, import_react14.createContext)({
1193
+ var MarkdownContext = (0, import_react16.createContext)({
1199
1194
  remarkPlugins: [],
1200
1195
  rehypeReactOptions: {
1201
1196
  components: components
@@ -1203,7 +1198,7 @@ var MarkdownContext = (0, import_react14.createContext)({
1203
1198
  });
1204
1199
  // src/hooks/markdown/useMarkdownContext/index.ts
1205
1200
  var useMarkdownContext = function() {
1206
- return (0, import_react15.useContext)(MarkdownContext);
1201
+ return (0, import_react17.useContext)(MarkdownContext);
1207
1202
  };
1208
1203
  // src/components/threads/Thread/Message/TextContent.tsx
1209
1204
  var TextContent = function(param) {
@@ -1215,7 +1210,7 @@ var TextContent = function(param) {
1215
1210
  var import_jsx_runtime28 = require("react/jsx-runtime");
1216
1211
  var Message = function(param) {
1217
1212
  var message = param.message;
1218
- var _ref = _sliced_to_array((0, import_react16.useMemo)(function() {
1213
+ var _ref = _sliced_to_array((0, import_react18.useMemo)(function() {
1219
1214
  if (!message.runSteps.length) return [
1220
1215
  [],
1221
1216
  []
@@ -1287,7 +1282,7 @@ var Content2 = function(param) {
1287
1282
  var import_jsx_runtime30 = require("react/jsx-runtime");
1288
1283
  var MessageGroup = function(param) {
1289
1284
  var messageGroup = param.messageGroup;
1290
- var assistantNameContext = (0, import_react17.useContext)(AssistantNameContext);
1285
+ var assistantNameContext = (0, import_react19.useContext)(AssistantNameContext);
1291
1286
  return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(MessageGroupBase, {
1292
1287
  children: [
1293
1288
  messageGroup.role === "user" ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_themes25.Avatar, {
@@ -1312,15 +1307,20 @@ var MessageGroup = function(param) {
1312
1307
  var import_jsx_runtime31 = require("react/jsx-runtime");
1313
1308
  var Content3 = function() {
1314
1309
  var _useMessages = useMessages(), messages2 = _useMessages.messages, isLoading = _useMessages.isLoading, isLoadingError = _useMessages.isLoadingError;
1310
+ var addToast = useToasts().addToast;
1315
1311
  var _useMessageGroups = useMessageGroups({
1316
1312
  messages: messages2
1317
1313
  }), messageGroups2 = _useMessageGroups.messageGroups;
1318
- (0, import_react18.useEffect)(function() {
1314
+ (0, import_react20.useEffect)(function() {
1319
1315
  if (isLoadingError) {
1320
- import_sonner2.toast.error("Could not load messages. Please try again.");
1316
+ addToast({
1317
+ type: "error",
1318
+ message: "Could not load messages. Please try again."
1319
+ });
1321
1320
  }
1322
1321
  }, [
1323
- isLoadingError
1322
+ isLoadingError,
1323
+ addToast
1324
1324
  ]);
1325
1325
  if (isLoading || isLoadingError) {
1326
1326
  return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(MessagesSkeleton, {});
@@ -1351,12 +1351,12 @@ var StartingContentSkeleton = function() {
1351
1351
  });
1352
1352
  };
1353
1353
  // src/components/skeletons/StartingSkeleton/index.tsx
1354
- var import_react19 = require("react");
1354
+ var import_react21 = require("react");
1355
1355
  var import_themes27 = require("@radix-ui/themes");
1356
1356
  var import_jsx_runtime33 = require("react/jsx-runtime");
1357
1357
  var StartingSkeleton = function(param) {
1358
1358
  var children = param.children;
1359
- var assistantNameContext = (0, import_react19.useContext)(AssistantNameContext);
1359
+ var assistantNameContext = (0, import_react21.useContext)(AssistantNameContext);
1360
1360
  return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(MessageGroupBase, {
1361
1361
  children: [
1362
1362
  /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(AssistantAvatar, {}),
@@ -1373,10 +1373,10 @@ var StartingSkeleton = function(param) {
1373
1373
  });
1374
1374
  };
1375
1375
  // src/hooks/messages/useLatestMessage/index.ts
1376
- var import_react20 = require("react");
1376
+ var import_react22 = require("react");
1377
1377
  var useLatestMessage = function() {
1378
1378
  var props = useMessages();
1379
- return (0, import_react20.useMemo)(function() {
1379
+ return (0, import_react22.useMemo)(function() {
1380
1380
  return _object_spread_props(_object_spread({}, props), {
1381
1381
  latestMessage: props.messages[0] || null
1382
1382
  });
@@ -1385,12 +1385,12 @@ var useLatestMessage = function() {
1385
1385
  ]);
1386
1386
  };
1387
1387
  // src/hooks/runs/useIsRunActive/index.tsx
1388
- var import_react25 = require("react");
1388
+ var import_react27 = require("react");
1389
1389
  var import_react_query4 = require("@tanstack/react-query");
1390
1390
  // src/hooks/runs/useLatestRun/index.ts
1391
- var import_react22 = require("react");
1391
+ var import_react24 = require("react");
1392
1392
  // src/hooks/runs/useRuns/index.tsx
1393
- var import_react21 = require("react");
1393
+ var import_react23 = require("react");
1394
1394
  var import_react_query3 = require("@tanstack/react-query");
1395
1395
  // src/lib/runs/runsQueryOptions.ts
1396
1396
  var runsQueryOptions = function(param) {
@@ -1423,7 +1423,7 @@ var useRuns = function() {
1423
1423
  threadContext: threadContext,
1424
1424
  superinterfaceContext: superinterfaceContext
1425
1425
  }));
1426
- return (0, import_react21.useMemo)(function() {
1426
+ return (0, import_react23.useMemo)(function() {
1427
1427
  return _object_spread_props(_object_spread({}, props), {
1428
1428
  // @ts-ignore-next-line
1429
1429
  runs: getRuns({
@@ -1437,7 +1437,7 @@ var useRuns = function() {
1437
1437
  // src/hooks/runs/useLatestRun/index.ts
1438
1438
  var useLatestRun = function() {
1439
1439
  var props = useRuns();
1440
- return (0, import_react22.useMemo)(function() {
1440
+ return (0, import_react24.useMemo)(function() {
1441
1441
  return _object_spread_props(_object_spread({}, props), {
1442
1442
  latestRun: props.runs[0]
1443
1443
  });
@@ -1459,16 +1459,16 @@ var isRunEditingMessage = function(param) {
1459
1459
  return !hasContent;
1460
1460
  };
1461
1461
  // src/hooks/runs/usePollingContext/index.ts
1462
- var import_react24 = require("react");
1462
+ var import_react26 = require("react");
1463
1463
  // src/contexts/runs/PollingContext/index.tsx
1464
- var import_react23 = require("react");
1465
- var PollingContext = (0, import_react23.createContext)({
1464
+ var import_react25 = require("react");
1465
+ var PollingContext = (0, import_react25.createContext)({
1466
1466
  isPollRefetching: false,
1467
1467
  setIsPollRefetching: function() {}
1468
1468
  });
1469
1469
  // src/hooks/runs/usePollingContext/index.ts
1470
1470
  var usePollingContext = function() {
1471
- return (0, import_react24.useContext)(PollingContext);
1471
+ return (0, import_react26.useContext)(PollingContext);
1472
1472
  };
1473
1473
  // src/hooks/runs/useIsRunActive/index.tsx
1474
1474
  var progressStatuses = [
@@ -1518,7 +1518,7 @@ var useIsRunActive = function() {
1518
1518
  threadContext.variables
1519
1519
  ]
1520
1520
  });
1521
- return (0, import_react25.useMemo)(function() {
1521
+ return (0, import_react27.useMemo)(function() {
1522
1522
  return _object_spread_props(_object_spread({}, latestRunProps), {
1523
1523
  isRunActive: isRunActive({
1524
1524
  pollingContext: pollingContext,
@@ -1558,15 +1558,15 @@ var Progress = function() {
1558
1558
  // src/components/threads/Thread/Messages/Root/index.tsx
1559
1559
  var import_themes29 = require("@radix-ui/themes");
1560
1560
  // src/hooks/misc/useInfiniteScroll/index.tsx
1561
- var import_react27 = require("react");
1561
+ var import_react29 = require("react");
1562
1562
  var import_react_intersection_observer = require("react-intersection-observer");
1563
1563
  // src/hooks/misc/useThrottledEffect/index.tsx
1564
1564
  var import_lodash5 = __toESM(require("lodash"), 1);
1565
- var import_react26 = require("react");
1565
+ var import_react28 = require("react");
1566
1566
  var useThrottledEffect = function(cb, delay, additionalDeps) {
1567
1567
  var _cbRef;
1568
- var cbRef = (0, import_react26.useRef)(cb);
1569
- var throttledCb = (0, import_react26.useCallback)(import_lodash5.default.throttle(function() {
1568
+ var cbRef = (0, import_react28.useRef)(cb);
1569
+ var throttledCb = (0, import_react28.useCallback)(import_lodash5.default.throttle(function() {
1570
1570
  for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1571
1571
  args[_key] = arguments[_key];
1572
1572
  }
@@ -1577,17 +1577,17 @@ var useThrottledEffect = function(cb, delay, additionalDeps) {
1577
1577
  }), [
1578
1578
  delay
1579
1579
  ]);
1580
- (0, import_react26.useEffect)(function() {
1580
+ (0, import_react28.useEffect)(function() {
1581
1581
  cbRef.current = cb;
1582
1582
  });
1583
- (0, import_react26.useEffect)(throttledCb, [
1583
+ (0, import_react28.useEffect)(throttledCb, [
1584
1584
  throttledCb
1585
1585
  ].concat(_to_consumable_array(additionalDeps)));
1586
1586
  };
1587
1587
  // src/hooks/misc/useInfiniteScroll/index.tsx
1588
1588
  var useInfiniteScroll = function(param) {
1589
1589
  var isFetchingNextPage = param.isFetchingNextPage, hasNextPage = param.hasNextPage, fetchNextPage = param.fetchNextPage;
1590
- var containerRef = (0, import_react27.useRef)(null);
1590
+ var containerRef = (0, import_react29.useRef)(null);
1591
1591
  var _ref = (0, import_react_intersection_observer.useInView)({
1592
1592
  root: containerRef.current,
1593
1593
  rootMargin: "0px",
@@ -1612,9 +1612,8 @@ var useInfiniteScroll = function(param) {
1612
1612
  };
1613
1613
  };
1614
1614
  // src/hooks/runs/useManageRuns/index.tsx
1615
- var import_sonner3 = require("sonner");
1616
1615
  var import_react_query6 = require("@tanstack/react-query");
1617
- var import_react28 = require("react");
1616
+ var import_react30 = require("react");
1618
1617
  // src/hooks/runs/useCreateRun/index.ts
1619
1618
  var import_radash4 = require("radash");
1620
1619
  var import_react_query5 = require("@tanstack/react-query");
@@ -1863,6 +1862,9 @@ var onMutate = function(param) {
1863
1862
  };
1864
1863
  // src/hooks/runs/useCreateRun/index.ts
1865
1864
  var useCreateRun = function() {
1865
+ var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
1866
+ onError: function() {}
1867
+ }, _ref_onError = _ref.onError, onError = _ref_onError === void 0 ? function() {} : _ref_onError;
1866
1868
  var queryClient = (0, import_react_query5.useQueryClient)();
1867
1869
  var superinterfaceContext = useSuperinterfaceContext();
1868
1870
  var threadContext = useSuperinterfaceContext();
@@ -1875,7 +1877,8 @@ var useCreateRun = function() {
1875
1877
  }),
1876
1878
  onMutate: onMutate({
1877
1879
  queryClient: queryClient
1878
- })
1880
+ }),
1881
+ onError: onError
1879
1882
  }, mutationOptions({
1880
1883
  mutationKeyBase: [
1881
1884
  "createRun"
@@ -1897,13 +1900,21 @@ var isOptimistic = function(param) {
1897
1900
  };
1898
1901
  // src/hooks/runs/useManageRuns/index.tsx
1899
1902
  var useManageRuns = function() {
1903
+ var addToast = useToasts().addToast;
1900
1904
  var queryClient = (0, import_react_query6.useQueryClient)();
1901
1905
  var latestRunProps = useLatestRun();
1902
1906
  var latestMessageProps = useLatestMessage();
1903
- var createRunProps = useCreateRun();
1907
+ var createRunProps = useCreateRun({
1908
+ onError: function(error) {
1909
+ return addToast({
1910
+ type: "error",
1911
+ message: error.message
1912
+ });
1913
+ }
1914
+ });
1904
1915
  var threadContext = useSuperinterfaceContext();
1905
- var _ref = _sliced_to_array((0, import_react28.useState)([]), 2), toastedErrorRunIds = _ref[0], setToastedErrorRunIds = _ref[1];
1906
- (0, import_react28.useEffect)(function() {
1916
+ var _ref = _sliced_to_array((0, import_react30.useState)([]), 2), toastedErrorRunIds = _ref[0], setToastedErrorRunIds = _ref[1];
1917
+ (0, import_react30.useEffect)(function() {
1907
1918
  var _latestRunProps_latestRun;
1908
1919
  if (((_latestRunProps_latestRun = latestRunProps.latestRun) === null || _latestRunProps_latestRun === void 0 ? void 0 : _latestRunProps_latestRun.status) !== "failed") return;
1909
1920
  if (toastedErrorRunIds.includes(latestRunProps.latestRun.id)) return;
@@ -1912,12 +1923,16 @@ var useManageRuns = function() {
1912
1923
  latestRunProps.latestRun.id
1913
1924
  ]);
1914
1925
  });
1915
- import_sonner3.toast.error("AI run failed. Please try again.");
1926
+ addToast({
1927
+ type: "error",
1928
+ message: "AI run failed. Please try again."
1929
+ });
1916
1930
  }, [
1917
1931
  latestRunProps,
1918
- toastedErrorRunIds
1932
+ toastedErrorRunIds,
1933
+ addToast
1919
1934
  ]);
1920
- (0, import_react28.useEffect)(function() {
1935
+ (0, import_react30.useEffect)(function() {
1921
1936
  if (createRunProps.isPending) return;
1922
1937
  if (latestRunProps.isFetching) return;
1923
1938
  if (latestMessageProps.isFetching) return;
@@ -2021,7 +2036,7 @@ var usePolling = function() {
2021
2036
  };
2022
2037
  // src/hooks/actions/useManageActions/index.tsx
2023
2038
  var import_react_query9 = require("@tanstack/react-query");
2024
- var import_react29 = require("react");
2039
+ var import_react31 = require("react");
2025
2040
  // src/hooks/actions/useHandleAction/index.tsx
2026
2041
  var import_radash5 = require("radash");
2027
2042
  var import_react_query8 = require("@tanstack/react-query");
@@ -2094,7 +2109,7 @@ var useManageActions = function() {
2094
2109
  var threadContext = useSuperinterfaceContext();
2095
2110
  var latestRunProps = useLatestRun();
2096
2111
  var handleActionProps = useHandleAction();
2097
- (0, import_react29.useEffect)(function() {
2112
+ (0, import_react31.useEffect)(function() {
2098
2113
  if (handleActionProps.isPending) return;
2099
2114
  if (latestRunProps.isFetching) return;
2100
2115
  if (!latestRunProps.latestRun) return;
@@ -2195,16 +2210,16 @@ var import_themes33 = require("@radix-ui/themes");
2195
2210
  var import_react_icons5 = require("@radix-ui/react-icons");
2196
2211
  var import_themes31 = require("@radix-ui/themes");
2197
2212
  // src/hooks/messages/useMessageFormContext/index.ts
2198
- var import_react31 = require("react");
2213
+ var import_react33 = require("react");
2199
2214
  // src/contexts/messages/MessageFormContext/index.ts
2200
- var import_react30 = require("react");
2201
- var MessageFormContext = (0, import_react30.createContext)({
2215
+ var import_react32 = require("react");
2216
+ var MessageFormContext = (0, import_react32.createContext)({
2202
2217
  isDisabled: false,
2203
2218
  isLoading: false
2204
2219
  });
2205
2220
  // src/hooks/messages/useMessageFormContext/index.ts
2206
2221
  var useMessageFormContext = function() {
2207
- return (0, import_react31.useContext)(MessageFormContext);
2222
+ return (0, import_react33.useContext)(MessageFormContext);
2208
2223
  };
2209
2224
  // src/components/threads/Thread/MessageForm/Submit/index.tsx
2210
2225
  var import_jsx_runtime38 = require("react/jsx-runtime");
@@ -2221,7 +2236,7 @@ var Submit = function() {
2221
2236
  });
2222
2237
  };
2223
2238
  // src/components/threads/Thread/MessageForm/Root/index.tsx
2224
- var import_react32 = require("react");
2239
+ var import_react34 = require("react");
2225
2240
  var import_react_hook_form = require("react-hook-form");
2226
2241
  // src/hooks/messages/useCreateMessage/index.ts
2227
2242
  var import_radash8 = require("radash");
@@ -2369,6 +2384,9 @@ var onSettled3 = function(param) {
2369
2384
  };
2370
2385
  // src/hooks/messages/useCreateMessage/index.ts
2371
2386
  var useCreateMessage = function() {
2387
+ var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
2388
+ onError: function() {}
2389
+ }, _ref_onError = _ref.onError, onError = _ref_onError === void 0 ? function() {} : _ref_onError;
2372
2390
  var queryClient = (0, import_react_query10.useQueryClient)();
2373
2391
  var superinterfaceContext = useSuperinterfaceContext();
2374
2392
  var threadContext = useSuperinterfaceContext();
@@ -2378,7 +2396,8 @@ var useCreateMessage = function() {
2378
2396
  }),
2379
2397
  onSettled: onSettled3({
2380
2398
  queryClient: queryClient
2381
- })
2399
+ }),
2400
+ onError: onError
2382
2401
  }, mutationOptions({
2383
2402
  mutationKeyBase: [
2384
2403
  "createMessage"
@@ -2408,13 +2427,21 @@ var Root2 = function(param) {
2408
2427
  var formProps = (0, import_react_hook_form.useForm)(formOptions);
2409
2428
  var handleSubmit = formProps.handleSubmit, isSubmitting = formProps.formState.isSubmitting, reset = formProps.reset;
2410
2429
  var _useIsRunActive = useIsRunActive(), isRunActive2 = _useIsRunActive.isRunActive;
2411
- var isLoading = (0, import_react32.useMemo)(function() {
2430
+ var isLoading = (0, import_react34.useMemo)(function() {
2412
2431
  return isRunActive2 || isSubmitting;
2413
2432
  }, [
2414
2433
  isRunActive2,
2415
2434
  isSubmitting
2416
2435
  ]);
2417
- var createMessage = useCreateMessage().createMessage;
2436
+ var addToast = useToasts().addToast;
2437
+ var createMessage = useCreateMessage({
2438
+ onError: function(error) {
2439
+ return addToast({
2440
+ type: "error",
2441
+ message: error.message
2442
+ });
2443
+ }
2444
+ }).createMessage;
2418
2445
  var onSubmit = function() {
2419
2446
  var _ref = _async_to_generator(function(data3) {
2420
2447
  return _ts_generator(this, function(_state) {
@@ -2440,7 +2467,7 @@ var Root2 = function(param) {
2440
2467
  };
2441
2468
  }();
2442
2469
  var latestMessage = useLatestMessage().latestMessage;
2443
- var isDisabled = (0, import_react32.useMemo)(function() {
2470
+ var isDisabled = (0, import_react34.useMemo)(function() {
2444
2471
  var // @ts-ignore-next-line
2445
2472
  _latestMessage_metadata;
2446
2473
  return latestMessage === null || latestMessage === void 0 ? void 0 : (_latestMessage_metadata = latestMessage.metadata) === null || _latestMessage_metadata === void 0 ? void 0 : _latestMessage_metadata.isBlocking;
@@ -2463,13 +2490,13 @@ var Root2 = function(param) {
2463
2490
  };
2464
2491
  // src/components/threads/Thread/MessageForm/Field/index.tsx
2465
2492
  var import_react_use2 = require("react-use");
2466
- var import_react34 = require("react");
2493
+ var import_react36 = require("react");
2467
2494
  // src/components/textareas/TextareaBase/index.tsx
2468
- var import_react33 = require("react");
2495
+ var import_react35 = require("react");
2469
2496
  var import_react_textarea_autosize = __toESM(require("react-textarea-autosize"), 1);
2470
2497
  var import_jsx_runtime40 = require("react/jsx-runtime");
2471
2498
  var UPSCALE_RATIO = 16 / 14;
2472
- var TextareaBase = (0, import_react33.forwardRef)(function TextareaBase2(props, ref) {
2499
+ var TextareaBase = (0, import_react35.forwardRef)(function TextareaBase2(props, ref) {
2473
2500
  return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_jsx_runtime40.Fragment, {
2474
2501
  children: [
2475
2502
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("style", {
@@ -2531,19 +2558,19 @@ var Root3 = function(param) {
2531
2558
  });
2532
2559
  };
2533
2560
  var Control = function() {
2534
- var assistantNameContext = (0, import_react34.useContext)(AssistantNameContext);
2561
+ var assistantNameContext = (0, import_react36.useContext)(AssistantNameContext);
2535
2562
  var register = (0, import_react_hook_form2.useFormContext)().register;
2536
2563
  var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
2537
- var isSubmitDisabled = (0, import_react34.useMemo)(function() {
2564
+ var isSubmitDisabled = (0, import_react36.useMemo)(function() {
2538
2565
  return isDisabled || isLoading;
2539
2566
  }, [
2540
2567
  isDisabled,
2541
2568
  isLoading
2542
2569
  ]);
2543
2570
  var isDisabledPrevious = (0, import_react_use2.usePrevious)(isDisabled);
2544
- var textareaRef = (0, import_react34.useRef)(null);
2571
+ var textareaRef = (0, import_react36.useRef)(null);
2545
2572
  var textareaProps = register("content");
2546
- (0, import_react34.useEffect)(function() {
2573
+ (0, import_react36.useEffect)(function() {
2547
2574
  if (isDisabled) return;
2548
2575
  if (!isDisabledPrevious) return;
2549
2576
  if (!textareaRef.current) return;
@@ -2608,11 +2635,11 @@ MessageForm.Submit = Submit;
2608
2635
  // src/components/threads/Thread/Root/index.tsx
2609
2636
  var import_themes34 = require("@radix-ui/themes");
2610
2637
  // src/components/runs/PollingProvider/index.tsx
2611
- var import_react35 = require("react");
2638
+ var import_react37 = require("react");
2612
2639
  var import_jsx_runtime43 = require("react/jsx-runtime");
2613
2640
  var PollingProvider = function(param) {
2614
2641
  var children = param.children;
2615
- var _ref = _sliced_to_array((0, import_react35.useState)(false), 2), isPollRefetching = _ref[0], setIsPollRefetching = _ref[1];
2642
+ var _ref = _sliced_to_array((0, import_react37.useState)(false), 2), isPollRefetching = _ref[0], setIsPollRefetching = _ref[1];
2616
2643
  return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(PollingContext.Provider, {
2617
2644
  value: {
2618
2645
  isPollRefetching: isPollRefetching,
@@ -2656,31 +2683,31 @@ Thread.Root = Root4;
2656
2683
  Thread.Messages = Messages;
2657
2684
  Thread.MessageForm = MessageForm;
2658
2685
  // src/hooks/messages/useMessageContext/index.ts
2659
- var import_react36 = require("react");
2686
+ var import_react38 = require("react");
2660
2687
  var useMessageContext = function() {
2661
- return (0, import_react36.useContext)(MessageContext);
2688
+ return (0, import_react38.useContext)(MessageContext);
2662
2689
  };
2663
2690
  // src/components/threads/ThreadDialog/Root/index.tsx
2664
- var import_themes35 = require("@radix-ui/themes");
2691
+ var import_themes36 = require("@radix-ui/themes");
2665
2692
  // src/components/threads/ThreadDialog/Provider/index.tsx
2666
- var import_react39 = require("react");
2693
+ var import_react41 = require("react");
2667
2694
  // src/contexts/threads/ThreadDialogContext/index.ts
2668
- var import_react37 = require("react");
2669
- var ThreadDialogContext = (0, import_react37.createContext)({
2695
+ var import_react39 = require("react");
2696
+ var ThreadDialogContext = (0, import_react39.createContext)({
2670
2697
  isOpen: false,
2671
2698
  setIsOpen: function() {}
2672
2699
  });
2673
2700
  // src/hooks/threads/useThreadDialogContext/index.ts
2674
- var import_react38 = require("react");
2701
+ var import_react40 = require("react");
2675
2702
  var useThreadDialogContext = function() {
2676
- return (0, import_react38.useContext)(ThreadDialogContext);
2703
+ return (0, import_react40.useContext)(ThreadDialogContext);
2677
2704
  };
2678
2705
  // src/components/threads/ThreadDialog/Provider/index.tsx
2679
2706
  var import_jsx_runtime47 = require("react/jsx-runtime");
2680
2707
  var Provider3 = function(param) {
2681
2708
  var children = param.children;
2682
2709
  var threadDialogContext = useThreadDialogContext();
2683
- var _ref = _sliced_to_array((0, import_react39.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
2710
+ var _ref = _sliced_to_array((0, import_react41.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
2684
2711
  return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(ThreadDialogContext.Provider, {
2685
2712
  value: {
2686
2713
  isOpen: isOpen,
@@ -2689,33 +2716,117 @@ var Provider3 = function(param) {
2689
2716
  children: children
2690
2717
  });
2691
2718
  };
2692
- // src/components/threads/ThreadDialog/Root/index.tsx
2719
+ // src/components/toasts/ToastsProvider/index.tsx
2720
+ var import_react42 = require("react");
2721
+ var Toast2 = __toESM(require("@radix-ui/react-toast"), 1);
2722
+ // src/components/toasts/ToastsProvider/CustomToast.tsx
2723
+ var Toast = __toESM(require("@radix-ui/react-toast"), 1);
2724
+ var import_themes35 = require("@radix-ui/themes");
2725
+ var import_react_icons6 = require("@radix-ui/react-icons");
2693
2726
  var import_jsx_runtime48 = require("react/jsx-runtime");
2694
- var Root5 = function(param) {
2727
+ var CustomToast = function(param) {
2728
+ var toast = param.toast;
2729
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Toast.Root, {
2730
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes35.Card, {
2731
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Toast.Title, {
2732
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_themes35.Flex, {
2733
+ children: [
2734
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes35.Flex, {
2735
+ pr: "2",
2736
+ height: "14px",
2737
+ align: "center",
2738
+ children: toast.type === "success" ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_react_icons6.CheckCircledIcon, {
2739
+ color: "var(--mint-9)"
2740
+ }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_react_icons6.CrossCircledIcon, {
2741
+ color: "var(--red-9)"
2742
+ })
2743
+ }),
2744
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes35.Text, {
2745
+ weight: "medium",
2746
+ size: "1",
2747
+ children: toast.message
2748
+ })
2749
+ ]
2750
+ })
2751
+ })
2752
+ })
2753
+ });
2754
+ };
2755
+ // src/components/toasts/ToastsProvider/index.tsx
2756
+ var import_jsx_runtime49 = require("react/jsx-runtime");
2757
+ var ToastsProvider = function(param) {
2758
+ var children = param.children;
2759
+ var _ref = _sliced_to_array((0, import_react42.useState)([]), 2), toasts = _ref[0], setToasts = _ref[1];
2760
+ var addToast = (0, import_react42.useCallback)(function(toast) {
2761
+ return setToasts(function(prevToasts) {
2762
+ return _to_consumable_array(prevToasts).concat([
2763
+ toast
2764
+ ]);
2765
+ });
2766
+ }, []);
2767
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ToastsContext.Provider, {
2768
+ value: {
2769
+ toasts: toasts,
2770
+ addToast: addToast
2771
+ },
2772
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Toast2.Provider, {
2773
+ children: [
2774
+ children,
2775
+ Array.from(toasts).map(function(toast, index) {
2776
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(CustomToast, {
2777
+ toast: toast
2778
+ }, index);
2779
+ }),
2780
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Toast2.Viewport, {
2781
+ style: {
2782
+ position: "absolute",
2783
+ bottom: 0,
2784
+ right: 0,
2785
+ display: "flex",
2786
+ flexDirection: "column",
2787
+ padding: "var(--space-5)",
2788
+ gap: "var(--space-3)",
2789
+ width: "390px",
2790
+ maxWidth: "100vw",
2791
+ margin: 0,
2792
+ listStyle: "none",
2793
+ zIndex: 99999999999999,
2794
+ outline: "none"
2795
+ }
2796
+ })
2797
+ ]
2798
+ })
2799
+ });
2800
+ };
2801
+ // src/components/threads/ThreadDialog/Root/index.tsx
2802
+ var import_jsx_runtime50 = require("react/jsx-runtime");
2803
+ var Root6 = function(param) {
2695
2804
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2696
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Provider3, {
2697
- children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes35.Flex, {
2698
- direction: "column",
2699
- justify: "end",
2700
- align: "end",
2701
- position: "fixed",
2702
- style: _object_spread({
2703
- bottom: "24px",
2704
- right: "24px",
2705
- top: "24px",
2706
- zIndex: 9999999999
2707
- }, style),
2708
- children: children
2805
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ToastsProvider, {
2806
+ children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Provider3, {
2807
+ children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_themes36.Flex, {
2808
+ direction: "column",
2809
+ justify: "end",
2810
+ align: "end",
2811
+ position: "fixed",
2812
+ style: _object_spread({
2813
+ bottom: "24px",
2814
+ right: "24px",
2815
+ top: "24px",
2816
+ zIndex: 9999999999
2817
+ }, style),
2818
+ children: children
2819
+ })
2709
2820
  })
2710
2821
  });
2711
2822
  };
2712
2823
  // src/components/threads/ThreadDialog/Trigger/index.tsx
2713
- var import_themes36 = require("@radix-ui/themes");
2714
- var import_jsx_runtime49 = require("react/jsx-runtime");
2824
+ var import_themes37 = require("@radix-ui/themes");
2825
+ var import_jsx_runtime51 = require("react/jsx-runtime");
2715
2826
  var Trigger = function(param) {
2716
2827
  var children = param.children;
2717
2828
  var setIsOpen = useThreadDialogContext().setIsOpen;
2718
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes36.Flex, {
2829
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes37.Flex, {
2719
2830
  onClick: function() {
2720
2831
  return setIsOpen(function(prev) {
2721
2832
  return !prev;
@@ -2727,24 +2838,24 @@ var Trigger = function(param) {
2727
2838
  });
2728
2839
  };
2729
2840
  // src/components/threads/ThreadDialog/Button/index.tsx
2730
- var import_themes37 = require("@radix-ui/themes");
2731
- var import_react_icons6 = require("@radix-ui/react-icons");
2732
- var import_jsx_runtime50 = require("react/jsx-runtime");
2841
+ var import_themes38 = require("@radix-ui/themes");
2842
+ var import_react_icons7 = require("@radix-ui/react-icons");
2843
+ var import_jsx_runtime52 = require("react/jsx-runtime");
2733
2844
  var Button3 = function() {
2734
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_themes37.IconButton, {
2845
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_themes38.IconButton, {
2735
2846
  size: "4",
2736
2847
  radius: "full",
2737
- children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_react_icons6.ChatBubbleIcon, {})
2848
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_icons7.ChatBubbleIcon, {})
2738
2849
  });
2739
2850
  };
2740
2851
  // src/components/threads/ThreadDialog/Content/index.tsx
2741
- var import_themes38 = require("@radix-ui/themes");
2742
- var import_jsx_runtime51 = require("react/jsx-runtime");
2743
- var Root6 = function(param) {
2852
+ var import_themes39 = require("@radix-ui/themes");
2853
+ var import_jsx_runtime53 = require("react/jsx-runtime");
2854
+ var Root7 = function(param) {
2744
2855
  var children = param.children;
2745
2856
  var isOpen = useThreadDialogContext().isOpen;
2746
2857
  if (!isOpen) return null;
2747
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes38.Card, {
2858
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes39.Card, {
2748
2859
  mb: "3",
2749
2860
  style: {
2750
2861
  display: "flex",
@@ -2753,7 +2864,7 @@ var Root6 = function(param) {
2753
2864
  maxWidth: "400px",
2754
2865
  maxHeight: "720px"
2755
2866
  },
2756
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes38.Inset, {
2867
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes39.Inset, {
2757
2868
  clip: "padding-box",
2758
2869
  side: "all",
2759
2870
  pb: "current",
@@ -2766,51 +2877,51 @@ var Root6 = function(param) {
2766
2877
  });
2767
2878
  };
2768
2879
  var Content4 = function() {
2769
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Root6, {
2770
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Thread.Root, {
2880
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Root7, {
2881
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Thread.Root, {
2771
2882
  children: [
2772
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Thread.Messages, {
2883
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Thread.Messages, {
2773
2884
  style: {
2774
2885
  paddingTop: "var(--space-5)",
2775
2886
  paddingRight: "var(--space-5)",
2776
2887
  paddingLeft: "var(--space-5)"
2777
2888
  }
2778
2889
  }),
2779
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes38.Flex, {
2890
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes39.Flex, {
2780
2891
  direction: "column",
2781
2892
  pl: "5",
2782
2893
  pr: "5",
2783
2894
  pb: "3",
2784
2895
  flexShrink: "0",
2785
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Thread.MessageForm, {})
2896
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Thread.MessageForm, {})
2786
2897
  })
2787
2898
  ]
2788
2899
  })
2789
2900
  });
2790
2901
  };
2791
- Content4.Root = Root6;
2902
+ Content4.Root = Root7;
2792
2903
  // src/components/threads/ThreadDialog/index.tsx
2793
- var import_jsx_runtime52 = require("react/jsx-runtime");
2904
+ var import_jsx_runtime54 = require("react/jsx-runtime");
2794
2905
  var ThreadDialog = function() {
2795
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Root5, {
2906
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Root6, {
2796
2907
  children: [
2797
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Content4, {}),
2798
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Trigger, {
2799
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Button3, {})
2908
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Content4, {}),
2909
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Trigger, {
2910
+ children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Button3, {})
2800
2911
  })
2801
2912
  ]
2802
2913
  });
2803
2914
  };
2804
- ThreadDialog.Root = Root5;
2915
+ ThreadDialog.Root = Root6;
2805
2916
  ThreadDialog.Trigger = Trigger;
2806
2917
  ThreadDialog.Button = Button3;
2807
2918
  ThreadDialog.Content = Content4;
2808
2919
  // src/components/threads/AudioThread/Root/index.tsx
2809
2920
  var import_runtime = require("regenerator-runtime/runtime");
2810
- var import_themes39 = require("@radix-ui/themes");
2921
+ var import_themes40 = require("@radix-ui/themes");
2811
2922
  // src/contexts/threads/AudioThreadContext/index.ts
2812
- var import_react40 = require("react");
2813
- var AudioThreadContext = (0, import_react40.createContext)({
2923
+ var import_react43 = require("react");
2924
+ var AudioThreadContext = (0, import_react43.createContext)({
2814
2925
  status: "idle",
2815
2926
  recorderProps: {
2816
2927
  status: "idle",
@@ -2878,11 +2989,11 @@ var blobToData = function(blob) {
2878
2989
  });
2879
2990
  };
2880
2991
  // src/hooks/audioThreads/useStatus/index.ts
2881
- var import_react41 = require("react");
2992
+ var import_react44 = require("react");
2882
2993
  var useStatus = function(param) {
2883
2994
  var messageAudioProps = param.messageAudioProps, recorderProps = param.recorderProps, createMessageProps = param.createMessageProps;
2884
2995
  var isRunActiveProps = useIsRunActive();
2885
- var status = (0, import_react41.useMemo)(function() {
2996
+ var status = (0, import_react44.useMemo)(function() {
2886
2997
  if (recorderProps.status === "recording") return "recording";
2887
2998
  if (createMessageProps.isPending) return "creatingMessage";
2888
2999
  if (isRunActiveProps.isRunActive) return "runActive";
@@ -2905,19 +3016,19 @@ var useStatus = function(param) {
2905
3016
  // src/hooks/audioThreads/useRecorder/index.ts
2906
3017
  var import_dayjs = __toESM(require("dayjs"), 1);
2907
3018
  var import_use_audio_capture = require("use-audio-capture");
2908
- var import_react42 = require("react");
3019
+ var import_react45 = require("react");
2909
3020
  var import_react_use_audio_player = require("react-use-audio-player");
2910
3021
  var import_react_use3 = require("react-use");
2911
3022
  var useRecorder = function(param) {
2912
3023
  var isStopOnSilence = param.isStopOnSilence, onStart = param.onStart, onStop = param.onStop;
2913
- var _ref = _sliced_to_array((0, import_react42.useState)(null), 2), silenceStart = _ref[0], setSilenceStart = _ref[1];
2914
- var _ref1 = _sliced_to_array((0, import_react42.useState)(null), 2), noiseStart = _ref1[0], setNoiseStart = _ref1[1];
2915
- var _ref2 = _sliced_to_array((0, import_react42.useState)(null), 2), mediaStream = _ref2[0], setMediaStream = _ref2[1];
2916
- var _ref3 = _sliced_to_array((0, import_react42.useState)("idle"), 2), status = _ref3[0], setStatus = _ref3[1];
3024
+ var _ref = _sliced_to_array((0, import_react45.useState)(null), 2), silenceStart = _ref[0], setSilenceStart = _ref[1];
3025
+ var _ref1 = _sliced_to_array((0, import_react45.useState)(null), 2), noiseStart = _ref1[0], setNoiseStart = _ref1[1];
3026
+ var _ref2 = _sliced_to_array((0, import_react45.useState)(null), 2), mediaStream = _ref2[0], setMediaStream = _ref2[1];
3027
+ var _ref3 = _sliced_to_array((0, import_react45.useState)("idle"), 2), status = _ref3[0], setStatus = _ref3[1];
2917
3028
  var startAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
2918
3029
  var endAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
2919
- var _ref4 = _sliced_to_array((0, import_react42.useState)(false), 2), isLoaded = _ref4[0], setIsLoaded = _ref4[1];
2920
- (0, import_react42.useEffect)(function() {
3030
+ var _ref4 = _sliced_to_array((0, import_react45.useState)(false), 2), isLoaded = _ref4[0], setIsLoaded = _ref4[1];
3031
+ (0, import_react45.useEffect)(function() {
2921
3032
  if (isLoaded) return;
2922
3033
  setIsLoaded(true);
2923
3034
  }, [
@@ -2975,9 +3086,9 @@ var useRecorder = function(param) {
2975
3086
  setNoiseStart(null);
2976
3087
  }
2977
3088
  });
2978
- var _ref5 = _sliced_to_array((0, import_react42.useState)(null), 2), audioEngine = _ref5[0], setAudioEngine = _ref5[1];
2979
- var isInited = (0, import_react42.useRef)(false);
2980
- (0, import_react42.useEffect)(function() {
3089
+ var _ref5 = _sliced_to_array((0, import_react45.useState)(null), 2), audioEngine = _ref5[0], setAudioEngine = _ref5[1];
3090
+ var isInited = (0, import_react45.useRef)(false);
3091
+ (0, import_react45.useEffect)(function() {
2981
3092
  if (!mediaStream) return;
2982
3093
  if (isInited.current) return;
2983
3094
  isInited.current = true;
@@ -2990,7 +3101,7 @@ var useRecorder = function(param) {
2990
3101
  isInited,
2991
3102
  mediaStream
2992
3103
  ]);
2993
- var visualizationAnalyser = (0, import_react42.useMemo)(function() {
3104
+ var visualizationAnalyser = (0, import_react45.useMemo)(function() {
2994
3105
  if (!audioEngine) return null;
2995
3106
  var result = audioEngine.audioContext.createAnalyser();
2996
3107
  audioEngine.source.connect(result);
@@ -2998,7 +3109,7 @@ var useRecorder = function(param) {
2998
3109
  }, [
2999
3110
  audioEngine
3000
3111
  ]);
3001
- var silenceAnalyser = (0, import_react42.useMemo)(function() {
3112
+ var silenceAnalyser = (0, import_react45.useMemo)(function() {
3002
3113
  if (!audioEngine) return null;
3003
3114
  var result = audioEngine.audioContext.createAnalyser();
3004
3115
  result.minDecibels = -45;
@@ -3007,7 +3118,7 @@ var useRecorder = function(param) {
3007
3118
  }, [
3008
3119
  audioEngine
3009
3120
  ]);
3010
- var handleSilence = (0, import_react42.useCallback)(function() {
3121
+ var handleSilence = (0, import_react45.useCallback)(function() {
3011
3122
  if (!silenceAnalyser) return;
3012
3123
  var frequencyData = new Uint8Array(silenceAnalyser.frequencyBinCount);
3013
3124
  silenceAnalyser.getByteFrequencyData(frequencyData);
@@ -3030,7 +3141,7 @@ var useRecorder = function(param) {
3030
3141
  setNoiseStart,
3031
3142
  setSilenceStart
3032
3143
  ]);
3033
- (0, import_react42.useEffect)(function() {
3144
+ (0, import_react45.useEffect)(function() {
3034
3145
  if (!isStopOnSilence) return;
3035
3146
  requestAnimationFrame(function() {
3036
3147
  return handleSilence();
@@ -3053,7 +3164,7 @@ var useRecorder = function(param) {
3053
3164
  });
3054
3165
  };
3055
3166
  // src/hooks/audioThreads/useMessageAudio/index.ts
3056
- var import_react43 = require("react");
3167
+ var import_react46 = require("react");
3057
3168
  var import_howler = require("howler");
3058
3169
  var import_react_use_audio_player2 = require("react-use-audio-player");
3059
3170
  // src/hooks/audioThreads/useMessageAudio/lib/input.ts
@@ -3079,11 +3190,11 @@ var isHtmlAudioSupported = !unsupportedNames.includes(((_this = (0, import_detec
3079
3190
  // src/hooks/audioThreads/useMessageAudio/index.ts
3080
3191
  var useMessageAudio = function(param) {
3081
3192
  var onEnd = param.onEnd;
3082
- var _ref = _sliced_to_array((0, import_react43.useState)([]), 2), playedMessageIds = _ref[0], setPlayedMessageIds = _ref[1];
3193
+ var _ref = _sliced_to_array((0, import_react46.useState)([]), 2), playedMessageIds = _ref[0], setPlayedMessageIds = _ref[1];
3083
3194
  var audioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
3084
3195
  var superinterfaceContext = useSuperinterfaceContext();
3085
3196
  var latestMessageProps = useLatestMessage();
3086
- (0, import_react43.useEffect)(function() {
3197
+ (0, import_react46.useEffect)(function() {
3087
3198
  if (audioPlayer.playing) return;
3088
3199
  if (!latestMessageProps.latestMessage) return;
3089
3200
  if (latestMessageProps.latestMessage.role !== "assistant") return;
@@ -3117,9 +3228,9 @@ var useMessageAudio = function(param) {
3117
3228
  playedMessageIds,
3118
3229
  onEnd
3119
3230
  ]);
3120
- var isInited = (0, import_react43.useRef)(false);
3121
- var _ref1 = _sliced_to_array((0, import_react43.useState)(null), 2), audioEngine = _ref1[0], setAudioEngine = _ref1[1];
3122
- (0, import_react43.useEffect)(function() {
3231
+ var isInited = (0, import_react46.useRef)(false);
3232
+ var _ref1 = _sliced_to_array((0, import_react46.useState)(null), 2), audioEngine = _ref1[0], setAudioEngine = _ref1[1];
3233
+ (0, import_react46.useEffect)(function() {
3123
3234
  if (!audioPlayer.playing) return;
3124
3235
  if (isInited.current) return;
3125
3236
  isInited.current = true;
@@ -3140,7 +3251,7 @@ var useMessageAudio = function(param) {
3140
3251
  audioPlayer,
3141
3252
  isInited
3142
3253
  ]);
3143
- var visualizationAnalyser = (0, import_react43.useMemo)(function() {
3254
+ var visualizationAnalyser = (0, import_react46.useMemo)(function() {
3144
3255
  if (!audioEngine) return null;
3145
3256
  var result = audioEngine.audioContext.createAnalyser();
3146
3257
  audioEngine.source.connect(audioEngine.audioContext.destination);
@@ -3154,8 +3265,8 @@ var useMessageAudio = function(param) {
3154
3265
  });
3155
3266
  };
3156
3267
  // src/components/threads/AudioThread/Root/index.tsx
3157
- var import_jsx_runtime53 = require("react/jsx-runtime");
3158
- var Root7 = function(param) {
3268
+ var import_jsx_runtime55 = require("react/jsx-runtime");
3269
+ var Root8 = function(param) {
3159
3270
  var children = param.children;
3160
3271
  useLifecycle();
3161
3272
  var createMessageProps = useCreateMessage();
@@ -3214,13 +3325,13 @@ var Root7 = function(param) {
3214
3325
  createMessageProps: createMessageProps,
3215
3326
  messageAudioProps: messageAudioProps
3216
3327
  }).status;
3217
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(AudioThreadContext.Provider, {
3328
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(AudioThreadContext.Provider, {
3218
3329
  value: {
3219
3330
  status: status,
3220
3331
  recorderProps: recorderProps,
3221
3332
  messageAudioProps: messageAudioProps
3222
3333
  },
3223
- children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes39.Flex, {
3334
+ children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes40.Flex, {
3224
3335
  direction: "column",
3225
3336
  flexGrow: "1",
3226
3337
  p: "5",
@@ -3229,23 +3340,23 @@ var Root7 = function(param) {
3229
3340
  });
3230
3341
  };
3231
3342
  // src/components/threads/AudioThread/Visualization/index.tsx
3232
- var import_themes40 = require("@radix-ui/themes");
3343
+ var import_themes41 = require("@radix-ui/themes");
3233
3344
  // src/hooks/threads/useAudioThreadContext/index.ts
3234
- var import_react44 = require("react");
3345
+ var import_react47 = require("react");
3235
3346
  var useAudioThreadContext = function() {
3236
- return (0, import_react44.useContext)(AudioThreadContext);
3347
+ return (0, import_react47.useContext)(AudioThreadContext);
3237
3348
  };
3238
3349
  // src/components/threads/AudioThread/Visualization/index.tsx
3239
- var import_jsx_runtime54 = require("react/jsx-runtime");
3350
+ var import_jsx_runtime56 = require("react/jsx-runtime");
3240
3351
  var Visualization = function() {
3241
3352
  var audioThreadContext = useAudioThreadContext();
3242
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes40.Flex, {
3353
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes41.Flex, {
3243
3354
  direction: "column",
3244
3355
  align: "center",
3245
3356
  justify: "center",
3246
3357
  mb: "3",
3247
3358
  flexGrow: "1",
3248
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes40.Flex, {
3359
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes41.Flex, {
3249
3360
  align: "center",
3250
3361
  justify: "center",
3251
3362
  height: "200px",
@@ -3258,23 +3369,23 @@ var Visualization = function() {
3258
3369
  });
3259
3370
  };
3260
3371
  // src/components/threads/AudioThread/Form/index.tsx
3261
- var import_react_icons8 = require("@radix-ui/react-icons");
3262
- var import_themes43 = require("@radix-ui/themes");
3372
+ var import_react_icons9 = require("@radix-ui/react-icons");
3373
+ var import_themes44 = require("@radix-ui/themes");
3263
3374
  // src/components/threads/AudioThread/Form/Visualizer/index.tsx
3264
3375
  var import_lodash7 = __toESM(require("lodash"), 1);
3265
- var import_themes41 = require("@radix-ui/themes");
3266
- var import_react45 = require("react");
3376
+ var import_themes42 = require("@radix-ui/themes");
3377
+ var import_react48 = require("react");
3267
3378
  var import_radash10 = require("radash");
3268
- var import_jsx_runtime55 = require("react/jsx-runtime");
3379
+ var import_jsx_runtime57 = require("react/jsx-runtime");
3269
3380
  var barCount = 4;
3270
3381
  var Visualizer = function() {
3271
3382
  var audioThreadContext = useAudioThreadContext();
3272
3383
  var visualizationAnalyser = audioThreadContext.recorderProps.visualizationAnalyser;
3273
- var _ref = _sliced_to_array((0, import_react45.useState)(function() {
3384
+ var _ref = _sliced_to_array((0, import_react48.useState)(function() {
3274
3385
  return new AudioContext().createAnalyser();
3275
3386
  }), 1), emptyVisualizer = _ref[0];
3276
- var _ref1 = _sliced_to_array((0, import_react45.useState)([]), 2), barHeights = _ref1[0], setBarHeights = _ref1[1];
3277
- var draw = (0, import_react45.useCallback)(function(param) {
3387
+ var _ref1 = _sliced_to_array((0, import_react48.useState)([]), 2), barHeights = _ref1[0], setBarHeights = _ref1[1];
3388
+ var draw = (0, import_react48.useCallback)(function(param) {
3278
3389
  var visualizationAnalyser2 = param.visualizationAnalyser;
3279
3390
  var frequencyData = new Uint8Array(visualizationAnalyser2.frequencyBinCount / 15);
3280
3391
  visualizationAnalyser2.getByteFrequencyData(frequencyData);
@@ -3288,7 +3399,7 @@ var Visualizer = function() {
3288
3399
  });
3289
3400
  });
3290
3401
  }, []);
3291
- (0, import_react45.useEffect)(function() {
3402
+ (0, import_react48.useEffect)(function() {
3292
3403
  draw({
3293
3404
  visualizationAnalyser: visualizationAnalyser || emptyVisualizer
3294
3405
  });
@@ -3297,7 +3408,7 @@ var Visualizer = function() {
3297
3408
  visualizationAnalyser,
3298
3409
  emptyVisualizer
3299
3410
  ]);
3300
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes41.Grid, {
3411
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes42.Grid, {
3301
3412
  columns: "".concat(barCount),
3302
3413
  gap: "1",
3303
3414
  width: "auto",
@@ -3306,12 +3417,12 @@ var Visualizer = function() {
3306
3417
  gridTemplateColumns: "repeat(4, minmax(0, 1fr))"
3307
3418
  },
3308
3419
  children: barHeights.map(function(barHeight, index) {
3309
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes41.Flex, {
3420
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes42.Flex, {
3310
3421
  direction: "column",
3311
3422
  align: "center",
3312
3423
  justify: "center",
3313
3424
  height: "20px",
3314
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes41.Flex, {
3425
+ children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes42.Flex, {
3315
3426
  minHeight: "50%",
3316
3427
  maxHeight: "100%",
3317
3428
  height: "".concat(barHeight + 20, "%"),
@@ -3326,31 +3437,31 @@ var Visualizer = function() {
3326
3437
  });
3327
3438
  };
3328
3439
  // src/components/threads/AudioThread/Form/ActionButton/index.tsx
3329
- var import_themes42 = require("@radix-ui/themes");
3330
- var import_react_icons7 = require("@radix-ui/react-icons");
3331
- var import_jsx_runtime56 = require("react/jsx-runtime");
3440
+ var import_themes43 = require("@radix-ui/themes");
3441
+ var import_react_icons8 = require("@radix-ui/react-icons");
3442
+ var import_jsx_runtime58 = require("react/jsx-runtime");
3332
3443
  var ActionButton = function() {
3333
3444
  var audioThreadContext = useAudioThreadContext();
3334
3445
  if (audioThreadContext.status === "recording") {
3335
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_themes42.Flex, {
3446
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_themes43.Flex, {
3336
3447
  align: "center",
3337
3448
  children: [
3338
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.Flex, {
3449
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.Flex, {
3339
3450
  mr: "3",
3340
3451
  ml: "-7",
3341
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3452
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3342
3453
  onClick: audioThreadContext.recorderProps.pause,
3343
3454
  color: "gray",
3344
3455
  radius: "full",
3345
3456
  size: "1",
3346
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.PauseIcon, {})
3457
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons8.PauseIcon, {})
3347
3458
  })
3348
3459
  }),
3349
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.Tooltip, {
3460
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.Tooltip, {
3350
3461
  open: true,
3351
3462
  content: "Send your message",
3352
3463
  side: "bottom",
3353
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3464
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3354
3465
  onClick: audioThreadContext.recorderProps.stop,
3355
3466
  color: "gray",
3356
3467
  highContrast: true,
@@ -3359,14 +3470,14 @@ var ActionButton = function() {
3359
3470
  style: {
3360
3471
  border: "2px solid var(--gray-8)"
3361
3472
  },
3362
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.ArrowUpIcon, {})
3473
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons8.ArrowUpIcon, {})
3363
3474
  })
3364
3475
  })
3365
3476
  ]
3366
3477
  });
3367
3478
  }
3368
3479
  if (audioThreadContext.status === "recorderPaused") {
3369
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3480
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3370
3481
  onClick: audioThreadContext.recorderProps.resume,
3371
3482
  color: "red",
3372
3483
  radius: "full",
@@ -3374,11 +3485,11 @@ var ActionButton = function() {
3374
3485
  style: {
3375
3486
  border: "2px solid var(--gray-8)"
3376
3487
  },
3377
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.ResumeIcon, {})
3488
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons8.ResumeIcon, {})
3378
3489
  });
3379
3490
  }
3380
3491
  if (audioThreadContext.status === "idle") {
3381
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3492
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3382
3493
  onClick: function() {
3383
3494
  return audioThreadContext.recorderProps.start();
3384
3495
  },
@@ -3391,7 +3502,7 @@ var ActionButton = function() {
3391
3502
  });
3392
3503
  }
3393
3504
  if (audioThreadContext.status === "playing") {
3394
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3505
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3395
3506
  onClick: function() {
3396
3507
  return audioThreadContext.messageAudioProps.pause();
3397
3508
  },
@@ -3401,11 +3512,11 @@ var ActionButton = function() {
3401
3512
  style: {
3402
3513
  border: "2px solid var(--gray-8)"
3403
3514
  },
3404
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.PauseIcon, {})
3515
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons8.PauseIcon, {})
3405
3516
  });
3406
3517
  }
3407
3518
  if (audioThreadContext.status === "playerPaused") {
3408
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3519
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3409
3520
  onClick: function() {
3410
3521
  return audioThreadContext.messageAudioProps.play();
3411
3522
  },
@@ -3415,10 +3526,10 @@ var ActionButton = function() {
3415
3526
  style: {
3416
3527
  border: "2px solid var(--gray-8)"
3417
3528
  },
3418
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.ResumeIcon, {})
3529
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons8.ResumeIcon, {})
3419
3530
  });
3420
3531
  }
3421
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3532
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3422
3533
  size: "4",
3423
3534
  color: "red",
3424
3535
  radius: "full",
@@ -3429,88 +3540,88 @@ var ActionButton = function() {
3429
3540
  });
3430
3541
  };
3431
3542
  // src/components/threads/AudioThread/Form/index.tsx
3432
- var import_jsx_runtime57 = require("react/jsx-runtime");
3543
+ var import_jsx_runtime59 = require("react/jsx-runtime");
3433
3544
  var Form = function() {
3434
3545
  var audioThreadContext = useAudioThreadContext();
3435
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_themes43.Flex, {
3546
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_themes44.Flex, {
3436
3547
  direction: "column",
3437
3548
  align: "center",
3438
3549
  children: [
3439
- /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_themes43.Flex, {
3550
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_themes44.Flex, {
3440
3551
  pb: "3",
3441
3552
  align: "center",
3442
3553
  children: [
3443
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes43.Flex, {
3554
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_themes44.Flex, {
3444
3555
  ml: "-5",
3445
3556
  mr: "2",
3446
3557
  align: "center",
3447
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react_icons8.SpeakerModerateIcon, {
3558
+ children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react_icons9.SpeakerModerateIcon, {
3448
3559
  style: {
3449
3560
  color: "var(--".concat(audioThreadContext.status === "recording" ? "mint" : "gray", "-12)")
3450
3561
  }
3451
3562
  })
3452
3563
  }),
3453
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes43.Flex, {
3564
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_themes44.Flex, {
3454
3565
  px: "2",
3455
3566
  py: "1",
3456
3567
  style: {
3457
3568
  backgroundColor: "var(--".concat(audioThreadContext.status === "recording" ? "mint" : "gray", "-4)"),
3458
3569
  borderRadius: "var(--radius-6)"
3459
3570
  },
3460
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Visualizer, {})
3571
+ children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Visualizer, {})
3461
3572
  })
3462
3573
  ]
3463
3574
  }),
3464
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ActionButton, {})
3575
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(ActionButton, {})
3465
3576
  ]
3466
3577
  });
3467
3578
  };
3468
3579
  // src/components/threads/AudioThread/index.tsx
3469
- var import_jsx_runtime58 = require("react/jsx-runtime");
3580
+ var import_jsx_runtime60 = require("react/jsx-runtime");
3470
3581
  var AudioThread = function(props) {
3471
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(Root7, _object_spread_props(_object_spread({}, props), {
3582
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(Root8, _object_spread_props(_object_spread({}, props), {
3472
3583
  children: [
3473
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Visualization, {}),
3474
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Form, {})
3584
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Visualization, {}),
3585
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Form, {})
3475
3586
  ]
3476
3587
  }));
3477
3588
  };
3478
- AudioThread.Root = Root7;
3589
+ AudioThread.Root = Root8;
3479
3590
  AudioThread.Visualization = Visualization;
3480
3591
  AudioThread.Form = Form;
3481
3592
  // src/components/threads/AudioThreadDialog/index.tsx
3482
- var import_jsx_runtime59 = require("react/jsx-runtime");
3593
+ var import_jsx_runtime61 = require("react/jsx-runtime");
3483
3594
  var AudioThreadDialog = function() {
3484
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(Root5, {
3595
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(Root6, {
3485
3596
  children: [
3486
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Content4.Root, {
3487
- children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(AudioThread, {})
3597
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Content4.Root, {
3598
+ children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(AudioThread, {})
3488
3599
  }),
3489
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Trigger, {
3490
- children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Button3, {})
3600
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Trigger, {
3601
+ children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Button3, {})
3491
3602
  })
3492
3603
  ]
3493
3604
  });
3494
3605
  };
3495
- AudioThreadDialog.Root = Root5;
3606
+ AudioThreadDialog.Root = Root6;
3496
3607
  AudioThreadDialog.Trigger = Trigger;
3497
3608
  AudioThreadDialog.Button = Button3;
3498
3609
  AudioThreadDialog.Content = Content4;
3499
3610
  // src/components/suggestions/Suggestions/index.tsx
3500
- var import_react47 = require("react");
3611
+ var import_react50 = require("react");
3501
3612
  // src/components/suggestions/Suggestions/Content.tsx
3502
- var import_react46 = require("react");
3613
+ var import_react49 = require("react");
3503
3614
  var import_radash11 = require("radash");
3504
3615
  var import_react_children_utilities = require("react-children-utilities");
3505
- var import_themes45 = require("@radix-ui/themes");
3616
+ var import_themes46 = require("@radix-ui/themes");
3506
3617
  // src/components/suggestions/Suggestions/Item.tsx
3507
- var import_react_icons9 = require("@radix-ui/react-icons");
3508
- var import_themes44 = require("@radix-ui/themes");
3509
- var import_jsx_runtime60 = require("react/jsx-runtime");
3618
+ var import_react_icons10 = require("@radix-ui/react-icons");
3619
+ var import_themes45 = require("@radix-ui/themes");
3620
+ var import_jsx_runtime62 = require("react/jsx-runtime");
3510
3621
  var Item = function(param) {
3511
3622
  var suggestion = param.suggestion, isDisabled = param.isDisabled;
3512
3623
  var _useCreateMessage = useCreateMessage(), createMessage = _useCreateMessage.createMessage, isPending = _useCreateMessage.isPending;
3513
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Content5, {
3624
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Content5, {
3514
3625
  onClick: function() {
3515
3626
  createMessage({
3516
3627
  // @ts-ignore-next-line
@@ -3524,32 +3635,32 @@ var Item = function(param) {
3524
3635
  };
3525
3636
  var Content5 = function(param) {
3526
3637
  var onClick = param.onClick, isDisabled = param.isDisabled, isPending = param.isPending, children = param.children;
3527
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_themes44.Button, {
3638
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_themes45.Button, {
3528
3639
  variant: "soft",
3529
3640
  onClick: onClick,
3530
3641
  disabled: isDisabled,
3531
3642
  children: [
3532
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_themes44.Text, {
3643
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes45.Text, {
3533
3644
  size: "1",
3534
3645
  weight: "regular",
3535
3646
  children: children
3536
3647
  }),
3537
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_themes44.Spinner, {
3648
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes45.Spinner, {
3538
3649
  loading: isPending,
3539
- children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_icons9.ArrowUpIcon, {})
3650
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_icons10.ArrowUpIcon, {})
3540
3651
  })
3541
3652
  ]
3542
3653
  });
3543
3654
  };
3544
3655
  Item.Content = Content5;
3545
3656
  // src/components/suggestions/Suggestions/Content.tsx
3546
- var import_jsx_runtime61 = require("react/jsx-runtime");
3657
+ var import_jsx_runtime63 = require("react/jsx-runtime");
3547
3658
  var Content6 = function(param) {
3548
3659
  var children = param.children;
3549
3660
  var messageContext = useMessageContext();
3550
3661
  var latestMessageProps = useLatestMessage();
3551
3662
  var isRunActiveProps = useIsRunActive();
3552
- var suggestions = (0, import_react46.useMemo)(function() {
3663
+ var suggestions = (0, import_react49.useMemo)(function() {
3553
3664
  return (0, import_react_children_utilities.onlyText)(children).split(/\r?\n/).filter(function(c) {
3554
3665
  return !(0, import_radash11.isEmpty)(c);
3555
3666
  }).map(function(c) {
@@ -3558,7 +3669,7 @@ var Content6 = function(param) {
3558
3669
  }, [
3559
3670
  children
3560
3671
  ]);
3561
- var isDisabled = (0, import_react46.useMemo)(function() {
3672
+ var isDisabled = (0, import_react49.useMemo)(function() {
3562
3673
  var _messageContext_message;
3563
3674
  return ((_messageContext_message = messageContext.message) === null || _messageContext_message === void 0 ? void 0 : _messageContext_message.id) !== latestMessageProps.latestMessage.id || isRunActiveProps.isRunActive;
3564
3675
  }, [
@@ -3567,12 +3678,12 @@ var Content6 = function(param) {
3567
3678
  isRunActiveProps
3568
3679
  ]);
3569
3680
  if ((0, import_radash11.isEmpty)(suggestions)) return null;
3570
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes45.Flex, {
3681
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_themes46.Flex, {
3571
3682
  gap: "2",
3572
3683
  py: "2",
3573
3684
  wrap: "wrap",
3574
3685
  children: suggestions.map(function(suggestion) {
3575
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Item, {
3686
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Item, {
3576
3687
  suggestion: suggestion,
3577
3688
  isDisabled: isDisabled
3578
3689
  }, suggestion);
@@ -3580,11 +3691,11 @@ var Content6 = function(param) {
3580
3691
  });
3581
3692
  };
3582
3693
  // src/components/suggestions/Suggestions/index.tsx
3583
- var import_jsx_runtime62 = require("react/jsx-runtime");
3694
+ var import_jsx_runtime64 = require("react/jsx-runtime");
3584
3695
  var Suggestions = function(param) {
3585
3696
  var children = param.children;
3586
3697
  var latestMessageProps = useLatestMessage();
3587
- var isDisabled = (0, import_react47.useMemo)(function() {
3698
+ var isDisabled = (0, import_react50.useMemo)(function() {
3588
3699
  var // @ts-ignore-next-line
3589
3700
  _latestMessageProps_latestMessage_metadata, _latestMessageProps_latestMessage;
3590
3701
  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;
@@ -3593,26 +3704,26 @@ var Suggestions = function(param) {
3593
3704
  ]);
3594
3705
  if (latestMessageProps.isLoading) return null;
3595
3706
  if (isDisabled) return null;
3596
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Content6, {
3707
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Content6, {
3597
3708
  children: children
3598
3709
  });
3599
3710
  };
3600
3711
  Suggestions.Item = Item;
3601
3712
  // src/components/markdown/MarkdownProvider/index.tsx
3602
- var import_react48 = require("react");
3603
- var import_jsx_runtime63 = require("react/jsx-runtime");
3713
+ var import_react51 = require("react");
3714
+ var import_jsx_runtime65 = require("react/jsx-runtime");
3604
3715
  var MarkdownProvider = function(_param) {
3605
3716
  var children = _param.children, rest = _object_without_properties(_param, [
3606
3717
  "children"
3607
3718
  ]);
3608
3719
  var prevMarkdownContext = useMarkdownContext();
3609
- var value = (0, import_react48.useMemo)(function() {
3720
+ var value = (0, import_react51.useMemo)(function() {
3610
3721
  return merge(prevMarkdownContext, rest);
3611
3722
  }, [
3612
3723
  rest,
3613
3724
  prevMarkdownContext
3614
3725
  ]);
3615
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(MarkdownContext.Provider, {
3726
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(MarkdownContext.Provider, {
3616
3727
  value: value,
3617
3728
  children: children
3618
3729
  });