@superinterface/react 2.0.6 → 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,17 +2490,17 @@ 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", {
2476
- children: ".superinterface-textarea { min-height: inherit; height: 30px; }"
2503
+ children: ".superinterface-textarea { min-height: inherit; height: 30px; }\n.superinterface-textarea::placeholder { color: var(--gray-a10); }"
2477
2504
  }),
2478
2505
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_react_textarea_autosize.default, _object_spread({
2479
2506
  ref: ref,
@@ -2483,6 +2510,7 @@ var TextareaBase = (0, import_react33.forwardRef)(function TextareaBase2(props,
2483
2510
  outline: 0,
2484
2511
  boxSizing: "border-box",
2485
2512
  resize: "none",
2513
+ color: "var(--gray-12)",
2486
2514
  fontSize: "".concat(14 * UPSCALE_RATIO, "px"),
2487
2515
  lineHeight: "".concat(24 * UPSCALE_RATIO, "px"),
2488
2516
  transform: "scale(".concat(1 / UPSCALE_RATIO, ")"),
@@ -2530,19 +2558,19 @@ var Root3 = function(param) {
2530
2558
  });
2531
2559
  };
2532
2560
  var Control = function() {
2533
- var assistantNameContext = (0, import_react34.useContext)(AssistantNameContext);
2561
+ var assistantNameContext = (0, import_react36.useContext)(AssistantNameContext);
2534
2562
  var register = (0, import_react_hook_form2.useFormContext)().register;
2535
2563
  var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
2536
- var isSubmitDisabled = (0, import_react34.useMemo)(function() {
2564
+ var isSubmitDisabled = (0, import_react36.useMemo)(function() {
2537
2565
  return isDisabled || isLoading;
2538
2566
  }, [
2539
2567
  isDisabled,
2540
2568
  isLoading
2541
2569
  ]);
2542
2570
  var isDisabledPrevious = (0, import_react_use2.usePrevious)(isDisabled);
2543
- var textareaRef = (0, import_react34.useRef)(null);
2571
+ var textareaRef = (0, import_react36.useRef)(null);
2544
2572
  var textareaProps = register("content");
2545
- (0, import_react34.useEffect)(function() {
2573
+ (0, import_react36.useEffect)(function() {
2546
2574
  if (isDisabled) return;
2547
2575
  if (!isDisabledPrevious) return;
2548
2576
  if (!textareaRef.current) return;
@@ -2607,11 +2635,11 @@ MessageForm.Submit = Submit;
2607
2635
  // src/components/threads/Thread/Root/index.tsx
2608
2636
  var import_themes34 = require("@radix-ui/themes");
2609
2637
  // src/components/runs/PollingProvider/index.tsx
2610
- var import_react35 = require("react");
2638
+ var import_react37 = require("react");
2611
2639
  var import_jsx_runtime43 = require("react/jsx-runtime");
2612
2640
  var PollingProvider = function(param) {
2613
2641
  var children = param.children;
2614
- 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];
2615
2643
  return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(PollingContext.Provider, {
2616
2644
  value: {
2617
2645
  isPollRefetching: isPollRefetching,
@@ -2655,31 +2683,31 @@ Thread.Root = Root4;
2655
2683
  Thread.Messages = Messages;
2656
2684
  Thread.MessageForm = MessageForm;
2657
2685
  // src/hooks/messages/useMessageContext/index.ts
2658
- var import_react36 = require("react");
2686
+ var import_react38 = require("react");
2659
2687
  var useMessageContext = function() {
2660
- return (0, import_react36.useContext)(MessageContext);
2688
+ return (0, import_react38.useContext)(MessageContext);
2661
2689
  };
2662
2690
  // src/components/threads/ThreadDialog/Root/index.tsx
2663
- var import_themes35 = require("@radix-ui/themes");
2691
+ var import_themes36 = require("@radix-ui/themes");
2664
2692
  // src/components/threads/ThreadDialog/Provider/index.tsx
2665
- var import_react39 = require("react");
2693
+ var import_react41 = require("react");
2666
2694
  // src/contexts/threads/ThreadDialogContext/index.ts
2667
- var import_react37 = require("react");
2668
- var ThreadDialogContext = (0, import_react37.createContext)({
2695
+ var import_react39 = require("react");
2696
+ var ThreadDialogContext = (0, import_react39.createContext)({
2669
2697
  isOpen: false,
2670
2698
  setIsOpen: function() {}
2671
2699
  });
2672
2700
  // src/hooks/threads/useThreadDialogContext/index.ts
2673
- var import_react38 = require("react");
2701
+ var import_react40 = require("react");
2674
2702
  var useThreadDialogContext = function() {
2675
- return (0, import_react38.useContext)(ThreadDialogContext);
2703
+ return (0, import_react40.useContext)(ThreadDialogContext);
2676
2704
  };
2677
2705
  // src/components/threads/ThreadDialog/Provider/index.tsx
2678
2706
  var import_jsx_runtime47 = require("react/jsx-runtime");
2679
2707
  var Provider3 = function(param) {
2680
2708
  var children = param.children;
2681
2709
  var threadDialogContext = useThreadDialogContext();
2682
- 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];
2683
2711
  return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(ThreadDialogContext.Provider, {
2684
2712
  value: {
2685
2713
  isOpen: isOpen,
@@ -2688,33 +2716,117 @@ var Provider3 = function(param) {
2688
2716
  children: children
2689
2717
  });
2690
2718
  };
2691
- // 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");
2692
2726
  var import_jsx_runtime48 = require("react/jsx-runtime");
2693
- 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) {
2694
2804
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2695
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Provider3, {
2696
- children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes35.Flex, {
2697
- direction: "column",
2698
- justify: "end",
2699
- align: "end",
2700
- position: "fixed",
2701
- style: _object_spread({
2702
- bottom: "24px",
2703
- right: "24px",
2704
- top: "24px",
2705
- zIndex: 9999999999
2706
- }, style),
2707
- 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
+ })
2708
2820
  })
2709
2821
  });
2710
2822
  };
2711
2823
  // src/components/threads/ThreadDialog/Trigger/index.tsx
2712
- var import_themes36 = require("@radix-ui/themes");
2713
- 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");
2714
2826
  var Trigger = function(param) {
2715
2827
  var children = param.children;
2716
2828
  var setIsOpen = useThreadDialogContext().setIsOpen;
2717
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes36.Flex, {
2829
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes37.Flex, {
2718
2830
  onClick: function() {
2719
2831
  return setIsOpen(function(prev) {
2720
2832
  return !prev;
@@ -2726,24 +2838,24 @@ var Trigger = function(param) {
2726
2838
  });
2727
2839
  };
2728
2840
  // src/components/threads/ThreadDialog/Button/index.tsx
2729
- var import_themes37 = require("@radix-ui/themes");
2730
- var import_react_icons6 = require("@radix-ui/react-icons");
2731
- 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");
2732
2844
  var Button3 = function() {
2733
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_themes37.IconButton, {
2845
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_themes38.IconButton, {
2734
2846
  size: "4",
2735
2847
  radius: "full",
2736
- children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_react_icons6.ChatBubbleIcon, {})
2848
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_icons7.ChatBubbleIcon, {})
2737
2849
  });
2738
2850
  };
2739
2851
  // src/components/threads/ThreadDialog/Content/index.tsx
2740
- var import_themes38 = require("@radix-ui/themes");
2741
- var import_jsx_runtime51 = require("react/jsx-runtime");
2742
- 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) {
2743
2855
  var children = param.children;
2744
2856
  var isOpen = useThreadDialogContext().isOpen;
2745
2857
  if (!isOpen) return null;
2746
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes38.Card, {
2858
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes39.Card, {
2747
2859
  mb: "3",
2748
2860
  style: {
2749
2861
  display: "flex",
@@ -2752,7 +2864,7 @@ var Root6 = function(param) {
2752
2864
  maxWidth: "400px",
2753
2865
  maxHeight: "720px"
2754
2866
  },
2755
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes38.Inset, {
2867
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes39.Inset, {
2756
2868
  clip: "padding-box",
2757
2869
  side: "all",
2758
2870
  pb: "current",
@@ -2765,51 +2877,51 @@ var Root6 = function(param) {
2765
2877
  });
2766
2878
  };
2767
2879
  var Content4 = function() {
2768
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Root6, {
2769
- 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, {
2770
2882
  children: [
2771
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Thread.Messages, {
2883
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Thread.Messages, {
2772
2884
  style: {
2773
2885
  paddingTop: "var(--space-5)",
2774
2886
  paddingRight: "var(--space-5)",
2775
2887
  paddingLeft: "var(--space-5)"
2776
2888
  }
2777
2889
  }),
2778
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes38.Flex, {
2890
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes39.Flex, {
2779
2891
  direction: "column",
2780
2892
  pl: "5",
2781
2893
  pr: "5",
2782
2894
  pb: "3",
2783
2895
  flexShrink: "0",
2784
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Thread.MessageForm, {})
2896
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Thread.MessageForm, {})
2785
2897
  })
2786
2898
  ]
2787
2899
  })
2788
2900
  });
2789
2901
  };
2790
- Content4.Root = Root6;
2902
+ Content4.Root = Root7;
2791
2903
  // src/components/threads/ThreadDialog/index.tsx
2792
- var import_jsx_runtime52 = require("react/jsx-runtime");
2904
+ var import_jsx_runtime54 = require("react/jsx-runtime");
2793
2905
  var ThreadDialog = function() {
2794
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Root5, {
2906
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Root6, {
2795
2907
  children: [
2796
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Content4, {}),
2797
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Trigger, {
2798
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Button3, {})
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, {})
2799
2911
  })
2800
2912
  ]
2801
2913
  });
2802
2914
  };
2803
- ThreadDialog.Root = Root5;
2915
+ ThreadDialog.Root = Root6;
2804
2916
  ThreadDialog.Trigger = Trigger;
2805
2917
  ThreadDialog.Button = Button3;
2806
2918
  ThreadDialog.Content = Content4;
2807
2919
  // src/components/threads/AudioThread/Root/index.tsx
2808
2920
  var import_runtime = require("regenerator-runtime/runtime");
2809
- var import_themes39 = require("@radix-ui/themes");
2921
+ var import_themes40 = require("@radix-ui/themes");
2810
2922
  // src/contexts/threads/AudioThreadContext/index.ts
2811
- var import_react40 = require("react");
2812
- var AudioThreadContext = (0, import_react40.createContext)({
2923
+ var import_react43 = require("react");
2924
+ var AudioThreadContext = (0, import_react43.createContext)({
2813
2925
  status: "idle",
2814
2926
  recorderProps: {
2815
2927
  status: "idle",
@@ -2877,11 +2989,11 @@ var blobToData = function(blob) {
2877
2989
  });
2878
2990
  };
2879
2991
  // src/hooks/audioThreads/useStatus/index.ts
2880
- var import_react41 = require("react");
2992
+ var import_react44 = require("react");
2881
2993
  var useStatus = function(param) {
2882
2994
  var messageAudioProps = param.messageAudioProps, recorderProps = param.recorderProps, createMessageProps = param.createMessageProps;
2883
2995
  var isRunActiveProps = useIsRunActive();
2884
- var status = (0, import_react41.useMemo)(function() {
2996
+ var status = (0, import_react44.useMemo)(function() {
2885
2997
  if (recorderProps.status === "recording") return "recording";
2886
2998
  if (createMessageProps.isPending) return "creatingMessage";
2887
2999
  if (isRunActiveProps.isRunActive) return "runActive";
@@ -2904,19 +3016,19 @@ var useStatus = function(param) {
2904
3016
  // src/hooks/audioThreads/useRecorder/index.ts
2905
3017
  var import_dayjs = __toESM(require("dayjs"), 1);
2906
3018
  var import_use_audio_capture = require("use-audio-capture");
2907
- var import_react42 = require("react");
3019
+ var import_react45 = require("react");
2908
3020
  var import_react_use_audio_player = require("react-use-audio-player");
2909
3021
  var import_react_use3 = require("react-use");
2910
3022
  var useRecorder = function(param) {
2911
3023
  var isStopOnSilence = param.isStopOnSilence, onStart = param.onStart, onStop = param.onStop;
2912
- var _ref = _sliced_to_array((0, import_react42.useState)(null), 2), silenceStart = _ref[0], setSilenceStart = _ref[1];
2913
- var _ref1 = _sliced_to_array((0, import_react42.useState)(null), 2), noiseStart = _ref1[0], setNoiseStart = _ref1[1];
2914
- var _ref2 = _sliced_to_array((0, import_react42.useState)(null), 2), mediaStream = _ref2[0], setMediaStream = _ref2[1];
2915
- var _ref3 = _sliced_to_array((0, import_react42.useState)("idle"), 2), status = _ref3[0], setStatus = _ref3[1];
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];
2916
3028
  var startAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
2917
3029
  var endAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
2918
- var _ref4 = _sliced_to_array((0, import_react42.useState)(false), 2), isLoaded = _ref4[0], setIsLoaded = _ref4[1];
2919
- (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() {
2920
3032
  if (isLoaded) return;
2921
3033
  setIsLoaded(true);
2922
3034
  }, [
@@ -2974,9 +3086,9 @@ var useRecorder = function(param) {
2974
3086
  setNoiseStart(null);
2975
3087
  }
2976
3088
  });
2977
- var _ref5 = _sliced_to_array((0, import_react42.useState)(null), 2), audioEngine = _ref5[0], setAudioEngine = _ref5[1];
2978
- var isInited = (0, import_react42.useRef)(false);
2979
- (0, import_react42.useEffect)(function() {
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() {
2980
3092
  if (!mediaStream) return;
2981
3093
  if (isInited.current) return;
2982
3094
  isInited.current = true;
@@ -2989,7 +3101,7 @@ var useRecorder = function(param) {
2989
3101
  isInited,
2990
3102
  mediaStream
2991
3103
  ]);
2992
- var visualizationAnalyser = (0, import_react42.useMemo)(function() {
3104
+ var visualizationAnalyser = (0, import_react45.useMemo)(function() {
2993
3105
  if (!audioEngine) return null;
2994
3106
  var result = audioEngine.audioContext.createAnalyser();
2995
3107
  audioEngine.source.connect(result);
@@ -2997,7 +3109,7 @@ var useRecorder = function(param) {
2997
3109
  }, [
2998
3110
  audioEngine
2999
3111
  ]);
3000
- var silenceAnalyser = (0, import_react42.useMemo)(function() {
3112
+ var silenceAnalyser = (0, import_react45.useMemo)(function() {
3001
3113
  if (!audioEngine) return null;
3002
3114
  var result = audioEngine.audioContext.createAnalyser();
3003
3115
  result.minDecibels = -45;
@@ -3006,7 +3118,7 @@ var useRecorder = function(param) {
3006
3118
  }, [
3007
3119
  audioEngine
3008
3120
  ]);
3009
- var handleSilence = (0, import_react42.useCallback)(function() {
3121
+ var handleSilence = (0, import_react45.useCallback)(function() {
3010
3122
  if (!silenceAnalyser) return;
3011
3123
  var frequencyData = new Uint8Array(silenceAnalyser.frequencyBinCount);
3012
3124
  silenceAnalyser.getByteFrequencyData(frequencyData);
@@ -3029,7 +3141,7 @@ var useRecorder = function(param) {
3029
3141
  setNoiseStart,
3030
3142
  setSilenceStart
3031
3143
  ]);
3032
- (0, import_react42.useEffect)(function() {
3144
+ (0, import_react45.useEffect)(function() {
3033
3145
  if (!isStopOnSilence) return;
3034
3146
  requestAnimationFrame(function() {
3035
3147
  return handleSilence();
@@ -3052,7 +3164,7 @@ var useRecorder = function(param) {
3052
3164
  });
3053
3165
  };
3054
3166
  // src/hooks/audioThreads/useMessageAudio/index.ts
3055
- var import_react43 = require("react");
3167
+ var import_react46 = require("react");
3056
3168
  var import_howler = require("howler");
3057
3169
  var import_react_use_audio_player2 = require("react-use-audio-player");
3058
3170
  // src/hooks/audioThreads/useMessageAudio/lib/input.ts
@@ -3078,11 +3190,11 @@ var isHtmlAudioSupported = !unsupportedNames.includes(((_this = (0, import_detec
3078
3190
  // src/hooks/audioThreads/useMessageAudio/index.ts
3079
3191
  var useMessageAudio = function(param) {
3080
3192
  var onEnd = param.onEnd;
3081
- 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];
3082
3194
  var audioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
3083
3195
  var superinterfaceContext = useSuperinterfaceContext();
3084
3196
  var latestMessageProps = useLatestMessage();
3085
- (0, import_react43.useEffect)(function() {
3197
+ (0, import_react46.useEffect)(function() {
3086
3198
  if (audioPlayer.playing) return;
3087
3199
  if (!latestMessageProps.latestMessage) return;
3088
3200
  if (latestMessageProps.latestMessage.role !== "assistant") return;
@@ -3116,9 +3228,9 @@ var useMessageAudio = function(param) {
3116
3228
  playedMessageIds,
3117
3229
  onEnd
3118
3230
  ]);
3119
- var isInited = (0, import_react43.useRef)(false);
3120
- var _ref1 = _sliced_to_array((0, import_react43.useState)(null), 2), audioEngine = _ref1[0], setAudioEngine = _ref1[1];
3121
- (0, import_react43.useEffect)(function() {
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() {
3122
3234
  if (!audioPlayer.playing) return;
3123
3235
  if (isInited.current) return;
3124
3236
  isInited.current = true;
@@ -3139,7 +3251,7 @@ var useMessageAudio = function(param) {
3139
3251
  audioPlayer,
3140
3252
  isInited
3141
3253
  ]);
3142
- var visualizationAnalyser = (0, import_react43.useMemo)(function() {
3254
+ var visualizationAnalyser = (0, import_react46.useMemo)(function() {
3143
3255
  if (!audioEngine) return null;
3144
3256
  var result = audioEngine.audioContext.createAnalyser();
3145
3257
  audioEngine.source.connect(audioEngine.audioContext.destination);
@@ -3153,8 +3265,8 @@ var useMessageAudio = function(param) {
3153
3265
  });
3154
3266
  };
3155
3267
  // src/components/threads/AudioThread/Root/index.tsx
3156
- var import_jsx_runtime53 = require("react/jsx-runtime");
3157
- var Root7 = function(param) {
3268
+ var import_jsx_runtime55 = require("react/jsx-runtime");
3269
+ var Root8 = function(param) {
3158
3270
  var children = param.children;
3159
3271
  useLifecycle();
3160
3272
  var createMessageProps = useCreateMessage();
@@ -3213,13 +3325,13 @@ var Root7 = function(param) {
3213
3325
  createMessageProps: createMessageProps,
3214
3326
  messageAudioProps: messageAudioProps
3215
3327
  }).status;
3216
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(AudioThreadContext.Provider, {
3328
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(AudioThreadContext.Provider, {
3217
3329
  value: {
3218
3330
  status: status,
3219
3331
  recorderProps: recorderProps,
3220
3332
  messageAudioProps: messageAudioProps
3221
3333
  },
3222
- children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes39.Flex, {
3334
+ children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes40.Flex, {
3223
3335
  direction: "column",
3224
3336
  flexGrow: "1",
3225
3337
  p: "5",
@@ -3228,23 +3340,23 @@ var Root7 = function(param) {
3228
3340
  });
3229
3341
  };
3230
3342
  // src/components/threads/AudioThread/Visualization/index.tsx
3231
- var import_themes40 = require("@radix-ui/themes");
3343
+ var import_themes41 = require("@radix-ui/themes");
3232
3344
  // src/hooks/threads/useAudioThreadContext/index.ts
3233
- var import_react44 = require("react");
3345
+ var import_react47 = require("react");
3234
3346
  var useAudioThreadContext = function() {
3235
- return (0, import_react44.useContext)(AudioThreadContext);
3347
+ return (0, import_react47.useContext)(AudioThreadContext);
3236
3348
  };
3237
3349
  // src/components/threads/AudioThread/Visualization/index.tsx
3238
- var import_jsx_runtime54 = require("react/jsx-runtime");
3350
+ var import_jsx_runtime56 = require("react/jsx-runtime");
3239
3351
  var Visualization = function() {
3240
3352
  var audioThreadContext = useAudioThreadContext();
3241
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes40.Flex, {
3353
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes41.Flex, {
3242
3354
  direction: "column",
3243
3355
  align: "center",
3244
3356
  justify: "center",
3245
3357
  mb: "3",
3246
3358
  flexGrow: "1",
3247
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes40.Flex, {
3359
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes41.Flex, {
3248
3360
  align: "center",
3249
3361
  justify: "center",
3250
3362
  height: "200px",
@@ -3257,23 +3369,23 @@ var Visualization = function() {
3257
3369
  });
3258
3370
  };
3259
3371
  // src/components/threads/AudioThread/Form/index.tsx
3260
- var import_react_icons8 = require("@radix-ui/react-icons");
3261
- 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");
3262
3374
  // src/components/threads/AudioThread/Form/Visualizer/index.tsx
3263
3375
  var import_lodash7 = __toESM(require("lodash"), 1);
3264
- var import_themes41 = require("@radix-ui/themes");
3265
- var import_react45 = require("react");
3376
+ var import_themes42 = require("@radix-ui/themes");
3377
+ var import_react48 = require("react");
3266
3378
  var import_radash10 = require("radash");
3267
- var import_jsx_runtime55 = require("react/jsx-runtime");
3379
+ var import_jsx_runtime57 = require("react/jsx-runtime");
3268
3380
  var barCount = 4;
3269
3381
  var Visualizer = function() {
3270
3382
  var audioThreadContext = useAudioThreadContext();
3271
3383
  var visualizationAnalyser = audioThreadContext.recorderProps.visualizationAnalyser;
3272
- var _ref = _sliced_to_array((0, import_react45.useState)(function() {
3384
+ var _ref = _sliced_to_array((0, import_react48.useState)(function() {
3273
3385
  return new AudioContext().createAnalyser();
3274
3386
  }), 1), emptyVisualizer = _ref[0];
3275
- var _ref1 = _sliced_to_array((0, import_react45.useState)([]), 2), barHeights = _ref1[0], setBarHeights = _ref1[1];
3276
- var draw = (0, import_react45.useCallback)(function(param) {
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) {
3277
3389
  var visualizationAnalyser2 = param.visualizationAnalyser;
3278
3390
  var frequencyData = new Uint8Array(visualizationAnalyser2.frequencyBinCount / 15);
3279
3391
  visualizationAnalyser2.getByteFrequencyData(frequencyData);
@@ -3287,7 +3399,7 @@ var Visualizer = function() {
3287
3399
  });
3288
3400
  });
3289
3401
  }, []);
3290
- (0, import_react45.useEffect)(function() {
3402
+ (0, import_react48.useEffect)(function() {
3291
3403
  draw({
3292
3404
  visualizationAnalyser: visualizationAnalyser || emptyVisualizer
3293
3405
  });
@@ -3296,7 +3408,7 @@ var Visualizer = function() {
3296
3408
  visualizationAnalyser,
3297
3409
  emptyVisualizer
3298
3410
  ]);
3299
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes41.Grid, {
3411
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes42.Grid, {
3300
3412
  columns: "".concat(barCount),
3301
3413
  gap: "1",
3302
3414
  width: "auto",
@@ -3305,12 +3417,12 @@ var Visualizer = function() {
3305
3417
  gridTemplateColumns: "repeat(4, minmax(0, 1fr))"
3306
3418
  },
3307
3419
  children: barHeights.map(function(barHeight, index) {
3308
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes41.Flex, {
3420
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes42.Flex, {
3309
3421
  direction: "column",
3310
3422
  align: "center",
3311
3423
  justify: "center",
3312
3424
  height: "20px",
3313
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes41.Flex, {
3425
+ children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes42.Flex, {
3314
3426
  minHeight: "50%",
3315
3427
  maxHeight: "100%",
3316
3428
  height: "".concat(barHeight + 20, "%"),
@@ -3325,31 +3437,31 @@ var Visualizer = function() {
3325
3437
  });
3326
3438
  };
3327
3439
  // src/components/threads/AudioThread/Form/ActionButton/index.tsx
3328
- var import_themes42 = require("@radix-ui/themes");
3329
- var import_react_icons7 = require("@radix-ui/react-icons");
3330
- 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");
3331
3443
  var ActionButton = function() {
3332
3444
  var audioThreadContext = useAudioThreadContext();
3333
3445
  if (audioThreadContext.status === "recording") {
3334
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_themes42.Flex, {
3446
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_themes43.Flex, {
3335
3447
  align: "center",
3336
3448
  children: [
3337
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.Flex, {
3449
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.Flex, {
3338
3450
  mr: "3",
3339
3451
  ml: "-7",
3340
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3452
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3341
3453
  onClick: audioThreadContext.recorderProps.pause,
3342
3454
  color: "gray",
3343
3455
  radius: "full",
3344
3456
  size: "1",
3345
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.PauseIcon, {})
3457
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons8.PauseIcon, {})
3346
3458
  })
3347
3459
  }),
3348
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.Tooltip, {
3460
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.Tooltip, {
3349
3461
  open: true,
3350
3462
  content: "Send your message",
3351
3463
  side: "bottom",
3352
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3464
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3353
3465
  onClick: audioThreadContext.recorderProps.stop,
3354
3466
  color: "gray",
3355
3467
  highContrast: true,
@@ -3358,14 +3470,14 @@ var ActionButton = function() {
3358
3470
  style: {
3359
3471
  border: "2px solid var(--gray-8)"
3360
3472
  },
3361
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.ArrowUpIcon, {})
3473
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons8.ArrowUpIcon, {})
3362
3474
  })
3363
3475
  })
3364
3476
  ]
3365
3477
  });
3366
3478
  }
3367
3479
  if (audioThreadContext.status === "recorderPaused") {
3368
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3480
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3369
3481
  onClick: audioThreadContext.recorderProps.resume,
3370
3482
  color: "red",
3371
3483
  radius: "full",
@@ -3373,11 +3485,11 @@ var ActionButton = function() {
3373
3485
  style: {
3374
3486
  border: "2px solid var(--gray-8)"
3375
3487
  },
3376
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.ResumeIcon, {})
3488
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons8.ResumeIcon, {})
3377
3489
  });
3378
3490
  }
3379
3491
  if (audioThreadContext.status === "idle") {
3380
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3492
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3381
3493
  onClick: function() {
3382
3494
  return audioThreadContext.recorderProps.start();
3383
3495
  },
@@ -3390,7 +3502,7 @@ var ActionButton = function() {
3390
3502
  });
3391
3503
  }
3392
3504
  if (audioThreadContext.status === "playing") {
3393
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3505
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3394
3506
  onClick: function() {
3395
3507
  return audioThreadContext.messageAudioProps.pause();
3396
3508
  },
@@ -3400,11 +3512,11 @@ var ActionButton = function() {
3400
3512
  style: {
3401
3513
  border: "2px solid var(--gray-8)"
3402
3514
  },
3403
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.PauseIcon, {})
3515
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons8.PauseIcon, {})
3404
3516
  });
3405
3517
  }
3406
3518
  if (audioThreadContext.status === "playerPaused") {
3407
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3519
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3408
3520
  onClick: function() {
3409
3521
  return audioThreadContext.messageAudioProps.play();
3410
3522
  },
@@ -3414,10 +3526,10 @@ var ActionButton = function() {
3414
3526
  style: {
3415
3527
  border: "2px solid var(--gray-8)"
3416
3528
  },
3417
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons7.ResumeIcon, {})
3529
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons8.ResumeIcon, {})
3418
3530
  });
3419
3531
  }
3420
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.IconButton, {
3532
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3421
3533
  size: "4",
3422
3534
  color: "red",
3423
3535
  radius: "full",
@@ -3428,88 +3540,88 @@ var ActionButton = function() {
3428
3540
  });
3429
3541
  };
3430
3542
  // src/components/threads/AudioThread/Form/index.tsx
3431
- var import_jsx_runtime57 = require("react/jsx-runtime");
3543
+ var import_jsx_runtime59 = require("react/jsx-runtime");
3432
3544
  var Form = function() {
3433
3545
  var audioThreadContext = useAudioThreadContext();
3434
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_themes43.Flex, {
3546
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_themes44.Flex, {
3435
3547
  direction: "column",
3436
3548
  align: "center",
3437
3549
  children: [
3438
- /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_themes43.Flex, {
3550
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_themes44.Flex, {
3439
3551
  pb: "3",
3440
3552
  align: "center",
3441
3553
  children: [
3442
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes43.Flex, {
3554
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_themes44.Flex, {
3443
3555
  ml: "-5",
3444
3556
  mr: "2",
3445
3557
  align: "center",
3446
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react_icons8.SpeakerModerateIcon, {
3558
+ children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react_icons9.SpeakerModerateIcon, {
3447
3559
  style: {
3448
3560
  color: "var(--".concat(audioThreadContext.status === "recording" ? "mint" : "gray", "-12)")
3449
3561
  }
3450
3562
  })
3451
3563
  }),
3452
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes43.Flex, {
3564
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_themes44.Flex, {
3453
3565
  px: "2",
3454
3566
  py: "1",
3455
3567
  style: {
3456
3568
  backgroundColor: "var(--".concat(audioThreadContext.status === "recording" ? "mint" : "gray", "-4)"),
3457
3569
  borderRadius: "var(--radius-6)"
3458
3570
  },
3459
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Visualizer, {})
3571
+ children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Visualizer, {})
3460
3572
  })
3461
3573
  ]
3462
3574
  }),
3463
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ActionButton, {})
3575
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(ActionButton, {})
3464
3576
  ]
3465
3577
  });
3466
3578
  };
3467
3579
  // src/components/threads/AudioThread/index.tsx
3468
- var import_jsx_runtime58 = require("react/jsx-runtime");
3580
+ var import_jsx_runtime60 = require("react/jsx-runtime");
3469
3581
  var AudioThread = function(props) {
3470
- 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), {
3471
3583
  children: [
3472
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Visualization, {}),
3473
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Form, {})
3584
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Visualization, {}),
3585
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Form, {})
3474
3586
  ]
3475
3587
  }));
3476
3588
  };
3477
- AudioThread.Root = Root7;
3589
+ AudioThread.Root = Root8;
3478
3590
  AudioThread.Visualization = Visualization;
3479
3591
  AudioThread.Form = Form;
3480
3592
  // src/components/threads/AudioThreadDialog/index.tsx
3481
- var import_jsx_runtime59 = require("react/jsx-runtime");
3593
+ var import_jsx_runtime61 = require("react/jsx-runtime");
3482
3594
  var AudioThreadDialog = function() {
3483
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(Root5, {
3595
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(Root6, {
3484
3596
  children: [
3485
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Content4.Root, {
3486
- 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, {})
3487
3599
  }),
3488
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Trigger, {
3489
- 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, {})
3490
3602
  })
3491
3603
  ]
3492
3604
  });
3493
3605
  };
3494
- AudioThreadDialog.Root = Root5;
3606
+ AudioThreadDialog.Root = Root6;
3495
3607
  AudioThreadDialog.Trigger = Trigger;
3496
3608
  AudioThreadDialog.Button = Button3;
3497
3609
  AudioThreadDialog.Content = Content4;
3498
3610
  // src/components/suggestions/Suggestions/index.tsx
3499
- var import_react47 = require("react");
3611
+ var import_react50 = require("react");
3500
3612
  // src/components/suggestions/Suggestions/Content.tsx
3501
- var import_react46 = require("react");
3613
+ var import_react49 = require("react");
3502
3614
  var import_radash11 = require("radash");
3503
3615
  var import_react_children_utilities = require("react-children-utilities");
3504
- var import_themes45 = require("@radix-ui/themes");
3616
+ var import_themes46 = require("@radix-ui/themes");
3505
3617
  // src/components/suggestions/Suggestions/Item.tsx
3506
- var import_react_icons9 = require("@radix-ui/react-icons");
3507
- var import_themes44 = require("@radix-ui/themes");
3508
- 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");
3509
3621
  var Item = function(param) {
3510
3622
  var suggestion = param.suggestion, isDisabled = param.isDisabled;
3511
3623
  var _useCreateMessage = useCreateMessage(), createMessage = _useCreateMessage.createMessage, isPending = _useCreateMessage.isPending;
3512
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Content5, {
3624
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Content5, {
3513
3625
  onClick: function() {
3514
3626
  createMessage({
3515
3627
  // @ts-ignore-next-line
@@ -3523,32 +3635,32 @@ var Item = function(param) {
3523
3635
  };
3524
3636
  var Content5 = function(param) {
3525
3637
  var onClick = param.onClick, isDisabled = param.isDisabled, isPending = param.isPending, children = param.children;
3526
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_themes44.Button, {
3638
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_themes45.Button, {
3527
3639
  variant: "soft",
3528
3640
  onClick: onClick,
3529
3641
  disabled: isDisabled,
3530
3642
  children: [
3531
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_themes44.Text, {
3643
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes45.Text, {
3532
3644
  size: "1",
3533
3645
  weight: "regular",
3534
3646
  children: children
3535
3647
  }),
3536
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_themes44.Spinner, {
3648
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes45.Spinner, {
3537
3649
  loading: isPending,
3538
- children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_icons9.ArrowUpIcon, {})
3650
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_icons10.ArrowUpIcon, {})
3539
3651
  })
3540
3652
  ]
3541
3653
  });
3542
3654
  };
3543
3655
  Item.Content = Content5;
3544
3656
  // src/components/suggestions/Suggestions/Content.tsx
3545
- var import_jsx_runtime61 = require("react/jsx-runtime");
3657
+ var import_jsx_runtime63 = require("react/jsx-runtime");
3546
3658
  var Content6 = function(param) {
3547
3659
  var children = param.children;
3548
3660
  var messageContext = useMessageContext();
3549
3661
  var latestMessageProps = useLatestMessage();
3550
3662
  var isRunActiveProps = useIsRunActive();
3551
- var suggestions = (0, import_react46.useMemo)(function() {
3663
+ var suggestions = (0, import_react49.useMemo)(function() {
3552
3664
  return (0, import_react_children_utilities.onlyText)(children).split(/\r?\n/).filter(function(c) {
3553
3665
  return !(0, import_radash11.isEmpty)(c);
3554
3666
  }).map(function(c) {
@@ -3557,7 +3669,7 @@ var Content6 = function(param) {
3557
3669
  }, [
3558
3670
  children
3559
3671
  ]);
3560
- var isDisabled = (0, import_react46.useMemo)(function() {
3672
+ var isDisabled = (0, import_react49.useMemo)(function() {
3561
3673
  var _messageContext_message;
3562
3674
  return ((_messageContext_message = messageContext.message) === null || _messageContext_message === void 0 ? void 0 : _messageContext_message.id) !== latestMessageProps.latestMessage.id || isRunActiveProps.isRunActive;
3563
3675
  }, [
@@ -3566,12 +3678,12 @@ var Content6 = function(param) {
3566
3678
  isRunActiveProps
3567
3679
  ]);
3568
3680
  if ((0, import_radash11.isEmpty)(suggestions)) return null;
3569
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes45.Flex, {
3681
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_themes46.Flex, {
3570
3682
  gap: "2",
3571
3683
  py: "2",
3572
3684
  wrap: "wrap",
3573
3685
  children: suggestions.map(function(suggestion) {
3574
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Item, {
3686
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Item, {
3575
3687
  suggestion: suggestion,
3576
3688
  isDisabled: isDisabled
3577
3689
  }, suggestion);
@@ -3579,11 +3691,11 @@ var Content6 = function(param) {
3579
3691
  });
3580
3692
  };
3581
3693
  // src/components/suggestions/Suggestions/index.tsx
3582
- var import_jsx_runtime62 = require("react/jsx-runtime");
3694
+ var import_jsx_runtime64 = require("react/jsx-runtime");
3583
3695
  var Suggestions = function(param) {
3584
3696
  var children = param.children;
3585
3697
  var latestMessageProps = useLatestMessage();
3586
- var isDisabled = (0, import_react47.useMemo)(function() {
3698
+ var isDisabled = (0, import_react50.useMemo)(function() {
3587
3699
  var // @ts-ignore-next-line
3588
3700
  _latestMessageProps_latestMessage_metadata, _latestMessageProps_latestMessage;
3589
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;
@@ -3592,26 +3704,26 @@ var Suggestions = function(param) {
3592
3704
  ]);
3593
3705
  if (latestMessageProps.isLoading) return null;
3594
3706
  if (isDisabled) return null;
3595
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Content6, {
3707
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Content6, {
3596
3708
  children: children
3597
3709
  });
3598
3710
  };
3599
3711
  Suggestions.Item = Item;
3600
3712
  // src/components/markdown/MarkdownProvider/index.tsx
3601
- var import_react48 = require("react");
3602
- var import_jsx_runtime63 = require("react/jsx-runtime");
3713
+ var import_react51 = require("react");
3714
+ var import_jsx_runtime65 = require("react/jsx-runtime");
3603
3715
  var MarkdownProvider = function(_param) {
3604
3716
  var children = _param.children, rest = _object_without_properties(_param, [
3605
3717
  "children"
3606
3718
  ]);
3607
3719
  var prevMarkdownContext = useMarkdownContext();
3608
- var value = (0, import_react48.useMemo)(function() {
3720
+ var value = (0, import_react51.useMemo)(function() {
3609
3721
  return merge(prevMarkdownContext, rest);
3610
3722
  }, [
3611
3723
  rest,
3612
3724
  prevMarkdownContext
3613
3725
  ]);
3614
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(MarkdownContext.Provider, {
3726
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(MarkdownContext.Provider, {
3615
3727
  value: value,
3616
3728
  children: children
3617
3729
  });