@superinterface/react 2.0.7 → 2.0.9

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;
@@ -1947,6 +1962,7 @@ var useManageRuns = function() {
1947
1962
  return null;
1948
1963
  };
1949
1964
  // src/hooks/runs/usePolling/index.tsx
1965
+ var import_react31 = require("react");
1950
1966
  var import_react_query7 = require("@tanstack/react-query");
1951
1967
  var import_react_use = require("react-use");
1952
1968
  // src/hooks/runs/usePolling/lib/refetch.ts
@@ -2017,11 +2033,25 @@ var usePolling = function() {
2017
2033
  }
2018
2034
  });
2019
2035
  }), isRunActiveProps.isRunActive ? 3e3 : null);
2036
+ var prevIsRunActive = (0, import_react_use.usePrevious)(isRunActiveProps.isRunActive);
2037
+ (0, import_react31.useEffect)(function() {
2038
+ if (prevIsRunActive && !isRunActiveProps.isRunActive) {
2039
+ refetch({
2040
+ queryClient: queryClient,
2041
+ threadContext: threadContext
2042
+ });
2043
+ }
2044
+ }, [
2045
+ queryClient,
2046
+ threadContext,
2047
+ isRunActiveProps,
2048
+ prevIsRunActive
2049
+ ]);
2020
2050
  return null;
2021
2051
  };
2022
2052
  // src/hooks/actions/useManageActions/index.tsx
2023
2053
  var import_react_query9 = require("@tanstack/react-query");
2024
- var import_react29 = require("react");
2054
+ var import_react32 = require("react");
2025
2055
  // src/hooks/actions/useHandleAction/index.tsx
2026
2056
  var import_radash5 = require("radash");
2027
2057
  var import_react_query8 = require("@tanstack/react-query");
