@superinterface/react 2.10.1 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +220 -180
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -196
- package/dist/index.d.ts +2 -196
- package/dist/index.js +124 -84
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -391,6 +391,8 @@ __export(src_exports, {
|
|
|
391
391
|
}
|
|
392
392
|
});
|
|
393
393
|
module.exports = __toCommonJS(src_exports);
|
|
394
|
+
// src/components/core/SuperinterfaceProvider/index.tsx
|
|
395
|
+
var import_react3 = require("react");
|
|
394
396
|
// src/lib/misc/merge/index.ts
|
|
395
397
|
var import_lodash2 = __toESM(require("lodash"), 1);
|
|
396
398
|
// src/lib/misc/merge/customizer.ts
|
|
@@ -451,7 +453,10 @@ var SuperinterfaceContext = (0, import_react.createContext)({
|
|
|
451
453
|
queries: {},
|
|
452
454
|
mutations: {}
|
|
453
455
|
},
|
|
454
|
-
threadIdCookieOptions: options
|
|
456
|
+
threadIdCookieOptions: options,
|
|
457
|
+
createMessageAbortControllerRef: {
|
|
458
|
+
current: null
|
|
459
|
+
}
|
|
455
460
|
});
|
|
456
461
|
// src/hooks/core/useSuperinterfaceContext/index.ts
|
|
457
462
|
var import_react2 = require("react");
|
|
@@ -463,7 +468,8 @@ var import_jsx_runtime = require("react/jsx-runtime");
|
|
|
463
468
|
var SuperinterfaceProvider = function(param) {
|
|
464
469
|
var children = param.children, baseUrl2 = param.baseUrl, variables = param.variables, defaultOptions = param.defaultOptions, threadIdCookieOptions = param.threadIdCookieOptions;
|
|
465
470
|
var superinterfaceContext = useSuperinterfaceContext();
|
|
466
|
-
var
|
|
471
|
+
var createMessageAbortControllerRef = (0, import_react3.useRef)(null);
|
|
472
|
+
var value = merge(superinterfaceContext, _object_spread_props(_object_spread({}, baseUrl2 ? {
|
|
467
473
|
baseUrl: baseUrl2
|
|
468
474
|
} : {}, variables ? {
|
|
469
475
|
variables: variables
|
|
@@ -471,7 +477,9 @@ var SuperinterfaceProvider = function(param) {
|
|
|
471
477
|
defaultOptions: defaultOptions
|
|
472
478
|
} : {}, threadIdCookieOptions ? {
|
|
473
479
|
threadIdCookieOptions: threadIdCookieOptions
|
|
474
|
-
} : {})
|
|
480
|
+
} : {}), {
|
|
481
|
+
createMessageAbortControllerRef: createMessageAbortControllerRef
|
|
482
|
+
}));
|
|
475
483
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SuperinterfaceContext.Provider, {
|
|
476
484
|
value: value,
|
|
477
485
|
children: children
|
|
@@ -480,9 +488,9 @@ var SuperinterfaceProvider = function(param) {
|
|
|
480
488
|
// src/components/threads/Thread/Messages/index.tsx
|
|
481
489
|
var import_themes30 = require("@radix-ui/themes");
|
|
482
490
|
// src/components/threads/Thread/Messages/Content/index.tsx
|
|
483
|
-
var
|
|
491
|
+
var import_react22 = require("react");
|
|
484
492
|
// src/hooks/messages/useMessages/index.tsx
|
|
485
|
-
var
|
|
493
|
+
var import_react4 = require("react");
|
|
486
494
|
var import_react_query2 = require("@tanstack/react-query");
|
|
487
495
|
// src/lib/threads/queryOptions/index.ts
|
|
488
496
|
var import_react_query = require("@tanstack/react-query");
|
|
@@ -610,7 +618,7 @@ var useMessages = function() {
|
|
|
610
618
|
threadContext: threadContext,
|
|
611
619
|
superinterfaceContext: superinterfaceContext
|
|
612
620
|
}));
|
|
613
|
-
return (0,
|
|
621
|
+
return (0, import_react4.useMemo)(function() {
|
|
614
622
|
return _object_spread_props(_object_spread({}, props), {
|
|
615
623
|
// @ts-ignore-next-line
|
|
616
624
|
messages: messages({
|
|
@@ -622,7 +630,7 @@ var useMessages = function() {
|
|
|
622
630
|
]);
|
|
623
631
|
};
|
|
624
632
|
// src/hooks/messageGroups/useMessageGroups/index.ts
|
|
625
|
-
var
|
|
633
|
+
var import_react5 = require("react");
|
|
626
634
|
// src/hooks/messageGroups/useMessageGroups/lib/messageGroups/index.ts
|
|
627
635
|
var import_lodash3 = __toESM(require("lodash"), 1);
|
|
628
636
|
var import_radash2 = require("radash");
|
|
@@ -684,7 +692,7 @@ var messageGroups = function(param) {
|
|
|
684
692
|
// src/hooks/messageGroups/useMessageGroups/index.ts
|
|
685
693
|
var useMessageGroups = function(param) {
|
|
686
694
|
var messages2 = param.messages;
|
|
687
|
-
return (0,
|
|
695
|
+
return (0, import_react5.useMemo)(function() {
|
|
688
696
|
return {
|
|
689
697
|
messageGroups: messageGroups({
|
|
690
698
|
messages: messages2
|
|
@@ -695,13 +703,13 @@ var useMessageGroups = function(param) {
|
|
|
695
703
|
]);
|
|
696
704
|
};
|
|
697
705
|
// src/components/skeletons/MessagesSkeleton/index.tsx
|
|
698
|
-
var
|
|
706
|
+
var import_react7 = require("react");
|
|
699
707
|
var import_themes3 = require("@radix-ui/themes");
|
|
700
708
|
// src/components/messageGroups/MessageGroupBase/index.tsx
|
|
701
|
-
var
|
|
709
|
+
var import_react6 = require("react");
|
|
702
710
|
var import_themes = require("@radix-ui/themes");
|
|
703
711
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
704
|
-
var MessageGroupBase = (0,
|
|
712
|
+
var MessageGroupBase = (0, import_react6.forwardRef)(function MessageGroupBase2(param, ref) {
|
|
705
713
|
var children = param.children;
|
|
706
714
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_themes.Container, {
|
|
707
715
|
ref: ref,
|
|
@@ -731,7 +739,7 @@ var Name = function(param) {
|
|
|
731
739
|
};
|
|
732
740
|
// src/components/skeletons/MessagesSkeleton/index.tsx
|
|
733
741
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
734
|
-
var MessagesSkeleton = (0,
|
|
742
|
+
var MessagesSkeleton = (0, import_react7.forwardRef)(function MessagesSkeleton2(_props, ref) {
|
|
735
743
|
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(MessageGroupBase, {
|
|
736
744
|
ref: ref,
|
|
737
745
|
children: [
|
|
@@ -779,37 +787,37 @@ var MessagesSkeleton = (0, import_react6.forwardRef)(function MessagesSkeleton2(
|
|
|
779
787
|
});
|
|
780
788
|
});
|
|
781
789
|
// src/hooks/toasts/useToasts/index.ts
|
|
782
|
-
var
|
|
790
|
+
var import_react9 = require("react");
|
|
783
791
|
// src/contexts/toasts/ToastsContext/index.ts
|
|
784
|
-
var
|
|
785
|
-
var ToastsContext = (0,
|
|
792
|
+
var import_react8 = require("react");
|
|
793
|
+
var ToastsContext = (0, import_react8.createContext)({
|
|
786
794
|
toasts: [],
|
|
787
795
|
addToast: function() {}
|
|
788
796
|
});
|
|
789
797
|
// src/hooks/toasts/useToasts/index.ts
|
|
790
798
|
var useToasts = function() {
|
|
791
|
-
return (0,
|
|
799
|
+
return (0, import_react9.useContext)(ToastsContext);
|
|
792
800
|
};
|
|
793
801
|
// src/components/threads/Thread/Messages/Content/MessageGroup/index.tsx
|
|
794
|
-
var
|
|
802
|
+
var import_react21 = require("react");
|
|
795
803
|
var import_themes27 = require("@radix-ui/themes");
|
|
796
804
|
var import_react_icons4 = require("@radix-ui/react-icons");
|
|
797
805
|
// src/components/messageGroups/MessageGroupBase/AssistantAvatar.tsx
|
|
798
|
-
var
|
|
806
|
+
var import_react11 = require("react");
|
|
799
807
|
var import_themes5 = require("@radix-ui/themes");
|
|
800
808
|
// src/contexts/assistants/AssistantAvatarContext/index.tsx
|
|
801
|
-
var
|
|
809
|
+
var import_react10 = require("react");
|
|
802
810
|
var import_themes4 = require("@radix-ui/themes");
|
|
803
811
|
var import_react_icons = require("@radix-ui/react-icons");
|
|
804
812
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
805
|
-
var AssistantAvatarContext = (0,
|
|
813
|
+
var AssistantAvatarContext = (0, import_react10.createContext)(/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_themes4.Avatar, {
|
|
806
814
|
fallback: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_icons.LightningBoltIcon, {}),
|
|
807
815
|
size: "1"
|
|
808
816
|
}));
|
|
809
817
|
// src/components/messageGroups/MessageGroupBase/AssistantAvatar.tsx
|
|
810
818
|
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
811
819
|
var AssistantAvatar = function() {
|
|
812
|
-
var AssistantAvatarContextValue = (0,
|
|
820
|
+
var AssistantAvatarContextValue = (0, import_react11.useContext)(AssistantAvatarContext);
|
|
813
821
|
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_themes5.Flex, {
|
|
814
822
|
flexShrink: "0",
|
|
815
823
|
height: "24px",
|
|
@@ -822,12 +830,12 @@ var AssistantAvatar = function() {
|
|
|
822
830
|
});
|
|
823
831
|
};
|
|
824
832
|
// src/contexts/assistants/AssistantNameContext/index.tsx
|
|
825
|
-
var
|
|
826
|
-
var AssistantNameContext = (0,
|
|
833
|
+
var import_react12 = require("react");
|
|
834
|
+
var AssistantNameContext = (0, import_react12.createContext)("Assistant");
|
|
827
835
|
// src/components/threads/Thread/Messages/Content/MessageGroup/Content/index.tsx
|
|
828
836
|
var import_themes26 = require("@radix-ui/themes");
|
|
829
837
|
// src/components/threads/Thread/Message/index.tsx
|
|
830
|
-
var
|
|
838
|
+
var import_react20 = require("react");
|
|
831
839
|
var import_themes25 = require("@radix-ui/themes");
|
|
832
840
|
// src/components/skeletons/StartingContentSkeleton/index.tsx
|
|
833
841
|
var import_themes6 = require("@radix-ui/themes");
|
|
@@ -851,10 +859,10 @@ var import_themes14 = require("@radix-ui/themes");
|
|
|
851
859
|
// src/components/runSteps/RunStep/ToolCalls/ToolCall/index.tsx
|
|
852
860
|
var import_themes12 = require("@radix-ui/themes");
|
|
853
861
|
// src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/index.tsx
|
|
854
|
-
var
|
|
862
|
+
var import_react15 = require("react");
|
|
855
863
|
// src/contexts/functions/FunctionComponentsContext/index.tsx
|
|
856
|
-
var
|
|
857
|
-
var FunctionComponentsContext = (0,
|
|
864
|
+
var import_react13 = require("react");
|
|
865
|
+
var FunctionComponentsContext = (0, import_react13.createContext)({});
|
|
858
866
|
// src/components/functions/FunctionBase/index.tsx
|
|
859
867
|
var import_themes10 = require("@radix-ui/themes");
|
|
860
868
|
// src/components/toolCalls/ToolCallBase/index.tsx
|
|
@@ -902,12 +910,12 @@ var Icon = function(param) {
|
|
|
902
910
|
}
|
|
903
911
|
};
|
|
904
912
|
// src/components/functions/FunctionBase/Content.tsx
|
|
905
|
-
var
|
|
913
|
+
var import_react14 = require("react");
|
|
906
914
|
var import_themes9 = require("@radix-ui/themes");
|
|
907
915
|
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
908
916
|
var Content = function(param) {
|
|
909
917
|
var fn = param.fn;
|
|
910
|
-
var args = (0,
|
|
918
|
+
var args = (0, import_react14.useMemo)(function() {
|
|
911
919
|
var result = null;
|
|
912
920
|
try {
|
|
913
921
|
result = JSON.parse(fn.arguments);
|
|
@@ -918,7 +926,7 @@ var Content = function(param) {
|
|
|
918
926
|
}, [
|
|
919
927
|
fn
|
|
920
928
|
]);
|
|
921
|
-
var output = (0,
|
|
929
|
+
var output = (0, import_react14.useMemo)(function() {
|
|
922
930
|
if (!fn.output) {
|
|
923
931
|
return null;
|
|
924
932
|
}
|
|
@@ -1008,7 +1016,7 @@ var import_jsx_runtime14 = // @ts-ignore-next-line
|
|
|
1008
1016
|
require("react/jsx-runtime");
|
|
1009
1017
|
var Fn = function(param) {
|
|
1010
1018
|
var fn = param.fn, runStep = param.runStep;
|
|
1011
|
-
var functionComponentsContext = (0,
|
|
1019
|
+
var functionComponentsContext = (0, import_react15.useContext)(FunctionComponentsContext);
|
|
1012
1020
|
var Component = functionComponentsContext[fn.name] || DefaultFunction;
|
|
1013
1021
|
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Component, {
|
|
1014
1022
|
fn: fn,
|
|
@@ -1112,9 +1120,27 @@ var RunSteps = function(param) {
|
|
|
1112
1120
|
})
|
|
1113
1121
|
});
|
|
1114
1122
|
};
|
|
1123
|
+
// src/hooks/messages/useIsMutatingMessage/index.ts
|
|
1124
|
+
var import_react16 = require("react");
|
|
1125
|
+
var import_react_query3 = require("@tanstack/react-query");
|
|
1126
|
+
var useIsMutatingMessage = function() {
|
|
1127
|
+
var threadContext = useSuperinterfaceContext();
|
|
1128
|
+
var mutatingMessagesCount = (0, import_react_query3.useIsMutating)({
|
|
1129
|
+
mutationKey: [
|
|
1130
|
+
"createMessage",
|
|
1131
|
+
threadContext.variables
|
|
1132
|
+
]
|
|
1133
|
+
});
|
|
1134
|
+
var isMutatingMessage = (0, import_react16.useMemo)(function() {
|
|
1135
|
+
return mutatingMessagesCount > 0;
|
|
1136
|
+
}, [
|
|
1137
|
+
mutatingMessagesCount
|
|
1138
|
+
]);
|
|
1139
|
+
return isMutatingMessage;
|
|
1140
|
+
};
|
|
1115
1141
|
// src/contexts/messages/MessageContext/index.ts
|
|
1116
|
-
var
|
|
1117
|
-
var MessageContext = (0,
|
|
1142
|
+
var import_react17 = require("react");
|
|
1143
|
+
var MessageContext = (0, import_react17.createContext)({
|
|
1118
1144
|
message: null
|
|
1119
1145
|
});
|
|
1120
1146
|
// src/components/threads/Thread/Message/Provider.tsx
|
|
@@ -1122,9 +1148,9 @@ var Provider = MessageContext.Provider;
|
|
|
1122
1148
|
// src/components/threads/Thread/Message/TextContent.tsx
|
|
1123
1149
|
var import_react_remark = require("react-remark");
|
|
1124
1150
|
// src/hooks/markdown/useMarkdownContext/index.ts
|
|
1125
|
-
var
|
|
1151
|
+
var import_react19 = require("react");
|
|
1126
1152
|
// src/contexts/markdown/MarkdownContext/index.ts
|
|
1127
|
-
var
|
|
1153
|
+
var import_react18 = require("react");
|
|
1128
1154
|
// src/contexts/markdown/MarkdownContext/lib/components/Paragraph.tsx
|
|
1129
1155
|
var import_themes16 = require("@radix-ui/themes");
|
|
1130
1156
|
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
@@ -1254,7 +1280,7 @@ var components = {
|
|
|
1254
1280
|
img: Img
|
|
1255
1281
|
};
|
|
1256
1282
|
// src/contexts/markdown/MarkdownContext/index.ts
|
|
1257
|
-
var MarkdownContext = (0,
|
|
1283
|
+
var MarkdownContext = (0, import_react18.createContext)({
|
|
1258
1284
|
remarkPlugins: [],
|
|
1259
1285
|
rehypeReactOptions: {
|
|
1260
1286
|
components: components
|
|
@@ -1262,7 +1288,7 @@ var MarkdownContext = (0, import_react16.createContext)({
|
|
|
1262
1288
|
});
|
|
1263
1289
|
// src/hooks/markdown/useMarkdownContext/index.ts
|
|
1264
1290
|
var useMarkdownContext = function() {
|
|
1265
|
-
return (0,
|
|
1291
|
+
return (0, import_react19.useContext)(MarkdownContext);
|
|
1266
1292
|
};
|
|
1267
1293
|
// src/components/threads/Thread/Message/TextContent.tsx
|
|
1268
1294
|
var TextContent = function(param) {
|
|
@@ -1274,7 +1300,7 @@ var TextContent = function(param) {
|
|
|
1274
1300
|
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
1275
1301
|
var Message = function(param) {
|
|
1276
1302
|
var message = param.message;
|
|
1277
|
-
var _ref = _sliced_to_array((0,
|
|
1303
|
+
var _ref = _sliced_to_array((0, import_react20.useMemo)(function() {
|
|
1278
1304
|
if (!message.runSteps.length) return [
|
|
1279
1305
|
[],
|
|
1280
1306
|
[]
|
|
@@ -1306,7 +1332,9 @@ var Message = function(param) {
|
|
|
1306
1332
|
}, [
|
|
1307
1333
|
message
|
|
1308
1334
|
]), 2), olderRunSteps = _ref[0], laterRunSteps = _ref[1];
|
|
1309
|
-
var
|
|
1335
|
+
var isMutatingMessage = useIsMutatingMessage();
|
|
1336
|
+
var isInProgress = (0, import_react20.useMemo)(function() {
|
|
1337
|
+
if (!isMutatingMessage) return false;
|
|
1310
1338
|
if (message.status === "in_progress") return true;
|
|
1311
1339
|
return message.runSteps.some(function(rs) {
|
|
1312
1340
|
return rs.status === "in_progress";
|
|
@@ -1326,7 +1354,7 @@ var Message = function(param) {
|
|
|
1326
1354
|
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_themes25.Box, {
|
|
1327
1355
|
children: [
|
|
1328
1356
|
message.content.map(function(content, index) {
|
|
1329
|
-
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1357
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react20.Fragment, {
|
|
1330
1358
|
children: content.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(TextContent, {
|
|
1331
1359
|
content: content
|
|
1332
1360
|
})
|
|
@@ -1359,7 +1387,7 @@ var Content2 = function(param) {
|
|
|
1359
1387
|
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
1360
1388
|
var MessageGroup = function(param) {
|
|
1361
1389
|
var messageGroup = param.messageGroup;
|
|
1362
|
-
var assistantNameContext = (0,
|
|
1390
|
+
var assistantNameContext = (0, import_react21.useContext)(AssistantNameContext);
|
|
1363
1391
|
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(MessageGroupBase, {
|
|
1364
1392
|
children: [
|
|
1365
1393
|
messageGroup.role === "user" ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_themes27.Avatar, {
|
|
@@ -1388,7 +1416,7 @@ var Content3 = function() {
|
|
|
1388
1416
|
var _useMessageGroups = useMessageGroups({
|
|
1389
1417
|
messages: messages2
|
|
1390
1418
|
}), messageGroups2 = _useMessageGroups.messageGroups;
|
|
1391
|
-
(0,
|
|
1419
|
+
(0, import_react22.useEffect)(function() {
|
|
1392
1420
|
if (isLoadingError) {
|
|
1393
1421
|
addToast({
|
|
1394
1422
|
type: "error",
|
|
@@ -1411,14 +1439,14 @@ var Content3 = function() {
|
|
|
1411
1439
|
});
|
|
1412
1440
|
};
|
|
1413
1441
|
// src/components/threads/Thread/Messages/Progress/index.tsx
|
|
1414
|
-
var
|
|
1442
|
+
var import_react25 = require("react");
|
|
1415
1443
|
// src/components/skeletons/StartingSkeleton/index.tsx
|
|
1416
|
-
var
|
|
1444
|
+
var import_react23 = require("react");
|
|
1417
1445
|
var import_themes28 = require("@radix-ui/themes");
|
|
1418
1446
|
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
1419
1447
|
var StartingSkeleton = function(param) {
|
|
1420
1448
|
var children = param.children;
|
|
1421
|
-
var assistantNameContext = (0,
|
|
1449
|
+
var assistantNameContext = (0, import_react23.useContext)(AssistantNameContext);
|
|
1422
1450
|
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(MessageGroupBase, {
|
|
1423
1451
|
children: [
|
|
1424
1452
|
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(AssistantAvatar, {}),
|
|
@@ -1435,10 +1463,10 @@ var StartingSkeleton = function(param) {
|
|
|
1435
1463
|
});
|
|
1436
1464
|
};
|
|
1437
1465
|
// src/hooks/messages/useLatestMessage/index.ts
|
|
1438
|
-
var
|
|
1466
|
+
var import_react24 = require("react");
|
|
1439
1467
|
var useLatestMessage = function() {
|
|
1440
1468
|
var props = useMessages();
|
|
1441
|
-
return (0,
|
|
1469
|
+
return (0, import_react24.useMemo)(function() {
|
|
1442
1470
|
return _object_spread_props(_object_spread({}, props), {
|
|
1443
1471
|
latestMessage: props.messages[0] || null
|
|
1444
1472
|
});
|
|
@@ -1452,30 +1480,12 @@ var isOptimistic = function(param) {
|
|
|
1452
1480
|
var id = param.id;
|
|
1453
1481
|
return import_lodash4.default.startsWith(id, "-");
|
|
1454
1482
|
};
|
|
1455
|
-
// src/hooks/messages/useIsMutatingMessage/index.ts
|
|
1456
|
-
var import_react23 = require("react");
|
|
1457
|
-
var import_react_query3 = require("@tanstack/react-query");
|
|
1458
|
-
var useIsMutatingMessage = function() {
|
|
1459
|
-
var threadContext = useSuperinterfaceContext();
|
|
1460
|
-
var mutatingMessagesCount = (0, import_react_query3.useIsMutating)({
|
|
1461
|
-
mutationKey: [
|
|
1462
|
-
"createMessage",
|
|
1463
|
-
threadContext.variables
|
|
1464
|
-
]
|
|
1465
|
-
});
|
|
1466
|
-
var isMutatingMessage = (0, import_react23.useMemo)(function() {
|
|
1467
|
-
return mutatingMessagesCount > 0;
|
|
1468
|
-
}, [
|
|
1469
|
-
mutatingMessagesCount
|
|
1470
|
-
]);
|
|
1471
|
-
return isMutatingMessage;
|
|
1472
|
-
};
|
|
1473
1483
|
// src/components/threads/Thread/Messages/Progress/index.tsx
|
|
1474
1484
|
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
1475
1485
|
var Progress = function() {
|
|
1476
1486
|
var latestMessage = useLatestMessage().latestMessage;
|
|
1477
1487
|
var isMutatingMessage = useIsMutatingMessage();
|
|
1478
|
-
var isVisible = (0,
|
|
1488
|
+
var isVisible = (0, import_react25.useMemo)(function() {
|
|
1479
1489
|
if (!latestMessage) return false;
|
|
1480
1490
|
if (latestMessage.role !== "user") return false;
|
|
1481
1491
|
if (latestMessage.status === "in_progress") return false;
|
|
@@ -1494,15 +1504,15 @@ var Progress = function() {
|
|
|
1494
1504
|
// src/components/threads/Thread/Messages/Root/index.tsx
|
|
1495
1505
|
var import_themes29 = require("@radix-ui/themes");
|
|
1496
1506
|
// src/hooks/misc/useInfiniteScroll/index.tsx
|
|
1497
|
-
var
|
|
1507
|
+
var import_react27 = require("react");
|
|
1498
1508
|
var import_react_intersection_observer = require("react-intersection-observer");
|
|
1499
1509
|
// src/hooks/misc/useThrottledEffect/index.tsx
|
|
1500
1510
|
var import_lodash5 = __toESM(require("lodash"), 1);
|
|
1501
|
-
var
|
|
1511
|
+
var import_react26 = require("react");
|
|
1502
1512
|
var useThrottledEffect = function(cb, delay, additionalDeps) {
|
|
1503
1513
|
var _cbRef;
|
|
1504
|
-
var cbRef = (0,
|
|
1505
|
-
var throttledCb = (0,
|
|
1514
|
+
var cbRef = (0, import_react26.useRef)(cb);
|
|
1515
|
+
var throttledCb = (0, import_react26.useCallback)(import_lodash5.default.throttle(function() {
|
|
1506
1516
|
for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
|
|
1507
1517
|
args[_key] = arguments[_key];
|
|
1508
1518
|
}
|
|
@@ -1513,17 +1523,17 @@ var useThrottledEffect = function(cb, delay, additionalDeps) {
|
|
|
1513
1523
|
}), [
|
|
1514
1524
|
delay
|
|
1515
1525
|
]);
|
|
1516
|
-
(0,
|
|
1526
|
+
(0, import_react26.useEffect)(function() {
|
|
1517
1527
|
cbRef.current = cb;
|
|
1518
1528
|
});
|
|
1519
|
-
(0,
|
|
1529
|
+
(0, import_react26.useEffect)(throttledCb, [
|
|
1520
1530
|
throttledCb
|
|
1521
1531
|
].concat(_to_consumable_array(additionalDeps)));
|
|
1522
1532
|
};
|
|
1523
1533
|
// src/hooks/misc/useInfiniteScroll/index.tsx
|
|
1524
1534
|
var useInfiniteScroll = function(param) {
|
|
1525
1535
|
var isFetchingNextPage = param.isFetchingNextPage, hasNextPage = param.hasNextPage, fetchNextPage = param.fetchNextPage;
|
|
1526
|
-
var containerRef = (0,
|
|
1536
|
+
var containerRef = (0, import_react27.useRef)(null);
|
|
1527
1537
|
var _ref = (0, import_react_intersection_observer.useInView)({
|
|
1528
1538
|
root: containerRef.current,
|
|
1529
1539
|
rootMargin: "0px",
|
|
@@ -1616,32 +1626,41 @@ var import_themes34 = require("@radix-ui/themes");
|
|
|
1616
1626
|
var import_react_icons5 = require("@radix-ui/react-icons");
|
|
1617
1627
|
var import_themes31 = require("@radix-ui/themes");
|
|
1618
1628
|
// src/hooks/messages/useMessageFormContext/index.ts
|
|
1619
|
-
var
|
|
1629
|
+
var import_react29 = require("react");
|
|
1620
1630
|
// src/contexts/messages/MessageFormContext/index.ts
|
|
1621
|
-
var
|
|
1622
|
-
var MessageFormContext = (0,
|
|
1631
|
+
var import_react28 = require("react");
|
|
1632
|
+
var MessageFormContext = (0, import_react28.createContext)({
|
|
1623
1633
|
isDisabled: false,
|
|
1624
1634
|
isLoading: false
|
|
1625
1635
|
});
|
|
1626
1636
|
// src/hooks/messages/useMessageFormContext/index.ts
|
|
1627
1637
|
var useMessageFormContext = function() {
|
|
1628
|
-
return (0,
|
|
1638
|
+
return (0, import_react29.useContext)(MessageFormContext);
|
|
1629
1639
|
};
|
|
1630
1640
|
// src/components/threads/Thread/MessageForm/Submit/index.tsx
|
|
1631
1641
|
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
1632
1642
|
var Submit = function() {
|
|
1643
|
+
var superinterfaceContext = useSuperinterfaceContext();
|
|
1633
1644
|
var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
|
|
1645
|
+
if (isLoading) {
|
|
1646
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_themes31.IconButton, {
|
|
1647
|
+
type: "button",
|
|
1648
|
+
onClick: function() {
|
|
1649
|
+
var _superinterfaceContext_createMessageAbortControllerRef_current;
|
|
1650
|
+
return (_superinterfaceContext_createMessageAbortControllerRef_current = superinterfaceContext.createMessageAbortControllerRef.current) === null || _superinterfaceContext_createMessageAbortControllerRef_current === void 0 ? void 0 : _superinterfaceContext_createMessageAbortControllerRef_current.abort();
|
|
1651
|
+
},
|
|
1652
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_react_icons5.StopIcon, {})
|
|
1653
|
+
});
|
|
1654
|
+
}
|
|
1634
1655
|
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_themes31.IconButton, {
|
|
1635
1656
|
type: "submit",
|
|
1636
|
-
disabled: isDisabled
|
|
1637
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
1638
|
-
loading: isLoading,
|
|
1639
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_react_icons5.ArrowUpIcon, {})
|
|
1640
|
-
})
|
|
1657
|
+
disabled: isDisabled,
|
|
1658
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_react_icons5.ArrowUpIcon, {})
|
|
1641
1659
|
});
|
|
1642
1660
|
};
|
|
1643
1661
|
// src/components/threads/Thread/MessageForm/Root/index.tsx
|
|
1644
|
-
var
|
|
1662
|
+
var import_react_query5 = require("@tanstack/react-query");
|
|
1663
|
+
var import_react30 = require("react");
|
|
1645
1664
|
var import_react_hook_form = require("react-hook-form");
|
|
1646
1665
|
var import_themes32 = require("@radix-ui/themes");
|
|
1647
1666
|
// src/hooks/messages/useCreateMessage/index.ts
|
|
@@ -2142,10 +2161,12 @@ var mutationFn = function(param) {
|
|
|
2142
2161
|
var superinterfaceContext = param.superinterfaceContext, queryClient = param.queryClient, threadContext = param.threadContext;
|
|
2143
2162
|
return function() {
|
|
2144
2163
|
var _ref = _async_to_generator(function(variables) {
|
|
2145
|
-
var response, parser, reader, messagesQueryKey, _ref, done, value;
|
|
2164
|
+
var abortController, response, parser, reader, messagesQueryKey, _ref, done, value;
|
|
2146
2165
|
return _ts_generator(this, function(_state) {
|
|
2147
2166
|
switch(_state.label){
|
|
2148
2167
|
case 0:
|
|
2168
|
+
abortController = new AbortController();
|
|
2169
|
+
superinterfaceContext.createMessageAbortControllerRef.current = abortController;
|
|
2149
2170
|
return [
|
|
2150
2171
|
4,
|
|
2151
2172
|
fetch("".concat(superinterfaceContext.baseUrl, "/messages"), {
|
|
@@ -2153,7 +2174,8 @@ var mutationFn = function(param) {
|
|
|
2153
2174
|
body: JSON.stringify(body({
|
|
2154
2175
|
variables: variables,
|
|
2155
2176
|
superinterfaceContext: superinterfaceContext
|
|
2156
|
-
}))
|
|
2177
|
+
})),
|
|
2178
|
+
signal: abortController.signal
|
|
2157
2179
|
})
|
|
2158
2180
|
];
|
|
2159
2181
|
case 1:
|
|
@@ -2193,7 +2215,6 @@ var mutationFn = function(param) {
|
|
|
2193
2215
|
value: value,
|
|
2194
2216
|
messagesQueryKey: messagesQueryKey,
|
|
2195
2217
|
queryClient: queryClient,
|
|
2196
|
-
variables: variables,
|
|
2197
2218
|
superinterfaceContext: superinterfaceContext
|
|
2198
2219
|
});
|
|
2199
2220
|
return [
|
|
@@ -2267,16 +2288,33 @@ var Root2 = function(param) {
|
|
|
2267
2288
|
var formProps = (0, import_react_hook_form.useForm)(formOptions);
|
|
2268
2289
|
var handleSubmit = formProps.handleSubmit, isSubmitting = formProps.formState.isSubmitting, reset = formProps.reset;
|
|
2269
2290
|
var addToast = useToasts().addToast;
|
|
2291
|
+
var queryClient = (0, import_react_query5.useQueryClient)();
|
|
2292
|
+
var threadContext = useSuperinterfaceContext();
|
|
2270
2293
|
var createMessage = useCreateMessage({
|
|
2271
2294
|
onError: function(error) {
|
|
2272
|
-
|
|
2295
|
+
if (error.name === "AbortError") {
|
|
2296
|
+
queryClient.invalidateQueries({
|
|
2297
|
+
queryKey: [
|
|
2298
|
+
"messages",
|
|
2299
|
+
threadContext.variables
|
|
2300
|
+
]
|
|
2301
|
+
});
|
|
2302
|
+
queryClient.invalidateQueries({
|
|
2303
|
+
queryKey: [
|
|
2304
|
+
"runs",
|
|
2305
|
+
threadContext.variables
|
|
2306
|
+
]
|
|
2307
|
+
});
|
|
2308
|
+
return;
|
|
2309
|
+
}
|
|
2310
|
+
addToast({
|
|
2273
2311
|
type: "error",
|
|
2274
2312
|
message: error.message
|
|
2275
2313
|
});
|
|
2276
2314
|
}
|
|
2277
2315
|
}).createMessage;
|
|
2278
2316
|
var isMutatingMessage = useIsMutatingMessage();
|
|
2279
|
-
var isLoading = (0,
|
|
2317
|
+
var isLoading = (0, import_react30.useMemo)(function() {
|
|
2280
2318
|
return isMutatingMessage || isSubmitting;
|
|
2281
2319
|
}, [
|
|
2282
2320
|
isMutatingMessage,
|
|
@@ -2291,6 +2329,7 @@ var Root2 = function(param) {
|
|
|
2291
2329
|
return [
|
|
2292
2330
|
4,
|
|
2293
2331
|
createMessage({
|
|
2332
|
+
// @ts-ignore-next-line
|
|
2294
2333
|
content: data2.content
|
|
2295
2334
|
})
|
|
2296
2335
|
];
|
|
@@ -2307,7 +2346,7 @@ var Root2 = function(param) {
|
|
|
2307
2346
|
};
|
|
2308
2347
|
}();
|
|
2309
2348
|
var latestMessage = useLatestMessage().latestMessage;
|
|
2310
|
-
var isDisabled = (0,
|
|
2349
|
+
var isDisabled = (0, import_react30.useMemo)(function() {
|
|
2311
2350
|
var // @ts-ignore-next-line
|
|
2312
2351
|
_latestMessage_metadata;
|
|
2313
2352
|
return latestMessage === null || latestMessage === void 0 ? void 0 : (_latestMessage_metadata = latestMessage.metadata) === null || _latestMessage_metadata === void 0 ? void 0 : _latestMessage_metadata.isBlocking;
|
|
@@ -2334,13 +2373,13 @@ var Root2 = function(param) {
|
|
|
2334
2373
|
};
|
|
2335
2374
|
// src/components/threads/Thread/MessageForm/Field/index.tsx
|
|
2336
2375
|
var import_react_use = require("react-use");
|
|
2337
|
-
var
|
|
2376
|
+
var import_react32 = require("react");
|
|
2338
2377
|
// src/components/textareas/TextareaBase/index.tsx
|
|
2339
|
-
var
|
|
2378
|
+
var import_react31 = require("react");
|
|
2340
2379
|
var import_react_textarea_autosize = __toESM(require("react-textarea-autosize"), 1);
|
|
2341
2380
|
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
2342
2381
|
var UPSCALE_RATIO = 16 / 14;
|
|
2343
|
-
var TextareaBase = (0,
|
|
2382
|
+
var TextareaBase = (0, import_react31.forwardRef)(function TextareaBase2(props, ref) {
|
|
2344
2383
|
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, {
|
|
2345
2384
|
children: [
|
|
2346
2385
|
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("style", {
|
|
@@ -2402,19 +2441,19 @@ var Root3 = function(param) {
|
|
|
2402
2441
|
});
|
|
2403
2442
|
};
|
|
2404
2443
|
var Control = function() {
|
|
2405
|
-
var assistantNameContext = (0,
|
|
2444
|
+
var assistantNameContext = (0, import_react32.useContext)(AssistantNameContext);
|
|
2406
2445
|
var register = (0, import_react_hook_form2.useFormContext)().register;
|
|
2407
2446
|
var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
|
|
2408
|
-
var isSubmitDisabled = (0,
|
|
2447
|
+
var isSubmitDisabled = (0, import_react32.useMemo)(function() {
|
|
2409
2448
|
return isDisabled || isLoading;
|
|
2410
2449
|
}, [
|
|
2411
2450
|
isDisabled,
|
|
2412
2451
|
isLoading
|
|
2413
2452
|
]);
|
|
2414
2453
|
var isDisabledPrevious = (0, import_react_use.usePrevious)(isDisabled);
|
|
2415
|
-
var textareaRef = (0,
|
|
2454
|
+
var textareaRef = (0, import_react32.useRef)(null);
|
|
2416
2455
|
var textareaProps = register("content");
|
|
2417
|
-
(0,
|
|
2456
|
+
(0, import_react32.useEffect)(function() {
|
|
2418
2457
|
if (isDisabled) return;
|
|
2419
2458
|
if (!isDisabledPrevious) return;
|
|
2420
2459
|
if (!textareaRef.current) return;
|
|
@@ -2508,29 +2547,29 @@ Thread.Root = Root4;
|
|
|
2508
2547
|
Thread.Messages = Messages;
|
|
2509
2548
|
Thread.MessageForm = MessageForm;
|
|
2510
2549
|
// src/hooks/messages/useMessageContext/index.ts
|
|
2511
|
-
var
|
|
2550
|
+
var import_react33 = require("react");
|
|
2512
2551
|
var useMessageContext = function() {
|
|
2513
|
-
return (0,
|
|
2552
|
+
return (0, import_react33.useContext)(MessageContext);
|
|
2514
2553
|
};
|
|
2515
2554
|
// src/components/threads/ThreadDialog/Provider/index.tsx
|
|
2516
|
-
var
|
|
2555
|
+
var import_react36 = require("react");
|
|
2517
2556
|
// src/contexts/threads/ThreadDialogContext/index.ts
|
|
2518
|
-
var
|
|
2519
|
-
var ThreadDialogContext = (0,
|
|
2557
|
+
var import_react34 = require("react");
|
|
2558
|
+
var ThreadDialogContext = (0, import_react34.createContext)({
|
|
2520
2559
|
isOpen: false,
|
|
2521
2560
|
setIsOpen: function() {}
|
|
2522
2561
|
});
|
|
2523
2562
|
// src/hooks/threads/useThreadDialogContext/index.ts
|
|
2524
|
-
var
|
|
2563
|
+
var import_react35 = require("react");
|
|
2525
2564
|
var useThreadDialogContext = function() {
|
|
2526
|
-
return (0,
|
|
2565
|
+
return (0, import_react35.useContext)(ThreadDialogContext);
|
|
2527
2566
|
};
|
|
2528
2567
|
// src/components/threads/ThreadDialog/Provider/index.tsx
|
|
2529
2568
|
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
2530
2569
|
var Provider3 = function(param) {
|
|
2531
2570
|
var children = param.children;
|
|
2532
2571
|
var threadDialogContext = useThreadDialogContext();
|
|
2533
|
-
var _ref = _sliced_to_array((0,
|
|
2572
|
+
var _ref = _sliced_to_array((0, import_react36.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
|
|
2534
2573
|
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(ThreadDialogContext.Provider, {
|
|
2535
2574
|
value: {
|
|
2536
2575
|
isOpen: isOpen,
|
|
@@ -2540,7 +2579,7 @@ var Provider3 = function(param) {
|
|
|
2540
2579
|
});
|
|
2541
2580
|
};
|
|
2542
2581
|
// src/components/toasts/ToastsProvider/index.tsx
|
|
2543
|
-
var
|
|
2582
|
+
var import_react37 = require("react");
|
|
2544
2583
|
var Toast2 = __toESM(require("@radix-ui/react-toast"), 1);
|
|
2545
2584
|
// src/components/toasts/ToastsProvider/CustomToast.tsx
|
|
2546
2585
|
var Toast = __toESM(require("@radix-ui/react-toast"), 1);
|
|
@@ -2579,8 +2618,8 @@ var CustomToast = function(param) {
|
|
|
2579
2618
|
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
2580
2619
|
var ToastsProvider = function(param) {
|
|
2581
2620
|
var children = param.children;
|
|
2582
|
-
var _ref = _sliced_to_array((0,
|
|
2583
|
-
var addToast = (0,
|
|
2621
|
+
var _ref = _sliced_to_array((0, import_react37.useState)([]), 2), toasts = _ref[0], setToasts = _ref[1];
|
|
2622
|
+
var addToast = (0, import_react37.useCallback)(function(toast) {
|
|
2584
2623
|
return setToasts(function(prevToasts) {
|
|
2585
2624
|
return _to_consumable_array(prevToasts).concat([
|
|
2586
2625
|
toast
|
|
@@ -2812,8 +2851,8 @@ ThreadDialog.Content = Content4;
|
|
|
2812
2851
|
var import_runtime = require("regenerator-runtime/runtime");
|
|
2813
2852
|
var import_themes41 = require("@radix-ui/themes");
|
|
2814
2853
|
// src/contexts/threads/AudioThreadContext/index.ts
|
|
2815
|
-
var
|
|
2816
|
-
var AudioThreadContext = (0,
|
|
2854
|
+
var import_react38 = require("react");
|
|
2855
|
+
var AudioThreadContext = (0, import_react38.createContext)({
|
|
2817
2856
|
status: "idle",
|
|
2818
2857
|
recorderProps: {
|
|
2819
2858
|
status: "idle",
|
|
@@ -2881,11 +2920,11 @@ var blobToData = function(blob) {
|
|
|
2881
2920
|
});
|
|
2882
2921
|
};
|
|
2883
2922
|
// src/hooks/audioThreads/useStatus/index.ts
|
|
2884
|
-
var
|
|
2923
|
+
var import_react39 = require("react");
|
|
2885
2924
|
var useStatus = function(param) {
|
|
2886
2925
|
var messageAudioProps = param.messageAudioProps, recorderProps = param.recorderProps, createMessageProps = param.createMessageProps;
|
|
2887
2926
|
var latestMessageProps = useLatestMessage();
|
|
2888
|
-
var status = (0,
|
|
2927
|
+
var status = (0, import_react39.useMemo)(function() {
|
|
2889
2928
|
var _latestMessageProps_latestMessage;
|
|
2890
2929
|
if (recorderProps.status === "recording") return "recording";
|
|
2891
2930
|
if (createMessageProps.isPending) return "creatingMessage";
|
|
@@ -2909,19 +2948,19 @@ var useStatus = function(param) {
|
|
|
2909
2948
|
// src/hooks/audioThreads/useRecorder/index.ts
|
|
2910
2949
|
var import_dayjs2 = __toESM(require("dayjs"), 1);
|
|
2911
2950
|
var import_use_audio_capture = require("use-audio-capture");
|
|
2912
|
-
var
|
|
2951
|
+
var import_react40 = require("react");
|
|
2913
2952
|
var import_react_use_audio_player = require("react-use-audio-player");
|
|
2914
2953
|
var import_react_use2 = require("react-use");
|
|
2915
2954
|
var useRecorder = function(param) {
|
|
2916
2955
|
var isStopOnSilence = param.isStopOnSilence, onStart = param.onStart, onStop = param.onStop;
|
|
2917
|
-
var _ref = _sliced_to_array((0,
|
|
2918
|
-
var _ref1 = _sliced_to_array((0,
|
|
2919
|
-
var _ref2 = _sliced_to_array((0,
|
|
2920
|
-
var _ref3 = _sliced_to_array((0,
|
|
2956
|
+
var _ref = _sliced_to_array((0, import_react40.useState)(null), 2), silenceStart = _ref[0], setSilenceStart = _ref[1];
|
|
2957
|
+
var _ref1 = _sliced_to_array((0, import_react40.useState)(null), 2), noiseStart = _ref1[0], setNoiseStart = _ref1[1];
|
|
2958
|
+
var _ref2 = _sliced_to_array((0, import_react40.useState)(null), 2), mediaStream = _ref2[0], setMediaStream = _ref2[1];
|
|
2959
|
+
var _ref3 = _sliced_to_array((0, import_react40.useState)("idle"), 2), status = _ref3[0], setStatus = _ref3[1];
|
|
2921
2960
|
var startAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
|
|
2922
2961
|
var endAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
|
|
2923
|
-
var _ref4 = _sliced_to_array((0,
|
|
2924
|
-
(0,
|
|
2962
|
+
var _ref4 = _sliced_to_array((0, import_react40.useState)(false), 2), isLoaded = _ref4[0], setIsLoaded = _ref4[1];
|
|
2963
|
+
(0, import_react40.useEffect)(function() {
|
|
2925
2964
|
if (isLoaded) return;
|
|
2926
2965
|
setIsLoaded(true);
|
|
2927
2966
|
}, [
|
|
@@ -2979,9 +3018,9 @@ var useRecorder = function(param) {
|
|
|
2979
3018
|
setNoiseStart(null);
|
|
2980
3019
|
}
|
|
2981
3020
|
});
|
|
2982
|
-
var _ref5 = _sliced_to_array((0,
|
|
2983
|
-
var isInited = (0,
|
|
2984
|
-
(0,
|
|
3021
|
+
var _ref5 = _sliced_to_array((0, import_react40.useState)(null), 2), audioEngine = _ref5[0], setAudioEngine = _ref5[1];
|
|
3022
|
+
var isInited = (0, import_react40.useRef)(false);
|
|
3023
|
+
(0, import_react40.useEffect)(function() {
|
|
2985
3024
|
if (!mediaStream) return;
|
|
2986
3025
|
if (isInited.current) return;
|
|
2987
3026
|
isInited.current = true;
|
|
@@ -2994,7 +3033,7 @@ var useRecorder = function(param) {
|
|
|
2994
3033
|
isInited,
|
|
2995
3034
|
mediaStream
|
|
2996
3035
|
]);
|
|
2997
|
-
var visualizationAnalyser = (0,
|
|
3036
|
+
var visualizationAnalyser = (0, import_react40.useMemo)(function() {
|
|
2998
3037
|
if (!audioEngine) return null;
|
|
2999
3038
|
var result = audioEngine.audioContext.createAnalyser();
|
|
3000
3039
|
audioEngine.source.connect(result);
|
|
@@ -3002,7 +3041,7 @@ var useRecorder = function(param) {
|
|
|
3002
3041
|
}, [
|
|
3003
3042
|
audioEngine
|
|
3004
3043
|
]);
|
|
3005
|
-
var silenceAnalyser = (0,
|
|
3044
|
+
var silenceAnalyser = (0, import_react40.useMemo)(function() {
|
|
3006
3045
|
if (!audioEngine) return null;
|
|
3007
3046
|
var result = audioEngine.audioContext.createAnalyser();
|
|
3008
3047
|
result.minDecibels = -45;
|
|
@@ -3011,7 +3050,7 @@ var useRecorder = function(param) {
|
|
|
3011
3050
|
}, [
|
|
3012
3051
|
audioEngine
|
|
3013
3052
|
]);
|
|
3014
|
-
var handleSilence = (0,
|
|
3053
|
+
var handleSilence = (0, import_react40.useCallback)(function() {
|
|
3015
3054
|
if (!silenceAnalyser) return;
|
|
3016
3055
|
var frequencyData = new Uint8Array(silenceAnalyser.frequencyBinCount);
|
|
3017
3056
|
silenceAnalyser.getByteFrequencyData(frequencyData);
|
|
@@ -3034,7 +3073,7 @@ var useRecorder = function(param) {
|
|
|
3034
3073
|
setNoiseStart,
|
|
3035
3074
|
setSilenceStart
|
|
3036
3075
|
]);
|
|
3037
|
-
(0,
|
|
3076
|
+
(0, import_react40.useEffect)(function() {
|
|
3038
3077
|
if (!isStopOnSilence) return;
|
|
3039
3078
|
requestAnimationFrame(function() {
|
|
3040
3079
|
return handleSilence();
|
|
@@ -3057,7 +3096,7 @@ var useRecorder = function(param) {
|
|
|
3057
3096
|
});
|
|
3058
3097
|
};
|
|
3059
3098
|
// src/hooks/audioThreads/useMessageAudio/index.ts
|
|
3060
|
-
var
|
|
3099
|
+
var import_react41 = require("react");
|
|
3061
3100
|
var import_compromise = __toESM(require("compromise"), 1);
|
|
3062
3101
|
var import_howler = require("howler");
|
|
3063
3102
|
var import_react_use_audio_player2 = require("react-use-audio-player");
|
|
@@ -3095,16 +3134,18 @@ var getMessageSentences = function(param) {
|
|
|
3095
3134
|
};
|
|
3096
3135
|
var useMessageAudio = function(param) {
|
|
3097
3136
|
var onEnd = param.onEnd;
|
|
3098
|
-
var _ref = _sliced_to_array((0,
|
|
3099
|
-
var _ref1 = _sliced_to_array((0,
|
|
3137
|
+
var _ref = _sliced_to_array((0, import_react41.useState)(false), 2), isAudioPlayed = _ref[0], setIsAudioPlayed = _ref[1];
|
|
3138
|
+
var _ref1 = _sliced_to_array((0, import_react41.useState)([]), 2), stoppedMessageIds = _ref1[0], setStoppedMessageIds = _ref1[1];
|
|
3139
|
+
var _ref2 = _sliced_to_array((0, import_react41.useState)([]), 2), playedMessageSentences = _ref2[0], setPlayedMessageSentences = _ref2[1];
|
|
3100
3140
|
var audioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
|
|
3101
3141
|
var nextAudioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
|
|
3102
3142
|
var superinterfaceContext = useSuperinterfaceContext();
|
|
3103
|
-
var
|
|
3143
|
+
var _ref3 = _sliced_to_array((0, import_react41.useState)(false), 2), isPlaying = _ref3[0], setIsPlaying = _ref3[1];
|
|
3104
3144
|
var latestMessageProps = useLatestMessage();
|
|
3105
|
-
var unplayedMessageSentences = (0,
|
|
3145
|
+
var unplayedMessageSentences = (0, import_react41.useMemo)(function() {
|
|
3106
3146
|
if (!latestMessageProps.latestMessage) return [];
|
|
3107
3147
|
if (latestMessageProps.latestMessage.role !== "assistant") return [];
|
|
3148
|
+
if (stoppedMessageIds.includes(latestMessageProps.latestMessage.id)) return [];
|
|
3108
3149
|
var input2 = input({
|
|
3109
3150
|
message: latestMessageProps.latestMessage
|
|
3110
3151
|
});
|
|
@@ -3122,7 +3163,7 @@ var useMessageAudio = function(param) {
|
|
|
3122
3163
|
latestMessageProps,
|
|
3123
3164
|
playedMessageSentences
|
|
3124
3165
|
]);
|
|
3125
|
-
(0,
|
|
3166
|
+
(0, import_react41.useEffect)(function() {
|
|
3126
3167
|
if (isPlaying) return;
|
|
3127
3168
|
if (audioPlayer.playing) return;
|
|
3128
3169
|
if (!latestMessageProps.latestMessage) return;
|
|
@@ -3151,6 +3192,14 @@ var useMessageAudio = function(param) {
|
|
|
3151
3192
|
onplay: function() {
|
|
3152
3193
|
setIsAudioPlayed(true);
|
|
3153
3194
|
},
|
|
3195
|
+
onstop: function() {
|
|
3196
|
+
setStoppedMessageIds(function(prev) {
|
|
3197
|
+
return _to_consumable_array(prev).concat([
|
|
3198
|
+
firstUnplayedMessageSentence.messageId
|
|
3199
|
+
]);
|
|
3200
|
+
});
|
|
3201
|
+
setIsPlaying(false);
|
|
3202
|
+
},
|
|
3154
3203
|
onload: function() {
|
|
3155
3204
|
var nextUnplayedMessageSentence = unplayedMessageSentences[1];
|
|
3156
3205
|
if (!nextUnplayedMessageSentence) return;
|
|
@@ -3182,7 +3231,7 @@ var useMessageAudio = function(param) {
|
|
|
3182
3231
|
playedMessageSentences,
|
|
3183
3232
|
onEnd
|
|
3184
3233
|
]);
|
|
3185
|
-
(0,
|
|
3234
|
+
(0, import_react41.useEffect)(function() {
|
|
3186
3235
|
if (isHtmlAudioSupported) {
|
|
3187
3236
|
var _import_howler_Howler__howls___sounds_, _import_howler_Howler__howls_, _import_howler_Howler;
|
|
3188
3237
|
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;
|
|
@@ -3191,9 +3240,9 @@ var useMessageAudio = function(param) {
|
|
|
3191
3240
|
}, [
|
|
3192
3241
|
audioPlayer
|
|
3193
3242
|
]);
|
|
3194
|
-
var
|
|
3195
|
-
var isAudioEngineInited = (0,
|
|
3196
|
-
(0,
|
|
3243
|
+
var _ref4 = _sliced_to_array((0, import_react41.useState)(null), 2), audioEngine = _ref4[0], setAudioEngine = _ref4[1];
|
|
3244
|
+
var isAudioEngineInited = (0, import_react41.useRef)(false);
|
|
3245
|
+
(0, import_react41.useEffect)(function() {
|
|
3197
3246
|
if (!audioPlayer.playing) return;
|
|
3198
3247
|
if (isAudioEngineInited.current) return;
|
|
3199
3248
|
isAudioEngineInited.current = true;
|
|
@@ -3214,7 +3263,7 @@ var useMessageAudio = function(param) {
|
|
|
3214
3263
|
audioPlayer,
|
|
3215
3264
|
isAudioEngineInited
|
|
3216
3265
|
]);
|
|
3217
|
-
var visualizationAnalyser = (0,
|
|
3266
|
+
var visualizationAnalyser = (0, import_react41.useMemo)(function() {
|
|
3218
3267
|
if (!audioEngine) return null;
|
|
3219
3268
|
var result = audioEngine.audioContext.createAnalyser();
|
|
3220
3269
|
audioEngine.source.connect(audioEngine.audioContext.destination);
|
|
@@ -3223,7 +3272,7 @@ var useMessageAudio = function(param) {
|
|
|
3223
3272
|
}, [
|
|
3224
3273
|
audioEngine
|
|
3225
3274
|
]);
|
|
3226
|
-
var isPending = (0,
|
|
3275
|
+
var isPending = (0, import_react41.useMemo)(function() {
|
|
3227
3276
|
return isPlaying || unplayedMessageSentences.length > 0;
|
|
3228
3277
|
}, [
|
|
3229
3278
|
isPlaying,
|
|
@@ -3312,21 +3361,21 @@ var Root8 = function(param) {
|
|
|
3312
3361
|
// src/components/threads/AudioThread/Visualization/index.tsx
|
|
3313
3362
|
var import_themes43 = require("@radix-ui/themes");
|
|
3314
3363
|
// src/hooks/threads/useAudioThreadContext/index.ts
|
|
3315
|
-
var
|
|
3364
|
+
var import_react42 = require("react");
|
|
3316
3365
|
var useAudioThreadContext = function() {
|
|
3317
|
-
return (0,
|
|
3366
|
+
return (0, import_react42.useContext)(AudioThreadContext);
|
|
3318
3367
|
};
|
|
3319
3368
|
// src/components/threads/AudioThread/BarsVisualizer/index.tsx
|
|
3320
3369
|
var import_lodash8 = __toESM(require("lodash"), 1);
|
|
3321
3370
|
var import_themes42 = require("@radix-ui/themes");
|
|
3322
|
-
var
|
|
3371
|
+
var import_react43 = require("react");
|
|
3323
3372
|
var import_radash12 = require("radash");
|
|
3324
3373
|
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
3325
3374
|
var barCount = 4;
|
|
3326
3375
|
var BarsVisualizer = function(param) {
|
|
3327
3376
|
var visualizationAnalyser = param.visualizationAnalyser, backgroundColor = param.backgroundColor, height = param.height, barWidth = param.barWidth;
|
|
3328
|
-
var _ref = _sliced_to_array((0,
|
|
3329
|
-
var draw = (0,
|
|
3377
|
+
var _ref = _sliced_to_array((0, import_react43.useState)([]), 2), barHeights = _ref[0], setBarHeights = _ref[1];
|
|
3378
|
+
var draw = (0, import_react43.useCallback)(function(param) {
|
|
3330
3379
|
var visualizationAnalyser2 = param.visualizationAnalyser;
|
|
3331
3380
|
if (!visualizationAnalyser2) {
|
|
3332
3381
|
setBarHeights(Array(barCount).fill(0));
|
|
@@ -3344,7 +3393,7 @@ var BarsVisualizer = function(param) {
|
|
|
3344
3393
|
});
|
|
3345
3394
|
});
|
|
3346
3395
|
}, []);
|
|
3347
|
-
(0,
|
|
3396
|
+
(0, import_react43.useEffect)(function() {
|
|
3348
3397
|
draw({
|
|
3349
3398
|
visualizationAnalyser: visualizationAnalyser
|
|
3350
3399
|
});
|
|
@@ -3409,7 +3458,6 @@ var Visualization = function() {
|
|
|
3409
3458
|
});
|
|
3410
3459
|
};
|
|
3411
3460
|
// src/components/threads/AudioThread/Form/index.tsx
|
|
3412
|
-
var import_react_icons10 = require("@radix-ui/react-icons");
|
|
3413
3461
|
var import_themes45 = require("@radix-ui/themes");
|
|
3414
3462
|
// src/components/threads/AudioThread/Form/ActionButton/index.tsx
|
|
3415
3463
|
var import_themes44 = require("@radix-ui/themes");
|
|
@@ -3417,6 +3465,7 @@ var import_react_icons9 = require("@radix-ui/react-icons");
|
|
|
3417
3465
|
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
3418
3466
|
var ActionButton = function() {
|
|
3419
3467
|
var audioThreadContext = useAudioThreadContext();
|
|
3468
|
+
var superinterfaceContext = useSuperinterfaceContext();
|
|
3420
3469
|
if (audioThreadContext.status === "recording") {
|
|
3421
3470
|
return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_themes44.Flex, {
|
|
3422
3471
|
align: "center",
|
|
@@ -3475,7 +3524,10 @@ var ActionButton = function() {
|
|
|
3475
3524
|
if (audioThreadContext.status === "playing") {
|
|
3476
3525
|
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes44.IconButton, {
|
|
3477
3526
|
onClick: function() {
|
|
3478
|
-
|
|
3527
|
+
var _superinterfaceContext_createMessageAbortControllerRef_current;
|
|
3528
|
+
audioThreadContext.messageAudioProps.stop();
|
|
3529
|
+
(_superinterfaceContext_createMessageAbortControllerRef_current = superinterfaceContext.createMessageAbortControllerRef.current) === null || _superinterfaceContext_createMessageAbortControllerRef_current === void 0 ? void 0 : _superinterfaceContext_createMessageAbortControllerRef_current.abort();
|
|
3530
|
+
audioThreadContext.recorderProps.start();
|
|
3479
3531
|
},
|
|
3480
3532
|
size: "4",
|
|
3481
3533
|
color: "gray",
|
|
@@ -3484,7 +3536,7 @@ var ActionButton = function() {
|
|
|
3484
3536
|
style: {
|
|
3485
3537
|
border: "2px solid var(--gray-8)"
|
|
3486
3538
|
},
|
|
3487
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons9.
|
|
3539
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons9.StopIcon, {})
|
|
3488
3540
|
});
|
|
3489
3541
|
}
|
|
3490
3542
|
if (audioThreadContext.status === "playerPaused") {
|
|
@@ -3518,35 +3570,23 @@ var Form = function() {
|
|
|
3518
3570
|
direction: "column",
|
|
3519
3571
|
align: "center",
|
|
3520
3572
|
children: [
|
|
3521
|
-
/* @__PURE__ */ (0, import_jsx_runtime59.
|
|
3573
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_themes45.Flex, {
|
|
3522
3574
|
pb: "3",
|
|
3523
3575
|
align: "center",
|
|
3524
|
-
children:
|
|
3525
|
-
|
|
3526
|
-
|
|
3527
|
-
|
|
3528
|
-
|
|
3529
|
-
|
|
3530
|
-
|
|
3531
|
-
|
|
3532
|
-
|
|
3533
|
-
|
|
3534
|
-
|
|
3535
|
-
|
|
3536
|
-
px: "2",
|
|
3537
|
-
py: "1",
|
|
3538
|
-
style: {
|
|
3539
|
-
backgroundColor: audioThreadContext.status === "recording" ? "var(--accent-4)" : "var(--gray-4)",
|
|
3540
|
-
borderRadius: "var(--radius-6)"
|
|
3541
|
-
},
|
|
3542
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(BarsVisualizer, {
|
|
3543
|
-
visualizationAnalyser: audioThreadContext.recorderProps.visualizationAnalyser,
|
|
3544
|
-
backgroundColor: audioThreadContext.status === "recording" ? "var(--accent-11)" : "var(--gray-11)",
|
|
3545
|
-
height: "20px",
|
|
3546
|
-
barWidth: "12px"
|
|
3547
|
-
})
|
|
3576
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_themes45.Flex, {
|
|
3577
|
+
px: "2",
|
|
3578
|
+
py: "1",
|
|
3579
|
+
style: {
|
|
3580
|
+
backgroundColor: audioThreadContext.status === "recording" ? "var(--accent-4)" : "var(--gray-4)",
|
|
3581
|
+
borderRadius: "var(--radius-6)"
|
|
3582
|
+
},
|
|
3583
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(BarsVisualizer, {
|
|
3584
|
+
visualizationAnalyser: audioThreadContext.recorderProps.visualizationAnalyser,
|
|
3585
|
+
backgroundColor: audioThreadContext.status === "recording" ? "var(--accent-11)" : "var(--gray-11)",
|
|
3586
|
+
height: "20px",
|
|
3587
|
+
barWidth: "12px"
|
|
3548
3588
|
})
|
|
3549
|
-
|
|
3589
|
+
})
|
|
3550
3590
|
}),
|
|
3551
3591
|
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(ActionButton, {})
|
|
3552
3592
|
]
|
|
@@ -3584,14 +3624,14 @@ AudioThreadDialog.Trigger = Trigger;
|
|
|
3584
3624
|
AudioThreadDialog.Button = Button2;
|
|
3585
3625
|
AudioThreadDialog.Content = Content4;
|
|
3586
3626
|
// src/components/suggestions/Suggestions/index.tsx
|
|
3587
|
-
var
|
|
3627
|
+
var import_react45 = require("react");
|
|
3588
3628
|
// src/components/suggestions/Suggestions/Content.tsx
|
|
3589
|
-
var
|
|
3629
|
+
var import_react44 = require("react");
|
|
3590
3630
|
var import_radash13 = require("radash");
|
|
3591
3631
|
var import_react_children_utilities = require("react-children-utilities");
|
|
3592
3632
|
var import_themes47 = require("@radix-ui/themes");
|
|
3593
3633
|
// src/components/suggestions/Suggestions/Item.tsx
|
|
3594
|
-
var
|
|
3634
|
+
var import_react_icons10 = require("@radix-ui/react-icons");
|
|
3595
3635
|
var import_themes46 = require("@radix-ui/themes");
|
|
3596
3636
|
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
3597
3637
|
var Item = function(param) {
|
|
@@ -3628,7 +3668,7 @@ var Content5 = function(param) {
|
|
|
3628
3668
|
}),
|
|
3629
3669
|
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes46.Spinner, {
|
|
3630
3670
|
loading: isPending,
|
|
3631
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
3671
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_icons10.ArrowUpIcon, {
|
|
3632
3672
|
style: {
|
|
3633
3673
|
flexShrink: 0
|
|
3634
3674
|
}
|
|
@@ -3643,7 +3683,7 @@ var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
|
3643
3683
|
var Content6 = function(param) {
|
|
3644
3684
|
var children = param.children;
|
|
3645
3685
|
var isMutatingMessage = useIsMutatingMessage();
|
|
3646
|
-
var suggestions = (0,
|
|
3686
|
+
var suggestions = (0, import_react44.useMemo)(function() {
|
|
3647
3687
|
return (0, import_react_children_utilities.onlyText)(children).split(/\r?\n/).filter(function(c) {
|
|
3648
3688
|
return !(0, import_radash13.isEmpty)(c);
|
|
3649
3689
|
}).map(function(c) {
|
|
@@ -3670,7 +3710,7 @@ var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
|
3670
3710
|
var Suggestions = function(param) {
|
|
3671
3711
|
var children = param.children;
|
|
3672
3712
|
var latestMessageProps = useLatestMessage();
|
|
3673
|
-
var isDisabled = (0,
|
|
3713
|
+
var isDisabled = (0, import_react45.useMemo)(function() {
|
|
3674
3714
|
var // @ts-ignore-next-line
|
|
3675
3715
|
_latestMessageProps_latestMessage_metadata, _latestMessageProps_latestMessage;
|
|
3676
3716
|
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;
|
|
@@ -3685,14 +3725,14 @@ var Suggestions = function(param) {
|
|
|
3685
3725
|
};
|
|
3686
3726
|
Suggestions.Item = Item;
|
|
3687
3727
|
// src/components/markdown/MarkdownProvider/index.tsx
|
|
3688
|
-
var
|
|
3728
|
+
var import_react46 = require("react");
|
|
3689
3729
|
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
3690
3730
|
var MarkdownProvider = function(_param) {
|
|
3691
3731
|
var children = _param.children, rest = _object_without_properties(_param, [
|
|
3692
3732
|
"children"
|
|
3693
3733
|
]);
|
|
3694
3734
|
var prevMarkdownContext = useMarkdownContext();
|
|
3695
|
-
var value = (0,
|
|
3735
|
+
var value = (0, import_react46.useMemo)(function() {
|
|
3696
3736
|
return merge(prevMarkdownContext, rest);
|
|
3697
3737
|
}, [
|
|
3698
3738
|
rest,
|