@superinterface/react 2.16.1 → 2.16.3

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
@@ -10,6 +10,47 @@ function _array_with_holes(arr) {
10
10
  function _array_without_holes(arr) {
11
11
  if (Array.isArray(arr)) return _array_like_to_array(arr);
12
12
  }
13
+ function _async_iterator(iterable) {
14
+ var method, async, sync, retry = 2;
15
+ for("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;){
16
+ if (async && null != (method = iterable[async])) return method.call(iterable);
17
+ if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable));
18
+ async = "@@asyncIterator", sync = "@@iterator";
19
+ }
20
+ throw new TypeError("Object is not async iterable");
21
+ }
22
+ function AsyncFromSyncIterator(s) {
23
+ function AsyncFromSyncIteratorContinuation(r) {
24
+ if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object."));
25
+ var done = r.done;
26
+ return Promise.resolve(r.value).then(function(value) {
27
+ return {
28
+ value: value,
29
+ done: done
30
+ };
31
+ });
32
+ }
33
+ return AsyncFromSyncIterator = function(s) {
34
+ this.s = s, this.n = s.next;
35
+ }, AsyncFromSyncIterator.prototype = {
36
+ s: null,
37
+ n: null,
38
+ next: function() {
39
+ return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));
40
+ },
41
+ return: function(value) {
42
+ var ret = this.s.return;
43
+ return void 0 === ret ? Promise.resolve({
44
+ value: value,
45
+ done: !0
46
+ }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments));
47
+ },
48
+ throw: function(value) {
49
+ var thr = this.s.return;
50
+ return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments));
51
+ }
52
+ }, new AsyncFromSyncIterator(s);
53
+ }
13
54
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
14
55
  try {
15
56
  var info = gen[key](arg);
@@ -267,6 +308,20 @@ function _ts_generator(thisArg, body) {
267
308
  };
268
309
  }
269
310
  }
311
+ function _ts_values(o) {
312
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
313
+ if (m) return m.call(o);
314
+ if (o && typeof o.length === "number") return {
315
+ next: function() {
316
+ if (o && i >= o.length) o = void 0;
317
+ return {
318
+ value: o && o[i++],
319
+ done: !o
320
+ };
321
+ }
322
+ };
323
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
324
+ }
270
325
  var _import_lodash2_default;
271
326
  var _this;
272
327
  var __create = Object.create;
@@ -507,7 +562,7 @@ var SuperinterfaceProvider = function(param) {
507
562
  // src/components/threads/Thread/Messages/index.tsx
508
563
  var import_themes31 = require("@radix-ui/themes");
509
564
  // src/components/threads/Thread/Messages/Content/index.tsx
510
- var import_react26 = require("react");
565
+ var import_react27 = require("react");
511
566
  // src/hooks/messages/useMessages/index.tsx
512
567
  var import_react4 = require("react");
513
568
  var import_react_query2 = require("@tanstack/react-query");
@@ -818,7 +873,7 @@ var useToasts = function() {
818
873
  return (0, import_react9.useContext)(ToastsContext);
819
874
  };
820
875
  // src/components/threads/Thread/Messages/Content/MessageGroup/index.tsx
821
- var import_react25 = require("react");
876
+ var import_react26 = require("react");
822
877
  var import_themes28 = require("@radix-ui/themes");
823
878
  // src/components/messageGroups/MessageGroupBase/AssistantAvatar.tsx
824
879
  var import_react11 = require("react");
@@ -880,7 +935,7 @@ var UserAvatar = function() {
880
935
  // src/components/threads/Thread/Messages/Content/MessageGroup/Content/index.tsx
881
936
  var import_themes27 = require("@radix-ui/themes");
882
937
  // src/components/threads/Thread/Message/index.tsx
883
- var import_react24 = require("react");
938
+ var import_react25 = require("react");
884
939
  var import_radash3 = require("radash");
885
940
  var import_themes26 = require("@radix-ui/themes");
886
941
  // src/components/skeletons/StartingContentSkeleton/index.tsx
@@ -900,24 +955,26 @@ var StartingContentSkeleton = function() {
900
955
  };
901
956
  // src/components/runSteps/RunSteps/index.tsx
902
957
  var import_themes15 = require("@radix-ui/themes");
903
- var import_react19 = require("react");
958
+ var import_react20 = require("react");
904
959
  // src/contexts/components/ComponentsContext/index.tsx
905
- var import_react18 = require("react");
960
+ var import_react19 = require("react");
906
961
  // src/components/runSteps/RunStep/ToolCalls/index.tsx
907
962
  var import_themes14 = require("@radix-ui/themes");
908
963
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/index.tsx
909
- var import_react17 = require("react");
964
+ var import_react18 = require("react");
910
965
  // src/contexts/functions/FunctionComponentsContext/index.tsx
911
966
  var import_react15 = require("react");
912
967
  var FunctionComponentsContext = (0, import_react15.createContext)({});
913
968
  // src/components/functions/FunctionBase/index.tsx
914
969
  var import_themes12 = require("@radix-ui/themes");
915
970
  // src/components/toolCalls/ToolCallBase/index.tsx
971
+ var import_react16 = require("react");
916
972
  var import_themes9 = require("@radix-ui/themes");
917
973
  var import_jsx_runtime10 = require("react/jsx-runtime");
918
- var ToolCallBase = function(param) {
974
+ var ToolCallBase = (0, import_react16.forwardRef)(function ToolCallBase2(param, ref) {
919
975
  var children = param.children;
920
976
  return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_themes9.Flex, {
977
+ ref: ref,
921
978
  py: "1",
922
979
  ml: "-2",
923
980
  children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_themes9.Button, {
@@ -930,7 +987,7 @@ var ToolCallBase = function(param) {
930
987
  children: children
931
988
  })
932
989
  });
933
- };
990
+ });
934
991
  // src/components/toolCalls/ToolCallBase/ToolCallTitle.tsx
935
992
  var import_themes10 = require("@radix-ui/themes");
936
993
  var import_jsx_runtime11 = require("react/jsx-runtime");
@@ -955,12 +1012,12 @@ var ToolCallIcon = function(param) {
955
1012
  }
956
1013
  };
957
1014
  // src/components/functions/FunctionBase/Content.tsx
958
- var import_react16 = require("react");
1015
+ var import_react17 = require("react");
959
1016
  var import_themes11 = require("@radix-ui/themes");
960
1017
  var import_jsx_runtime13 = require("react/jsx-runtime");