@@ -2094,7 +2124,7 @@ var useManageActions = function() {
2094
2124
  var threadContext = useSuperinterfaceContext();
2095
2125
  var latestRunProps = useLatestRun();
2096
2126
  var handleActionProps = useHandleAction();
2097
- (0, import_react29.useEffect)(function() {
2127
+ (0, import_react32.useEffect)(function() {
2098
2128
  if (handleActionProps.isPending) return;
2099
2129
  if (latestRunProps.isFetching) return;
2100
2130
  if (!latestRunProps.latestRun) return;
@@ -2195,16 +2225,16 @@ var import_themes33 = require("@radix-ui/themes");
2195
2225
  var import_react_icons5 = require("@radix-ui/react-icons");
2196
2226
  var import_themes31 = require("@radix-ui/themes");
2197
2227
  // src/hooks/messages/useMessageFormContext/index.ts
2198
- var import_react31 = require("react");
2228
+ var import_react34 = require("react");
2199
2229
  // src/contexts/messages/MessageFormContext/index.ts
2200
- var import_react30 = require("react");
2201
- var MessageFormContext = (0, import_react30.createContext)({
2230
+ var import_react33 = require("react");
2231
+ var MessageFormContext = (0, import_react33.createContext)({
2202
2232
  isDisabled: false,
2203
2233
  isLoading: false
2204
2234
  });
2205
2235
  // src/hooks/messages/useMessageFormContext/index.ts
2206
2236
  var useMessageFormContext = function() {
2207
- return (0, import_react31.useContext)(MessageFormContext);
2237
+ return (0, import_react34.useContext)(MessageFormContext);
2208
2238
  };
2209
2239
  // src/components/threads/Thread/MessageForm/Submit/index.tsx
2210
2240
  var import_jsx_runtime38 = require("react/jsx-runtime");
@@ -2221,7 +2251,7 @@ var Submit = function() {
2221
2251
  });
2222
2252
  };
2223
2253
  // src/components/threads/Thread/MessageForm/Root/index.tsx
2224
- var import_react32 = require("react");
2254
+ var import_react35 = require("react");
2225
2255
  var import_react_hook_form = require("react-hook-form");
2226
2256
  // src/hooks/messages/useCreateMessage/index.ts
2227
2257
  var import_radash8 = require("radash");
@@ -2369,6 +2399,9 @@ var onSettled3 = function(param) {
2369
2399
  };
2370
2400
  // src/hooks/messages/useCreateMessage/index.ts
2371
2401
  var useCreateMessage = function() {
2402
+ var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
2403
+ onError: function() {}
2404
+ }, _ref_onError = _ref.onError, onError = _ref_onError === void 0 ? function() {} : _ref_onError;
2372
2405
  var queryClient = (0, import_react_query10.useQueryClient)();
2373
2406
  var superinterfaceContext = useSuperinterfaceContext();
2374
2407
  var threadContext = useSuperinterfaceContext();
@@ -2378,7 +2411,8 @@ var useCreateMessage = function() {
2378
2411
  }),
2379
2412
  onSettled: onSettled3({
2380
2413
  queryClient: queryClient
2381
- })
2414
+ }),
2415
+ onError: onError
2382
2416
  }, mutationOptions({
2383
2417
  mutationKeyBase: [
2384
2418
  "createMessage"
@@ -2408,13 +2442,21 @@ var Root2 = function(param) {
2408
2442
  var formProps = (0, import_react_hook_form.useForm)(formOptions);
2409
2443
  var handleSubmit = formProps.handleSubmit, isSubmitting = formProps.formState.isSubmitting, reset = formProps.reset;
2410
2444
  var _useIsRunActive = useIsRunActive(), isRunActive2 = _useIsRunActive.isRunActive;
2411
- var isLoading = (0, import_react32.useMemo)(function() {
2445
+ var isLoading = (0, import_react35.useMemo)(function() {
2412
2446
  return isRunActive2 || isSubmitting;
2413
2447
  }, [
2414
2448
  isRunActive2,
2415
2449
  isSubmitting
2416
2450
  ]);
2417
- var createMessage = useCreateMessage().createMessage;
2451
+ var addToast = useToasts().addToast;
2452
+ var createMessage = useCreateMessage({
2453
+ onError: function(error) {
2454
+ return addToast({
2455
+ type: "error",
2456
+ message: error.message
2457
+ });
2458
+ }
2459
+ }).createMessage;
2418
2460
  var onSubmit = function() {
2419
2461
  var _ref = _async_to_generator(function(data3) {
2420
2462
  return _ts_generator(this, function(_state) {
@@ -2440,7 +2482,7 @@ var Root2 = function(param) {
2440
2482
  };
2441
2483
  }();
2442
2484
  var latestMessage = useLatestMessage().latestMessage;
2443
- var isDisabled = (0, import_react32.useMemo)(function() {
2485
+ var isDisabled = (0, import_react35.useMemo)(function() {
2444
2486
  var // @ts-ignore-next-line
2445
2487
  _latestMessage_metadata;
2446
2488
  return latestMessage === null || latestMessage === void 0 ? void 0 : (_latestMessage_metadata = latestMessage.metadata) === null || _latestMessage_metadata === void 0 ? void 0 : _latestMessage_metadata.isBlocking;
@@ -2463,13 +2505,13 @@ var Root2 = function(param) {
2463
2505
  };
2464
2506
  // src/components/threads/Thread/MessageForm/Field/index.tsx
2465
2507
  var import_react_use2 = require("react-use");
2466
- var import_react34 = require("react");
2508
+ var import_react37 = require("react");
2467
2509
  // src/components/textareas/TextareaBase/index.tsx
2468
- var import_react33 = require("react");
2510
+ var import_react36 = require("react");
2469
2511
  var import_react_textarea_autosize = __toESM(require("react-textarea-autosize"), 1);
2470
2512
  var import_jsx_runtime40 = require("react/jsx-runtime");
2471
2513
  var UPSCALE_RATIO = 16 / 14;
2472
- var TextareaBase = (0, import_react33.forwardRef)(function TextareaBase2(props, ref) {
2514
+ var TextareaBase = (0, import_react36.forwardRef)(function TextareaBase2(props, ref) {
2473
2515
  return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_jsx_runtime40.Fragment, {
2474
2516
  children: [
2475
2517
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("style", {
@@ -2531,19 +2573,19 @@ var Root3 = function(param) {
2531
2573
  });
2532
2574
  };
2533
2575
  var Control = function() {
2534
- var assistantNameContext = (0, import_react34.useContext)(AssistantNameContext);
2576
+ var assistantNameContext = (0, import_react37.useContext)(AssistantNameContext);
2535
2577
  var register = (0, import_react_hook_form2.useFormContext)().register;
2536
2578
  var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
2537
- var isSubmitDisabled = (0, import_react34.useMemo)(function() {
2579
+ var isSubmitDisabled = (0, import_react37.useMemo)(function() {
2538
2580
  return isDisabled || isLoading;
2539
2581
  }, [
2540
2582
  isDisabled,
2541
2583
  isLoading
2542
2584
  ]);
2543
2585
  var isDisabledPrevious = (0, import_react_use2.usePrevious)(isDisabled);
2544
- var textareaRef = (0, import_react34.useRef)(null);
2586
+ var textareaRef = (0, import_react37.useRef)(null);
2545
2587
  var textareaProps = register("content");
2546
- (0, import_react34.useEffect)(function() {
2588
+ (0, import_react37.useEffect)(function() {
2547
2589
  if (isDisabled) return;
2548
2590
  if (!isDisabledPrevious) return;
2549
2591
  if (!textareaRef.current) return;
@@ -2608,11 +2650,11 @@ MessageForm.Submit = Submit;
2608
2650
  // src/components/threads/Thread/Root/index.tsx
2609
2651
  var import_themes34 = require("@radix-ui/themes");
2610
2652
  // src/components/runs/PollingProvider/index.tsx
2611
- var import_react35 = require("react");
2653
+ var import_react38 = require("react");
2612
2654
  var import_jsx_runtime43 = require("react/jsx-runtime");
2613
2655
  var PollingProvider = function(param) {
2614
2656
  var children = param.children;
2615
- var _ref = _sliced_to_array((0, import_react35.useState)(false), 2), isPollRefetching = _ref[0], setIsPollRefetching = _ref[1];
2657
+ var _ref = _sliced_to_array((0, import_react38.useState)(false), 2), isPollRefetching = _ref[0], setIsPollRefetching = _ref[1];
2616
2658
  return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(PollingContext.Provider, {
2617
2659
  value: {
2618
2660
  isPollRefetching: isPollRefetching,
@@ -2656,31 +2698,31 @@ Thread.Root = Root4;
2656
2698
  Thread.Messages = Messages;
2657
2699
  Thread.MessageForm = MessageForm;
2658
2700
  // src/hooks/messages/useMessageContext/index.ts
2659
- var import_react36 = require("react");
2701
+ var import_react39 = require("react");
2660
2702
  var useMessageContext = function() {
2661
- return (0, import_react36.useContext)(MessageContext);
2703
+ return (0, import_react39.useContext)(MessageContext);
2662
2704
  };
2663
2705
  // src/components/threads/ThreadDialog/Root/index.tsx
2664
- var import_themes35 = require("@radix-ui/themes");
2706
+ var import_themes36 = require("@radix-ui/themes");
2665
2707
  // src/components/threads/ThreadDialog/Provider/index.tsx
2666
- var import_react39 = require("react");
2708
+ var import_react42 = require("react");
2667
2709
  // src/contexts/threads/ThreadDialogContext/index.ts
2668
- var import_react37 = require("react");
2669
- var ThreadDialogContext = (0, import_react37.createContext)({
2710
+ var import_react40 = require("react");
2711
+ var ThreadDialogContext = (0, import_react40.createContext)({
2670
2712
  isOpen: false,
2671
2713
  setIsOpen: function() {}
2672
2714
  });
2673
2715
  // src/hooks/threads/useThreadDialogContext/index.ts
2674
- var import_react38 = require("react");
2716
+ var import_react41 = require("react");
2675
2717
  var useThreadDialogContext = function() {
2676
- return (0, import_react38.useContext)(ThreadDialogContext);
2718
+ return (0, import_react41.useContext)(ThreadDialogContext);
2677
2719
  };
2678
2720
  // src/components/threads/ThreadDialog/Provider/index.tsx
2679
2721
  var import_jsx_runtime47 = require("react/jsx-runtime");
2680
2722
  var Provider3 = function(param) {
2681
2723
  var children = param.children;
2682
2724
  var threadDialogContext = useThreadDialogContext();
2683
- var _ref = _sliced_to_array((0, import_react39.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
2725
+ var _ref = _sliced_to_array((0, import_react42.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
2684
2726
  return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(ThreadDialogContext.Provider, {
2685
2727
  value: {
2686
2728
  isOpen: isOpen,
@@ -2689,33 +2731,117 @@ var Provider3 = function(param) {
2689
2731
  children: children
2690
2732
  });
2691
2733
  };
2692
- // src/components/threads/ThreadDialog/Root/index.tsx
2734
+ // src/components/toasts/ToastsProvider/index.tsx
2735
+ var import_react43 = require("react");
2736
+ var Toast2 = __toESM(require("@radix-ui/react-toast"), 1);
2737
+ // src/components/toasts/ToastsProvider/CustomToast.tsx
2738
+ var Toast = __toESM(require("@radix-ui/react-toast"), 1);
2739
+ var import_themes35 = require("@radix-ui/themes");
2740
+ var import_react_icons6 = require("@radix-ui/react-icons");
2693
2741
  var import_jsx_runtime48 = require("react/jsx-runtime");
2694
- var Root5 = function(param) {
2742
+ var CustomToast = function(param) {
2743
+ var toast = param.toast;
2744
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Toast.Root, {
2745
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes35.Card, {
2746
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Toast.Title, {
2747
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_themes35.Flex, {
2748
+ children: [
2749
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes35.Flex, {
2750
+ pr: "2",
2751
+ height: "14px",
2752
+ align: "center",
2753
+ children: toast.type === "success" ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_react_icons6.CheckCircledIcon, {
2754
+ color: "var(--mint-9)"
2755
+ }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_react_icons6.CrossCircledIcon, {
2756
+ color: "var(--red-9)"
2757
+ })
2758
+ }),
2759
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes35.Text, {
2760
+ weight: "medium",
2761
+ size: "1",
2762
+ children: toast.message
2763
+ })
2764
+ ]
2765
+ })
2766
+ })
2767
+ })
2768
+ });
2769
+ };
2770
+ // src/components/toasts/ToastsProvider/index.tsx
2771
+ var import_jsx_runtime49 = require("react/jsx-runtime");
2772
+ var ToastsProvider = function(param) {
2773
+ var children = param.children;
2774
+ var _ref = _sliced_to_array((0, import_react43.useState)([]), 2), toasts = _ref[0], setToasts = _ref[1];
2775
+ var addToast = (0, import_react43.useCallback)(function(toast) {
2776
+ return setToasts(function(prevToasts) {
2777
+ return _to_consumable_array(prevToasts).concat([
2778
+ toast
2779
+ ]);
2780
+ });
2781
+ }, []);
2782
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ToastsContext.Provider, {
2783
+ value: {
2784
+ toasts: toasts,
2785
+ addToast: addToast
2786
+ },
2787
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Toast2.Provider, {
2788
+ children: [
2789
+ children,
2790
+ Array.from(toasts).map(function(toast, index) {
2791
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(CustomToast, {
2792
+ toast: toast
2793
+ }, index);
2794
+ }),
2795
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Toast2.Viewport, {
2796
+ style: {
2797
+ position: "absolute",
2798
+ bottom: 0,
2799
+ right: 0,
2800
+ display: "flex",
2801
+ flexDirection: "column",
2802
+ padding: "var(--space-5)",
2803
+ gap: "var(--space-3)",
2804
+ width: "390px",
2805
+ maxWidth: "100vw",
2806
+ margin: 0,
2807
+ listStyle: "none",
2808
+ zIndex: 99999999999999,
2809
+ outline: "none"
2810
+ }
2811
+ })
2812
+ ]
2813
+ })
2814
+ });
2815
+ };
2816
+ // src/components/threads/ThreadDialog/Root/index.tsx
2817
+ var import_jsx_runtime50 = require("react/jsx-runtime");
2818
+ var Root6 = function(param) {
2695
2819
  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
2820
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ToastsProvider, {
2821
+ children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Provider3, {
2822
+ children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_themes36.Flex, {
2823
+ direction: "column",
2824
+ justify: "end",
2825
+ align: "end",
2826
+ position: "fixed",
2827
+ style: _object_spread({
2828
+ bottom: "24px",
2829
+ right: "24px",
2830
+ top: "24px",
2831
+ zIndex: 9999999999
2832
+ }, style),
2833
+ children: children
2834
+ })
2709
2835
  })
2710
2836
  });
2711
2837
  };
2712
2838
  // src/components/threads/ThreadDialog/Trigger/index.tsx
2713
- var import_themes36 = require("@radix-ui/themes");
2714
- var import_jsx_runtime49 = require("react/jsx-runtime");
2839
+ var import_themes37 = require("@radix-ui/themes");
2840
+ var import_jsx_runtime51 = require("react/jsx-runtime");
2715
2841
  var Trigger = function(param) {
2716
2842
  var children = param.children;
2717
2843
  var setIsOpen = useThreadDialogContext().setIsOpen;
2718
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes36.Flex, {
2844
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes37.Flex, {
2719
2845
  onClick: function() {
2720
2846
  return setIsOpen(function(prev) {
2721
2847
  return !prev;
@@ -2727,24 +2853,24 @@ var Trigger = function(param) {
2727
2853
  });
2728
2854
  };
2729
2855
  // 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");
2856
+ var import_themes38 = require("@radix-ui/themes");
2857
+ var import_react_icons7 = require("@radix-ui/react-icons");
2858
+ var import_jsx_runtime52 = require("react/jsx-runtime");
2733
2859
  var Button3 = function() {
2734
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_themes37.IconButton, {
2860
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_themes38.IconButton, {
2735
2861
  size: "4",
2736
2862
  radius: "full",
2737
- children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_react_icons6.ChatBubbleIcon, {})
2863
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_icons7.ChatBubbleIcon, {})
2738
2864
  });
2739
2865
  };
2740
2866
  // 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) {
2867
+ var import_themes39 = require("@radix-ui/themes");
2868
+ var import_jsx_runtime53 = require("react/jsx-runtime");
2869
+ var Root7 = function(param) {
2744
2870
  var children = param.children;
2745
2871
  var isOpen = useThreadDialogContext().isOpen;
2746
2872
  if (!isOpen) return null;
2747
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes38.Card, {
2873
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes39.Card, {
2748
2874
  mb: "3",
2749
2875
  style: {
2750
2876
  display: "flex",
@@ -2753,7 +2879,7 @@ var Root6 = function(param) {
2753
2879
  maxWidth: "400px",
2754
2880
  maxHeight: "720px"
2755
2881
  },
2756
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes38.Inset, {
2882
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes39.Inset, {
2757
2883
  clip: "padding-box",
2758
2884
  side: "all",
2759
2885
  pb: "current",
@@ -2766,51 +2892,51 @@ var Root6 = function(param) {
2766
2892
  });
2767
2893
  };
2768
2894
  var Content4 = function() {
2769
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Root6, {
2770
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Thread.Root, {
2895
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Root7, {
2896
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Thread.Root, {
2771
2897
  children: [
2772
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Thread.Messages, {
2898
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Thread.Messages, {
2773
2899
  style: {
2774
2900
  paddingTop: "var(--space-5)",
2775
2901
  paddingRight: "var(--space-5)",
2776
2902
  paddingLeft: "var(--space-5)"
2777
2903
  }
2778
2904
  }),
2779
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes38.Flex, {
2905
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes39.Flex, {
2780
2906
  direction: "column",
2781
2907
  pl: "5",
2782
2908
  pr: "5",
2783
2909
  pb: "3",
2784
2910
  flexShrink: "0",
2785
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Thread.MessageForm, {})
2911
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Thread.MessageForm, {})
2786
2912
  })
2787
2913
  ]
2788
2914
  })
2789
2915
  });
2790
2916
  };
2791
- Content4.Root = Root6;
2917
+ Content4.Root = Root7;
2792
2918
  // src/components/threads/ThreadDialog/index.tsx
2793
- var import_jsx_runtime52 = require("react/jsx-runtime");
2919
+ var import_jsx_runtime54 = require("react/jsx-runtime");
2794
2920
  var ThreadDialog = function() {
2795
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Root5, {
2921
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Root6, {
2796
2922
  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, {})
2923
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Content4, {}),
2924
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Trigger, {
2925
+ children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Button3, {})
2800
2926
  })
2801
2927
  ]
2802
2928
  });
2803
2929
  };
2804
- ThreadDialog.Root = Root5;
2930
+ ThreadDialog.Root = Root6;
2805
2931
  ThreadDialog.Trigger = Trigger;
2806
2932
  ThreadDialog.Button = Button3;
2807
2933
  ThreadDialog.Content = Content4;
2808
2934
  // src/components/threads/AudioThread/Root/index.tsx
2809
2935
  var import_runtime = require("regenerator-runtime/runtime");
2810
- var import_themes39 = require("@radix-ui/themes");
2936
+ var import_themes40 = require("@radix-ui/themes");
2811
2937
  // src/contexts/threads/AudioThreadContext/index.ts
2812
- var import_react40 = require("react");
2813
- var AudioThreadContext = (0, import_react40.createContext)({
2938
+ var import_react44 = require("react");
2939
+ var AudioThreadContext = (0, import_react44.createContext)({
2814
2940
  status: "idle",
2815
2941
  recorderProps: {
2816
2942
  status: "idle",
@@ -2878,11 +3004,11 @@ var blobToData = function(blob) {
2878
3004
  });
2879
3005
  };
2880
3006
  // src/hooks/audioThreads/useStatus/index.ts
2881
- var import_react41 = require("react");
3007
+ var import_react45 = require("react");
2882
3008
  var useStatus = function(param) {
2883
3009
  var messageAudioProps = param.messageAudioProps, recorderProps = param.recorderProps, createMessageProps = param.createMessageProps;
2884
3010
  var isRunActiveProps = useIsRunActive();
2885
- var status = (0, import_react41.useMemo)(function() {
3011
+ var status = (0, import_react45.useMemo)(function() {
2886
3012
  if (recorderProps.status === "recording") return "recording";
2887
3013
  if (createMessageProps.isPending) return "creatingMessage";
2888
3014
  if (isRunActiveProps.isRunActive) return "runActive";
@@ -2905,19 +3031,19 @@ var useStatus = function(param) {
2905
3031
  // src/hooks/audioThreads/useRecorder/index.ts
2906
3032
  var import_dayjs = __toESM(require("dayjs"), 1);
2907
3033
  var import_use_audio_capture = require("use-audio-capture");
2908
- var import_react42 = require("react");
3034
+ var import_react46 = require("react");
2909
3035
  var import_react_use_audio_player = require("react-use-audio-player");
2910
3036
  var import_react_use3 = require("react-use");
2911
3037
  var useRecorder = function(param) {
2912
3038
  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];
3039
+ var _ref = _sliced_to_array((0, import_react46.useState)(null), 2), silenceStart = _ref[0], setSilenceStart = _ref[1];
3040
+ var _ref1 = _sliced_to_array((0, import_react46.useState)(null), 2), noiseStart = _ref1[0], setNoiseStart = _ref1[1];
3041
+ var _ref2 = _sliced_to_array((0, import_react46.useState)(null), 2), mediaStream = _ref2[0], setMediaStream = _ref2[1];
3042
+ var _ref3 = _sliced_to_array((0, import_react46.useState)("idle"), 2), status = _ref3[0], setStatus = _ref3[1];
2917
3043
  var startAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
2918
3044
  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() {
3045
+ var _ref4 = _sliced_to_array((0, import_react46.useState)(false), 2), isLoaded = _ref4[0], setIsLoaded = _ref4[1];
3046
+ (0, import_react46.useEffect)(function() {
2921
3047
  if (isLoaded) return;
2922
3048
  setIsLoaded(true);
2923
3049
  }, [
@@ -2975,9 +3101,9 @@ var useRecorder = function(param) {
2975
3101
  setNoiseStart(null);
2976
3102
  }
2977
3103
  });
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() {
3104
+ var _ref5 = _sliced_to_array((0, import_react46.useState)(null), 2), audioEngine = _ref5[0], setAudioEngine = _ref5[1];
3105
+ var isInited = (0, import_react46.useRef)(false);
3106
+ (0, import_react46.useEffect)(function() {
2981
3107
  if (!mediaStream) return;
2982
3108
  if (isInited.current) return;
2983
3109
  isInited.current = true;
@@ -2990,7 +3116,7 @@ var useRecorder = function(param) {
2990
3116
  isInited,
2991
3117
  mediaStream
2992
3118
  ]);
2993
- var visualizationAnalyser = (0, import_react42.useMemo)(function() {
3119
+ var visualizationAnalyser = (0, import_react46.useMemo)(function() {
2994
3120
  if (!audioEngine) return null;
2995
3121
  var result = audioEngine.audioContext.createAnalyser();
2996
3122
  audioEngine.source.connect(result);
@@ -2998,7 +3124,7 @@ var useRecorder = function(param) {
2998
3124
  }, [
2999
3125
  audioEngine
3000
3126
  ]);
3001
- var silenceAnalyser = (0, import_react42.useMemo)(function() {
3127
+ var silenceAnalyser = (0, import_react46.useMemo)(function() {
3002
3128
  if (!audioEngine) return null;
3003
3129
  var result = audioEngine.audioContext.createAnalyser();
3004
3130
  result.minDecibels = -45;
@@ -3007,7 +3133,7 @@ var useRecorder = function(param) {
3007
3133
  }, [
3008
3134
  audioEngine
3009
3135
  ]);
3010
- var handleSilence = (0, import_react42.useCallback)(function() {
3136
+ var handleSilence = (0, import_react46.useCallback)(function() {
3011
3137
  if (!silenceAnalyser) return;
3012
3138
  var frequencyData = new Uint8Array(silenceAnalyser.frequencyBinCount);
3013
3139
  silenceAnalyser.getByteFrequencyData(frequencyData);
@@ -3030,7 +3156,7 @@ var useRecorder = function(param) {
3030
3156
  setNoiseStart,
3031
3157
  setSilenceStart
3032
3158
  ]);
3033
- (0, import_react42.useEffect)(function() {
3159
+ (0, import_react46.useEffect)(function() {
3034
3160
  if (!isStopOnSilence) return;
3035
3161
  requestAnimationFrame(function() {
3036
3162
  return handleSilence();
@@ -3053,7 +3179,7 @@ var useRecorder = function(param) {
3053
3179
  });
3054
3180
  };
3055
3181
  // src/hooks/audioThreads/useMessageAudio/index.ts
3056
- var import_react43 = require("react");
3182
+ var import_react47 = require("react");
3057
3183
  var import_howler = require("howler");
3058
3184
  var import_react_use_audio_player2 = require("react-use-audio-player");
3059
3185
  // src/hooks/audioThreads/useMessageAudio/lib/input.ts
@@ -3079,11 +3205,11 @@ var isHtmlAudioSupported = !unsupportedNames.includes(((_this = (0, import_detec
3079
3205
  // src/hooks/audioThreads/useMessageAudio/index.ts
3080
3206
  var useMessageAudio = function(param) {
3081
3207
  var onEnd = param.onEnd;
3082
- var _ref = _sliced_to_array((0, import_react43.useState)([]), 2), playedMessageIds = _ref[0], setPlayedMessageIds = _ref[1];
3208
+ var _ref = _sliced_to_array((0, import_react47.useState)([]), 2), playedMessageIds = _ref[0], setPlayedMessageIds = _ref[1];
3083
3209
  var audioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
3084
3210
  var superinterfaceContext = useSuperinterfaceContext();
3085
3211
  var latestMessageProps = useLatestMessage();
3086
- (0, import_react43.useEffect)(function() {
3212
+ (0, import_react47.useEffect)(function() {
3087
3213
  if (audioPlayer.playing) return;
3088
3214
  if (!latestMessageProps.latestMessage) return;
3089
3215
  if (latestMessageProps.latestMessage.role !== "assistant") return;
@@ -3117,9 +3243,9 @@ var useMessageAudio = function(param) {
3117
3243
  playedMessageIds,
3118
3244
  onEnd
3119
3245
  ]);
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() {
3246
+ var isInited = (0, import_react47.useRef)(false);
3247
+ var _ref1 = _sliced_to_array((0, import_react47.useState)(null), 2), audioEngine = _ref1[0], setAudioEngine = _ref1[1];
3248
+ (0, import_react47.useEffect)(function() {
3123
3249
  if (!audioPlayer.playing) return;
3124
3250
  if (isInited.current) return;
3125
3251
  isInited.current = true;
@@ -3140,7 +3266,7 @@ var useMessageAudio = function(param) {
3140
3266
  audioPlayer,
3141
3267
  isInited
3142
3268
  ]);
3143
- var visualizationAnalyser = (0, import_react43.useMemo)(function() {
3269
+ var visualizationAnalyser = (0, import_react47.useMemo)(function() {
3144
3270
  if (!audioEngine) return null;
3145
3271
  var result = audioEngine.audioContext.createAnalyser();
3146
3272
  audioEngine.source.connect(audioEngine.audioContext.destination);
@@ -3154,8 +3280,8 @@ var useMessageAudio = function(param) {
3154
3280
  });
3155
3281
  };
3156
3282
  // src/components/threads/AudioThread/Root/index.tsx
3157
- var import_jsx_runtime53 = require("react/jsx-runtime");
3158
- var Root7 = function(param) {
3283
+ var import_jsx_runtime55 = require("react/jsx-runtime");
3284
+ var Root8 = function(param) {
3159
3285
  var children = param.children;
3160
3286
  useLifecycle();
3161
3287
  var createMessageProps = useCreateMessage();
@@ -3214,13 +3340,13 @@ var Root7 = function(param) {
3214
3340
  createMessageProps: createMessageProps,
3215
3341
  messageAudioProps: messageAudioProps
3216
3342
  }).status;
3217
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(AudioThreadContext.Provider, {
3343
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(AudioThreadContext.Provider, {
3218
3344
  value: {
3219
3345
  status: status,
3220
3346
  recorderProps: recorderProps,
3221
3347
  messageAudioProps: messageAudioProps
3222
3348
  },
3223
- children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes39.Flex, {
3349
+ children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes40.Flex, {
3224
3350
  direction: "column",
3225
3351
  flexGrow: "1",
3226
3352
  p: "5",
@@ -3229,23 +3355,23 @@ var Root7 = function(param) {
3229
3355
  });
3230
3356
  };
3231
3357
  // src/components/threads/AudioThread/Visualization/index.tsx
3232
- var import_themes40 = require("@radix-ui/themes");
3358
+ var import_themes41 = require("@radix-ui/themes");
3233
3359
  // src/hooks/threads/useAudioThreadContext/index.ts
3234
- var import_react44 = require("react");
3360
+ var import_react48 = require("react");
3235
3361
  var useAudioThreadContext = function() {
3236
- return (0, import_react44.useContext)(AudioThreadContext);
3362
+ return (0, import_react48.useContext)(AudioThreadContext);
3237
3363
  };
3238
3364
  // src/components/threads/AudioThread/Visualization/index.tsx
3239
- var import_jsx_runtime54 = require("react/jsx-runtime");
3365
+ var import_jsx_runtime56 = require("react/jsx-runtime");
3240
3366
  var Visualization = function() {
3241
3367
  var audioThreadContext = useAudioThreadContext();
3242
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes40.Flex, {
3368
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes41.Flex, {
3243
3369
  direction: "column",
3244
3370
  align: "center",
3245
3371
  justify: "center",
3246
3372
  mb: "3",
3247
3373
  flexGrow: "1",
3248
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes40.Flex, {
3374
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes41.Flex, {
3249
3375
  align: "center",
3250
3376
  justify: "center",
3251
3377
  height: "200px",
@@ -3258,23 +3384,23 @@ var Visualization = function() {
3258
3384
  });
3259
3385
  };
3260
3386
  // 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");
3387
+ var import_react_icons9 = require("@radix-ui/react-icons");
3388
+ var import_themes44 = require("@radix-ui/themes");
3263
3389
  // src/components/threads/AudioThread/Form/Visualizer/index.tsx
3264
3390
  var import_lodash7 = __toESM(require("lodash"), 1);
3265
- var import_themes41 = require("@radix-ui/themes");
3266
- var import_react45 = require("react");
3391
+ var import_themes42 = require("@radix-ui/themes");
3392
+ var import_react49 = require("react");
3267
3393
  var import_radash10 = require("radash");
3268
- var import_jsx_runtime55 = require("react/jsx-runtime");
3394
+ var import_jsx_runtime57 = require("react/jsx-runtime");
3269
3395
  var barCount = 4;
3270
3396
  var Visualizer = function() {
3271
3397
  var audioThreadContext = useAudioThreadContext();
3272
3398
  var visualizationAnalyser = audioThreadContext.recorderProps.visualizationAnalyser;
3273
- var _ref = _sliced_to_array((0, import_react45.useState)(function() {
3399
+ var _ref = _sliced_to_array((0, import_react49.useState)(function() {
3274
3400
  return new AudioContext().createAnalyser();
3275
3401
  }), 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) {
3402
+ var _ref1 = _sliced_to_array((0, import_react49.useState)([]), 2), barHeights = _ref1[0], setBarHeights = _ref1[1];
3403
+ var draw = (0, import_react49.useCallback)(function(param) {
3278
3404
  var visualizationAnalyser2 = param.visualizationAnalyser;
3279
3405
  var frequencyData = new Uint8Array(visualizationAnalyser2.frequencyBinCount / 15);
3280
3406
  visualizationAnalyser2.getByteFrequencyData(frequencyData);
@@ -3288,7 +3414,7 @@ var Visualizer = function() {
3288
3414
  });
3289
3415
  });
3290
3416
  }, []);
3291
- (0, import_react45.useEffect)(function() {
3417
+ (0, import_react49.useEffect)(function() {
3292
3418
  draw({
3293
3419
  visualizationAnalyser: visualizationAnalyser || emptyVisualizer
3294
3420
  });
@@ -3297,7 +3423,7 @@ var Visualizer = function() {
3297
3423
  visualizationAnalyser,
3298
3424
  emptyVisualizer
3299
3425
  ]);
3300
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes41.Grid, {
3426
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes42.Grid, {
3301
3427
  columns: "".concat(barCount),
3302
3428
  gap: "1",
3303
3429
  width: "auto",
@@ -3306,12 +3432,12 @@ var Visualizer = function() {
3306
3432
  gridTemplateColumns: "repeat(4, minmax(0, 1fr))"
3307
3433
  },
3308
3434
  children: barHeights.map(function(barHeight, index) {
3309
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes41.Flex, {
3435
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes42.Flex, {
3310
3436
  direction: "column",
3311
3437
  align: "center",
3312
3438
  justify: "center",
3313
3439
  height: "20px",
3314
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes41.Flex, {
3440
+ children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes42.Flex, {
3315
3441
  minHeight: "50%",
3316
3442
  maxHeight: "100%",
3317
3443
  height: "".concat(barHeight + 20, "%"),
@@ -3326,31 +3452,31 @@ var Visualizer = function() {
3326
3452
  });
3327
3453
  };
3328
3454
  // 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");
3455
+ var import_themes43 = require("@radix-ui/themes");
3456
+ var import_react_icons8 = require("@radix-ui/react-icons");
3457
+ var import_jsx_runtime58 = require("react/jsx-runtime");
3332
3458
  var ActionButton = function() {
3333
3459
  var audioThreadContext = useAudioThreadContext();
3334
3460
  if (audioThreadContext.status === "recording") {
3335
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_themes42.Flex, {
3461
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_themes43.Flex, {
3336
3462
  align: "center",
3337
3463
  children: [
3338
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.Flex, {
3464
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.Flex, {
3339
3465
  mr: "3",
3340
3466
  ml: "-7",
3341
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3467
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3342
3468
  onClick: audioThreadContext.recorderProps.pause,
3343
3469
  color: "gray",
3344
3470
  radius: "full",
3345
3471
  size: "1",
3346
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.PauseIcon, {})
3472
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons8.PauseIcon, {})
3347
3473
  })
3348
3474
  }),
3349
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.Tooltip, {
3475
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.Tooltip, {
3350
3476
  open: true,
3351
3477
  content: "Send your message",
3352
3478
  side: "bottom",
3353
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3479
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3354
3480
  onClick: audioThreadContext.recorderProps.stop,
3355
3481
  color: "gray",
3356
3482
  highContrast: true,
@@ -3359,14 +3485,14 @@ var ActionButton = function() {
3359
3485
  style: {
3360
3486
  border: "2px solid var(--gray-8)"
3361
3487
  },
3362
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.ArrowUpIcon, {})
3488
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons8.ArrowUpIcon, {})
3363
3489
  })
3364
3490
  })
3365
3491
  ]
3366
3492
  });
3367
3493
  }
3368
3494
  if (audioThreadContext.status === "recorderPaused") {
3369
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3495
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3370
3496
  onClick: audioThreadContext.recorderProps.resume,
3371
3497
  color: "red",
3372
3498
  radius: "full",
@@ -3374,11 +3500,11 @@ var ActionButton = function() {
3374
3500
  style: {
3375
3501
  border: "2px solid var(--gray-8)"
3376
3502
  },
3377
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.ResumeIcon, {})
3503
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons8.ResumeIcon, {})
3378
3504
  });
3379
3505
  }
3380
3506
  if (audioThreadContext.status === "idle") {
3381
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3507
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3382
3508
  onClick: function() {
3383
3509
  return audioThreadContext.recorderProps.start();
3384
3510
  },
@@ -3391,7 +3517,7 @@ var ActionButton = function() {
3391
3517
  });
3392
3518
  }
3393
3519
  if (audioThreadContext.status === "playing") {
3394
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3520
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3395
3521
  onClick: function() {
3396
3522
  return audioThreadContext.messageAudioProps.pause();
3397
3523
  },
@@ -3401,11 +3527,11 @@ var ActionButton = function() {
3401
3527
  style: {
3402
3528
  border: "2px solid var(--gray-8)"
3403
3529
  },
3404
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.PauseIcon, {})
3530
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons8.PauseIcon, {})
3405
3531
  });
3406
3532
  }
3407
3533
  if (audioThreadContext.status === "playerPaused") {
3408
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3534
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3409
3535
  onClick: function() {
3410
3536
  return audioThreadContext.messageAudioProps.play();
3411
3537
  },
@@ -3415,10 +3541,10 @@ var ActionButton = function() {
3415
3541
  style: {
3416
3542
  border: "2px solid var(--gray-8)"
3417
3543
  },
3418
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.ResumeIcon, {})
3544
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons8.ResumeIcon, {})
3419
3545
  });
3420
3546
  }
3421
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3547
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3422
3548
  size: "4",
3423
3549
  color: "red",
3424
3550
  radius: "full",
@@ -3429,88 +3555,88 @@ var ActionButton = function() {
3429
3555
  });
3430
3556
  };
3431
3557
  // src/components/threads/AudioThread/Form/index.tsx
3432
- var import_jsx_runtime57 = require("react/jsx-runtime");
3558
+ var import_jsx_runtime59 = require("react/jsx-runtime");
3433
3559
  var Form = function() {
3434
3560
  var audioThreadContext = useAudioThreadContext();
3435
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_themes43.Flex, {
3561
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_themes44.Flex, {
3436
3562
  direction: "column",
3437
3563
  align: "center",
3438
3564
  children: [
3439
- /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_themes43.Flex, {
3565
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_themes44.Flex, {
3440
3566
  pb: "3",
3441
3567
  align: "center",
3442
3568
  children: [
3443
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes43.Flex, {
3569
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_themes44.Flex, {
3444
3570
  ml: "-5",
3445
3571
  mr: "2",
3446
3572
  align: "center",
3447
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react_icons8.SpeakerModerateIcon, {
3573
+ children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react_icons9.SpeakerModerateIcon, {
3448
3574
  style: {
3449
3575
  color: "var(--".concat(audioThreadContext.status === "recording" ? "mint" : "gray", "-12)")
3450
3576
  }
3451
3577
  })
3452
3578
  }),
3453
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes43.Flex, {
3579
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_themes44.Flex, {
3454
3580
  px: "2",
3455
3581
  py: "1",
3456
3582
  style: {
3457
3583
  backgroundColor: "var(--".concat(audioThreadContext.status === "recording" ? "mint" : "gray", "-4)"),
3458
3584
  borderRadius: "var(--radius-6)"
3459
3585
  },
3460
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Visualizer, {})
3586
+ children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Visualizer, {})
3461
3587
  })
3462
3588
  ]
3463
3589
  }),
3464
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ActionButton, {})
3590
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(ActionButton, {})
3465
3591
  ]
3466
3592
  });
3467
3593
  };
3468
3594
  // src/components/threads/AudioThread/index.tsx
3469
- var import_jsx_runtime58 = require("react/jsx-runtime");
3595
+ var import_jsx_runtime60 = require("react/jsx-runtime");
3470
3596
  var AudioThread = function(props) {
3471
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(Root7, _object_spread_props(_object_spread({}, props), {
3597
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(Root8, _object_spread_props(_object_spread({}, props), {
3472
3598
  children: [
3473
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Visualization, {}),
3474
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Form, {})
3599
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Visualization, {}),
3600
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Form, {})
3475
3601
  ]
3476
3602
  }));
3477
3603
  };
3478
- AudioThread.Root = Root7;
3604
+ AudioThread.Root = Root8;
3479
3605
  AudioThread.Visualization = Visualization;
3480
3606
  AudioThread.Form = Form;
3481
3607
  // src/components/threads/AudioThreadDialog/index.tsx
3482
- var import_jsx_runtime59 = require("react/jsx-runtime");
3608
+ var import_jsx_runtime61 = require("react/jsx-runtime");
3483
3609
  var AudioThreadDialog = function() {
3484
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(Root5, {
3610
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(Root6, {
3485
3611
  children: [
3486
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Content4.Root, {
3487
- children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(AudioThread, {})
3612
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Content4.Root, {
3613
+ children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(AudioThread, {})
3488
3614
  }),
3489
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Trigger, {
3490
- children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Button3, {})
3615
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Trigger, {
3616
+ children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Button3, {})
3491
3617
  })
3492
3618
  ]
3493
3619
  });
3494
3620
  };
3495
- AudioThreadDialog.Root = Root5;
3621
+ AudioThreadDialog.Root = Root6;
3496
3622
  AudioThreadDialog.Trigger = Trigger;
3497
3623
  AudioThreadDialog.Button = Button3;
3498
3624
  AudioThreadDialog.Content = Content4;
3499
3625
  // src/components/suggestions/Suggestions/index.tsx
3500
- var import_react47 = require("react");
3626
+ var import_react51 = require("react");
3501
3627
  // src/components/suggestions/Suggestions/Content.tsx
3502
- var import_react46 = require("react");
3628
+ var import_react50 = require("react");
3503
3629
  var import_radash11 = require("radash");
3504
3630
  var import_react_children_utilities = require("react-children-utilities");
3505
- var import_themes45 = require("@radix-ui/themes");
3631
+ var import_themes46 = require("@radix-ui/themes");
3506
3632
  // 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");
3633
+ var import_react_icons10 = require("@radix-ui/react-icons");
3634
+ var import_themes45 = require("@radix-ui/themes");
3635
+ var import_jsx_runtime62 = require("react/jsx-runtime");
3510
3636
  var Item = function(param) {
3511
3637
  var suggestion = param.suggestion, isDisabled = param.isDisabled;
3512
3638
  var _useCreateMessage = useCreateMessage(), createMessage = _useCreateMessage.createMessage, isPending = _useCreateMessage.isPending;
3513
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Content5, {
3639
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Content5, {
3514
3640
  onClick: function() {
3515
3641
  createMessage({
3516
3642
  // @ts-ignore-next-line
@@ -3524,32 +3650,32 @@ var Item = function(param) {
3524
3650
  };
3525
3651
  var Content5 = function(param) {
3526
3652
  var onClick = param.onClick, isDisabled = param.isDisabled, isPending = param.isPending, children = param.children;
3527
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_themes44.Button, {
3653
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_themes45.Button, {
3528
3654
  variant: "soft",
3529
3655
  onClick: onClick,
3530
3656
  disabled: isDisabled,
3531
3657
  children: [
3532
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_themes44.Text, {
3658
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes45.Text, {
3533
3659
  size: "1",
3534
3660
  weight: "regular",
3535
3661
  children: children
3536
3662
  }),
3537
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_themes44.Spinner, {
3663
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes45.Spinner, {
3538
3664
  loading: isPending,
3539
- children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_icons9.ArrowUpIcon, {})
3665
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_icons10.ArrowUpIcon, {})
3540
3666
  })
3541
3667
  ]
3542
3668
  });
3543
3669
  };
3544
3670
  Item.Content = Content5;
3545
3671
  // src/components/suggestions/Suggestions/Content.tsx
3546
- var import_jsx_runtime61 = require("react/jsx-runtime");
3672
+ var import_jsx_runtime63 = require("react/jsx-runtime");
3547
3673
  var Content6 = function(param) {
3548
3674
  var children = param.children;
3549
3675
  var messageContext = useMessageContext();
3550
3676
  var latestMessageProps = useLatestMessage();
3551
3677
  var isRunActiveProps = useIsRunActive();
3552
- var suggestions = (0, import_react46.useMemo)(function() {
3678
+ var suggestions = (0, import_react50.useMemo)(function() {
3553
3679
  return (0, import_react_children_utilities.onlyText)(children).split(/\r?\n/).filter(function(c) {
3554
3680
  return !(0, import_radash11.isEmpty)(c);
3555
3681
  }).map(function(c) {
@@ -3558,7 +3684,7 @@ var Content6 = function(param) {
3558
3684
  }, [
3559
3685
  children
3560
3686
  ]);
3561
- var isDisabled = (0, import_react46.useMemo)(function() {
3687
+ var isDisabled = (0, import_react50.useMemo)(function() {
3562
3688
  var _messageContext_message;
3563
3689
  return ((_messageContext_message = messageContext.message) === null || _messageContext_message === void 0 ? void 0 : _messageContext_message.id) !== latestMessageProps.latestMessage.id || isRunActiveProps.isRunActive;
3564
3690
  }, [
@@ -3567,12 +3693,12 @@ var Content6 = function(param) {
3567
3693
  isRunActiveProps
3568
3694
  ]);
3569
3695
  if ((0, import_radash11.isEmpty)(suggestions)) return null;
3570
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes45.Flex, {
3696
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_themes46.Flex, {
3571
3697
  gap: "2",
3572
3698
  py: "2",
3573
3699
  wrap: "wrap",
3574
3700
  children: suggestions.map(function(suggestion) {
3575
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Item, {
3701
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Item, {
3576
3702
  suggestion: suggestion,
3577
3703
  isDisabled: isDisabled
3578
3704
  }, suggestion);
@@ -3580,11 +3706,11 @@ var Content6 = function(param) {
3580
3706
  });
3581
3707
  };
3582
3708
  // src/components/suggestions/Suggestions/index.tsx
3583
- var import_jsx_runtime62 = require("react/jsx-runtime");
3709
+ var import_jsx_runtime64 = require("react/jsx-runtime");
3584
3710
  var Suggestions = function(param) {
3585
3711
  var children = param.children;
3586
3712
  var latestMessageProps = useLatestMessage();
3587
- var isDisabled = (0, import_react47.useMemo)(function() {
3713
+ var isDisabled = (0, import_react51.useMemo)(function() {
3588
3714
  var // @ts-ignore-next-line
3589
3715
  _latestMessageProps_latestMessage_metadata, _latestMessageProps_latestMessage;
3590
3716
  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 +3719,26 @@ var Suggestions = function(param) {
3593
3719
  ]);
3594
3720
  if (latestMessageProps.isLoading) return null;
3595
3721
  if (isDisabled) return null;
3596
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Content6, {
3722
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Content6, {
3597
3723
  children: children
3598
3724
  });
3599
3725
  };
3600
3726
  Suggestions.Item = Item;
3601
3727
  // src/components/markdown/MarkdownProvider/index.tsx
3602
- var import_react48 = require("react");
3603
- var import_jsx_runtime63 = require("react/jsx-runtime");
3728
+ var import_react52 = require("react");
3729
+ var import_jsx_runtime65 = require("react/jsx-runtime");
3604
3730
  var MarkdownProvider = function(_param) {
3605
3731
  var children = _param.children, rest = _object_without_properties(_param, [
3606
3732
  "children"
3607
3733
  ]);
3608
3734
  var prevMarkdownContext = useMarkdownContext();
3609
- var value = (0, import_react48.useMemo)(function() {
3735
+ var value = (0, import_react52.useMemo)(function() {
3610
3736
  return merge(prevMarkdownContext, rest);
3611
3737
  }, [
3612
3738
  rest,
3613
3739
  prevMarkdownContext
3614
3740
  ]);
3615
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(MarkdownContext.Provider, {
3741
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(MarkdownContext.Provider, {
3616
3742
  value: value,
3617
3743
  children: children
3618
3744
  });