@superinterface/react 2.15.9 → 2.16.1

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
@@ -505,7 +505,7 @@ var SuperinterfaceProvider = function(param) {
505
505
  });
506
506
  };
507
507
  // src/components/threads/Thread/Messages/index.tsx
508
- var import_themes32 = require("@radix-ui/themes");
508
+ var import_themes31 = require("@radix-ui/themes");
509
509
  // src/components/threads/Thread/Messages/Content/index.tsx
510
510
  var import_react26 = require("react");
511
511
  // src/hooks/messages/useMessages/index.tsx
@@ -819,7 +819,7 @@ var useToasts = function() {
819
819
  };
820
820
  // src/components/threads/Thread/Messages/Content/MessageGroup/index.tsx
821
821
  var import_react25 = require("react");
822
- var import_themes29 = require("@radix-ui/themes");
822
+ var import_themes28 = require("@radix-ui/themes");
823
823
  // src/components/messageGroups/MessageGroupBase/AssistantAvatar.tsx
824
824
  var import_react11 = require("react");
825
825
  var import_themes5 = require("@radix-ui/themes");
@@ -878,11 +878,11 @@ var UserAvatar = function() {
878
878
  });
879
879
  };
880
880
  // src/components/threads/Thread/Messages/Content/MessageGroup/Content/index.tsx
881
- var import_themes28 = require("@radix-ui/themes");
881
+ var import_themes27 = require("@radix-ui/themes");
882
882
  // src/components/threads/Thread/Message/index.tsx
883
883
  var import_react24 = require("react");
884
884
  var import_radash3 = require("radash");
885
- var import_themes27 = require("@radix-ui/themes");
885
+ var import_themes26 = require("@radix-ui/themes");
886
886
  // src/components/skeletons/StartingContentSkeleton/index.tsx
887
887
  var import_themes8 = require("@radix-ui/themes");
888
888
  var import_jsx_runtime9 = require("react/jsx-runtime");
@@ -899,13 +899,11 @@ var StartingContentSkeleton = function() {
899
899
  });
900
900
  };
901
901
  // src/components/runSteps/RunSteps/index.tsx
902
- var import_themes17 = require("@radix-ui/themes");
902
+ var import_themes15 = require("@radix-ui/themes");
903
903
  var import_react19 = require("react");
904
904
  // src/contexts/components/ComponentsContext/index.tsx
905
905
  var import_react18 = require("react");
906
906
  // src/components/runSteps/RunStep/ToolCalls/index.tsx
907
- var import_themes16 = require("@radix-ui/themes");
908
- // src/components/runSteps/RunStep/ToolCalls/ToolCall/index.tsx
909
907
  var import_themes14 = require("@radix-ui/themes");
910
908
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/index.tsx
911
909
  var import_react17 = require("react");
@@ -922,16 +920,14 @@ var ToolCallBase = function(param) {
922
920
  return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_themes9.Flex, {
923
921
  py: "1",
924
922
  ml: "-2",
925
- children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_themes9.Popover.Trigger, {
926
- children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_themes9.Button, {
927
- size: "1",
928
- color: "gold",
929
- variant: "outline",
930
- style: {
931
- boxShadow: "none"
932
- },
933
- children: children
934
- })
923
+ children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_themes9.Button, {
924
+ size: "1",
925
+ color: "gold",
926
+ variant: "outline",
927
+ style: {
928
+ boxShadow: "none"
929
+ },
930
+ children: children
935
931
  })
936
932
  });
937
933
  };
@@ -945,10 +941,10 @@ var ToolCallTitle = function(param) {
945
941
  children: children
946
942
  });
947
943
  };
948
- // src/components/functions/FunctionBase/Icon.tsx
944
+ // src/components/toolCalls/ToolCallBase/ToolCallIcon.tsx
949
945
  var import_react_icons3 = require("@radix-ui/react-icons");
950
946
  var import_jsx_runtime12 = require("react/jsx-runtime");
