@superinterface/react 2.13.4 → 2.15.0

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
@@ -338,6 +338,9 @@ __export(src_exports, {
338
338
  AudioThreadDialog: function() {
339
339
  return AudioThreadDialog;
340
340
  },
341
+ ComponentsProvider: function() {
342
+ return ComponentsProvider;
343
+ },
341
344
  FunctionBase: function() {
342
345
  return FunctionBase;
343
346
  },
@@ -350,6 +353,9 @@ __export(src_exports, {
350
353
  MarkdownProvider: function() {
351
354
  return MarkdownProvider;
352
355
  },
356
+ RunStep: function() {
357
+ return RunStep;
358
+ },
353
359
  Suggestions: function() {
354
360
  return Suggestions;
355
361
  },
@@ -365,6 +371,9 @@ __export(src_exports, {
365
371
  ThreadDialogContext: function() {
366
372
  return ThreadDialogContext;
367
373
  },
374
+ useComponents: function() {
375
+ return useComponents;
376
+ },
368
377
  useCreateMessage: function() {
369
378
  return useCreateMessage;
370
379
  },
@@ -488,7 +497,7 @@ var SuperinterfaceProvider = function(param) {
488
497
  // src/components/threads/Thread/Messages/index.tsx
489
498
  var import_themes30 = require("@radix-ui/themes");
490
499
  // src/components/threads/Thread/Messages/Content/index.tsx
491
- var import_react22 = require("react");
500
+ var import_react24 = require("react");
492
501
  // src/hooks/messages/useMessages/index.tsx
493
502
  var import_react4 = require("react");
494
503
  var import_react_query2 = require("@tanstack/react-query");
@@ -799,7 +808,7 @@ var useToasts = function() {
799
808
  return (0, import_react9.useContext)(ToastsContext);
800
809
  };
801
810
  // src/components/threads/Thread/Messages/Content/MessageGroup/index.tsx
802
- var import_react21 = require("react");
811
+ var import_react23 = require("react");
803
812
  var import_themes27 = require("@radix-ui/themes");
804
813
  var import_react_icons4 = require("@radix-ui/react-icons");
805
814
  // src/components/messageGroups/MessageGroupBase/AssistantAvatar.tsx
@@ -835,7 +844,7 @@ var AssistantNameContext = (0, import_react12.createContext)("Assistant");
835
844
  // src/components/threads/Thread/Messages/Content/MessageGroup/Content/index.tsx
836
845
  var import_themes26 = require("@radix-ui/themes");
837
846
  // src/components/threads/Thread/Message/index.tsx
838
- var import_react20 = require("react");
847
+ var import_react22 = require("react");
839
848
  var import_themes25 = require("@radix-ui/themes");
840
849
  // src/components/skeletons/StartingContentSkeleton/index.tsx
841
850
  var import_themes6 = require("@radix-ui/themes");
@@ -854,6 +863,9 @@ var StartingContentSkeleton = function() {
854
863
  };
855
864
  // src/components/runSteps/RunSteps/index.tsx
856
865
  var import_themes15 = require("@radix-ui/themes");
866
+ var import_react17 = require("react");
867
+ // src/contexts/components/ComponentsContext/index.tsx
868
+ var import_react16 = require("react");
857
869
  // src/components/runSteps/RunStep/ToolCalls/index.tsx
858
870
  var import_themes14 = require("@radix-ui/themes");
859
871
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/index.tsx
@@ -1080,10 +1092,16 @@ var Starting = function() {
1080
1092
  };
1081
1093
  // src/components/runSteps/RunStep/ToolCalls/index.tsx
1082
1094
  var import_jsx_runtime18 = require("react/jsx-runtime");
1095
+ var Root = function(param) {
1096
+ var children = param.children;
1097
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_themes14.Flex, {
1098
+ direction: "column",
1099
+ children: children
1100
+ });
1101
+ };
1083
1102
  var ToolCalls = function(param) {
1084
1103
  var stepDetails = param.stepDetails, runStep = param.runStep;
1085
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_themes14.Flex, {
1086
- direction: "column",
1104
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Root, {
1087
1105
  children: [
1088
1106
  !stepDetails.tool_calls.length && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Starting, {}),
1089
1107
  stepDetails.tool_calls.map(function(toolCall) {
@@ -1095,6 +1113,9 @@ var ToolCalls = function(param) {
1095
1113
  ]
1096
1114
  });
1097
1115
  };
1116
+ ToolCalls.Root = Root;
1117
+ ToolCalls.Starting = Starting;
1118
+ ToolCalls.ToolCall = ToolCall;
1098
1119
  // src/components/runSteps/RunStep/index.tsx
1099
1120
  var import_jsx_runtime19 = require("react/jsx-runtime");
1100
1121
  var RunStep = function(param) {
@@ -1107,21 +1128,30 @@ var RunStep = function(param) {
1107
1128
  }
1108
1129
  return null;
1109
1130
  };
1131
+ RunStep.ToolCalls = ToolCalls;
1132
+ // src/contexts/components/ComponentsContext/index.tsx
1133
+ var ComponentsContext = (0, import_react16.createContext)({
1134
+ components: {
1135
+ RunStep: RunStep
1136
+ }
1137
+ });
1110
1138
  // src/components/runSteps/RunSteps/index.tsx
1111
1139
  var import_jsx_runtime20 = require("react/jsx-runtime");
1112
1140
  var RunSteps = function(param) {
1113
1141
  var runSteps = param.runSteps;
1142
+ var componentsContext = (0, import_react17.useContext)(ComponentsContext);
1143
+ var Component = componentsContext.components.RunStep;
1114
1144
  return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_themes15.Flex, {
1115
1145
  direction: "column-reverse",
1116
1146
  children: runSteps.map(function(runStep) {
1117
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(RunStep, {
1147
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Component, {
1118
1148
  runStep: runStep
1119
1149
  }, runStep.id);
1120
1150
  })
1121
1151
  });
1122
1152
  };
1123
1153
  // src/hooks/messages/useIsMutatingMessage/index.ts
1124
- var import_react16 = require("react");
1154
+ var import_react18 = require("react");
1125
1155
  var import_react_query3 = require("@tanstack/react-query");
1126
1156
  var useIsMutatingMessage = function() {
1127
1157
  var threadContext = useSuperinterfaceContext();
@@ -1131,7 +1161,7 @@ var useIsMutatingMessage = function() {
1131
1161
  threadContext.variables
1132
1162
  ]
1133
1163
  });
1134
- var isMutatingMessage = (0, import_react16.useMemo)(function() {
1164
+ var isMutatingMessage = (0, import_react18.useMemo)(function() {
1135
1165
  return mutatingMessagesCount > 0;
1136
1166
  }, [
1137
1167
  mutatingMessagesCount
@@ -1139,18 +1169,18 @@ var useIsMutatingMessage = function() {
1139
1169
  return isMutatingMessage;
1140
1170
  };
1141
1171
  // src/contexts/messages/MessageContext/index.ts
1142
- var import_react17 = require("react");
1143
- var MessageContext = (0, import_react17.createContext)({
1172
+ var import_react19 = require("react");
1173
+ var MessageContext = (0, import_react19.createContext)({
1144
1174
  message: null
1145
1175
  });
1146
1176
  // src/components/threads/Thread/Message/Provider.tsx
1147
1177
  var Provider = MessageContext.Provider;
1148
1178
  // src/components/threads/Thread/Message/TextContent.tsx
1149
- var import_react_remark = require("react-remark");
1179
+ var import_react_markdown = __toESM(require("react-markdown"), 1);
1150
1180
  // src/hooks/markdown/useMarkdownContext/index.ts
1151
- var import_react19 = require("react");
1181
+ var import_react21 = require("react");
1152
1182
  // src/contexts/markdown/MarkdownContext/index.ts
1153
- var import_react18 = require("react");
1183
+ var import_react20 = require("react");
1154
1184
  // src/contexts/markdown/MarkdownContext/lib/components/Paragraph.tsx
1155
1185
  var import_themes16 = require("@radix-ui/themes");
1156
1186
  var import_jsx_runtime21 = require("react/jsx-runtime");
@@ -1280,7 +1310,7 @@ var components = {
1280
1310
  img: Img
1281
1311
  };
1282
1312
  // src/contexts/markdown/MarkdownContext/index.ts
1283
- var MarkdownContext = (0, import_react18.createContext)({
1313
+ var MarkdownContext = (0, import_react20.createContext)({
1284
1314
  remarkPlugins: [],
1285
1315
  rehypeReactOptions: {
1286
1316
  components: components
@@ -1288,19 +1318,22 @@ var MarkdownContext = (0, import_react18.createContext)({
1288
1318
  });
1289
1319
  // src/hooks/markdown/useMarkdownContext/index.ts
1290
1320
  var useMarkdownContext = function() {
1291
- return (0, import_react19.useContext)(MarkdownContext);
1321
+ return (0, import_react21.useContext)(MarkdownContext);
1292
1322
  };
1293
1323
  // src/components/threads/Thread/Message/TextContent.tsx
1324
+ var import_jsx_runtime30 = require("react/jsx-runtime");
1294
1325
  var TextContent = function(param) {
1295
1326
  var content = param.content;
1296
1327
  var markdownContext = useMarkdownContext();
1297
- return (0, import_react_remark.useRemarkSync)(content.text.value, markdownContext);
1328
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_markdown.default, _object_spread_props(_object_spread({}, markdownContext), {
1329
+ children: content.text.value
1330
+ }));
1298
1331
  };
1299
1332
  // src/components/threads/Thread/Message/index.tsx
1300
- var import_jsx_runtime30 = require("react/jsx-runtime");
1333
+ var import_jsx_runtime31 = require("react/jsx-runtime");
1301
1334
  var Message = function(param) {
1302
1335
  var message = param.message;
1303
- var _ref = _sliced_to_array((0, import_react20.useMemo)(function() {
1336
+ var _ref = _sliced_to_array((0, import_react22.useMemo)(function() {
1304
1337
  if (!message.runSteps.length) return [
1305
1338
  [],
1306
1339
  []
@@ -1333,7 +1366,7 @@ var Message = function(param) {
1333
1366
  message
1334
1367
  ]), 2), olderRunSteps = _ref[0], laterRunSteps = _ref[1];
1335
1368
  var isMutatingMessage = useIsMutatingMessage();
1336
- var isInProgress = (0, import_react20.useMemo)(function() {
1369
+ var isInProgress = (0, import_react22.useMemo)(function() {
1337
1370
  if (!isMutatingMessage) return false;
1338
1371
  if (message.status === "in_progress") return true;
1339
1372
  return message.runSteps.some(function(rs) {
@@ -1342,28 +1375,28 @@ var Message = function(param) {
1342
1375
  }, [
1343
1376
  message
1344
1377
  ]);
1345
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Provider, {
1378
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Provider, {
1346
1379
  value: {
1347
1380
  message: message
1348
1381
  },
1349
- children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_themes25.Box, {
1382
+ children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_themes25.Box, {
1350
1383
  children: [
1351
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(RunSteps, {
1384
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(RunSteps, {
1352
1385
  runSteps: olderRunSteps
1353
1386
  }),
1354
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_themes25.Box, {
1387
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_themes25.Box, {
1355
1388
  children: [
1356
1389
  message.content.map(function(content, index) {
1357
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react20.Fragment, {
1358
- children: content.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(TextContent, {
1390
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_react22.Fragment, {
1391
+ children: content.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(TextContent, {
1359
1392
  content: content
1360
1393
  })
1361
1394
  }, index);
1362
1395
  }),
1363
- isInProgress && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(StartingContentSkeleton, {})
1396
+ isInProgress && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(StartingContentSkeleton, {})
1364
1397
  ]
1365
1398
  }),
1366
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(RunSteps, {
1399
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(RunSteps, {
1367
1400
  runSteps: laterRunSteps
1368
1401
  })
1369
1402
  ]
@@ -1371,36 +1404,36 @@ var Message = function(param) {
1371
1404
  });
1372
1405
  };
1373
1406
  // src/components/threads/Thread/Messages/Content/MessageGroup/Content/index.tsx
1374
- var import_jsx_runtime31 = require("react/jsx-runtime");
1407
+ var import_jsx_runtime32 = require("react/jsx-runtime");
1375
1408
  var Content2 = function(param) {
1376
1409
  var messageGroup = param.messageGroup;
1377
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_themes26.Flex, {
1410
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_themes26.Flex, {
1378
1411
  direction: "column-reverse",
1379
1412
  children: messageGroup.messages.map(function(message) {
1380
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Message, {
1413
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Message, {
1381
1414
  message: message
1382
1415
  }, message.id);
1383
1416
  })
1384
1417
  });
1385
1418
  };
1386
1419
  // src/components/threads/Thread/Messages/Content/MessageGroup/index.tsx
1387
- var import_jsx_runtime32 = require("react/jsx-runtime");
1420
+ var import_jsx_runtime33 = require("react/jsx-runtime");
1388
1421
  var MessageGroup = function(param) {
1389
1422
  var messageGroup = param.messageGroup;
1390
- var assistantNameContext = (0, import_react21.useContext)(AssistantNameContext);
1391
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(MessageGroupBase, {
1423
+ var assistantNameContext = (0, import_react23.useContext)(AssistantNameContext);
1424
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(MessageGroupBase, {
1392
1425
  children: [
1393
- messageGroup.role === "user" ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_themes27.Avatar, {
1394
- fallback: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_icons4.PersonIcon, {}),
1426
+ messageGroup.role === "user" ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_themes27.Avatar, {
1427
+ fallback: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react_icons4.PersonIcon, {}),
1395
1428
  size: "1"
1396
- }) : /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(AssistantAvatar, {}),
1397
- /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_themes27.Box, {
1429
+ }) : /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(AssistantAvatar, {}),
1430
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_themes27.Box, {
1398
1431
  flexGrow: "1",
1399
1432
  children: [
1400
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Name, {
1433
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Name, {
1401
1434
  children: messageGroup.role === "user" ? "You" : assistantNameContext
1402
1435
  }),
1403
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Content2, {
1436
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Content2, {
1404
1437
  messageGroup: messageGroup
1405
1438
  })
1406
1439
  ]
@@ -1409,14 +1442,14 @@ var MessageGroup = function(param) {
1409
1442
  });
1410
1443
  };
1411
1444
  // src/components/threads/Thread/Messages/Content/index.tsx
1412
- var import_jsx_runtime33 = require("react/jsx-runtime");
1445
+ var import_jsx_runtime34 = require("react/jsx-runtime");
1413
1446
  var Content3 = function() {
1414
1447
  var _useMessages = useMessages(), messages2 = _useMessages.messages, isLoading = _useMessages.isLoading, isLoadingError = _useMessages.isLoadingError;
1415
1448
  var addToast = useToasts().addToast;
1416
1449
  var _useMessageGroups = useMessageGroups({
1417
1450
  messages: messages2
1418
1451
  }), messageGroups2 = _useMessageGroups.messageGroups;
1419
- (0, import_react22.useEffect)(function() {
1452
+ (0, import_react24.useEffect)(function() {
1420
1453
  if (isLoadingError) {
1421
1454
  addToast({
1422
1455
  type: "error",
@@ -1428,45 +1461,45 @@ var Content3 = function() {
1428
1461
  addToast
1429
1462
  ]);
1430
1463
  if (isLoading || isLoadingError) {
1431
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(MessagesSkeleton, {});
1464
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(MessagesSkeleton, {});
1432
1465
  }
1433
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_jsx_runtime33.Fragment, {
1466
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_jsx_runtime34.Fragment, {
1434
1467
  children: messageGroups2.map(function(messageGroup) {
1435
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(MessageGroup, {
1468
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(MessageGroup, {
1436
1469
  messageGroup: messageGroup
1437
1470
  }, messageGroup.id);
1438
1471
  })
1439
1472
  });
1440
1473
  };
1441
1474
  // src/components/threads/Thread/Messages/Progress/index.tsx
1442
- var import_react25 = require("react");
1475
+ var import_react27 = require("react");
1443
1476
  // src/components/skeletons/StartingSkeleton/index.tsx
1444
- var import_react23 = require("react");
1477
+ var import_react25 = require("react");
1445
1478
  var import_themes28 = require("@radix-ui/themes");
1446
- var import_jsx_runtime34 = require("react/jsx-runtime");
1479
+ var import_jsx_runtime35 = require("react/jsx-runtime");
1447
1480
  var StartingSkeleton = function(param) {
1448
1481
  var children = param.children;
1449
- var assistantNameContext = (0, import_react23.useContext)(AssistantNameContext);
1450
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(MessageGroupBase, {
1482
+ var assistantNameContext = (0, import_react25.useContext)(AssistantNameContext);
1483
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(MessageGroupBase, {
1451
1484
  children: [
1452
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(AssistantAvatar, {}),
1453
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_themes28.Box, {
1485
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(AssistantAvatar, {}),
1486
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_themes28.Box, {
1454
1487
  children: [
1455
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Name, {
1488
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Name, {
1456
1489
  children: assistantNameContext
1457
1490
  }),
1458
1491
  children,
1459
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(StartingContentSkeleton, {})
1492
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(StartingContentSkeleton, {})
1460
1493
  ]
1461
1494
  })
1462
1495
  ]
1463
1496
  });
1464
1497
  };
1465
1498
  // src/hooks/messages/useLatestMessage/index.ts
1466
- var import_react24 = require("react");
1499
+ var import_react26 = require("react");
1467
1500
  var useLatestMessage = function() {
1468
1501
  var props = useMessages();
1469
- return (0, import_react24.useMemo)(function() {
1502
+ return (0, import_react26.useMemo)(function() {
1470
1503
  return _object_spread_props(_object_spread({}, props), {
1471
1504
  latestMessage: props.messages[0] || null
1472
1505
  });
@@ -1481,11 +1514,11 @@ var isOptimistic = function(param) {
1481
1514
  return import_lodash4.default.startsWith(id, "-");
1482
1515
  };
1483
1516
  // src/components/threads/Thread/Messages/Progress/index.tsx
1484
- var import_jsx_runtime35 = require("react/jsx-runtime");
1517
+ var import_jsx_runtime36 = require("react/jsx-runtime");
1485
1518
  var Progress = function() {
1486
1519
  var latestMessage = useLatestMessage().latestMessage;
1487
1520
  var isMutatingMessage = useIsMutatingMessage();
1488
- var isVisible = (0, import_react25.useMemo)(function() {
1521
+ var isVisible = (0, import_react27.useMemo)(function() {
1489
1522
  if (!latestMessage) return false;
1490
1523
  if (latestMessage.role !== "user") return false;
1491
1524
  if (latestMessage.status === "in_progress") return false;
@@ -1499,20 +1532,20 @@ var Progress = function() {
1499
1532
  isMutatingMessage
1500
1533
  ]);
1501
1534
  if (!isVisible) return null;
1502
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(StartingSkeleton, {});
1535
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(StartingSkeleton, {});
1503
1536
  };
1504
1537
  // src/components/threads/Thread/Messages/Root/index.tsx
1505
1538
  var import_themes29 = require("@radix-ui/themes");
1506
1539
  // src/hooks/misc/useInfiniteScroll/index.tsx
1507
- var import_react27 = require("react");
1540
+ var import_react29 = require("react");
1508
1541
  var import_react_intersection_observer = require("react-intersection-observer");
1509
1542
  // src/hooks/misc/useThrottledEffect/index.tsx
1510
1543
  var import_lodash5 = __toESM(require("lodash"), 1);
1511
- var import_react26 = require("react");
1544
+ var import_react28 = require("react");
1512
1545
  var useThrottledEffect = function(cb, delay, additionalDeps) {
1513
1546
  var _cbRef;
1514
- var cbRef = (0, import_react26.useRef)(cb);
1515
- var throttledCb = (0, import_react26.useCallback)(import_lodash5.default.throttle(function() {
1547
+ var cbRef = (0, import_react28.useRef)(cb);
1548
+ var throttledCb = (0, import_react28.useCallback)(import_lodash5.default.throttle(function() {
1516
1549
  for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1517
1550
  args[_key] = arguments[_key];
1518
1551
  }
@@ -1523,17 +1556,17 @@ var useThrottledEffect = function(cb, delay, additionalDeps) {
1523
1556
  }), [
1524
1557
  delay
1525
1558
  ]);
1526
- (0, import_react26.useEffect)(function() {
1559
+ (0, import_react28.useEffect)(function() {
1527
1560
  cbRef.current = cb;
1528
1561
  });
1529
- (0, import_react26.useEffect)(throttledCb, [
1562
+ (0, import_react28.useEffect)(throttledCb, [
1530
1563
  throttledCb
1531
1564
  ].concat(_to_consumable_array(additionalDeps)));
1532
1565
  };
1533
1566
  // src/hooks/misc/useInfiniteScroll/index.tsx
1534
1567
  var useInfiniteScroll = function(param) {
1535
1568
  var isFetchingNextPage = param.isFetchingNextPage, hasNextPage = param.hasNextPage, fetchNextPage = param.fetchNextPage;
1536
- var containerRef = (0, import_react27.useRef)(null);
1569
+ var containerRef = (0, import_react29.useRef)(null);
1537
1570
  var _ref = (0, import_react_intersection_observer.useInView)({
1538
1571
  root: containerRef.current,
1539
1572
  rootMargin: "0px",
@@ -1558,8 +1591,8 @@ var useInfiniteScroll = function(param) {
1558
1591
  };
1559
1592
  };
1560
1593
  // src/components/threads/Thread/Messages/Root/index.tsx
1561
- var import_jsx_runtime36 = require("react/jsx-runtime");
1562
- var Root = function(param) {
1594
+ var import_jsx_runtime37 = require("react/jsx-runtime");
1595
+ var Root2 = function(param) {
1563
1596
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
1564
1597
  var _useMessages = useMessages(), isFetchingNextPage = _useMessages.isFetchingNextPage, hasNextPage = _useMessages.hasNextPage, fetchNextPage = _useMessages.fetchNextPage;
1565
1598
  var _useInfiniteScroll = useInfiniteScroll({
@@ -1567,7 +1600,7 @@ var Root = function(param) {
1567
1600
  hasNextPage: hasNextPage,
1568
1601
  fetchNextPage: fetchNextPage
1569
1602
  }), containerRef = _useInfiniteScroll.containerRef, loaderRef = _useInfiniteScroll.loaderRef;
1570
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_themes29.Flex, {
1603
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_themes29.Flex, {
1571
1604
  ref: containerRef,
1572
1605
  direction: "column-reverse",
1573
1606
  flexGrow: "1",
@@ -1576,10 +1609,10 @@ var Root = function(param) {
1576
1609
  }),
1577
1610
  children: [
1578
1611
  children,
1579
- hasNextPage && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_themes29.Flex, {
1612
+ hasNextPage && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_themes29.Flex, {
1580
1613
  ref: loaderRef
1581
1614
  }),
1582
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_themes29.Flex, {
1615
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_themes29.Flex, {
1583
1616
  flexShrink: "0",
1584
1617
  flexGrow: "1"
1585
1618
  })
@@ -1587,37 +1620,37 @@ var Root = function(param) {
1587
1620
  });
1588
1621
  };
1589
1622
  // src/components/threads/Thread/Messages/NextPageSkeleton.tsx
1590
- var import_jsx_runtime37 = require("react/jsx-runtime");
1623
+ var import_jsx_runtime38 = require("react/jsx-runtime");
1591
1624
  var NextPageSkeleton = function() {
1592
1625
  var hasNextPage = useMessages().hasNextPage;
1593
1626
  if (!hasNextPage) {
1594
1627
  return null;
1595
1628
  }
1596
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(MessagesSkeleton, {});
1629
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(MessagesSkeleton, {});
1597
1630
  };
1598
1631
  // src/components/threads/Thread/Messages/index.tsx
1599
- var import_jsx_runtime38 = require("react/jsx-runtime");
1632
+ var import_jsx_runtime39 = require("react/jsx-runtime");
1600
1633
  var Messages = function(param) {
1601
1634
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
1602
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Root, {
1635
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Root2, {
1603
1636
  style: style,
1604
1637
  children: [
1605
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_themes30.Flex, {
1638
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_themes30.Flex, {
1606
1639
  flexShrink: "0",
1607
1640
  height: "var(--space-3)"
1608
1641
  }),
1609
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Progress, {}),
1642
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Progress, {}),
1610
1643
  children,
1611
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Content3, {}),
1612
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(NextPageSkeleton, {}),
1613
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_themes30.Flex, {
1644
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Content3, {}),
1645
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(NextPageSkeleton, {}),
1646
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_themes30.Flex, {
1614
1647
  flexShrink: "0",
1615
1648
  flexGrow: "1"
1616
1649
  })
1617
1650
  ]
1618
1651
  });
1619
1652
  };
1620
- Messages.Root = Root;
1653
+ Messages.Root = Root2;
1621
1654
  Messages.Message = Message;
1622
1655
  Messages.NextPageSkeleton = NextPageSkeleton;
1623
1656
  // src/components/threads/Thread/MessageForm/index.tsx
@@ -1626,41 +1659,41 @@ var import_themes34 = require("@radix-ui/themes");
1626
1659
  var import_react_icons5 = require("@radix-ui/react-icons");
1627
1660
  var import_themes31 = require("@radix-ui/themes");
1628
1661
  // src/hooks/messages/useMessageFormContext/index.ts
1629
- var import_react29 = require("react");
1662
+ var import_react31 = require("react");
1630
1663
  // src/contexts/messages/MessageFormContext/index.ts
1631
- var import_react28 = require("react");
1632
- var MessageFormContext = (0, import_react28.createContext)({
1664
+ var import_react30 = require("react");
1665
+ var MessageFormContext = (0, import_react30.createContext)({
1633
1666
  isDisabled: false,
1634
1667
  isLoading: false
1635
1668
  });
1636
1669
  // src/hooks/messages/useMessageFormContext/index.ts
1637
1670
  var useMessageFormContext = function() {
1638
- return (0, import_react29.useContext)(MessageFormContext);
1671
+ return (0, import_react31.useContext)(MessageFormContext);
1639
1672
  };
1640
1673
  // src/components/threads/Thread/MessageForm/Submit/index.tsx
1641
- var import_jsx_runtime39 = require("react/jsx-runtime");
1674
+ var import_jsx_runtime40 = require("react/jsx-runtime");
1642
1675
  var Submit = function() {
1643
1676
  var superinterfaceContext = useSuperinterfaceContext();
1644
1677
  var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
1645
1678
  if (isLoading) {
1646
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_themes31.IconButton, {
1679
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_themes31.IconButton, {
1647
1680
  type: "button",
1648
1681
  onClick: function() {
1649
1682
  var _superinterfaceContext_createMessageAbortControllerRef_current;
1650
1683
  return (_superinterfaceContext_createMessageAbortControllerRef_current = superinterfaceContext.createMessageAbortControllerRef.current) === null || _superinterfaceContext_createMessageAbortControllerRef_current === void 0 ? void 0 : _superinterfaceContext_createMessageAbortControllerRef_current.abort();
1651
1684
  },
1652
- children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_react_icons5.StopIcon, {})
1685
+ children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_react_icons5.StopIcon, {})
1653
1686
  });
1654
1687
  }
1655
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_themes31.IconButton, {
1688
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_themes31.IconButton, {
1656
1689
  type: "submit",
1657
1690
  disabled: isDisabled,
1658
- children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_react_icons5.ArrowUpIcon, {})
1691
+ children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_react_icons5.ArrowUpIcon, {})
1659
1692
  });
1660
1693
  };
1661
1694
  // src/components/threads/Thread/MessageForm/Root/index.tsx
1662
1695
  var import_react_query5 = require("@tanstack/react-query");
1663
- var import_react30 = require("react");
1696
+ var import_react32 = require("react");
1664
1697
  var import_react_hook_form = require("react-hook-form");
1665
1698
  var import_themes32 = require("@radix-ui/themes");
1666
1699
  // src/hooks/messages/useCreateMessage/index.ts
@@ -2282,8 +2315,8 @@ var formOptions = {
2282
2315
  resolver: (0, import_zod2.zodResolver)(schema)
2283
2316
  };
2284
2317
  // src/components/threads/Thread/MessageForm/Root/index.tsx
2285
- var import_jsx_runtime40 = require("react/jsx-runtime");
2286
- var Root2 = function(param) {
2318
+ var import_jsx_runtime41 = require("react/jsx-runtime");
2319
+ var Root3 = function(param) {
2287
2320
  var children = param.children;
2288
2321
  var formProps = (0, import_react_hook_form.useForm)(formOptions);
2289
2322
  var handleSubmit = formProps.handleSubmit, isSubmitting = formProps.formState.isSubmitting, reset = formProps.reset;
@@ -2314,7 +2347,7 @@ var Root2 = function(param) {
2314
2347
  }
2315
2348
  }).createMessage;
2316
2349
  var isMutatingMessage = useIsMutatingMessage();
2317
- var isLoading = (0, import_react30.useMemo)(function() {
2350
+ var isLoading = (0, import_react32.useMemo)(function() {
2318
2351
  return isMutatingMessage || isSubmitting;
2319
2352
  }, [
2320
2353
  isMutatingMessage,
@@ -2346,7 +2379,7 @@ var Root2 = function(param) {
2346
2379
  };
2347
2380
  }();
2348
2381
  var latestMessage = useLatestMessage().latestMessage;
2349
- var isDisabled = (0, import_react30.useMemo)(function() {
2382
+ var isDisabled = (0, import_react32.useMemo)(function() {
2350
2383
  var // @ts-ignore-next-line
2351
2384
  _latestMessage_metadata;
2352
2385
  return latestMessage === null || latestMessage === void 0 ? void 0 : (_latestMessage_metadata = latestMessage.metadata) === null || _latestMessage_metadata === void 0 ? void 0 : _latestMessage_metadata.isBlocking;
@@ -2354,16 +2387,16 @@ var Root2 = function(param) {
2354
2387
  latestMessage,
2355
2388
  isLoading
2356
2389
  ]);
2357
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(MessageFormContext.Provider, {
2390
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(MessageFormContext.Provider, {
2358
2391
  value: {
2359
2392
  isDisabled: isDisabled,
2360
2393
  isLoading: isLoading
2361
2394
  },
2362
- children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_react_hook_form.FormProvider, _object_spread_props(_object_spread({}, formProps), {
2363
- children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_themes32.Box, {
2395
+ children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_react_hook_form.FormProvider, _object_spread_props(_object_spread({}, formProps), {
2396
+ children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes32.Box, {
2364
2397
  asChild: true,
2365
2398
  flexShrink: "0",
2366
- children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("form", {
2399
+ children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("form", {
2367
2400
  onSubmit: handleSubmit(onSubmit),
2368
2401
  children: children
2369
2402
  })
@@ -2373,19 +2406,19 @@ var Root2 = function(param) {
2373
2406
  };
2374
2407
  // src/components/threads/Thread/MessageForm/Field/index.tsx
2375
2408
  var import_react_use = require("react-use");
2376
- var import_react32 = require("react");
2409
+ var import_react34 = require("react");
2377
2410
  // src/components/textareas/TextareaBase/index.tsx
2378
- var import_react31 = require("react");
2411
+ var import_react33 = require("react");
2379
2412
  var import_react_textarea_autosize = __toESM(require("react-textarea-autosize"), 1);
2380
- var import_jsx_runtime41 = require("react/jsx-runtime");
2413
+ var import_jsx_runtime42 = require("react/jsx-runtime");
2381
2414
  var UPSCALE_RATIO = 16 / 14;
2382
- var TextareaBase = (0, import_react31.forwardRef)(function TextareaBase2(props, ref) {
2383
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, {
2415
+ var TextareaBase = (0, import_react33.forwardRef)(function TextareaBase2(props, ref) {
2416
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, {
2384
2417
  children: [
2385
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("style", {
2418
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("style", {
2386
2419
  children: ".superinterface-textarea { min-height: inherit; height: 30px; }\n.superinterface-textarea::placeholder { color: var(--gray-a10); }"
2387
2420
  }),
2388
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_react_textarea_autosize.default, _object_spread({
2421
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_react_textarea_autosize.default, _object_spread({
2389
2422
  ref: ref,
2390
2423
  className: "rt-reset superinterface-textarea",
2391
2424
  style: {
@@ -2410,20 +2443,20 @@ var TextareaBase = (0, import_react31.forwardRef)(function TextareaBase2(props,
2410
2443
  // src/components/threads/Thread/MessageForm/Field/index.tsx
2411
2444
  var import_react_hook_form2 = require("react-hook-form");
2412
2445
  var import_themes33 = require("@radix-ui/themes");
2413
- var import_jsx_runtime42 = require("react/jsx-runtime");
2414
- var Root3 = function(param) {
2446
+ var import_jsx_runtime43 = require("react/jsx-runtime");
2447
+ var Root4 = function(param) {
2415
2448
  var children = param.children;
2416
2449
  var _ref = (0, import_react_hook_form2.useFormContext)(), errors = _ref.formState.errors;
2417
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes33.Container, {
2450
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_themes33.Container, {
2418
2451
  size: "2",
2419
2452
  flexGrow: "0",
2420
- children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes33.Flex, {
2453
+ children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_themes33.Flex, {
2421
2454
  direction: "column",
2422
2455
  flexShrink: "0",
2423
- children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes33.Flex, {
2456
+ children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_themes33.Flex, {
2424
2457
  direction: "column",
2425
2458
  flexShrink: "0",
2426
- children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes33.Flex, {
2459
+ children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_themes33.Flex, {
2427
2460
  style: _object_spread({
2428
2461
  borderRadius: "var(--radius-2)",
2429
2462
  borderWidth: "1px",
@@ -2441,19 +2474,19 @@ var Root3 = function(param) {
2441
2474
  });
2442
2475
  };
2443
2476
  var Control = function() {
2444
- var assistantNameContext = (0, import_react32.useContext)(AssistantNameContext);
2477
+ var assistantNameContext = (0, import_react34.useContext)(AssistantNameContext);
2445
2478
  var register = (0, import_react_hook_form2.useFormContext)().register;
2446
2479
  var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
2447
- var isSubmitDisabled = (0, import_react32.useMemo)(function() {
2480
+ var isSubmitDisabled = (0, import_react34.useMemo)(function() {
2448
2481
  return isDisabled || isLoading;
2449
2482
  }, [
2450
2483
  isDisabled,
2451
2484
  isLoading
2452
2485
  ]);
2453
2486
  var isDisabledPrevious = (0, import_react_use.usePrevious)(isDisabled);
2454
- var textareaRef = (0, import_react32.useRef)(null);
2487
+ var textareaRef = (0, import_react34.useRef)(null);
2455
2488
  var textareaProps = register("content");
2456
- (0, import_react32.useEffect)(function() {
2489
+ (0, import_react34.useEffect)(function() {
2457
2490
  if (isDisabled) return;
2458
2491
  if (!isDisabledPrevious) return;
2459
2492
  if (!textareaRef.current) return;
@@ -2463,7 +2496,7 @@ var Control = function() {
2463
2496
  isDisabledPrevious,
2464
2497
  textareaProps
2465
2498
  ]);
2466
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(TextareaBase, _object_spread_props(_object_spread({
2499
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(TextareaBase, _object_spread_props(_object_spread({
2467
2500
  minRows: 1,
2468
2501
  placeholder: "Message ".concat(assistantNameContext, "..."),
2469
2502
  disabled: isDisabled,
@@ -2483,36 +2516,36 @@ var Control = function() {
2483
2516
  }));
2484
2517
  };
2485
2518
  var Field = {
2486
- Root: Root3,
2519
+ Root: Root4,
2487
2520
  Control: Control
2488
2521
  };
2489
2522
  // src/components/threads/Thread/MessageForm/index.tsx
2490
- var import_jsx_runtime43 = require("react/jsx-runtime");
2523
+ var import_jsx_runtime44 = require("react/jsx-runtime");
2491
2524
  var MessageForm = function() {
2492
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Root2, {
2493
- children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Field.Root, {
2525
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Root3, {
2526
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Field.Root, {
2494
2527
  children: [
2495
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_themes34.Text, {
2528
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_themes34.Text, {
2496
2529
  size: "2",
2497
2530
  style: {
2498
2531
  flexGrow: 1
2499
2532
  },
2500
- children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_themes34.Flex, {
2533
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_themes34.Flex, {
2501
2534
  flexGrow: "1",
2502
2535
  direction: "column",
2503
- children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Field.Control, {})
2536
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Field.Control, {})
2504
2537
  })
2505
2538
  }),
2506
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_themes34.Flex, {
2539
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_themes34.Flex, {
2507
2540
  flexShrink: "0",
2508
2541
  align: "end",
2509
- children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Submit, {})
2542
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Submit, {})
2510
2543
  })
2511
2544
  ]
2512
2545
  })
2513
2546
  });
2514
2547
  };
2515
- MessageForm.Root = Root2;
2548
+ MessageForm.Root = Root3;
2516
2549
  MessageForm.Field = Field;
2517
2550
  MessageForm.Submit = Submit;
2518
2551
  // src/components/threads/Thread/Root/index.tsx
@@ -2520,13 +2553,13 @@ var import_themes35 = require("@radix-ui/themes");
2520
2553
  // src/components/threads/Thread/Provider/index.tsx
2521
2554
  var Provider2 = SuperinterfaceProvider;
2522
2555
  // src/components/threads/Thread/Root/index.tsx
2523
- var import_jsx_runtime44 = require("react/jsx-runtime");
2524
- var Root4 = function(_param) {
2556
+ var import_jsx_runtime45 = require("react/jsx-runtime");
2557
+ var Root5 = function(_param) {
2525
2558
  var children = _param.children, rest = _object_without_properties(_param, [
2526
2559
  "children"
2527
2560
  ]);
2528
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Provider2, _object_spread_props(_object_spread({}, rest), {
2529
- children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_themes35.Flex, {
2561
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Provider2, _object_spread_props(_object_spread({}, rest), {
2562
+ children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_themes35.Flex, {
2530
2563
  direction: "column",
2531
2564
  flexGrow: "1",
2532
2565
  children: children
@@ -2534,43 +2567,43 @@ var Root4 = function(_param) {
2534
2567
  }));
2535
2568
  };
2536
2569
  // src/components/threads/Thread/index.tsx
2537
- var import_jsx_runtime45 = require("react/jsx-runtime");
2570
+ var import_jsx_runtime46 = require("react/jsx-runtime");
2538
2571
  var Thread = function(props) {
2539
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Root4, _object_spread_props(_object_spread({}, props), {
2572
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Root5, _object_spread_props(_object_spread({}, props), {
2540
2573
  children: [
2541
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Messages, {}),
2542
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(MessageForm, {})
2574
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Messages, {}),
2575
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(MessageForm, {})
2543
2576
  ]
2544
2577
  }));
2545
2578
  };
2546
- Thread.Root = Root4;
2579
+ Thread.Root = Root5;
2547
2580
  Thread.Messages = Messages;
2548
2581
  Thread.MessageForm = MessageForm;
2549
2582
  // src/hooks/messages/useMessageContext/index.ts
2550
- var import_react33 = require("react");
2583
+ var import_react35 = require("react");
2551
2584
  var useMessageContext = function() {
2552
- return (0, import_react33.useContext)(MessageContext);
2585
+ return (0, import_react35.useContext)(MessageContext);
2553
2586
  };
2554
2587
  // src/components/threads/ThreadDialog/Provider/index.tsx
2555
- var import_react36 = require("react");
2588
+ var import_react38 = require("react");
2556
2589
  // src/contexts/threads/ThreadDialogContext/index.ts
2557
- var import_react34 = require("react");
2558
- var ThreadDialogContext = (0, import_react34.createContext)({
2590
+ var import_react36 = require("react");
2591
+ var ThreadDialogContext = (0, import_react36.createContext)({
2559
2592
  isOpen: false,
2560
2593
  setIsOpen: function() {}
2561
2594
  });
2562
2595
  // src/hooks/threads/useThreadDialogContext/index.ts
2563
- var import_react35 = require("react");
2596
+ var import_react37 = require("react");
2564
2597
  var useThreadDialogContext = function() {
2565
- return (0, import_react35.useContext)(ThreadDialogContext);
2598
+ return (0, import_react37.useContext)(ThreadDialogContext);
2566
2599
  };
2567
2600
  // src/components/threads/ThreadDialog/Provider/index.tsx
2568
- var import_jsx_runtime46 = require("react/jsx-runtime");
2601
+ var import_jsx_runtime47 = require("react/jsx-runtime");
2569
2602
  var Provider3 = function(param) {
2570
2603
  var children = param.children;
2571
2604
  var threadDialogContext = useThreadDialogContext();
2572
- var _ref = _sliced_to_array((0, import_react36.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
2573
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(ThreadDialogContext.Provider, {
2605
+ var _ref = _sliced_to_array((0, import_react38.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
2606
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(ThreadDialogContext.Provider, {
2574
2607
  value: {
2575
2608
  isOpen: isOpen,
2576
2609
  setIsOpen: setIsOpen
@@ -2579,31 +2612,31 @@ var Provider3 = function(param) {
2579
2612
  });
2580
2613
  };
2581
2614
  // src/components/toasts/ToastsProvider/index.tsx
2582
- var import_react37 = require("react");
2615
+ var import_react39 = require("react");
2583
2616
  var Toast2 = __toESM(require("@radix-ui/react-toast"), 1);
2584
2617
  // src/components/toasts/ToastsProvider/CustomToast.tsx
2585
2618
  var Toast = __toESM(require("@radix-ui/react-toast"), 1);
2586
2619
  var import_themes36 = require("@radix-ui/themes");
2587
2620
  var import_react_icons6 = require("@radix-ui/react-icons");
2588
- var import_jsx_runtime47 = require("react/jsx-runtime");
2621
+ var import_jsx_runtime48 = require("react/jsx-runtime");
2589
2622
  var CustomToast = function(param) {
2590
2623
  var toast = param.toast;
2591
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Toast.Root, {
2592
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_themes36.Card, {
2593
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Toast.Title, {
2594
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_themes36.Flex, {
2624
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Toast.Root, {
2625
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes36.Card, {
2626
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Toast.Title, {
2627
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_themes36.Flex, {
2595
2628
  children: [
2596
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_themes36.Flex, {
2629
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes36.Flex, {
2597
2630
  pr: "2",
2598
2631
  height: "14px",
2599
2632
  align: "center",
2600
- children: toast.type === "success" ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_react_icons6.CheckCircledIcon, {
2633
+ children: toast.type === "success" ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_react_icons6.CheckCircledIcon, {
2601
2634
  color: "var(--accent-9)"
2602
- }) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_react_icons6.CrossCircledIcon, {
2635
+ }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_react_icons6.CrossCircledIcon, {
2603
2636
  color: "var(--red-9)"
2604
2637
  })
2605
2638
  }),
2606
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_themes36.Text, {
2639
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes36.Text, {
2607
2640
  weight: "medium",
2608
2641
  size: "1",
2609
2642
  children: toast.message
@@ -2615,31 +2648,31 @@ var CustomToast = function(param) {
2615
2648
  });
2616
2649
  };
2617
2650
  // src/components/toasts/ToastsProvider/index.tsx
2618
- var import_jsx_runtime48 = require("react/jsx-runtime");
2651
+ var import_jsx_runtime49 = require("react/jsx-runtime");
2619
2652
  var ToastsProvider = function(param) {
2620
2653
  var children = param.children;
2621
- var _ref = _sliced_to_array((0, import_react37.useState)([]), 2), toasts = _ref[0], setToasts = _ref[1];
2622
- var addToast = (0, import_react37.useCallback)(function(toast) {
2654
+ var _ref = _sliced_to_array((0, import_react39.useState)([]), 2), toasts = _ref[0], setToasts = _ref[1];
2655
+ var addToast = (0, import_react39.useCallback)(function(toast) {
2623
2656
  return setToasts(function(prevToasts) {
2624
2657
  return _to_consumable_array(prevToasts).concat([
2625
2658
  toast
2626
2659
  ]);
2627
2660
  });
2628
2661
  }, []);
2629
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(ToastsContext.Provider, {
2662
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ToastsContext.Provider, {
2630
2663
  value: {
2631
2664
  toasts: toasts,
2632
2665
  addToast: addToast
2633
2666
  },
2634
- children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Toast2.Provider, {
2667
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Toast2.Provider, {
2635
2668
  children: [
2636
2669
  children,
2637
2670
  Array.from(toasts).map(function(toast, index) {
2638
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(CustomToast, {
2671
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(CustomToast, {
2639
2672
  toast: toast
2640
2673
  }, index);
2641
2674
  }),
2642
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Toast2.Viewport, {
2675
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Toast2.Viewport, {
2643
2676
  style: {
2644
2677
  position: "absolute",
2645
2678
  bottom: 0,
@@ -2661,22 +2694,22 @@ var ToastsProvider = function(param) {
2661
2694
  });
2662
2695
  };
2663
2696
  // src/components/threads/ThreadDialog/Root/index.tsx
2664
- var import_jsx_runtime49 = require("react/jsx-runtime");
2665
- var Root6 = function(param) {
2697
+ var import_jsx_runtime50 = require("react/jsx-runtime");
2698
+ var Root7 = function(param) {
2666
2699
  var children = param.children;
2667
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ToastsProvider, {
2668
- children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Provider3, {
2700
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ToastsProvider, {
2701
+ children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Provider3, {
2669
2702
  children: children
2670
2703
  })
2671
2704
  });
2672
2705
  };
2673
2706
  // src/components/threads/ThreadDialog/Trigger/index.tsx
2674
2707
  var import_themes37 = require("@radix-ui/themes");
2675
- var import_jsx_runtime50 = require("react/jsx-runtime");
2708
+ var import_jsx_runtime51 = require("react/jsx-runtime");
2676
2709
  var Trigger = function(param) {
2677
2710
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2678
2711
  var _useThreadDialogContext = useThreadDialogContext(), setIsOpen = _useThreadDialogContext.setIsOpen, isOpen = _useThreadDialogContext.isOpen;
2679
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_themes37.Flex, {
2712
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes37.Flex, {
2680
2713
  display: {
2681
2714
  initial: isOpen ? "none" : "flex",
2682
2715
  sm: "flex"
@@ -2702,12 +2735,12 @@ var Trigger = function(param) {
2702
2735
  // src/components/threads/ThreadDialog/Button/index.tsx
2703
2736
  var import_themes38 = require("@radix-ui/themes");
2704
2737
  var import_react_icons7 = require("@radix-ui/react-icons");
2705
- var import_jsx_runtime51 = require("react/jsx-runtime");
2738
+ var import_jsx_runtime52 = require("react/jsx-runtime");
2706
2739
  var Button2 = function() {
2707
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes38.IconButton, {
2740
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_themes38.IconButton, {
2708
2741
  size: "4",
2709
2742
  radius: "full",
2710
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_icons7.ChatBubbleIcon, {})
2743
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_icons7.ChatBubbleIcon, {})
2711
2744
  });
2712
2745
  };
2713
2746
  // src/components/threads/ThreadDialog/Content/index.tsx
@@ -2715,10 +2748,10 @@ var import_themes40 = require("@radix-ui/themes");
2715
2748
  // src/components/threads/ThreadDialog/Close/index.tsx
2716
2749
  var import_react_icons8 = require("@radix-ui/react-icons");
2717
2750
  var import_themes39 = require("@radix-ui/themes");
2718
- var import_jsx_runtime52 = require("react/jsx-runtime");
2751
+ var import_jsx_runtime53 = require("react/jsx-runtime");
2719
2752
  var Close = function() {
2720
2753
  var _useThreadDialogContext = useThreadDialogContext(), setIsOpen = _useThreadDialogContext.setIsOpen, isOpen = _useThreadDialogContext.isOpen;
2721
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_themes39.Flex, {
2754
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes39.Flex, {
2722
2755
  display: {
2723
2756
  initial: isOpen ? "flex" : "none",
2724
2757
  sm: "none"
@@ -2738,20 +2771,20 @@ var Close = function() {
2738
2771
  style: {
2739
2772
  zIndex: 9999999999
2740
2773
  },
2741
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_themes39.IconButton, {
2774
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes39.IconButton, {
2742
2775
  size: "2",
2743
2776
  variant: "soft",
2744
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_icons8.Cross1Icon, {})
2777
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_icons8.Cross1Icon, {})
2745
2778
  })
2746
2779
  });
2747
2780
  };
2748
2781
  // src/components/threads/ThreadDialog/Content/index.tsx
2749
- var import_jsx_runtime53 = require("react/jsx-runtime");
2750
- var Root7 = function(param) {
2782
+ var import_jsx_runtime54 = require("react/jsx-runtime");
2783
+ var Root8 = function(param) {
2751
2784
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2752
2785
  var isOpen = useThreadDialogContext().isOpen;
2753
2786
  if (!isOpen) return null;
2754
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes40.Flex, {
2787
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes40.Flex, {
2755
2788
  direction: "column",
2756
2789
  justify: "end",
2757
2790
  position: "fixed",
@@ -2779,7 +2812,7 @@ var Root7 = function(param) {
2779
2812
  style: _object_spread({
2780
2813
  zIndex: 9999999999
2781
2814
  }, style),
2782
- children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_themes40.Card, {
2815
+ children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_themes40.Card, {
2783
2816
  mb: {
2784
2817
  initial: void 0,
2785
2818
  sm: "3"
@@ -2790,7 +2823,7 @@ var Root7 = function(param) {
2790
2823
  flexGrow: 1
2791
2824
  },
2792
2825
  children: [
2793
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes40.Inset, {
2826
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes40.Inset, {
2794
2827
  clip: "padding-box",
2795
2828
  side: "all",
2796
2829
  pb: "current",
@@ -2800,50 +2833,50 @@ var Root7 = function(param) {
2800
2833
  },
2801
2834
  children: children
2802
2835
  }),
2803
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Close, {})
2836
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Close, {})
2804
2837
  ]
2805
2838
  })
2806
2839
  });
2807
2840
  };
2808
2841
  var Content4 = function(param) {
2809
2842
  var _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2810
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Root7, {
2843
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Root8, {
2811
2844
  style: style,
2812
- children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Thread.Root, {
2845
+ children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Thread.Root, {
2813
2846
  children: [
2814
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Thread.Messages, {
2847
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Thread.Messages, {
2815
2848
  style: {
2816
2849
  paddingTop: "var(--space-5)",
2817
2850
  paddingRight: "var(--space-5)",
2818
2851
  paddingLeft: "var(--space-5)"
2819
2852
  }
2820
2853
  }),
2821
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes40.Flex, {
2854
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes40.Flex, {
2822
2855
  direction: "column",
2823
2856
  pl: "5",
2824
2857
  pr: "5",
2825
2858
  pb: "3",
2826
2859
  flexShrink: "0",
2827
- children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Thread.MessageForm, {})
2860
+ children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Thread.MessageForm, {})
2828
2861
  })
2829
2862
  ]
2830
2863
  })
2831
2864
  });
2832
2865
  };
2833
- Content4.Root = Root7;
2866
+ Content4.Root = Root8;
2834
2867
  // src/components/threads/ThreadDialog/index.tsx
2835
- var import_jsx_runtime54 = require("react/jsx-runtime");
2868
+ var import_jsx_runtime55 = require("react/jsx-runtime");
2836
2869
  var ThreadDialog = function() {
2837
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Root6, {
2870
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(Root7, {
2838
2871
  children: [
2839
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Content4, {}),
2840
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Trigger, {
2841
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Button2, {})
2872
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Content4, {}),
2873
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Trigger, {
2874
+ children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Button2, {})
2842
2875
  })
2843
2876
  ]
2844
2877
  });
2845
2878
  };
2846
- ThreadDialog.Root = Root6;
2879
+ ThreadDialog.Root = Root7;
2847
2880
  ThreadDialog.Trigger = Trigger;
2848
2881
  ThreadDialog.Button = Button2;
2849
2882
  ThreadDialog.Content = Content4;
@@ -2851,8 +2884,8 @@ ThreadDialog.Content = Content4;
2851
2884
  var import_runtime = require("regenerator-runtime/runtime");
2852
2885
  var import_themes41 = require("@radix-ui/themes");
2853
2886
  // src/contexts/threads/AudioThreadContext/index.ts
2854
- var import_react38 = require("react");
2855
- var AudioThreadContext = (0, import_react38.createContext)({
2887
+ var import_react40 = require("react");
2888
+ var AudioThreadContext = (0, import_react40.createContext)({
2856
2889
  status: "idle",
2857
2890
  recorderProps: {
2858
2891
  status: "idle",
@@ -2920,11 +2953,11 @@ var blobToData = function(blob) {
2920
2953
  });
2921
2954
  };
2922
2955
  // src/hooks/audioThreads/useStatus/index.ts
2923
- var import_react39 = require("react");
2956
+ var import_react41 = require("react");
2924
2957
  var useStatus = function(param) {
2925
2958
  var messageAudioProps = param.messageAudioProps, recorderProps = param.recorderProps, createMessageProps = param.createMessageProps;
2926
2959
  var latestMessageProps = useLatestMessage();
2927
- var status = (0, import_react39.useMemo)(function() {
2960
+ var status = (0, import_react41.useMemo)(function() {
2928
2961
  var _latestMessageProps_latestMessage;
2929
2962
  if (recorderProps.status === "recording") return "recording";
2930
2963
  if (createMessageProps.isPending) return "creatingMessage";
@@ -2948,19 +2981,19 @@ var useStatus = function(param) {
2948
2981
  // src/hooks/audioThreads/useRecorder/index.ts
2949
2982
  var import_dayjs2 = __toESM(require("dayjs"), 1);
2950
2983
  var import_use_audio_capture = require("use-audio-capture");
2951
- var import_react40 = require("react");
2984
+ var import_react42 = require("react");
2952
2985
  var import_react_use_audio_player = require("react-use-audio-player");
2953
2986
  var import_react_use2 = require("react-use");
2954
2987
  var useRecorder = function(param) {
2955
2988
  var isStopOnSilence = param.isStopOnSilence, onStart = param.onStart, onStop = param.onStop;
2956
- var _ref = _sliced_to_array((0, import_react40.useState)(null), 2), silenceStart = _ref[0], setSilenceStart = _ref[1];
2957
- var _ref1 = _sliced_to_array((0, import_react40.useState)(null), 2), noiseStart = _ref1[0], setNoiseStart = _ref1[1];
2958
- var _ref2 = _sliced_to_array((0, import_react40.useState)(null), 2), mediaStream = _ref2[0], setMediaStream = _ref2[1];
2959
- var _ref3 = _sliced_to_array((0, import_react40.useState)("idle"), 2), status = _ref3[0], setStatus = _ref3[1];
2989
+ var _ref = _sliced_to_array((0, import_react42.useState)(null), 2), silenceStart = _ref[0], setSilenceStart = _ref[1];
2990
+ var _ref1 = _sliced_to_array((0, import_react42.useState)(null), 2), noiseStart = _ref1[0], setNoiseStart = _ref1[1];
2991
+ var _ref2 = _sliced_to_array((0, import_react42.useState)(null), 2), mediaStream = _ref2[0], setMediaStream = _ref2[1];
2992
+ var _ref3 = _sliced_to_array((0, import_react42.useState)("idle"), 2), status = _ref3[0], setStatus = _ref3[1];
2960
2993
  var startAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
2961
2994
  var endAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
2962
- var _ref4 = _sliced_to_array((0, import_react40.useState)(false), 2), isLoaded = _ref4[0], setIsLoaded = _ref4[1];
2963
- (0, import_react40.useEffect)(function() {
2995
+ var _ref4 = _sliced_to_array((0, import_react42.useState)(false), 2), isLoaded = _ref4[0], setIsLoaded = _ref4[1];
2996
+ (0, import_react42.useEffect)(function() {
2964
2997
  if (isLoaded) return;
2965
2998
  setIsLoaded(true);
2966
2999
  }, [
@@ -3018,9 +3051,9 @@ var useRecorder = function(param) {
3018
3051
  setNoiseStart(null);
3019
3052
  }
3020
3053
  });
3021
- var _ref5 = _sliced_to_array((0, import_react40.useState)(null), 2), audioEngine = _ref5[0], setAudioEngine = _ref5[1];
3022
- var isInited = (0, import_react40.useRef)(false);
3023
- (0, import_react40.useEffect)(function() {
3054
+ var _ref5 = _sliced_to_array((0, import_react42.useState)(null), 2), audioEngine = _ref5[0], setAudioEngine = _ref5[1];
3055
+ var isInited = (0, import_react42.useRef)(false);
3056
+ (0, import_react42.useEffect)(function() {
3024
3057
  if (!mediaStream) return;
3025
3058
  if (isInited.current) return;
3026
3059
  isInited.current = true;
@@ -3033,7 +3066,7 @@ var useRecorder = function(param) {
3033
3066
  isInited,
3034
3067
  mediaStream
3035
3068
  ]);
3036
- var visualizationAnalyser = (0, import_react40.useMemo)(function() {
3069
+ var visualizationAnalyser = (0, import_react42.useMemo)(function() {
3037
3070
  if (!audioEngine) return null;
3038
3071
  var result = audioEngine.audioContext.createAnalyser();
3039
3072
  audioEngine.source.connect(result);
@@ -3041,7 +3074,7 @@ var useRecorder = function(param) {
3041
3074
  }, [
3042
3075
  audioEngine
3043
3076
  ]);
3044
- var silenceAnalyser = (0, import_react40.useMemo)(function() {
3077
+ var silenceAnalyser = (0, import_react42.useMemo)(function() {
3045
3078
  if (!audioEngine) return null;
3046
3079
  var result = audioEngine.audioContext.createAnalyser();
3047
3080
  result.minDecibels = -60;
@@ -3050,7 +3083,7 @@ var useRecorder = function(param) {
3050
3083
  }, [
3051
3084
  audioEngine
3052
3085
  ]);
3053
- var handleSilence = (0, import_react40.useCallback)(function() {
3086
+ var handleSilence = (0, import_react42.useCallback)(function() {
3054
3087
  if (!silenceAnalyser) return;
3055
3088
  var frequencyData = new Uint8Array(silenceAnalyser.frequencyBinCount);
3056
3089
  silenceAnalyser.getByteFrequencyData(frequencyData);
@@ -3073,7 +3106,7 @@ var useRecorder = function(param) {
3073
3106
  setNoiseStart,
3074
3107
  setSilenceStart
3075
3108
  ]);
3076
- (0, import_react40.useEffect)(function() {
3109
+ (0, import_react42.useEffect)(function() {
3077
3110
  if (!isStopOnSilence) return;
3078
3111
  requestAnimationFrame(function() {
3079
3112
  return handleSilence();
@@ -3096,7 +3129,7 @@ var useRecorder = function(param) {
3096
3129
  });
3097
3130
  };
3098
3131
  // src/hooks/audioThreads/useMessageAudio/index.ts
3099
- var import_react41 = require("react");
3132
+ var import_react43 = require("react");
3100
3133
  var import_compromise = __toESM(require("compromise"), 1);
3101
3134
  var import_howler = require("howler");
3102
3135
  var import_react_use_audio_player2 = require("react-use-audio-player");
@@ -3134,15 +3167,15 @@ var getMessageSentences = function(param) {
3134
3167
  };
3135
3168
  var useMessageAudio = function(param) {
3136
3169
  var onEnd = param.onEnd;
3137
- var _ref = _sliced_to_array((0, import_react41.useState)(false), 2), isAudioPlayed = _ref[0], setIsAudioPlayed = _ref[1];
3138
- var _ref1 = _sliced_to_array((0, import_react41.useState)([]), 2), stoppedMessageIds = _ref1[0], setStoppedMessageIds = _ref1[1];
3139
- var _ref2 = _sliced_to_array((0, import_react41.useState)([]), 2), playedMessageSentences = _ref2[0], setPlayedMessageSentences = _ref2[1];
3170
+ var _ref = _sliced_to_array((0, import_react43.useState)(false), 2), isAudioPlayed = _ref[0], setIsAudioPlayed = _ref[1];
3171
+ var _ref1 = _sliced_to_array((0, import_react43.useState)([]), 2), stoppedMessageIds = _ref1[0], setStoppedMessageIds = _ref1[1];
3172
+ var _ref2 = _sliced_to_array((0, import_react43.useState)([]), 2), playedMessageSentences = _ref2[0], setPlayedMessageSentences = _ref2[1];
3140
3173
  var audioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
3141
3174
  var nextAudioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
3142
3175
  var superinterfaceContext = useSuperinterfaceContext();
3143
- var _ref3 = _sliced_to_array((0, import_react41.useState)(false), 2), isPlaying = _ref3[0], setIsPlaying = _ref3[1];
3176
+ var _ref3 = _sliced_to_array((0, import_react43.useState)(false), 2), isPlaying = _ref3[0], setIsPlaying = _ref3[1];
3144
3177
  var latestMessageProps = useLatestMessage();
3145
- var unplayedMessageSentences = (0, import_react41.useMemo)(function() {
3178
+ var unplayedMessageSentences = (0, import_react43.useMemo)(function() {
3146
3179
  if (!latestMessageProps.latestMessage) return [];
3147
3180
  if (latestMessageProps.latestMessage.role !== "assistant") return [];
3148
3181
  if (stoppedMessageIds.includes(latestMessageProps.latestMessage.id)) return [];
@@ -3163,7 +3196,7 @@ var useMessageAudio = function(param) {
3163
3196
  latestMessageProps,
3164
3197
  playedMessageSentences
3165
3198
  ]);
3166
- (0, import_react41.useEffect)(function() {
3199
+ (0, import_react43.useEffect)(function() {
3167
3200
  if (isPlaying) return;
3168
3201
  if (audioPlayer.playing) return;
3169
3202
  if (!latestMessageProps.latestMessage) return;
@@ -3231,7 +3264,7 @@ var useMessageAudio = function(param) {
3231
3264
  playedMessageSentences,
3232
3265
  onEnd
3233
3266
  ]);
3234
- (0, import_react41.useEffect)(function() {
3267
+ (0, import_react43.useEffect)(function() {
3235
3268
  if (isHtmlAudioSupported) {
3236
3269
  var _import_howler_Howler__howls___sounds_, _import_howler_Howler__howls_, _import_howler_Howler;
3237
3270
  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;
@@ -3240,9 +3273,9 @@ var useMessageAudio = function(param) {
3240
3273
  }, [
3241
3274
  audioPlayer
3242
3275
  ]);
3243
- var _ref4 = _sliced_to_array((0, import_react41.useState)(null), 2), audioEngine = _ref4[0], setAudioEngine = _ref4[1];
3244
- var isAudioEngineInited = (0, import_react41.useRef)(false);
3245
- (0, import_react41.useEffect)(function() {
3276
+ var _ref4 = _sliced_to_array((0, import_react43.useState)(null), 2), audioEngine = _ref4[0], setAudioEngine = _ref4[1];
3277
+ var isAudioEngineInited = (0, import_react43.useRef)(false);
3278
+ (0, import_react43.useEffect)(function() {
3246
3279
  if (!audioPlayer.playing) return;
3247
3280
  if (isAudioEngineInited.current) return;
3248
3281
  isAudioEngineInited.current = true;
@@ -3263,7 +3296,7 @@ var useMessageAudio = function(param) {
3263
3296
  audioPlayer,
3264
3297
  isAudioEngineInited
3265
3298
  ]);
3266
- var visualizationAnalyser = (0, import_react41.useMemo)(function() {
3299
+ var visualizationAnalyser = (0, import_react43.useMemo)(function() {
3267
3300
  if (!audioEngine) return null;
3268
3301
  var result = audioEngine.audioContext.createAnalyser();
3269
3302
  audioEngine.source.connect(audioEngine.audioContext.destination);
@@ -3272,7 +3305,7 @@ var useMessageAudio = function(param) {
3272
3305
  }, [
3273
3306
  audioEngine
3274
3307
  ]);
3275
- var isPending = (0, import_react41.useMemo)(function() {
3308
+ var isPending = (0, import_react43.useMemo)(function() {
3276
3309
  return isPlaying || unplayedMessageSentences.length > 0;
3277
3310
  }, [
3278
3311
  isPlaying,
@@ -3286,8 +3319,8 @@ var useMessageAudio = function(param) {
3286
3319
  });
3287
3320
  };
3288
3321
  // src/components/threads/AudioThread/Root/index.tsx
3289
- var import_jsx_runtime55 = require("react/jsx-runtime");
3290
- var Root8 = function(param) {
3322
+ var import_jsx_runtime56 = require("react/jsx-runtime");
3323
+ var Root9 = function(param) {
3291
3324
  var children = param.children;
3292
3325
  var createMessageProps = useCreateMessage();
3293
3326
  var recorderProps = useRecorder({
@@ -3344,13 +3377,13 @@ var Root8 = function(param) {
3344
3377
  createMessageProps: createMessageProps,
3345
3378
  messageAudioProps: messageAudioProps
3346
3379
  }).status;
3347
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(AudioThreadContext.Provider, {
3380
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(AudioThreadContext.Provider, {
3348
3381
  value: {
3349
3382
  status: status,
3350
3383
  recorderProps: recorderProps,
3351
3384
  messageAudioProps: messageAudioProps
3352
3385
  },
3353
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes41.Flex, {
3386
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes41.Flex, {
3354
3387
  direction: "column",
3355
3388
  flexGrow: "1",
3356
3389
  p: "9",
@@ -3359,25 +3392,25 @@ var Root8 = function(param) {
3359
3392
  });
3360
3393
  };
3361
3394
  // src/components/threads/AudioThread/Visualization/index.tsx
3362
- var import_react44 = require("react");
3395
+ var import_react46 = require("react");
3363
3396
  var import_lodash9 = __toESM(require("lodash"), 1);
3364
3397
  var import_themes43 = require("@radix-ui/themes");
3365
3398
  // src/hooks/threads/useAudioThreadContext/index.ts
3366
- var import_react42 = require("react");
3399
+ var import_react44 = require("react");
3367
3400
  var useAudioThreadContext = function() {
3368
- return (0, import_react42.useContext)(AudioThreadContext);
3401
+ return (0, import_react44.useContext)(AudioThreadContext);
3369
3402
  };
3370
3403
  // src/components/threads/AudioThread/BarsVisualizer/index.tsx
3371
3404
  var import_lodash8 = __toESM(require("lodash"), 1);
3372
3405
  var import_themes42 = require("@radix-ui/themes");
3373
- var import_react43 = require("react");
3406
+ var import_react45 = require("react");
3374
3407
  var import_radash12 = require("radash");
3375
- var import_jsx_runtime56 = require("react/jsx-runtime");
3408
+ var import_jsx_runtime57 = require("react/jsx-runtime");
3376
3409
  var barCount = 4;
3377
3410
  var BarsVisualizer = function(param) {
3378
3411
  var visualizationAnalyser = param.visualizationAnalyser, backgroundColor = param.backgroundColor, height = param.height, barWidth = param.barWidth;
3379
- var _ref = _sliced_to_array((0, import_react43.useState)([]), 2), barHeights = _ref[0], setBarHeights = _ref[1];
3380
- var draw = (0, import_react43.useCallback)(function(param) {
3412
+ var _ref = _sliced_to_array((0, import_react45.useState)([]), 2), barHeights = _ref[0], setBarHeights = _ref[1];
3413
+ var draw = (0, import_react45.useCallback)(function(param) {
3381
3414
  var visualizationAnalyser2 = param.visualizationAnalyser;
3382
3415
  if (!visualizationAnalyser2) {
3383
3416
  setBarHeights(Array(barCount).fill(0));
@@ -3395,7 +3428,7 @@ var BarsVisualizer = function(param) {
3395
3428
  });
3396
3429
  });
3397
3430
  }, []);
3398
- (0, import_react43.useEffect)(function() {
3431
+ (0, import_react45.useEffect)(function() {
3399
3432
  draw({
3400
3433
  visualizationAnalyser: visualizationAnalyser
3401
3434
  });
@@ -3403,7 +3436,7 @@ var BarsVisualizer = function(param) {
3403
3436
  draw,
3404
3437
  visualizationAnalyser
3405
3438
  ]);
3406
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.Grid, {
3439
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes42.Grid, {
3407
3440
  columns: "".concat(barCount),
3408
3441
  gap: "1",
3409
3442
  width: "auto",
@@ -3412,12 +3445,12 @@ var BarsVisualizer = function(param) {
3412
3445
  gridTemplateColumns: "repeat(4, minmax(0, 1fr))"
3413
3446
  },
3414
3447
  children: barHeights.map(function(barHeight, index) {
3415
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.Flex, {
3448
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes42.Flex, {
3416
3449
  direction: "column",
3417
3450
  align: "center",
3418
3451
  justify: "center",
3419
3452
  height: height,
3420
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.Flex, {
3453
+ children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes42.Flex, {
3421
3454
  minHeight: "50%",
3422
3455
  maxHeight: "100%",
3423
3456
  height: "".concat(barHeight + 20, "%"),
@@ -3432,12 +3465,12 @@ var BarsVisualizer = function(param) {
3432
3465
  });
3433
3466
  };
3434
3467
  // src/components/threads/AudioThread/Visualization/index.tsx
3435
- var import_jsx_runtime57 = require("react/jsx-runtime");
3468
+ var import_jsx_runtime58 = require("react/jsx-runtime");
3436
3469
  var Visualization = function() {
3437
3470
  var audioThreadContext = useAudioThreadContext();
3438
- var assistantNameContext = (0, import_react44.useContext)(AssistantNameContext);
3439
- var _ref = _sliced_to_array((0, import_react44.useState)(0), 2), scale = _ref[0], setScale = _ref[1];
3440
- var draw = (0, import_react44.useCallback)(function(param) {
3471
+ var assistantNameContext = (0, import_react46.useContext)(AssistantNameContext);
3472
+ var _ref = _sliced_to_array((0, import_react46.useState)(0), 2), scale = _ref[0], setScale = _ref[1];
3473
+ var draw = (0, import_react46.useCallback)(function(param) {
3441
3474
  var visualizationAnalyser = param.visualizationAnalyser;
3442
3475
  if (!visualizationAnalyser) {
3443
3476
  setScale(1);
@@ -3452,7 +3485,7 @@ var Visualization = function() {
3452
3485
  });
3453
3486
  });
3454
3487
  }, []);
3455
- (0, import_react44.useEffect)(function() {
3488
+ (0, import_react46.useEffect)(function() {
3456
3489
  draw({
3457
3490
  visualizationAnalyser: audioThreadContext.recorderProps.visualizationAnalyser
3458
3491
  });
@@ -3460,14 +3493,14 @@ var Visualization = function() {
3460
3493
  draw,
3461
3494
  audioThreadContext
3462
3495
  ]);
3463
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_themes43.Flex, {
3496
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_themes43.Flex, {
3464
3497
  direction: "column",
3465
3498
  align: "center",
3466
3499
  justify: "center",
3467
3500
  mb: "3",
3468
3501
  flexGrow: "1",
3469
3502
  children: [
3470
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes43.Flex, {
3503
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.Flex, {
3471
3504
  align: "center",
3472
3505
  justify: "center",
3473
3506
  height: "200px",
@@ -3477,20 +3510,20 @@ var Visualization = function() {
3477
3510
  borderRadius: "9999px",
3478
3511
  scale: scale
3479
3512
  },
3480
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(BarsVisualizer, {
3513
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(BarsVisualizer, {
3481
3514
  visualizationAnalyser: audioThreadContext.messageAudioProps.visualizationAnalyser,
3482
3515
  backgroundColor: audioThreadContext.status === "playing" ? "var(--accent-11)" : "var(--gray-11)",
3483
3516
  height: "40px",
3484
3517
  barWidth: "24px"
3485
3518
  })
3486
3519
  }),
3487
- /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_themes43.Flex, {
3520
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_themes43.Flex, {
3488
3521
  ml: "-22.5px",
3489
3522
  gap: "3",
3490
3523
  pt: "5",
3491
3524
  children: [
3492
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(AssistantAvatar, {}),
3493
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Name, {
3525
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(AssistantAvatar, {}),
3526
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Name, {
3494
3527
  children: assistantNameContext
3495
3528
  })
3496
3529
  ]
@@ -3500,7 +3533,7 @@ var Visualization = function() {
3500
3533
  };
3501
3534
  // src/components/threads/AudioThread/Status/StatusMessages.tsx
3502
3535
  var import_themes44 = require("@radix-ui/themes");
3503
- var import_jsx_runtime58 = require("react/jsx-runtime");
3536
+ var import_jsx_runtime59 = require("react/jsx-runtime");
3504
3537
  var html = function(param) {
3505
3538
  var texts = param.texts;
3506
3539
  return "\n .status-messages-texts:after {\n content: '".concat(texts[0], "';\n animation: texts ").concat(texts.length * 5, "s linear infinite;\n }\n\n @keyframes texts {\n ").concat(texts.map(function(_10, i) {
@@ -3509,17 +3542,17 @@ var html = function(param) {
3509
3542
  };
3510
3543
  var StatusMessages = function(param) {
3511
3544
  var texts = param.texts;
3512
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_themes44.Flex, {
3545
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_themes44.Flex, {
3513
3546
  justify: "center",
3514
3547
  pb: "5",
3515
3548
  children: [
3516
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes44.Text, {
3549
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_themes44.Text, {
3517
3550
  size: "2",
3518
3551
  weight: "regular",
3519
3552
  color: "gray",
3520
3553
  className: "status-messages-texts"
3521
3554
  }),
3522
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("style", {
3555
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("style", {
3523
3556
  dangerouslySetInnerHTML: {
3524
3557
  __html: html({
3525
3558
  texts: texts
@@ -3530,11 +3563,11 @@ var StatusMessages = function(param) {
3530
3563
  });
3531
3564
  };
3532
3565
  // src/components/threads/AudioThread/Status/index.tsx
3533
- var import_jsx_runtime59 = require("react/jsx-runtime");
3566
+ var import_jsx_runtime60 = require("react/jsx-runtime");
3534
3567
  var Status = function() {
3535
3568
  var audioThreadContext = useAudioThreadContext();
3536
3569
  if (audioThreadContext.status === "recording") {
3537
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(StatusMessages, {
3570
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(StatusMessages, {
3538
3571
  texts: [
3539
3572
  "Start speaking",
3540
3573
  "Listening",
@@ -3548,20 +3581,20 @@ var Status = function() {
3548
3581
  "idle",
3549
3582
  "playerPaused"
3550
3583
  ].includes(audioThreadContext.status)) {
3551
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(StatusMessages, {
3584
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(StatusMessages, {
3552
3585
  texts: [
3553
3586
  "Click the button below to activate"
3554
3587
  ]
3555
3588
  });
3556
3589
  }
3557
3590
  if (audioThreadContext.status === "playing") {
3558
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(StatusMessages, {
3591
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(StatusMessages, {
3559
3592
  texts: [
3560
3593
  "Click the button below to interrupt"
3561
3594
  ]
3562
3595
  });
3563
3596
  }
3564
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(StatusMessages, {
3597
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(StatusMessages, {
3565
3598
  texts: [
3566
3599
  "Thinking"
3567
3600
  ]
@@ -3570,9 +3603,9 @@ var Status = function() {
3570
3603
  // src/components/threads/AudioThread/Form/index.tsx
3571
3604
  var import_themes46 = require("@radix-ui/themes");
3572
3605
  // src/components/threads/AudioThread/Form/MicIcon.tsx
3573
- var import_jsx_runtime60 = require("react/jsx-runtime");
3606
+ var import_jsx_runtime61 = require("react/jsx-runtime");
3574
3607
  var MicIcon = function(props) {
3575
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("svg", _object_spread_props(_object_spread({
3608
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("svg", _object_spread_props(_object_spread({
3576
3609
  xmlns: "http://www.w3.org/2000/svg",
3577
3610
  fill: "currentColor",
3578
3611
  stroke: "currentColor",
@@ -3581,7 +3614,7 @@ var MicIcon = function(props) {
3581
3614
  height: "15",
3582
3615
  width: "15"
3583
3616
  }, props), {
3584
- children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("path", {
3617
+ children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("path", {
3585
3618
  stroke: "none",
3586
3619
  d: "M192 0c-53 0-96 43-96 96v160c0 53 43 96 96 96s96-43 96-96V96c0-53-43-96-96-96zM64 216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 89.1 66.2 162.7 152 174.4V464h-48c-13.3 0-24 10.7-24 24s10.7 24 24 24h144c13.3 0 24-10.7 24-24s-10.7-24-24-24h-48v-33.6c85.8-11.7 152-85.3 152-174.4v-40c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 70.7-57.3 128-128 128S64 326.7 64 256v-40z"
3587
3620
  })
@@ -3590,45 +3623,45 @@ var MicIcon = function(props) {
3590
3623
  // src/components/threads/AudioThread/Form/ActionButton/index.tsx
3591
3624
  var import_themes45 = require("@radix-ui/themes");
3592
3625
  var import_react_icons9 = require("@radix-ui/react-icons");
3593
- var import_jsx_runtime61 = require("react/jsx-runtime");
3626
+ var import_jsx_runtime62 = require("react/jsx-runtime");
3594
3627
  var ActionButton = function() {
3595
3628
  var audioThreadContext = useAudioThreadContext();
3596
3629
  var superinterfaceContext = useSuperinterfaceContext();
3597
3630
  if (audioThreadContext.status === "recording") {
3598
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_themes45.Flex, {
3631
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_themes45.Flex, {
3599
3632
  align: "center",
3600
3633
  children: [
3601
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes45.Flex, {
3634
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes45.Flex, {
3602
3635
  mr: "3",
3603
3636
  ml: "-7",
3604
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes45.IconButton, {
3637
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes45.IconButton, {
3605
3638
  onClick: audioThreadContext.recorderProps.pause,
3606
3639
  color: "gray",
3607
3640
  variant: "soft",
3608
3641
  size: "1",
3609
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_icons9.PauseIcon, {})
3642
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_icons9.PauseIcon, {})
3610
3643
  })
3611
3644
  }),
3612
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes45.IconButton, {
3645
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes45.IconButton, {
3613
3646
  onClick: audioThreadContext.recorderProps.stop,
3614
3647
  highContrast: true,
3615
3648
  variant: "soft",
3616
3649
  size: "4",
3617
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_icons9.ArrowUpIcon, {})
3650
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_icons9.ArrowUpIcon, {})
3618
3651
  })
3619
3652
  ]
3620
3653
  });
3621
3654
  }
3622
3655
  if (audioThreadContext.status === "recorderPaused") {
3623
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes45.IconButton, {
3656
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes45.IconButton, {
3624
3657
  onClick: audioThreadContext.recorderProps.resume,
3625
3658
  color: "red",
3626
3659
  size: "4",
3627
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_icons9.ResumeIcon, {})
3660
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_icons9.ResumeIcon, {})
3628
3661
  });
3629
3662
  }
3630
3663
  if (audioThreadContext.status === "idle") {
3631
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes45.IconButton, {
3664
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes45.IconButton, {
3632
3665
  onClick: function() {
3633
3666
  return audioThreadContext.recorderProps.start();
3634
3667
  },
@@ -3637,7 +3670,7 @@ var ActionButton = function() {
3637
3670
  });
3638
3671
  }
3639
3672
  if (audioThreadContext.status === "playing") {
3640
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes45.IconButton, {
3673
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes45.IconButton, {
3641
3674
  onClick: function() {
3642
3675
  var _superinterfaceContext_createMessageAbortControllerRef_current;
3643
3676
  audioThreadContext.messageAudioProps.stop();
@@ -3647,54 +3680,54 @@ var ActionButton = function() {
3647
3680
  size: "4",
3648
3681
  color: "gray",
3649
3682
  variant: "soft",
3650
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_icons9.StopIcon, {})
3683
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_icons9.StopIcon, {})
3651
3684
  });
3652
3685
  }
3653
3686
  if (audioThreadContext.status === "playerPaused") {
3654
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes45.IconButton, {
3687
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes45.IconButton, {
3655
3688
  onClick: function() {
3656
3689
  return audioThreadContext.messageAudioProps.play();
3657
3690
  },
3658
3691
  size: "4",
3659
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_icons9.ResumeIcon, {})
3692
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_icons9.ResumeIcon, {})
3660
3693
  });
3661
3694
  }
3662
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes45.IconButton, {
3695
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes45.IconButton, {
3663
3696
  size: "4",
3664
3697
  variant: "soft",
3665
3698
  disabled: true
3666
3699
  });
3667
3700
  };
3668
3701
  // src/components/threads/AudioThread/Form/index.tsx
3669
- var import_jsx_runtime62 = require("react/jsx-runtime");
3702
+ var import_jsx_runtime63 = require("react/jsx-runtime");
3670
3703
  var Form = function() {
3671
3704
  var audioThreadContext = useAudioThreadContext();
3672
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_themes46.Flex, {
3705
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_themes46.Flex, {
3673
3706
  direction: "column",
3674
3707
  align: "center",
3675
3708
  children: [
3676
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_themes46.Flex, {
3709
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_themes46.Flex, {
3677
3710
  pb: "3",
3678
3711
  align: "center",
3679
3712
  children: [
3680
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes46.Flex, {
3713
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_themes46.Flex, {
3681
3714
  ml: "-22.5px",
3682
3715
  mr: "2",
3683
3716
  align: "center",
3684
- children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(MicIcon, {
3717
+ children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(MicIcon, {
3685
3718
  style: {
3686
3719
  color: audioThreadContext.status === "recording" ? "var(--accent-11)" : "var(--gray-11)"
3687
3720
  }
3688
3721
  })
3689
3722
  }),
3690
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes46.Flex, {
3723
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_themes46.Flex, {
3691
3724
  px: "2",
3692
3725
  py: "1",
3693
3726
  style: {
3694
3727
  backgroundColor: audioThreadContext.status === "recording" ? "var(--accent-4)" : "var(--gray-4)",
3695
3728
  borderRadius: "var(--radius-6)"
3696
3729
  },
3697
- children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(BarsVisualizer, {
3730
+ children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(BarsVisualizer, {
3698
3731
  visualizationAnalyser: audioThreadContext.recorderProps.visualizationAnalyser,
3699
3732
  backgroundColor: audioThreadContext.status === "recording" ? "var(--accent-11)" : "var(--gray-11)",
3700
3733
  height: "20px",
@@ -3703,57 +3736,57 @@ var Form = function() {
3703
3736
  })
3704
3737
  ]
3705
3738
  }),
3706
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(ActionButton, {})
3739
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(ActionButton, {})
3707
3740
  ]
3708
3741
  });
3709
3742
  };
3710
3743
  // src/components/threads/AudioThread/index.tsx
3711
- var import_jsx_runtime63 = require("react/jsx-runtime");
3744
+ var import_jsx_runtime64 = require("react/jsx-runtime");
3712
3745
  var AudioThread = function(props) {
3713
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(Root8, _object_spread_props(_object_spread({}, props), {
3746
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(Root9, _object_spread_props(_object_spread({}, props), {
3714
3747
  children: [
3715
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Visualization, {}),
3716
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Status, {}),
3717
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Form, {})
3748
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Visualization, {}),
3749
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Status, {}),
3750
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Form, {})
3718
3751
  ]
3719
3752
  }));
3720
3753
  };
3721
- AudioThread.Root = Root8;
3754
+ AudioThread.Root = Root9;
3722
3755
  AudioThread.Visualization = Visualization;
3723
3756
  AudioThread.Form = Form;
3724
3757
  // src/components/threads/AudioThreadDialog/index.tsx
3725
- var import_jsx_runtime64 = require("react/jsx-runtime");
3758
+ var import_jsx_runtime65 = require("react/jsx-runtime");
3726
3759
  var AudioThreadDialog = function() {
3727
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(Root6, {
3760
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(Root7, {
3728
3761
  children: [
3729
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Content4.Root, {
3730
- children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(AudioThread, {})
3762
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Content4.Root, {
3763
+ children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(AudioThread, {})
3731
3764
  }),
3732
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Trigger, {
3733
- children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Button2, {})
3765
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Trigger, {
3766
+ children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button2, {})
3734
3767
  })
3735
3768
  ]
3736
3769
  });
3737
3770
  };
3738
- AudioThreadDialog.Root = Root6;
3771
+ AudioThreadDialog.Root = Root7;
3739
3772
  AudioThreadDialog.Trigger = Trigger;
3740
3773
  AudioThreadDialog.Button = Button2;
3741
3774
  AudioThreadDialog.Content = Content4;
3742
3775
  // src/components/suggestions/Suggestions/index.tsx
3743
- var import_react46 = require("react");
3776
+ var import_react48 = require("react");
3744
3777
  // src/components/suggestions/Suggestions/Content.tsx
3745
- var import_react45 = require("react");
3778
+ var import_react47 = require("react");
3746
3779
  var import_radash13 = require("radash");
3747
3780
  var import_react_children_utilities = require("react-children-utilities");
3748
3781
  var import_themes48 = require("@radix-ui/themes");
3749
3782
  // src/components/suggestions/Suggestions/Item.tsx
3750
3783
  var import_react_icons10 = require("@radix-ui/react-icons");
3751
3784
  var import_themes47 = require("@radix-ui/themes");
3752
- var import_jsx_runtime65 = require("react/jsx-runtime");
3785
+ var import_jsx_runtime66 = require("react/jsx-runtime");
3753
3786
  var Item = function(param) {
3754
3787
  var suggestion = param.suggestion, isDisabled = param.isDisabled;
3755
3788
  var _useCreateMessage = useCreateMessage(), createMessage = _useCreateMessage.createMessage, isPending = _useCreateMessage.isPending;
3756
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Content5, {
3789
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Content5, {
3757
3790
  onClick: function() {
3758
3791
  createMessage({
3759
3792
  // @ts-ignore-next-line
@@ -3767,7 +3800,7 @@ var Item = function(param) {
3767
3800
  };
3768
3801
  var Content5 = function(param) {
3769
3802
  var onClick = param.onClick, isDisabled = param.isDisabled, isPending = param.isPending, children = param.children;
3770
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_themes47.Button, {
3803
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_themes47.Button, {
3771
3804
  variant: "soft",
3772
3805
  onClick: onClick,
3773
3806
  disabled: isDisabled,
@@ -3777,14 +3810,14 @@ var Content5 = function(param) {
3777
3810
  flexShrink: 1
3778
3811
  },
3779
3812
  children: [
3780
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_themes47.Text, {
3813
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_themes47.Text, {
3781
3814
  size: "1",
3782
3815
  weight: "regular",
3783
3816
  children: children
3784
3817
  }),
3785
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_themes47.Spinner, {
3818
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_themes47.Spinner, {
3786
3819
  loading: isPending,
3787
- children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_react_icons10.ArrowUpIcon, {
3820
+ children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react_icons10.ArrowUpIcon, {
3788
3821
  style: {
3789
3822
  flexShrink: 0
3790
3823
  }
@@ -3795,11 +3828,11 @@ var Content5 = function(param) {
3795
3828
  };
3796
3829
  Item.Content = Content5;
3797
3830
  // src/components/suggestions/Suggestions/Content.tsx
3798
- var import_jsx_runtime66 = require("react/jsx-runtime");
3831
+ var import_jsx_runtime67 = require("react/jsx-runtime");
3799
3832
  var Content6 = function(param) {
3800
3833
  var children = param.children;
3801
3834
  var isMutatingMessage = useIsMutatingMessage();
3802
- var suggestions = (0, import_react45.useMemo)(function() {
3835
+ var suggestions = (0, import_react47.useMemo)(function() {
3803
3836
  return (0, import_react_children_utilities.onlyText)(children).split(/\r?\n/).filter(function(c) {
3804
3837
  return !(0, import_radash13.isEmpty)(c);
3805
3838
  }).map(function(c) {
@@ -3809,12 +3842,12 @@ var Content6 = function(param) {
3809
3842
  children
3810
3843
  ]);
3811
3844
  if ((0, import_radash13.isEmpty)(suggestions)) return null;
3812
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_themes48.Flex, {
3845
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_themes48.Flex, {
3813
3846
  gap: "2",
3814
3847
  py: "2",
3815
3848
  wrap: "wrap",
3816
3849
  children: suggestions.map(function(suggestion) {
3817
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Item, {
3850
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Item, {
3818
3851
  suggestion: suggestion,
3819
3852
  isDisabled: isMutatingMessage
3820
3853
  }, suggestion);
@@ -3822,11 +3855,11 @@ var Content6 = function(param) {
3822
3855
  });
3823
3856
  };
3824
3857
  // src/components/suggestions/Suggestions/index.tsx
3825
- var import_jsx_runtime67 = require("react/jsx-runtime");
3858
+ var import_jsx_runtime68 = require("react/jsx-runtime");
3826
3859
  var Suggestions = function(param) {
3827
3860
  var children = param.children;
3828
3861
  var latestMessageProps = useLatestMessage();
3829
- var isDisabled = (0, import_react46.useMemo)(function() {
3862
+ var isDisabled = (0, import_react48.useMemo)(function() {
3830
3863
  var // @ts-ignore-next-line
3831
3864
  _latestMessageProps_latestMessage_metadata, _latestMessageProps_latestMessage;
3832
3865
  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;
@@ -3835,26 +3868,51 @@ var Suggestions = function(param) {
3835
3868
  ]);
3836
3869
  if (latestMessageProps.isLoading) return null;
3837
3870
  if (isDisabled) return null;
3838
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Content6, {
3871
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Content6, {
3839
3872
  children: children
3840
3873
  });
3841
3874
  };
3842
3875
  Suggestions.Item = Item;
3843
3876
  // src/components/markdown/MarkdownProvider/index.tsx
3844
- var import_react47 = require("react");
3845
- var import_jsx_runtime68 = require("react/jsx-runtime");
3877
+ var import_react49 = require("react");
3878
+ var import_jsx_runtime69 = require("react/jsx-runtime");
3846
3879
  var MarkdownProvider = function(_param) {
3847
3880
  var children = _param.children, rest = _object_without_properties(_param, [
3848
3881
  "children"
3849
3882
  ]);
3850
3883
  var prevMarkdownContext = useMarkdownContext();
3851
- var value = (0, import_react47.useMemo)(function() {
3884
+ var value = (0, import_react49.useMemo)(function() {
3852
3885
  return merge(prevMarkdownContext, rest);
3853
3886
  }, [
3854
3887
  rest,
3855
3888
  prevMarkdownContext
3856
3889
  ]);
3857
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(MarkdownContext.Provider, {
3890
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(MarkdownContext.Provider, {
3891
+ value: value,
3892
+ children: children
3893
+ });
3894
+ };
3895
+ // src/components/components/ComponentsProvider.tsx
3896
+ var import_react51 = require("react");
3897
+ // src/hooks/components/useComponents.ts
3898
+ var import_react50 = require("react");
3899
+ var useComponents = function() {
3900
+ return (0, import_react50.useContext)(ComponentsContext);
3901
+ };
3902
+ // src/components/components/ComponentsProvider.tsx
3903
+ var import_jsx_runtime70 = require("react/jsx-runtime");
3904
+ var ComponentsProvider = function(_param) {
3905
+ var children = _param.children, rest = _object_without_properties(_param, [
3906
+ "children"
3907
+ ]);
3908
+ var prevComponents = useComponents();
3909
+ var value = (0, import_react51.useMemo)(function() {
3910
+ return merge(prevComponents, rest);
3911
+ }, [
3912
+ rest,
3913
+ prevComponents
3914
+ ]);
3915
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ComponentsContext.Provider, {
3858
3916
  value: value,
3859
3917
  children: children
3860
3918
  });
@@ -3865,15 +3923,18 @@ var MarkdownProvider = function(_param) {
3865
3923
  AssistantNameContext: AssistantNameContext,
3866
3924
  AudioThread: AudioThread,
3867
3925
  AudioThreadDialog: AudioThreadDialog,
3926
+ ComponentsProvider: ComponentsProvider,
3868
3927
  FunctionBase: FunctionBase,
3869
3928
  FunctionComponentsContext: FunctionComponentsContext,
3870
3929
  MarkdownContext: MarkdownContext,
3871
3930
  MarkdownProvider: MarkdownProvider,
3931
+ RunStep: RunStep,
3872
3932
  Suggestions: Suggestions,
3873
3933
  SuperinterfaceProvider: SuperinterfaceProvider,
3874
3934
  Thread: Thread,
3875
3935
  ThreadDialog: ThreadDialog,
3876
3936
  ThreadDialogContext: ThreadDialogContext,
3937
+ useComponents: useComponents,
3877
3938
  useCreateMessage: useCreateMessage,
3878
3939
  useLatestMessage: useLatestMessage,
3879
3940
  useMarkdownContext: useMarkdownContext,