@superinterface/react 2.13.4 → 2.14.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,8 +1169,8 @@ 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
@@ -1148,9 +1178,9 @@ var Provider = MessageContext.Provider;
1148
1178
  // src/components/threads/Thread/Message/TextContent.tsx
1149
1179
  var import_react_remark = require("react-remark");
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,7 +1318,7 @@ 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
1294
1324
  var TextContent = function(param) {
@@ -1300,7 +1330,7 @@ var TextContent = function(param) {
1300
1330
  var import_jsx_runtime30 = require("react/jsx-runtime");
1301
1331
  var Message = function(param) {
1302
1332
  var message = param.message;
1303
- var _ref = _sliced_to_array((0, import_react20.useMemo)(function() {
1333
+ var _ref = _sliced_to_array((0, import_react22.useMemo)(function() {
1304
1334
  if (!message.runSteps.length) return [
1305
1335
  [],
1306
1336
  []
@@ -1333,7 +1363,7 @@ var Message = function(param) {
1333
1363
  message
1334
1364
  ]), 2), olderRunSteps = _ref[0], laterRunSteps = _ref[1];
1335
1365
  var isMutatingMessage = useIsMutatingMessage();
1336
- var isInProgress = (0, import_react20.useMemo)(function() {
1366
+ var isInProgress = (0, import_react22.useMemo)(function() {
1337
1367
  if (!isMutatingMessage) return false;
1338
1368
  if (message.status === "in_progress") return true;
1339
1369
  return message.runSteps.some(function(rs) {
@@ -1354,7 +1384,7 @@ var Message = function(param) {
1354
1384
  /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_themes25.Box, {
1355
1385
  children: [
1356
1386
  message.content.map(function(content, index) {
1357
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react20.Fragment, {
1387
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react22.Fragment, {
1358
1388
  children: content.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(TextContent, {
1359
1389
  content: content
1360
1390
  })
@@ -1387,7 +1417,7 @@ var Content2 = function(param) {
1387
1417
  var import_jsx_runtime32 = require("react/jsx-runtime");
1388
1418
  var MessageGroup = function(param) {
1389
1419
  var messageGroup = param.messageGroup;
1390
- var assistantNameContext = (0, import_react21.useContext)(AssistantNameContext);
1420
+ var assistantNameContext = (0, import_react23.useContext)(AssistantNameContext);
1391
1421
  return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(MessageGroupBase, {
1392
1422
  children: [
1393
1423
  messageGroup.role === "user" ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_themes27.Avatar, {
@@ -1416,7 +1446,7 @@ var Content3 = function() {
1416
1446
  var _useMessageGroups = useMessageGroups({
1417
1447
  messages: messages2
1418
1448
  }), messageGroups2 = _useMessageGroups.messageGroups;
1419
- (0, import_react22.useEffect)(function() {
1449
+ (0, import_react24.useEffect)(function() {
1420
1450
  if (isLoadingError) {
1421
1451
  addToast({
1422
1452
  type: "error",
@@ -1439,14 +1469,14 @@ var Content3 = function() {
1439
1469
  });
1440
1470
  };
1441
1471
  // src/components/threads/Thread/Messages/Progress/index.tsx
1442
- var import_react25 = require("react");
1472
+ var import_react27 = require("react");
1443
1473
  // src/components/skeletons/StartingSkeleton/index.tsx
1444
- var import_react23 = require("react");
1474
+ var import_react25 = require("react");
1445
1475
  var import_themes28 = require("@radix-ui/themes");
1446
1476
  var import_jsx_runtime34 = require("react/jsx-runtime");
1447
1477
  var StartingSkeleton = function(param) {
1448
1478
  var children = param.children;
1449
- var assistantNameContext = (0, import_react23.useContext)(AssistantNameContext);
1479
+ var assistantNameContext = (0, import_react25.useContext)(AssistantNameContext);
1450
1480
  return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(MessageGroupBase, {
1451
1481
  children: [
1452
1482
  /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(AssistantAvatar, {}),
@@ -1463,10 +1493,10 @@ var StartingSkeleton = function(param) {
1463
1493
  });
1464
1494
  };
1465
1495
  // src/hooks/messages/useLatestMessage/index.ts
1466
- var import_react24 = require("react");
1496
+ var import_react26 = require("react");
1467
1497
  var useLatestMessage = function() {
1468
1498
  var props = useMessages();
1469
- return (0, import_react24.useMemo)(function() {
1499
+ return (0, import_react26.useMemo)(function() {
1470
1500
  return _object_spread_props(_object_spread({}, props), {
1471
1501
  latestMessage: props.messages[0] || null
1472
1502
  });
@@ -1485,7 +1515,7 @@ var import_jsx_runtime35 = require("react/jsx-runtime");
1485
1515
  var Progress = function() {
1486
1516
  var latestMessage = useLatestMessage().latestMessage;
1487
1517
  var isMutatingMessage = useIsMutatingMessage();
1488
- var isVisible = (0, import_react25.useMemo)(function() {
1518
+ var isVisible = (0, import_react27.useMemo)(function() {
1489
1519
  if (!latestMessage) return false;
1490
1520
  if (latestMessage.role !== "user") return false;
1491
1521
  if (latestMessage.status === "in_progress") return false;
@@ -1504,15 +1534,15 @@ var Progress = function() {
1504
1534
  // src/components/threads/Thread/Messages/Root/index.tsx
1505
1535
  var import_themes29 = require("@radix-ui/themes");
1506
1536
  // src/hooks/misc/useInfiniteScroll/index.tsx
1507
- var import_react27 = require("react");
1537
+ var import_react29 = require("react");
1508
1538
  var import_react_intersection_observer = require("react-intersection-observer");
1509
1539
  // src/hooks/misc/useThrottledEffect/index.tsx
1510
1540
  var import_lodash5 = __toESM(require("lodash"), 1);
1511
- var import_react26 = require("react");
1541
+ var import_react28 = require("react");
1512
1542
  var useThrottledEffect = function(cb, delay, additionalDeps) {
1513
1543
  var _cbRef;
1514
- var cbRef = (0, import_react26.useRef)(cb);
1515
- var throttledCb = (0, import_react26.useCallback)(import_lodash5.default.throttle(function() {
1544
+ var cbRef = (0, import_react28.useRef)(cb);
1545
+ var throttledCb = (0, import_react28.useCallback)(import_lodash5.default.throttle(function() {
1516
1546
  for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1517
1547
  args[_key] = arguments[_key];
1518
1548
  }
@@ -1523,17 +1553,17 @@ var useThrottledEffect = function(cb, delay, additionalDeps) {
1523
1553
  }), [
1524
1554
  delay
1525
1555
  ]);
1526
- (0, import_react26.useEffect)(function() {
1556
+ (0, import_react28.useEffect)(function() {
1527
1557
  cbRef.current = cb;
1528
1558
  });
1529
- (0, import_react26.useEffect)(throttledCb, [
1559
+ (0, import_react28.useEffect)(throttledCb, [
1530
1560
  throttledCb
1531
1561
  ].concat(_to_consumable_array(additionalDeps)));
1532
1562
  };
1533
1563
  // src/hooks/misc/useInfiniteScroll/index.tsx
1534
1564
  var useInfiniteScroll = function(param) {
1535
1565
  var isFetchingNextPage = param.isFetchingNextPage, hasNextPage = param.hasNextPage, fetchNextPage = param.fetchNextPage;
1536
- var containerRef = (0, import_react27.useRef)(null);
1566
+ var containerRef = (0, import_react29.useRef)(null);
1537
1567
  var _ref = (0, import_react_intersection_observer.useInView)({
1538
1568
  root: containerRef.current,
1539
1569
  rootMargin: "0px",
@@ -1559,7 +1589,7 @@ var useInfiniteScroll = function(param) {
1559
1589
  };
1560
1590
  // src/components/threads/Thread/Messages/Root/index.tsx
1561
1591
  var import_jsx_runtime36 = require("react/jsx-runtime");
1562
- var Root = function(param) {
1592
+ var Root2 = function(param) {
1563
1593
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
1564
1594
  var _useMessages = useMessages(), isFetchingNextPage = _useMessages.isFetchingNextPage, hasNextPage = _useMessages.hasNextPage, fetchNextPage = _useMessages.fetchNextPage;
1565
1595
  var _useInfiniteScroll = useInfiniteScroll({
@@ -1599,7 +1629,7 @@ var NextPageSkeleton = function() {
1599
1629
  var import_jsx_runtime38 = require("react/jsx-runtime");
1600
1630
  var Messages = function(param) {
1601
1631
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
1602
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Root, {
1632
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Root2, {
1603
1633
  style: style,
1604
1634
  children: [
1605
1635
  /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_themes30.Flex, {
@@ -1617,7 +1647,7 @@ var Messages = function(param) {
1617
1647
  ]
1618
1648
  });
1619
1649
  };
1620
- Messages.Root = Root;
1650
+ Messages.Root = Root2;
1621
1651
  Messages.Message = Message;
1622
1652
  Messages.NextPageSkeleton = NextPageSkeleton;
1623
1653
  // src/components/threads/Thread/MessageForm/index.tsx
@@ -1626,16 +1656,16 @@ var import_themes34 = require("@radix-ui/themes");
1626
1656
  var import_react_icons5 = require("@radix-ui/react-icons");
1627
1657
  var import_themes31 = require("@radix-ui/themes");
1628
1658
  // src/hooks/messages/useMessageFormContext/index.ts
1629
- var import_react29 = require("react");
1659
+ var import_react31 = require("react");
1630
1660
  // src/contexts/messages/MessageFormContext/index.ts
1631
- var import_react28 = require("react");
1632
- var MessageFormContext = (0, import_react28.createContext)({
1661
+ var import_react30 = require("react");
1662
+ var MessageFormContext = (0, import_react30.createContext)({
1633
1663
  isDisabled: false,
1634
1664
  isLoading: false
1635
1665
  });
1636
1666
  // src/hooks/messages/useMessageFormContext/index.ts
1637
1667
  var useMessageFormContext = function() {
1638
- return (0, import_react29.useContext)(MessageFormContext);
1668
+ return (0, import_react31.useContext)(MessageFormContext);
1639
1669
  };
1640
1670
  // src/components/threads/Thread/MessageForm/Submit/index.tsx
1641
1671
  var import_jsx_runtime39 = require("react/jsx-runtime");
@@ -1660,7 +1690,7 @@ var Submit = function() {
1660
1690
  };
1661
1691
  // src/components/threads/Thread/MessageForm/Root/index.tsx
1662
1692
  var import_react_query5 = require("@tanstack/react-query");
1663
- var import_react30 = require("react");
1693
+ var import_react32 = require("react");
1664
1694
  var import_react_hook_form = require("react-hook-form");
1665
1695
  var import_themes32 = require("@radix-ui/themes");
1666
1696
  // src/hooks/messages/useCreateMessage/index.ts
@@ -2283,7 +2313,7 @@ var formOptions = {
2283
2313
  };
2284
2314
  // src/components/threads/Thread/MessageForm/Root/index.tsx
2285
2315
  var import_jsx_runtime40 = require("react/jsx-runtime");
2286
- var Root2 = function(param) {
2316
+ var Root3 = function(param) {
2287
2317
  var children = param.children;
2288
2318
  var formProps = (0, import_react_hook_form.useForm)(formOptions);
2289
2319
  var handleSubmit = formProps.handleSubmit, isSubmitting = formProps.formState.isSubmitting, reset = formProps.reset;
@@ -2314,7 +2344,7 @@ var Root2 = function(param) {
2314
2344
  }
2315
2345
  }).createMessage;
2316
2346
  var isMutatingMessage = useIsMutatingMessage();
2317
- var isLoading = (0, import_react30.useMemo)(function() {
2347
+ var isLoading = (0, import_react32.useMemo)(function() {
2318
2348
  return isMutatingMessage || isSubmitting;
2319
2349
  }, [
2320
2350
  isMutatingMessage,
@@ -2346,7 +2376,7 @@ var Root2 = function(param) {
2346
2376
  };
2347
2377
  }();
2348
2378
  var latestMessage = useLatestMessage().latestMessage;
2349
- var isDisabled = (0, import_react30.useMemo)(function() {
2379
+ var isDisabled = (0, import_react32.useMemo)(function() {
2350
2380
  var // @ts-ignore-next-line
2351
2381
  _latestMessage_metadata;
2352
2382
  return latestMessage === null || latestMessage === void 0 ? void 0 : (_latestMessage_metadata = latestMessage.metadata) === null || _latestMessage_metadata === void 0 ? void 0 : _latestMessage_metadata.isBlocking;
@@ -2373,13 +2403,13 @@ var Root2 = function(param) {
2373
2403
  };
2374
2404
  // src/components/threads/Thread/MessageForm/Field/index.tsx
2375
2405
  var import_react_use = require("react-use");
2376
- var import_react32 = require("react");
2406
+ var import_react34 = require("react");
2377
2407
  // src/components/textareas/TextareaBase/index.tsx
2378
- var import_react31 = require("react");
2408
+ var import_react33 = require("react");
2379
2409
  var import_react_textarea_autosize = __toESM(require("react-textarea-autosize"), 1);
2380
2410
  var import_jsx_runtime41 = require("react/jsx-runtime");
2381
2411
  var UPSCALE_RATIO = 16 / 14;
2382
- var TextareaBase = (0, import_react31.forwardRef)(function TextareaBase2(props, ref) {
2412
+ var TextareaBase = (0, import_react33.forwardRef)(function TextareaBase2(props, ref) {
2383
2413
  return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, {
2384
2414
  children: [
2385
2415
  /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("style", {
@@ -2411,7 +2441,7 @@ var TextareaBase = (0, import_react31.forwardRef)(function TextareaBase2(props,
2411
2441
  var import_react_hook_form2 = require("react-hook-form");
2412
2442
  var import_themes33 = require("@radix-ui/themes");
2413
2443
  var import_jsx_runtime42 = require("react/jsx-runtime");
2414
- var Root3 = function(param) {
2444
+ var Root4 = function(param) {
2415
2445
  var children = param.children;
2416
2446
  var _ref = (0, import_react_hook_form2.useFormContext)(), errors = _ref.formState.errors;
2417
2447
  return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes33.Container, {
@@ -2441,19 +2471,19 @@ var Root3 = function(param) {
2441
2471
  });
2442
2472
  };
2443
2473
  var Control = function() {
2444
- var assistantNameContext = (0, import_react32.useContext)(AssistantNameContext);
2474
+ var assistantNameContext = (0, import_react34.useContext)(AssistantNameContext);
2445
2475
  var register = (0, import_react_hook_form2.useFormContext)().register;
2446
2476
  var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
2447
- var isSubmitDisabled = (0, import_react32.useMemo)(function() {
2477
+ var isSubmitDisabled = (0, import_react34.useMemo)(function() {
2448
2478
  return isDisabled || isLoading;
2449
2479
  }, [
2450
2480
  isDisabled,
2451
2481
  isLoading
2452
2482
  ]);
2453
2483
  var isDisabledPrevious = (0, import_react_use.usePrevious)(isDisabled);
2454
- var textareaRef = (0, import_react32.useRef)(null);
2484
+ var textareaRef = (0, import_react34.useRef)(null);
2455
2485
  var textareaProps = register("content");
2456
- (0, import_react32.useEffect)(function() {
2486
+ (0, import_react34.useEffect)(function() {
2457
2487
  if (isDisabled) return;
2458
2488
  if (!isDisabledPrevious) return;
2459
2489
  if (!textareaRef.current) return;
@@ -2483,13 +2513,13 @@ var Control = function() {
2483
2513
  }));
2484
2514
  };
2485
2515
  var Field = {
2486
- Root: Root3,
2516
+ Root: Root4,
2487
2517
  Control: Control
2488
2518
  };
2489
2519
  // src/components/threads/Thread/MessageForm/index.tsx
2490
2520
  var import_jsx_runtime43 = require("react/jsx-runtime");
2491
2521
  var MessageForm = function() {
2492
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Root2, {
2522
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Root3, {
2493
2523
  children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Field.Root, {
2494
2524
  children: [
2495
2525
  /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_themes34.Text, {
@@ -2512,7 +2542,7 @@ var MessageForm = function() {
2512
2542
  })
2513
2543
  });
2514
2544
  };
2515
- MessageForm.Root = Root2;
2545
+ MessageForm.Root = Root3;
2516
2546
  MessageForm.Field = Field;
2517
2547
  MessageForm.Submit = Submit;
2518
2548
  // src/components/threads/Thread/Root/index.tsx
@@ -2521,7 +2551,7 @@ var import_themes35 = require("@radix-ui/themes");
2521
2551
  var Provider2 = SuperinterfaceProvider;
2522
2552
  // src/components/threads/Thread/Root/index.tsx
2523
2553
  var import_jsx_runtime44 = require("react/jsx-runtime");
2524
- var Root4 = function(_param) {
2554
+ var Root5 = function(_param) {
2525
2555
  var children = _param.children, rest = _object_without_properties(_param, [
2526
2556
  "children"
2527
2557
  ]);
@@ -2536,40 +2566,40 @@ var Root4 = function(_param) {
2536
2566
  // src/components/threads/Thread/index.tsx
2537
2567
  var import_jsx_runtime45 = require("react/jsx-runtime");
2538
2568
  var Thread = function(props) {
2539
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Root4, _object_spread_props(_object_spread({}, props), {
2569
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Root5, _object_spread_props(_object_spread({}, props), {
2540
2570
  children: [
2541
2571
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Messages, {}),
2542
2572
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(MessageForm, {})
2543
2573
  ]
2544
2574
  }));
2545
2575
  };
2546
- Thread.Root = Root4;
2576
+ Thread.Root = Root5;
2547
2577
  Thread.Messages = Messages;
2548
2578
  Thread.MessageForm = MessageForm;
2549
2579
  // src/hooks/messages/useMessageContext/index.ts
2550
- var import_react33 = require("react");
2580
+ var import_react35 = require("react");
2551
2581
  var useMessageContext = function() {
2552
- return (0, import_react33.useContext)(MessageContext);
2582
+ return (0, import_react35.useContext)(MessageContext);
2553
2583
  };
2554
2584
  // src/components/threads/ThreadDialog/Provider/index.tsx
2555
- var import_react36 = require("react");
2585
+ var import_react38 = require("react");
2556
2586
  // src/contexts/threads/ThreadDialogContext/index.ts
2557
- var import_react34 = require("react");
2558
- var ThreadDialogContext = (0, import_react34.createContext)({
2587
+ var import_react36 = require("react");
2588
+ var ThreadDialogContext = (0, import_react36.createContext)({
2559
2589
  isOpen: false,
2560
2590
  setIsOpen: function() {}
2561
2591
  });
2562
2592
  // src/hooks/threads/useThreadDialogContext/index.ts
2563
- var import_react35 = require("react");
2593
+ var import_react37 = require("react");
2564
2594
  var useThreadDialogContext = function() {
2565
- return (0, import_react35.useContext)(ThreadDialogContext);
2595
+ return (0, import_react37.useContext)(ThreadDialogContext);
2566
2596
  };
2567
2597
  // src/components/threads/ThreadDialog/Provider/index.tsx
2568
2598
  var import_jsx_runtime46 = require("react/jsx-runtime");
2569
2599
  var Provider3 = function(param) {
2570
2600
  var children = param.children;
2571
2601
  var threadDialogContext = useThreadDialogContext();
2572
- var _ref = _sliced_to_array((0, import_react36.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
2602
+ var _ref = _sliced_to_array((0, import_react38.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
2573
2603
  return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(ThreadDialogContext.Provider, {
2574
2604
  value: {
2575
2605
  isOpen: isOpen,
@@ -2579,7 +2609,7 @@ var Provider3 = function(param) {
2579
2609
  });
2580
2610
  };
2581
2611
  // src/components/toasts/ToastsProvider/index.tsx
2582
- var import_react37 = require("react");
2612
+ var import_react39 = require("react");
2583
2613
  var Toast2 = __toESM(require("@radix-ui/react-toast"), 1);
2584
2614
  // src/components/toasts/ToastsProvider/CustomToast.tsx
2585
2615
  var Toast = __toESM(require("@radix-ui/react-toast"), 1);
@@ -2618,8 +2648,8 @@ var CustomToast = function(param) {
2618
2648
  var import_jsx_runtime48 = require("react/jsx-runtime");
2619
2649
  var ToastsProvider = function(param) {
2620
2650
  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) {
2651
+ var _ref = _sliced_to_array((0, import_react39.useState)([]), 2), toasts = _ref[0], setToasts = _ref[1];
2652
+ var addToast = (0, import_react39.useCallback)(function(toast) {
2623
2653
  return setToasts(function(prevToasts) {
2624
2654
  return _to_consumable_array(prevToasts).concat([
2625
2655
  toast
@@ -2662,7 +2692,7 @@ var ToastsProvider = function(param) {
2662
2692
  };
2663
2693
  // src/components/threads/ThreadDialog/Root/index.tsx
2664
2694
  var import_jsx_runtime49 = require("react/jsx-runtime");
2665
- var Root6 = function(param) {
2695
+ var Root7 = function(param) {
2666
2696
  var children = param.children;
2667
2697
  return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ToastsProvider, {
2668
2698
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Provider3, {
@@ -2747,7 +2777,7 @@ var Close = function() {
2747
2777
  };
2748
2778
  // src/components/threads/ThreadDialog/Content/index.tsx
2749
2779
  var import_jsx_runtime53 = require("react/jsx-runtime");
2750
- var Root7 = function(param) {
2780
+ var Root8 = function(param) {
2751
2781
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2752
2782
  var isOpen = useThreadDialogContext().isOpen;
2753
2783
  if (!isOpen) return null;
@@ -2807,7 +2837,7 @@ var Root7 = function(param) {
2807
2837
  };
2808
2838
  var Content4 = function(param) {
2809
2839
  var _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2810
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Root7, {
2840
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Root8, {
2811
2841
  style: style,
2812
2842
  children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Thread.Root, {
2813
2843
  children: [
@@ -2830,11 +2860,11 @@ var Content4 = function(param) {
2830
2860
  })
2831
2861
  });
2832
2862
  };
2833
- Content4.Root = Root7;
2863
+ Content4.Root = Root8;
2834
2864
  // src/components/threads/ThreadDialog/index.tsx
2835
2865
  var import_jsx_runtime54 = require("react/jsx-runtime");
2836
2866
  var ThreadDialog = function() {
2837
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Root6, {
2867
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Root7, {
2838
2868
  children: [
2839
2869
  /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Content4, {}),
2840
2870
  /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Trigger, {
@@ -2843,7 +2873,7 @@ var ThreadDialog = function() {
2843
2873
  ]
2844
2874
  });
2845
2875
  };
2846
- ThreadDialog.Root = Root6;
2876
+ ThreadDialog.Root = Root7;
2847
2877
  ThreadDialog.Trigger = Trigger;
2848
2878
  ThreadDialog.Button = Button2;
2849
2879
  ThreadDialog.Content = Content4;
@@ -2851,8 +2881,8 @@ ThreadDialog.Content = Content4;
2851
2881
  var import_runtime = require("regenerator-runtime/runtime");
2852
2882
  var import_themes41 = require("@radix-ui/themes");
2853
2883
  // src/contexts/threads/AudioThreadContext/index.ts
2854
- var import_react38 = require("react");
2855
- var AudioThreadContext = (0, import_react38.createContext)({
2884
+ var import_react40 = require("react");
2885
+ var AudioThreadContext = (0, import_react40.createContext)({
2856
2886
  status: "idle",
2857
2887
  recorderProps: {
2858
2888
  status: "idle",
@@ -2920,11 +2950,11 @@ var blobToData = function(blob) {
2920
2950
  });
2921
2951
  };
2922
2952
  // src/hooks/audioThreads/useStatus/index.ts
2923
- var import_react39 = require("react");
2953
+ var import_react41 = require("react");
2924
2954
  var useStatus = function(param) {
2925
2955
  var messageAudioProps = param.messageAudioProps, recorderProps = param.recorderProps, createMessageProps = param.createMessageProps;
2926
2956
  var latestMessageProps = useLatestMessage();
2927
- var status = (0, import_react39.useMemo)(function() {
2957
+ var status = (0, import_react41.useMemo)(function() {
2928
2958
  var _latestMessageProps_latestMessage;
2929
2959
  if (recorderProps.status === "recording") return "recording";
2930
2960
  if (createMessageProps.isPending) return "creatingMessage";
@@ -2948,19 +2978,19 @@ var useStatus = function(param) {
2948
2978
  // src/hooks/audioThreads/useRecorder/index.ts
2949
2979
  var import_dayjs2 = __toESM(require("dayjs"), 1);
2950
2980
  var import_use_audio_capture = require("use-audio-capture");
2951
- var import_react40 = require("react");
2981
+ var import_react42 = require("react");
2952
2982
  var import_react_use_audio_player = require("react-use-audio-player");
2953
2983
  var import_react_use2 = require("react-use");
2954
2984
  var useRecorder = function(param) {
2955
2985
  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];
2986
+ var _ref = _sliced_to_array((0, import_react42.useState)(null), 2), silenceStart = _ref[0], setSilenceStart = _ref[1];
2987
+ var _ref1 = _sliced_to_array((0, import_react42.useState)(null), 2), noiseStart = _ref1[0], setNoiseStart = _ref1[1];
2988
+ var _ref2 = _sliced_to_array((0, import_react42.useState)(null), 2), mediaStream = _ref2[0], setMediaStream = _ref2[1];
2989
+ var _ref3 = _sliced_to_array((0, import_react42.useState)("idle"), 2), status = _ref3[0], setStatus = _ref3[1];
2960
2990
  var startAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
2961
2991
  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() {
2992
+ var _ref4 = _sliced_to_array((0, import_react42.useState)(false), 2), isLoaded = _ref4[0], setIsLoaded = _ref4[1];
2993
+ (0, import_react42.useEffect)(function() {
2964
2994
  if (isLoaded) return;
2965
2995
  setIsLoaded(true);
2966
2996
  }, [
@@ -3018,9 +3048,9 @@ var useRecorder = function(param) {
3018
3048
  setNoiseStart(null);
3019
3049
  }
3020
3050
  });
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() {
3051
+ var _ref5 = _sliced_to_array((0, import_react42.useState)(null), 2), audioEngine = _ref5[0], setAudioEngine = _ref5[1];
3052
+ var isInited = (0, import_react42.useRef)(false);
3053
+ (0, import_react42.useEffect)(function() {
3024
3054
  if (!mediaStream) return;
3025
3055
  if (isInited.current) return;
3026
3056
  isInited.current = true;
@@ -3033,7 +3063,7 @@ var useRecorder = function(param) {
3033
3063
  isInited,
3034
3064
  mediaStream
3035
3065
  ]);
3036
- var visualizationAnalyser = (0, import_react40.useMemo)(function() {
3066
+ var visualizationAnalyser = (0, import_react42.useMemo)(function() {
3037
3067
  if (!audioEngine) return null;
3038
3068
  var result = audioEngine.audioContext.createAnalyser();
3039
3069
  audioEngine.source.connect(result);
@@ -3041,7 +3071,7 @@ var useRecorder = function(param) {
3041
3071
  }, [
3042
3072
  audioEngine
3043
3073
  ]);
3044
- var silenceAnalyser = (0, import_react40.useMemo)(function() {
3074
+ var silenceAnalyser = (0, import_react42.useMemo)(function() {
3045
3075
  if (!audioEngine) return null;
3046
3076
  var result = audioEngine.audioContext.createAnalyser();
3047
3077
  result.minDecibels = -60;
@@ -3050,7 +3080,7 @@ var useRecorder = function(param) {
3050
3080
  }, [
3051
3081
  audioEngine
3052
3082
  ]);
3053
- var handleSilence = (0, import_react40.useCallback)(function() {
3083
+ var handleSilence = (0, import_react42.useCallback)(function() {
3054
3084
  if (!silenceAnalyser) return;
3055
3085
  var frequencyData = new Uint8Array(silenceAnalyser.frequencyBinCount);
3056
3086
  silenceAnalyser.getByteFrequencyData(frequencyData);
@@ -3073,7 +3103,7 @@ var useRecorder = function(param) {
3073
3103
  setNoiseStart,
3074
3104
  setSilenceStart
3075
3105
  ]);
3076
- (0, import_react40.useEffect)(function() {
3106
+ (0, import_react42.useEffect)(function() {
3077
3107
  if (!isStopOnSilence) return;
3078
3108
  requestAnimationFrame(function() {
3079
3109
  return handleSilence();
@@ -3096,7 +3126,7 @@ var useRecorder = function(param) {
3096
3126
  });
3097
3127
  };
3098
3128
  // src/hooks/audioThreads/useMessageAudio/index.ts
3099
- var import_react41 = require("react");
3129
+ var import_react43 = require("react");
3100
3130
  var import_compromise = __toESM(require("compromise"), 1);
3101
3131
  var import_howler = require("howler");
3102
3132
  var import_react_use_audio_player2 = require("react-use-audio-player");
@@ -3134,15 +3164,15 @@ var getMessageSentences = function(param) {
3134
3164
  };
3135
3165
  var useMessageAudio = function(param) {
3136
3166
  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];
3167
+ var _ref = _sliced_to_array((0, import_react43.useState)(false), 2), isAudioPlayed = _ref[0], setIsAudioPlayed = _ref[1];
3168
+ var _ref1 = _sliced_to_array((0, import_react43.useState)([]), 2), stoppedMessageIds = _ref1[0], setStoppedMessageIds = _ref1[1];
3169
+ var _ref2 = _sliced_to_array((0, import_react43.useState)([]), 2), playedMessageSentences = _ref2[0], setPlayedMessageSentences = _ref2[1];
3140
3170
  var audioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
3141
3171
  var nextAudioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
3142
3172
  var superinterfaceContext = useSuperinterfaceContext();
3143
- var _ref3 = _sliced_to_array((0, import_react41.useState)(false), 2), isPlaying = _ref3[0], setIsPlaying = _ref3[1];
3173
+ var _ref3 = _sliced_to_array((0, import_react43.useState)(false), 2), isPlaying = _ref3[0], setIsPlaying = _ref3[1];
3144
3174
  var latestMessageProps = useLatestMessage();
3145
- var unplayedMessageSentences = (0, import_react41.useMemo)(function() {
3175
+ var unplayedMessageSentences = (0, import_react43.useMemo)(function() {
3146
3176
  if (!latestMessageProps.latestMessage) return [];
3147
3177
  if (latestMessageProps.latestMessage.role !== "assistant") return [];
3148
3178
  if (stoppedMessageIds.includes(latestMessageProps.latestMessage.id)) return [];
@@ -3163,7 +3193,7 @@ var useMessageAudio = function(param) {
3163
3193
  latestMessageProps,
3164
3194
  playedMessageSentences
3165
3195
  ]);
3166
- (0, import_react41.useEffect)(function() {
3196
+ (0, import_react43.useEffect)(function() {
3167
3197
  if (isPlaying) return;
3168
3198
  if (audioPlayer.playing) return;
3169
3199
  if (!latestMessageProps.latestMessage) return;
@@ -3231,7 +3261,7 @@ var useMessageAudio = function(param) {
3231
3261
  playedMessageSentences,
3232
3262
  onEnd
3233
3263
  ]);
3234
- (0, import_react41.useEffect)(function() {
3264
+ (0, import_react43.useEffect)(function() {
3235
3265
  if (isHtmlAudioSupported) {
3236
3266
  var _import_howler_Howler__howls___sounds_, _import_howler_Howler__howls_, _import_howler_Howler;
3237
3267
  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 +3270,9 @@ var useMessageAudio = function(param) {
3240
3270
  }, [
3241
3271
  audioPlayer
3242
3272
  ]);
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() {
3273
+ var _ref4 = _sliced_to_array((0, import_react43.useState)(null), 2), audioEngine = _ref4[0], setAudioEngine = _ref4[1];
3274
+ var isAudioEngineInited = (0, import_react43.useRef)(false);
3275
+ (0, import_react43.useEffect)(function() {
3246
3276
  if (!audioPlayer.playing) return;
3247
3277
  if (isAudioEngineInited.current) return;
3248
3278
  isAudioEngineInited.current = true;
@@ -3263,7 +3293,7 @@ var useMessageAudio = function(param) {
3263
3293
  audioPlayer,
3264
3294
  isAudioEngineInited
3265
3295
  ]);
3266
- var visualizationAnalyser = (0, import_react41.useMemo)(function() {
3296
+ var visualizationAnalyser = (0, import_react43.useMemo)(function() {
3267
3297
  if (!audioEngine) return null;
3268
3298
  var result = audioEngine.audioContext.createAnalyser();
3269
3299
  audioEngine.source.connect(audioEngine.audioContext.destination);
@@ -3272,7 +3302,7 @@ var useMessageAudio = function(param) {
3272
3302
  }, [
3273
3303
  audioEngine
3274
3304
  ]);
3275
- var isPending = (0, import_react41.useMemo)(function() {
3305
+ var isPending = (0, import_react43.useMemo)(function() {
3276
3306
  return isPlaying || unplayedMessageSentences.length > 0;
3277
3307
  }, [
3278
3308
  isPlaying,
@@ -3287,7 +3317,7 @@ var useMessageAudio = function(param) {
3287
3317
  };
3288
3318
  // src/components/threads/AudioThread/Root/index.tsx
3289
3319
  var import_jsx_runtime55 = require("react/jsx-runtime");
3290
- var Root8 = function(param) {
3320
+ var Root9 = function(param) {
3291
3321
  var children = param.children;
3292
3322
  var createMessageProps = useCreateMessage();
3293
3323
  var recorderProps = useRecorder({
@@ -3359,25 +3389,25 @@ var Root8 = function(param) {
3359
3389
  });
3360
3390
  };
3361
3391
  // src/components/threads/AudioThread/Visualization/index.tsx
3362
- var import_react44 = require("react");
3392
+ var import_react46 = require("react");
3363
3393
  var import_lodash9 = __toESM(require("lodash"), 1);
3364
3394
  var import_themes43 = require("@radix-ui/themes");
3365
3395
  // src/hooks/threads/useAudioThreadContext/index.ts
3366
- var import_react42 = require("react");
3396
+ var import_react44 = require("react");
3367
3397
  var useAudioThreadContext = function() {
3368
- return (0, import_react42.useContext)(AudioThreadContext);
3398
+ return (0, import_react44.useContext)(AudioThreadContext);
3369
3399
  };
3370
3400
  // src/components/threads/AudioThread/BarsVisualizer/index.tsx
3371
3401
  var import_lodash8 = __toESM(require("lodash"), 1);
3372
3402
  var import_themes42 = require("@radix-ui/themes");
3373
- var import_react43 = require("react");
3403
+ var import_react45 = require("react");
3374
3404
  var import_radash12 = require("radash");
3375
3405
  var import_jsx_runtime56 = require("react/jsx-runtime");
3376
3406
  var barCount = 4;
3377
3407
  var BarsVisualizer = function(param) {
3378
3408
  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) {
3409
+ var _ref = _sliced_to_array((0, import_react45.useState)([]), 2), barHeights = _ref[0], setBarHeights = _ref[1];
3410
+ var draw = (0, import_react45.useCallback)(function(param) {
3381
3411
  var visualizationAnalyser2 = param.visualizationAnalyser;
3382
3412
  if (!visualizationAnalyser2) {
3383
3413
  setBarHeights(Array(barCount).fill(0));
@@ -3395,7 +3425,7 @@ var BarsVisualizer = function(param) {
3395
3425
  });
3396
3426
  });
3397
3427
  }, []);
3398
- (0, import_react43.useEffect)(function() {
3428
+ (0, import_react45.useEffect)(function() {
3399
3429
  draw({
3400
3430
  visualizationAnalyser: visualizationAnalyser
3401
3431
  });
@@ -3435,9 +3465,9 @@ var BarsVisualizer = function(param) {
3435
3465
  var import_jsx_runtime57 = require("react/jsx-runtime");
3436
3466
  var Visualization = function() {
3437
3467
  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) {
3468
+ var assistantNameContext = (0, import_react46.useContext)(AssistantNameContext);
3469
+ var _ref = _sliced_to_array((0, import_react46.useState)(0), 2), scale = _ref[0], setScale = _ref[1];
3470
+ var draw = (0, import_react46.useCallback)(function(param) {
3441
3471
  var visualizationAnalyser = param.visualizationAnalyser;
3442
3472
  if (!visualizationAnalyser) {
3443
3473
  setScale(1);
@@ -3452,7 +3482,7 @@ var Visualization = function() {
3452
3482
  });
3453
3483
  });
3454
3484
  }, []);
3455
- (0, import_react44.useEffect)(function() {
3485
+ (0, import_react46.useEffect)(function() {
3456
3486
  draw({
3457
3487
  visualizationAnalyser: audioThreadContext.recorderProps.visualizationAnalyser
3458
3488
  });
@@ -3710,7 +3740,7 @@ var Form = function() {
3710
3740
  // src/components/threads/AudioThread/index.tsx
3711
3741
  var import_jsx_runtime63 = require("react/jsx-runtime");
3712
3742
  var AudioThread = function(props) {
3713
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(Root8, _object_spread_props(_object_spread({}, props), {
3743
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(Root9, _object_spread_props(_object_spread({}, props), {
3714
3744
  children: [
3715
3745
  /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Visualization, {}),
3716
3746
  /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Status, {}),
@@ -3718,13 +3748,13 @@ var AudioThread = function(props) {
3718
3748
  ]
3719
3749
  }));
3720
3750
  };
3721
- AudioThread.Root = Root8;
3751
+ AudioThread.Root = Root9;
3722
3752
  AudioThread.Visualization = Visualization;
3723
3753
  AudioThread.Form = Form;
3724
3754
  // src/components/threads/AudioThreadDialog/index.tsx
3725
3755
  var import_jsx_runtime64 = require("react/jsx-runtime");
3726
3756
  var AudioThreadDialog = function() {
3727
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(Root6, {
3757
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(Root7, {
3728
3758
  children: [
3729
3759
  /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Content4.Root, {
3730
3760
  children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(AudioThread, {})
@@ -3735,14 +3765,14 @@ var AudioThreadDialog = function() {
3735
3765
  ]
3736
3766
  });
3737
3767
  };
3738
- AudioThreadDialog.Root = Root6;
3768
+ AudioThreadDialog.Root = Root7;
3739
3769
  AudioThreadDialog.Trigger = Trigger;
3740
3770
  AudioThreadDialog.Button = Button2;
3741
3771
  AudioThreadDialog.Content = Content4;
3742
3772
  // src/components/suggestions/Suggestions/index.tsx
3743
- var import_react46 = require("react");
3773
+ var import_react48 = require("react");
3744
3774
  // src/components/suggestions/Suggestions/Content.tsx
3745
- var import_react45 = require("react");
3775
+ var import_react47 = require("react");
3746
3776
  var import_radash13 = require("radash");
3747
3777
  var import_react_children_utilities = require("react-children-utilities");
3748
3778
  var import_themes48 = require("@radix-ui/themes");
@@ -3799,7 +3829,7 @@ var import_jsx_runtime66 = require("react/jsx-runtime");
3799
3829
  var Content6 = function(param) {
3800
3830
  var children = param.children;
3801
3831
  var isMutatingMessage = useIsMutatingMessage();
3802
- var suggestions = (0, import_react45.useMemo)(function() {
3832
+ var suggestions = (0, import_react47.useMemo)(function() {
3803
3833
  return (0, import_react_children_utilities.onlyText)(children).split(/\r?\n/).filter(function(c) {
3804
3834
  return !(0, import_radash13.isEmpty)(c);
3805
3835
  }).map(function(c) {
@@ -3826,7 +3856,7 @@ var import_jsx_runtime67 = require("react/jsx-runtime");
3826
3856
  var Suggestions = function(param) {
3827
3857
  var children = param.children;
3828
3858
  var latestMessageProps = useLatestMessage();
3829
- var isDisabled = (0, import_react46.useMemo)(function() {
3859
+ var isDisabled = (0, import_react48.useMemo)(function() {
3830
3860
  var // @ts-ignore-next-line
3831
3861
  _latestMessageProps_latestMessage_metadata, _latestMessageProps_latestMessage;
3832
3862
  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;
@@ -3841,14 +3871,14 @@ var Suggestions = function(param) {
3841
3871
  };
3842
3872
  Suggestions.Item = Item;
3843
3873
  // src/components/markdown/MarkdownProvider/index.tsx
3844
- var import_react47 = require("react");
3874
+ var import_react49 = require("react");
3845
3875
  var import_jsx_runtime68 = require("react/jsx-runtime");
3846
3876
  var MarkdownProvider = function(_param) {
3847
3877
  var children = _param.children, rest = _object_without_properties(_param, [
3848
3878
  "children"
3849
3879
  ]);
3850
3880
  var prevMarkdownContext = useMarkdownContext();
3851
- var value = (0, import_react47.useMemo)(function() {
3881
+ var value = (0, import_react49.useMemo)(function() {
3852
3882
  return merge(prevMarkdownContext, rest);
3853
3883
  }, [
3854
3884
  rest,
@@ -3859,21 +3889,49 @@ var MarkdownProvider = function(_param) {
3859
3889
  children: children
3860
3890
  });
3861
3891
  };
3892
+ // src/components/components/ComponentsProvider.tsx
3893
+ var import_react51 = require("react");
3894
+ // src/hooks/components/useComponents.ts
3895
+ var import_react50 = require("react");
3896
+ var useComponents = function() {
3897
+ return (0, import_react50.useContext)(ComponentsContext);
3898
+ };
3899
+ // src/components/components/ComponentsProvider.tsx
3900
+ var import_jsx_runtime69 = require("react/jsx-runtime");
3901
+ var ComponentsProvider = function(_param) {
3902
+ var children = _param.children, rest = _object_without_properties(_param, [
3903
+ "children"
3904
+ ]);
3905
+ var prevComponents = useComponents();
3906
+ var value = (0, import_react51.useMemo)(function() {
3907
+ return merge(prevComponents, rest);
3908
+ }, [
3909
+ rest,
3910
+ prevComponents
3911
+ ]);
3912
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ComponentsContext.Provider, {
3913
+ value: value,
3914
+ children: children
3915
+ });
3916
+ };
3862
3917
  // Annotate the CommonJS export names for ESM import in node:
3863
3918
  0 && (module.exports = {
3864
3919
  AssistantAvatarContext: AssistantAvatarContext,
3865
3920
  AssistantNameContext: AssistantNameContext,
3866
3921
  AudioThread: AudioThread,
3867
3922
  AudioThreadDialog: AudioThreadDialog,
3923
+ ComponentsProvider: ComponentsProvider,
3868
3924
  FunctionBase: FunctionBase,
3869
3925
  FunctionComponentsContext: FunctionComponentsContext,
3870
3926
  MarkdownContext: MarkdownContext,
3871
3927
  MarkdownProvider: MarkdownProvider,
3928
+ RunStep: RunStep,
3872
3929
  Suggestions: Suggestions,
3873
3930
  SuperinterfaceProvider: SuperinterfaceProvider,
3874
3931
  Thread: Thread,
3875
3932
  ThreadDialog: ThreadDialog,
3876
3933
  ThreadDialogContext: ThreadDialogContext,
3934
+ useComponents: useComponents,
3877
3935
  useCreateMessage: useCreateMessage,
3878
3936
  useLatestMessage: useLatestMessage,
3879
3937
  useMarkdownContext: useMarkdownContext,