951
- var Icon = function(param) {
947
+ var ToolCallIcon = function(param) {
952
948
  var runStep = param.runStep;
953
949
  if (runStep.completed_at) {
954
950
  return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_icons3.CheckCircledIcon, {});
@@ -1015,15 +1011,17 @@ var FunctionBase = function(param) {
1015
1011
  var fn = param.fn, runStep = param.runStep, title2 = param.title;
1016
1012
  return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_themes12.Popover.Root, {
1017
1013
  children: [
1018
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(ToolCallBase, {
1019
- children: [
1020
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Icon, {
1021
- runStep: runStep
1022
- }),
1023
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ToolCallTitle, {
1024
- children: title2
1025
- })
1026
- ]
1014
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_themes12.Popover.Trigger, {
1015
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(ToolCallBase, {
1016
+ children: [
1017
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ToolCallIcon, {
1018
+ runStep: runStep
1019
+ }),
1020
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ToolCallTitle, {
1021
+ children: title2
1022
+ })
1023
+ ]
1024
+ })
1027
1025
  }),
1028
1026
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_themes12.Popover.Content, {
1029
1027
  style: {
@@ -1072,55 +1070,101 @@ var Fn = function(param) {
1072
1070
  runStep: runStep
1073
1071
  });
1074
1072
  };
1075
- // src/components/runSteps/RunStep/ToolCalls/ToolCall/CodeInterpreter/index.tsx
1076
- var import_themes13 = require("@radix-ui/themes");
1073
+ // src/components/runSteps/RunStep/ToolCalls/ToolCall/CodeInterpreter.tsx
1077
1074
  var import_jsx_runtime17 = require("react/jsx-runtime");
1078
1075
  var CodeInterpreter = function(param) {
1079
- var codeInterpreter = param.codeInterpreter;
1080
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_themes13.Flex, {
1081
- children: codeInterpreter.input
1076
+ var runStep = param.runStep, toolCall = param.toolCall;
1077
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(ToolCallBase, {
1078
+ children: [
1079
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ToolCallIcon, {
1080
+ runStep: runStep
1081
+ }),
1082
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ToolCallTitle, {
1083
+ children: "Using code interpreter"
1084
+ })
1085
+ ]
1082
1086
  });
1083
1087
  };
1084
- // src/components/runSteps/RunStep/ToolCalls/ToolCall/index.tsx
1088
+ // src/components/runSteps/RunStep/ToolCalls/ToolCall/FileSearch.tsx
1085
1089
  var import_jsx_runtime18 = require("react/jsx-runtime");
1090
+ var FileSearch = function(param) {
1091
+ var runStep = param.runStep, toolCall = param.toolCall;
1092
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(ToolCallBase, {
1093
+ children: [
1094
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ToolCallIcon, {
1095
+ runStep: runStep
1096
+ }),
1097
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ToolCallTitle, {
1098
+ children: "Searching files"
1099
+ })
1100
+ ]
1101
+ });
1102
+ };
1103
+ // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fallback.tsx
1104
+ var import_jsx_runtime19 = require("react/jsx-runtime");
1105
+ var Fallback = function(param) {
1106
+ var runStep = param.runStep, toolCall = param.toolCall;
1107
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(ToolCallBase, {
1108
+ children: [
1109
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ToolCallIcon, {
1110
+ runStep: runStep
1111
+ }),
1112
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(ToolCallTitle, {
1113
+ children: [
1114
+ "Using tool: ",
1115
+ toolCall.type
1116
+ ]
1117
+ })
1118
+ ]
1119
+ });
1120
+ };
1121
+ // src/components/runSteps/RunStep/ToolCalls/ToolCall/index.tsx
1122
+ var import_jsx_runtime20 = require("react/jsx-runtime");
1086
1123
  var ToolCall = function(param) {
1087
1124
  var toolCall = param.toolCall, runStep = param.runStep;
1088
1125
  if (toolCall.type === "function") {
1089
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Fn, {
1126
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Fn, {
1090
1127
  fn: toolCall.function,
1091
1128
  runStep: runStep
1092
1129
  });
1093
1130
  }
1094
1131
  if (toolCall.type === "code_interpreter") {
1095
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(CodeInterpreter, {
1096
- codeInterpreter: toolCall.code_interpreter,
1132
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(CodeInterpreter, {
1133
+ toolCall: toolCall,
1134
+ runStep: runStep
1135
+ });
1136
+ }
1137
+ if (toolCall.type === "file_search") {
1138
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(FileSearch, {
1139
+ toolCall: toolCall,
1097
1140
  runStep: runStep
1098
1141
  });
1099
1142
  }
1100
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_themes14.Flex, {
1101
- children: toolCall.type
1143
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Fallback, {
1144
+ toolCall: toolCall,
1145
+ runStep: runStep
1102
1146
  });
1103
1147
  };
1104
1148
  // src/components/runSteps/RunStep/ToolCalls/Starting/index.tsx
1105
- var import_themes15 = require("@radix-ui/themes");
1149
+ var import_themes13 = require("@radix-ui/themes");
1106
1150
  var import_react_icons4 = require("@radix-ui/react-icons");
1107
- var import_jsx_runtime19 = require("react/jsx-runtime");
1151
+ var import_jsx_runtime21 = require("react/jsx-runtime");
1108
1152
  var Starting = function() {
1109
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_themes15.Popover.Root, {
1153
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_themes13.Popover.Root, {
1110
1154
  children: [
1111
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(ToolCallBase, {
1155
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(ToolCallBase, {
1112
1156
  children: [
1113
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_icons4.CircleIcon, {}),
1114
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ToolCallTitle, {
1157
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_icons4.CircleIcon, {}),
1158
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ToolCallTitle, {
1115
1159
  children: "Starting actions"
1116
1160
  })
1117
1161
  ]
1118
1162
  }),
1119
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_themes15.Popover.Content, {
1163
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_themes13.Popover.Content, {
1120
1164
  style: {
1121
1165
  maxHeight: "500px"
1122
1166
  },
1123
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_themes15.Text, {
1167
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_themes13.Text, {
1124
1168
  children: "Getting ready to connect to domain API"
1125
1169
  })
1126
1170
  })
@@ -1128,21 +1172,21 @@ var Starting = function() {
1128
1172
  });
1129
1173
  };
1130
1174
  // src/components/runSteps/RunStep/ToolCalls/index.tsx
1131
- var import_jsx_runtime20 = require("react/jsx-runtime");
1175
+ var import_jsx_runtime22 = require("react/jsx-runtime");
1132
1176
  var Root = function(param) {
1133
1177
  var children = param.children;
1134
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_themes16.Flex, {
1178
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_themes14.Flex, {
1135
1179
  direction: "column",
1136
1180
  children: children
1137
1181
  });
1138
1182
  };
1139
1183
  var ToolCalls = function(param) {
1140
1184
  var stepDetails = param.stepDetails, runStep = param.runStep;
1141
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Root, {
1185
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Root, {
1142
1186
  children: [
1143
- !stepDetails.tool_calls.length && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Starting, {}),
1187
+ !stepDetails.tool_calls.length && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Starting, {}),
1144
1188
  stepDetails.tool_calls.map(function(toolCall) {
1145
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ToolCall, {
1189
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ToolCall, {
1146
1190
  toolCall: toolCall,
1147
1191
  runStep: runStep
1148
1192
  }, toolCall.id);
@@ -1154,11 +1198,11 @@ ToolCalls.Root = Root;
1154
1198
  ToolCalls.Starting = Starting;
1155
1199
  ToolCalls.ToolCall = ToolCall;
1156
1200
  // src/components/runSteps/RunStep/index.tsx
1157
- var import_jsx_runtime21 = require("react/jsx-runtime");
1201
+ var import_jsx_runtime23 = require("react/jsx-runtime");
1158
1202
  var RunStep = function(param) {
1159
1203
  var runStep = param.runStep;
1160
1204
  if (runStep.step_details.type === "tool_calls") {
1161
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ToolCalls, {
1205
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ToolCalls, {
1162
1206
  stepDetails: runStep.step_details,
1163
1207
  runStep: runStep
1164
1208
  });
@@ -1173,15 +1217,15 @@ var ComponentsContext = (0, import_react18.createContext)({
1173
1217
  }
1174
1218
  });
1175
1219
  // src/components/runSteps/RunSteps/index.tsx
1176
- var import_jsx_runtime22 = require("react/jsx-runtime");
1220
+ var import_jsx_runtime24 = require("react/jsx-runtime");
1177
1221
  var RunSteps = function(param) {
1178
1222
  var runSteps = param.runSteps;
1179
1223
  var componentsContext = (0, import_react19.useContext)(ComponentsContext);
1180
1224
  var Component = componentsContext.components.RunStep;
1181
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_themes17.Flex, {
1225
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_themes15.Flex, {
1182
1226
  direction: "column-reverse",
1183
1227
  children: runSteps.map(function(runStep) {
1184
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Component, {
1228
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Component, {
1185
1229
  runStep: runStep
1186
1230
  }, runStep.id);
1187
1231
  })
@@ -1219,13 +1263,13 @@ var import_react23 = require("react");
1219
1263
  // src/contexts/markdown/MarkdownContext/index.ts
1220
1264
  var import_react22 = require("react");
1221
1265
  // src/contexts/markdown/MarkdownContext/lib/components/Paragraph.tsx
1222
- var import_themes18 = require("@radix-ui/themes");
1223
- var import_jsx_runtime23 = require("react/jsx-runtime");
1266
+ var import_themes16 = require("@radix-ui/themes");
1267
+ var import_jsx_runtime25 = require("react/jsx-runtime");
1224
1268
  var Paragraph = function(param) {
1225
1269
  var children = param.children;
1226
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_themes18.Box, {
1270
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_themes16.Box, {
1227
1271
  pb: "3",
1228
- children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_themes18.Text, {
1272
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_themes16.Text, {
1229
1273
  size: "3",
1230
1274
  style: {
1231
1275
  whiteSpace: "pre-line",
@@ -1236,24 +1280,24 @@ var Paragraph = function(param) {
1236
1280
  });
1237
1281
  };
1238
1282
  // src/contexts/markdown/MarkdownContext/lib/components/Link.tsx
1239
- var import_themes19 = require("@radix-ui/themes");
1240
- var import_jsx_runtime24 = require("react/jsx-runtime");
1283
+ var import_themes17 = require("@radix-ui/themes");
1284
+ var import_jsx_runtime26 = require("react/jsx-runtime");
1241
1285
  var Link = function(param) {
1242
1286
  var children = param.children, href = param.href;
1243
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_themes19.Link, {
1287
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_themes17.Link, {
1244
1288
  href: href,
1245
1289
  children: children
1246
1290
  });
1247
1291
  };
1248
1292
  // src/contexts/markdown/MarkdownContext/lib/components/UnorderedList.tsx
1249
- var import_themes20 = require("@radix-ui/themes");
1250
- var import_jsx_runtime25 = require("react/jsx-runtime");
1293
+ var import_themes18 = require("@radix-ui/themes");
1294
+ var import_jsx_runtime27 = require("react/jsx-runtime");
1251
1295
  var UnorderedList = function(param) {
1252
1296
  var children = param.children;
1253
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_themes20.Box, {
1297
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_themes18.Box, {
1254
1298
  pb: "3",
1255
1299
  asChild: true,
1256
- children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("ul", {
1300
+ children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("ul", {
1257
1301
  style: {
1258
1302
  listStylePosition: "inside"
1259
1303
  },
@@ -1262,14 +1306,14 @@ var UnorderedList = function(param) {
1262
1306
  });
1263
1307
  };
1264
1308
  // src/contexts/markdown/MarkdownContext/lib/components/OrderedList.tsx
1265
- var import_themes21 = require("@radix-ui/themes");
1266
- var import_jsx_runtime26 = require("react/jsx-runtime");
1309
+ var import_themes19 = require("@radix-ui/themes");
1310
+ var import_jsx_runtime28 = require("react/jsx-runtime");
1267
1311
  var OrderedList = function(param) {
1268
1312
  var children = param.children;
1269
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_themes21.Box, {
1313
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_themes19.Box, {
1270
1314
  pb: "3",
1271
1315
  asChild: true,
1272
- children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("ol", {
1316
+ children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("ol", {
1273
1317
  style: {
1274
1318
  listStylePosition: "inside"
1275
1319
  },
@@ -1278,32 +1322,32 @@ var OrderedList = function(param) {
1278
1322
  });
1279
1323
  };
1280
1324
  // src/contexts/markdown/MarkdownContext/lib/components/ListItem.tsx
1281
- var import_themes22 = require("@radix-ui/themes");
1282
- var import_jsx_runtime27 = require("react/jsx-runtime");
1325
+ var import_themes20 = require("@radix-ui/themes");
1326
+ var import_jsx_runtime29 = require("react/jsx-runtime");
1283
1327
  var ListItem = function(param) {
1284
1328
  var children = param.children;
1285
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_themes22.Box, {
1329
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_themes20.Box, {
1286
1330
  pb: "1",
1287
- children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("li", {
1331
+ children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("li", {
1288
1332
  children: children
1289
1333
  })
1290
1334
  });
1291
1335
  };
1292
1336
  // src/contexts/markdown/MarkdownContext/lib/components/Strong.tsx
1293
- var import_themes23 = require("@radix-ui/themes");
1294
- var import_jsx_runtime28 = require("react/jsx-runtime");
1337
+ var import_themes21 = require("@radix-ui/themes");
1338
+ var import_jsx_runtime30 = require("react/jsx-runtime");
1295
1339
  var Strong = function(param) {
1296
1340
  var children = param.children;
1297
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_themes23.Strong, {
1341
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_themes21.Strong, {
1298
1342
  children: children
1299
1343
  });
1300
1344
  };
1301
1345
  // src/contexts/markdown/MarkdownContext/lib/components/Pre.tsx
1302
- var import_themes24 = require("@radix-ui/themes");
1303
- var import_jsx_runtime29 = require("react/jsx-runtime");
1346
+ var import_themes22 = require("@radix-ui/themes");
1347
+ var import_jsx_runtime31 = require("react/jsx-runtime");
1304
1348
  var Pre = function(param) {
1305
1349
  var children = param.children;
1306
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_themes24.Box, {
1350
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_themes22.Box, {
1307
1351
  style: {
1308
1352
  whiteSpace: "pre-wrap",
1309
1353
  wordBreak: "break-word"
@@ -1312,21 +1356,21 @@ var Pre = function(param) {
1312
1356
  });
1313
1357
  };
1314
1358
  // src/contexts/markdown/MarkdownContext/lib/components/Code.tsx
1315
- var import_themes25 = require("@radix-ui/themes");
1316
- var import_jsx_runtime30 = require("react/jsx-runtime");
1359
+ var import_themes23 = require("@radix-ui/themes");
1360
+ var import_jsx_runtime32 = require("react/jsx-runtime");
1317
1361
  var Code2 = function(param) {
1318
1362
  var children = param.children;
1319
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_themes25.Code, {
1363
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_themes23.Code, {
1320
1364
  children: children
1321
1365
  });
1322
1366
  };
1323
1367
  // src/contexts/markdown/MarkdownContext/lib/components/Img.tsx
1324
- var import_themes26 = require("@radix-ui/themes");
1325
- var import_jsx_runtime31 = require("react/jsx-runtime");
1368
+ var import_themes24 = require("@radix-ui/themes");
1369
+ var import_jsx_runtime33 = require("react/jsx-runtime");
1326
1370
  var Img = function(props) {
1327
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_themes26.Box, {
1371
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_themes24.Box, {
1328
1372
  pb: "3",
1329
- children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("img", _object_spread_props(_object_spread({}, props), {
1373
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("img", _object_spread_props(_object_spread({}, props), {
1330
1374
  style: {
1331
1375
  maxWidth: "100%",
1332
1376
  height: "auto"
@@ -1348,26 +1392,46 @@ var components = {
1348
1392
  };
1349
1393
  // src/contexts/markdown/MarkdownContext/index.ts
1350
1394
  var MarkdownContext = (0, import_react22.createContext)({
1351
- remarkPlugins: [],
1352
- rehypeReactOptions: {
1353
- components: components
1354
- }
1395
+ components: components
1355
1396
  });
1356
1397
  // src/hooks/markdown/useMarkdownContext/index.ts
1357
1398
  var useMarkdownContext = function() {
1358
1399
  return (0, import_react23.useContext)(MarkdownContext);
1359
1400
  };
1360
1401
  // src/components/threads/Thread/Message/TextContent.tsx
1361
- var import_jsx_runtime32 = require("react/jsx-runtime");
1402
+ var import_jsx_runtime34 = require("react/jsx-runtime");
1362
1403
  var TextContent = function(param) {
1363
1404
  var content = param.content;
1364
1405
  var markdownContext = useMarkdownContext();
1365
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_markdown.default, _object_spread_props(_object_spread({}, markdownContext), {
1406
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_react_markdown.default, _object_spread_props(_object_spread({}, markdownContext), {
1366
1407
  children: content.text.value
1367
1408
  }));
1368
1409
  };
1410
+ // src/components/threads/Thread/Message/Attachments/index.tsx
1411
+ var import_themes25 = require("@radix-ui/themes");
1412
+ var import_react_icons5 = require("@radix-ui/react-icons");
1413
+ var import_jsx_runtime35 = require("react/jsx-runtime");
1414
+ var Attachments = function(param) {
1415
+ var message = param.message;
1416
+ var _message_attachments;
1417
+ if (!((_message_attachments = message.attachments) === null || _message_attachments === void 0 ? void 0 : _message_attachments.length)) return null;
1418
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_themes25.Flex, {
1419
+ align: "start",
1420
+ pb: "1",
1421
+ children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_themes25.Badge, {
1422
+ color: "gray",
1423
+ variant: "surface",
1424
+ children: [
1425
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_icons5.FileIcon, {}),
1426
+ message.attachments.length,
1427
+ " file",
1428
+ message.attachments.length > 1 ? "s" : ""
1429
+ ]
1430
+ })
1431
+ });
1432
+ };
1369
1433
  // src/components/threads/Thread/Message/index.tsx
1370
- var import_jsx_runtime33 = require("react/jsx-runtime");
1434
+ var import_jsx_runtime36 = require("react/jsx-runtime");
1371
1435
  var Message = function(param) {
1372
1436
  var message = param.message;
1373
1437
  var _ref = _sliced_to_array((0, import_react24.useMemo)(function() {
@@ -1412,65 +1476,68 @@ var Message = function(param) {
1412
1476
  }, [
1413
1477
  message
1414
1478
  ]);
1415
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Provider, {
1479
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Provider, {
1416
1480
  value: {
1417
1481
  message: message
1418
1482
  },
1419
- children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_themes27.Box, {
1483
+ children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_themes26.Box, {
1420
1484
  children: [
1421
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(RunSteps, {
1485
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(RunSteps, {
1422
1486
  runSteps: olderRunSteps
1423
1487
  }),
1424
- /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_themes27.Box, {
1488
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_themes26.Box, {
1425
1489
  children: [
1490
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Attachments, {
1491
+ message: message
1492
+ }),
1426
1493
  message.content.map(function(content, index) {
1427
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react24.Fragment, {
1428
- children: content.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(TextContent, {
1494
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react24.Fragment, {
1495
+ children: content.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(TextContent, {
1429
1496
  content: content
1430
1497
  })
1431
1498
  }, index);
1432
1499
  }),
1433
- isInProgress && (0, import_radash3.isEmpty)(laterRunSteps) && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(StartingContentSkeleton, {})
1500
+ isInProgress && (0, import_radash3.isEmpty)(laterRunSteps) && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(StartingContentSkeleton, {})
1434
1501
  ]
1435
1502
  }),
1436
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(RunSteps, {
1503
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(RunSteps, {
1437
1504
  runSteps: laterRunSteps
1438
1505
  }),
1439
- isInProgress && !(0, import_radash3.isEmpty)(laterRunSteps) && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_themes27.Box, {
1440
- children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(StartingContentSkeleton, {})
1506
+ isInProgress && !(0, import_radash3.isEmpty)(laterRunSteps) && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_themes26.Box, {
1507
+ children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(StartingContentSkeleton, {})
1441
1508
  })
1442
1509
  ]
1443
1510
  })
1444
1511
  });
1445
1512
  };
1446
1513
  // src/components/threads/Thread/Messages/Content/MessageGroup/Content/index.tsx
1447
- var import_jsx_runtime34 = require("react/jsx-runtime");
1514
+ var import_jsx_runtime37 = require("react/jsx-runtime");
1448
1515
  var Content2 = function(param) {
1449
1516
  var messageGroup = param.messageGroup;
1450
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_themes28.Flex, {
1517
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_themes27.Flex, {
1451
1518
  direction: "column-reverse",
1452
1519
  children: messageGroup.messages.map(function(message) {
1453
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Message, {
1520
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Message, {
1454
1521
  message: message
1455
1522
  }, message.id);
1456
1523
  })
1457
1524
  });
1458
1525
  };
1459
1526
  // src/components/threads/Thread/Messages/Content/MessageGroup/index.tsx
1460
- var import_jsx_runtime35 = require("react/jsx-runtime");
1527
+ var import_jsx_runtime38 = require("react/jsx-runtime");
1461
1528
  var MessageGroup = function(param) {
1462
1529
  var messageGroup = param.messageGroup;
1463
1530
  var assistantNameContext = (0, import_react25.useContext)(AssistantNameContext);
1464
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(MessageGroupBase, {
1531
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(MessageGroupBase, {
1465
1532
  children: [
1466
- messageGroup.role === "user" ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(UserAvatar, {}) : /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(AssistantAvatar, {}),
1467
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_themes29.Box, {
1533
+ messageGroup.role === "user" ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(UserAvatar, {}) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(AssistantAvatar, {}),
1534
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_themes28.Box, {
1468
1535
  flexGrow: "1",
1469
1536
  children: [
1470
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Name, {
1537
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Name, {
1471
1538
  children: messageGroup.role === "user" ? "You" : assistantNameContext
1472
1539
  }),
1473
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Content2, {
1540
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Content2, {
1474
1541
  messageGroup: messageGroup
1475
1542
  })
1476
1543
  ]
@@ -1479,7 +1546,7 @@ var MessageGroup = function(param) {
1479
1546
  });
1480
1547
  };
1481
1548
  // src/components/threads/Thread/Messages/Content/index.tsx
1482
- var import_jsx_runtime36 = require("react/jsx-runtime");
1549
+ var import_jsx_runtime39 = require("react/jsx-runtime");
1483
1550
  var Content3 = function() {
1484
1551
  var _useMessages = useMessages(), messages2 = _useMessages.messages, isLoading = _useMessages.isLoading, isLoadingError = _useMessages.isLoadingError;
1485
1552
  var addToast = useToasts().addToast;
@@ -1498,11 +1565,11 @@ var Content3 = function() {
1498
1565
  addToast
1499
1566
  ]);
1500
1567
  if (isLoading || isLoadingError) {
1501
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(MessagesSkeleton, {});
1568
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(MessagesSkeleton, {});
1502
1569
  }
1503
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_jsx_runtime36.Fragment, {
1570
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_jsx_runtime39.Fragment, {
1504
1571
  children: messageGroups2.map(function(messageGroup) {
1505
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(MessageGroup, {
1572
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(MessageGroup, {
1506
1573
  messageGroup: messageGroup
1507
1574
  }, messageGroup.id);
1508
1575
  })
@@ -1512,21 +1579,21 @@ var Content3 = function() {
1512
1579
  var import_react29 = require("react");
1513
1580
  // src/components/skeletons/StartingSkeleton/index.tsx
1514
1581
  var import_react27 = require("react");
1515
- var import_themes30 = require("@radix-ui/themes");
1516
- var import_jsx_runtime37 = require("react/jsx-runtime");
1582
+ var import_themes29 = require("@radix-ui/themes");
1583
+ var import_jsx_runtime40 = require("react/jsx-runtime");
1517
1584
  var StartingSkeleton = function(param) {
1518
1585
  var children = param.children;
1519
1586
  var assistantNameContext = (0, import_react27.useContext)(AssistantNameContext);
1520
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(MessageGroupBase, {
1587
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(MessageGroupBase, {
1521
1588
  children: [
1522
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(AssistantAvatar, {}),
1523
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_themes30.Box, {
1589
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(AssistantAvatar, {}),
1590
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_themes29.Box, {
1524
1591
  children: [
1525
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Name, {
1592
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Name, {
1526
1593
  children: assistantNameContext
1527
1594
  }),
1528
1595
  children,
1529
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(StartingContentSkeleton, {})
1596
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(StartingContentSkeleton, {})
1530
1597
  ]
1531
1598
  })
1532
1599
  ]
@@ -1551,7 +1618,7 @@ var isOptimistic = function(param) {
1551
1618
  return import_lodash4.default.startsWith(id, "-");
1552
1619
  };
1553
1620
  // src/components/threads/Thread/Messages/Progress/index.tsx
1554
- var import_jsx_runtime38 = require("react/jsx-runtime");
1621
+ var import_jsx_runtime41 = require("react/jsx-runtime");
1555
1622
  var Progress = function() {
1556
1623
  var latestMessage = useLatestMessage().latestMessage;
1557
1624
  var isMutatingMessage = useIsMutatingMessage();
@@ -1569,10 +1636,10 @@ var Progress = function() {
1569
1636
  isMutatingMessage
1570
1637
  ]);
1571
1638
  if (!isVisible) return null;
1572
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(StartingSkeleton, {});
1639
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(StartingSkeleton, {});
1573
1640
  };
1574
1641
  // src/components/threads/Thread/Messages/Root/index.tsx
1575
- var import_themes31 = require("@radix-ui/themes");
1642
+ var import_themes30 = require("@radix-ui/themes");
1576
1643
  // src/hooks/misc/useInfiniteScroll/index.tsx
1577
1644
  var import_react31 = require("react");
1578
1645
  var import_react_intersection_observer = require("react-intersection-observer");
@@ -1628,7 +1695,7 @@ var useInfiniteScroll = function(param) {
1628
1695
  };
1629
1696
  };
1630
1697
  // src/components/threads/Thread/Messages/Root/index.tsx
1631
- var import_jsx_runtime39 = require("react/jsx-runtime");
1698
+ var import_jsx_runtime42 = require("react/jsx-runtime");
1632
1699
  var Root2 = function(param) {
1633
1700
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
1634
1701
  var _useMessages = useMessages(), isFetchingNextPage = _useMessages.isFetchingNextPage, hasNextPage = _useMessages.hasNextPage, fetchNextPage = _useMessages.fetchNextPage;
@@ -1637,7 +1704,7 @@ var Root2 = function(param) {
1637
1704
  hasNextPage: hasNextPage,
1638
1705
  fetchNextPage: fetchNextPage
1639
1706
  }), containerRef = _useInfiniteScroll.containerRef, loaderRef = _useInfiniteScroll.loaderRef;
1640
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_themes31.Flex, {
1707
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_themes30.Flex, {
1641
1708
  ref: containerRef,
1642
1709
  direction: "column-reverse",
1643
1710
  flexGrow: "1",
@@ -1646,10 +1713,10 @@ var Root2 = function(param) {
1646
1713
  }),
1647
1714
  children: [
1648
1715
  children,
1649
- hasNextPage && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_themes31.Flex, {
1716
+ hasNextPage && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes30.Flex, {
1650
1717
  ref: loaderRef
1651
1718
  }),
1652
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_themes31.Flex, {
1719
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes30.Flex, {
1653
1720
  flexShrink: "0",
1654
1721
  flexGrow: "1"
1655
1722
  })
@@ -1657,30 +1724,30 @@ var Root2 = function(param) {
1657
1724
  });
1658
1725
  };
1659
1726
  // src/components/threads/Thread/Messages/NextPageSkeleton.tsx
1660
- var import_jsx_runtime40 = require("react/jsx-runtime");
1727
+ var import_jsx_runtime43 = require("react/jsx-runtime");
1661
1728
  var NextPageSkeleton = function() {
1662
1729
  var hasNextPage = useMessages().hasNextPage;
1663
1730
  if (!hasNextPage) {
1664
1731
  return null;
1665
1732
  }
1666
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(MessagesSkeleton, {});
1733
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(MessagesSkeleton, {});
1667
1734
  };
1668
1735
  // src/components/threads/Thread/Messages/index.tsx
1669
- var import_jsx_runtime41 = require("react/jsx-runtime");
1736
+ var import_jsx_runtime44 = require("react/jsx-runtime");
1670
1737
  var Messages = function(param) {
1671
1738
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
1672
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Root2, {
1739
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Root2, {
1673
1740
  style: style,
1674
1741
  children: [
1675
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes32.Flex, {
1742
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_themes31.Flex, {
1676
1743
  flexShrink: "0",
1677
1744
  height: "var(--space-3)"
1678
1745
  }),
1679
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Progress, {}),
1746
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Progress, {}),
1680
1747
  children,
1681
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Content3, {}),
1682
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(NextPageSkeleton, {}),
1683
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes32.Flex, {
1748
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Content3, {}),
1749
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(NextPageSkeleton, {}),
1750
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_themes31.Flex, {
1684
1751
  flexShrink: "0",
1685
1752
  flexGrow: "1"
1686
1753
  })
@@ -1690,49 +1757,65 @@ var Messages = function(param) {
1690
1757
  Messages.Root = Root2;
1691
1758
  Messages.Message = Message;
1692
1759
  Messages.NextPageSkeleton = NextPageSkeleton;
1693
- // src/components/threads/Thread/MessageForm/index.tsx
1694
- var import_themes36 = require("@radix-ui/themes");
1695
1760
  // src/components/threads/Thread/MessageForm/Submit/index.tsx
1696
- var import_react_icons5 = require("@radix-ui/react-icons");
1697
- var import_themes33 = require("@radix-ui/themes");
1761
+ var import_react_icons6 = require("@radix-ui/react-icons");
1762
+ var import_themes32 = require("@radix-ui/themes");
1698
1763
  // src/hooks/messages/useMessageFormContext/index.ts
1699
1764
  var import_react33 = require("react");
1700
1765
  // src/contexts/messages/MessageFormContext/index.ts
1701
1766
  var import_react32 = require("react");
1702
1767
  var MessageFormContext = (0, import_react32.createContext)({
1703
1768
  isDisabled: false,
1704
- isLoading: false
1769
+ isLoading: false,
1770
+ files: [],
1771
+ setFiles: function() {},
1772
+ isFileLoading: false
1705
1773
  });
1706
1774
  // src/hooks/messages/useMessageFormContext/index.ts
1707
1775
  var useMessageFormContext = function() {
1708
1776
  return (0, import_react33.useContext)(MessageFormContext);
1709
1777
  };
1710
1778
  // src/components/threads/Thread/MessageForm/Submit/index.tsx
1711
- var import_jsx_runtime42 = require("react/jsx-runtime");
1712
- var Submit = function() {
1779
+ var import_jsx_runtime45 = require("react/jsx-runtime");
1780
+ var Root3 = function(param) {
1781
+ var children = param.children;
1782
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_themes32.Flex, {
1783
+ flexShrink: "0",
1784
+ align: "end",
1785
+ children: children
1786
+ });
1787
+ };
1788
+ var Button2 = function() {
1713
1789
  var superinterfaceContext = useSuperinterfaceContext();
1714
- var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
1790
+ var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading, isFileLoading = _useMessageFormContext.isFileLoading;
1715
1791
  if (isLoading) {
1716
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes33.IconButton, {
1792
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_themes32.IconButton, {
1717
1793
  type: "button",
1718
1794
  onClick: function() {
1719
1795
  var _superinterfaceContext_createMessageAbortControllerRef_current;
1720
1796
  return (_superinterfaceContext_createMessageAbortControllerRef_current = superinterfaceContext.createMessageAbortControllerRef.current) === null || _superinterfaceContext_createMessageAbortControllerRef_current === void 0 ? void 0 : _superinterfaceContext_createMessageAbortControllerRef_current.abort();
1721
1797
  },
1722
- children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_react_icons5.StopIcon, {})
1798
+ children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_react_icons6.StopIcon, {})
1723
1799
  });
1724
1800
  }
1725
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes33.IconButton, {
1801
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_themes32.IconButton, {
1726
1802
  type: "submit",
1727
- disabled: isDisabled,
1728
- children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_react_icons5.ArrowUpIcon, {})
1803
+ disabled: isDisabled || isFileLoading,
1804
+ children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_react_icons6.ArrowUpIcon, {})
1805
+ });
1806
+ };
1807
+ var Submit = function() {
1808
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Root3, {
1809
+ children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Button2, {})
1729
1810
  });
1730
1811
  };
1812
+ Submit.Root = Root3;
1813
+ Submit.Button = Button2;
1731
1814
  // src/components/threads/Thread/MessageForm/Root/index.tsx
1732
1815
  var import_react_query5 = require("@tanstack/react-query");
1733
1816
  var import_react34 = require("react");
1734
1817
  var import_react_hook_form = require("react-hook-form");
1735
- var import_themes34 = require("@radix-ui/themes");
1818
+ var import_themes33 = require("@radix-ui/themes");
1736
1819
  // src/hooks/messages/useCreateMessage/index.ts
1737
1820
  var import_radash11 = require("radash");
1738
1821
  var import_react_query4 = require("@tanstack/react-query");
@@ -1749,6 +1832,7 @@ var optimisticId = function() {
1749
1832
  var data = function(param) {
1750
1833
  var newMessage = param.newMessage;
1751
1834
  return function(prevData) {
1835
+ var _newMessage_attachments;
1752
1836
  var message = {
1753
1837
  id: optimisticId(),
1754
1838
  role: "user",
@@ -1766,7 +1850,7 @@ var data = function(param) {
1766
1850
  run_id: null,
1767
1851
  assistant_id: null,
1768
1852
  thread_id: null,
1769
- attachments: [],
1853
+ attachments: (_newMessage_attachments = newMessage.attachments) !== null && _newMessage_attachments !== void 0 ? _newMessage_attachments : [],
1770
1854
  metadata: {},
1771
1855
  runSteps: []
1772
1856
  };
@@ -1808,7 +1892,8 @@ var onMutate = function(param) {
1808
1892
  queryKey = [
1809
1893
  "messages",
1810
1894
  (0, import_radash5.omit)(newMessage, [
1811
- "content"
1895
+ "content",
1896
+ "attachments"
1812
1897
  ])
1813
1898
  ];
1814
1899
  return [
@@ -2353,9 +2438,10 @@ var formOptions = {
2353
2438
  };
2354
2439
  // src/components/threads/Thread/MessageForm/Root/index.tsx
2355
2440
  var import_radash12 = require("radash");
2356
- var import_jsx_runtime43 = require("react/jsx-runtime");
2357
- var Root3 = function(param) {
2441
+ var import_jsx_runtime46 = require("react/jsx-runtime");
2442
+ var Root4 = function(param) {
2358
2443
  var children = param.children, onSubmitArg = param.onSubmit;
2444
+ var _ref = _sliced_to_array((0, import_react34.useState)([]), 2), files = _ref[0], setFiles = _ref[1];
2359
2445
  var formProps = (0, import_react_hook_form.useForm)(formOptions);
2360
2446
  var handleSubmit = formProps.handleSubmit, isSubmitting = formProps.formState.isSubmitting, reset = formProps.reset;
2361
2447
  var addToast = useToasts().addToast;
@@ -2385,27 +2471,69 @@ var Root3 = function(param) {
2385
2471
  }
2386
2472
  }).createMessage;
2387
2473
  var isMutatingMessage = useIsMutatingMessage();
2474
+ var isFileLoading = (0, import_react34.useMemo)(function() {
2475
+ return files.some(function(file) {
2476
+ return isOptimistic({
2477
+ id: file.id
2478
+ });
2479
+ });
2480
+ }, [
2481
+ files
2482
+ ]);
2388
2483
  var isLoading = (0, import_react34.useMemo)(function() {
2389
2484
  return isMutatingMessage || isSubmitting;
2390
2485
  }, [
2391
2486
  isMutatingMessage,
2392
2487
  isSubmitting
2393
2488
  ]);
2489
+ var latestMessage = useLatestMessage().latestMessage;
2490
+ var isDisabled = (0, import_react34.useMemo)(function() {
2491
+ var // @ts-ignore-next-line
2492
+ _latestMessage_metadata;
2493
+ return latestMessage === null || latestMessage === void 0 ? void 0 : (_latestMessage_metadata = latestMessage.metadata) === null || _latestMessage_metadata === void 0 ? void 0 : _latestMessage_metadata.isBlocking;
2494
+ }, [
2495
+ latestMessage,
2496
+ isLoading,
2497
+ files
2498
+ ]);
2394
2499
  var onSubmit = onSubmitArg ? (0, import_radash12.partob)(onSubmitArg, {
2395
2500
  reset: reset,
2396
2501
  createMessage: createMessage
2397
2502
  }) : function() {
2398
2503
  var _ref = _async_to_generator(function(data2) {
2504
+ var attachments;
2399
2505
  return _ts_generator(this, function(_state) {
2400
2506
  switch(_state.label){
2401
2507
  case 0:
2508
+ if (isFileLoading) return [
2509
+ 2
2510
+ ];
2511
+ if (isLoading) return [
2512
+ 2
2513
+ ];
2514
+ if (isDisabled) return [
2515
+ 2
2516
+ ];
2402
2517
  reset();
2518
+ setFiles([]);
2519
+ attachments = files.map(function(file) {
2520
+ return {
2521
+ file_id: file.id,
2522
+ tools: [
2523
+ {
2524
+ type: "file_search"
2525
+ }
2526
+ ]
2527
+ };
2528
+ });
2403
2529
  return [
2404
2530
  4,
2405
- createMessage({
2531
+ createMessage(_object_spread({
2406
2532
  // @ts-ignore-next-line
2407
2533
  content: data2.content
2408
- })
2534
+ }, attachments.length ? {
2535
+ attachments: attachments
2536
+ } : {}))
2409
2537
  ];
2410
2538
  case 1:
2411
2539
  _state.sent();
@@ -2419,25 +2547,19 @@ var Root3 = function(param) {
2419
2547
  return _ref.apply(this, arguments);
2420
2548
  };
2421
2549
  }();
2422
- var latestMessage = useLatestMessage().latestMessage;
2423
- var isDisabled = (0, import_react34.useMemo)(function() {
2424
- var // @ts-ignore-next-line
2425
- _latestMessage_metadata;
2426
- return latestMessage === null || latestMessage === void 0 ? void 0 : (_latestMessage_metadata = latestMessage.metadata) === null || _latestMessage_metadata === void 0 ? void 0 : _latestMessage_metadata.isBlocking;
2427
- }, [
2428
- latestMessage,
2429
- isLoading
2430
- ]);
2431
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(MessageFormContext.Provider, {
2550
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(MessageFormContext.Provider, {
2432
2551
  value: {
2433
2552
  isDisabled: isDisabled,
2434
- isLoading: isLoading
2553
+ isLoading: isLoading,
2554
+ files: files,
2555
+ setFiles: setFiles,
2556
+ isFileLoading: isFileLoading
2435
2557
  },
2436
- children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react_hook_form.FormProvider, _object_spread_props(_object_spread({}, formProps), {
2437
- children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_themes34.Box, {
2558
+ children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_react_hook_form.FormProvider, _object_spread_props(_object_spread({}, formProps), {
2559
+ children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_themes33.Box, {
2438
2560
  asChild: true,
2439
2561
  flexShrink: "0",
2440
- children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("form", {
2562
+ children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("form", {
2441
2563
  onSubmit: handleSubmit(onSubmit),
2442
2564
  children: children
2443
2565
  })
@@ -2446,20 +2568,24 @@ var Root3 = function(param) {
2446
2568
  });
2447
2569
  };
2448
2570
  // src/components/threads/Thread/MessageForm/Field/index.tsx
2571
+ var import_react_hook_form3 = require("react-hook-form");
2572
+ var import_themes37 = require("@radix-ui/themes");
2573
+ // src/components/threads/Thread/MessageForm/Field/Control.tsx
2574
+ var import_themes34 = require("@radix-ui/themes");
2575
+ var import_react_hook_form2 = require("react-hook-form");
2449
2576
  var import_react_use = require("react-use");
2450
2577
  var import_react36 = require("react");
2451
2578
  // src/components/textareas/TextareaBase/index.tsx
2452
2579
  var import_react35 = require("react");
2453
2580
  var import_react_textarea_autosize = __toESM(require("react-textarea-autosize"), 1);
2454
- var import_jsx_runtime44 = require("react/jsx-runtime");
2455
- var UPSCALE_RATIO = 16 / 14;
2581
+ var import_jsx_runtime47 = require("react/jsx-runtime");
2456
2582
  var TextareaBase = (0, import_react35.forwardRef)(function TextareaBase2(props, ref) {
2457
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_jsx_runtime44.Fragment, {
2583
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_jsx_runtime47.Fragment, {
2458
2584
  children: [
2459
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("style", {
2585
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("style", {
2460
2586
  children: ".superinterface-textarea { min-height: inherit; height: 30px; }\n.superinterface-textarea::placeholder { color: var(--gray-a10); }"
2461
2587
  }),
2462
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_react_textarea_autosize.default, _object_spread({
2588
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_react_textarea_autosize.default, _object_spread({
2463
2589
  ref: ref,
2464
2590
  className: "rt-reset superinterface-textarea",
2465
2591
  style: {
@@ -2468,12 +2594,6 @@ var TextareaBase = (0, import_react35.forwardRef)(function TextareaBase2(props,
2468
2594
  boxSizing: "border-box",
2469
2595
  resize: "none",
2470
2596
  color: "var(--gray-12)",
2471
- fontSize: "".concat(14 * UPSCALE_RATIO, "px"),
2472
- lineHeight: "".concat(24 * UPSCALE_RATIO, "px"),
2473
- transform: "scale(".concat(1 / UPSCALE_RATIO, ")"),
2474
- margin: "0 ".concat((-100 * UPSCALE_RATIO + 100) / 2, "%"),
2475
- width: "".concat(100 * UPSCALE_RATIO, "%"),
2476
- maxWidth: "".concat(100 * UPSCALE_RATIO, "%"),
2477
2597
  flexGrow: 1,
2478
2598
  display: "flex"
2479
2599
  }
@@ -2481,40 +2601,17 @@ var TextareaBase = (0, import_react35.forwardRef)(function TextareaBase2(props,
2481
2601
  ]
2482
2602
  });
2483
2603
  });
2484
- // src/components/threads/Thread/MessageForm/Field/index.tsx
2485
- var import_react_hook_form2 = require("react-hook-form");
2486
- var import_themes35 = require("@radix-ui/themes");
2487
- var import_jsx_runtime45 = require("react/jsx-runtime");
2488
- var Root4 = function(param) {
2604
+ // src/components/threads/Thread/MessageForm/Field/Control.tsx
2605
+ var import_jsx_runtime48 = require("react/jsx-runtime");
2606
+ var Root5 = function(param) {
2489
2607
  var children = param.children;
2490
- var _ref = (0, import_react_hook_form2.useFormContext)(), errors = _ref.formState.errors;
2491
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_themes35.Container, {
2492
- size: "2",
2493
- flexGrow: "0",
2494
- children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_themes35.Flex, {
2495
- direction: "column",
2496
- flexShrink: "0",
2497
- children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_themes35.Flex, {
2498
- direction: "column",
2499
- flexShrink: "0",
2500
- children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_themes35.Flex, {
2501
- style: _object_spread({
2502
- borderRadius: "var(--radius-2)",
2503
- borderWidth: "1px",
2504
- borderStyle: "solid",
2505
- borderColor: errors.content ? "var(--red-9)" : "var(--gray-5)"
2506
- }, errors.content ? {
2507
- backgroundColor: "var(--red-2)"
2508
- } : {}),
2509
- p: "2",
2510
- pl: "4",
2511
- children: children
2512
- })
2513
- })
2514
- })
2608
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes34.Flex, {
2609
+ flexGrow: "1",
2610
+ pt: "4px",
2611
+ children: children
2515
2612
  });
2516
2613
  };
2517
- var Control = function() {
2614
+ var Input = function() {
2518
2615
  var assistantNameContext = (0, import_react36.useContext)(AssistantNameContext);
2519
2616
  var register = (0, import_react_hook_form2.useFormContext)().register;
2520
2617
  var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
@@ -2537,7 +2634,7 @@ var Control = function() {
2537
2634
  isDisabledPrevious,
2538
2635
  textareaProps
2539
2636
  ]);
2540
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(TextareaBase, _object_spread_props(_object_spread({
2637
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(TextareaBase, _object_spread_props(_object_spread({
2541
2638
  minRows: 1,
2542
2639
  placeholder: "Message ".concat(assistantNameContext, "..."),
2543
2640
  disabled: isDisabled,
@@ -2556,51 +2653,348 @@ var Control = function() {
2556
2653
  }
2557
2654
  }));
2558
2655
  };
2559
- var Field = {
2560
- Root: Root4,
2561
- Control: Control
2562
- };
2563
- // src/components/threads/Thread/MessageForm/index.tsx
2564
- var import_jsx_runtime46 = require("react/jsx-runtime");
2565
- var MessageForm = function() {
2566
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Root3, {
2567
- children: /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Field.Root, {
2568
- children: [
2569
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_themes36.Text, {
2570
- size: "2",
2571
- style: {
2572
- flexGrow: 1
2573
- },
2574
- children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_themes36.Flex, {
2575
- flexGrow: "1",
2576
- direction: "column",
2577
- children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Field.Control, {})
2578
- })
2579
- }),
2580
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_themes36.Flex, {
2581
- flexShrink: "0",
2582
- align: "end",
2583
- children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Submit, {})
2584
- })
2585
- ]
2586
- })
2656
+ var Control = function() {
2657
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Root5, {
2658
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Input, {})
2587
2659
  });
2588
2660
  };
2589
- MessageForm.Root = Root3;
2590
- MessageForm.Field = Field;
2591
- MessageForm.Submit = Submit;
2592
- // src/components/threads/Thread/Root/index.tsx
2593
- var import_themes37 = require("@radix-ui/themes");
2594
- // src/components/threads/Thread/Provider/index.tsx
2595
- var Provider2 = SuperinterfaceProvider;
2596
- // src/components/threads/Thread/Root/index.tsx
2597
- var import_jsx_runtime47 = require("react/jsx-runtime");
2598
- var Root5 = function(_param) {
2661
+ Control.Root = Root5;
2662
+ Control.Input = Input;
2663
+ // src/components/threads/Thread/MessageForm/Field/Files/Preview.tsx
2664
+ var import_themes35 = require("@radix-ui/themes");
2665
+ var import_react_icons7 = require("@radix-ui/react-icons");
2666
+ var import_jsx_runtime49 = require("react/jsx-runtime");
2667
+ var Preview = function() {
2668
+ var _useMessageFormContext = useMessageFormContext(), files = _useMessageFormContext.files, setFiles = _useMessageFormContext.setFiles;
2669
+ if (!files.length) {
2670
+ return null;
2671
+ }
2672
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes35.Flex, {
2673
+ flexBasis: "100%",
2674
+ direction: "column",
2675
+ pb: "2",
2676
+ gap: "1",
2677
+ children: files.map(function(file) {
2678
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes35.Card, {
2679
+ variant: "ghost",
2680
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_themes35.Flex, {
2681
+ align: "center",
2682
+ justify: "between",
2683
+ gap: "1",
2684
+ children: [
2685
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_themes35.Flex, {
2686
+ align: "center",
2687
+ gap: "1",
2688
+ flexShrink: "1",
2689
+ minWidth: "0",
2690
+ maxWidth: "250px",
2691
+ children: [
2692
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes35.Flex, {
2693
+ flexShrink: "0",
2694
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes35.Spinner, {
2695
+ loading: isOptimistic({
2696
+ id: file.id
2697
+ }),
2698
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_react_icons7.FileIcon, {})
2699
+ })
2700
+ }),
2701
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes35.Text, {
2702
+ size: "2",
2703
+ truncate: true,
2704
+ wrap: "nowrap",
2705
+ children: file.filename
2706
+ })
2707
+ ]
2708
+ }),
2709
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes35.Flex, {
2710
+ flexShrink: "0",
2711
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes35.IconButton, {
2712
+ onClick: function() {
2713
+ return setFiles(function(prev) {
2714
+ return prev.filter(function(prevFile) {
2715
+ return prevFile.id !== file.id;
2716
+ });
2717
+ });
2718
+ },
2719
+ color: "gray",
2720
+ variant: "ghost",
2721
+ size: "1",
2722
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_react_icons7.Cross2Icon, {})
2723
+ })
2724
+ })
2725
+ ]
2726
+ })
2727
+ }, file.id);
2728
+ })
2729
+ });
2730
+ };
2731
+ // src/components/threads/Thread/MessageForm/Field/Files/Control.tsx
2732
+ var import_react37 = require("react");
2733
+ var import_dayjs2 = __toESM(require("dayjs"), 1);
2734
+ var import_react_icons8 = require("@radix-ui/react-icons");
2735
+ var import_themes36 = require("@radix-ui/themes");
2736
+ // src/hooks/files/useCreateFile/index.ts
2737
+ var import_react_query6 = require("@tanstack/react-query");
2738
+ // src/hooks/files/useCreateFile/lib/mutationOptions/mutationFn/body/formData.ts
2739
+ var formData = function(variables) {
2740
+ var data2 = new FormData();
2741
+ for(var key2 in variables){
2742
+ data2.append(key2, variables[key2]);
2743
+ }
2744
+ return data2;
2745
+ };
2746
+ // src/hooks/files/useCreateFile/lib/mutationOptions/mutationFn/body/index.ts
2747
+ var body2 = function(param) {
2748
+ var variables = param.variables, superinterfaceContext = param.superinterfaceContext;
2749
+ var _superinterfaceContext_threadIdCookieOptions;
2750
+ if (variables.threadId) return formData(variables);
2751
+ if (!variables.assistantId) return formData(variables);
2752
+ if (!((_superinterfaceContext_threadIdCookieOptions = superinterfaceContext.threadIdCookieOptions) === null || _superinterfaceContext_threadIdCookieOptions === void 0 ? void 0 : _superinterfaceContext_threadIdCookieOptions.get)) return formData(variables);
2753
+ var threadId = superinterfaceContext.threadIdCookieOptions.get({
2754
+ assistantId: variables.assistantId
2755
+ });
2756
+ if (!threadId) return formData(variables);
2757
+ return formData(_object_spread_props(_object_spread({}, variables), {
2758
+ threadId: threadId
2759
+ }));
2760
+ };
2761
+ // src/hooks/files/useCreateFile/lib/mutationOptions/mutationFn/index.ts
2762
+ var mutationFn2 = function(param) {
2763
+ var superinterfaceContext = param.superinterfaceContext, queryClient = param.queryClient, threadContext = param.threadContext;
2764
+ return function() {
2765
+ var _ref = _async_to_generator(function(variables) {
2766
+ var response, result;
2767
+ return _ts_generator(this, function(_state) {
2768
+ switch(_state.label){
2769
+ case 0:
2770
+ return [
2771
+ 4,
2772
+ fetch("".concat(superinterfaceContext.baseUrl, "/files"), {
2773
+ method: "POST",
2774
+ body: body2({
2775
+ variables: variables,
2776
+ superinterfaceContext: superinterfaceContext
2777
+ })
2778
+ })
2779
+ ];
2780
+ case 1:
2781
+ response = _state.sent();
2782
+ return [
2783
+ 4,
2784
+ response.json()
2785
+ ];
2786
+ case 2:
2787
+ result = _state.sent();
2788
+ return [
2789
+ 2,
2790
+ result
2791
+ ];
2792
+ }
2793
+ });
2794
+ });
2795
+ return function(variables) {
2796
+ return _ref.apply(this, arguments);
2797
+ };
2798
+ }();
2799
+ };
2800
+ // src/hooks/files/useCreateFile/lib/mutationOptions/index.ts
2801
+ var mutationOptions2 = function(param) {
2802
+ var queryClient = param.queryClient, threadContext = param.threadContext, superinterfaceContext = param.superinterfaceContext, onError = param.onError;
2803
+ var mutationKey = [
2804
+ "createFile",
2805
+ threadContext.variables
2806
+ ];
2807
+ return _object_spread_props(_object_spread({
2808
+ mutationFn: mutationFn2({
2809
+ queryClient: queryClient,
2810
+ superinterfaceContext: superinterfaceContext,
2811
+ threadContext: threadContext
2812
+ }),
2813
+ onError: onError
2814
+ }, threadContext.defaultOptions.mutations, queryClient.getMutationDefaults(mutationKey)), {
2815
+ mutationKey: mutationKey
2816
+ });
2817
+ };
2818
+ // src/hooks/files/useCreateFile/index.ts
2819
+ var useCreateFile = function() {
2820
+ var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
2821
+ onError: function() {}
2822
+ }, _ref_onError = _ref.onError, onError = _ref_onError === void 0 ? function() {} : _ref_onError;
2823
+ var queryClient = (0, import_react_query6.useQueryClient)();
2824
+ var superinterfaceContext = useSuperinterfaceContext();
2825
+ var threadContext = useSuperinterfaceContext();
2826
+ var props = (0, import_react_query6.useMutation)(mutationOptions2({
2827
+ queryClient: queryClient,
2828
+ threadContext: threadContext,
2829
+ superinterfaceContext: superinterfaceContext,
2830
+ onError: onError
2831
+ }));
2832
+ return _object_spread_props(_object_spread({}, props), {
2833
+ createFile: function() {
2834
+ for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
2835
+ args[_key] = arguments[_key];
2836
+ }
2837
+ var _props;
2838
+ var _args = _to_array(args), firstArg = _args[0], restArgs = _args.slice(1);
2839
+ return (_props = props).mutateAsync.apply(_props, [
2840
+ _object_spread({}, threadContext.variables, firstArg)
2841
+ ].concat(_to_consumable_array(restArgs)));
2842
+ }
2843
+ });
2844
+ };
2845
+ // src/components/threads/Thread/MessageForm/Field/Files/Control.tsx
2846
+ var import_jsx_runtime50 = require("react/jsx-runtime");
2847
+ var accept = ".c,text/x-c,\n.cs,text/x-csharp,\n.cpp,text/x-c++,\n.doc,application/msword,\n.docx,application/vnd.openxmlformats-officedocument.wordprocessingml.document,\n.html,text/html,\n.java,text/x-java,\n.json,application/json,\n.md,text/markdown,\n.pdf,application/pdf,\n.php,text/x-php,\n.pptx,application/vnd.openxmlformats-officedocument.presentationml.presentation,\n.py,text/x-python,\n.py,text/x-script.python,\n.rb,text/x-ruby,\n.tex,text/x-tex,\n.txt,text/plain,\n.css,text/css,\n.js,text/javascript,\n.sh,application/x-sh,\n.ts,application/typescript";
2848
+ var Control2 = function() {
2849
+ var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading, setFiles = _useMessageFormContext.setFiles;
2850
+ var createFile = useCreateFile().createFile;
2851
+ var addToast = useToasts().addToast;
2852
+ var onChange = (0, import_react37.useCallback)(function(event) {
2853
+ var files = event.target.files;
2854
+ if (!files) return;
2855
+ var newFiles = Array.from(files).map(function(file) {
2856
+ var id = optimisticId();
2857
+ createFile({
2858
+ file: file
2859
+ }, {
2860
+ onSuccess: function(param) {
2861
+ var file2 = param.file;
2862
+ setFiles(function(prev) {
2863
+ return _to_consumable_array(prev.filter(function(prevFile) {
2864
+ return prevFile.id !== id;
2865
+ })).concat([
2866
+ file2
2867
+ ]);
2868
+ });
2869
+ },
2870
+ onError: function() {
2871
+ addToast({
2872
+ type: "error",
2873
+ message: "Could not upload file. Please try again."
2874
+ });
2875
+ setFiles(function(prev) {
2876
+ return prev.filter(function(prevFile) {
2877
+ return prevFile.id !== id;
2878
+ });
2879
+ });
2880
+ }
2881
+ });
2882
+ return {
2883
+ id: id,
2884
+ filename: file.name,
2885
+ object: "file",
2886
+ purpose: "assistants",
2887
+ created_at: (0, import_dayjs2.default)().unix(),
2888
+ bytes: file.size,
2889
+ status: "processed"
2890
+ };
2891
+ });
2892
+ setFiles(function(prev) {
2893
+ return _to_consumable_array(prev).concat(_to_consumable_array(newFiles));
2894
+ });
2895
+ }, []);
2896
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_themes36.Flex, {
2897
+ pt: "2",
2898
+ pr: "2",
2899
+ flexGrow: "0",
2900
+ children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_themes36.IconButton, {
2901
+ type: "button",
2902
+ variant: "ghost",
2903
+ color: "gray",
2904
+ disabled: isDisabled || isLoading,
2905
+ style: {
2906
+ position: "relative",
2907
+ overflow: "hidden"
2908
+ },
2909
+ children: [
2910
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_react_icons8.FilePlusIcon, {}),
2911
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("input", {
2912
+ type: "file",
2913
+ accept: accept,
2914
+ onChange: onChange,
2915
+ style: {
2916
+ cursor: "pointer",
2917
+ position: "absolute",
2918
+ top: 0,
2919
+ left: 0,
2920
+ right: 0,
2921
+ bottom: 0,
2922
+ opacity: 0
2923
+ }
2924
+ })
2925
+ ]
2926
+ })
2927
+ });
2928
+ };
2929
+ // src/components/threads/Thread/MessageForm/Field/Files/index.tsx
2930
+ var Files = {
2931
+ Preview: Preview,
2932
+ Control: Control2
2933
+ };
2934
+ // src/components/threads/Thread/MessageForm/Field/index.tsx
2935
+ var import_jsx_runtime51 = require("react/jsx-runtime");
2936
+ var Root6 = function(param) {
2937
+ var children = param.children;
2938
+ var _ref = (0, import_react_hook_form3.useFormContext)(), errors = _ref.formState.errors;
2939
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes37.Container, {
2940
+ size: "2",
2941
+ flexGrow: "0",
2942
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes37.Flex, {
2943
+ direction: "column",
2944
+ flexShrink: "0",
2945
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes37.Flex, {
2946
+ direction: "column",
2947
+ flexShrink: "0",
2948
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes37.Flex, {
2949
+ style: _object_spread({
2950
+ borderRadius: "var(--radius-2)",
2951
+ borderWidth: "1px",
2952
+ borderStyle: "solid",
2953
+ borderColor: errors.content ? "var(--red-9)" : "var(--gray-5)"
2954
+ }, errors.content ? {
2955
+ backgroundColor: "var(--red-2)"
2956
+ } : {}),
2957
+ p: "2",
2958
+ pl: "3",
2959
+ wrap: "wrap",
2960
+ children: children
2961
+ })
2962
+ })
2963
+ })
2964
+ });
2965
+ };
2966
+ var Field = {
2967
+ Root: Root6,
2968
+ Control: Control,
2969
+ Files: Files
2970
+ };
2971
+ // src/components/threads/Thread/MessageForm/index.tsx
2972
+ var import_jsx_runtime52 = require("react/jsx-runtime");
2973
+ var MessageForm = function() {
2974
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Root4, {
2975
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Field.Root, {
2976
+ children: [
2977
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Field.Control, {}),
2978
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Submit, {})
2979
+ ]
2980
+ })
2981
+ });
2982
+ };
2983
+ MessageForm.Root = Root4;
2984
+ MessageForm.Field = Field;
2985
+ MessageForm.Submit = Submit;
2986
+ // src/components/threads/Thread/Root/index.tsx
2987
+ var import_themes38 = require("@radix-ui/themes");
2988
+ // src/components/threads/Thread/Provider/index.tsx
2989
+ var Provider2 = SuperinterfaceProvider;
2990
+ // src/components/threads/Thread/Root/index.tsx
2991
+ var import_jsx_runtime53 = require("react/jsx-runtime");
2992
+ var Root7 = function(_param) {
2599
2993
  var children = _param.children, rest = _object_without_properties(_param, [
2600
2994
  "children"
2601
2995
  ]);
2602
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Provider2, _object_spread_props(_object_spread({}, rest), {
2603
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_themes37.Flex, {
2996
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Provider2, _object_spread_props(_object_spread({}, rest), {
2997
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes38.Flex, {
2604
2998
  direction: "column",
2605
2999
  flexGrow: "1",
2606
3000
  children: children
@@ -2608,43 +3002,43 @@ var Root5 = function(_param) {
2608
3002
  }));
2609
3003
  };
2610
3004
  // src/components/threads/Thread/index.tsx
2611
- var import_jsx_runtime48 = require("react/jsx-runtime");
3005
+ var import_jsx_runtime54 = require("react/jsx-runtime");
2612
3006
  var Thread = function(props) {
2613
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Root5, _object_spread_props(_object_spread({}, props), {
3007
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Root7, _object_spread_props(_object_spread({}, props), {
2614
3008
  children: [
2615
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Messages, {}),
2616
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(MessageForm, {})
3009
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Messages, {}),
3010
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(MessageForm, {})
2617
3011
  ]
2618
3012
  }));
2619
3013
  };
2620
- Thread.Root = Root5;
3014
+ Thread.Root = Root7;
2621
3015
  Thread.Messages = Messages;
2622
3016
  Thread.MessageForm = MessageForm;
2623
3017
  // src/hooks/messages/useMessageContext/index.ts
2624
- var import_react37 = require("react");
3018
+ var import_react38 = require("react");
2625
3019
  var useMessageContext = function() {
2626
- return (0, import_react37.useContext)(MessageContext);
3020
+ return (0, import_react38.useContext)(MessageContext);
2627
3021
  };
2628
3022
  // src/components/threads/ThreadDialog/Provider/index.tsx
2629
- var import_react40 = require("react");
3023
+ var import_react41 = require("react");
2630
3024
  // src/contexts/threads/ThreadDialogContext/index.ts
2631
- var import_react38 = require("react");
2632
- var ThreadDialogContext = (0, import_react38.createContext)({
3025
+ var import_react39 = require("react");
3026
+ var ThreadDialogContext = (0, import_react39.createContext)({
2633
3027
  isOpen: false,
2634
3028
  setIsOpen: function() {}
2635
3029
  });
2636
3030
  // src/hooks/threads/useThreadDialogContext/index.ts
2637
- var import_react39 = require("react");
3031
+ var import_react40 = require("react");
2638
3032
  var useThreadDialogContext = function() {
2639
- return (0, import_react39.useContext)(ThreadDialogContext);
3033
+ return (0, import_react40.useContext)(ThreadDialogContext);
2640
3034
  };
2641
3035
  // src/components/threads/ThreadDialog/Provider/index.tsx
2642
- var import_jsx_runtime49 = require("react/jsx-runtime");
3036
+ var import_jsx_runtime55 = require("react/jsx-runtime");
2643
3037
  var Provider3 = function(param) {
2644
3038
  var children = param.children;
2645
3039
  var threadDialogContext = useThreadDialogContext();
2646
- var _ref = _sliced_to_array((0, import_react40.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
2647
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ThreadDialogContext.Provider, {
3040
+ var _ref = _sliced_to_array((0, import_react41.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
3041
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ThreadDialogContext.Provider, {
2648
3042
  value: {
2649
3043
  isOpen: isOpen,
2650
3044
  setIsOpen: setIsOpen
@@ -2653,31 +3047,31 @@ var Provider3 = function(param) {
2653
3047
  });
2654
3048
  };
2655
3049
  // src/components/toasts/ToastsProvider/index.tsx
2656
- var import_react41 = require("react");
3050
+ var import_react42 = require("react");
2657
3051
  var Toast2 = __toESM(require("@radix-ui/react-toast"), 1);
2658
3052
  // src/components/toasts/ToastsProvider/CustomToast.tsx
2659
3053
  var Toast = __toESM(require("@radix-ui/react-toast"), 1);
2660
- var import_themes38 = require("@radix-ui/themes");
2661
- var import_react_icons6 = require("@radix-ui/react-icons");
2662
- var import_jsx_runtime50 = require("react/jsx-runtime");
3054
+ var import_themes39 = require("@radix-ui/themes");
3055
+ var import_react_icons9 = require("@radix-ui/react-icons");
3056
+ var import_jsx_runtime56 = require("react/jsx-runtime");
2663
3057
  var CustomToast = function(param) {
2664
3058
  var toast = param.toast;
2665
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Toast.Root, {
2666
- children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_themes38.Card, {
2667
- children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Toast.Title, {
2668
- children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_themes38.Flex, {
3059
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Toast.Root, {
3060
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes39.Card, {
3061
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Toast.Title, {
3062
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_themes39.Flex, {
2669
3063
  children: [
2670
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_themes38.Flex, {
3064
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes39.Flex, {
2671
3065
  pr: "2",
2672
3066
  height: "14px",
2673
3067
  align: "center",
2674
- children: toast.type === "success" ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_react_icons6.CheckCircledIcon, {
3068
+ children: toast.type === "success" ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons9.CheckCircledIcon, {
2675
3069
  color: "var(--accent-9)"
2676
- }) : /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_react_icons6.CrossCircledIcon, {
3070
+ }) : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_icons9.CrossCircledIcon, {
2677
3071
  color: "var(--red-9)"
2678
3072
  })
2679
3073
  }),
2680
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_themes38.Text, {
3074
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes39.Text, {
2681
3075
  weight: "medium",
2682
3076
  size: "1",
2683
3077
  children: toast.message
@@ -2689,31 +3083,31 @@ var CustomToast = function(param) {
2689
3083
  });
2690
3084
  };
2691
3085
  // src/components/toasts/ToastsProvider/index.tsx
2692
- var import_jsx_runtime51 = require("react/jsx-runtime");
3086
+ var import_jsx_runtime57 = require("react/jsx-runtime");
2693
3087
  var ToastsProvider = function(param) {
2694
3088
  var children = param.children;
2695
- var _ref = _sliced_to_array((0, import_react41.useState)([]), 2), toasts = _ref[0], setToasts = _ref[1];
2696
- var addToast = (0, import_react41.useCallback)(function(toast) {
3089
+ var _ref = _sliced_to_array((0, import_react42.useState)([]), 2), toasts = _ref[0], setToasts = _ref[1];
3090
+ var addToast = (0, import_react42.useCallback)(function(toast) {
2697
3091
  return setToasts(function(prevToasts) {
2698
3092
  return _to_consumable_array(prevToasts).concat([
2699
3093
  toast
2700
3094
  ]);
2701
3095
  });
2702
3096
  }, []);
2703
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ToastsContext.Provider, {
3097
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ToastsContext.Provider, {
2704
3098
  value: {
2705
3099
  toasts: toasts,
2706
3100
  addToast: addToast
2707
3101
  },
2708
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Toast2.Provider, {
3102
+ children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(Toast2.Provider, {
2709
3103
  children: [
2710
3104
  children,
2711
3105
  Array.from(toasts).map(function(toast, index) {
2712
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(CustomToast, {
3106
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(CustomToast, {
2713
3107
  toast: toast
2714
3108
  }, index);
2715
3109
  }),
2716
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Toast2.Viewport, {
3110
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Toast2.Viewport, {
2717
3111
  style: {
2718
3112
  position: "absolute",
2719
3113
  bottom: 0,
@@ -2735,22 +3129,34 @@ var ToastsProvider = function(param) {
2735
3129
  });
2736
3130
  };
2737
3131
  // src/components/threads/ThreadDialog/Root/index.tsx
2738
- var import_jsx_runtime52 = require("react/jsx-runtime");
2739
- var Root7 = function(param) {
3132
+ var import_jsx_runtime58 = require("react/jsx-runtime");
3133
+ var Root9 = function(param) {
2740
3134
  var children = param.children;
2741
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(ToastsProvider, {
2742
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Provider3, {
3135
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(ToastsProvider, {
3136
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Provider3, {
2743
3137
  children: children
2744
3138
  })
2745
3139
  });
2746
3140
  };
2747
3141
  // src/components/threads/ThreadDialog/Trigger/index.tsx
2748
- var import_themes39 = require("@radix-ui/themes");
2749
- var import_jsx_runtime53 = require("react/jsx-runtime");
2750
- var Trigger = function(param) {
3142
+ var import_themes41 = require("@radix-ui/themes");
3143
+ // src/components/threads/ThreadDialog/Trigger/Button.tsx
3144
+ var import_themes40 = require("@radix-ui/themes");
3145
+ var import_react_icons10 = require("@radix-ui/react-icons");
3146
+ var import_jsx_runtime59 = require("react/jsx-runtime");
3147
+ var Button3 = function() {
3148
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_themes40.IconButton, {
3149
+ size: "4",
3150
+ radius: "full",
3151
+ children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react_icons10.ChatBubbleIcon, {})
3152
+ });
3153
+ };
3154
+ // src/components/threads/ThreadDialog/Trigger/index.tsx
3155
+ var import_jsx_runtime60 = require("react/jsx-runtime");
3156
+ var Root10 = function(param) {
2751
3157
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2752
3158
  var _useThreadDialogContext = useThreadDialogContext(), setIsOpen = _useThreadDialogContext.setIsOpen, isOpen = _useThreadDialogContext.isOpen;
2753
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes39.Flex, {
3159
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_themes41.Flex, {
2754
3160
  display: {
2755
3161
  initial: isOpen ? "none" : "flex",
2756
3162
  sm: "flex"
@@ -2773,26 +3179,22 @@ var Trigger = function(param) {
2773
3179
  children: children
2774
3180
  });
2775
3181
  };
2776
- // src/components/threads/ThreadDialog/Button/index.tsx
2777
- var import_themes40 = require("@radix-ui/themes");
2778
- var import_react_icons7 = require("@radix-ui/react-icons");
2779
- var import_jsx_runtime54 = require("react/jsx-runtime");
2780
- var Button2 = function() {
2781
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes40.IconButton, {
2782
- size: "4",
2783
- radius: "full",
2784
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_icons7.ChatBubbleIcon, {})
2785
- });
3182
+ var Trigger = function(args) {
3183
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Root10, _object_spread_props(_object_spread({}, args), {
3184
+ children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Button3, {})
3185
+ }));
2786
3186
  };
3187
+ Trigger.Root = Root10;
3188
+ Trigger.Button = Button3;
2787
3189
  // src/components/threads/ThreadDialog/Content/index.tsx
2788
- var import_themes42 = require("@radix-ui/themes");
3190
+ var import_themes43 = require("@radix-ui/themes");
2789
3191
  // src/components/threads/ThreadDialog/Close/index.tsx
2790
- var import_react_icons8 = require("@radix-ui/react-icons");
2791
- var import_themes41 = require("@radix-ui/themes");
2792
- var import_jsx_runtime55 = require("react/jsx-runtime");
3192
+ var import_react_icons11 = require("@radix-ui/react-icons");
3193
+ var import_themes42 = require("@radix-ui/themes");
3194
+ var import_jsx_runtime61 = require("react/jsx-runtime");
2793
3195
  var Close = function() {
2794
3196
  var _useThreadDialogContext = useThreadDialogContext(), setIsOpen = _useThreadDialogContext.setIsOpen, isOpen = _useThreadDialogContext.isOpen;
2795
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes41.Flex, {
3197
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes42.Flex, {
2796
3198
  display: {
2797
3199
  initial: isOpen ? "flex" : "none",
2798
3200
  sm: "none"
@@ -2812,20 +3214,20 @@ var Close = function() {
2812
3214
  style: {
2813
3215
  zIndex: 9999999999
2814
3216
  },
2815
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes41.IconButton, {
3217
+ children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes42.IconButton, {
2816
3218
  size: "2",
2817
3219
  variant: "soft",
2818
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_react_icons8.Cross1Icon, {})
3220
+ children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_icons11.Cross1Icon, {})
2819
3221
  })
2820
3222
  });
2821
3223
  };
2822
3224
  // src/components/threads/ThreadDialog/Content/index.tsx
2823
- var import_jsx_runtime56 = require("react/jsx-runtime");
2824
- var Root8 = function(param) {
3225
+ var import_jsx_runtime62 = require("react/jsx-runtime");
3226
+ var Root11 = function(param) {
2825
3227
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2826
3228
  var isOpen = useThreadDialogContext().isOpen;
2827
3229
  if (!isOpen) return null;
2828
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.Flex, {
3230
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes43.Flex, {
2829
3231
  direction: "column",
2830
3232
  justify: "end",
2831
3233
  position: "fixed",
@@ -2853,7 +3255,7 @@ var Root8 = function(param) {
2853
3255
  style: _object_spread({
2854
3256
  zIndex: 9999999999
2855
3257
  }, style),
2856
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_themes42.Card, {
3258
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_themes43.Card, {
2857
3259
  mb: {
2858
3260
  initial: void 0,
2859
3261
  sm: "3"
@@ -2864,7 +3266,7 @@ var Root8 = function(param) {
2864
3266
  flexGrow: 1
2865
3267
  },
2866
3268
  children: [
2867
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.Inset, {
3269
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes43.Inset, {
2868
3270
  clip: "padding-box",
2869
3271
  side: "all",
2870
3272
  pb: "current",
@@ -2874,59 +3276,67 @@ var Root8 = function(param) {
2874
3276
  },
2875
3277
  children: children
2876
3278
  }),
2877
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Close, {})
3279
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Close, {})
2878
3280
  ]
2879
3281
  })
2880
3282
  });
2881
3283
  };
3284
+ var Messages2 = function() {
3285
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Thread.Messages, {
3286
+ style: {
3287
+ paddingTop: "var(--space-5)",
3288
+ paddingRight: "var(--space-5)",
3289
+ paddingLeft: "var(--space-5)"
3290
+ }
3291
+ });
3292
+ };
3293
+ var FormContainer = function(param) {
3294
+ var children = param.children;
3295
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes43.Flex, {
3296
+ direction: "column",
3297
+ pl: "5",
3298
+ pr: "5",
3299
+ pb: "3",
3300
+ flexShrink: "0",
3301
+ children: children
3302
+ });
3303
+ };
2882
3304
  var Content4 = function(param) {
2883
3305
  var _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2884
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Root8, {
3306
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Root11, {
2885
3307
  style: style,
2886
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(Thread.Root, {
3308
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(Thread.Root, {
2887
3309
  children: [
2888
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Thread.Messages, {
2889
- style: {
2890
- paddingTop: "var(--space-5)",
2891
- paddingRight: "var(--space-5)",
2892
- paddingLeft: "var(--space-5)"
2893
- }
2894
- }),
2895
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes42.Flex, {
2896
- direction: "column",
2897
- pl: "5",
2898
- pr: "5",
2899
- pb: "3",
2900
- flexShrink: "0",
2901
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Thread.MessageForm, {})
3310
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Messages2, {}),
3311
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(FormContainer, {
3312
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Thread.MessageForm, {})
2902
3313
  })
2903
3314
  ]
2904
3315
  })
2905
3316
  });
2906
3317
  };
2907
- Content4.Root = Root8;
3318
+ Content4.Root = Root11;
3319
+ Content4.Messages = Messages2;
3320
+ Content4.FormContainer = FormContainer;
2908
3321
  // src/components/threads/ThreadDialog/index.tsx
2909
- var import_jsx_runtime57 = require("react/jsx-runtime");
3322
+ var import_jsx_runtime63 = require("react/jsx-runtime");
2910
3323
  var ThreadDialog = function() {
2911
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(Root7, {
3324
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(Root9, {
2912
3325
  children: [
2913
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Content4, {}),
2914
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Trigger, {
2915
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Button2, {})
2916
- })
3326
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Content4, {}),
3327
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Trigger, {})
2917
3328
  ]
2918
3329
  });
2919
3330
  };
2920
- ThreadDialog.Root = Root7;
3331
+ ThreadDialog.Root = Root9;
2921
3332
  ThreadDialog.Trigger = Trigger;
2922
- ThreadDialog.Button = Button2;
2923
3333
  ThreadDialog.Content = Content4;
2924
3334
  // src/components/threads/AudioThread/Root/index.tsx
2925
3335
  var import_runtime = require("regenerator-runtime/runtime");
2926
- var import_themes43 = require("@radix-ui/themes");
3336
+ var import_themes44 = require("@radix-ui/themes");
2927
3337
  // src/contexts/threads/AudioThreadContext/index.ts
2928
- var import_react42 = require("react");
2929
- var AudioThreadContext = (0, import_react42.createContext)({
3338
+ var import_react43 = require("react");
3339
+ var AudioThreadContext = (0, import_react43.createContext)({
2930
3340
  status: "idle",
2931
3341
  recorderProps: {
2932
3342
  status: "idle",
@@ -2994,11 +3404,11 @@ var blobToData = function(blob) {
2994
3404
  });
2995
3405
  };
2996
3406
  // src/hooks/audioThreads/useStatus/index.ts
2997
- var import_react43 = require("react");
3407
+ var import_react44 = require("react");
2998
3408
  var useStatus = function(param) {
2999
3409
  var messageAudioProps = param.messageAudioProps, recorderProps = param.recorderProps, createMessageProps = param.createMessageProps;
3000
3410
  var latestMessageProps = useLatestMessage();
3001
- var status = (0, import_react43.useMemo)(function() {
3411
+ var status = (0, import_react44.useMemo)(function() {
3002
3412
  var _latestMessageProps_latestMessage;
3003
3413
  if (recorderProps.status === "recording") return "recording";
3004
3414
  if (createMessageProps.isPending) return "creatingMessage";
@@ -3020,21 +3430,21 @@ var useStatus = function(param) {
3020
3430
  };
3021
3431
  };
3022
3432
  // src/hooks/audioThreads/useRecorder/index.ts
3023
- var import_dayjs2 = __toESM(require("dayjs"), 1);
3433
+ var import_dayjs3 = __toESM(require("dayjs"), 1);
3024
3434
  var import_use_audio_capture = require("use-audio-capture");
3025
- var import_react44 = require("react");
3435
+ var import_react45 = require("react");
3026
3436
  var import_react_use_audio_player = require("react-use-audio-player");
3027
3437
  var import_react_use2 = require("react-use");
3028
3438
  var useRecorder = function(param) {
3029
3439
  var isStopOnSilence = param.isStopOnSilence, onStart = param.onStart, onStop = param.onStop;
3030
- var _ref = _sliced_to_array((0, import_react44.useState)(null), 2), silenceStart = _ref[0], setSilenceStart = _ref[1];
3031
- var _ref1 = _sliced_to_array((0, import_react44.useState)(null), 2), noiseStart = _ref1[0], setNoiseStart = _ref1[1];
3032
- var _ref2 = _sliced_to_array((0, import_react44.useState)(null), 2), mediaStream = _ref2[0], setMediaStream = _ref2[1];
3033
- var _ref3 = _sliced_to_array((0, import_react44.useState)("idle"), 2), status = _ref3[0], setStatus = _ref3[1];
3440
+ var _ref = _sliced_to_array((0, import_react45.useState)(null), 2), silenceStart = _ref[0], setSilenceStart = _ref[1];
3441
+ var _ref1 = _sliced_to_array((0, import_react45.useState)(null), 2), noiseStart = _ref1[0], setNoiseStart = _ref1[1];
3442
+ var _ref2 = _sliced_to_array((0, import_react45.useState)(null), 2), mediaStream = _ref2[0], setMediaStream = _ref2[1];
3443
+ var _ref3 = _sliced_to_array((0, import_react45.useState)("idle"), 2), status = _ref3[0], setStatus = _ref3[1];
3034
3444
  var startAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
3035
3445
  var endAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
3036
- var _ref4 = _sliced_to_array((0, import_react44.useState)(false), 2), isLoaded = _ref4[0], setIsLoaded = _ref4[1];
3037
- (0, import_react44.useEffect)(function() {
3446
+ var _ref4 = _sliced_to_array((0, import_react45.useState)(false), 2), isLoaded = _ref4[0], setIsLoaded = _ref4[1];
3447
+ (0, import_react45.useEffect)(function() {
3038
3448
  if (isLoaded) return;
3039
3449
  setIsLoaded(true);
3040
3450
  }, [
@@ -3092,9 +3502,9 @@ var useRecorder = function(param) {
3092
3502
  setNoiseStart(null);
3093
3503
  }
3094
3504
  });
3095
- var _ref5 = _sliced_to_array((0, import_react44.useState)(null), 2), audioEngine = _ref5[0], setAudioEngine = _ref5[1];
3096
- var isInited = (0, import_react44.useRef)(false);
3097
- (0, import_react44.useEffect)(function() {
3505
+ var _ref5 = _sliced_to_array((0, import_react45.useState)(null), 2), audioEngine = _ref5[0], setAudioEngine = _ref5[1];
3506
+ var isInited = (0, import_react45.useRef)(false);
3507
+ (0, import_react45.useEffect)(function() {
3098
3508
  if (!mediaStream) return;
3099
3509
  if (isInited.current) return;
3100
3510
  isInited.current = true;
@@ -3107,7 +3517,7 @@ var useRecorder = function(param) {
3107
3517
  isInited,
3108
3518
  mediaStream
3109
3519
  ]);
3110
- var visualizationAnalyser = (0, import_react44.useMemo)(function() {
3520
+ var visualizationAnalyser = (0, import_react45.useMemo)(function() {
3111
3521
  if (!audioEngine) return null;
3112
3522
  var result = audioEngine.audioContext.createAnalyser();
3113
3523
  audioEngine.source.connect(result);
@@ -3115,7 +3525,7 @@ var useRecorder = function(param) {
3115
3525
  }, [
3116
3526
  audioEngine
3117
3527
  ]);
3118
- var silenceAnalyser = (0, import_react44.useMemo)(function() {
3528
+ var silenceAnalyser = (0, import_react45.useMemo)(function() {
3119
3529
  if (!audioEngine) return null;
3120
3530
  var result = audioEngine.audioContext.createAnalyser();
3121
3531
  result.minDecibels = -60;
@@ -3124,7 +3534,7 @@ var useRecorder = function(param) {
3124
3534
  }, [
3125
3535
  audioEngine
3126
3536
  ]);
3127
- var handleSilence = (0, import_react44.useCallback)(function() {
3537
+ var handleSilence = (0, import_react45.useCallback)(function() {
3128
3538
  if (!silenceAnalyser) return;
3129
3539
  var frequencyData = new Uint8Array(silenceAnalyser.frequencyBinCount);
3130
3540
  silenceAnalyser.getByteFrequencyData(frequencyData);
@@ -3132,12 +3542,12 @@ var useRecorder = function(param) {
3132
3542
  return f === 0;
3133
3543
  });
3134
3544
  setSilenceStart(function(silenceStart2) {
3135
- if (isSilent) return silenceStart2 || (0, import_dayjs2.default)();
3545
+ if (isSilent) return silenceStart2 || (0, import_dayjs3.default)();
3136
3546
  return null;
3137
3547
  });
3138
3548
  setNoiseStart(function(noiseStart2) {
3139
3549
  if (isSilent) return noiseStart2;
3140
- return noiseStart2 || (0, import_dayjs2.default)();
3550
+ return noiseStart2 || (0, import_dayjs3.default)();
3141
3551
  });
3142
3552
  requestAnimationFrame(function() {
3143
3553
  return handleSilence();
@@ -3147,7 +3557,7 @@ var useRecorder = function(param) {
3147
3557
  setNoiseStart,
3148
3558
  setSilenceStart
3149
3559
  ]);
3150
- (0, import_react44.useEffect)(function() {
3560
+ (0, import_react45.useEffect)(function() {
3151
3561
  if (!isStopOnSilence) return;
3152
3562
  requestAnimationFrame(function() {
3153
3563
  return handleSilence();
@@ -3161,7 +3571,7 @@ var useRecorder = function(param) {
3161
3571
  if (status !== "recording") return;
3162
3572
  if (!silenceStart) return;
3163
3573
  if (!noiseStart) return;
3164
- if (!silenceStart.isBefore((0, import_dayjs2.default)().subtract(1.5, "second"))) return;
3574
+ if (!silenceStart.isBefore((0, import_dayjs3.default)().subtract(1.5, "second"))) return;
3165
3575
  audioCaptureProps.stop();
3166
3576
  }, 300);
3167
3577
  return _object_spread_props(_object_spread({}, audioCaptureProps), {
@@ -3170,7 +3580,7 @@ var useRecorder = function(param) {
3170
3580
  });
3171
3581
  };
3172
3582
  // src/hooks/audioThreads/useMessageAudio/index.ts
3173
- var import_react45 = require("react");
3583
+ var import_react46 = require("react");
3174
3584
  var import_compromise = __toESM(require("compromise"), 1);
3175
3585
  var import_howler = require("howler");
3176
3586
  var import_react_use_audio_player2 = require("react-use-audio-player");
@@ -3208,15 +3618,15 @@ var getMessageSentences = function(param) {
3208
3618
  };
3209
3619
  var useMessageAudio = function(param) {
3210
3620
  var onEnd = param.onEnd;
3211
- var _ref = _sliced_to_array((0, import_react45.useState)(false), 2), isAudioPlayed = _ref[0], setIsAudioPlayed = _ref[1];
3212
- var _ref1 = _sliced_to_array((0, import_react45.useState)([]), 2), stoppedMessageIds = _ref1[0], setStoppedMessageIds = _ref1[1];
3213
- var _ref2 = _sliced_to_array((0, import_react45.useState)([]), 2), playedMessageSentences = _ref2[0], setPlayedMessageSentences = _ref2[1];
3621
+ var _ref = _sliced_to_array((0, import_react46.useState)(false), 2), isAudioPlayed = _ref[0], setIsAudioPlayed = _ref[1];
3622
+ var _ref1 = _sliced_to_array((0, import_react46.useState)([]), 2), stoppedMessageIds = _ref1[0], setStoppedMessageIds = _ref1[1];
3623
+ var _ref2 = _sliced_to_array((0, import_react46.useState)([]), 2), playedMessageSentences = _ref2[0], setPlayedMessageSentences = _ref2[1];
3214
3624
  var audioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
3215
3625
  var nextAudioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
3216
3626
  var superinterfaceContext = useSuperinterfaceContext();
3217
- var _ref3 = _sliced_to_array((0, import_react45.useState)(false), 2), isPlaying = _ref3[0], setIsPlaying = _ref3[1];
3627
+ var _ref3 = _sliced_to_array((0, import_react46.useState)(false), 2), isPlaying = _ref3[0], setIsPlaying = _ref3[1];
3218
3628
  var latestMessageProps = useLatestMessage();
3219
- var unplayedMessageSentences = (0, import_react45.useMemo)(function() {
3629
+ var unplayedMessageSentences = (0, import_react46.useMemo)(function() {
3220
3630
  if (!latestMessageProps.latestMessage) return [];
3221
3631
  if (latestMessageProps.latestMessage.role !== "assistant") return [];
3222
3632
  if (stoppedMessageIds.includes(latestMessageProps.latestMessage.id)) return [];
@@ -3237,7 +3647,7 @@ var useMessageAudio = function(param) {
3237
3647
  latestMessageProps,
3238
3648
  playedMessageSentences
3239
3649
  ]);
3240
- (0, import_react45.useEffect)(function() {
3650
+ (0, import_react46.useEffect)(function() {
3241
3651
  if (isPlaying) return;
3242
3652
  if (audioPlayer.playing) return;
3243
3653
  if (!latestMessageProps.latestMessage) return;
@@ -3305,7 +3715,7 @@ var useMessageAudio = function(param) {
3305
3715
  playedMessageSentences,
3306
3716
  onEnd
3307
3717
  ]);
3308
- (0, import_react45.useEffect)(function() {
3718
+ (0, import_react46.useEffect)(function() {
3309
3719
  if (isHtmlAudioSupported) {
3310
3720
  var _import_howler_Howler__howls___sounds_, _import_howler_Howler__howls_, _import_howler_Howler;
3311
3721
  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;
@@ -3314,9 +3724,9 @@ var useMessageAudio = function(param) {
3314
3724
  }, [
3315
3725
  audioPlayer
3316
3726
  ]);
3317
- var _ref4 = _sliced_to_array((0, import_react45.useState)(null), 2), audioEngine = _ref4[0], setAudioEngine = _ref4[1];
3318
- var isAudioEngineInited = (0, import_react45.useRef)(false);
3319
- (0, import_react45.useEffect)(function() {
3727
+ var _ref4 = _sliced_to_array((0, import_react46.useState)(null), 2), audioEngine = _ref4[0], setAudioEngine = _ref4[1];
3728
+ var isAudioEngineInited = (0, import_react46.useRef)(false);
3729
+ (0, import_react46.useEffect)(function() {
3320
3730
  if (!audioPlayer.playing) return;
3321
3731
  if (isAudioEngineInited.current) return;
3322
3732
  isAudioEngineInited.current = true;
@@ -3337,7 +3747,7 @@ var useMessageAudio = function(param) {
3337
3747
  audioPlayer,
3338
3748
  isAudioEngineInited
3339
3749
  ]);
3340
- var visualizationAnalyser = (0, import_react45.useMemo)(function() {
3750
+ var visualizationAnalyser = (0, import_react46.useMemo)(function() {
3341
3751
  if (!audioEngine) return null;
3342
3752
  var result = audioEngine.audioContext.createAnalyser();
3343
3753
  audioEngine.source.connect(audioEngine.audioContext.destination);
@@ -3346,7 +3756,7 @@ var useMessageAudio = function(param) {
3346
3756
  }, [
3347
3757
  audioEngine
3348
3758
  ]);
3349
- var isPending = (0, import_react45.useMemo)(function() {
3759
+ var isPending = (0, import_react46.useMemo)(function() {
3350
3760
  return isPlaying || unplayedMessageSentences.length > 0;
3351
3761
  }, [
3352
3762
  isPlaying,
@@ -3360,8 +3770,8 @@ var useMessageAudio = function(param) {
3360
3770
  });
3361
3771
  };
3362
3772
  // src/components/threads/AudioThread/Root/index.tsx
3363
- var import_jsx_runtime58 = require("react/jsx-runtime");
3364
- var Root9 = function(param) {
3773
+ var import_jsx_runtime64 = require("react/jsx-runtime");
3774
+ var Root12 = function(param) {
3365
3775
  var children = param.children;
3366
3776
  var createMessageProps = useCreateMessage();
3367
3777
  var recorderProps = useRecorder({
@@ -3418,13 +3828,13 @@ var Root9 = function(param) {
3418
3828
  createMessageProps: createMessageProps,
3419
3829
  messageAudioProps: messageAudioProps
3420
3830
  }).status;
3421
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(AudioThreadContext.Provider, {
3831
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(AudioThreadContext.Provider, {
3422
3832
  value: {
3423
3833
  status: status,
3424
3834
  recorderProps: recorderProps,
3425
3835
  messageAudioProps: messageAudioProps
3426
3836
  },
3427
- children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.Flex, {
3837
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_themes44.Flex, {
3428
3838
  direction: "column",
3429
3839
  flexGrow: "1",
3430
3840
  p: "9",
@@ -3433,25 +3843,25 @@ var Root9 = function(param) {
3433
3843
  });
3434
3844
  };
3435
3845
  // src/components/threads/AudioThread/Visualization/index.tsx
3436
- var import_react48 = require("react");
3846
+ var import_react49 = require("react");
3437
3847
  var import_lodash9 = __toESM(require("lodash"), 1);
3438
- var import_themes45 = require("@radix-ui/themes");
3848
+ var import_themes46 = require("@radix-ui/themes");
3439
3849
  // src/hooks/threads/useAudioThreadContext/index.ts
3440
- var import_react46 = require("react");
3850
+ var import_react47 = require("react");
3441
3851
  var useAudioThreadContext = function() {
3442
- return (0, import_react46.useContext)(AudioThreadContext);
3852
+ return (0, import_react47.useContext)(AudioThreadContext);
3443
3853
  };
3444
3854
  // src/components/threads/AudioThread/BarsVisualizer/index.tsx
3445
3855
  var import_lodash8 = __toESM(require("lodash"), 1);
3446
- var import_themes44 = require("@radix-ui/themes");
3447
- var import_react47 = require("react");
3856
+ var import_themes45 = require("@radix-ui/themes");
3857
+ var import_react48 = require("react");
3448
3858
  var import_radash14 = require("radash");
3449
- var import_jsx_runtime59 = require("react/jsx-runtime");
3859
+ var import_jsx_runtime65 = require("react/jsx-runtime");
3450
3860
  var barCount = 4;
3451
3861
  var BarsVisualizer = function(param) {
3452
3862
  var visualizationAnalyser = param.visualizationAnalyser, backgroundColor = param.backgroundColor, height = param.height, barWidth = param.barWidth;
3453
- var _ref = _sliced_to_array((0, import_react47.useState)([]), 2), barHeights = _ref[0], setBarHeights = _ref[1];
3454
- var draw = (0, import_react47.useCallback)(function(param) {
3863
+ var _ref = _sliced_to_array((0, import_react48.useState)([]), 2), barHeights = _ref[0], setBarHeights = _ref[1];
3864
+ var draw = (0, import_react48.useCallback)(function(param) {
3455
3865
  var visualizationAnalyser2 = param.visualizationAnalyser;
3456
3866
  if (!visualizationAnalyser2) {
3457
3867
  setBarHeights(Array(barCount).fill(0));
@@ -3469,7 +3879,7 @@ var BarsVisualizer = function(param) {
3469
3879
  });
3470
3880
  });
3471
3881
  }, []);
3472
- (0, import_react47.useEffect)(function() {
3882
+ (0, import_react48.useEffect)(function() {
3473
3883
  draw({
3474
3884
  visualizationAnalyser: visualizationAnalyser
3475
3885
  });
@@ -3477,7 +3887,7 @@ var BarsVisualizer = function(param) {
3477
3887
  draw,
3478
3888
  visualizationAnalyser
3479
3889
  ]);
3480
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_themes44.Grid, {
3890
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_themes45.Grid, {
3481
3891
  columns: "".concat(barCount),
3482
3892
  gap: "1",
3483
3893
  width: "auto",
@@ -3486,12 +3896,12 @@ var BarsVisualizer = function(param) {
3486
3896
  gridTemplateColumns: "repeat(4, minmax(0, 1fr))"
3487
3897
  },
3488
3898
  children: barHeights.map(function(barHeight, index) {
3489
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_themes44.Flex, {
3899
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_themes45.Flex, {
3490
3900
  direction: "column",
3491
3901
  align: "center",
3492
3902
  justify: "center",
3493
3903
  height: height,
3494
- children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_themes44.Flex, {
3904
+ children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_themes45.Flex, {
3495
3905
  minHeight: "50%",
3496
3906
  maxHeight: "100%",
3497
3907
  height: "".concat(barHeight + 20, "%"),
@@ -3506,12 +3916,12 @@ var BarsVisualizer = function(param) {
3506
3916
  });
3507
3917
  };
3508
3918
  // src/components/threads/AudioThread/Visualization/index.tsx
3509
- var import_jsx_runtime60 = require("react/jsx-runtime");
3919
+ var import_jsx_runtime66 = require("react/jsx-runtime");
3510
3920
  var Visualization = function() {
3511
3921
  var audioThreadContext = useAudioThreadContext();
3512
- var assistantNameContext = (0, import_react48.useContext)(AssistantNameContext);
3513
- var _ref = _sliced_to_array((0, import_react48.useState)(0), 2), scale = _ref[0], setScale = _ref[1];
3514
- var draw = (0, import_react48.useCallback)(function(param) {
3922
+ var assistantNameContext = (0, import_react49.useContext)(AssistantNameContext);
3923
+ var _ref = _sliced_to_array((0, import_react49.useState)(0), 2), scale = _ref[0], setScale = _ref[1];
3924
+ var draw = (0, import_react49.useCallback)(function(param) {
3515
3925
  var visualizationAnalyser = param.visualizationAnalyser;
3516
3926
  if (!visualizationAnalyser) {
3517
3927
  setScale(1);
@@ -3526,7 +3936,7 @@ var Visualization = function() {
3526
3936
  });
3527
3937
  });
3528
3938
  }, []);
3529
- (0, import_react48.useEffect)(function() {
3939
+ (0, import_react49.useEffect)(function() {
3530
3940
  draw({
3531
3941
  visualizationAnalyser: audioThreadContext.recorderProps.visualizationAnalyser
3532
3942
  });
@@ -3534,14 +3944,14 @@ var Visualization = function() {
3534
3944
  draw,
3535
3945
  audioThreadContext
3536
3946
  ]);
3537
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_themes45.Flex, {
3947
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_themes46.Flex, {
3538
3948
  direction: "column",
3539
3949
  align: "center",
3540
3950
  justify: "center",
3541
3951
  mb: "3",
3542
3952
  flexGrow: "1",
3543
3953
  children: [
3544
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_themes45.Flex, {
3954
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_themes46.Flex, {
3545
3955
  align: "center",
3546
3956
  justify: "center",
3547
3957
  height: "200px",
@@ -3551,20 +3961,20 @@ var Visualization = function() {
3551
3961
  borderRadius: "9999px",
3552
3962
  scale: scale
3553
3963
  },
3554
- children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(BarsVisualizer, {
3964
+ children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(BarsVisualizer, {
3555
3965
  visualizationAnalyser: audioThreadContext.messageAudioProps.visualizationAnalyser,
3556
3966
  backgroundColor: audioThreadContext.status === "playing" ? "var(--accent-11)" : "var(--gray-11)",
3557
3967
  height: "40px",
3558
3968
  barWidth: "24px"
3559
3969
  })
3560
3970
  }),
3561
- /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_themes45.Flex, {
3971
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_themes46.Flex, {
3562
3972
  ml: "-22.5px",
3563
3973
  gap: "3",
3564
3974
  pt: "5",
3565
3975
  children: [
3566
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(AssistantAvatar, {}),
3567
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Name, {
3976
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(AssistantAvatar, {}),
3977
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Name, {
3568
3978
  children: assistantNameContext
3569
3979
  })
3570
3980
  ]
@@ -3573,8 +3983,8 @@ var Visualization = function() {
3573
3983
  });
3574
3984
  };
3575
3985
  // src/components/threads/AudioThread/Status/StatusMessages.tsx
3576
- var import_themes46 = require("@radix-ui/themes");
3577
- var import_jsx_runtime61 = require("react/jsx-runtime");
3986
+ var import_themes47 = require("@radix-ui/themes");
3987
+ var import_jsx_runtime67 = require("react/jsx-runtime");
3578
3988
  var html = function(param) {
3579
3989
  var texts = param.texts;
3580
3990
  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) {
@@ -3583,17 +3993,17 @@ var html = function(param) {
3583
3993
  };
3584
3994
  var StatusMessages = function(param) {
3585
3995
  var texts = param.texts;
3586
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_themes46.Flex, {
3996
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_themes47.Flex, {
3587
3997
  justify: "center",
3588
3998
  pb: "5",
3589
3999
  children: [
3590
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes46.Text, {
4000
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_themes47.Text, {
3591
4001
  size: "2",
3592
4002
  weight: "regular",
3593
4003
  color: "gray",
3594
4004
  className: "status-messages-texts"
3595
4005
  }),
3596
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("style", {
4006
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("style", {
3597
4007
  dangerouslySetInnerHTML: {
3598
4008
  __html: html({
3599
4009
  texts: texts
@@ -3604,11 +4014,11 @@ var StatusMessages = function(param) {
3604
4014
  });
3605
4015
  };
3606
4016
  // src/components/threads/AudioThread/Status/index.tsx
3607
- var import_jsx_runtime62 = require("react/jsx-runtime");
4017
+ var import_jsx_runtime68 = require("react/jsx-runtime");
3608
4018
  var Status = function() {
3609
4019
  var audioThreadContext = useAudioThreadContext();
3610
4020
  if (audioThreadContext.status === "recording") {
3611
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(StatusMessages, {
4021
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(StatusMessages, {
3612
4022
  texts: [
3613
4023
  "Start speaking",
3614
4024
  "Listening",
@@ -3622,31 +4032,31 @@ var Status = function() {
3622
4032
  "idle",
3623
4033
  "playerPaused"
3624
4034
  ].includes(audioThreadContext.status)) {
3625
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(StatusMessages, {
4035
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(StatusMessages, {
3626
4036
  texts: [
3627
4037
  "Click the button below to activate"
3628
4038
  ]
3629
4039
  });
3630
4040
  }
3631
4041
  if (audioThreadContext.status === "playing") {
3632
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(StatusMessages, {
4042
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(StatusMessages, {
3633
4043
  texts: [
3634
4044
  "Click the button below to interrupt"
3635
4045
  ]
3636
4046
  });
3637
4047
  }
3638
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(StatusMessages, {
4048
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(StatusMessages, {
3639
4049
  texts: [
3640
4050
  "Thinking"
3641
4051
  ]
3642
4052
  });
3643
4053
  };
3644
4054
  // src/components/threads/AudioThread/Form/index.tsx
3645
- var import_themes48 = require("@radix-ui/themes");
4055
+ var import_themes49 = require("@radix-ui/themes");
3646
4056
  // src/components/threads/AudioThread/Form/MicIcon.tsx
3647
- var import_jsx_runtime63 = require("react/jsx-runtime");
4057
+ var import_jsx_runtime69 = require("react/jsx-runtime");
3648
4058
  var MicIcon = function(props) {
3649
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("svg", _object_spread_props(_object_spread({
4059
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("svg", _object_spread_props(_object_spread({
3650
4060
  xmlns: "http://www.w3.org/2000/svg",
3651
4061
  fill: "currentColor",
3652
4062
  stroke: "currentColor",
@@ -3655,54 +4065,54 @@ var MicIcon = function(props) {
3655
4065
  height: "15",
3656
4066
  width: "15"
3657
4067
  }, props), {
3658
- children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("path", {
4068
+ children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("path", {
3659
4069
  stroke: "none",
3660
4070
  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"
3661
4071
  })
3662
4072
  }));
3663
4073
  };
3664
4074
  // src/components/threads/AudioThread/Form/ActionButton/index.tsx
3665
- var import_themes47 = require("@radix-ui/themes");
3666
- var import_react_icons9 = require("@radix-ui/react-icons");
3667
- var import_jsx_runtime64 = require("react/jsx-runtime");
4075
+ var import_themes48 = require("@radix-ui/themes");
4076
+ var import_react_icons12 = require("@radix-ui/react-icons");
4077
+ var import_jsx_runtime70 = require("react/jsx-runtime");
3668
4078
  var ActionButton = function() {
3669
4079
  var audioThreadContext = useAudioThreadContext();
3670
4080
  var superinterfaceContext = useSuperinterfaceContext();
3671
4081
  if (audioThreadContext.status === "recording") {
3672
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_themes47.Flex, {
4082
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_themes48.Flex, {
3673
4083
  align: "center",
3674
4084
  children: [
3675
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_themes47.Flex, {
4085
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_themes48.Flex, {
3676
4086
  mr: "3",
3677
4087
  ml: "-7",
3678
- children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_themes47.IconButton, {
4088
+ children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_themes48.IconButton, {
3679
4089
  onClick: audioThreadContext.recorderProps.pause,
3680
4090
  color: "gray",
3681
4091
  variant: "soft",
3682
4092
  size: "1",
3683
- children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_react_icons9.PauseIcon, {})
4093
+ children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_icons12.PauseIcon, {})
3684
4094
  })
3685
4095
  }),
3686
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_themes47.IconButton, {
4096
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_themes48.IconButton, {
3687
4097
  onClick: audioThreadContext.recorderProps.stop,
3688
4098
  highContrast: true,
3689
4099
  variant: "soft",
3690
4100
  size: "4",
3691
- children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_react_icons9.ArrowUpIcon, {})
4101
+ children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_icons12.ArrowUpIcon, {})
3692
4102
  })
3693
4103
  ]
3694
4104
  });
3695
4105
  }
3696
4106
  if (audioThreadContext.status === "recorderPaused") {
3697
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_themes47.IconButton, {
4107
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_themes48.IconButton, {
3698
4108
  onClick: audioThreadContext.recorderProps.resume,
3699
4109
  color: "red",
3700
4110
  size: "4",
3701
- children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_react_icons9.ResumeIcon, {})
4111
+ children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_icons12.ResumeIcon, {})
3702
4112
  });
3703
4113
  }
3704
4114
  if (audioThreadContext.status === "idle") {
3705
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_themes47.IconButton, {
4115
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_themes48.IconButton, {
3706
4116
  onClick: function() {
3707
4117
  return audioThreadContext.recorderProps.start();
3708
4118
  },
@@ -3711,7 +4121,7 @@ var ActionButton = function() {
3711
4121
  });
3712
4122
  }
3713
4123
  if (audioThreadContext.status === "playing") {
3714
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_themes47.IconButton, {
4124
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_themes48.IconButton, {
3715
4125
  onClick: function() {
3716
4126
  var _superinterfaceContext_createMessageAbortControllerRef_current;
3717
4127
  audioThreadContext.messageAudioProps.stop();
@@ -3721,54 +4131,54 @@ var ActionButton = function() {
3721
4131
  size: "4",
3722
4132
  color: "gray",
3723
4133
  variant: "soft",
3724
- children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_react_icons9.StopIcon, {})
4134
+ children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_icons12.StopIcon, {})
3725
4135
  });
3726
4136
  }
3727
4137
  if (audioThreadContext.status === "playerPaused") {
3728
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_themes47.IconButton, {
4138
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_themes48.IconButton, {
3729
4139
  onClick: function() {
3730
4140
  return audioThreadContext.messageAudioProps.play();
3731
4141
  },
3732
4142
  size: "4",
3733
- children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_react_icons9.ResumeIcon, {})
4143
+ children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_icons12.ResumeIcon, {})
3734
4144
  });
3735
4145
  }
3736
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_themes47.IconButton, {
4146
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_themes48.IconButton, {
3737
4147
  size: "4",
3738
4148
  variant: "soft",
3739
4149
  disabled: true
3740
4150
  });
3741
4151
  };
3742
4152
  // src/components/threads/AudioThread/Form/index.tsx
3743
- var import_jsx_runtime65 = require("react/jsx-runtime");
4153
+ var import_jsx_runtime71 = require("react/jsx-runtime");
3744
4154
  var Form = function() {
3745
4155
  var audioThreadContext = useAudioThreadContext();
3746
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_themes48.Flex, {
4156
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_themes49.Flex, {
3747
4157
  direction: "column",
3748
4158
  align: "center",
3749
4159
  children: [
3750
- /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_themes48.Flex, {
4160
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_themes49.Flex, {
3751
4161
  pb: "3",
3752
4162
  align: "center",
3753
4163
  children: [
3754
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_themes48.Flex, {
4164
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_themes49.Flex, {
3755
4165
  ml: "-22.5px",
3756
4166
  mr: "2",
3757
4167
  align: "center",
3758
- children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(MicIcon, {
4168
+ children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(MicIcon, {
3759
4169
  style: {
3760
4170
  color: audioThreadContext.status === "recording" ? "var(--accent-11)" : "var(--gray-11)"
3761
4171
  }
3762
4172
  })
3763
4173
  }),
3764
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_themes48.Flex, {
4174
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_themes49.Flex, {
3765
4175
  px: "2",
3766
4176
  py: "1",
3767
4177
  style: {
3768
4178
  backgroundColor: audioThreadContext.status === "recording" ? "var(--accent-4)" : "var(--gray-4)",
3769
4179
  borderRadius: "var(--radius-6)"
3770
4180
  },
3771
- children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(BarsVisualizer, {
4181
+ children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(BarsVisualizer, {
3772
4182
  visualizationAnalyser: audioThreadContext.recorderProps.visualizationAnalyser,
3773
4183
  backgroundColor: audioThreadContext.status === "recording" ? "var(--accent-11)" : "var(--gray-11)",
3774
4184
  height: "20px",
@@ -3777,57 +4187,54 @@ var Form = function() {
3777
4187
  })
3778
4188
  ]
3779
4189
  }),
3780
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(ActionButton, {})
4190
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(ActionButton, {})
3781
4191
  ]
3782
4192
  });
3783
4193
  };
3784
4194
  // src/components/threads/AudioThread/index.tsx
3785
- var import_jsx_runtime66 = require("react/jsx-runtime");
4195
+ var import_jsx_runtime72 = require("react/jsx-runtime");
3786
4196
  var AudioThread = function(props) {
3787
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(Root9, _object_spread_props(_object_spread({}, props), {
4197
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(Root12, _object_spread_props(_object_spread({}, props), {
3788
4198
  children: [
3789
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Visualization, {}),
3790
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Status, {}),
3791
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Form, {})
4199
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Visualization, {}),
4200
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Status, {}),
4201
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Form, {})
3792
4202
  ]
3793
4203
  }));
3794
4204
  };
3795
- AudioThread.Root = Root9;
4205
+ AudioThread.Root = Root12;
3796
4206
  AudioThread.Visualization = Visualization;
3797
4207
  AudioThread.Form = Form;
3798
4208
  // src/components/threads/AudioThreadDialog/index.tsx
3799
- var import_jsx_runtime67 = require("react/jsx-runtime");
4209
+ var import_jsx_runtime73 = require("react/jsx-runtime");
3800
4210
  var AudioThreadDialog = function() {
3801
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Root7, {
4211
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(Root9, {
3802
4212
  children: [
3803
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Content4.Root, {
3804
- children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(AudioThread, {})
4213
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Content4.Root, {
4214
+ children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(AudioThread, {})
3805
4215
  }),
3806
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Trigger, {
3807
- children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Button2, {})
3808
- })
4216
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Trigger, {})
3809
4217
  ]
3810
4218
  });
3811
4219
  };
3812
- AudioThreadDialog.Root = Root7;
4220
+ AudioThreadDialog.Root = Root9;
3813
4221
  AudioThreadDialog.Trigger = Trigger;
3814
- AudioThreadDialog.Button = Button2;
3815
4222
  AudioThreadDialog.Content = Content4;
3816
4223
  // src/components/suggestions/Suggestions/index.tsx
3817
- var import_react50 = require("react");
4224
+ var import_react51 = require("react");
3818
4225
  // src/components/suggestions/Suggestions/Content.tsx
3819
- var import_react49 = require("react");
4226
+ var import_react50 = require("react");
3820
4227
  var import_radash15 = require("radash");
3821
4228
  var import_react_children_utilities = require("react-children-utilities");
3822
- var import_themes50 = require("@radix-ui/themes");
4229
+ var import_themes51 = require("@radix-ui/themes");
3823
4230
  // src/components/suggestions/Suggestions/Item.tsx
3824
- var import_react_icons10 = require("@radix-ui/react-icons");
3825
- var import_themes49 = require("@radix-ui/themes");
3826
- var import_jsx_runtime68 = require("react/jsx-runtime");
4231
+ var import_react_icons13 = require("@radix-ui/react-icons");
4232
+ var import_themes50 = require("@radix-ui/themes");
4233
+ var import_jsx_runtime74 = require("react/jsx-runtime");
3827
4234
  var Item = function(param) {
3828
4235
  var suggestion = param.suggestion, isDisabled = param.isDisabled;
3829
4236
  var _useCreateMessage = useCreateMessage(), createMessage = _useCreateMessage.createMessage, isPending = _useCreateMessage.isPending;
3830
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Content5, {
4237
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Content5, {
3831
4238
  onClick: function() {
3832
4239
  createMessage({
3833
4240
  // @ts-ignore-next-line
@@ -3841,7 +4248,7 @@ var Item = function(param) {
3841
4248
  };
3842
4249
  var Content5 = function(param) {
3843
4250
  var onClick = param.onClick, isDisabled = param.isDisabled, isPending = param.isPending, children = param.children;
3844
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_themes49.Button, {
4251
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_themes50.Button, {
3845
4252
  variant: "soft",
3846
4253
  onClick: onClick,
3847
4254
  disabled: isDisabled,
@@ -3851,14 +4258,14 @@ var Content5 = function(param) {
3851
4258
  flexShrink: 1
3852
4259
  },
3853
4260
  children: [
3854
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_themes49.Text, {
4261
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_themes50.Text, {
3855
4262
  size: "1",
3856
4263
  weight: "regular",
3857
4264
  children: children
3858
4265
  }),
3859
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_themes49.Spinner, {
4266
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_themes50.Spinner, {
3860
4267
  loading: isPending,
3861
- children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react_icons10.ArrowUpIcon, {
4268
+ children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_react_icons13.ArrowUpIcon, {
3862
4269
  style: {
3863
4270
  flexShrink: 0
3864
4271
  }
@@ -3869,11 +4276,11 @@ var Content5 = function(param) {
3869
4276
  };
3870
4277
  Item.Content = Content5;
3871
4278
  // src/components/suggestions/Suggestions/Content.tsx
3872
- var import_jsx_runtime69 = require("react/jsx-runtime");
4279
+ var import_jsx_runtime75 = require("react/jsx-runtime");
3873
4280
  var Content6 = function(param) {
3874
4281
  var children = param.children;
3875
4282
  var isMutatingMessage = useIsMutatingMessage();
3876
- var suggestions = (0, import_react49.useMemo)(function() {
4283
+ var suggestions = (0, import_react50.useMemo)(function() {
3877
4284
  return (0, import_react_children_utilities.onlyText)(children).split(/\r?\n/).filter(function(c) {
3878
4285
  return !(0, import_radash15.isEmpty)(c);
3879
4286
  }).map(function(c) {
@@ -3883,12 +4290,12 @@ var Content6 = function(param) {
3883
4290
  children
3884
4291
  ]);
3885
4292
  if ((0, import_radash15.isEmpty)(suggestions)) return null;
3886
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_themes50.Flex, {
4293
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_themes51.Flex, {
3887
4294
  gap: "2",
3888
4295
  py: "2",
3889
4296
  wrap: "wrap",
3890
4297
  children: suggestions.map(function(suggestion) {
3891
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Item, {
4298
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Item, {
3892
4299
  suggestion: suggestion,
3893
4300
  isDisabled: isMutatingMessage
3894
4301
  }, suggestion);
@@ -3896,11 +4303,11 @@ var Content6 = function(param) {
3896
4303
  });
3897
4304
  };
3898
4305
  // src/components/suggestions/Suggestions/index.tsx
3899
- var import_jsx_runtime70 = require("react/jsx-runtime");
4306
+ var import_jsx_runtime76 = require("react/jsx-runtime");
3900
4307
  var Suggestions = function(param) {
3901
4308
  var children = param.children;
3902
4309
  var latestMessageProps = useLatestMessage();
3903
- var isDisabled = (0, import_react50.useMemo)(function() {
4310
+ var isDisabled = (0, import_react51.useMemo)(function() {
3904
4311
  var // @ts-ignore-next-line
3905
4312
  _latestMessageProps_latestMessage_metadata, _latestMessageProps_latestMessage;
3906
4313
  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;
@@ -3909,51 +4316,51 @@ var Suggestions = function(param) {
3909
4316
  ]);
3910
4317
  if (latestMessageProps.isLoading) return null;
3911
4318
  if (isDisabled) return null;
3912
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Content6, {
4319
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Content6, {
3913
4320
  children: children
3914
4321
  });
3915
4322
  };
3916
4323
  Suggestions.Item = Item;
3917
4324
  // src/components/markdown/MarkdownProvider/index.tsx
3918
- var import_react51 = require("react");
3919
- var import_jsx_runtime71 = require("react/jsx-runtime");
4325
+ var import_react52 = require("react");
4326
+ var import_jsx_runtime77 = require("react/jsx-runtime");
3920
4327
  var MarkdownProvider = function(_param) {
3921
4328
  var children = _param.children, rest = _object_without_properties(_param, [
3922
4329
  "children"
3923
4330
  ]);
3924
4331
  var prevMarkdownContext = useMarkdownContext();
3925
- var value = (0, import_react51.useMemo)(function() {
4332
+ var value = (0, import_react52.useMemo)(function() {
3926
4333
  return merge(prevMarkdownContext, rest);
3927
4334
  }, [
3928
4335
  rest,
3929
4336
  prevMarkdownContext
3930
4337
  ]);
3931
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(MarkdownContext.Provider, {
4338
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(MarkdownContext.Provider, {
3932
4339
  value: value,
3933
4340
  children: children
3934
4341
  });
3935
4342
  };
3936
4343
  // src/components/components/ComponentsProvider.tsx
3937
- var import_react53 = require("react");
4344
+ var import_react54 = require("react");
3938
4345
  // src/hooks/components/useComponents.ts
3939
- var import_react52 = require("react");
4346
+ var import_react53 = require("react");
3940
4347
  var useComponents = function() {
3941
- return (0, import_react52.useContext)(ComponentsContext);
4348
+ return (0, import_react53.useContext)(ComponentsContext);
3942
4349
  };
3943
4350
  // src/components/components/ComponentsProvider.tsx
3944
- var import_jsx_runtime72 = require("react/jsx-runtime");
4351
+ var import_jsx_runtime78 = require("react/jsx-runtime");
3945
4352
  var ComponentsProvider = function(_param) {
3946
4353
  var children = _param.children, rest = _object_without_properties(_param, [
3947
4354
  "children"
3948
4355
  ]);
3949
4356
  var prevComponents = useComponents();
3950
- var value = (0, import_react53.useMemo)(function() {
4357
+ var value = (0, import_react54.useMemo)(function() {
3951
4358
  return merge(prevComponents, rest);
3952
4359
  }, [
3953
4360
  rest,
3954
4361
  prevComponents
3955
4362
  ]);
3956
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ComponentsContext.Provider, {
4363
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(ComponentsContext.Provider, {
3957
4364
  value: value,
3958
4365
  children: children
3959
4366
  });