961
1018
  var Content = function(param) {
962
1019
  var fn = param.fn;
963
- var args = (0, import_react16.useMemo)(function() {
1020
+ var args = (0, import_react17.useMemo)(function() {
964
1021
  var result = null;
965
1022
  try {
966
1023
  result = JSON.parse(fn.arguments);
@@ -971,7 +1028,7 @@ var Content = function(param) {
971
1028
  }, [
972
1029
  fn
973
1030
  ]);
974
- var output = (0, import_react16.useMemo)(function() {
1031
+ var output = (0, import_react17.useMemo)(function() {
975
1032
  if (!fn.output) {
976
1033
  return null;
977
1034
  }
@@ -1063,7 +1120,7 @@ var import_jsx_runtime16 = // @ts-ignore-next-line
1063
1120
  require("react/jsx-runtime");
1064
1121
  var Fn = function(param) {
1065
1122
  var fn = param.fn, runStep = param.runStep;
1066
- var functionComponentsContext = (0, import_react17.useContext)(FunctionComponentsContext);
1123
+ var functionComponentsContext = (0, import_react18.useContext)(FunctionComponentsContext);
1067
1124
  var Component = functionComponentsContext[fn.name] || DefaultFunction;
1068
1125
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Component, {
1069
1126
  fn: fn,
@@ -1211,7 +1268,7 @@ var RunStep = function(param) {
1211
1268
  };
1212
1269
  RunStep.ToolCalls = ToolCalls;
1213
1270
  // src/contexts/components/ComponentsContext/index.tsx
1214
- var ComponentsContext = (0, import_react18.createContext)({
1271
+ var ComponentsContext = (0, import_react19.createContext)({
1215
1272
  components: {
1216
1273
  RunStep: RunStep
1217
1274
  }
@@ -1220,7 +1277,7 @@ var ComponentsContext = (0, import_react18.createContext)({
1220
1277
  var import_jsx_runtime24 = require("react/jsx-runtime");
1221
1278
  var RunSteps = function(param) {
1222
1279
  var runSteps = param.runSteps;
1223
- var componentsContext = (0, import_react19.useContext)(ComponentsContext);
1280
+ var componentsContext = (0, import_react20.useContext)(ComponentsContext);
1224
1281
  var Component = componentsContext.components.RunStep;
1225
1282
  return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_themes15.Flex, {
1226
1283
  direction: "column-reverse",
@@ -1232,7 +1289,7 @@ var RunSteps = function(param) {
1232
1289
  });
1233
1290
  };
1234
1291
  // src/hooks/messages/useIsMutatingMessage/index.ts
1235
- var import_react20 = require("react");
1292
+ var import_react21 = require("react");
1236
1293
  var import_react_query3 = require("@tanstack/react-query");
1237
1294
  var useIsMutatingMessage = function() {
1238
1295
  var threadContext = useSuperinterfaceContext();
@@ -1242,7 +1299,7 @@ var useIsMutatingMessage = function() {
1242
1299
  threadContext.variables
1243
1300
  ]
1244
1301
  });
1245
- var isMutatingMessage = (0, import_react20.useMemo)(function() {
1302
+ var isMutatingMessage = (0, import_react21.useMemo)(function() {
1246
1303
  return mutatingMessagesCount > 0;
1247
1304
  }, [
1248
1305
  mutatingMessagesCount
@@ -1250,8 +1307,8 @@ var useIsMutatingMessage = function() {
1250
1307
  return isMutatingMessage;
1251
1308
  };
1252
1309
  // src/contexts/messages/MessageContext/index.ts
1253
- var import_react21 = require("react");
1254
- var MessageContext = (0, import_react21.createContext)({
1310
+ var import_react22 = require("react");
1311
+ var MessageContext = (0, import_react22.createContext)({
1255
1312
  message: null
1256
1313
  });
1257
1314
  // src/components/threads/Thread/Message/Provider.tsx
@@ -1259,9 +1316,9 @@ var Provider = MessageContext.Provider;
1259
1316
  // src/components/threads/Thread/Message/TextContent.tsx
1260
1317
  var import_react_markdown = __toESM(require("react-markdown"), 1);
1261
1318
  // src/hooks/markdown/useMarkdownContext/index.ts
1262
- var import_react23 = require("react");
1319
+ var import_react24 = require("react");
1263
1320
  // src/contexts/markdown/MarkdownContext/index.ts
1264
- var import_react22 = require("react");
1321
+ var import_react23 = require("react");
1265
1322
  // src/contexts/markdown/MarkdownContext/lib/components/Paragraph.tsx
1266
1323
  var import_themes16 = require("@radix-ui/themes");
1267
1324
  var import_jsx_runtime25 = require("react/jsx-runtime");
@@ -1391,12 +1448,12 @@ var components = {
1391
1448
  img: Img
1392
1449
  };
1393
1450
  // src/contexts/markdown/MarkdownContext/index.ts
1394
- var MarkdownContext = (0, import_react22.createContext)({
1451
+ var MarkdownContext = (0, import_react23.createContext)({
1395
1452
  components: components
1396
1453
  });
1397
1454
  // src/hooks/markdown/useMarkdownContext/index.ts
1398
1455
  var useMarkdownContext = function() {
1399
- return (0, import_react23.useContext)(MarkdownContext);
1456
+ return (0, import_react24.useContext)(MarkdownContext);
1400
1457
  };
1401
1458
  // src/components/threads/Thread/Message/TextContent.tsx
1402
1459
  var import_jsx_runtime34 = require("react/jsx-runtime");
@@ -1434,7 +1491,7 @@ var Attachments = function(param) {
1434
1491
  var import_jsx_runtime36 = require("react/jsx-runtime");
1435
1492
  var Message = function(param) {
1436
1493
  var message = param.message;
1437
- var _ref = _sliced_to_array((0, import_react24.useMemo)(function() {
1494
+ var _ref = _sliced_to_array((0, import_react25.useMemo)(function() {
1438
1495
  if (!message.runSteps.length) return [
1439
1496
  [],
1440
1497
  []
@@ -1467,7 +1524,7 @@ var Message = function(param) {
1467
1524
  message
1468
1525
  ]), 2), olderRunSteps = _ref[0], laterRunSteps = _ref[1];
1469
1526
  var isMutatingMessage = useIsMutatingMessage();
1470
- var isInProgress = (0, import_react24.useMemo)(function() {
1527
+ var isInProgress = (0, import_react25.useMemo)(function() {
1471
1528
  if (!isMutatingMessage) return false;
1472
1529
  if (message.status === "in_progress") return true;
1473
1530
  return message.runSteps.some(function(rs) {
@@ -1491,7 +1548,7 @@ var Message = function(param) {
1491
1548
  message: message
1492
1549
  }),
1493
1550
  message.content.map(function(content, index) {
1494
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react24.Fragment, {
1551
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react25.Fragment, {
1495
1552
  children: content.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(TextContent, {
1496
1553
  content: content
1497
1554
  })
@@ -1527,7 +1584,7 @@ var Content2 = function(param) {
1527
1584
  var import_jsx_runtime38 = require("react/jsx-runtime");
1528
1585
  var MessageGroup = function(param) {
1529
1586
  var messageGroup = param.messageGroup;
1530
- var assistantNameContext = (0, import_react25.useContext)(AssistantNameContext);
1587
+ var assistantNameContext = (0, import_react26.useContext)(AssistantNameContext);
1531
1588
  return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(MessageGroupBase, {
1532
1589
  children: [
1533
1590
  messageGroup.role === "user" ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(UserAvatar, {}) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(AssistantAvatar, {}),
@@ -1553,7 +1610,7 @@ var Content3 = function() {
1553
1610
  var _useMessageGroups = useMessageGroups({
1554
1611
  messages: messages2
1555
1612
  }), messageGroups2 = _useMessageGroups.messageGroups;
1556
- (0, import_react26.useEffect)(function() {
1613
+ (0, import_react27.useEffect)(function() {
1557
1614
  if (isLoadingError) {
1558
1615
  addToast({
1559
1616
  type: "error",
@@ -1576,14 +1633,14 @@ var Content3 = function() {
1576
1633
  });
1577
1634
  };
1578
1635
  // src/components/threads/Thread/Messages/Progress/index.tsx
1579
- var import_react29 = require("react");
1636
+ var import_react30 = require("react");
1580
1637
  // src/components/skeletons/StartingSkeleton/index.tsx
1581
- var import_react27 = require("react");
1638
+ var import_react28 = require("react");
1582
1639
  var import_themes29 = require("@radix-ui/themes");
1583
1640
  var import_jsx_runtime40 = require("react/jsx-runtime");
1584
1641
  var StartingSkeleton = function(param) {
1585
1642
  var children = param.children;
1586
- var assistantNameContext = (0, import_react27.useContext)(AssistantNameContext);
1643
+ var assistantNameContext = (0, import_react28.useContext)(AssistantNameContext);
1587
1644
  return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(MessageGroupBase, {
1588
1645
  children: [
1589
1646
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(AssistantAvatar, {}),
@@ -1600,10 +1657,10 @@ var StartingSkeleton = function(param) {
1600
1657
  });
1601
1658
  };
1602
1659
  // src/hooks/messages/useLatestMessage/index.ts
1603
- var import_react28 = require("react");
1660
+ var import_react29 = require("react");
1604
1661
  var useLatestMessage = function() {
1605
1662
  var props = useMessages();
1606
- return (0, import_react28.useMemo)(function() {
1663
+ return (0, import_react29.useMemo)(function() {
1607
1664
  return _object_spread_props(_object_spread({}, props), {
1608
1665
  latestMessage: props.messages[0] || null
1609
1666
  });
@@ -1622,7 +1679,7 @@ var import_jsx_runtime41 = require("react/jsx-runtime");
1622
1679
  var Progress = function() {
1623
1680
  var latestMessage = useLatestMessage().latestMessage;
1624
1681
  var isMutatingMessage = useIsMutatingMessage();
1625
- var isVisible = (0, import_react29.useMemo)(function() {
1682
+ var isVisible = (0, import_react30.useMemo)(function() {
1626
1683
  if (!latestMessage) return false;
1627
1684
  if (latestMessage.role !== "user") return false;
1628
1685
  if (latestMessage.status === "in_progress") return false;
@@ -1641,15 +1698,15 @@ var Progress = function() {
1641
1698
  // src/components/threads/Thread/Messages/Root/index.tsx
1642
1699
  var import_themes30 = require("@radix-ui/themes");
1643
1700
  // src/hooks/misc/useInfiniteScroll/index.tsx
1644
- var import_react31 = require("react");
1701
+ var import_react32 = require("react");
1645
1702
  var import_react_intersection_observer = require("react-intersection-observer");
1646
1703
  // src/hooks/misc/useThrottledEffect/index.tsx
1647
1704
  var import_lodash5 = __toESM(require("lodash"), 1);
1648
- var import_react30 = require("react");
1705
+ var import_react31 = require("react");
1649
1706
  var useThrottledEffect = function(cb, delay, additionalDeps) {
1650
1707
  var _cbRef;
1651
- var cbRef = (0, import_react30.useRef)(cb);
1652
- var throttledCb = (0, import_react30.useCallback)(import_lodash5.default.throttle(function() {
1708
+ var cbRef = (0, import_react31.useRef)(cb);
1709
+ var throttledCb = (0, import_react31.useCallback)(import_lodash5.default.throttle(function() {
1653
1710
  for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1654
1711
  args[_key] = arguments[_key];
1655
1712
  }
@@ -1660,17 +1717,17 @@ var useThrottledEffect = function(cb, delay, additionalDeps) {
1660
1717
  }), [
1661
1718
  delay
1662
1719
  ]);
1663
- (0, import_react30.useEffect)(function() {
1720
+ (0, import_react31.useEffect)(function() {
1664
1721
  cbRef.current = cb;
1665
1722
  });
1666
- (0, import_react30.useEffect)(throttledCb, [
1723
+ (0, import_react31.useEffect)(throttledCb, [
1667
1724
  throttledCb
1668
1725
  ].concat(_to_consumable_array(additionalDeps)));
1669
1726
  };
1670
1727
  // src/hooks/misc/useInfiniteScroll/index.tsx
1671
1728
  var useInfiniteScroll = function(param) {
1672
1729
  var isFetchingNextPage = param.isFetchingNextPage, hasNextPage = param.hasNextPage, fetchNextPage = param.fetchNextPage;
1673
- var containerRef = (0, import_react31.useRef)(null);
1730
+ var containerRef = (0, import_react32.useRef)(null);
1674
1731
  var _ref = (0, import_react_intersection_observer.useInView)({
1675
1732
  root: containerRef.current,
1676
1733
  rootMargin: "0px",
@@ -1761,10 +1818,10 @@ Messages.NextPageSkeleton = NextPageSkeleton;
1761
1818
  var import_react_icons6 = require("@radix-ui/react-icons");
1762
1819
  var import_themes32 = require("@radix-ui/themes");
1763
1820
  // src/hooks/messages/useMessageFormContext/index.ts
1764
- var import_react33 = require("react");
1821
+ var import_react34 = require("react");
1765
1822
  // src/contexts/messages/MessageFormContext/index.ts
1766
- var import_react32 = require("react");
1767
- var MessageFormContext = (0, import_react32.createContext)({
1823
+ var import_react33 = require("react");
1824
+ var MessageFormContext = (0, import_react33.createContext)({
1768
1825
  isDisabled: false,
1769
1826
  isLoading: false,
1770
1827
  files: [],
@@ -1773,7 +1830,7 @@ var MessageFormContext = (0, import_react32.createContext)({
1773
1830
  });
1774
1831
  // src/hooks/messages/useMessageFormContext/index.ts
1775
1832
  var useMessageFormContext = function() {
1776
- return (0, import_react33.useContext)(MessageFormContext);
1833
+ return (0, import_react34.useContext)(MessageFormContext);
1777
1834
  };
1778
1835
  // src/components/threads/Thread/MessageForm/Submit/index.tsx
1779
1836
  var import_jsx_runtime45 = require("react/jsx-runtime");
@@ -1813,7 +1870,7 @@ Submit.Root = Root3;
1813
1870
  Submit.Button = Button2;
1814
1871
  // src/components/threads/Thread/MessageForm/Root/index.tsx
1815
1872
  var import_react_query5 = require("@tanstack/react-query");
1816
- var import_react34 = require("react");
1873
+ var import_react35 = require("react");
1817
1874
  var import_react_hook_form = require("react-hook-form");
1818
1875
  var import_themes33 = require("@radix-ui/themes");
1819
1876
  // src/hooks/messages/useCreateMessage/index.ts
@@ -2441,7 +2498,7 @@ var import_radash12 = require("radash");
2441
2498
  var import_jsx_runtime46 = require("react/jsx-runtime");
2442
2499
  var Root4 = function(param) {
2443
2500
  var children = param.children, onSubmitArg = param.onSubmit;
2444
- var _ref = _sliced_to_array((0, import_react34.useState)([]), 2), files = _ref[0], setFiles = _ref[1];
2501
+ var _ref = _sliced_to_array((0, import_react35.useState)([]), 2), files = _ref[0], setFiles = _ref[1];
2445
2502
  var formProps = (0, import_react_hook_form.useForm)(formOptions);
2446
2503
  var handleSubmit = formProps.handleSubmit, isSubmitting = formProps.formState.isSubmitting, reset = formProps.reset;
2447
2504
  var addToast = useToasts().addToast;
@@ -2471,7 +2528,7 @@ var Root4 = function(param) {
2471
2528
  }
2472
2529
  }).createMessage;
2473
2530
  var isMutatingMessage = useIsMutatingMessage();
2474
- var isFileLoading = (0, import_react34.useMemo)(function() {
2531
+ var isFileLoading = (0, import_react35.useMemo)(function() {
2475
2532
  return files.some(function(file) {
2476
2533
  return isOptimistic({
2477
2534
  id: file.id
@@ -2480,14 +2537,14 @@ var Root4 = function(param) {
2480
2537
  }, [
2481
2538
  files
2482
2539
  ]);
2483
- var isLoading = (0, import_react34.useMemo)(function() {
2540
+ var isLoading = (0, import_react35.useMemo)(function() {
2484
2541
  return isMutatingMessage || isSubmitting;
2485
2542
  }, [
2486
2543
  isMutatingMessage,
2487
2544
  isSubmitting
2488
2545
  ]);
2489
2546
  var latestMessage = useLatestMessage().latestMessage;
2490
- var isDisabled = (0, import_react34.useMemo)(function() {
2547
+ var isDisabled = (0, import_react35.useMemo)(function() {
2491
2548
  var // @ts-ignore-next-line
2492
2549
  _latestMessage_metadata;
2493
2550
  return latestMessage === null || latestMessage === void 0 ? void 0 : (_latestMessage_metadata = latestMessage.metadata) === null || _latestMessage_metadata === void 0 ? void 0 : _latestMessage_metadata.isBlocking;
@@ -2574,12 +2631,12 @@ var import_themes37 = require("@radix-ui/themes");
2574
2631
  var import_themes34 = require("@radix-ui/themes");
2575
2632
  var import_react_hook_form2 = require("react-hook-form");
2576
2633
  var import_react_use = require("react-use");
2577
- var import_react36 = require("react");
2634
+ var import_react37 = require("react");
2578
2635
  // src/components/textareas/TextareaBase/index.tsx
2579
- var import_react35 = require("react");
2636
+ var import_react36 = require("react");
2580
2637
  var import_react_textarea_autosize = __toESM(require("react-textarea-autosize"), 1);
2581
2638
  var import_jsx_runtime47 = require("react/jsx-runtime");
2582
- var TextareaBase = (0, import_react35.forwardRef)(function TextareaBase2(props, ref) {
2639
+ var TextareaBase = (0, import_react36.forwardRef)(function TextareaBase2(props, ref) {
2583
2640
  return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_jsx_runtime47.Fragment, {
2584
2641
  children: [
2585
2642
  /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("style", {
@@ -2612,19 +2669,19 @@ var Root5 = function(param) {
2612
2669
  });
2613
2670
  };
2614
2671
  var Input = function() {
2615
- var assistantNameContext = (0, import_react36.useContext)(AssistantNameContext);
2672
+ var assistantNameContext = (0, import_react37.useContext)(AssistantNameContext);
2616
2673
  var register = (0, import_react_hook_form2.useFormContext)().register;
2617
2674
  var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
2618
- var isSubmitDisabled = (0, import_react36.useMemo)(function() {
2675
+ var isSubmitDisabled = (0, import_react37.useMemo)(function() {
2619
2676
  return isDisabled || isLoading;
2620
2677
  }, [
2621
2678
  isDisabled,
2622
2679
  isLoading
2623
2680
  ]);
2624
2681
  var isDisabledPrevious = (0, import_react_use.usePrevious)(isDisabled);
2625
- var textareaRef = (0, import_react36.useRef)(null);
2682
+ var textareaRef = (0, import_react37.useRef)(null);
2626
2683
  var textareaProps = register("content");
2627
- (0, import_react36.useEffect)(function() {
2684
+ (0, import_react37.useEffect)(function() {
2628
2685
  if (isDisabled) return;
2629
2686
  if (!isDisabledPrevious) return;
2630
2687
  if (!textareaRef.current) return;
@@ -2729,7 +2786,8 @@ var Preview = function() {
2729
2786
  });
2730
2787
  };
2731
2788
  // src/components/threads/Thread/MessageForm/Field/Files/Control.tsx
2732
- var import_react37 = require("react");
2789
+ var import_react38 = require("react");
2790
+ var import_radash13 = require("radash");
2733
2791
  var import_dayjs2 = __toESM(require("dayjs"), 1);
2734
2792
  var import_react_icons8 = require("@radix-ui/react-icons");
2735
2793
  var import_themes36 = require("@radix-ui/themes");
@@ -2849,50 +2907,174 @@ var Control2 = function() {
2849
2907
  var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading, setFiles = _useMessageFormContext.setFiles;
2850
2908
  var createFile = useCreateFile().createFile;
2851
2909
  var addToast = useToasts().addToast;
2852
- var onChange = (0, import_react37.useCallback)(function(event) {
2853
- var files = event.target.files;
2854
- if (!files) return;
2855
- var newFiles = Array.from(files).map(function(file) {
2856
- var id = optimisticId();
2857
- createFile({
2858
- file: file
2859
- }, {
2860
- onSuccess: function(param) {
2861
- var file2 = param.file;
2862
- setFiles(function(prev) {
2863
- return _to_consumable_array(prev.filter(function(prevFile) {
2864
- return prevFile.id !== id;
2865
- })).concat([
2866
- file2
2867
- ]);
2868
- });
2869
- },
2870
- onError: function() {
2871
- addToast({
2872
- type: "error",
2873
- message: "Could not upload file. Please try again."
2874
- });
2875
- setFiles(function(prev) {
2876
- return prev.filter(function(prevFile) {
2877
- return prevFile.id !== id;
2910
+ var onChange = (0, import_react38.useCallback)(function() {
2911
+ var _ref = _async_to_generator(function(event) {
2912
+ var fileObjects, newFiles, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, err;
2913
+ return _ts_generator(this, function(_state) {
2914
+ switch(_state.label){
2915
+ case 0:
2916
+ fileObjects = event.target.files;
2917
+ if (!fileObjects) return [
2918
+ 2
2919
+ ];
2920
+ newFiles = Array.from(fileObjects).map(function(fileObject) {
2921
+ return {
2922
+ id: optimisticId(),
2923
+ filename: fileObject.name,
2924
+ object: "file",
2925
+ purpose: "assistants",
2926
+ created_at: (0, import_dayjs2.default)().unix(),
2927
+ bytes: fileObject.size,
2928
+ status: "processed",
2929
+ fileObject: fileObject
2930
+ };
2931
+ });
2932
+ setFiles(function(prev) {
2933
+ return _to_consumable_array(prev).concat(_to_consumable_array(newFiles.map(function(file) {
2934
+ return (0, import_radash13.omit)(file, [
2935
+ "fileObject"
2936
+ ]);
2937
+ })));
2878
2938
  });
2879
- });
2939
+ _iteratorAbruptCompletion = false, _didIteratorError = false;
2940
+ _state.label = 1;
2941
+ case 1:
2942
+ _state.trys.push([
2943
+ 1,
2944
+ 7,
2945
+ 8,
2946
+ 13
2947
+ ]);
2948
+ _loop = function() {
2949
+ var _value, newFile;
2950
+ return _ts_generator(this, function(_state) {
2951
+ switch(_state.label){
2952
+ case 0:
2953
+ _value = _step.value;
2954
+ newFile = _value;
2955
+ return [
2956
+ 4,
2957
+ createFile({
2958
+ file: newFile.fileObject
2959
+ }, {
2960
+ onSuccess: function(param) {
2961
+ var file = param.file;
2962
+ return setFiles(function(prev) {
2963
+ return _to_consumable_array(prev.filter(function(prevFile) {
2964
+ return prevFile.id !== newFile.id;
2965
+ })).concat([
2966
+ file
2967
+ ]);
2968
+ });
2969
+ },
2970
+ onError: function() {
2971
+ addToast({
2972
+ type: "error",
2973
+ message: "Could not upload file. Please try again."
2974
+ });
2975
+ setFiles(function(prev) {
2976
+ return prev.filter(function(prevFile) {
2977
+ return prevFile.id !== newFile.id;
2978
+ });
2979
+ });
2980
+ }
2981
+ })
2982
+ ];
2983
+ case 1:
2984
+ _state.sent();
2985
+ return [
2986
+ 2
2987
+ ];
2988
+ }
2989
+ });
2990
+ };
2991
+ _iterator = _async_iterator(newFiles);
2992
+ _state.label = 2;
2993
+ case 2:
2994
+ return [
2995
+ 4,
2996
+ _iterator.next()
2997
+ ];
2998
+ case 3:
2999
+ if (!(_iteratorAbruptCompletion = !(_step = _state.sent()).done)) return [
3000
+ 3,
3001
+ 6
3002
+ ];
3003
+ return [
3004
+ 5,
3005
+ _ts_values(_loop())
3006
+ ];
3007
+ case 4:
3008
+ _state.sent();
3009
+ _state.label = 5;
3010
+ case 5:
3011
+ _iteratorAbruptCompletion = false;
3012
+ return [
3013
+ 3,
3014
+ 2
3015
+ ];
3016
+ case 6:
3017
+ return [
3018
+ 3,
3019
+ 13
3020
+ ];
3021
+ case 7:
3022
+ err = _state.sent();
3023
+ _didIteratorError = true;
3024
+ _iteratorError = err;
3025
+ return [
3026
+ 3,
3027
+ 13
3028
+ ];
3029
+ case 8:
3030
+ _state.trys.push([
3031
+ 8,
3032
+ ,
3033
+ 11,
3034
+ 12
3035
+ ]);
3036
+ if (!(_iteratorAbruptCompletion && _iterator.return != null)) return [
3037
+ 3,
3038
+ 10
3039
+ ];
3040
+ return [
3041
+ 4,
3042
+ _iterator.return()
3043
+ ];
3044
+ case 9:
3045
+ _state.sent();
3046
+ _state.label = 10;
3047
+ case 10:
3048
+ return [
3049
+ 3,
3050
+ 12
3051
+ ];
3052
+ case 11:
3053
+ if (_didIteratorError) {
3054
+ throw _iteratorError;
3055
+ }
3056
+ return [
3057
+ 7
3058
+ ];
3059
+ case 12:
3060
+ return [
3061
+ 7
3062
+ ];
3063
+ case 13:
3064
+ return [
3065
+ 2
3066
+ ];
2880
3067
  }
2881
3068
  });
2882
- return {
2883
- id: id,
2884
- filename: file.name,
2885
- object: "file",
2886
- purpose: "assistants",
2887
- created_at: (0, import_dayjs2.default)().unix(),
2888
- bytes: file.size,
2889
- status: "processed"
2890
- };
2891
- });
2892
- setFiles(function(prev) {
2893
- return _to_consumable_array(prev).concat(_to_consumable_array(newFiles));
2894
3069
  });
2895
- }, []);
3070
+ return function(event) {
3071
+ return _ref.apply(this, arguments);
3072
+ };
3073
+ }(), [
3074
+ addToast,
3075
+ createFile,
3076
+ setFiles
3077
+ ]);
2896
3078
  return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_themes36.Flex, {
2897
3079
  pt: "2",
2898
3080
  pr: "2",
@@ -2910,6 +3092,7 @@ var Control2 = function() {
2910
3092
  /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_react_icons8.FilePlusIcon, {}),
2911
3093
  /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("input", {
2912
3094
  type: "file",
3095
+ multiple: true,
2913
3096
  accept: accept,
2914
3097
  onChange: onChange,
2915
3098
  style: {
@@ -3015,29 +3198,29 @@ Thread.Root = Root7;
3015
3198
  Thread.Messages = Messages;
3016
3199
  Thread.MessageForm = MessageForm;
3017
3200
  // src/hooks/messages/useMessageContext/index.ts
3018
- var import_react38 = require("react");
3201
+ var import_react39 = require("react");
3019
3202
  var useMessageContext = function() {
3020
- return (0, import_react38.useContext)(MessageContext);
3203
+ return (0, import_react39.useContext)(MessageContext);
3021
3204
  };
3022
3205
  // src/components/threads/ThreadDialog/Provider/index.tsx
3023
- var import_react41 = require("react");
3206
+ var import_react42 = require("react");
3024
3207
  // src/contexts/threads/ThreadDialogContext/index.ts
3025
- var import_react39 = require("react");
3026
- var ThreadDialogContext = (0, import_react39.createContext)({
3208
+ var import_react40 = require("react");
3209
+ var ThreadDialogContext = (0, import_react40.createContext)({
3027
3210
  isOpen: false,
3028
3211
  setIsOpen: function() {}
3029
3212
  });
3030
3213
  // src/hooks/threads/useThreadDialogContext/index.ts
3031
- var import_react40 = require("react");
3214
+ var import_react41 = require("react");
3032
3215
  var useThreadDialogContext = function() {
3033
- return (0, import_react40.useContext)(ThreadDialogContext);
3216
+ return (0, import_react41.useContext)(ThreadDialogContext);
3034
3217
  };
3035
3218
  // src/components/threads/ThreadDialog/Provider/index.tsx
3036
3219
  var import_jsx_runtime55 = require("react/jsx-runtime");
3037
3220
  var Provider3 = function(param) {
3038
3221
  var children = param.children;
3039
3222
  var threadDialogContext = useThreadDialogContext();
3040
- var _ref = _sliced_to_array((0, import_react41.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
3223
+ var _ref = _sliced_to_array((0, import_react42.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
3041
3224
  return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ThreadDialogContext.Provider, {
3042
3225
  value: {
3043
3226
  isOpen: isOpen,
@@ -3047,7 +3230,7 @@ var Provider3 = function(param) {
3047
3230
  });
3048
3231
  };
3049
3232
  // src/components/toasts/ToastsProvider/index.tsx
3050
- var import_react42 = require("react");
3233
+ var import_react43 = require("react");
3051
3234
  var Toast2 = __toESM(require("@radix-ui/react-toast"), 1);
3052
3235
  // src/components/toasts/ToastsProvider/CustomToast.tsx
3053
3236
  var Toast = __toESM(require("@radix-ui/react-toast"), 1);
@@ -3086,8 +3269,8 @@ var CustomToast = function(param) {
3086
3269
  var import_jsx_runtime57 = require("react/jsx-runtime");
3087
3270
  var ToastsProvider = function(param) {
3088
3271
  var children = param.children;
3089
- var _ref = _sliced_to_array((0, import_react42.useState)([]), 2), toasts = _ref[0], setToasts = _ref[1];
3090
- var addToast = (0, import_react42.useCallback)(function(toast) {
3272
+ var _ref = _sliced_to_array((0, import_react43.useState)([]), 2), toasts = _ref[0], setToasts = _ref[1];
3273
+ var addToast = (0, import_react43.useCallback)(function(toast) {
3091
3274
  return setToasts(function(prevToasts) {
3092
3275
  return _to_consumable_array(prevToasts).concat([
3093
3276
  toast
@@ -3335,8 +3518,8 @@ ThreadDialog.Content = Content4;
3335
3518
  var import_runtime = require("regenerator-runtime/runtime");
3336
3519
  var import_themes44 = require("@radix-ui/themes");
3337
3520
  // src/contexts/threads/AudioThreadContext/index.ts
3338
- var import_react43 = require("react");
3339
- var AudioThreadContext = (0, import_react43.createContext)({
3521
+ var import_react44 = require("react");
3522
+ var AudioThreadContext = (0, import_react44.createContext)({
3340
3523
  status: "idle",
3341
3524
  recorderProps: {
3342
3525
  status: "idle",
@@ -3404,11 +3587,11 @@ var blobToData = function(blob) {
3404
3587
  });
3405
3588
  };
3406
3589
  // src/hooks/audioThreads/useStatus/index.ts
3407
- var import_react44 = require("react");
3590
+ var import_react45 = require("react");
3408
3591
  var useStatus = function(param) {
3409
3592
  var messageAudioProps = param.messageAudioProps, recorderProps = param.recorderProps, createMessageProps = param.createMessageProps;
3410
3593
  var latestMessageProps = useLatestMessage();
3411
- var status = (0, import_react44.useMemo)(function() {
3594
+ var status = (0, import_react45.useMemo)(function() {
3412
3595
  var _latestMessageProps_latestMessage;
3413
3596
  if (recorderProps.status === "recording") return "recording";
3414
3597
  if (createMessageProps.isPending) return "creatingMessage";
@@ -3432,19 +3615,19 @@ var useStatus = function(param) {
3432
3615
  // src/hooks/audioThreads/useRecorder/index.ts
3433
3616
  var import_dayjs3 = __toESM(require("dayjs"), 1);
3434
3617
  var import_use_audio_capture = require("use-audio-capture");
3435
- var import_react45 = require("react");
3618
+ var import_react46 = require("react");
3436
3619
  var import_react_use_audio_player = require("react-use-audio-player");
3437
3620
  var import_react_use2 = require("react-use");
3438
3621
  var useRecorder = function(param) {
3439
3622
  var isStopOnSilence = param.isStopOnSilence, onStart = param.onStart, onStop = param.onStop;
3440
- var _ref = _sliced_to_array((0, import_react45.useState)(null), 2), silenceStart = _ref[0], setSilenceStart = _ref[1];
3441
- var _ref1 = _sliced_to_array((0, import_react45.useState)(null), 2), noiseStart = _ref1[0], setNoiseStart = _ref1[1];
3442
- var _ref2 = _sliced_to_array((0, import_react45.useState)(null), 2), mediaStream = _ref2[0], setMediaStream = _ref2[1];
3443
- var _ref3 = _sliced_to_array((0, import_react45.useState)("idle"), 2), status = _ref3[0], setStatus = _ref3[1];
3623
+ var _ref = _sliced_to_array((0, import_react46.useState)(null), 2), silenceStart = _ref[0], setSilenceStart = _ref[1];
3624
+ var _ref1 = _sliced_to_array((0, import_react46.useState)(null), 2), noiseStart = _ref1[0], setNoiseStart = _ref1[1];
3625
+ var _ref2 = _sliced_to_array((0, import_react46.useState)(null), 2), mediaStream = _ref2[0], setMediaStream = _ref2[1];
3626
+ var _ref3 = _sliced_to_array((0, import_react46.useState)("idle"), 2), status = _ref3[0], setStatus = _ref3[1];
3444
3627
  var startAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
3445
3628
  var endAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
3446
- var _ref4 = _sliced_to_array((0, import_react45.useState)(false), 2), isLoaded = _ref4[0], setIsLoaded = _ref4[1];
3447
- (0, import_react45.useEffect)(function() {
3629
+ var _ref4 = _sliced_to_array((0, import_react46.useState)(false), 2), isLoaded = _ref4[0], setIsLoaded = _ref4[1];
3630
+ (0, import_react46.useEffect)(function() {
3448
3631
  if (isLoaded) return;
3449
3632
  setIsLoaded(true);
3450
3633
  }, [
@@ -3502,9 +3685,9 @@ var useRecorder = function(param) {
3502
3685
  setNoiseStart(null);
3503
3686
  }
3504
3687
  });
3505
- var _ref5 = _sliced_to_array((0, import_react45.useState)(null), 2), audioEngine = _ref5[0], setAudioEngine = _ref5[1];
3506
- var isInited = (0, import_react45.useRef)(false);
3507
- (0, import_react45.useEffect)(function() {
3688
+ var _ref5 = _sliced_to_array((0, import_react46.useState)(null), 2), audioEngine = _ref5[0], setAudioEngine = _ref5[1];
3689
+ var isInited = (0, import_react46.useRef)(false);
3690
+ (0, import_react46.useEffect)(function() {
3508
3691
  if (!mediaStream) return;
3509
3692
  if (isInited.current) return;
3510
3693
  isInited.current = true;
@@ -3517,7 +3700,7 @@ var useRecorder = function(param) {
3517
3700
  isInited,
3518
3701
  mediaStream
3519
3702
  ]);
3520
- var visualizationAnalyser = (0, import_react45.useMemo)(function() {
3703
+ var visualizationAnalyser = (0, import_react46.useMemo)(function() {
3521
3704
  if (!audioEngine) return null;
3522
3705
  var result = audioEngine.audioContext.createAnalyser();
3523
3706
  audioEngine.source.connect(result);
@@ -3525,7 +3708,7 @@ var useRecorder = function(param) {
3525
3708
  }, [
3526
3709
  audioEngine
3527
3710
  ]);
3528
- var silenceAnalyser = (0, import_react45.useMemo)(function() {
3711
+ var silenceAnalyser = (0, import_react46.useMemo)(function() {
3529
3712
  if (!audioEngine) return null;
3530
3713
  var result = audioEngine.audioContext.createAnalyser();
3531
3714
  result.minDecibels = -60;
@@ -3534,7 +3717,7 @@ var useRecorder = function(param) {
3534
3717
  }, [
3535
3718
  audioEngine
3536
3719
  ]);
3537
- var handleSilence = (0, import_react45.useCallback)(function() {
3720
+ var handleSilence = (0, import_react46.useCallback)(function() {
3538
3721
  if (!silenceAnalyser) return;
3539
3722
  var frequencyData = new Uint8Array(silenceAnalyser.frequencyBinCount);
3540
3723
  silenceAnalyser.getByteFrequencyData(frequencyData);
@@ -3557,7 +3740,7 @@ var useRecorder = function(param) {
3557
3740
  setNoiseStart,
3558
3741
  setSilenceStart
3559
3742
  ]);
3560
- (0, import_react45.useEffect)(function() {
3743
+ (0, import_react46.useEffect)(function() {
3561
3744
  if (!isStopOnSilence) return;
3562
3745
  requestAnimationFrame(function() {
3563
3746
  return handleSilence();
@@ -3580,12 +3763,12 @@ var useRecorder = function(param) {
3580
3763
  });
3581
3764
  };
3582
3765
  // src/hooks/audioThreads/useMessageAudio/index.ts
3583
- var import_react46 = require("react");
3766
+ var import_react47 = require("react");
3584
3767
  var import_compromise = __toESM(require("compromise"), 1);
3585
3768
  var import_howler = require("howler");
3586
3769
  var import_react_use_audio_player2 = require("react-use-audio-player");
3587
3770
  // src/hooks/audioThreads/useMessageAudio/lib/input.ts
3588
- var import_radash13 = require("radash");
3771
+ var import_radash14 = require("radash");
3589
3772
  var input = function(param) {
3590
3773
  var message = param.message;
3591
3774
  var textContents = message.content.filter(function(c) {
@@ -3594,7 +3777,7 @@ var input = function(param) {
3594
3777
  var result = textContents.map(function(c) {
3595
3778
  return c.text.value;
3596
3779
  }).join(" ");
3597
- if ((0, import_radash13.isEmpty)(result)) return null;
3780
+ if ((0, import_radash14.isEmpty)(result)) return null;
3598
3781
  return result;
3599
3782
  };
3600
3783
  // src/hooks/audioThreads/useMessageAudio/lib/isHtmlAudioSupported.ts
@@ -3618,15 +3801,15 @@ var getMessageSentences = function(param) {
3618
3801
  };
3619
3802
  var useMessageAudio = function(param) {
3620
3803
  var onEnd = param.onEnd;
3621
- var _ref = _sliced_to_array((0, import_react46.useState)(false), 2), isAudioPlayed = _ref[0], setIsAudioPlayed = _ref[1];
3622
- var _ref1 = _sliced_to_array((0, import_react46.useState)([]), 2), stoppedMessageIds = _ref1[0], setStoppedMessageIds = _ref1[1];
3623
- var _ref2 = _sliced_to_array((0, import_react46.useState)([]), 2), playedMessageSentences = _ref2[0], setPlayedMessageSentences = _ref2[1];
3804
+ var _ref = _sliced_to_array((0, import_react47.useState)(false), 2), isAudioPlayed = _ref[0], setIsAudioPlayed = _ref[1];
3805
+ var _ref1 = _sliced_to_array((0, import_react47.useState)([]), 2), stoppedMessageIds = _ref1[0], setStoppedMessageIds = _ref1[1];
3806
+ var _ref2 = _sliced_to_array((0, import_react47.useState)([]), 2), playedMessageSentences = _ref2[0], setPlayedMessageSentences = _ref2[1];
3624
3807
  var audioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
3625
3808
  var nextAudioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
3626
3809
  var superinterfaceContext = useSuperinterfaceContext();
3627
- var _ref3 = _sliced_to_array((0, import_react46.useState)(false), 2), isPlaying = _ref3[0], setIsPlaying = _ref3[1];
3810
+ var _ref3 = _sliced_to_array((0, import_react47.useState)(false), 2), isPlaying = _ref3[0], setIsPlaying = _ref3[1];
3628
3811
  var latestMessageProps = useLatestMessage();
3629
- var unplayedMessageSentences = (0, import_react46.useMemo)(function() {
3812
+ var unplayedMessageSentences = (0, import_react47.useMemo)(function() {
3630
3813
  if (!latestMessageProps.latestMessage) return [];
3631
3814
  if (latestMessageProps.latestMessage.role !== "assistant") return [];
3632
3815
  if (stoppedMessageIds.includes(latestMessageProps.latestMessage.id)) return [];
@@ -3647,7 +3830,7 @@ var useMessageAudio = function(param) {
3647
3830
  latestMessageProps,
3648
3831
  playedMessageSentences
3649
3832
  ]);
3650
- (0, import_react46.useEffect)(function() {
3833
+ (0, import_react47.useEffect)(function() {
3651
3834
  if (isPlaying) return;
3652
3835
  if (audioPlayer.playing) return;
3653
3836
  if (!latestMessageProps.latestMessage) return;
@@ -3715,7 +3898,7 @@ var useMessageAudio = function(param) {
3715
3898
  playedMessageSentences,
3716
3899
  onEnd
3717
3900
  ]);
3718
- (0, import_react46.useEffect)(function() {
3901
+ (0, import_react47.useEffect)(function() {
3719
3902
  if (isHtmlAudioSupported) {
3720
3903
  var _import_howler_Howler__howls___sounds_, _import_howler_Howler__howls_, _import_howler_Howler;
3721
3904
  if (!((_import_howler_Howler = import_howler.Howler) === null || _import_howler_Howler === void 0 ? void 0 : (_import_howler_Howler__howls_ = _import_howler_Howler._howls[0]) === null || _import_howler_Howler__howls_ === void 0 ? void 0 : (_import_howler_Howler__howls___sounds_ = _import_howler_Howler__howls_._sounds[0]) === null || _import_howler_Howler__howls___sounds_ === void 0 ? void 0 : _import_howler_Howler__howls___sounds_._node)) return;
@@ -3724,9 +3907,9 @@ var useMessageAudio = function(param) {
3724
3907
  }, [
3725
3908
  audioPlayer
3726
3909
  ]);
3727
- var _ref4 = _sliced_to_array((0, import_react46.useState)(null), 2), audioEngine = _ref4[0], setAudioEngine = _ref4[1];
3728
- var isAudioEngineInited = (0, import_react46.useRef)(false);
3729
- (0, import_react46.useEffect)(function() {
3910
+ var _ref4 = _sliced_to_array((0, import_react47.useState)(null), 2), audioEngine = _ref4[0], setAudioEngine = _ref4[1];
3911
+ var isAudioEngineInited = (0, import_react47.useRef)(false);
3912
+ (0, import_react47.useEffect)(function() {
3730
3913
  if (!audioPlayer.playing) return;
3731
3914
  if (isAudioEngineInited.current) return;
3732
3915
  isAudioEngineInited.current = true;
@@ -3747,7 +3930,7 @@ var useMessageAudio = function(param) {
3747
3930
  audioPlayer,
3748
3931
  isAudioEngineInited
3749
3932
  ]);
3750
- var visualizationAnalyser = (0, import_react46.useMemo)(function() {
3933
+ var visualizationAnalyser = (0, import_react47.useMemo)(function() {
3751
3934
  if (!audioEngine) return null;
3752
3935
  var result = audioEngine.audioContext.createAnalyser();
3753
3936
  audioEngine.source.connect(audioEngine.audioContext.destination);
@@ -3756,7 +3939,7 @@ var useMessageAudio = function(param) {
3756
3939
  }, [
3757
3940
  audioEngine
3758
3941
  ]);
3759
- var isPending = (0, import_react46.useMemo)(function() {
3942
+ var isPending = (0, import_react47.useMemo)(function() {
3760
3943
  return isPlaying || unplayedMessageSentences.length > 0;
3761
3944
  }, [
3762
3945
  isPlaying,
@@ -3843,25 +4026,25 @@ var Root12 = function(param) {
3843
4026
  });
3844
4027
  };
3845
4028
  // src/components/threads/AudioThread/Visualization/index.tsx
3846
- var import_react49 = require("react");
4029
+ var import_react50 = require("react");
3847
4030
  var import_lodash9 = __toESM(require("lodash"), 1);
3848
4031
  var import_themes46 = require("@radix-ui/themes");
3849
4032
  // src/hooks/threads/useAudioThreadContext/index.ts
3850
- var import_react47 = require("react");
4033
+ var import_react48 = require("react");
3851
4034
  var useAudioThreadContext = function() {
3852
- return (0, import_react47.useContext)(AudioThreadContext);
4035
+ return (0, import_react48.useContext)(AudioThreadContext);
3853
4036
  };
3854
4037
  // src/components/threads/AudioThread/BarsVisualizer/index.tsx
3855
4038
  var import_lodash8 = __toESM(require("lodash"), 1);
3856
4039
  var import_themes45 = require("@radix-ui/themes");
3857
- var import_react48 = require("react");
3858
- var import_radash14 = require("radash");
4040
+ var import_react49 = require("react");
4041
+ var import_radash15 = require("radash");
3859
4042
  var import_jsx_runtime65 = require("react/jsx-runtime");
3860
4043
  var barCount = 4;
3861
4044
  var BarsVisualizer = function(param) {
3862
4045
  var visualizationAnalyser = param.visualizationAnalyser, backgroundColor = param.backgroundColor, height = param.height, barWidth = param.barWidth;
3863
- var _ref = _sliced_to_array((0, import_react48.useState)([]), 2), barHeights = _ref[0], setBarHeights = _ref[1];
3864
- var draw = (0, import_react48.useCallback)(function(param) {
4046
+ var _ref = _sliced_to_array((0, import_react49.useState)([]), 2), barHeights = _ref[0], setBarHeights = _ref[1];
4047
+ var draw = (0, import_react49.useCallback)(function(param) {
3865
4048
  var visualizationAnalyser2 = param.visualizationAnalyser;
3866
4049
  if (!visualizationAnalyser2) {
3867
4050
  setBarHeights(Array(barCount).fill(0));
@@ -3869,7 +4052,7 @@ var BarsVisualizer = function(param) {
3869
4052
  }
3870
4053
  var frequencyData = new Uint8Array(visualizationAnalyser2.frequencyBinCount / 15);
3871
4054
  visualizationAnalyser2.getByteFrequencyData(frequencyData);
3872
- var clusteredFrequencyData = (0, import_radash14.cluster)(frequencyData, frequencyData.length / barCount);
4055
+ var clusteredFrequencyData = (0, import_radash15.cluster)(frequencyData, frequencyData.length / barCount);
3873
4056
  setBarHeights(clusteredFrequencyData.map(function(frequencyDataCluster) {
3874
4057
  return import_lodash8.default.mean(frequencyDataCluster) / 255 * 100;
3875
4058
  }));
@@ -3879,7 +4062,7 @@ var BarsVisualizer = function(param) {
3879
4062
  });
3880
4063
  });
3881
4064
  }, []);
3882
- (0, import_react48.useEffect)(function() {
4065
+ (0, import_react49.useEffect)(function() {
3883
4066
  draw({
3884
4067
  visualizationAnalyser: visualizationAnalyser
3885
4068
  });
@@ -3919,9 +4102,9 @@ var BarsVisualizer = function(param) {
3919
4102
  var import_jsx_runtime66 = require("react/jsx-runtime");
3920
4103
  var Visualization = function() {
3921
4104
  var audioThreadContext = useAudioThreadContext();
3922
- var assistantNameContext = (0, import_react49.useContext)(AssistantNameContext);
3923
- var _ref = _sliced_to_array((0, import_react49.useState)(0), 2), scale = _ref[0], setScale = _ref[1];
3924
- var draw = (0, import_react49.useCallback)(function(param) {
4105
+ var assistantNameContext = (0, import_react50.useContext)(AssistantNameContext);
4106
+ var _ref = _sliced_to_array((0, import_react50.useState)(0), 2), scale = _ref[0], setScale = _ref[1];
4107
+ var draw = (0, import_react50.useCallback)(function(param) {
3925
4108
  var visualizationAnalyser = param.visualizationAnalyser;
3926
4109
  if (!visualizationAnalyser) {
3927
4110
  setScale(1);
@@ -3936,7 +4119,7 @@ var Visualization = function() {
3936
4119
  });
3937
4120
  });
3938
4121
  }, []);
3939
- (0, import_react49.useEffect)(function() {
4122
+ (0, import_react50.useEffect)(function() {
3940
4123
  draw({
3941
4124
  visualizationAnalyser: audioThreadContext.recorderProps.visualizationAnalyser
3942
4125
  });
@@ -4221,10 +4404,10 @@ AudioThreadDialog.Root = Root9;
4221
4404
  AudioThreadDialog.Trigger = Trigger;
4222
4405
  AudioThreadDialog.Content = Content4;
4223
4406
  // src/components/suggestions/Suggestions/index.tsx
4224
- var import_react51 = require("react");
4407
+ var import_react52 = require("react");
4225
4408
  // src/components/suggestions/Suggestions/Content.tsx
4226
- var import_react50 = require("react");
4227
- var import_radash15 = require("radash");
4409
+ var import_react51 = require("react");
4410
+ var import_radash16 = require("radash");
4228
4411
  var import_react_children_utilities = require("react-children-utilities");
4229
4412
  var import_themes51 = require("@radix-ui/themes");
4230
4413
  // src/components/suggestions/Suggestions/Item.tsx
@@ -4280,16 +4463,16 @@ var import_jsx_runtime75 = require("react/jsx-runtime");
4280
4463
  var Content6 = function(param) {
4281
4464
  var children = param.children;
4282
4465
  var isMutatingMessage = useIsMutatingMessage();
4283
- var suggestions = (0, import_react50.useMemo)(function() {
4466
+ var suggestions = (0, import_react51.useMemo)(function() {
4284
4467
  return (0, import_react_children_utilities.onlyText)(children).split(/\r?\n/).filter(function(c) {
4285
- return !(0, import_radash15.isEmpty)(c);
4468
+ return !(0, import_radash16.isEmpty)(c);
4286
4469
  }).map(function(c) {
4287
4470
  return c.trim();
4288
4471
  });
4289
4472
  }, [
4290
4473
  children
4291
4474
  ]);
4292
- if ((0, import_radash15.isEmpty)(suggestions)) return null;
4475
+ if ((0, import_radash16.isEmpty)(suggestions)) return null;
4293
4476
  return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_themes51.Flex, {
4294
4477
  gap: "2",
4295
4478
  py: "2",
@@ -4307,7 +4490,7 @@ var import_jsx_runtime76 = require("react/jsx-runtime");
4307
4490
  var Suggestions = function(param) {
4308
4491
  var children = param.children;
4309
4492
  var latestMessageProps = useLatestMessage();
4310
- var isDisabled = (0, import_react51.useMemo)(function() {
4493
+ var isDisabled = (0, import_react52.useMemo)(function() {
4311
4494
  var // @ts-ignore-next-line
4312
4495
  _latestMessageProps_latestMessage_metadata, _latestMessageProps_latestMessage;
4313
4496
  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;
@@ -4322,14 +4505,14 @@ var Suggestions = function(param) {
4322
4505
  };
4323
4506
  Suggestions.Item = Item;
4324
4507
  // src/components/markdown/MarkdownProvider/index.tsx
4325
- var import_react52 = require("react");
4508
+ var import_react53 = require("react");
4326
4509
  var import_jsx_runtime77 = require("react/jsx-runtime");
4327
4510
  var MarkdownProvider = function(_param) {
4328
4511
  var children = _param.children, rest = _object_without_properties(_param, [
4329
4512
  "children"
4330
4513
  ]);
4331
4514
  var prevMarkdownContext = useMarkdownContext();
4332
- var value = (0, import_react52.useMemo)(function() {
4515
+ var value = (0, import_react53.useMemo)(function() {
4333
4516
  return merge(prevMarkdownContext, rest);
4334
4517
  }, [
4335
4518
  rest,
@@ -4341,11 +4524,11 @@ var MarkdownProvider = function(_param) {
4341
4524
  });
4342
4525
  };
4343
4526
  // src/components/components/ComponentsProvider.tsx
4344
- var import_react54 = require("react");
4527
+ var import_react55 = require("react");
4345
4528
  // src/hooks/components/useComponents.ts
4346
- var import_react53 = require("react");
4529
+ var import_react54 = require("react");
4347
4530
  var useComponents = function() {
4348
- return (0, import_react53.useContext)(ComponentsContext);
4531
+ return (0, import_react54.useContext)(ComponentsContext);
4349
4532
  };
4350
4533
  // src/components/components/ComponentsProvider.tsx
4351
4534
  var import_jsx_runtime78 = require("react/jsx-runtime");
@@ -4354,7 +4537,7 @@ var ComponentsProvider = function(_param) {
4354
4537
  "children"
4355
4538
  ]);
4356
4539
  var prevComponents = useComponents();
4357
- var value = (0, import_react54.useMemo)(function() {
4540
+ var value = (0, import_react55.useMemo)(function() {
4358
4541
  return merge(prevComponents, rest);
4359
4542
  }, [
4360
4543
  rest,