@burtson-labs/bandit-engine 2.0.125 → 2.0.127
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/{chat-SC6CFUED.mjs → chat-2XYHFUT2.mjs} +2 -2
- package/dist/{chunk-ID6CTZ3G.mjs → chunk-7NBLIL76.mjs} +2 -2
- package/dist/{chunk-2WFTEJPS.mjs → chunk-RRSACJI2.mjs} +265 -83
- package/dist/chunk-RRSACJI2.mjs.map +1 -0
- package/dist/index.js +343 -161
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/management/management.js +327 -145
- package/dist/management/management.js.map +1 -1
- package/dist/management/management.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-2WFTEJPS.mjs.map +0 -1
- /package/dist/{chat-SC6CFUED.mjs.map → chat-2XYHFUT2.mjs.map} +0 -0
- /package/dist/{chunk-ID6CTZ3G.mjs.map → chunk-7NBLIL76.mjs.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -15742,7 +15742,7 @@ var init_source_chips = __esm({
|
|
|
15742
15742
|
});
|
|
15743
15743
|
|
|
15744
15744
|
// src/chat/chat-messages.tsx
|
|
15745
|
-
var import_material12, import_jsx_runtime15, ChatMessages, chat_messages_default;
|
|
15745
|
+
var import_material12, import_jsx_runtime15, WORKING_TOKEN_RE, ToolWorkingChip, ChatMessages, chat_messages_default;
|
|
15746
15746
|
var init_chat_messages = __esm({
|
|
15747
15747
|
"src/chat/chat-messages.tsx"() {
|
|
15748
15748
|
"use strict";
|
|
@@ -15752,6 +15752,38 @@ var init_chat_messages = __esm({
|
|
|
15752
15752
|
init_source_chips();
|
|
15753
15753
|
init_conversationStore();
|
|
15754
15754
|
import_jsx_runtime15 = require("react/jsx-runtime");
|
|
15755
|
+
WORKING_TOKEN_RE = /\s*<<working:([^>]*)>>\s*$/;
|
|
15756
|
+
ToolWorkingChip = ({ label }) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
15757
|
+
import_material12.Box,
|
|
15758
|
+
{
|
|
15759
|
+
sx: (theme) => ({
|
|
15760
|
+
display: "inline-flex",
|
|
15761
|
+
alignItems: "center",
|
|
15762
|
+
gap: 1.25,
|
|
15763
|
+
mt: 1.5,
|
|
15764
|
+
px: 1.75,
|
|
15765
|
+
py: 0.9,
|
|
15766
|
+
borderRadius: 999,
|
|
15767
|
+
bgcolor: theme.palette.action.hover,
|
|
15768
|
+
border: `1px solid ${theme.palette.divider}`
|
|
15769
|
+
}),
|
|
15770
|
+
children: [
|
|
15771
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "typing-only", children: [
|
|
15772
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "dot" }),
|
|
15773
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "dot" }),
|
|
15774
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "dot" })
|
|
15775
|
+
] }),
|
|
15776
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
15777
|
+
import_material12.Box,
|
|
15778
|
+
{
|
|
15779
|
+
component: "span",
|
|
15780
|
+
sx: { fontSize: "0.85rem", fontWeight: 500, color: "text.secondary", userSelect: "none" },
|
|
15781
|
+
children: label || "Working on it"
|
|
15782
|
+
}
|
|
15783
|
+
)
|
|
15784
|
+
]
|
|
15785
|
+
}
|
|
15786
|
+
);
|
|
15755
15787
|
ChatMessages = ({
|
|
15756
15788
|
pendingMessage,
|
|
15757
15789
|
streamBuffer,
|
|
@@ -15777,7 +15809,9 @@ var init_chat_messages = __esm({
|
|
|
15777
15809
|
const isPlaceholder = entry.answer === "...";
|
|
15778
15810
|
const showLoader = isLast && isStreaming && streamBuffer.trim() === "";
|
|
15779
15811
|
const showThinking = showLoader && isThinking;
|
|
15780
|
-
const
|
|
15812
|
+
const rawContent = isLast ? isStreaming ? streamBuffer || "" : isPlaceholder ? "" : entry.answer : entry.answer;
|
|
15813
|
+
const workingMatch = isLast && isStreaming ? rawContent.match(WORKING_TOKEN_RE) : null;
|
|
15814
|
+
const content = workingMatch ? rawContent.replace(WORKING_TOKEN_RE, "") : rawContent;
|
|
15781
15815
|
const rawSources = entry.sourceFiles;
|
|
15782
15816
|
const sourceSummaries = rawSources ? rawSources.filter((doc) => doc && typeof doc.name === "string" && doc.name.trim()).map((doc) => ({ id: doc.id || doc.name, name: doc.name.trim() })) : void 0;
|
|
15783
15817
|
const responseNode = /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
@@ -15850,6 +15884,7 @@ var init_chat_messages = __esm({
|
|
|
15850
15884
|
sources: sourceSummaries
|
|
15851
15885
|
}
|
|
15852
15886
|
),
|
|
15887
|
+
workingMatch && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolWorkingChip, { label: workingMatch[1] }),
|
|
15853
15888
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(source_chips_default, { content })
|
|
15854
15889
|
]
|
|
15855
15890
|
}
|
|
@@ -15862,7 +15897,7 @@ var init_chat_messages = __esm({
|
|
|
15862
15897
|
{
|
|
15863
15898
|
question: entry.question,
|
|
15864
15899
|
response: responseNode,
|
|
15865
|
-
responseText:
|
|
15900
|
+
responseText: content,
|
|
15866
15901
|
backgroundColor: "#444",
|
|
15867
15902
|
images: entry.images,
|
|
15868
15903
|
memoryUpdated: entry.memoryUpdated && !isPlaceholder,
|
|
@@ -19388,23 +19423,24 @@ ${sanitize(
|
|
|
19388
19423
|
bgcolor: inputBackground,
|
|
19389
19424
|
borderRadius: "24px",
|
|
19390
19425
|
boxShadow: isMobile ? `0 0 0 1px ${theme.palette.mode === "dark" ? "#444" : "#eee"}` : "0 4px 20px rgba(0, 0, 0, 0.4)",
|
|
19391
|
-
px: isMobile ? compactMobile ? 1 : 1.5 :
|
|
19392
|
-
pt: isMobile ? compactMobile ? 0.6 : 1 :
|
|
19393
|
-
pb: isMobile ? compactMobile ? 0.9 : 1.5 :
|
|
19426
|
+
px: isMobile ? compactMobile ? 1 : 1.5 : 2,
|
|
19427
|
+
pt: isMobile ? compactMobile ? 0.6 : 1 : 0.75,
|
|
19428
|
+
pb: isMobile ? compactMobile ? 0.9 : 1.5 : 0.75,
|
|
19394
19429
|
display: "flex",
|
|
19395
19430
|
flexDirection: "column",
|
|
19396
|
-
gap: isMobile ? compactMobile ? 0.75 : 1 :
|
|
19431
|
+
gap: isMobile ? compactMobile ? 0.75 : 1 : 0.5
|
|
19397
19432
|
},
|
|
19398
19433
|
children: [
|
|
19399
19434
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
19400
19435
|
import_material18.Box,
|
|
19401
19436
|
{
|
|
19402
19437
|
sx: {
|
|
19403
|
-
display: "flex",
|
|
19438
|
+
display: fileInputs.length > 0 || pastedImages.length > 0 ? "flex" : "none",
|
|
19404
19439
|
flexWrap: "wrap",
|
|
19405
19440
|
gap: attachmentsGap,
|
|
19406
19441
|
alignItems: "center",
|
|
19407
|
-
flexDirection: "row"
|
|
19442
|
+
flexDirection: "row",
|
|
19443
|
+
pt: isMobile ? 0 : 0.5
|
|
19408
19444
|
},
|
|
19409
19445
|
children: [
|
|
19410
19446
|
fileInputs.map((file, idx) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
@@ -19528,7 +19564,7 @@ ${sanitize(
|
|
|
19528
19564
|
]
|
|
19529
19565
|
}
|
|
19530
19566
|
),
|
|
19531
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
19567
|
+
isMobile && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
19532
19568
|
import_material18.Box,
|
|
19533
19569
|
{
|
|
19534
19570
|
sx: {
|
|
@@ -19541,7 +19577,7 @@ ${sanitize(
|
|
|
19541
19577
|
{
|
|
19542
19578
|
fullWidth: true,
|
|
19543
19579
|
multiline: true,
|
|
19544
|
-
maxRows:
|
|
19580
|
+
maxRows: compactMobile ? 6 : 12,
|
|
19545
19581
|
placeholder: isIncognito ? "Incognito chat \u2014 not saved" : "What's on your mind?",
|
|
19546
19582
|
value: inputValue,
|
|
19547
19583
|
onChange: (e) => setInputValue(e.target.value),
|
|
@@ -19552,18 +19588,15 @@ ${sanitize(
|
|
|
19552
19588
|
disableUnderline: true,
|
|
19553
19589
|
sx: {
|
|
19554
19590
|
flex: "1 1 auto",
|
|
19555
|
-
maxHeight:
|
|
19591
|
+
maxHeight: compactMobile ? "120px" : "150px",
|
|
19556
19592
|
overflowY: "auto",
|
|
19557
19593
|
color: fileText,
|
|
19558
19594
|
"& .MuiInputBase-inputMultiline": {
|
|
19559
|
-
fontSize:
|
|
19595
|
+
fontSize: compactMobile ? "0.95rem" : "1rem"
|
|
19560
19596
|
}
|
|
19561
19597
|
}
|
|
19562
19598
|
},
|
|
19563
|
-
sx: {
|
|
19564
|
-
flex: 1,
|
|
19565
|
-
"& .MuiInputBase-root": {}
|
|
19566
|
-
}
|
|
19599
|
+
sx: { flex: 1 }
|
|
19567
19600
|
}
|
|
19568
19601
|
)
|
|
19569
19602
|
}
|
|
@@ -19574,9 +19607,9 @@ ${sanitize(
|
|
|
19574
19607
|
sx: {
|
|
19575
19608
|
display: "flex",
|
|
19576
19609
|
justifyContent: "space-between",
|
|
19577
|
-
alignItems: "
|
|
19610
|
+
alignItems: "flex-end",
|
|
19578
19611
|
gap: isMobile ? 0.6 : 1,
|
|
19579
|
-
mt: isMobile ? 0.5 :
|
|
19612
|
+
mt: isMobile ? 0.5 : 0
|
|
19580
19613
|
},
|
|
19581
19614
|
children: [
|
|
19582
19615
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
@@ -19663,6 +19696,30 @@ ${sanitize(
|
|
|
19663
19696
|
]
|
|
19664
19697
|
}
|
|
19665
19698
|
),
|
|
19699
|
+
!isMobile && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
19700
|
+
import_material18.TextField,
|
|
19701
|
+
{
|
|
19702
|
+
fullWidth: true,
|
|
19703
|
+
multiline: true,
|
|
19704
|
+
maxRows: 6,
|
|
19705
|
+
placeholder: isIncognito ? "Incognito chat \u2014 not saved" : "What's on your mind?",
|
|
19706
|
+
value: inputValue,
|
|
19707
|
+
onChange: (e) => setInputValue(e.target.value),
|
|
19708
|
+
onKeyDown: handleKeyPress,
|
|
19709
|
+
inputRef,
|
|
19710
|
+
variant: "standard",
|
|
19711
|
+
InputProps: {
|
|
19712
|
+
disableUnderline: true,
|
|
19713
|
+
sx: {
|
|
19714
|
+
color: fileText,
|
|
19715
|
+
maxHeight: "160px",
|
|
19716
|
+
overflowY: "auto",
|
|
19717
|
+
"& .MuiInputBase-inputMultiline": { fontSize: "1rem" }
|
|
19718
|
+
}
|
|
19719
|
+
},
|
|
19720
|
+
sx: { flex: 1, alignSelf: "center", mx: 0.5 }
|
|
19721
|
+
}
|
|
19722
|
+
),
|
|
19666
19723
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_material18.Box, { sx: { display: "flex", alignItems: "center", gap: isMobile ? 0.6 : 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_material18.Tooltip, { title: isStreaming ? "Stop response" : "Send message", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
19667
19724
|
import_material18.IconButton,
|
|
19668
19725
|
{
|
|
@@ -19834,13 +19891,14 @@ var init_askUserStore = __esm({
|
|
|
19834
19891
|
});
|
|
19835
19892
|
|
|
19836
19893
|
// src/chat/ask-user-card.tsx
|
|
19837
|
-
var import_react24, import_material19, import_styles11, import_jsx_runtime21, AskUserCard, ask_user_card_default;
|
|
19894
|
+
var import_react24, import_material19, import_styles11, import_lucide_react7, import_jsx_runtime21, AskUserCard, ask_user_card_default;
|
|
19838
19895
|
var init_ask_user_card = __esm({
|
|
19839
19896
|
"src/chat/ask-user-card.tsx"() {
|
|
19840
19897
|
"use strict";
|
|
19841
19898
|
import_react24 = require("react");
|
|
19842
19899
|
import_material19 = require("@mui/material");
|
|
19843
19900
|
import_styles11 = require("@mui/material/styles");
|
|
19901
|
+
import_lucide_react7 = require("lucide-react");
|
|
19844
19902
|
init_askUserStore();
|
|
19845
19903
|
import_jsx_runtime21 = require("react/jsx-runtime");
|
|
19846
19904
|
AskUserCard = () => {
|
|
@@ -19868,57 +19926,142 @@ var init_ask_user_card = __esm({
|
|
|
19868
19926
|
});
|
|
19869
19927
|
submit(final);
|
|
19870
19928
|
};
|
|
19871
|
-
|
|
19929
|
+
const isSingleQuestion = pending.questions.length === 1;
|
|
19930
|
+
const handleOptionTap = (qid, label) => {
|
|
19931
|
+
setFreeform((p) => ({ ...p, [qid]: "" }));
|
|
19932
|
+
if (isSingleQuestion) {
|
|
19933
|
+
submit({ [qid]: label });
|
|
19934
|
+
return;
|
|
19935
|
+
}
|
|
19936
|
+
setSelected((p) => ({ ...p, [qid]: label }));
|
|
19937
|
+
};
|
|
19938
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material19.Grow, { in: true, timeout: 300, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material19.Box, { sx: { width: "100%", display: "flex", justifyContent: "center", px: { xs: 1, sm: 2 }, mb: 1.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
19872
19939
|
import_material19.Paper,
|
|
19873
19940
|
{
|
|
19874
19941
|
elevation: 0,
|
|
19875
19942
|
sx: {
|
|
19876
19943
|
width: "100%",
|
|
19877
19944
|
maxWidth: 760,
|
|
19878
|
-
p: { xs:
|
|
19879
|
-
borderRadius:
|
|
19880
|
-
border: `1px solid ${
|
|
19881
|
-
bgcolor:
|
|
19945
|
+
p: { xs: 2, sm: 2.5 },
|
|
19946
|
+
borderRadius: 3,
|
|
19947
|
+
border: `1px solid ${theme.palette.divider}`,
|
|
19948
|
+
bgcolor: theme.palette.background.paper,
|
|
19949
|
+
boxShadow: `0 8px 32px ${(0, import_styles11.alpha)(theme.palette.common.black, theme.palette.mode === "dark" ? 0.35 : 0.1)}`
|
|
19882
19950
|
},
|
|
19883
19951
|
children: [
|
|
19884
|
-
/* @__PURE__ */ (0, import_jsx_runtime21.
|
|
19885
|
-
|
|
19886
|
-
|
|
19887
|
-
|
|
19888
|
-
|
|
19889
|
-
|
|
19890
|
-
|
|
19891
|
-
|
|
19952
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material19.Box, { sx: { display: "flex", alignItems: "center", gap: 1, mb: 0.5 }, children: [
|
|
19953
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
19954
|
+
import_material19.Box,
|
|
19955
|
+
{
|
|
19956
|
+
sx: {
|
|
19957
|
+
width: 26,
|
|
19958
|
+
height: 26,
|
|
19959
|
+
borderRadius: "50%",
|
|
19960
|
+
display: "flex",
|
|
19961
|
+
alignItems: "center",
|
|
19962
|
+
justifyContent: "center",
|
|
19963
|
+
bgcolor: (0, import_styles11.alpha)(theme.palette.primary.main, 0.12),
|
|
19964
|
+
color: theme.palette.primary.main,
|
|
19965
|
+
flexShrink: 0
|
|
19966
|
+
},
|
|
19967
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react7.CircleHelp, { size: 16 })
|
|
19968
|
+
}
|
|
19969
|
+
),
|
|
19970
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material19.Typography, { variant: "body2", sx: { color: theme.palette.text.secondary, fontWeight: 600 }, children: "Quick question before I continue" })
|
|
19971
|
+
] }),
|
|
19972
|
+
pending.questions.map((q) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material19.Box, { sx: { mt: 1.75 }, children: [
|
|
19973
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material19.Box, { sx: { display: "flex", alignItems: "baseline", gap: 1, flexWrap: "wrap", mb: 1.25 }, children: [
|
|
19974
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material19.Typography, { sx: { fontWeight: 600, fontSize: "1.02rem", color: theme.palette.text.primary }, children: q.question }),
|
|
19975
|
+
q.header && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
19976
|
+
import_material19.Chip,
|
|
19892
19977
|
{
|
|
19893
|
-
|
|
19894
|
-
|
|
19895
|
-
setFreeform((p) => ({ ...p, [q.id]: "" }));
|
|
19896
|
-
},
|
|
19897
|
-
variant: isSel ? "contained" : "outlined",
|
|
19898
|
-
color: "primary",
|
|
19978
|
+
label: q.header,
|
|
19979
|
+
size: "small",
|
|
19899
19980
|
sx: {
|
|
19900
|
-
|
|
19901
|
-
|
|
19902
|
-
|
|
19903
|
-
|
|
19904
|
-
|
|
19905
|
-
|
|
19906
|
-
|
|
19907
|
-
|
|
19908
|
-
|
|
19909
|
-
|
|
19910
|
-
|
|
19911
|
-
|
|
19912
|
-
|
|
19913
|
-
|
|
19914
|
-
|
|
19915
|
-
|
|
19916
|
-
)
|
|
19917
|
-
] })
|
|
19981
|
+
height: 20,
|
|
19982
|
+
fontSize: "0.7rem",
|
|
19983
|
+
fontWeight: 600,
|
|
19984
|
+
color: theme.palette.text.secondary,
|
|
19985
|
+
bgcolor: (0, import_styles11.alpha)(theme.palette.text.primary, 0.06)
|
|
19986
|
+
}
|
|
19987
|
+
}
|
|
19988
|
+
)
|
|
19989
|
+
] }),
|
|
19990
|
+
q.options && q.options.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
19991
|
+
import_material19.Box,
|
|
19992
|
+
{
|
|
19993
|
+
sx: {
|
|
19994
|
+
display: "grid",
|
|
19995
|
+
gridTemplateColumns: { xs: "1fr", sm: q.options.length > 1 ? "1fr 1fr" : "1fr" },
|
|
19996
|
+
gap: 1
|
|
19918
19997
|
},
|
|
19919
|
-
opt
|
|
19920
|
-
|
|
19921
|
-
|
|
19998
|
+
children: q.options.map((opt) => {
|
|
19999
|
+
const isSel = selected[q.id] === opt.label && !freeform[q.id]?.trim();
|
|
20000
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
20001
|
+
import_material19.Box,
|
|
20002
|
+
{
|
|
20003
|
+
component: "button",
|
|
20004
|
+
type: "button",
|
|
20005
|
+
onClick: () => handleOptionTap(q.id, opt.label),
|
|
20006
|
+
sx: {
|
|
20007
|
+
font: "inherit",
|
|
20008
|
+
textAlign: "left",
|
|
20009
|
+
cursor: "pointer",
|
|
20010
|
+
display: "flex",
|
|
20011
|
+
alignItems: "flex-start",
|
|
20012
|
+
gap: 1,
|
|
20013
|
+
px: 1.5,
|
|
20014
|
+
py: 1.25,
|
|
20015
|
+
borderRadius: 2,
|
|
20016
|
+
border: `1.5px solid ${isSel ? theme.palette.primary.main : theme.palette.divider}`,
|
|
20017
|
+
bgcolor: isSel ? (0, import_styles11.alpha)(theme.palette.primary.main, 0.08) : "transparent",
|
|
20018
|
+
color: "inherit",
|
|
20019
|
+
transition: "border-color 0.15s ease, background-color 0.15s ease, transform 0.1s ease",
|
|
20020
|
+
"&:hover": {
|
|
20021
|
+
borderColor: theme.palette.primary.main,
|
|
20022
|
+
bgcolor: (0, import_styles11.alpha)(theme.palette.primary.main, 0.05)
|
|
20023
|
+
},
|
|
20024
|
+
"&:active": { transform: "scale(0.99)" }
|
|
20025
|
+
},
|
|
20026
|
+
children: [
|
|
20027
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
20028
|
+
import_material19.Box,
|
|
20029
|
+
{
|
|
20030
|
+
sx: {
|
|
20031
|
+
width: 18,
|
|
20032
|
+
height: 18,
|
|
20033
|
+
mt: "2px",
|
|
20034
|
+
borderRadius: "50%",
|
|
20035
|
+
flexShrink: 0,
|
|
20036
|
+
display: "flex",
|
|
20037
|
+
alignItems: "center",
|
|
20038
|
+
justifyContent: "center",
|
|
20039
|
+
border: `1.5px solid ${isSel ? theme.palette.primary.main : (0, import_styles11.alpha)(theme.palette.text.secondary, 0.5)}`,
|
|
20040
|
+
bgcolor: isSel ? theme.palette.primary.main : "transparent",
|
|
20041
|
+
color: theme.palette.getContrastText(theme.palette.primary.main),
|
|
20042
|
+
transition: "all 0.15s ease"
|
|
20043
|
+
},
|
|
20044
|
+
children: isSel && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react7.Check, { size: 12, strokeWidth: 3 })
|
|
20045
|
+
}
|
|
20046
|
+
),
|
|
20047
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material19.Box, { sx: { minWidth: 0 }, children: [
|
|
20048
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material19.Typography, { sx: { fontWeight: 600, lineHeight: 1.35, fontSize: "0.92rem" }, children: opt.label }),
|
|
20049
|
+
opt.description && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
20050
|
+
import_material19.Typography,
|
|
20051
|
+
{
|
|
20052
|
+
variant: "caption",
|
|
20053
|
+
sx: { color: theme.palette.text.secondary, display: "block", mt: 0.25 },
|
|
20054
|
+
children: opt.description
|
|
20055
|
+
}
|
|
20056
|
+
)
|
|
20057
|
+
] })
|
|
20058
|
+
]
|
|
20059
|
+
},
|
|
20060
|
+
opt.label
|
|
20061
|
+
);
|
|
20062
|
+
})
|
|
20063
|
+
}
|
|
20064
|
+
),
|
|
19922
20065
|
q.allowFreeform !== false && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
19923
20066
|
import_material19.TextField,
|
|
19924
20067
|
{
|
|
@@ -19927,17 +20070,45 @@ var init_ask_user_card = __esm({
|
|
|
19927
20070
|
placeholder: q.options && q.options.length ? "Or type your own answer\u2026" : "Type your answer\u2026",
|
|
19928
20071
|
value: freeform[q.id] ?? "",
|
|
19929
20072
|
onChange: (e) => setFreeform((p) => ({ ...p, [q.id]: e.target.value })),
|
|
19930
|
-
|
|
20073
|
+
onKeyDown: (e) => {
|
|
20074
|
+
if (e.key === "Enter" && !e.shiftKey && answerFor(q.id)) {
|
|
20075
|
+
e.preventDefault();
|
|
20076
|
+
if (allAnswered) handleSubmit();
|
|
20077
|
+
}
|
|
20078
|
+
},
|
|
20079
|
+
sx: {
|
|
20080
|
+
mt: q.options && q.options.length ? 1.25 : 0,
|
|
20081
|
+
"& .MuiOutlinedInput-root": { borderRadius: 2 }
|
|
20082
|
+
}
|
|
19931
20083
|
}
|
|
19932
20084
|
)
|
|
19933
20085
|
] }, q.id)),
|
|
19934
|
-
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material19.Box, { sx: { display: "flex", justifyContent: "flex-end", gap: 1, mt: 2 }, children: [
|
|
19935
|
-
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
19936
|
-
|
|
20086
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material19.Box, { sx: { display: "flex", alignItems: "center", justifyContent: "flex-end", gap: 1, mt: 2 }, children: [
|
|
20087
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
20088
|
+
import_material19.Button,
|
|
20089
|
+
{
|
|
20090
|
+
onClick: cancel,
|
|
20091
|
+
color: "inherit",
|
|
20092
|
+
size: "small",
|
|
20093
|
+
sx: { textTransform: "none", color: theme.palette.text.secondary },
|
|
20094
|
+
children: "Skip \u2014 use your best judgment"
|
|
20095
|
+
}
|
|
20096
|
+
),
|
|
20097
|
+
(!isSingleQuestion || Object.values(freeform).some((v) => v.trim())) && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
20098
|
+
import_material19.Button,
|
|
20099
|
+
{
|
|
20100
|
+
onClick: handleSubmit,
|
|
20101
|
+
disabled: !allAnswered,
|
|
20102
|
+
variant: "contained",
|
|
20103
|
+
size: "small",
|
|
20104
|
+
sx: { textTransform: "none", borderRadius: 999, px: 2.5 },
|
|
20105
|
+
children: "Answer"
|
|
20106
|
+
}
|
|
20107
|
+
)
|
|
19937
20108
|
] })
|
|
19938
20109
|
]
|
|
19939
20110
|
}
|
|
19940
|
-
) });
|
|
20111
|
+
) }) });
|
|
19941
20112
|
};
|
|
19942
20113
|
ask_user_card_default = AskUserCard;
|
|
19943
20114
|
}
|
|
@@ -21938,14 +22109,14 @@ TOOL USAGE PROTOCOL (conservative approach)
|
|
|
21938
22109
|
* web_fetch() - to read the FULL contents of a specific URL you already have. Reach for this when the user wants to "tell me more", "go deeper", "read/open that article", or asks for details about a specific source, link, or article from an EARLIER answer: take that item's URL from the previous Sources list in this conversation and fetch it, then answer from the page's actual content (not just the prior summary)
|
|
21939
22110
|
* image_generation() - ONLY when explicitly asked to create or generate an image
|
|
21940
22111
|
* create_file({"content": "...", "filename": "report.docx", "format": "docx"}) - when the user asks for a downloadable FILE (a document, spreadsheet, slides, markdown, code, etc.) or to "export"/"download"/"save" something. Formats: md, txt, csv, json, html, xml, yaml, docx, pptx. PDF is NOT a supported format \u2014 if the user asks for a PDF, create a docx instead. For docx/pptx write well-structured Markdown (use "## " headings to start each slide for pptx). It returns a temporary download link \u2014 ALWAYS tell the user the file expires (~1 hour). If it is unclear whether they want it shown inline vs. as a downloadable file, use ask_user first.
|
|
21941
|
-
* ask_user({"questions": [{"question": "...", "header": "Format", "options": [{"label": "Inline (Recommended)"}, {"label": "Download a file"}]}]}) - when you are
|
|
22112
|
+
* ask_user({"questions": [{"question": "...", "header": "Format", "options": [{"label": "Inline (Recommended)"}, {"label": "Download a file"}]}]}) - when the request is AMBIGUOUS or missing a detail you need to do a good job (unclear scope, audience, format, tone, which of several interpretations they meant), or you are blocked on a decision that is the user's to make and cannot resolve from the request, context, or sensible defaults. Renders clickable options the user answers in one step \u2014 ALWAYS prefer this over asking a clarifying question in prose and ending your turn. Give 1-4 questions, each with 2-4 short options; if one is clearly best, list it first and append " (Recommended)". The user may also type their own answer; act on it directly. Don't overuse it \u2014 when a sensible default exists, take it and note the assumption instead.
|
|
21942
22113
|
- For general questions about concepts, definitions, explanations, or how-to topics, use your built-in knowledge WITHOUT calling tools.
|
|
21943
22114
|
- Examples of what NOT to use tools for: "who are you?", "what is React?", "explain machine learning", "how does X work?", general programming questions.
|
|
21944
22115
|
- When a tool is truly needed, call exactly ONE tool that best matches the request.
|
|
21945
22116
|
- Begin tool usage with a fenced code block: \`\`\`tool_code
|
|
21946
22117
|
functionName({"param": "value"})
|
|
21947
22118
|
\`\`\`
|
|
21948
|
-
- If you cannot answer with your knowledge and context, and no suitable tool exists, ask a clarifying question.
|
|
22119
|
+
- If you cannot answer with your knowledge and context, and no suitable tool exists, use ask_user to ask a clarifying question with clickable options.
|
|
21949
22120
|
|
|
21950
22121
|
Examples of appropriate tool usage:
|
|
21951
22122
|
|
|
@@ -22000,8 +22171,20 @@ ${protocol}`;
|
|
|
22000
22171
|
return result.trimStart();
|
|
22001
22172
|
};
|
|
22002
22173
|
const stripToolBlocks = (text) => text.replace(/```(?:tool_code|TOOL_CODE)\s*\n[\s\S]*?\n```/gi, "").trim();
|
|
22174
|
+
const truncateAtToolApparatus = (text) => {
|
|
22175
|
+
let t = text;
|
|
22176
|
+
const fenceIdx = t.search(/```(?:tool_code|TOOL_CODE)/);
|
|
22177
|
+
if (fenceIdx !== -1) t = t.slice(0, fenceIdx);
|
|
22178
|
+
const callIdx = t.search(
|
|
22179
|
+
/\b(?:web_search|web_fetch|image_generation|create_file|ask_user)\s*\(/
|
|
22180
|
+
);
|
|
22181
|
+
if (callIdx !== -1) t = t.slice(0, callIdx);
|
|
22182
|
+
t = t.replace(/```[\w-]*\s*$/, "");
|
|
22183
|
+
const fenceCount = (t.match(/```/g) || []).length;
|
|
22184
|
+
if (fenceCount % 2 === 1) t = t.slice(0, t.lastIndexOf("```"));
|
|
22185
|
+
return t.trim();
|
|
22186
|
+
};
|
|
22003
22187
|
let workingLabel = "Working on it";
|
|
22004
|
-
let workingPreamble = "";
|
|
22005
22188
|
const stopWorking = () => {
|
|
22006
22189
|
if (workingTimer) {
|
|
22007
22190
|
clearInterval(workingTimer);
|
|
@@ -22010,17 +22193,10 @@ ${protocol}`;
|
|
|
22010
22193
|
};
|
|
22011
22194
|
const startWorking = (label = "Working on it") => {
|
|
22012
22195
|
workingLabel = label.replace(/[.…]+\s*$/, "").trim() || "Working on it";
|
|
22013
|
-
|
|
22014
|
-
|
|
22015
|
-
|
|
22016
|
-
|
|
22017
|
-
dots = (dots + 1) % 4;
|
|
22018
|
-
setStreamBuffer(
|
|
22019
|
-
`${workingPreamble}${workingPreamble ? "\n\n" : ""}_${workingLabel}${".".repeat(dots)}_`
|
|
22020
|
-
);
|
|
22021
|
-
};
|
|
22022
|
-
render();
|
|
22023
|
-
workingTimer = setInterval(render, 450);
|
|
22196
|
+
const preamble = truncateAtToolApparatus(stripToolBlocks(stripThinking(fullMessage)));
|
|
22197
|
+
setStreamBuffer(
|
|
22198
|
+
`${preamble}${preamble ? "\n\n" : ""}<<working:${workingLabel}>>`
|
|
22199
|
+
);
|
|
22024
22200
|
};
|
|
22025
22201
|
const flushNow = () => {
|
|
22026
22202
|
clearFlushTimer();
|
|
@@ -22066,10 +22242,16 @@ ${protocol}`;
|
|
|
22066
22242
|
const inThinkBlock = /<think>/.test(fullMessage) && !/<think>[\s\S]*<\/think>/.test(fullMessage);
|
|
22067
22243
|
setIsThinking?.(inThinkBlock);
|
|
22068
22244
|
const visibleMessage = stripThinking(fullMessage);
|
|
22069
|
-
|
|
22245
|
+
const bareToolMatch = visibleMessage.match(
|
|
22246
|
+
/\b(web_search|web_fetch|image_generation|create_file|ask_user)\s*\(/
|
|
22247
|
+
);
|
|
22248
|
+
if (/```(?:tool_code|TOOL_CODE)/.test(visibleMessage) || bareToolMatch) {
|
|
22070
22249
|
sawToolBlock = true;
|
|
22071
22250
|
clearFlushTimer();
|
|
22072
|
-
|
|
22251
|
+
const fn = bareToolMatch?.[1];
|
|
22252
|
+
startWorking(
|
|
22253
|
+
fn === "create_file" ? "Creating your file" : fn === "web_search" ? "Searching the web" : fn === "web_fetch" ? "Reading the page" : fn === "image_generation" ? "Generating the image" : "Working on it"
|
|
22254
|
+
);
|
|
22073
22255
|
}
|
|
22074
22256
|
latestDisplayMessage = visibleMessage;
|
|
22075
22257
|
if (!sawToolBlock) {
|
|
@@ -22925,13 +23107,13 @@ var init_useNetworkStatus = __esm({
|
|
|
22925
23107
|
});
|
|
22926
23108
|
|
|
22927
23109
|
// src/chat/project-management-modal.tsx
|
|
22928
|
-
var import_react30, import_material21,
|
|
23110
|
+
var import_react30, import_material21, import_lucide_react8, import_styles12, import_jsx_runtime23, DEFAULT_COLORS2, ProjectManagementModal, project_management_modal_default;
|
|
22929
23111
|
var init_project_management_modal = __esm({
|
|
22930
23112
|
"src/chat/project-management-modal.tsx"() {
|
|
22931
23113
|
"use strict";
|
|
22932
23114
|
import_react30 = require("react");
|
|
22933
23115
|
import_material21 = require("@mui/material");
|
|
22934
|
-
|
|
23116
|
+
import_lucide_react8 = require("lucide-react");
|
|
22935
23117
|
import_styles12 = require("@mui/material/styles");
|
|
22936
23118
|
init_projectStore();
|
|
22937
23119
|
init_conversationStore();
|
|
@@ -23160,7 +23342,7 @@ var init_project_management_modal = __esm({
|
|
|
23160
23342
|
flex: 1
|
|
23161
23343
|
},
|
|
23162
23344
|
children: [
|
|
23163
|
-
showCreateForm && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material21.IconButton, { onClick: resetForm, size: "small", sx: { mr: 0.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
23345
|
+
showCreateForm && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material21.IconButton, { onClick: resetForm, size: "small", sx: { mr: 0.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react8.ArrowLeft, { size: 16 }) }),
|
|
23164
23346
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
23165
23347
|
import_material21.Typography,
|
|
23166
23348
|
{
|
|
@@ -23178,7 +23360,7 @@ var init_project_management_modal = __esm({
|
|
|
23178
23360
|
]
|
|
23179
23361
|
}
|
|
23180
23362
|
),
|
|
23181
|
-
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material21.IconButton, { onClick: handleClose, size: "small", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
23363
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material21.IconButton, { onClick: handleClose, size: "small", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react8.X, {}) })
|
|
23182
23364
|
]
|
|
23183
23365
|
}
|
|
23184
23366
|
),
|
|
@@ -23265,7 +23447,7 @@ var init_project_management_modal = __esm({
|
|
|
23265
23447
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
23266
23448
|
import_material21.Button,
|
|
23267
23449
|
{
|
|
23268
|
-
startIcon: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
23450
|
+
startIcon: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react8.Plus, {}),
|
|
23269
23451
|
onClick: () => setShowCreateForm(true),
|
|
23270
23452
|
variant: "contained",
|
|
23271
23453
|
sx: {
|
|
@@ -23290,7 +23472,7 @@ var init_project_management_modal = __esm({
|
|
|
23290
23472
|
backgroundColor: subtleSurface
|
|
23291
23473
|
},
|
|
23292
23474
|
children: [
|
|
23293
|
-
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
23475
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react8.Folder, { size: 48, style: { marginBottom: 8, opacity: 0.5 } }),
|
|
23294
23476
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material21.Typography, { variant: "body1", sx: { fontWeight: 600 }, children: "No projects yet" }),
|
|
23295
23477
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material21.Typography, { variant: "body2", children: "Create your first project to organize conversations." })
|
|
23296
23478
|
]
|
|
@@ -23325,7 +23507,7 @@ var init_project_management_modal = __esm({
|
|
|
23325
23507
|
height: 36,
|
|
23326
23508
|
fontSize: "1rem"
|
|
23327
23509
|
},
|
|
23328
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
23510
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react8.Folder, { size: 16 })
|
|
23329
23511
|
}
|
|
23330
23512
|
),
|
|
23331
23513
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material21.Box, { sx: { flex: 1, minWidth: 0 }, children: [
|
|
@@ -23376,7 +23558,7 @@ var init_project_management_modal = __esm({
|
|
|
23376
23558
|
mt: 0.25,
|
|
23377
23559
|
zIndex: 1
|
|
23378
23560
|
},
|
|
23379
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
23561
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react8.MoreVertical, { size: 16 })
|
|
23380
23562
|
}
|
|
23381
23563
|
)
|
|
23382
23564
|
]
|
|
@@ -23452,7 +23634,7 @@ var init_project_management_modal = __esm({
|
|
|
23452
23634
|
startEdit(selectedProject);
|
|
23453
23635
|
},
|
|
23454
23636
|
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material21.Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
23455
|
-
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
23637
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react8.Pencil, { size: 16 }),
|
|
23456
23638
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material21.Typography, { variant: "body2", color: "inherit", children: "Edit" })
|
|
23457
23639
|
] })
|
|
23458
23640
|
}
|
|
@@ -23466,7 +23648,7 @@ var init_project_management_modal = __esm({
|
|
|
23466
23648
|
},
|
|
23467
23649
|
sx: { color: theme.palette.error.main },
|
|
23468
23650
|
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material21.Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
23469
|
-
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
23651
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react8.Trash2, { size: 16 }),
|
|
23470
23652
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material21.Typography, { variant: "body2", color: "inherit", children: "Delete" })
|
|
23471
23653
|
] })
|
|
23472
23654
|
}
|
|
@@ -23518,13 +23700,13 @@ var init_project_management_modal = __esm({
|
|
|
23518
23700
|
});
|
|
23519
23701
|
|
|
23520
23702
|
// src/chat/move-conversation-modal.tsx
|
|
23521
|
-
var import_react31, import_material22,
|
|
23703
|
+
var import_react31, import_material22, import_lucide_react9, import_styles13, import_jsx_runtime24, MoveConversationModal, move_conversation_modal_default;
|
|
23522
23704
|
var init_move_conversation_modal = __esm({
|
|
23523
23705
|
"src/chat/move-conversation-modal.tsx"() {
|
|
23524
23706
|
"use strict";
|
|
23525
23707
|
import_react31 = require("react");
|
|
23526
23708
|
import_material22 = require("@mui/material");
|
|
23527
|
-
|
|
23709
|
+
import_lucide_react9 = require("lucide-react");
|
|
23528
23710
|
import_styles13 = require("@mui/material/styles");
|
|
23529
23711
|
init_projectStore();
|
|
23530
23712
|
init_conversationStore();
|
|
@@ -23609,7 +23791,7 @@ var init_move_conversation_modal = __esm({
|
|
|
23609
23791
|
width: 32,
|
|
23610
23792
|
height: 32
|
|
23611
23793
|
},
|
|
23612
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
23794
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react9.Inbox, {})
|
|
23613
23795
|
}
|
|
23614
23796
|
) }),
|
|
23615
23797
|
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
@@ -23645,7 +23827,7 @@ var init_move_conversation_modal = __esm({
|
|
|
23645
23827
|
width: 32,
|
|
23646
23828
|
height: 32
|
|
23647
23829
|
},
|
|
23648
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
23830
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react9.Folder, {})
|
|
23649
23831
|
}
|
|
23650
23832
|
) }),
|
|
23651
23833
|
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
@@ -23689,13 +23871,13 @@ var init_move_conversation_modal = __esm({
|
|
|
23689
23871
|
});
|
|
23690
23872
|
|
|
23691
23873
|
// src/chat/simple-conversation-item.tsx
|
|
23692
|
-
var import_react32, import_material23,
|
|
23874
|
+
var import_react32, import_material23, import_lucide_react10, import_styles14, import_jsx_runtime25, SimpleConversationItem, simple_conversation_item_default;
|
|
23693
23875
|
var init_simple_conversation_item = __esm({
|
|
23694
23876
|
"src/chat/simple-conversation-item.tsx"() {
|
|
23695
23877
|
"use strict";
|
|
23696
23878
|
import_react32 = require("react");
|
|
23697
23879
|
import_material23 = require("@mui/material");
|
|
23698
|
-
|
|
23880
|
+
import_lucide_react10 = require("lucide-react");
|
|
23699
23881
|
import_styles14 = require("@mui/material/styles");
|
|
23700
23882
|
import_jsx_runtime25 = require("react/jsx-runtime");
|
|
23701
23883
|
SimpleConversationItem = ({
|
|
@@ -23923,7 +24105,7 @@ var init_simple_conversation_item = __esm({
|
|
|
23923
24105
|
},
|
|
23924
24106
|
children: [
|
|
23925
24107
|
!isMobile && !isEditing && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
23926
|
-
|
|
24108
|
+
import_lucide_react10.GripVertical,
|
|
23927
24109
|
{
|
|
23928
24110
|
size: 16,
|
|
23929
24111
|
color: theme.palette.text.disabled,
|
|
@@ -24017,7 +24199,7 @@ var init_simple_conversation_item = __esm({
|
|
|
24017
24199
|
}
|
|
24018
24200
|
}
|
|
24019
24201
|
},
|
|
24020
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
24202
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react10.MoreVertical, { size: 16 })
|
|
24021
24203
|
}
|
|
24022
24204
|
),
|
|
24023
24205
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
@@ -24048,15 +24230,15 @@ var init_simple_conversation_item = __esm({
|
|
|
24048
24230
|
},
|
|
24049
24231
|
children: [
|
|
24050
24232
|
onRename && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_material23.MenuItem, { onClick: handleEdit, children: [
|
|
24051
|
-
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_material23.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
24233
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_material23.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react10.Pencil, { size: 16 }) }),
|
|
24052
24234
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_material23.ListItemText, { children: "Rename" })
|
|
24053
24235
|
] }),
|
|
24054
24236
|
onMove && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_material23.MenuItem, { onClick: handleMove, children: [
|
|
24055
|
-
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_material23.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
24237
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_material23.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react10.MailOpen, { size: 16 }) }),
|
|
24056
24238
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_material23.ListItemText, { children: "Move to Project" })
|
|
24057
24239
|
] }),
|
|
24058
24240
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_material23.MenuItem, { onClick: handleDelete, children: [
|
|
24059
|
-
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_material23.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
24241
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_material23.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react10.Trash2, { size: 16 }) }),
|
|
24060
24242
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_material23.ListItemText, { children: "Delete" })
|
|
24061
24243
|
] })
|
|
24062
24244
|
]
|
|
@@ -24129,13 +24311,13 @@ var init_simple_conversation_item = __esm({
|
|
|
24129
24311
|
});
|
|
24130
24312
|
|
|
24131
24313
|
// src/chat/project-header.tsx
|
|
24132
|
-
var import_react33, import_material24,
|
|
24314
|
+
var import_react33, import_material24, import_lucide_react11, import_styles15, import_jsx_runtime26, ProjectHeader, project_header_default;
|
|
24133
24315
|
var init_project_header = __esm({
|
|
24134
24316
|
"src/chat/project-header.tsx"() {
|
|
24135
24317
|
"use strict";
|
|
24136
24318
|
import_react33 = require("react");
|
|
24137
24319
|
import_material24 = require("@mui/material");
|
|
24138
|
-
|
|
24320
|
+
import_lucide_react11 = require("lucide-react");
|
|
24139
24321
|
import_styles15 = require("@mui/material/styles");
|
|
24140
24322
|
init_conversationStore();
|
|
24141
24323
|
init_projectStore();
|
|
@@ -24162,7 +24344,7 @@ var init_project_header = __esm({
|
|
|
24162
24344
|
const [renameDraft, setRenameDraft] = (0, import_react33.useState)(projectName);
|
|
24163
24345
|
const renameActionRef = (0, import_react33.useRef)("none");
|
|
24164
24346
|
const isUngrouped = projectId === null;
|
|
24165
|
-
const Icon = isCollapsed ?
|
|
24347
|
+
const Icon = isCollapsed ? import_lucide_react11.Folder : import_lucide_react11.FolderOpen;
|
|
24166
24348
|
const handleAddConversation = (e) => {
|
|
24167
24349
|
e.stopPropagation();
|
|
24168
24350
|
createNewConversation(projectId || void 0);
|
|
@@ -24243,7 +24425,7 @@ var init_project_header = __esm({
|
|
|
24243
24425
|
mr: 1.5
|
|
24244
24426
|
},
|
|
24245
24427
|
children: isUngrouped ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
24246
|
-
|
|
24428
|
+
import_lucide_react11.Inbox,
|
|
24247
24429
|
{
|
|
24248
24430
|
size: 16,
|
|
24249
24431
|
color: theme.palette.text.disabled,
|
|
@@ -24359,7 +24541,7 @@ var init_project_header = __esm({
|
|
|
24359
24541
|
onRenameCancelDelete ? onRenameCancelDelete() : cancelRename();
|
|
24360
24542
|
},
|
|
24361
24543
|
sx: { color: (0, import_material24.alpha)(theme.palette.error.main, 0.9) },
|
|
24362
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
24544
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react11.X, { size: 16 })
|
|
24363
24545
|
}
|
|
24364
24546
|
) }),
|
|
24365
24547
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Tooltip, { title: "Save", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
@@ -24372,7 +24554,7 @@ var init_project_header = __esm({
|
|
|
24372
24554
|
commitRename();
|
|
24373
24555
|
},
|
|
24374
24556
|
sx: { color: theme.palette.success.main },
|
|
24375
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
24557
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react11.Check, { size: 16 })
|
|
24376
24558
|
}
|
|
24377
24559
|
) })
|
|
24378
24560
|
] }),
|
|
@@ -24393,7 +24575,7 @@ var init_project_header = __esm({
|
|
|
24393
24575
|
},
|
|
24394
24576
|
transition: "all 0.2s ease"
|
|
24395
24577
|
},
|
|
24396
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
24578
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react11.Plus, { size: 16 })
|
|
24397
24579
|
}
|
|
24398
24580
|
) }),
|
|
24399
24581
|
!isUngrouped && !isRenaming && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
@@ -24404,7 +24586,7 @@ var init_project_header = __esm({
|
|
|
24404
24586
|
color: theme.palette.text.secondary,
|
|
24405
24587
|
transition: "transform 0.2s ease"
|
|
24406
24588
|
},
|
|
24407
|
-
children: isCollapsed ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
24589
|
+
children: isCollapsed ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react11.ChevronDown, { size: 16 }) : /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react11.ChevronUp, { size: 16 })
|
|
24408
24590
|
}
|
|
24409
24591
|
)
|
|
24410
24592
|
]
|
|
@@ -24434,13 +24616,13 @@ var init_tooltips = __esm({
|
|
|
24434
24616
|
});
|
|
24435
24617
|
|
|
24436
24618
|
// src/chat/conversation-drawer.tsx
|
|
24437
|
-
var import_react34, import_material25,
|
|
24619
|
+
var import_react34, import_material25, import_lucide_react12, import_styles16, import_jsx_runtime27, BANDIT_AVATAR, coerceOptionalString, deriveInitials, ConversationDrawer, conversation_drawer_default;
|
|
24438
24620
|
var init_conversation_drawer = __esm({
|
|
24439
24621
|
"src/chat/conversation-drawer.tsx"() {
|
|
24440
24622
|
"use strict";
|
|
24441
24623
|
import_react34 = require("react");
|
|
24442
24624
|
import_material25 = require("@mui/material");
|
|
24443
|
-
|
|
24625
|
+
import_lucide_react12 = require("lucide-react");
|
|
24444
24626
|
import_styles16 = require("@mui/material/styles");
|
|
24445
24627
|
init_conversationStore();
|
|
24446
24628
|
init_projectStore();
|
|
@@ -24813,7 +24995,7 @@ var init_conversation_drawer = __esm({
|
|
|
24813
24995
|
bgcolor: (0, import_material25.alpha)(theme.palette.primary.main, 0.1)
|
|
24814
24996
|
}
|
|
24815
24997
|
},
|
|
24816
|
-
children: syncStatus === "error" ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
24998
|
+
children: syncStatus === "error" ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.CircleAlert, {}) : /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.RefreshCw, {})
|
|
24817
24999
|
}
|
|
24818
25000
|
) }),
|
|
24819
25001
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material25.Tooltip, { title: "Memories", arrow: true, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
@@ -24829,7 +25011,7 @@ var init_conversation_drawer = __esm({
|
|
|
24829
25011
|
bgcolor: (0, import_material25.alpha)(theme.palette.primary.main, 0.1)
|
|
24830
25012
|
}
|
|
24831
25013
|
},
|
|
24832
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25014
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.Brain, {})
|
|
24833
25015
|
}
|
|
24834
25016
|
) }),
|
|
24835
25017
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material25.Tooltip, { title: tooltip("manageProjects"), arrow: true, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
@@ -24845,7 +25027,7 @@ var init_conversation_drawer = __esm({
|
|
|
24845
25027
|
bgcolor: (0, import_material25.alpha)(theme.palette.primary.main, 0.1)
|
|
24846
25028
|
}
|
|
24847
25029
|
},
|
|
24848
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25030
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.Folder, {})
|
|
24849
25031
|
}
|
|
24850
25032
|
) }),
|
|
24851
25033
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material25.Tooltip, { title: tooltip("conversationOptions"), arrow: true, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
@@ -24861,7 +25043,7 @@ var init_conversation_drawer = __esm({
|
|
|
24861
25043
|
bgcolor: (0, import_material25.alpha)(theme.palette.text.primary, 0.1)
|
|
24862
25044
|
}
|
|
24863
25045
|
},
|
|
24864
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25046
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.MoreVertical, {})
|
|
24865
25047
|
}
|
|
24866
25048
|
) }),
|
|
24867
25049
|
isMobile && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material25.Tooltip, { title: tooltip("closeConversationsPanel"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
@@ -24881,7 +25063,7 @@ var init_conversation_drawer = __esm({
|
|
|
24881
25063
|
bgcolor: (0, import_material25.alpha)(theme.palette.error.main, 0.1)
|
|
24882
25064
|
}
|
|
24883
25065
|
},
|
|
24884
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25066
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.X, {})
|
|
24885
25067
|
}
|
|
24886
25068
|
) })
|
|
24887
25069
|
]
|
|
@@ -24897,7 +25079,7 @@ var init_conversation_drawer = __esm({
|
|
|
24897
25079
|
onChange: (e) => setSearchQuery(e.target.value),
|
|
24898
25080
|
variant: "outlined",
|
|
24899
25081
|
InputProps: {
|
|
24900
|
-
startAdornment: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material25.InputAdornment, { position: "start", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25082
|
+
startAdornment: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material25.InputAdornment, { position: "start", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.Search, { size: 16, color: theme.palette.text.secondary }) }),
|
|
24901
25083
|
endAdornment: searchQuery && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material25.InputAdornment, { position: "end", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material25.Tooltip, { title: tooltip("clearSearch"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
24902
25084
|
import_material25.IconButton,
|
|
24903
25085
|
{
|
|
@@ -24906,7 +25088,7 @@ var init_conversation_drawer = __esm({
|
|
|
24906
25088
|
edge: "end",
|
|
24907
25089
|
"aria-label": tooltip("clearSearch"),
|
|
24908
25090
|
sx: { color: theme.palette.text.secondary },
|
|
24909
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25091
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.X, { size: 16 })
|
|
24910
25092
|
}
|
|
24911
25093
|
) }) })
|
|
24912
25094
|
},
|
|
@@ -24972,7 +25154,7 @@ var init_conversation_drawer = __esm({
|
|
|
24972
25154
|
justifyContent: "center",
|
|
24973
25155
|
flexShrink: 0
|
|
24974
25156
|
},
|
|
24975
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25157
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.Folder, { size: 16, color: theme.palette.success.main })
|
|
24976
25158
|
}
|
|
24977
25159
|
),
|
|
24978
25160
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
@@ -24989,7 +25171,7 @@ var init_conversation_drawer = __esm({
|
|
|
24989
25171
|
size: "small",
|
|
24990
25172
|
"aria-label": tooltip("addProject"),
|
|
24991
25173
|
sx: { color: theme.palette.success.main },
|
|
24992
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25174
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.Plus, { size: 16 })
|
|
24993
25175
|
}
|
|
24994
25176
|
) })
|
|
24995
25177
|
]
|
|
@@ -25011,7 +25193,7 @@ var init_conversation_drawer = __esm({
|
|
|
25011
25193
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material25.Divider, { sx: { flex: 1, opacity: 0.6 } }),
|
|
25012
25194
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material25.Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
25013
25195
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25014
|
-
|
|
25196
|
+
import_lucide_react12.Inbox,
|
|
25015
25197
|
{
|
|
25016
25198
|
size: 14,
|
|
25017
25199
|
color: theme.palette.text.disabled,
|
|
@@ -25251,7 +25433,7 @@ var init_conversation_drawer = __esm({
|
|
|
25251
25433
|
border: `1px solid ${(0, import_material25.alpha)(theme.palette.divider, 0.8)}`,
|
|
25252
25434
|
color: theme.palette.text.secondary
|
|
25253
25435
|
},
|
|
25254
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25436
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.House, { size: 16 })
|
|
25255
25437
|
}
|
|
25256
25438
|
),
|
|
25257
25439
|
user2 && showLimitedAdminPanel() && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
@@ -25270,7 +25452,7 @@ var init_conversation_drawer = __esm({
|
|
|
25270
25452
|
border: `1px solid ${(0, import_material25.alpha)(theme.palette.divider, 0.8)}`,
|
|
25271
25453
|
color: theme.palette.text.secondary
|
|
25272
25454
|
},
|
|
25273
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25455
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.SlidersHorizontal, { size: 16 })
|
|
25274
25456
|
}
|
|
25275
25457
|
),
|
|
25276
25458
|
user2 && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_jsx_runtime27.Fragment, { children: [
|
|
@@ -25288,7 +25470,7 @@ var init_conversation_drawer = __esm({
|
|
|
25288
25470
|
border: `1px solid ${(0, import_material25.alpha)(theme.palette.divider, 0.8)}`,
|
|
25289
25471
|
color: theme.palette.text.secondary
|
|
25290
25472
|
},
|
|
25291
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25473
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.Settings, { size: 16 })
|
|
25292
25474
|
}
|
|
25293
25475
|
),
|
|
25294
25476
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
@@ -25309,7 +25491,7 @@ var init_conversation_drawer = __esm({
|
|
|
25309
25491
|
color: theme.palette.error.main,
|
|
25310
25492
|
"&:hover": { bgcolor: (0, import_material25.alpha)(theme.palette.error.main, 0.1) }
|
|
25311
25493
|
},
|
|
25312
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25494
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.LogOut, { size: 16 })
|
|
25313
25495
|
}
|
|
25314
25496
|
)
|
|
25315
25497
|
] })
|
|
@@ -25359,7 +25541,7 @@ var init_conversation_drawer = __esm({
|
|
|
25359
25541
|
},
|
|
25360
25542
|
sx: { color: theme.palette.error.main },
|
|
25361
25543
|
children: [
|
|
25362
|
-
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material25.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25544
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material25.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.Trash2, { size: 16, color: theme.palette.error.main }) }),
|
|
25363
25545
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material25.ListItemText, { children: "Clear All Conversations" })
|
|
25364
25546
|
]
|
|
25365
25547
|
}
|
|
@@ -25398,13 +25580,13 @@ var init_conversation_drawer = __esm({
|
|
|
25398
25580
|
});
|
|
25399
25581
|
|
|
25400
25582
|
// src/chat/enhanced-mobile-conversations-modal.tsx
|
|
25401
|
-
var import_react35, import_material26,
|
|
25583
|
+
var import_react35, import_material26, import_lucide_react13, import_styles17, import_jsx_runtime28, BANDIT_AVATAR2, coerceOptionalString2, deriveInitials2, EnhancedMobileConversationsModal, enhanced_mobile_conversations_modal_default;
|
|
25402
25584
|
var init_enhanced_mobile_conversations_modal = __esm({
|
|
25403
25585
|
"src/chat/enhanced-mobile-conversations-modal.tsx"() {
|
|
25404
25586
|
"use strict";
|
|
25405
25587
|
import_react35 = require("react");
|
|
25406
25588
|
import_material26 = require("@mui/material");
|
|
25407
|
-
|
|
25589
|
+
import_lucide_react13 = require("lucide-react");
|
|
25408
25590
|
import_styles17 = require("@mui/material/styles");
|
|
25409
25591
|
init_conversationStore();
|
|
25410
25592
|
init_projectStore();
|
|
@@ -25847,7 +26029,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
25847
26029
|
}
|
|
25848
26030
|
}
|
|
25849
26031
|
},
|
|
25850
|
-
children: syncStatus === "error" ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26032
|
+
children: syncStatus === "error" ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.CircleAlert, {}) : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.RefreshCw, {})
|
|
25851
26033
|
}
|
|
25852
26034
|
),
|
|
25853
26035
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
@@ -25856,7 +26038,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
25856
26038
|
onClick: () => setMemoryModalOpen(true),
|
|
25857
26039
|
"aria-label": "Memory",
|
|
25858
26040
|
sx: { color: theme.palette.text.secondary },
|
|
25859
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26041
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.Brain, {})
|
|
25860
26042
|
}
|
|
25861
26043
|
),
|
|
25862
26044
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
@@ -25864,7 +26046,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
25864
26046
|
{
|
|
25865
26047
|
onClick: () => setProjectManagementOpen(true),
|
|
25866
26048
|
sx: { color: theme.palette.text.secondary },
|
|
25867
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26049
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.Folder, {})
|
|
25868
26050
|
}
|
|
25869
26051
|
),
|
|
25870
26052
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
@@ -25872,7 +26054,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
25872
26054
|
{
|
|
25873
26055
|
onClick: handleMenuOpen,
|
|
25874
26056
|
sx: { color: theme.palette.text.secondary },
|
|
25875
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26057
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.MoreVertical, {})
|
|
25876
26058
|
}
|
|
25877
26059
|
),
|
|
25878
26060
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
@@ -25880,7 +26062,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
25880
26062
|
{
|
|
25881
26063
|
onClick: onClose,
|
|
25882
26064
|
sx: { color: theme.palette.text.secondary },
|
|
25883
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26065
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.X, {})
|
|
25884
26066
|
}
|
|
25885
26067
|
)
|
|
25886
26068
|
] })
|
|
@@ -25896,7 +26078,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
25896
26078
|
onChange: (e) => setSearchQuery(e.target.value),
|
|
25897
26079
|
variant: "outlined",
|
|
25898
26080
|
InputProps: {
|
|
25899
|
-
startAdornment: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_material26.InputAdornment, { position: "start", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26081
|
+
startAdornment: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_material26.InputAdornment, { position: "start", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.Search, { size: 16, color: theme.palette.text.secondary }) }),
|
|
25900
26082
|
endAdornment: searchQuery && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_material26.InputAdornment, { position: "end", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
25901
26083
|
import_material26.IconButton,
|
|
25902
26084
|
{
|
|
@@ -25904,7 +26086,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
25904
26086
|
size: "small",
|
|
25905
26087
|
edge: "end",
|
|
25906
26088
|
sx: { color: theme.palette.text.secondary },
|
|
25907
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26089
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.X, { size: 16 })
|
|
25908
26090
|
}
|
|
25909
26091
|
) })
|
|
25910
26092
|
}
|
|
@@ -26060,7 +26242,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
26060
26242
|
justifyContent: "center",
|
|
26061
26243
|
flexShrink: 0
|
|
26062
26244
|
},
|
|
26063
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26245
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.Folder, { size: 16, color: theme.palette.success.main })
|
|
26064
26246
|
}
|
|
26065
26247
|
),
|
|
26066
26248
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
@@ -26071,7 +26253,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
26071
26253
|
children: "New Project"
|
|
26072
26254
|
}
|
|
26073
26255
|
),
|
|
26074
|
-
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_material26.IconButton, { size: "small", sx: { color: theme.palette.success.main }, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26256
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_material26.IconButton, { size: "small", sx: { color: theme.palette.success.main }, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.Plus, { size: 16 }) })
|
|
26075
26257
|
]
|
|
26076
26258
|
}
|
|
26077
26259
|
),
|
|
@@ -26091,7 +26273,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
26091
26273
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_material26.Divider, { sx: { flex: 1, opacity: 0.6 } }),
|
|
26092
26274
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_material26.Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
26093
26275
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26094
|
-
|
|
26276
|
+
import_lucide_react13.Inbox,
|
|
26095
26277
|
{
|
|
26096
26278
|
size: 14,
|
|
26097
26279
|
color: theme.palette.text.disabled,
|
|
@@ -26286,7 +26468,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
26286
26468
|
createNewConversation();
|
|
26287
26469
|
onClose();
|
|
26288
26470
|
},
|
|
26289
|
-
startIcon: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26471
|
+
startIcon: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.Plus, { size: 18 }),
|
|
26290
26472
|
sx: {
|
|
26291
26473
|
pointerEvents: "auto",
|
|
26292
26474
|
textTransform: "none",
|
|
@@ -26377,7 +26559,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
26377
26559
|
border: `1px solid ${(0, import_styles17.alpha)(theme.palette.divider, 0.8)}`,
|
|
26378
26560
|
color: theme.palette.text.secondary
|
|
26379
26561
|
},
|
|
26380
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26562
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.House, { size: 16 })
|
|
26381
26563
|
}
|
|
26382
26564
|
),
|
|
26383
26565
|
user2 && showLimitedAdminPanel() && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
@@ -26396,7 +26578,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
26396
26578
|
border: `1px solid ${(0, import_styles17.alpha)(theme.palette.divider, 0.8)}`,
|
|
26397
26579
|
color: theme.palette.text.secondary
|
|
26398
26580
|
},
|
|
26399
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26581
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.SlidersHorizontal, { size: 16 })
|
|
26400
26582
|
}
|
|
26401
26583
|
),
|
|
26402
26584
|
user2 && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [
|
|
@@ -26414,7 +26596,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
26414
26596
|
border: `1px solid ${(0, import_styles17.alpha)(theme.palette.divider, 0.8)}`,
|
|
26415
26597
|
color: theme.palette.text.secondary
|
|
26416
26598
|
},
|
|
26417
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26599
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.Settings, { size: 16 })
|
|
26418
26600
|
}
|
|
26419
26601
|
),
|
|
26420
26602
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
@@ -26435,7 +26617,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
26435
26617
|
color: theme.palette.error.main,
|
|
26436
26618
|
"&:hover": { bgcolor: (0, import_styles17.alpha)(theme.palette.error.main, 0.1) }
|
|
26437
26619
|
},
|
|
26438
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26620
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.LogOut, { size: 16 })
|
|
26439
26621
|
}
|
|
26440
26622
|
)
|
|
26441
26623
|
] })
|
|
@@ -26488,7 +26670,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
26488
26670
|
disabled: visibleConversationCount === 0,
|
|
26489
26671
|
sx: { color: theme.palette.error.main },
|
|
26490
26672
|
children: [
|
|
26491
|
-
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_material26.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26673
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_material26.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.Trash2, { size: 16, color: theme.palette.error.main }) }),
|
|
26492
26674
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_material26.ListItemText, { children: "Clear All Conversations" })
|
|
26493
26675
|
]
|
|
26494
26676
|
}
|
|
@@ -30155,13 +30337,13 @@ var init_feedback = __esm({
|
|
|
30155
30337
|
});
|
|
30156
30338
|
|
|
30157
30339
|
// src/components/feedback/FeedbackButton.tsx
|
|
30158
|
-
var import_react38, import_material31,
|
|
30340
|
+
var import_react38, import_material31, import_lucide_react14, import_jsx_runtime32, FeedbackButton;
|
|
30159
30341
|
var init_FeedbackButton = __esm({
|
|
30160
30342
|
"src/components/feedback/FeedbackButton.tsx"() {
|
|
30161
30343
|
"use strict";
|
|
30162
30344
|
import_react38 = require("react");
|
|
30163
30345
|
import_material31 = require("@mui/material");
|
|
30164
|
-
|
|
30346
|
+
import_lucide_react14 = require("lucide-react");
|
|
30165
30347
|
init_feedback();
|
|
30166
30348
|
import_jsx_runtime32 = require("react/jsx-runtime");
|
|
30167
30349
|
FeedbackButton = ({
|
|
@@ -30185,7 +30367,7 @@ var init_FeedbackButton = __esm({
|
|
|
30185
30367
|
import_material31.Button,
|
|
30186
30368
|
{
|
|
30187
30369
|
variant: "outlined",
|
|
30188
|
-
startIcon: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
30370
|
+
startIcon: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_lucide_react14.MessageCircle, {}),
|
|
30189
30371
|
onClick: handleOpen,
|
|
30190
30372
|
className,
|
|
30191
30373
|
size,
|
|
@@ -30214,7 +30396,7 @@ var init_FeedbackButton = __esm({
|
|
|
30214
30396
|
transform: "translateY(-1px)"
|
|
30215
30397
|
}
|
|
30216
30398
|
},
|
|
30217
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
30399
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_lucide_react14.MessageCircle, {})
|
|
30218
30400
|
}
|
|
30219
30401
|
) }),
|
|
30220
30402
|
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
@@ -30273,7 +30455,7 @@ var init_FeedbackButton = __esm({
|
|
|
30273
30455
|
}
|
|
30274
30456
|
}
|
|
30275
30457
|
},
|
|
30276
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
30458
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_lucide_react14.MessageCircle, {})
|
|
30277
30459
|
}
|
|
30278
30460
|
)
|
|
30279
30461
|
}
|
|
@@ -39281,7 +39463,7 @@ init_useFeatures();
|
|
|
39281
39463
|
// src/components/shared/ProcessingOverlay.tsx
|
|
39282
39464
|
var import_react55 = require("react");
|
|
39283
39465
|
var import_material46 = require("@mui/material");
|
|
39284
|
-
var
|
|
39466
|
+
var import_lucide_react15 = require("lucide-react");
|
|
39285
39467
|
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
39286
39468
|
var ninjaFloat = import_material46.keyframes`
|
|
39287
39469
|
0%, 100% { transform: translateY(0px) rotate(0deg); }
|
|
@@ -39306,28 +39488,28 @@ var defaultSteps = [
|
|
|
39306
39488
|
id: "upload",
|
|
39307
39489
|
title: "Uploading to Cloud",
|
|
39308
39490
|
description: "Our digital ninjas are securely transferring your file...",
|
|
39309
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
39491
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react15.CloudUpload, {}),
|
|
39310
39492
|
duration: 5
|
|
39311
39493
|
},
|
|
39312
39494
|
{
|
|
39313
39495
|
id: "analyze",
|
|
39314
39496
|
title: "AI Analysis",
|
|
39315
39497
|
description: "Advanced AI robots are reading and understanding your content...",
|
|
39316
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
39498
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react15.Brain, {}),
|
|
39317
39499
|
duration: 15
|
|
39318
39500
|
},
|
|
39319
39501
|
{
|
|
39320
39502
|
id: "embed",
|
|
39321
39503
|
title: "Making It Searchable",
|
|
39322
39504
|
description: "We turn the content into a private, searchable index...",
|
|
39323
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
39505
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react15.Cpu, {}),
|
|
39324
39506
|
duration: 10
|
|
39325
39507
|
},
|
|
39326
39508
|
{
|
|
39327
39509
|
id: "optimize",
|
|
39328
39510
|
title: "Optimizing Search",
|
|
39329
39511
|
description: "Organizing everything for quick, reliable answers...",
|
|
39330
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
39512
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react15.Sparkles, {}),
|
|
39331
39513
|
duration: 8
|
|
39332
39514
|
}
|
|
39333
39515
|
];
|
|
@@ -39473,7 +39655,7 @@ var ProcessingOverlay = ({
|
|
|
39473
39655
|
animation: `${pulse} 3s ease-in-out infinite`,
|
|
39474
39656
|
color: theme.palette.secondary.main
|
|
39475
39657
|
},
|
|
39476
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
39658
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react15.Bot, {})
|
|
39477
39659
|
}
|
|
39478
39660
|
),
|
|
39479
39661
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
@@ -39487,7 +39669,7 @@ var ProcessingOverlay = ({
|
|
|
39487
39669
|
color: theme.palette.primary.main,
|
|
39488
39670
|
animationDelay: "1s"
|
|
39489
39671
|
},
|
|
39490
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
39672
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react15.Zap, {})
|
|
39491
39673
|
}
|
|
39492
39674
|
)
|
|
39493
39675
|
] }),
|
|
@@ -46472,7 +46654,7 @@ init_streaming_tts();
|
|
|
46472
46654
|
|
|
46473
46655
|
// src/modals/SubscriptionExpiredModal.tsx
|
|
46474
46656
|
var import_material56 = require("@mui/material");
|
|
46475
|
-
var
|
|
46657
|
+
var import_lucide_react16 = require("lucide-react");
|
|
46476
46658
|
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
46477
46659
|
var SubscriptionExpiredModal = ({
|
|
46478
46660
|
open,
|
|
@@ -46511,7 +46693,7 @@ var SubscriptionExpiredModal = ({
|
|
|
46511
46693
|
},
|
|
46512
46694
|
children: [
|
|
46513
46695
|
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_material56.DialogTitle, { sx: { textAlign: "center", pb: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_material56.Box, { sx: { display: "flex", alignItems: "center", justifyContent: "center", gap: 1, mb: 1 }, children: [
|
|
46514
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
46696
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react16.AlertTriangle, { size: 32, color: "warning" }),
|
|
46515
46697
|
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_material56.Typography, { variant: "h5", component: "span", fontWeight: "bold", children: "Subscription Expired" })
|
|
46516
46698
|
] }) }),
|
|
46517
46699
|
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_material56.DialogContent, { sx: { pt: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_material56.Stack, { spacing: 2, children: [
|
|
@@ -46539,7 +46721,7 @@ var SubscriptionExpiredModal = ({
|
|
|
46539
46721
|
{
|
|
46540
46722
|
onClick: handleNavigateHome,
|
|
46541
46723
|
variant: "outlined",
|
|
46542
|
-
startIcon: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
46724
|
+
startIcon: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react16.Home, {}),
|
|
46543
46725
|
size: "large",
|
|
46544
46726
|
sx: { minWidth: 140 },
|
|
46545
46727
|
children: "Go Home"
|
|
@@ -46550,7 +46732,7 @@ var SubscriptionExpiredModal = ({
|
|
|
46550
46732
|
{
|
|
46551
46733
|
onClick: handleManageSubscription,
|
|
46552
46734
|
variant: "contained",
|
|
46553
|
-
startIcon: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
46735
|
+
startIcon: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react16.CreditCard, {}),
|
|
46554
46736
|
size: "large",
|
|
46555
46737
|
color: "primary",
|
|
46556
46738
|
sx: { minWidth: 140 },
|