@burtson-labs/bandit-engine 2.0.126 → 2.0.128
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-Z3GRZ7GA.mjs → chat-MLDKHXUH.mjs} +5 -5
- package/dist/chat-provider.js +1 -1
- package/dist/chat-provider.js.map +1 -1
- package/dist/chat-provider.mjs +2 -2
- package/dist/{chunk-OLKDPUWL.mjs → chunk-BQW7DSJ6.mjs} +2 -2
- package/dist/{chunk-574ILQTT.mjs → chunk-FWFDOSRM.mjs} +2 -2
- package/dist/{chunk-JXFPCLEY.mjs → chunk-LQJ6OD7F.mjs} +332 -509
- package/dist/chunk-LQJ6OD7F.mjs.map +1 -0
- package/dist/{chunk-TQP3GUW5.mjs → chunk-N3TVVQVS.mjs} +3 -3
- package/dist/{chunk-6ONL4SRK.mjs → chunk-NLBZZP3B.mjs} +2 -2
- package/dist/{chunk-6ONL4SRK.mjs.map → chunk-NLBZZP3B.mjs.map} +1 -1
- package/dist/{chunk-SAQUEXYS.mjs → chunk-PU74BI6Y.mjs} +2 -2
- package/dist/{chunk-RKA3X3EY.mjs → chunk-QDTMVQWD.mjs} +23 -6
- package/dist/chunk-QDTMVQWD.mjs.map +1 -0
- package/dist/index.js +423 -581
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +7 -7
- package/dist/management/management.js +407 -565
- package/dist/management/management.js.map +1 -1
- package/dist/management/management.mjs +5 -5
- package/dist/modals/chat-modal/chat-modal.js +1 -1
- package/dist/modals/chat-modal/chat-modal.js.map +1 -1
- package/dist/modals/chat-modal/chat-modal.mjs +3 -3
- package/package.json +1 -1
- package/dist/chunk-JXFPCLEY.mjs.map +0 -1
- package/dist/chunk-RKA3X3EY.mjs.map +0 -1
- /package/dist/{chat-Z3GRZ7GA.mjs.map → chat-MLDKHXUH.mjs.map} +0 -0
- /package/dist/{chunk-OLKDPUWL.mjs.map → chunk-BQW7DSJ6.mjs.map} +0 -0
- /package/dist/{chunk-574ILQTT.mjs.map → chunk-FWFDOSRM.mjs.map} +0 -0
- /package/dist/{chunk-TQP3GUW5.mjs.map → chunk-N3TVVQVS.mjs.map} +0 -0
- /package/dist/{chunk-SAQUEXYS.mjs.map → chunk-PU74BI6Y.mjs.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -1583,7 +1583,7 @@ var init_conversationStore = __esm({
|
|
|
1583
1583
|
const now = /* @__PURE__ */ new Date();
|
|
1584
1584
|
const newConv = normalizeConversation({
|
|
1585
1585
|
id: (0, import_uuid.v4)(),
|
|
1586
|
-
name: "
|
|
1586
|
+
name: "Temporary chat",
|
|
1587
1587
|
history: [],
|
|
1588
1588
|
model: selectedModel,
|
|
1589
1589
|
createdAt: now,
|
|
@@ -19423,23 +19423,24 @@ ${sanitize(
|
|
|
19423
19423
|
bgcolor: inputBackground,
|
|
19424
19424
|
borderRadius: "24px",
|
|
19425
19425
|
boxShadow: isMobile ? `0 0 0 1px ${theme.palette.mode === "dark" ? "#444" : "#eee"}` : "0 4px 20px rgba(0, 0, 0, 0.4)",
|
|
19426
|
-
px: isMobile ? compactMobile ? 1 : 1.5 :
|
|
19427
|
-
pt: isMobile ? compactMobile ? 0.6 : 1 :
|
|
19428
|
-
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,
|
|
19429
19429
|
display: "flex",
|
|
19430
19430
|
flexDirection: "column",
|
|
19431
|
-
gap: isMobile ? compactMobile ? 0.75 : 1 :
|
|
19431
|
+
gap: isMobile ? compactMobile ? 0.75 : 1 : 0.5
|
|
19432
19432
|
},
|
|
19433
19433
|
children: [
|
|
19434
19434
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
19435
19435
|
import_material18.Box,
|
|
19436
19436
|
{
|
|
19437
19437
|
sx: {
|
|
19438
|
-
display: "flex",
|
|
19438
|
+
display: fileInputs.length > 0 || pastedImages.length > 0 ? "flex" : "none",
|
|
19439
19439
|
flexWrap: "wrap",
|
|
19440
19440
|
gap: attachmentsGap,
|
|
19441
19441
|
alignItems: "center",
|
|
19442
|
-
flexDirection: "row"
|
|
19442
|
+
flexDirection: "row",
|
|
19443
|
+
pt: isMobile ? 0 : 0.5
|
|
19443
19444
|
},
|
|
19444
19445
|
children: [
|
|
19445
19446
|
fileInputs.map((file, idx) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
@@ -19563,7 +19564,7 @@ ${sanitize(
|
|
|
19563
19564
|
]
|
|
19564
19565
|
}
|
|
19565
19566
|
),
|
|
19566
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
19567
|
+
isMobile && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
19567
19568
|
import_material18.Box,
|
|
19568
19569
|
{
|
|
19569
19570
|
sx: {
|
|
@@ -19576,8 +19577,8 @@ ${sanitize(
|
|
|
19576
19577
|
{
|
|
19577
19578
|
fullWidth: true,
|
|
19578
19579
|
multiline: true,
|
|
19579
|
-
maxRows:
|
|
19580
|
-
placeholder: isIncognito ? "
|
|
19580
|
+
maxRows: compactMobile ? 6 : 12,
|
|
19581
|
+
placeholder: isIncognito ? "Temporary chat \u2014 not saved" : "What's on your mind?",
|
|
19581
19582
|
value: inputValue,
|
|
19582
19583
|
onChange: (e) => setInputValue(e.target.value),
|
|
19583
19584
|
onKeyDown: handleKeyPress,
|
|
@@ -19587,18 +19588,15 @@ ${sanitize(
|
|
|
19587
19588
|
disableUnderline: true,
|
|
19588
19589
|
sx: {
|
|
19589
19590
|
flex: "1 1 auto",
|
|
19590
|
-
maxHeight:
|
|
19591
|
+
maxHeight: compactMobile ? "120px" : "150px",
|
|
19591
19592
|
overflowY: "auto",
|
|
19592
19593
|
color: fileText,
|
|
19593
19594
|
"& .MuiInputBase-inputMultiline": {
|
|
19594
|
-
fontSize:
|
|
19595
|
+
fontSize: compactMobile ? "0.95rem" : "1rem"
|
|
19595
19596
|
}
|
|
19596
19597
|
}
|
|
19597
19598
|
},
|
|
19598
|
-
sx: {
|
|
19599
|
-
flex: 1,
|
|
19600
|
-
"& .MuiInputBase-root": {}
|
|
19601
|
-
}
|
|
19599
|
+
sx: { flex: 1 }
|
|
19602
19600
|
}
|
|
19603
19601
|
)
|
|
19604
19602
|
}
|
|
@@ -19609,9 +19607,9 @@ ${sanitize(
|
|
|
19609
19607
|
sx: {
|
|
19610
19608
|
display: "flex",
|
|
19611
19609
|
justifyContent: "space-between",
|
|
19612
|
-
alignItems: "
|
|
19610
|
+
alignItems: "flex-end",
|
|
19613
19611
|
gap: isMobile ? 0.6 : 1,
|
|
19614
|
-
mt: isMobile ? 0.5 :
|
|
19612
|
+
mt: isMobile ? 0.5 : 0
|
|
19615
19613
|
},
|
|
19616
19614
|
children: [
|
|
19617
19615
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
@@ -19698,26 +19696,53 @@ ${sanitize(
|
|
|
19698
19696
|
]
|
|
19699
19697
|
}
|
|
19700
19698
|
),
|
|
19701
|
-
|
|
19702
|
-
import_material18.
|
|
19699
|
+
!isMobile && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
19700
|
+
import_material18.TextField,
|
|
19703
19701
|
{
|
|
19704
|
-
|
|
19705
|
-
|
|
19706
|
-
|
|
19707
|
-
|
|
19708
|
-
|
|
19709
|
-
|
|
19710
|
-
|
|
19711
|
-
|
|
19712
|
-
|
|
19713
|
-
|
|
19714
|
-
|
|
19715
|
-
|
|
19716
|
-
|
|
19702
|
+
fullWidth: true,
|
|
19703
|
+
multiline: true,
|
|
19704
|
+
maxRows: 6,
|
|
19705
|
+
placeholder: isIncognito ? "Temporary 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
|
+
}
|
|
19717
19719
|
},
|
|
19718
|
-
|
|
19720
|
+
sx: { flex: 1, alignSelf: "center", mx: 0.5 }
|
|
19719
19721
|
}
|
|
19720
|
-
)
|
|
19722
|
+
),
|
|
19723
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_material18.Box, { sx: { display: "flex", alignItems: "center", gap: isMobile ? 0.6 : 1 }, children: [
|
|
19724
|
+
!isMobile && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(engine_picker_default, {}),
|
|
19725
|
+
/* @__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)(
|
|
19726
|
+
import_material18.IconButton,
|
|
19727
|
+
{
|
|
19728
|
+
onClick: isStreaming ? onStop || (() => {
|
|
19729
|
+
}) : handleSubmit,
|
|
19730
|
+
disabled: (isStreaming ? false : isSubmitting) || !isStreaming && !inputValue.trim() && pastedImages.length === 0 && fileInputs.length === 0,
|
|
19731
|
+
sx: {
|
|
19732
|
+
bgcolor: sendButtonBackground,
|
|
19733
|
+
color: sendButtonColor,
|
|
19734
|
+
borderRadius: "50%",
|
|
19735
|
+
width: sendIconSize,
|
|
19736
|
+
height: sendIconSize,
|
|
19737
|
+
boxShadow: sendButtonShadow,
|
|
19738
|
+
transition: "background-color 0.2s ease, box-shadow 0.2s ease",
|
|
19739
|
+
"&:hover": { bgcolor: sendButtonHover },
|
|
19740
|
+
"&.Mui-disabled": { opacity: 0.5 }
|
|
19741
|
+
},
|
|
19742
|
+
children: isStreaming ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(CloseIcon, { fontSize: "small" }) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ArrowUpwardIcon, { fontSize: "small" })
|
|
19743
|
+
}
|
|
19744
|
+
) }) })
|
|
19745
|
+
] })
|
|
19721
19746
|
]
|
|
19722
19747
|
}
|
|
19723
19748
|
),
|
|
@@ -19764,7 +19789,7 @@ ${sanitize(
|
|
|
19764
19789
|
]
|
|
19765
19790
|
}
|
|
19766
19791
|
),
|
|
19767
|
-
!isMobile && /* @__PURE__ */ (0, import_jsx_runtime20.
|
|
19792
|
+
(!isMobile || isIncognito) && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
19768
19793
|
import_material18.Typography,
|
|
19769
19794
|
{
|
|
19770
19795
|
variant: "caption",
|
|
@@ -19776,10 +19801,7 @@ ${sanitize(
|
|
|
19776
19801
|
textAlign: "center",
|
|
19777
19802
|
pointerEvents: "none"
|
|
19778
19803
|
},
|
|
19779
|
-
children:
|
|
19780
|
-
brandingText || "BanditAI",
|
|
19781
|
-
" may be wrong - double-check important info."
|
|
19782
|
-
]
|
|
19804
|
+
children: isIncognito ? "Temporary chats aren't saved to history, synced, or added to memory." : `${brandingText || "BanditAI"} may be wrong - double-check important info.`
|
|
19783
19805
|
}
|
|
19784
19806
|
)
|
|
19785
19807
|
]
|
|
@@ -19869,13 +19891,14 @@ var init_askUserStore = __esm({
|
|
|
19869
19891
|
});
|
|
19870
19892
|
|
|
19871
19893
|
// src/chat/ask-user-card.tsx
|
|
19872
|
-
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;
|
|
19873
19895
|
var init_ask_user_card = __esm({
|
|
19874
19896
|
"src/chat/ask-user-card.tsx"() {
|
|
19875
19897
|
"use strict";
|
|
19876
19898
|
import_react24 = require("react");
|
|
19877
19899
|
import_material19 = require("@mui/material");
|
|
19878
19900
|
import_styles11 = require("@mui/material/styles");
|
|
19901
|
+
import_lucide_react7 = require("lucide-react");
|
|
19879
19902
|
init_askUserStore();
|
|
19880
19903
|
import_jsx_runtime21 = require("react/jsx-runtime");
|
|
19881
19904
|
AskUserCard = () => {
|
|
@@ -19903,57 +19926,142 @@ var init_ask_user_card = __esm({
|
|
|
19903
19926
|
});
|
|
19904
19927
|
submit(final);
|
|
19905
19928
|
};
|
|
19906
|
-
|
|
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)(
|
|
19907
19939
|
import_material19.Paper,
|
|
19908
19940
|
{
|
|
19909
19941
|
elevation: 0,
|
|
19910
19942
|
sx: {
|
|
19911
19943
|
width: "100%",
|
|
19912
19944
|
maxWidth: 760,
|
|
19913
|
-
p: { xs:
|
|
19914
|
-
borderRadius:
|
|
19915
|
-
border: `1px solid ${
|
|
19916
|
-
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)}`
|
|
19917
19950
|
},
|
|
19918
19951
|
children: [
|
|
19919
|
-
/* @__PURE__ */ (0, import_jsx_runtime21.
|
|
19920
|
-
|
|
19921
|
-
|
|
19922
|
-
|
|
19923
|
-
|
|
19924
|
-
|
|
19925
|
-
|
|
19926
|
-
|
|
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,
|
|
19927
19977
|
{
|
|
19928
|
-
|
|
19929
|
-
|
|
19930
|
-
setFreeform((p) => ({ ...p, [q.id]: "" }));
|
|
19931
|
-
},
|
|
19932
|
-
variant: isSel ? "contained" : "outlined",
|
|
19933
|
-
color: "primary",
|
|
19978
|
+
label: q.header,
|
|
19979
|
+
size: "small",
|
|
19934
19980
|
sx: {
|
|
19935
|
-
|
|
19936
|
-
|
|
19937
|
-
|
|
19938
|
-
|
|
19939
|
-
|
|
19940
|
-
|
|
19941
|
-
|
|
19942
|
-
|
|
19943
|
-
|
|
19944
|
-
|
|
19945
|
-
|
|
19946
|
-
|
|
19947
|
-
|
|
19948
|
-
|
|
19949
|
-
|
|
19950
|
-
|
|
19951
|
-
)
|
|
19952
|
-
] })
|
|
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
|
|
19953
19997
|
},
|
|
19954
|
-
opt
|
|
19955
|
-
|
|
19956
|
-
|
|
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
|
+
),
|
|
19957
20065
|
q.allowFreeform !== false && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
19958
20066
|
import_material19.TextField,
|
|
19959
20067
|
{
|
|
@@ -19962,17 +20070,45 @@ var init_ask_user_card = __esm({
|
|
|
19962
20070
|
placeholder: q.options && q.options.length ? "Or type your own answer\u2026" : "Type your answer\u2026",
|
|
19963
20071
|
value: freeform[q.id] ?? "",
|
|
19964
20072
|
onChange: (e) => setFreeform((p) => ({ ...p, [q.id]: e.target.value })),
|
|
19965
|
-
|
|
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
|
+
}
|
|
19966
20083
|
}
|
|
19967
20084
|
)
|
|
19968
20085
|
] }, q.id)),
|
|
19969
|
-
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material19.Box, { sx: { display: "flex", justifyContent: "flex-end", gap: 1, mt: 2 }, children: [
|
|
19970
|
-
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
19971
|
-
|
|
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
|
+
)
|
|
19972
20108
|
] })
|
|
19973
20109
|
]
|
|
19974
20110
|
}
|
|
19975
|
-
) });
|
|
20111
|
+
) }) });
|
|
19976
20112
|
};
|
|
19977
20113
|
ask_user_card_default = AskUserCard;
|
|
19978
20114
|
}
|
|
@@ -21973,14 +22109,14 @@ TOOL USAGE PROTOCOL (conservative approach)
|
|
|
21973
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)
|
|
21974
22110
|
* image_generation() - ONLY when explicitly asked to create or generate an image
|
|
21975
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.
|
|
21976
|
-
* 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.
|
|
21977
22113
|
- For general questions about concepts, definitions, explanations, or how-to topics, use your built-in knowledge WITHOUT calling tools.
|
|
21978
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.
|
|
21979
22115
|
- When a tool is truly needed, call exactly ONE tool that best matches the request.
|
|
21980
22116
|
- Begin tool usage with a fenced code block: \`\`\`tool_code
|
|
21981
22117
|
functionName({"param": "value"})
|
|
21982
22118
|
\`\`\`
|
|
21983
|
-
- 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.
|
|
21984
22120
|
|
|
21985
22121
|
Examples of appropriate tool usage:
|
|
21986
22122
|
|
|
@@ -22971,13 +23107,13 @@ var init_useNetworkStatus = __esm({
|
|
|
22971
23107
|
});
|
|
22972
23108
|
|
|
22973
23109
|
// src/chat/project-management-modal.tsx
|
|
22974
|
-
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;
|
|
22975
23111
|
var init_project_management_modal = __esm({
|
|
22976
23112
|
"src/chat/project-management-modal.tsx"() {
|
|
22977
23113
|
"use strict";
|
|
22978
23114
|
import_react30 = require("react");
|
|
22979
23115
|
import_material21 = require("@mui/material");
|
|
22980
|
-
|
|
23116
|
+
import_lucide_react8 = require("lucide-react");
|
|
22981
23117
|
import_styles12 = require("@mui/material/styles");
|
|
22982
23118
|
init_projectStore();
|
|
22983
23119
|
init_conversationStore();
|
|
@@ -23206,7 +23342,7 @@ var init_project_management_modal = __esm({
|
|
|
23206
23342
|
flex: 1
|
|
23207
23343
|
},
|
|
23208
23344
|
children: [
|
|
23209
|
-
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 }) }),
|
|
23210
23346
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
23211
23347
|
import_material21.Typography,
|
|
23212
23348
|
{
|
|
@@ -23224,7 +23360,7 @@ var init_project_management_modal = __esm({
|
|
|
23224
23360
|
]
|
|
23225
23361
|
}
|
|
23226
23362
|
),
|
|
23227
|
-
/* @__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, {}) })
|
|
23228
23364
|
]
|
|
23229
23365
|
}
|
|
23230
23366
|
),
|
|
@@ -23311,7 +23447,7 @@ var init_project_management_modal = __esm({
|
|
|
23311
23447
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
23312
23448
|
import_material21.Button,
|
|
23313
23449
|
{
|
|
23314
|
-
startIcon: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
23450
|
+
startIcon: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react8.Plus, {}),
|
|
23315
23451
|
onClick: () => setShowCreateForm(true),
|
|
23316
23452
|
variant: "contained",
|
|
23317
23453
|
sx: {
|
|
@@ -23336,7 +23472,7 @@ var init_project_management_modal = __esm({
|
|
|
23336
23472
|
backgroundColor: subtleSurface
|
|
23337
23473
|
},
|
|
23338
23474
|
children: [
|
|
23339
|
-
/* @__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 } }),
|
|
23340
23476
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material21.Typography, { variant: "body1", sx: { fontWeight: 600 }, children: "No projects yet" }),
|
|
23341
23477
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material21.Typography, { variant: "body2", children: "Create your first project to organize conversations." })
|
|
23342
23478
|
]
|
|
@@ -23371,7 +23507,7 @@ var init_project_management_modal = __esm({
|
|
|
23371
23507
|
height: 36,
|
|
23372
23508
|
fontSize: "1rem"
|
|
23373
23509
|
},
|
|
23374
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
23510
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react8.Folder, { size: 16 })
|
|
23375
23511
|
}
|
|
23376
23512
|
),
|
|
23377
23513
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material21.Box, { sx: { flex: 1, minWidth: 0 }, children: [
|
|
@@ -23422,7 +23558,7 @@ var init_project_management_modal = __esm({
|
|
|
23422
23558
|
mt: 0.25,
|
|
23423
23559
|
zIndex: 1
|
|
23424
23560
|
},
|
|
23425
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
23561
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react8.MoreVertical, { size: 16 })
|
|
23426
23562
|
}
|
|
23427
23563
|
)
|
|
23428
23564
|
]
|
|
@@ -23498,7 +23634,7 @@ var init_project_management_modal = __esm({
|
|
|
23498
23634
|
startEdit(selectedProject);
|
|
23499
23635
|
},
|
|
23500
23636
|
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material21.Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
23501
|
-
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
23637
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react8.Pencil, { size: 16 }),
|
|
23502
23638
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material21.Typography, { variant: "body2", color: "inherit", children: "Edit" })
|
|
23503
23639
|
] })
|
|
23504
23640
|
}
|
|
@@ -23512,7 +23648,7 @@ var init_project_management_modal = __esm({
|
|
|
23512
23648
|
},
|
|
23513
23649
|
sx: { color: theme.palette.error.main },
|
|
23514
23650
|
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material21.Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
23515
|
-
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
23651
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react8.Trash2, { size: 16 }),
|
|
23516
23652
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material21.Typography, { variant: "body2", color: "inherit", children: "Delete" })
|
|
23517
23653
|
] })
|
|
23518
23654
|
}
|
|
@@ -23564,13 +23700,13 @@ var init_project_management_modal = __esm({
|
|
|
23564
23700
|
});
|
|
23565
23701
|
|
|
23566
23702
|
// src/chat/move-conversation-modal.tsx
|
|
23567
|
-
var import_react31, import_material22,
|
|
23703
|
+
var import_react31, import_material22, import_lucide_react9, import_styles13, import_jsx_runtime24, MoveConversationModal, move_conversation_modal_default;
|
|
23568
23704
|
var init_move_conversation_modal = __esm({
|
|
23569
23705
|
"src/chat/move-conversation-modal.tsx"() {
|
|
23570
23706
|
"use strict";
|
|
23571
23707
|
import_react31 = require("react");
|
|
23572
23708
|
import_material22 = require("@mui/material");
|
|
23573
|
-
|
|
23709
|
+
import_lucide_react9 = require("lucide-react");
|
|
23574
23710
|
import_styles13 = require("@mui/material/styles");
|
|
23575
23711
|
init_projectStore();
|
|
23576
23712
|
init_conversationStore();
|
|
@@ -23655,7 +23791,7 @@ var init_move_conversation_modal = __esm({
|
|
|
23655
23791
|
width: 32,
|
|
23656
23792
|
height: 32
|
|
23657
23793
|
},
|
|
23658
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
23794
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react9.Inbox, {})
|
|
23659
23795
|
}
|
|
23660
23796
|
) }),
|
|
23661
23797
|
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
@@ -23691,7 +23827,7 @@ var init_move_conversation_modal = __esm({
|
|
|
23691
23827
|
width: 32,
|
|
23692
23828
|
height: 32
|
|
23693
23829
|
},
|
|
23694
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
23830
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react9.Folder, {})
|
|
23695
23831
|
}
|
|
23696
23832
|
) }),
|
|
23697
23833
|
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
@@ -23735,13 +23871,13 @@ var init_move_conversation_modal = __esm({
|
|
|
23735
23871
|
});
|
|
23736
23872
|
|
|
23737
23873
|
// src/chat/simple-conversation-item.tsx
|
|
23738
|
-
var import_react32, import_material23,
|
|
23874
|
+
var import_react32, import_material23, import_lucide_react10, import_styles14, import_jsx_runtime25, SimpleConversationItem, simple_conversation_item_default;
|
|
23739
23875
|
var init_simple_conversation_item = __esm({
|
|
23740
23876
|
"src/chat/simple-conversation-item.tsx"() {
|
|
23741
23877
|
"use strict";
|
|
23742
23878
|
import_react32 = require("react");
|
|
23743
23879
|
import_material23 = require("@mui/material");
|
|
23744
|
-
|
|
23880
|
+
import_lucide_react10 = require("lucide-react");
|
|
23745
23881
|
import_styles14 = require("@mui/material/styles");
|
|
23746
23882
|
import_jsx_runtime25 = require("react/jsx-runtime");
|
|
23747
23883
|
SimpleConversationItem = ({
|
|
@@ -23969,7 +24105,7 @@ var init_simple_conversation_item = __esm({
|
|
|
23969
24105
|
},
|
|
23970
24106
|
children: [
|
|
23971
24107
|
!isMobile && !isEditing && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
23972
|
-
|
|
24108
|
+
import_lucide_react10.GripVertical,
|
|
23973
24109
|
{
|
|
23974
24110
|
size: 16,
|
|
23975
24111
|
color: theme.palette.text.disabled,
|
|
@@ -24063,7 +24199,7 @@ var init_simple_conversation_item = __esm({
|
|
|
24063
24199
|
}
|
|
24064
24200
|
}
|
|
24065
24201
|
},
|
|
24066
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
24202
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react10.MoreVertical, { size: 16 })
|
|
24067
24203
|
}
|
|
24068
24204
|
),
|
|
24069
24205
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
@@ -24094,15 +24230,15 @@ var init_simple_conversation_item = __esm({
|
|
|
24094
24230
|
},
|
|
24095
24231
|
children: [
|
|
24096
24232
|
onRename && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_material23.MenuItem, { onClick: handleEdit, children: [
|
|
24097
|
-
/* @__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 }) }),
|
|
24098
24234
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_material23.ListItemText, { children: "Rename" })
|
|
24099
24235
|
] }),
|
|
24100
24236
|
onMove && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_material23.MenuItem, { onClick: handleMove, children: [
|
|
24101
|
-
/* @__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 }) }),
|
|
24102
24238
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_material23.ListItemText, { children: "Move to Project" })
|
|
24103
24239
|
] }),
|
|
24104
24240
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_material23.MenuItem, { onClick: handleDelete, children: [
|
|
24105
|
-
/* @__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 }) }),
|
|
24106
24242
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_material23.ListItemText, { children: "Delete" })
|
|
24107
24243
|
] })
|
|
24108
24244
|
]
|
|
@@ -24175,13 +24311,13 @@ var init_simple_conversation_item = __esm({
|
|
|
24175
24311
|
});
|
|
24176
24312
|
|
|
24177
24313
|
// src/chat/project-header.tsx
|
|
24178
|
-
var import_react33, import_material24,
|
|
24314
|
+
var import_react33, import_material24, import_lucide_react11, import_styles15, import_jsx_runtime26, ProjectHeader, project_header_default;
|
|
24179
24315
|
var init_project_header = __esm({
|
|
24180
24316
|
"src/chat/project-header.tsx"() {
|
|
24181
24317
|
"use strict";
|
|
24182
24318
|
import_react33 = require("react");
|
|
24183
24319
|
import_material24 = require("@mui/material");
|
|
24184
|
-
|
|
24320
|
+
import_lucide_react11 = require("lucide-react");
|
|
24185
24321
|
import_styles15 = require("@mui/material/styles");
|
|
24186
24322
|
init_conversationStore();
|
|
24187
24323
|
init_projectStore();
|
|
@@ -24208,7 +24344,7 @@ var init_project_header = __esm({
|
|
|
24208
24344
|
const [renameDraft, setRenameDraft] = (0, import_react33.useState)(projectName);
|
|
24209
24345
|
const renameActionRef = (0, import_react33.useRef)("none");
|
|
24210
24346
|
const isUngrouped = projectId === null;
|
|
24211
|
-
const Icon = isCollapsed ?
|
|
24347
|
+
const Icon = isCollapsed ? import_lucide_react11.Folder : import_lucide_react11.FolderOpen;
|
|
24212
24348
|
const handleAddConversation = (e) => {
|
|
24213
24349
|
e.stopPropagation();
|
|
24214
24350
|
createNewConversation(projectId || void 0);
|
|
@@ -24289,7 +24425,7 @@ var init_project_header = __esm({
|
|
|
24289
24425
|
mr: 1.5
|
|
24290
24426
|
},
|
|
24291
24427
|
children: isUngrouped ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
24292
|
-
|
|
24428
|
+
import_lucide_react11.Inbox,
|
|
24293
24429
|
{
|
|
24294
24430
|
size: 16,
|
|
24295
24431
|
color: theme.palette.text.disabled,
|
|
@@ -24405,7 +24541,7 @@ var init_project_header = __esm({
|
|
|
24405
24541
|
onRenameCancelDelete ? onRenameCancelDelete() : cancelRename();
|
|
24406
24542
|
},
|
|
24407
24543
|
sx: { color: (0, import_material24.alpha)(theme.palette.error.main, 0.9) },
|
|
24408
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
24544
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react11.X, { size: 16 })
|
|
24409
24545
|
}
|
|
24410
24546
|
) }),
|
|
24411
24547
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Tooltip, { title: "Save", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
@@ -24418,7 +24554,7 @@ var init_project_header = __esm({
|
|
|
24418
24554
|
commitRename();
|
|
24419
24555
|
},
|
|
24420
24556
|
sx: { color: theme.palette.success.main },
|
|
24421
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
24557
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react11.Check, { size: 16 })
|
|
24422
24558
|
}
|
|
24423
24559
|
) })
|
|
24424
24560
|
] }),
|
|
@@ -24439,7 +24575,7 @@ var init_project_header = __esm({
|
|
|
24439
24575
|
},
|
|
24440
24576
|
transition: "all 0.2s ease"
|
|
24441
24577
|
},
|
|
24442
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
24578
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react11.Plus, { size: 16 })
|
|
24443
24579
|
}
|
|
24444
24580
|
) }),
|
|
24445
24581
|
!isUngrouped && !isRenaming && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
@@ -24450,7 +24586,7 @@ var init_project_header = __esm({
|
|
|
24450
24586
|
color: theme.palette.text.secondary,
|
|
24451
24587
|
transition: "transform 0.2s ease"
|
|
24452
24588
|
},
|
|
24453
|
-
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 })
|
|
24454
24590
|
}
|
|
24455
24591
|
)
|
|
24456
24592
|
]
|
|
@@ -24480,13 +24616,13 @@ var init_tooltips = __esm({
|
|
|
24480
24616
|
});
|
|
24481
24617
|
|
|
24482
24618
|
// src/chat/conversation-drawer.tsx
|
|
24483
|
-
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;
|
|
24484
24620
|
var init_conversation_drawer = __esm({
|
|
24485
24621
|
"src/chat/conversation-drawer.tsx"() {
|
|
24486
24622
|
"use strict";
|
|
24487
24623
|
import_react34 = require("react");
|
|
24488
24624
|
import_material25 = require("@mui/material");
|
|
24489
|
-
|
|
24625
|
+
import_lucide_react12 = require("lucide-react");
|
|
24490
24626
|
import_styles16 = require("@mui/material/styles");
|
|
24491
24627
|
init_conversationStore();
|
|
24492
24628
|
init_projectStore();
|
|
@@ -24859,7 +24995,7 @@ var init_conversation_drawer = __esm({
|
|
|
24859
24995
|
bgcolor: (0, import_material25.alpha)(theme.palette.primary.main, 0.1)
|
|
24860
24996
|
}
|
|
24861
24997
|
},
|
|
24862
|
-
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, {})
|
|
24863
24999
|
}
|
|
24864
25000
|
) }),
|
|
24865
25001
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material25.Tooltip, { title: "Memories", arrow: true, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
@@ -24875,7 +25011,7 @@ var init_conversation_drawer = __esm({
|
|
|
24875
25011
|
bgcolor: (0, import_material25.alpha)(theme.palette.primary.main, 0.1)
|
|
24876
25012
|
}
|
|
24877
25013
|
},
|
|
24878
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25014
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.Brain, {})
|
|
24879
25015
|
}
|
|
24880
25016
|
) }),
|
|
24881
25017
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material25.Tooltip, { title: tooltip("manageProjects"), arrow: true, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
@@ -24891,7 +25027,7 @@ var init_conversation_drawer = __esm({
|
|
|
24891
25027
|
bgcolor: (0, import_material25.alpha)(theme.palette.primary.main, 0.1)
|
|
24892
25028
|
}
|
|
24893
25029
|
},
|
|
24894
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25030
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.Folder, {})
|
|
24895
25031
|
}
|
|
24896
25032
|
) }),
|
|
24897
25033
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material25.Tooltip, { title: tooltip("conversationOptions"), arrow: true, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
@@ -24907,7 +25043,7 @@ var init_conversation_drawer = __esm({
|
|
|
24907
25043
|
bgcolor: (0, import_material25.alpha)(theme.palette.text.primary, 0.1)
|
|
24908
25044
|
}
|
|
24909
25045
|
},
|
|
24910
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25046
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.MoreVertical, {})
|
|
24911
25047
|
}
|
|
24912
25048
|
) }),
|
|
24913
25049
|
isMobile && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material25.Tooltip, { title: tooltip("closeConversationsPanel"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
@@ -24927,7 +25063,7 @@ var init_conversation_drawer = __esm({
|
|
|
24927
25063
|
bgcolor: (0, import_material25.alpha)(theme.palette.error.main, 0.1)
|
|
24928
25064
|
}
|
|
24929
25065
|
},
|
|
24930
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25066
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.X, {})
|
|
24931
25067
|
}
|
|
24932
25068
|
) })
|
|
24933
25069
|
]
|
|
@@ -24943,7 +25079,7 @@ var init_conversation_drawer = __esm({
|
|
|
24943
25079
|
onChange: (e) => setSearchQuery(e.target.value),
|
|
24944
25080
|
variant: "outlined",
|
|
24945
25081
|
InputProps: {
|
|
24946
|
-
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 }) }),
|
|
24947
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)(
|
|
24948
25084
|
import_material25.IconButton,
|
|
24949
25085
|
{
|
|
@@ -24952,7 +25088,7 @@ var init_conversation_drawer = __esm({
|
|
|
24952
25088
|
edge: "end",
|
|
24953
25089
|
"aria-label": tooltip("clearSearch"),
|
|
24954
25090
|
sx: { color: theme.palette.text.secondary },
|
|
24955
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25091
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.X, { size: 16 })
|
|
24956
25092
|
}
|
|
24957
25093
|
) }) })
|
|
24958
25094
|
},
|
|
@@ -25018,7 +25154,7 @@ var init_conversation_drawer = __esm({
|
|
|
25018
25154
|
justifyContent: "center",
|
|
25019
25155
|
flexShrink: 0
|
|
25020
25156
|
},
|
|
25021
|
-
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 })
|
|
25022
25158
|
}
|
|
25023
25159
|
),
|
|
25024
25160
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
@@ -25035,7 +25171,7 @@ var init_conversation_drawer = __esm({
|
|
|
25035
25171
|
size: "small",
|
|
25036
25172
|
"aria-label": tooltip("addProject"),
|
|
25037
25173
|
sx: { color: theme.palette.success.main },
|
|
25038
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25174
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.Plus, { size: 16 })
|
|
25039
25175
|
}
|
|
25040
25176
|
) })
|
|
25041
25177
|
]
|
|
@@ -25057,7 +25193,7 @@ var init_conversation_drawer = __esm({
|
|
|
25057
25193
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material25.Divider, { sx: { flex: 1, opacity: 0.6 } }),
|
|
25058
25194
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material25.Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
25059
25195
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25060
|
-
|
|
25196
|
+
import_lucide_react12.Inbox,
|
|
25061
25197
|
{
|
|
25062
25198
|
size: 14,
|
|
25063
25199
|
color: theme.palette.text.disabled,
|
|
@@ -25297,7 +25433,7 @@ var init_conversation_drawer = __esm({
|
|
|
25297
25433
|
border: `1px solid ${(0, import_material25.alpha)(theme.palette.divider, 0.8)}`,
|
|
25298
25434
|
color: theme.palette.text.secondary
|
|
25299
25435
|
},
|
|
25300
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25436
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.House, { size: 16 })
|
|
25301
25437
|
}
|
|
25302
25438
|
),
|
|
25303
25439
|
user2 && showLimitedAdminPanel() && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
@@ -25316,7 +25452,7 @@ var init_conversation_drawer = __esm({
|
|
|
25316
25452
|
border: `1px solid ${(0, import_material25.alpha)(theme.palette.divider, 0.8)}`,
|
|
25317
25453
|
color: theme.palette.text.secondary
|
|
25318
25454
|
},
|
|
25319
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25455
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.SlidersHorizontal, { size: 16 })
|
|
25320
25456
|
}
|
|
25321
25457
|
),
|
|
25322
25458
|
user2 && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_jsx_runtime27.Fragment, { children: [
|
|
@@ -25334,7 +25470,7 @@ var init_conversation_drawer = __esm({
|
|
|
25334
25470
|
border: `1px solid ${(0, import_material25.alpha)(theme.palette.divider, 0.8)}`,
|
|
25335
25471
|
color: theme.palette.text.secondary
|
|
25336
25472
|
},
|
|
25337
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25473
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.Settings, { size: 16 })
|
|
25338
25474
|
}
|
|
25339
25475
|
),
|
|
25340
25476
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
@@ -25355,7 +25491,7 @@ var init_conversation_drawer = __esm({
|
|
|
25355
25491
|
color: theme.palette.error.main,
|
|
25356
25492
|
"&:hover": { bgcolor: (0, import_material25.alpha)(theme.palette.error.main, 0.1) }
|
|
25357
25493
|
},
|
|
25358
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
25494
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.LogOut, { size: 16 })
|
|
25359
25495
|
}
|
|
25360
25496
|
)
|
|
25361
25497
|
] })
|
|
@@ -25405,7 +25541,7 @@ var init_conversation_drawer = __esm({
|
|
|
25405
25541
|
},
|
|
25406
25542
|
sx: { color: theme.palette.error.main },
|
|
25407
25543
|
children: [
|
|
25408
|
-
/* @__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 }) }),
|
|
25409
25545
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material25.ListItemText, { children: "Clear All Conversations" })
|
|
25410
25546
|
]
|
|
25411
25547
|
}
|
|
@@ -25444,13 +25580,13 @@ var init_conversation_drawer = __esm({
|
|
|
25444
25580
|
});
|
|
25445
25581
|
|
|
25446
25582
|
// src/chat/enhanced-mobile-conversations-modal.tsx
|
|
25447
|
-
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;
|
|
25448
25584
|
var init_enhanced_mobile_conversations_modal = __esm({
|
|
25449
25585
|
"src/chat/enhanced-mobile-conversations-modal.tsx"() {
|
|
25450
25586
|
"use strict";
|
|
25451
25587
|
import_react35 = require("react");
|
|
25452
25588
|
import_material26 = require("@mui/material");
|
|
25453
|
-
|
|
25589
|
+
import_lucide_react13 = require("lucide-react");
|
|
25454
25590
|
import_styles17 = require("@mui/material/styles");
|
|
25455
25591
|
init_conversationStore();
|
|
25456
25592
|
init_projectStore();
|
|
@@ -25893,7 +26029,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
25893
26029
|
}
|
|
25894
26030
|
}
|
|
25895
26031
|
},
|
|
25896
|
-
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, {})
|
|
25897
26033
|
}
|
|
25898
26034
|
),
|
|
25899
26035
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
@@ -25902,7 +26038,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
25902
26038
|
onClick: () => setMemoryModalOpen(true),
|
|
25903
26039
|
"aria-label": "Memory",
|
|
25904
26040
|
sx: { color: theme.palette.text.secondary },
|
|
25905
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26041
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.Brain, {})
|
|
25906
26042
|
}
|
|
25907
26043
|
),
|
|
25908
26044
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
@@ -25910,7 +26046,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
25910
26046
|
{
|
|
25911
26047
|
onClick: () => setProjectManagementOpen(true),
|
|
25912
26048
|
sx: { color: theme.palette.text.secondary },
|
|
25913
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26049
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.Folder, {})
|
|
25914
26050
|
}
|
|
25915
26051
|
),
|
|
25916
26052
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
@@ -25918,7 +26054,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
25918
26054
|
{
|
|
25919
26055
|
onClick: handleMenuOpen,
|
|
25920
26056
|
sx: { color: theme.palette.text.secondary },
|
|
25921
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26057
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.MoreVertical, {})
|
|
25922
26058
|
}
|
|
25923
26059
|
),
|
|
25924
26060
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
@@ -25926,7 +26062,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
25926
26062
|
{
|
|
25927
26063
|
onClick: onClose,
|
|
25928
26064
|
sx: { color: theme.palette.text.secondary },
|
|
25929
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26065
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.X, {})
|
|
25930
26066
|
}
|
|
25931
26067
|
)
|
|
25932
26068
|
] })
|
|
@@ -25942,7 +26078,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
25942
26078
|
onChange: (e) => setSearchQuery(e.target.value),
|
|
25943
26079
|
variant: "outlined",
|
|
25944
26080
|
InputProps: {
|
|
25945
|
-
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 }) }),
|
|
25946
26082
|
endAdornment: searchQuery && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_material26.InputAdornment, { position: "end", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
25947
26083
|
import_material26.IconButton,
|
|
25948
26084
|
{
|
|
@@ -25950,7 +26086,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
25950
26086
|
size: "small",
|
|
25951
26087
|
edge: "end",
|
|
25952
26088
|
sx: { color: theme.palette.text.secondary },
|
|
25953
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26089
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.X, { size: 16 })
|
|
25954
26090
|
}
|
|
25955
26091
|
) })
|
|
25956
26092
|
}
|
|
@@ -26106,7 +26242,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
26106
26242
|
justifyContent: "center",
|
|
26107
26243
|
flexShrink: 0
|
|
26108
26244
|
},
|
|
26109
|
-
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 })
|
|
26110
26246
|
}
|
|
26111
26247
|
),
|
|
26112
26248
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
@@ -26117,7 +26253,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
26117
26253
|
children: "New Project"
|
|
26118
26254
|
}
|
|
26119
26255
|
),
|
|
26120
|
-
/* @__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 }) })
|
|
26121
26257
|
]
|
|
26122
26258
|
}
|
|
26123
26259
|
),
|
|
@@ -26137,7 +26273,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
26137
26273
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_material26.Divider, { sx: { flex: 1, opacity: 0.6 } }),
|
|
26138
26274
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_material26.Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
26139
26275
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26140
|
-
|
|
26276
|
+
import_lucide_react13.Inbox,
|
|
26141
26277
|
{
|
|
26142
26278
|
size: 14,
|
|
26143
26279
|
color: theme.palette.text.disabled,
|
|
@@ -26332,7 +26468,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
26332
26468
|
createNewConversation();
|
|
26333
26469
|
onClose();
|
|
26334
26470
|
},
|
|
26335
|
-
startIcon: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26471
|
+
startIcon: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.Plus, { size: 18 }),
|
|
26336
26472
|
sx: {
|
|
26337
26473
|
pointerEvents: "auto",
|
|
26338
26474
|
textTransform: "none",
|
|
@@ -26423,7 +26559,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
26423
26559
|
border: `1px solid ${(0, import_styles17.alpha)(theme.palette.divider, 0.8)}`,
|
|
26424
26560
|
color: theme.palette.text.secondary
|
|
26425
26561
|
},
|
|
26426
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26562
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.House, { size: 16 })
|
|
26427
26563
|
}
|
|
26428
26564
|
),
|
|
26429
26565
|
user2 && showLimitedAdminPanel() && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
@@ -26442,7 +26578,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
26442
26578
|
border: `1px solid ${(0, import_styles17.alpha)(theme.palette.divider, 0.8)}`,
|
|
26443
26579
|
color: theme.palette.text.secondary
|
|
26444
26580
|
},
|
|
26445
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26581
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.SlidersHorizontal, { size: 16 })
|
|
26446
26582
|
}
|
|
26447
26583
|
),
|
|
26448
26584
|
user2 && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [
|
|
@@ -26460,7 +26596,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
26460
26596
|
border: `1px solid ${(0, import_styles17.alpha)(theme.palette.divider, 0.8)}`,
|
|
26461
26597
|
color: theme.palette.text.secondary
|
|
26462
26598
|
},
|
|
26463
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26599
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.Settings, { size: 16 })
|
|
26464
26600
|
}
|
|
26465
26601
|
),
|
|
26466
26602
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
@@ -26481,7 +26617,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
26481
26617
|
color: theme.palette.error.main,
|
|
26482
26618
|
"&:hover": { bgcolor: (0, import_styles17.alpha)(theme.palette.error.main, 0.1) }
|
|
26483
26619
|
},
|
|
26484
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
26620
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.LogOut, { size: 16 })
|
|
26485
26621
|
}
|
|
26486
26622
|
)
|
|
26487
26623
|
] })
|
|
@@ -26534,7 +26670,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
26534
26670
|
disabled: visibleConversationCount === 0,
|
|
26535
26671
|
sx: { color: theme.palette.error.main },
|
|
26536
26672
|
children: [
|
|
26537
|
-
/* @__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 }) }),
|
|
26538
26674
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_material26.ListItemText, { children: "Clear All Conversations" })
|
|
26539
26675
|
]
|
|
26540
26676
|
}
|
|
@@ -26583,7 +26719,6 @@ var init_chat_app_bar = __esm({
|
|
|
26583
26719
|
import_material28 = require("@mui/material");
|
|
26584
26720
|
import_react_router_dom2 = require("react-router-dom");
|
|
26585
26721
|
init_lucide_icons();
|
|
26586
|
-
init_util();
|
|
26587
26722
|
init_conversation_drawer();
|
|
26588
26723
|
init_enhanced_mobile_conversations_modal();
|
|
26589
26724
|
init_conversationStore();
|
|
@@ -26805,13 +26940,13 @@ var init_chat_app_bar = __esm({
|
|
|
26805
26940
|
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
26806
26941
|
import_material28.Tooltip,
|
|
26807
26942
|
{
|
|
26808
|
-
title: isIncognitoActive ? "End
|
|
26943
|
+
title: isIncognitoActive ? "End temporary chat" : "Temporary chat \u2014 not saved anywhere",
|
|
26809
26944
|
arrow: true,
|
|
26810
26945
|
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
26811
26946
|
import_material28.IconButton,
|
|
26812
26947
|
{
|
|
26813
26948
|
onClick: toggleIncognito,
|
|
26814
|
-
"aria-label": isIncognitoActive ? "End
|
|
26949
|
+
"aria-label": isIncognitoActive ? "End temporary chat" : "Start temporary chat",
|
|
26815
26950
|
"aria-pressed": isIncognitoActive,
|
|
26816
26951
|
sx: {
|
|
26817
26952
|
width: 44,
|
|
@@ -26910,35 +27045,11 @@ var init_chat_app_bar = __esm({
|
|
|
26910
27045
|
"aria-label": "Create new conversation",
|
|
26911
27046
|
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(AddIcon, {})
|
|
26912
27047
|
}
|
|
26913
|
-
) })
|
|
26914
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
26915
|
-
import_material28.Tooltip,
|
|
26916
|
-
{
|
|
26917
|
-
title: isIncognitoActive ? "End incognito chat" : "Start incognito chat \u2014 not saved",
|
|
26918
|
-
arrow: true,
|
|
26919
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
26920
|
-
import_material28.IconButton,
|
|
26921
|
-
{
|
|
26922
|
-
onClick: toggleIncognito,
|
|
26923
|
-
"aria-label": isIncognitoActive ? "End incognito chat" : "Start incognito chat",
|
|
26924
|
-
"aria-pressed": isIncognitoActive,
|
|
26925
|
-
sx: {
|
|
26926
|
-
...pillButtonStyles,
|
|
26927
|
-
...isIncognitoActive && {
|
|
26928
|
-
bgcolor: theme.palette.text.primary,
|
|
26929
|
-
color: theme.palette.getContrastText(theme.palette.text.primary),
|
|
26930
|
-
"&:hover": { bgcolor: theme.palette.text.primary }
|
|
26931
|
-
}
|
|
26932
|
-
},
|
|
26933
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(GhostIcon, {})
|
|
26934
|
-
}
|
|
26935
|
-
)
|
|
26936
|
-
}
|
|
26937
|
-
)
|
|
27048
|
+
) })
|
|
26938
27049
|
]
|
|
26939
27050
|
}
|
|
26940
27051
|
),
|
|
26941
|
-
!isMobile && /* @__PURE__ */ (0, import_jsx_runtime29.
|
|
27052
|
+
!isMobile && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
26942
27053
|
import_material28.Box,
|
|
26943
27054
|
{
|
|
26944
27055
|
sx: {
|
|
@@ -26958,368 +27069,30 @@ var init_chat_app_bar = __esm({
|
|
|
26958
27069
|
boxShadow: theme.palette.mode === "dark" ? "0 6px 20px rgba(0,0,0,0.4)" : "0 6px 20px rgba(0,0,0,0.15)"
|
|
26959
27070
|
}
|
|
26960
27071
|
},
|
|
26961
|
-
children:
|
|
26962
|
-
|
|
26963
|
-
|
|
26964
|
-
|
|
26965
|
-
|
|
26966
|
-
|
|
26967
|
-
...pillButtonStyles,
|
|
26968
|
-
"&:hover": {
|
|
26969
|
-
...pillButtonStyles["&:hover"],
|
|
26970
|
-
"& .MuiAvatar-root": {
|
|
26971
|
-
transform: "scale(1.1)",
|
|
26972
|
-
filter: "brightness(2) saturate(1.2)"
|
|
26973
|
-
}
|
|
26974
|
-
}
|
|
26975
|
-
},
|
|
26976
|
-
"aria-label": `Change AI personality. Currently using ${selectedModel}`,
|
|
26977
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
26978
|
-
import_material27.Avatar,
|
|
26979
|
-
{
|
|
26980
|
-
src: currentAvatar,
|
|
26981
|
-
alt: selectedModel,
|
|
26982
|
-
sx: {
|
|
26983
|
-
width: "36px",
|
|
26984
|
-
height: "36px",
|
|
26985
|
-
filter: "brightness(1.7)",
|
|
26986
|
-
transition: "all 0.2s ease-in-out",
|
|
26987
|
-
border: `2px solid ${theme.palette.primary.main}20`
|
|
26988
|
-
},
|
|
26989
|
-
className: "MuiAvatar-root"
|
|
26990
|
-
}
|
|
26991
|
-
)
|
|
26992
|
-
}
|
|
26993
|
-
) }),
|
|
26994
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_material28.Tooltip, { title: `Engine \xB7 ${engineDisplay}`, arrow: true, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
26995
|
-
import_material28.IconButton,
|
|
26996
|
-
{
|
|
26997
|
-
onClick: (e) => setEngineAnchorEl(e.currentTarget),
|
|
26998
|
-
sx: pillButtonStyles,
|
|
26999
|
-
"aria-label": `Change base model (engine). Currently ${engineDisplay}`,
|
|
27000
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(AutoAwesomeIcon, { fontSize: "small" })
|
|
27001
|
-
}
|
|
27002
|
-
) }),
|
|
27003
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
27004
|
-
import_material28.Menu,
|
|
27005
|
-
{
|
|
27006
|
-
anchorEl: engineAnchorEl,
|
|
27007
|
-
open: Boolean(engineAnchorEl),
|
|
27008
|
-
onClose: () => setEngineAnchorEl(null),
|
|
27009
|
-
transformOrigin: { horizontal: "right", vertical: "top" },
|
|
27010
|
-
anchorOrigin: { horizontal: "right", vertical: "bottom" },
|
|
27011
|
-
children: [
|
|
27012
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_material28.Typography, { variant: "overline", sx: { px: 2, color: theme.palette.text.secondary }, children: "Engine \xB7 base model" }),
|
|
27013
|
-
engines.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_material28.MenuItem, { disabled: true, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_material28.Typography, { variant: "body2", children: "No engines available" }) }),
|
|
27014
|
-
engines.map((engine) => {
|
|
27015
|
-
const badges = [
|
|
27016
|
-
engine.vision && "vision",
|
|
27017
|
-
engine.tools && "tools",
|
|
27018
|
-
engine.thinking && "thinking",
|
|
27019
|
-
engine.cloud && "cloud"
|
|
27020
|
-
].filter(Boolean);
|
|
27021
|
-
const isGated = engine.cloud && !frontierEligible;
|
|
27022
|
-
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
27023
|
-
import_material28.MenuItem,
|
|
27024
|
-
{
|
|
27025
|
-
selected: engine.id === resolvedEngineId,
|
|
27026
|
-
disabled: !engine.available || isGated,
|
|
27027
|
-
onClick: () => {
|
|
27028
|
-
if (isGated) return;
|
|
27029
|
-
useEngineStore.getState().setSelectedEngine(engine.id);
|
|
27030
|
-
setEngineAnchorEl(null);
|
|
27031
|
-
},
|
|
27032
|
-
sx: {
|
|
27033
|
-
display: "flex",
|
|
27034
|
-
flexDirection: "column",
|
|
27035
|
-
alignItems: "flex-start",
|
|
27036
|
-
gap: 0.5,
|
|
27037
|
-
py: 1,
|
|
27038
|
-
px: 2,
|
|
27039
|
-
maxWidth: 360,
|
|
27040
|
-
whiteSpace: "normal",
|
|
27041
|
-
// Keep gated rows readable (MUI disabled dims to ~38%) so the
|
|
27042
|
-
// upsell stays legible.
|
|
27043
|
-
...isGated ? { opacity: 1, "&.Mui-disabled": { opacity: 1 } } : {}
|
|
27044
|
-
},
|
|
27045
|
-
children: [
|
|
27046
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_material28.Box, { sx: { display: "flex", alignItems: "center", gap: 1, width: "100%" }, children: [
|
|
27047
|
-
isGated && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
27048
|
-
LockIcon,
|
|
27049
|
-
{
|
|
27050
|
-
fontSize: "small",
|
|
27051
|
-
sx: { fontSize: "0.95rem", color: theme.palette.text.secondary }
|
|
27052
|
-
}
|
|
27053
|
-
),
|
|
27054
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
27055
|
-
import_material28.Typography,
|
|
27056
|
-
{
|
|
27057
|
-
variant: "body2",
|
|
27058
|
-
sx: {
|
|
27059
|
-
fontWeight: 600,
|
|
27060
|
-
flex: 1,
|
|
27061
|
-
color: isGated ? theme.palette.text.secondary : void 0
|
|
27062
|
-
},
|
|
27063
|
-
children: cleanEngineName(engine.displayName)
|
|
27064
|
-
}
|
|
27065
|
-
),
|
|
27066
|
-
engine.id === resolvedEngineId && !isGated && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_material28.Box, { sx: { width: 8, height: 8, borderRadius: "50%", bgcolor: theme.palette.primary.main } })
|
|
27067
|
-
] }),
|
|
27068
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_material28.Typography, { variant: "caption", sx: { color: theme.palette.text.secondary }, children: isGated ? "Premium engine \u2014 available on a paid plan." : engine.available ? engine.description : engine.unavailableReason || "Unavailable" }),
|
|
27069
|
-
isGated && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
27070
|
-
import_material28.Button,
|
|
27071
|
-
{
|
|
27072
|
-
size: "small",
|
|
27073
|
-
variant: "text",
|
|
27074
|
-
startIcon: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(LockIcon, { sx: { fontSize: "0.85rem" } }),
|
|
27075
|
-
onClick: (e) => {
|
|
27076
|
-
e.stopPropagation();
|
|
27077
|
-
setEngineAnchorEl(null);
|
|
27078
|
-
safeNavigate(plansPath);
|
|
27079
|
-
},
|
|
27080
|
-
sx: {
|
|
27081
|
-
mt: 0.25,
|
|
27082
|
-
px: 0.75,
|
|
27083
|
-
py: 0.1,
|
|
27084
|
-
minWidth: 0,
|
|
27085
|
-
textTransform: "none",
|
|
27086
|
-
fontSize: "0.7rem",
|
|
27087
|
-
fontWeight: 600,
|
|
27088
|
-
color: theme.palette.primary.main,
|
|
27089
|
-
// Re-enable pointer events the disabled MenuItem strips.
|
|
27090
|
-
pointerEvents: "auto"
|
|
27091
|
-
},
|
|
27092
|
-
children: "Upgrade to unlock"
|
|
27093
|
-
}
|
|
27094
|
-
),
|
|
27095
|
-
badges.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_material28.Box, { sx: { display: "flex", gap: 0.5, flexWrap: "wrap", mt: 0.25 }, children: badges.map((b) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
27096
|
-
import_material28.Box,
|
|
27097
|
-
{
|
|
27098
|
-
sx: {
|
|
27099
|
-
fontSize: "0.65rem",
|
|
27100
|
-
px: 0.75,
|
|
27101
|
-
py: 0.1,
|
|
27102
|
-
borderRadius: 1,
|
|
27103
|
-
bgcolor: theme.palette.primary.main + "22",
|
|
27104
|
-
color: theme.palette.primary.main
|
|
27105
|
-
},
|
|
27106
|
-
children: b
|
|
27107
|
-
},
|
|
27108
|
-
b
|
|
27109
|
-
)) })
|
|
27110
|
-
]
|
|
27111
|
-
},
|
|
27112
|
-
engine.id
|
|
27113
|
-
);
|
|
27114
|
-
})
|
|
27115
|
-
]
|
|
27116
|
-
}
|
|
27117
|
-
),
|
|
27118
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
27119
|
-
import_material28.Menu,
|
|
27120
|
-
{
|
|
27121
|
-
anchorEl: modelAnchorEl,
|
|
27122
|
-
open: Boolean(modelAnchorEl),
|
|
27123
|
-
onClose: () => setModelAnchorEl(null),
|
|
27124
|
-
transformOrigin: { horizontal: "right", vertical: "top" },
|
|
27125
|
-
anchorOrigin: { horizontal: "right", vertical: "bottom" },
|
|
27126
|
-
PaperProps: {
|
|
27127
|
-
sx: {
|
|
27128
|
-
bgcolor: menuBackground,
|
|
27129
|
-
color: menuText,
|
|
27130
|
-
fontSize: "0.875rem",
|
|
27131
|
-
zIndex: 2e4,
|
|
27132
|
-
borderRadius: 2,
|
|
27133
|
-
border: `1px solid ${border}`,
|
|
27134
|
-
boxShadow: theme.palette.mode === "dark" ? "0 8px 32px rgba(0,0,0,0.5)" : "0 8px 32px rgba(0,0,0,0.2)",
|
|
27135
|
-
minWidth: 200,
|
|
27136
|
-
"& .MuiMenuItem-root": {
|
|
27137
|
-
transition: "all 0.15s ease-in-out",
|
|
27138
|
-
borderRadius: "6px",
|
|
27139
|
-
margin: "2px 4px",
|
|
27140
|
-
"&:hover": {
|
|
27141
|
-
bgcolor: theme.palette.mode === "dark" ? "rgba(255,255,255,0.08)" : "rgba(0,0,0,0.04)",
|
|
27142
|
-
transform: "translateX(2px)"
|
|
27143
|
-
},
|
|
27144
|
-
"&.Mui-selected": {
|
|
27145
|
-
bgcolor: theme.palette.primary.main + "20",
|
|
27146
|
-
color: theme.palette.primary.main,
|
|
27147
|
-
"&:hover": {
|
|
27148
|
-
bgcolor: theme.palette.primary.main + "30"
|
|
27149
|
-
}
|
|
27150
|
-
}
|
|
27151
|
-
}
|
|
27152
|
-
}
|
|
27153
|
-
},
|
|
27154
|
-
children: availableModels.map((model) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
27155
|
-
import_material28.MenuItem,
|
|
27156
|
-
{
|
|
27157
|
-
selected: model.name === selectedModel,
|
|
27158
|
-
onClick: () => {
|
|
27159
|
-
if (!currentConversation?.history.length || currentConversation?.history.length === 0) {
|
|
27160
|
-
handleModelChange(model.name);
|
|
27161
|
-
useModelStore.getState().setSelectedModel(model.name);
|
|
27162
|
-
(async () => {
|
|
27163
|
-
try {
|
|
27164
|
-
const storeConfigs6 = [{ name: "config", keyPath: "id" }];
|
|
27165
|
-
const current = await indexedDBService_default.get(
|
|
27166
|
-
"banditConfig",
|
|
27167
|
-
1,
|
|
27168
|
-
"config",
|
|
27169
|
-
"main",
|
|
27170
|
-
storeConfigs6
|
|
27171
|
-
);
|
|
27172
|
-
const updated = {
|
|
27173
|
-
...current ?? {},
|
|
27174
|
-
id: "main",
|
|
27175
|
-
model: {
|
|
27176
|
-
...current?.model || {},
|
|
27177
|
-
name: model.name,
|
|
27178
|
-
selectedModel: model.name
|
|
27179
|
-
}
|
|
27180
|
-
};
|
|
27181
|
-
await indexedDBService_default.put("banditConfig", 1, "config", updated, storeConfigs6);
|
|
27182
|
-
} catch (err) {
|
|
27183
|
-
debugLogger.error("Failed to persist selectedModel to IndexedDB", { error: err });
|
|
27184
|
-
}
|
|
27185
|
-
})();
|
|
27186
|
-
setModelAnchorEl(null);
|
|
27187
|
-
return;
|
|
27188
|
-
}
|
|
27189
|
-
setPendingModel(model.name);
|
|
27190
|
-
setConfirmModelChangeOpen(true);
|
|
27191
|
-
setModelAnchorEl(null);
|
|
27192
|
-
},
|
|
27193
|
-
sx: {
|
|
27194
|
-
display: "flex",
|
|
27195
|
-
alignItems: "center",
|
|
27196
|
-
gap: 1.5,
|
|
27197
|
-
minHeight: 48,
|
|
27198
|
-
px: 2
|
|
27199
|
-
},
|
|
27200
|
-
children: [
|
|
27201
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
27202
|
-
import_material27.Avatar,
|
|
27203
|
-
{
|
|
27204
|
-
src: model.avatarBase64 || modelAvatars2[model.name] || banditHead2,
|
|
27205
|
-
alt: model.name,
|
|
27206
|
-
sx: {
|
|
27207
|
-
width: 28,
|
|
27208
|
-
height: 28,
|
|
27209
|
-
filter: "brightness(1.7)",
|
|
27210
|
-
transition: "all 0.2s ease-in-out"
|
|
27211
|
-
}
|
|
27212
|
-
}
|
|
27213
|
-
),
|
|
27214
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_material28.Box, { sx: { flex: 1 }, children: [
|
|
27215
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_material28.Typography, { variant: "body2", sx: { fontWeight: 500 }, children: model.name.replace("Bandit-", "") }),
|
|
27216
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_material28.Typography, { variant: "caption", sx: { color: theme.palette.text.secondary, display: "block" }, children: model.name === selectedModel ? "Currently active" : "Switch to this AI" })
|
|
27217
|
-
] }),
|
|
27218
|
-
model.name === selectedModel && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
27219
|
-
import_material28.Box,
|
|
27220
|
-
{
|
|
27221
|
-
sx: {
|
|
27222
|
-
width: 8,
|
|
27223
|
-
height: 8,
|
|
27224
|
-
borderRadius: "50%",
|
|
27225
|
-
bgcolor: theme.palette.primary.main
|
|
27226
|
-
}
|
|
27227
|
-
}
|
|
27228
|
-
)
|
|
27229
|
-
]
|
|
27230
|
-
},
|
|
27231
|
-
model.name
|
|
27232
|
-
))
|
|
27233
|
-
}
|
|
27234
|
-
),
|
|
27235
|
-
isTTSAvailable && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
|
|
27236
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_material28.Tooltip, { title: `Voice: ${selectedVoice ? toTitleCase(selectedVoice.split("-")[1]) : "Default"}`, arrow: true, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
27072
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
27073
|
+
import_material28.Tooltip,
|
|
27074
|
+
{
|
|
27075
|
+
title: isIncognitoActive ? "End temporary chat" : "Temporary chat \u2014 not saved anywhere",
|
|
27076
|
+
arrow: true,
|
|
27077
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
27237
27078
|
import_material28.IconButton,
|
|
27238
27079
|
{
|
|
27239
|
-
onClick:
|
|
27080
|
+
onClick: toggleIncognito,
|
|
27081
|
+
"aria-label": isIncognitoActive ? "End temporary chat" : "Start temporary chat",
|
|
27082
|
+
"aria-pressed": isIncognitoActive,
|
|
27240
27083
|
sx: {
|
|
27241
27084
|
...pillButtonStyles,
|
|
27242
|
-
|
|
27243
|
-
|
|
27244
|
-
|
|
27245
|
-
|
|
27246
|
-
bgcolor: theme.palette.info.main + "30"
|
|
27085
|
+
...isIncognitoActive && {
|
|
27086
|
+
bgcolor: theme.palette.text.primary,
|
|
27087
|
+
color: theme.palette.getContrastText(theme.palette.text.primary),
|
|
27088
|
+
"&:hover": { bgcolor: theme.palette.text.primary }
|
|
27247
27089
|
}
|
|
27248
27090
|
},
|
|
27249
|
-
|
|
27250
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(RecordVoiceOverIcon, { fontSize: "small" })
|
|
27251
|
-
}
|
|
27252
|
-
) }),
|
|
27253
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
27254
|
-
import_material28.Menu,
|
|
27255
|
-
{
|
|
27256
|
-
anchorEl: voiceAnchorEl,
|
|
27257
|
-
open: Boolean(voiceAnchorEl),
|
|
27258
|
-
onClose: () => setVoiceAnchorEl(null),
|
|
27259
|
-
transformOrigin: { horizontal: "right", vertical: "top" },
|
|
27260
|
-
anchorOrigin: { horizontal: "right", vertical: "bottom" },
|
|
27261
|
-
PaperProps: {
|
|
27262
|
-
sx: {
|
|
27263
|
-
bgcolor: menuBackground,
|
|
27264
|
-
color: menuText,
|
|
27265
|
-
fontSize: "0.875rem",
|
|
27266
|
-
zIndex: 2e4,
|
|
27267
|
-
borderRadius: 2,
|
|
27268
|
-
border: `1px solid ${border}`,
|
|
27269
|
-
boxShadow: theme.palette.mode === "dark" ? "0 8px 32px rgba(0,0,0,0.5)" : "0 8px 32px rgba(0,0,0,0.2)",
|
|
27270
|
-
minWidth: 180,
|
|
27271
|
-
"& .MuiMenuItem-root": {
|
|
27272
|
-
transition: "all 0.15s ease-in-out",
|
|
27273
|
-
borderRadius: "6px",
|
|
27274
|
-
margin: "2px 4px",
|
|
27275
|
-
minHeight: 40,
|
|
27276
|
-
"&:hover": {
|
|
27277
|
-
bgcolor: theme.palette.mode === "dark" ? "rgba(255,255,255,0.08)" : "rgba(0,0,0,0.04)",
|
|
27278
|
-
transform: "translateX(2px)"
|
|
27279
|
-
},
|
|
27280
|
-
"&.Mui-selected": {
|
|
27281
|
-
bgcolor: theme.palette.info.main + "20",
|
|
27282
|
-
color: theme.palette.info.main,
|
|
27283
|
-
"&:hover": {
|
|
27284
|
-
bgcolor: theme.palette.info.main + "30"
|
|
27285
|
-
}
|
|
27286
|
-
}
|
|
27287
|
-
}
|
|
27288
|
-
}
|
|
27289
|
-
},
|
|
27290
|
-
children: availableVoices.length > 0 ? availableVoices.map((voice) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
27291
|
-
import_material28.MenuItem,
|
|
27292
|
-
{
|
|
27293
|
-
selected: voice === selectedVoice,
|
|
27294
|
-
onClick: () => {
|
|
27295
|
-
handleVoiceChange(voice);
|
|
27296
|
-
setVoiceAnchorEl(null);
|
|
27297
|
-
},
|
|
27298
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_material28.Box, { sx: { display: "flex", alignItems: "center", gap: 1, width: "100%" }, children: [
|
|
27299
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(RecordVoiceOverIcon, { fontSize: "small", sx: { color: theme.palette.text.secondary } }),
|
|
27300
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_material28.Box, { sx: { flex: 1 }, children: [
|
|
27301
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_material28.Typography, { variant: "body2", children: toTitleCase(voice.split("-")[1]) }),
|
|
27302
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_material28.Typography, { variant: "caption", sx: { color: theme.palette.text.secondary }, children: voice === selectedVoice ? "Currently active" : "Switch to this voice" })
|
|
27303
|
-
] }),
|
|
27304
|
-
voice === selectedVoice && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
27305
|
-
import_material28.Box,
|
|
27306
|
-
{
|
|
27307
|
-
sx: {
|
|
27308
|
-
width: 8,
|
|
27309
|
-
height: 8,
|
|
27310
|
-
borderRadius: "50%",
|
|
27311
|
-
bgcolor: theme.palette.info.main
|
|
27312
|
-
}
|
|
27313
|
-
}
|
|
27314
|
-
)
|
|
27315
|
-
] })
|
|
27316
|
-
},
|
|
27317
|
-
voice
|
|
27318
|
-
)) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_material28.MenuItem, { disabled: true, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_material28.Typography, { variant: "body2", color: "text.secondary", children: "No voices available" }) })
|
|
27091
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(GhostIcon, {})
|
|
27319
27092
|
}
|
|
27320
27093
|
)
|
|
27321
|
-
|
|
27322
|
-
|
|
27094
|
+
}
|
|
27095
|
+
)
|
|
27323
27096
|
}
|
|
27324
27097
|
)
|
|
27325
27098
|
]
|
|
@@ -30201,13 +29974,13 @@ var init_feedback = __esm({
|
|
|
30201
29974
|
});
|
|
30202
29975
|
|
|
30203
29976
|
// src/components/feedback/FeedbackButton.tsx
|
|
30204
|
-
var import_react38, import_material31,
|
|
29977
|
+
var import_react38, import_material31, import_lucide_react14, import_jsx_runtime32, FeedbackButton;
|
|
30205
29978
|
var init_FeedbackButton = __esm({
|
|
30206
29979
|
"src/components/feedback/FeedbackButton.tsx"() {
|
|
30207
29980
|
"use strict";
|
|
30208
29981
|
import_react38 = require("react");
|
|
30209
29982
|
import_material31 = require("@mui/material");
|
|
30210
|
-
|
|
29983
|
+
import_lucide_react14 = require("lucide-react");
|
|
30211
29984
|
init_feedback();
|
|
30212
29985
|
import_jsx_runtime32 = require("react/jsx-runtime");
|
|
30213
29986
|
FeedbackButton = ({
|
|
@@ -30231,7 +30004,7 @@ var init_FeedbackButton = __esm({
|
|
|
30231
30004
|
import_material31.Button,
|
|
30232
30005
|
{
|
|
30233
30006
|
variant: "outlined",
|
|
30234
|
-
startIcon: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
30007
|
+
startIcon: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_lucide_react14.MessageCircle, {}),
|
|
30235
30008
|
onClick: handleOpen,
|
|
30236
30009
|
className,
|
|
30237
30010
|
size,
|
|
@@ -30260,7 +30033,7 @@ var init_FeedbackButton = __esm({
|
|
|
30260
30033
|
transform: "translateY(-1px)"
|
|
30261
30034
|
}
|
|
30262
30035
|
},
|
|
30263
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
30036
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_lucide_react14.MessageCircle, {})
|
|
30264
30037
|
}
|
|
30265
30038
|
) }),
|
|
30266
30039
|
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
@@ -30319,7 +30092,7 @@ var init_FeedbackButton = __esm({
|
|
|
30319
30092
|
}
|
|
30320
30093
|
}
|
|
30321
30094
|
},
|
|
30322
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
30095
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_lucide_react14.MessageCircle, {})
|
|
30323
30096
|
}
|
|
30324
30097
|
)
|
|
30325
30098
|
}
|
|
@@ -30917,7 +30690,8 @@ var init_chat2 = __esm({
|
|
|
30917
30690
|
const [inputHeight, setInputHeight] = (0, import_react41.useState)(80);
|
|
30918
30691
|
const [isSubmitting, setIsSubmitting] = (0, import_react41.useState)(false);
|
|
30919
30692
|
const [pendingMessage, setPendingMessage] = (0, import_react41.useState)(null);
|
|
30920
|
-
const { conversations, currentId, _hasHydrated, hydrate } = useConversationStore();
|
|
30693
|
+
const { conversations, currentId, _hasHydrated, hydrate, toggleIncognito } = useConversationStore();
|
|
30694
|
+
const isTemporaryChat = Boolean(conversations.find((c) => c.id === currentId)?.incognito);
|
|
30921
30695
|
const [isMobile, setIsMobile] = (0, import_react41.useState)(false);
|
|
30922
30696
|
const [drawerOpen, setDrawerOpen] = (0, import_react41.useState)(false);
|
|
30923
30697
|
const [mobileConversationsOpen, setMobileConversationsOpen] = (0, import_react41.useState)(false);
|
|
@@ -31770,12 +31544,11 @@ var init_chat2 = __esm({
|
|
|
31770
31544
|
width: !isMobile && canvasOpen ? `calc(100vw - ${drawerOpen ? "340px" : "0px"} - ${CANVAS_WIDTH})` : drawerOpen && !isMobile ? "calc(100vw - 340px)" : "100vw",
|
|
31771
31545
|
zIndex: 0,
|
|
31772
31546
|
// Claude-style push (mobile only; desktop stays flush): the chat
|
|
31773
|
-
// shell slides right
|
|
31774
|
-
//
|
|
31775
|
-
//
|
|
31776
|
-
// corners clipped at the device edge in the PWA. Width kept in sync
|
|
31547
|
+
// shell slides right as a full-height rounded card — exactly like
|
|
31548
|
+
// Claude iOS, where the card runs edge-to-edge vertically and the
|
|
31549
|
+
// hairline border keeps the corners legible. Width kept in sync
|
|
31777
31550
|
// with the drawer in enhanced-mobile-conversations-modal.tsx.
|
|
31778
|
-
transform: isMobile && mobileConversationsOpen ? "translateX(min(calc(100vw - 56px), 360px))
|
|
31551
|
+
transform: isMobile && mobileConversationsOpen ? "translateX(min(calc(100vw - 56px), 360px))" : "none",
|
|
31779
31552
|
borderRadius: isMobile && mobileConversationsOpen ? "24px" : 0,
|
|
31780
31553
|
// Hairline border so the rounded card reads even when the backdrop
|
|
31781
31554
|
// is the same near-black as the shell.
|
|
@@ -31798,30 +31571,82 @@ var init_chat2 = __esm({
|
|
|
31798
31571
|
onMobileConversationsOpenChange: setMobileConversationsOpen
|
|
31799
31572
|
}
|
|
31800
31573
|
),
|
|
31801
|
-
|
|
31802
|
-
|
|
31803
|
-
|
|
31804
|
-
|
|
31805
|
-
|
|
31806
|
-
|
|
31807
|
-
|
|
31808
|
-
|
|
31809
|
-
|
|
31810
|
-
|
|
31811
|
-
|
|
31812
|
-
|
|
31813
|
-
|
|
31814
|
-
|
|
31815
|
-
|
|
31816
|
-
|
|
31817
|
-
|
|
31818
|
-
|
|
31819
|
-
|
|
31820
|
-
|
|
31821
|
-
|
|
31822
|
-
|
|
31823
|
-
|
|
31824
|
-
|
|
31574
|
+
isTemporaryChat && /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
|
|
31575
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
31576
|
+
import_material33.Box,
|
|
31577
|
+
{
|
|
31578
|
+
sx: (theme) => ({
|
|
31579
|
+
position: "absolute",
|
|
31580
|
+
inset: 0,
|
|
31581
|
+
border: `2px solid ${theme.palette.mode === "dark" ? "rgba(255,255,255,0.45)" : "rgba(0,0,0,0.4)"}`,
|
|
31582
|
+
borderRadius: "inherit",
|
|
31583
|
+
zIndex: 1400,
|
|
31584
|
+
pointerEvents: "none"
|
|
31585
|
+
})
|
|
31586
|
+
}
|
|
31587
|
+
),
|
|
31588
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
31589
|
+
import_material33.Box,
|
|
31590
|
+
{
|
|
31591
|
+
sx: (theme) => ({
|
|
31592
|
+
position: "absolute",
|
|
31593
|
+
top: `calc(${theme.spacing(8)} + env(safe-area-inset-top, 0px))`,
|
|
31594
|
+
left: "50%",
|
|
31595
|
+
transform: "translateX(-50%)",
|
|
31596
|
+
zIndex: 1401,
|
|
31597
|
+
display: "flex",
|
|
31598
|
+
alignItems: "center",
|
|
31599
|
+
gap: 0.75,
|
|
31600
|
+
pl: 1.5,
|
|
31601
|
+
pr: 0.75,
|
|
31602
|
+
py: 0.4,
|
|
31603
|
+
borderRadius: 999,
|
|
31604
|
+
fontSize: "0.78rem",
|
|
31605
|
+
fontWeight: 600,
|
|
31606
|
+
color: theme.palette.text.primary,
|
|
31607
|
+
bgcolor: theme.palette.mode === "dark" ? "rgba(255,255,255,0.12)" : "rgba(0,0,0,0.08)",
|
|
31608
|
+
border: `1px solid ${theme.palette.divider}`,
|
|
31609
|
+
backdropFilter: "blur(8px)",
|
|
31610
|
+
whiteSpace: "nowrap"
|
|
31611
|
+
}),
|
|
31612
|
+
children: [
|
|
31613
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_material33.Box, { component: "span", "aria-hidden": true, sx: { fontSize: "0.9rem", lineHeight: 1 }, children: "\u{1F47B}" }),
|
|
31614
|
+
"Temporary chat",
|
|
31615
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
31616
|
+
import_material33.Box,
|
|
31617
|
+
{
|
|
31618
|
+
component: "button",
|
|
31619
|
+
type: "button",
|
|
31620
|
+
onClick: toggleIncognito,
|
|
31621
|
+
"aria-label": "End temporary chat",
|
|
31622
|
+
sx: (theme) => ({
|
|
31623
|
+
display: "inline-flex",
|
|
31624
|
+
alignItems: "center",
|
|
31625
|
+
justifyContent: "center",
|
|
31626
|
+
width: 20,
|
|
31627
|
+
height: 20,
|
|
31628
|
+
ml: 0.25,
|
|
31629
|
+
p: 0,
|
|
31630
|
+
border: "none",
|
|
31631
|
+
borderRadius: "50%",
|
|
31632
|
+
cursor: "pointer",
|
|
31633
|
+
color: theme.palette.text.secondary,
|
|
31634
|
+
bgcolor: "transparent",
|
|
31635
|
+
font: "inherit",
|
|
31636
|
+
fontSize: "0.85rem",
|
|
31637
|
+
lineHeight: 1,
|
|
31638
|
+
"&:hover": {
|
|
31639
|
+
bgcolor: theme.palette.mode === "dark" ? "rgba(255,255,255,0.15)" : "rgba(0,0,0,0.1)",
|
|
31640
|
+
color: theme.palette.text.primary
|
|
31641
|
+
}
|
|
31642
|
+
}),
|
|
31643
|
+
children: "\u2715"
|
|
31644
|
+
}
|
|
31645
|
+
)
|
|
31646
|
+
]
|
|
31647
|
+
}
|
|
31648
|
+
)
|
|
31649
|
+
] }),
|
|
31825
31650
|
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
31826
31651
|
import_material33.Box,
|
|
31827
31652
|
{
|
|
@@ -39327,7 +39152,7 @@ init_useFeatures();
|
|
|
39327
39152
|
// src/components/shared/ProcessingOverlay.tsx
|
|
39328
39153
|
var import_react55 = require("react");
|
|
39329
39154
|
var import_material46 = require("@mui/material");
|
|
39330
|
-
var
|
|
39155
|
+
var import_lucide_react15 = require("lucide-react");
|
|
39331
39156
|
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
39332
39157
|
var ninjaFloat = import_material46.keyframes`
|
|
39333
39158
|
0%, 100% { transform: translateY(0px) rotate(0deg); }
|
|
@@ -39352,28 +39177,28 @@ var defaultSteps = [
|
|
|
39352
39177
|
id: "upload",
|
|
39353
39178
|
title: "Uploading to Cloud",
|
|
39354
39179
|
description: "Our digital ninjas are securely transferring your file...",
|
|
39355
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
39180
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react15.CloudUpload, {}),
|
|
39356
39181
|
duration: 5
|
|
39357
39182
|
},
|
|
39358
39183
|
{
|
|
39359
39184
|
id: "analyze",
|
|
39360
39185
|
title: "AI Analysis",
|
|
39361
39186
|
description: "Advanced AI robots are reading and understanding your content...",
|
|
39362
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
39187
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react15.Brain, {}),
|
|
39363
39188
|
duration: 15
|
|
39364
39189
|
},
|
|
39365
39190
|
{
|
|
39366
39191
|
id: "embed",
|
|
39367
39192
|
title: "Making It Searchable",
|
|
39368
39193
|
description: "We turn the content into a private, searchable index...",
|
|
39369
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
39194
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react15.Cpu, {}),
|
|
39370
39195
|
duration: 10
|
|
39371
39196
|
},
|
|
39372
39197
|
{
|
|
39373
39198
|
id: "optimize",
|
|
39374
39199
|
title: "Optimizing Search",
|
|
39375
39200
|
description: "Organizing everything for quick, reliable answers...",
|
|
39376
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
39201
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react15.Sparkles, {}),
|
|
39377
39202
|
duration: 8
|
|
39378
39203
|
}
|
|
39379
39204
|
];
|
|
@@ -39519,7 +39344,7 @@ var ProcessingOverlay = ({
|
|
|
39519
39344
|
animation: `${pulse} 3s ease-in-out infinite`,
|
|
39520
39345
|
color: theme.palette.secondary.main
|
|
39521
39346
|
},
|
|
39522
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
39347
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react15.Bot, {})
|
|
39523
39348
|
}
|
|
39524
39349
|
),
|
|
39525
39350
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
@@ -39533,7 +39358,7 @@ var ProcessingOverlay = ({
|
|
|
39533
39358
|
color: theme.palette.primary.main,
|
|
39534
39359
|
animationDelay: "1s"
|
|
39535
39360
|
},
|
|
39536
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
39361
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react15.Zap, {})
|
|
39537
39362
|
}
|
|
39538
39363
|
)
|
|
39539
39364
|
] }),
|
|
@@ -45866,6 +45691,23 @@ var Management = () => {
|
|
|
45866
45691
|
boxShadow: "0 2px 8px rgba(0,0,0,0.1)"
|
|
45867
45692
|
},
|
|
45868
45693
|
children: [
|
|
45694
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
45695
|
+
import_material54.Button,
|
|
45696
|
+
{
|
|
45697
|
+
onClick: () => navigate("/chat"),
|
|
45698
|
+
onMouseEnter: preloadChatPage,
|
|
45699
|
+
"aria-label": "Back to chat",
|
|
45700
|
+
sx: {
|
|
45701
|
+
minWidth: 48,
|
|
45702
|
+
minHeight: 48,
|
|
45703
|
+
p: 1.5,
|
|
45704
|
+
borderRadius: 2,
|
|
45705
|
+
color: "primary.main",
|
|
45706
|
+
bgcolor: (theme2) => theme2.palette.mode === "dark" ? "rgba(255,255,255,0.08)" : "rgba(0,0,0,0.04)"
|
|
45707
|
+
},
|
|
45708
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(ChevronLeftIcon, { sx: { fontSize: 22 } })
|
|
45709
|
+
}
|
|
45710
|
+
),
|
|
45869
45711
|
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
45870
45712
|
import_material54.Button,
|
|
45871
45713
|
{
|
|
@@ -46518,7 +46360,7 @@ init_streaming_tts();
|
|
|
46518
46360
|
|
|
46519
46361
|
// src/modals/SubscriptionExpiredModal.tsx
|
|
46520
46362
|
var import_material56 = require("@mui/material");
|
|
46521
|
-
var
|
|
46363
|
+
var import_lucide_react16 = require("lucide-react");
|
|
46522
46364
|
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
46523
46365
|
var SubscriptionExpiredModal = ({
|
|
46524
46366
|
open,
|
|
@@ -46557,7 +46399,7 @@ var SubscriptionExpiredModal = ({
|
|
|
46557
46399
|
},
|
|
46558
46400
|
children: [
|
|
46559
46401
|
/* @__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: [
|
|
46560
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
46402
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react16.AlertTriangle, { size: 32, color: "warning" }),
|
|
46561
46403
|
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_material56.Typography, { variant: "h5", component: "span", fontWeight: "bold", children: "Subscription Expired" })
|
|
46562
46404
|
] }) }),
|
|
46563
46405
|
/* @__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: [
|
|
@@ -46585,7 +46427,7 @@ var SubscriptionExpiredModal = ({
|
|
|
46585
46427
|
{
|
|
46586
46428
|
onClick: handleNavigateHome,
|
|
46587
46429
|
variant: "outlined",
|
|
46588
|
-
startIcon: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
46430
|
+
startIcon: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react16.Home, {}),
|
|
46589
46431
|
size: "large",
|
|
46590
46432
|
sx: { minWidth: 140 },
|
|
46591
46433
|
children: "Go Home"
|
|
@@ -46596,7 +46438,7 @@ var SubscriptionExpiredModal = ({
|
|
|
46596
46438
|
{
|
|
46597
46439
|
onClick: handleManageSubscription,
|
|
46598
46440
|
variant: "contained",
|
|
46599
|
-
startIcon: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
46441
|
+
startIcon: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react16.CreditCard, {}),
|
|
46600
46442
|
size: "large",
|
|
46601
46443
|
color: "primary",
|
|
46602
46444
|
sx: { minWidth: 140 },
|