@burtson-labs/bandit-engine 2.0.122 → 2.0.124
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-OWN4ESDC.mjs → chat-QBDECLF3.mjs} +4 -4
- package/dist/{chunk-W2Q2AF45.mjs → chunk-4RRQQPFZ.mjs} +2 -2
- package/dist/{chunk-LR55TJK5.mjs → chunk-JJTUEC2E.mjs} +86 -246
- package/dist/chunk-JJTUEC2E.mjs.map +1 -0
- package/dist/{chunk-AYFWADUJ.mjs → chunk-K5HAVOPD.mjs} +5 -5
- package/dist/{chunk-42TFNHCE.mjs → chunk-QPZC6GTA.mjs} +115 -192
- package/dist/chunk-QPZC6GTA.mjs.map +1 -0
- package/dist/{chunk-CY6WSCRS.mjs → chunk-WSNV6EX5.mjs} +2 -2
- package/dist/index.js +268 -492
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5 -5
- package/dist/management/management.js +252 -476
- package/dist/management/management.js.map +1 -1
- package/dist/management/management.mjs +4 -4
- package/dist/modals/chat-modal/chat-modal.js +84 -240
- package/dist/modals/chat-modal/chat-modal.js.map +1 -1
- package/dist/modals/chat-modal/chat-modal.mjs +2 -2
- package/package.json +1 -1
- package/dist/chunk-42TFNHCE.mjs.map +0 -1
- package/dist/chunk-LR55TJK5.mjs.map +0 -1
- /package/dist/{chat-OWN4ESDC.mjs.map → chat-QBDECLF3.mjs.map} +0 -0
- /package/dist/{chunk-W2Q2AF45.mjs.map → chunk-4RRQQPFZ.mjs.map} +0 -0
- /package/dist/{chunk-AYFWADUJ.mjs.map → chunk-K5HAVOPD.mjs.map} +0 -0
- /package/dist/{chunk-CY6WSCRS.mjs.map → chunk-WSNV6EX5.mjs.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
StreamingMarkdown_default
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-WSNV6EX5.mjs";
|
|
4
4
|
import {
|
|
5
5
|
aiProviderInitService
|
|
6
6
|
} from "./chunk-F7JXIW6T.mjs";
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
} from "./chunk-K2JGFKEB.mjs";
|
|
15
15
|
import {
|
|
16
16
|
chat_modal_default
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-4RRQQPFZ.mjs";
|
|
18
18
|
import {
|
|
19
19
|
AddIcon,
|
|
20
20
|
ArchiveIcon,
|
|
@@ -83,7 +83,7 @@ import {
|
|
|
83
83
|
predefinedThemes,
|
|
84
84
|
useNotificationService,
|
|
85
85
|
useVoiceStore
|
|
86
|
-
} from "./chunk-
|
|
86
|
+
} from "./chunk-JJTUEC2E.mjs";
|
|
87
87
|
import {
|
|
88
88
|
TOPICS,
|
|
89
89
|
brandingService_default,
|
|
@@ -9754,7 +9754,7 @@ var MCPToolsTabV2_default = MCPToolsTabV2;
|
|
|
9754
9754
|
|
|
9755
9755
|
// src/management/management.tsx
|
|
9756
9756
|
import { jsx as jsx14, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
9757
|
-
var preloadChatPage = () => import("./chat-
|
|
9757
|
+
var preloadChatPage = () => import("./chat-QBDECLF3.mjs");
|
|
9758
9758
|
var buildCapabilitiesUrl = (gatewayApiUrl) => {
|
|
9759
9759
|
const trimmed = gatewayApiUrl.replace(/\/$/, "");
|
|
9760
9760
|
if (trimmed.endsWith("/api")) {
|
|
@@ -11110,4 +11110,4 @@ export {
|
|
|
11110
11110
|
useGatewayMemory,
|
|
11111
11111
|
management_default
|
|
11112
11112
|
};
|
|
11113
|
-
//# sourceMappingURL=chunk-
|
|
11113
|
+
//# sourceMappingURL=chunk-K5HAVOPD.mjs.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-ONQMRE2G.mjs";
|
|
4
4
|
import {
|
|
5
5
|
StreamingMarkdown_default
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-WSNV6EX5.mjs";
|
|
7
7
|
import {
|
|
8
8
|
useMCPToolsStore
|
|
9
9
|
} from "./chunk-K2JGFKEB.mjs";
|
|
@@ -14,10 +14,7 @@ import {
|
|
|
14
14
|
AutoAwesomeIcon,
|
|
15
15
|
CheckIcon,
|
|
16
16
|
CloseIcon,
|
|
17
|
-
CloudDoneIcon,
|
|
18
|
-
CloudOffIcon,
|
|
19
17
|
ComposeIcon,
|
|
20
|
-
ErrorOutlineIcon,
|
|
21
18
|
ExpandMoreIcon,
|
|
22
19
|
FeedbackButton,
|
|
23
20
|
FeedbackIcon,
|
|
@@ -25,17 +22,12 @@ import {
|
|
|
25
22
|
GhostIcon,
|
|
26
23
|
GraphicEqIcon,
|
|
27
24
|
HearingDisabledIcon,
|
|
28
|
-
HomeIcon,
|
|
29
25
|
LockIcon,
|
|
30
26
|
MicIcon,
|
|
31
|
-
NotesIcon,
|
|
32
|
-
NotesIconOutlined,
|
|
33
27
|
PanelLeftIcon,
|
|
34
28
|
PsychologyIcon,
|
|
35
29
|
RecordVoiceOverIcon,
|
|
36
|
-
SettingsIcon,
|
|
37
30
|
SignalWifi2BarIcon,
|
|
38
|
-
SyncIcon,
|
|
39
31
|
WifiIcon,
|
|
40
32
|
WifiOffIcon,
|
|
41
33
|
ai_response_text_field_default,
|
|
@@ -48,7 +40,7 @@ import {
|
|
|
48
40
|
useNotificationService,
|
|
49
41
|
useTTS,
|
|
50
42
|
useVoiceStore
|
|
51
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-JJTUEC2E.mjs";
|
|
52
44
|
import {
|
|
53
45
|
brandingService_default,
|
|
54
46
|
detectMessageMood,
|
|
@@ -1054,6 +1046,9 @@ var EnginePickerPill = () => {
|
|
|
1054
1046
|
};
|
|
1055
1047
|
var engine_picker_default = EnginePickerPill;
|
|
1056
1048
|
|
|
1049
|
+
// src/chat/chat-input.tsx
|
|
1050
|
+
import { Volume2 as VoicePickerIcon } from "lucide-react";
|
|
1051
|
+
|
|
1057
1052
|
// src/services/stt/transcriber.tsx
|
|
1058
1053
|
import { useState as useState5, useRef } from "react";
|
|
1059
1054
|
|
|
@@ -1677,7 +1672,7 @@ ${sanitize(
|
|
|
1677
1672
|
"&:hover": { bgcolor: hoverBadgeBackground }
|
|
1678
1673
|
},
|
|
1679
1674
|
"aria-label": "Change voice",
|
|
1680
|
-
children: /* @__PURE__ */ jsx9(
|
|
1675
|
+
children: /* @__PURE__ */ jsx9(VoicePickerIcon, { size: 18 })
|
|
1681
1676
|
}
|
|
1682
1677
|
) }, key ?? "voice");
|
|
1683
1678
|
};
|
|
@@ -5174,7 +5169,7 @@ import {
|
|
|
5174
5169
|
Avatar as Avatar6,
|
|
5175
5170
|
alpha as alpha8
|
|
5176
5171
|
} from "@mui/material";
|
|
5177
|
-
import { X as CloseIcon6, X as ClearIcon, Search as SearchIcon, Folder as FolderIcon4, MoreVertical as MoreVertIcon3, Trash2 as DeleteSweepIcon, Inbox as InboxIcon3, Plus as AddIcon4, Settings as
|
|
5172
|
+
import { X as CloseIcon6, X as ClearIcon, Search as SearchIcon, Folder as FolderIcon4, MoreVertical as MoreVertIcon3, Trash2 as DeleteSweepIcon, Inbox as InboxIcon3, Plus as AddIcon4, Settings as SettingsIcon, Brain as MemoryIcon, LogOut as LogOutIcon, House as HomeLucideIcon, RefreshCw as SyncLucideIcon, CircleAlert as SyncErrorIcon, SlidersHorizontal as ManagementIcon } from "lucide-react";
|
|
5178
5173
|
import { useTheme as useTheme13 } from "@mui/material/styles";
|
|
5179
5174
|
|
|
5180
5175
|
// src/chat/project-management-modal.tsx
|
|
@@ -6932,6 +6927,30 @@ var ConversationDrawer = ({ open, onClose }) => {
|
|
|
6932
6927
|
onClose();
|
|
6933
6928
|
}
|
|
6934
6929
|
};
|
|
6930
|
+
const { preferences } = usePreferencesStore();
|
|
6931
|
+
const { showLimitedAdminPanel } = useFeatureVisibility();
|
|
6932
|
+
const syncEnabled = useConversationSyncStore((s) => s.syncEnabled);
|
|
6933
|
+
const syncStatus = useConversationSyncStore((s) => s.status);
|
|
6934
|
+
const runSync = useConversationSyncStore((s) => s.runSync);
|
|
6935
|
+
const goToHome = () => {
|
|
6936
|
+
const resolvedHomeUrl = preferences.homeUrl?.trim() || usePackageSettingsStore.getState().settings?.homeUrl?.trim() || "";
|
|
6937
|
+
if (resolvedHomeUrl) {
|
|
6938
|
+
window.location.href = resolvedHomeUrl;
|
|
6939
|
+
return;
|
|
6940
|
+
}
|
|
6941
|
+
const navigatorWithStandalone = window.navigator;
|
|
6942
|
+
const isStandalone = window.matchMedia?.("(display-mode: standalone)").matches || navigatorWithStandalone.standalone === true;
|
|
6943
|
+
if (isStandalone) {
|
|
6944
|
+
try {
|
|
6945
|
+
sessionStorage.setItem("banditPwaStayOnHome", "true");
|
|
6946
|
+
} catch {
|
|
6947
|
+
}
|
|
6948
|
+
window.location.href = "/?mode=home";
|
|
6949
|
+
return;
|
|
6950
|
+
}
|
|
6951
|
+
window.location.href = "/";
|
|
6952
|
+
};
|
|
6953
|
+
const managementPath = typeof window !== "undefined" && window.location.pathname.startsWith("/playground") ? "/playground/management" : "/management";
|
|
6935
6954
|
const handleSearchClear = () => {
|
|
6936
6955
|
setSearchQuery("");
|
|
6937
6956
|
};
|
|
@@ -7015,6 +7034,31 @@ var ConversationDrawer = ({ open, onClose }) => {
|
|
|
7015
7034
|
gap: 1
|
|
7016
7035
|
},
|
|
7017
7036
|
children: [
|
|
7037
|
+
syncEnabled && /* @__PURE__ */ jsx16(Tooltip4, { title: syncStatus === "error" ? "Sync needs attention \u2014 tap to retry" : "Sync conversations", arrow: true, children: /* @__PURE__ */ jsx16(
|
|
7038
|
+
IconButton10,
|
|
7039
|
+
{
|
|
7040
|
+
onClick: () => {
|
|
7041
|
+
if (syncStatus !== "syncing") void runSync({ force: true });
|
|
7042
|
+
},
|
|
7043
|
+
size: "small",
|
|
7044
|
+
"aria-label": "Sync conversations",
|
|
7045
|
+
sx: {
|
|
7046
|
+
color: syncStatus === "error" ? theme.palette.error.main : theme.palette.text.secondary,
|
|
7047
|
+
...syncStatus === "syncing" && {
|
|
7048
|
+
animation: "bandit-sync-spin 1s linear infinite",
|
|
7049
|
+
"@keyframes bandit-sync-spin": {
|
|
7050
|
+
"0%": { transform: "rotate(0deg)" },
|
|
7051
|
+
"100%": { transform: "rotate(360deg)" }
|
|
7052
|
+
}
|
|
7053
|
+
},
|
|
7054
|
+
"&:hover": {
|
|
7055
|
+
color: theme.palette.primary.main,
|
|
7056
|
+
bgcolor: alpha8(theme.palette.primary.main, 0.1)
|
|
7057
|
+
}
|
|
7058
|
+
},
|
|
7059
|
+
children: syncStatus === "error" ? /* @__PURE__ */ jsx16(SyncErrorIcon, {}) : /* @__PURE__ */ jsx16(SyncLucideIcon, {})
|
|
7060
|
+
}
|
|
7061
|
+
) }),
|
|
7018
7062
|
/* @__PURE__ */ jsx16(Tooltip4, { title: "Memories", arrow: true, children: /* @__PURE__ */ jsx16(
|
|
7019
7063
|
IconButton10,
|
|
7020
7064
|
{
|
|
@@ -7434,6 +7478,44 @@ var ConversationDrawer = ({ open, onClose }) => {
|
|
|
7434
7478
|
]
|
|
7435
7479
|
}
|
|
7436
7480
|
),
|
|
7481
|
+
/* @__PURE__ */ jsx16(
|
|
7482
|
+
IconButton10,
|
|
7483
|
+
{
|
|
7484
|
+
"aria-label": "Go to home page",
|
|
7485
|
+
title: "Home",
|
|
7486
|
+
onClick: (event) => {
|
|
7487
|
+
event.stopPropagation();
|
|
7488
|
+
goToHome();
|
|
7489
|
+
},
|
|
7490
|
+
sx: {
|
|
7491
|
+
flexShrink: 0,
|
|
7492
|
+
width: 30,
|
|
7493
|
+
height: 30,
|
|
7494
|
+
border: `1px solid ${alpha8(theme.palette.divider, 0.8)}`,
|
|
7495
|
+
color: theme.palette.text.secondary
|
|
7496
|
+
},
|
|
7497
|
+
children: /* @__PURE__ */ jsx16(HomeLucideIcon, { size: 16 })
|
|
7498
|
+
}
|
|
7499
|
+
),
|
|
7500
|
+
user && showLimitedAdminPanel() && /* @__PURE__ */ jsx16(
|
|
7501
|
+
IconButton10,
|
|
7502
|
+
{
|
|
7503
|
+
"aria-label": "Management & settings",
|
|
7504
|
+
title: "Management & settings",
|
|
7505
|
+
onClick: (event) => {
|
|
7506
|
+
event.stopPropagation();
|
|
7507
|
+
window.location.href = managementPath;
|
|
7508
|
+
},
|
|
7509
|
+
sx: {
|
|
7510
|
+
flexShrink: 0,
|
|
7511
|
+
width: 30,
|
|
7512
|
+
height: 30,
|
|
7513
|
+
border: `1px solid ${alpha8(theme.palette.divider, 0.8)}`,
|
|
7514
|
+
color: theme.palette.text.secondary
|
|
7515
|
+
},
|
|
7516
|
+
children: /* @__PURE__ */ jsx16(ManagementIcon, { size: 16 })
|
|
7517
|
+
}
|
|
7518
|
+
),
|
|
7437
7519
|
user && /* @__PURE__ */ jsxs13(Fragment8, { children: [
|
|
7438
7520
|
/* @__PURE__ */ jsx16(
|
|
7439
7521
|
Box13,
|
|
@@ -7449,7 +7531,7 @@ var ConversationDrawer = ({ open, onClose }) => {
|
|
|
7449
7531
|
border: `1px solid ${alpha8(theme.palette.divider, 0.8)}`,
|
|
7450
7532
|
color: theme.palette.text.secondary
|
|
7451
7533
|
},
|
|
7452
|
-
children: /* @__PURE__ */ jsx16(
|
|
7534
|
+
children: /* @__PURE__ */ jsx16(SettingsIcon, { size: 16 })
|
|
7453
7535
|
}
|
|
7454
7536
|
),
|
|
7455
7537
|
/* @__PURE__ */ jsx16(
|
|
@@ -7582,7 +7664,7 @@ import {
|
|
|
7582
7664
|
Avatar as Avatar7,
|
|
7583
7665
|
Chip as Chip4
|
|
7584
7666
|
} from "@mui/material";
|
|
7585
|
-
import { X as CloseIcon7, X as ClearIcon2, Search as SearchIcon2, Folder as FolderIcon5, MoreVertical as MoreVertIcon4, Trash2 as DeleteSweepIcon2, Inbox as InboxIcon4, Plus as AddIcon5, Settings as
|
|
7667
|
+
import { X as CloseIcon7, X as ClearIcon2, Search as SearchIcon2, Folder as FolderIcon5, MoreVertical as MoreVertIcon4, Trash2 as DeleteSweepIcon2, Inbox as InboxIcon4, Plus as AddIcon5, Settings as SettingsIcon2, Brain as MemoryIcon2, LogOut as LogOutIcon2, House as HomeLucideIcon2, RefreshCw as SyncLucideIcon2, CircleAlert as SyncErrorIcon2, SlidersHorizontal as ManagementIcon2 } from "lucide-react";
|
|
7586
7668
|
import { useTheme as useTheme14, alpha as alpha9 } from "@mui/material/styles";
|
|
7587
7669
|
import { Fragment as Fragment9, jsx as jsx17, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
7588
7670
|
var BANDIT_AVATAR2 = "https://cdn.burtson.ai/images/bandit-head.png";
|
|
@@ -8010,7 +8092,7 @@ var EnhancedMobileConversationsModal = ({
|
|
|
8010
8092
|
}
|
|
8011
8093
|
}
|
|
8012
8094
|
},
|
|
8013
|
-
children: syncStatus === "error" ? /* @__PURE__ */ jsx17(
|
|
8095
|
+
children: syncStatus === "error" ? /* @__PURE__ */ jsx17(SyncErrorIcon2, {}) : /* @__PURE__ */ jsx17(SyncLucideIcon2, {})
|
|
8014
8096
|
}
|
|
8015
8097
|
),
|
|
8016
8098
|
/* @__PURE__ */ jsx17(
|
|
@@ -8540,7 +8622,7 @@ var EnhancedMobileConversationsModal = ({
|
|
|
8540
8622
|
border: `1px solid ${alpha9(theme.palette.divider, 0.8)}`,
|
|
8541
8623
|
color: theme.palette.text.secondary
|
|
8542
8624
|
},
|
|
8543
|
-
children: /* @__PURE__ */ jsx17(
|
|
8625
|
+
children: /* @__PURE__ */ jsx17(HomeLucideIcon2, { size: 16 })
|
|
8544
8626
|
}
|
|
8545
8627
|
),
|
|
8546
8628
|
user && showLimitedAdminPanel() && /* @__PURE__ */ jsx17(
|
|
@@ -8559,7 +8641,7 @@ var EnhancedMobileConversationsModal = ({
|
|
|
8559
8641
|
border: `1px solid ${alpha9(theme.palette.divider, 0.8)}`,
|
|
8560
8642
|
color: theme.palette.text.secondary
|
|
8561
8643
|
},
|
|
8562
|
-
children: /* @__PURE__ */ jsx17(
|
|
8644
|
+
children: /* @__PURE__ */ jsx17(ManagementIcon2, { size: 16 })
|
|
8563
8645
|
}
|
|
8564
8646
|
),
|
|
8565
8647
|
user && /* @__PURE__ */ jsxs14(Fragment9, { children: [
|
|
@@ -8577,7 +8659,7 @@ var EnhancedMobileConversationsModal = ({
|
|
|
8577
8659
|
border: `1px solid ${alpha9(theme.palette.divider, 0.8)}`,
|
|
8578
8660
|
color: theme.palette.text.secondary
|
|
8579
8661
|
},
|
|
8580
|
-
children: /* @__PURE__ */ jsx17(
|
|
8662
|
+
children: /* @__PURE__ */ jsx17(SettingsIcon2, { size: 16 })
|
|
8581
8663
|
}
|
|
8582
8664
|
),
|
|
8583
8665
|
/* @__PURE__ */ jsx17(
|
|
@@ -8758,24 +8840,8 @@ var ChatAppBar = ({
|
|
|
8758
8840
|
const { settings: packageSettings } = usePackageSettingsStore();
|
|
8759
8841
|
const isPlaygroundRoute = typeof window !== "undefined" && window.location.pathname.includes("/playground");
|
|
8760
8842
|
const isPlaygroundMode2 = Boolean(packageSettings?.playgroundMode) || (packageSettings?.gatewayApiUrl ?? "").toLowerCase().startsWith("playground://") || typeof window !== "undefined" && window.location.pathname.startsWith("/playground");
|
|
8761
|
-
const
|
|
8762
|
-
const {
|
|
8763
|
-
syncEnabled,
|
|
8764
|
-
syncStatus,
|
|
8765
|
-
lastSyncAt,
|
|
8766
|
-
pendingCount,
|
|
8767
|
-
warningConversations,
|
|
8768
|
-
oversizedConversations,
|
|
8769
|
-
triggerSync,
|
|
8770
|
-
setSyncEnabled
|
|
8771
|
-
} = useConversationSyncStore((state) => ({
|
|
8843
|
+
const { syncEnabled, setSyncEnabled } = useConversationSyncStore((state) => ({
|
|
8772
8844
|
syncEnabled: state.syncEnabled,
|
|
8773
|
-
syncStatus: state.status,
|
|
8774
|
-
lastSyncAt: state.lastSyncAt,
|
|
8775
|
-
pendingCount: state.pendingConversationUpserts.size + state.pendingConversationDeletes.size + state.pendingProjectUpserts.size + state.pendingProjectDeletes.size,
|
|
8776
|
-
warningConversations: state.warningConversations,
|
|
8777
|
-
oversizedConversations: state.oversizedConversations,
|
|
8778
|
-
triggerSync: state.runSync,
|
|
8779
8845
|
setSyncEnabled: state.setSyncEnabled
|
|
8780
8846
|
}), shallow2);
|
|
8781
8847
|
useEffect13(() => {
|
|
@@ -8787,57 +8853,6 @@ var ChatAppBar = ({
|
|
|
8787
8853
|
});
|
|
8788
8854
|
}
|
|
8789
8855
|
}, [isPlaygroundMode2, syncEnabled, setSyncEnabled]);
|
|
8790
|
-
const syncSpinSx = {
|
|
8791
|
-
animation: "spin 1s linear infinite",
|
|
8792
|
-
"@keyframes spin": {
|
|
8793
|
-
"0%": { transform: "rotate(0deg)" },
|
|
8794
|
-
"100%": { transform: "rotate(360deg)" }
|
|
8795
|
-
}
|
|
8796
|
-
};
|
|
8797
|
-
const syncIndicatorIcon = (() => {
|
|
8798
|
-
if (isPlaygroundMode2 || !syncEnabled) {
|
|
8799
|
-
return /* @__PURE__ */ jsx18(CloudOffIcon, { fontSize: "small", color: "disabled" });
|
|
8800
|
-
}
|
|
8801
|
-
switch (syncStatus) {
|
|
8802
|
-
case "syncing":
|
|
8803
|
-
return /* @__PURE__ */ jsx18(SyncIcon, { fontSize: "small", sx: syncSpinSx, color: "primary" });
|
|
8804
|
-
case "error":
|
|
8805
|
-
return /* @__PURE__ */ jsx18(ErrorOutlineIcon, { fontSize: "small", color: "error" });
|
|
8806
|
-
case "idle":
|
|
8807
|
-
default:
|
|
8808
|
-
return /* @__PURE__ */ jsx18(CloudDoneIcon, { fontSize: "small", color: "success" });
|
|
8809
|
-
}
|
|
8810
|
-
})();
|
|
8811
|
-
const syncTooltip = (() => {
|
|
8812
|
-
if (isPlaygroundMode2) {
|
|
8813
|
-
return "Cloud sync is unavailable in playground mode.";
|
|
8814
|
-
}
|
|
8815
|
-
if (!syncEnabled) {
|
|
8816
|
-
return "Cloud sync is disabled. Enable it from Management > Preferences.";
|
|
8817
|
-
}
|
|
8818
|
-
let base;
|
|
8819
|
-
if (oversizedConversations.length > 0) {
|
|
8820
|
-
base = "Some conversations are too large for Bandit Cloud. Start a new conversation to keep syncing.";
|
|
8821
|
-
} else if (syncStatus === "syncing") {
|
|
8822
|
-
base = "Syncing changes to Bandit Cloud\u2026";
|
|
8823
|
-
} else if (warningConversations.length > 0) {
|
|
8824
|
-
base = "Conversations are nearing the Bandit Cloud limit. Consider starting a new one soon.";
|
|
8825
|
-
} else if (syncStatus === "error") {
|
|
8826
|
-
base = "Sync needs attention. Visit Management > Preferences for details.";
|
|
8827
|
-
} else {
|
|
8828
|
-
base = "Conversations are in sync with Bandit Cloud.";
|
|
8829
|
-
}
|
|
8830
|
-
const pending = pendingCount > 0 ? ` ${pendingCount} change${pendingCount === 1 ? "" : "s"} queued.` : "";
|
|
8831
|
-
const last = lastSyncAt ? ` Last sync ${new Date(lastSyncAt).toLocaleTimeString()}.` : "";
|
|
8832
|
-
return `${base}${pending}${last}`;
|
|
8833
|
-
})();
|
|
8834
|
-
const syncButtonDisabled = isPlaygroundMode2 || !syncEnabled;
|
|
8835
|
-
const handleSyncBadgeClick = () => {
|
|
8836
|
-
if (isPlaygroundMode2 || !syncEnabled || syncStatus === "syncing") {
|
|
8837
|
-
return;
|
|
8838
|
-
}
|
|
8839
|
-
void triggerSync({ force: true });
|
|
8840
|
-
};
|
|
8841
8856
|
const { hasTTS, hasSTT, isAdmin, getCurrentTier, hasLimitedAdminDashboard, isSubscribed } = useFeatures();
|
|
8842
8857
|
const { showVoiceControls, showLimitedAdminPanel } = useFeatureVisibility();
|
|
8843
8858
|
const frontierEligible = (() => {
|
|
@@ -8888,37 +8903,6 @@ var ChatAppBar = ({
|
|
|
8888
8903
|
useEngineStore.getState().fetchEngines();
|
|
8889
8904
|
}, []);
|
|
8890
8905
|
const pendingModelAvatar = useModelStore.getState().availableModels.find((m) => m.name === pendingModel)?.avatarBase64 || modelAvatars[pendingModel || ""] || banditHead;
|
|
8891
|
-
const resolvedHomeUrl = preferences.homeUrl?.trim() || packageSettings?.homeUrl?.trim() || "";
|
|
8892
|
-
const homeTooltip = (() => {
|
|
8893
|
-
if (!resolvedHomeUrl) return "Home";
|
|
8894
|
-
try {
|
|
8895
|
-
return `Home (${new URL(resolvedHomeUrl).hostname})`;
|
|
8896
|
-
} catch {
|
|
8897
|
-
return "Home";
|
|
8898
|
-
}
|
|
8899
|
-
})();
|
|
8900
|
-
function goToHome() {
|
|
8901
|
-
if (resolvedHomeUrl) {
|
|
8902
|
-
window.location.href = resolvedHomeUrl;
|
|
8903
|
-
return;
|
|
8904
|
-
}
|
|
8905
|
-
if (typeof window !== "undefined") {
|
|
8906
|
-
const navigatorWithStandalone = window.navigator;
|
|
8907
|
-
const isStandalone = window.matchMedia?.("(display-mode: standalone)").matches || navigatorWithStandalone.standalone === true;
|
|
8908
|
-
if (isStandalone) {
|
|
8909
|
-
try {
|
|
8910
|
-
sessionStorage.setItem("banditPwaStayOnHome", "true");
|
|
8911
|
-
} catch (error) {
|
|
8912
|
-
debugLogger.warn("[chat-app-bar] Unable to persist home preference", {
|
|
8913
|
-
error: error instanceof Error ? error.message : String(error)
|
|
8914
|
-
});
|
|
8915
|
-
}
|
|
8916
|
-
safeNavigate("/?mode=home");
|
|
8917
|
-
return;
|
|
8918
|
-
}
|
|
8919
|
-
}
|
|
8920
|
-
safeNavigate("/");
|
|
8921
|
-
}
|
|
8922
8906
|
return /* @__PURE__ */ jsxs15(Fragment10, { children: [
|
|
8923
8907
|
/* @__PURE__ */ jsxs15(
|
|
8924
8908
|
Box15,
|
|
@@ -9045,72 +9029,6 @@ var ChatAppBar = ({
|
|
|
9045
9029
|
}
|
|
9046
9030
|
},
|
|
9047
9031
|
children: [
|
|
9048
|
-
/* @__PURE__ */ jsx18(Tooltip5, { title: homeTooltip, arrow: true, children: /* @__PURE__ */ jsx18(
|
|
9049
|
-
IconButton12,
|
|
9050
|
-
{
|
|
9051
|
-
onClick: goToHome,
|
|
9052
|
-
sx: pillButtonStyles,
|
|
9053
|
-
"aria-label": "Go to home page",
|
|
9054
|
-
children: /* @__PURE__ */ jsx18(HomeIcon, {})
|
|
9055
|
-
}
|
|
9056
|
-
) }),
|
|
9057
|
-
showLimitedAdminPanel() && /* @__PURE__ */ jsx18(Tooltip5, { title: "Management & Settings", arrow: true, children: /* @__PURE__ */ jsx18(
|
|
9058
|
-
IconButton12,
|
|
9059
|
-
{
|
|
9060
|
-
onClick: () => safeNavigate(managementPath),
|
|
9061
|
-
sx: {
|
|
9062
|
-
...pillButtonStyles,
|
|
9063
|
-
...typeof window !== "undefined" && window.location.pathname === managementPath && {
|
|
9064
|
-
bgcolor: theme.palette.primary.main + "20",
|
|
9065
|
-
color: theme.palette.primary.main
|
|
9066
|
-
}
|
|
9067
|
-
},
|
|
9068
|
-
"aria-label": "Open management settings",
|
|
9069
|
-
children: /* @__PURE__ */ jsx18(SettingsIcon, {})
|
|
9070
|
-
}
|
|
9071
|
-
) }),
|
|
9072
|
-
/* @__PURE__ */ jsx18(Tooltip5, { title: syncTooltip, arrow: true, children: /* @__PURE__ */ jsxs15(
|
|
9073
|
-
IconButton12,
|
|
9074
|
-
{
|
|
9075
|
-
onClick: handleSyncBadgeClick,
|
|
9076
|
-
disabled: syncButtonDisabled,
|
|
9077
|
-
sx: {
|
|
9078
|
-
...pillButtonStyles,
|
|
9079
|
-
color: syncButtonDisabled ? theme.palette.action.disabled : theme.palette.primary.main,
|
|
9080
|
-
bgcolor: syncButtonDisabled ? "transparent" : syncStatus === "error" ? theme.palette.error.main + "20" : theme.palette.primary.main + "12",
|
|
9081
|
-
"&:hover": syncButtonDisabled ? {} : {
|
|
9082
|
-
bgcolor: syncStatus === "error" ? theme.palette.error.main + "30" : theme.palette.primary.main + "20"
|
|
9083
|
-
}
|
|
9084
|
-
},
|
|
9085
|
-
"aria-label": "Conversation sync status",
|
|
9086
|
-
children: [
|
|
9087
|
-
syncIndicatorIcon,
|
|
9088
|
-
pendingCount > 0 && !syncButtonDisabled && syncStatus !== "syncing" && /* @__PURE__ */ jsx18(
|
|
9089
|
-
Box15,
|
|
9090
|
-
{
|
|
9091
|
-
sx: {
|
|
9092
|
-
position: "absolute",
|
|
9093
|
-
top: -2,
|
|
9094
|
-
right: -2,
|
|
9095
|
-
minWidth: 16,
|
|
9096
|
-
height: 16,
|
|
9097
|
-
px: 0.3,
|
|
9098
|
-
bgcolor: theme.palette.warning.main,
|
|
9099
|
-
color: theme.palette.getContrastText(theme.palette.warning.main),
|
|
9100
|
-
borderRadius: "999px",
|
|
9101
|
-
display: "flex",
|
|
9102
|
-
alignItems: "center",
|
|
9103
|
-
justifyContent: "center",
|
|
9104
|
-
fontSize: "0.6rem",
|
|
9105
|
-
fontWeight: 600,
|
|
9106
|
-
border: `2px solid ${background}`
|
|
9107
|
-
},
|
|
9108
|
-
children: pendingCount > 9 ? "9+" : pendingCount
|
|
9109
|
-
}
|
|
9110
|
-
)
|
|
9111
|
-
]
|
|
9112
|
-
}
|
|
9113
|
-
) }),
|
|
9114
9032
|
!isMobile && /* @__PURE__ */ jsx18(Tooltip5, { title: `${drawerOpen ? "Close" : "Open"} Conversations`, arrow: true, children: /* @__PURE__ */ jsxs15(
|
|
9115
9033
|
IconButton12,
|
|
9116
9034
|
{
|
|
@@ -9125,7 +9043,7 @@ var ChatAppBar = ({
|
|
|
9125
9043
|
"aria-label": `${drawerOpen ? "Close" : "Open"} conversations drawer`,
|
|
9126
9044
|
"aria-pressed": drawerOpen,
|
|
9127
9045
|
children: [
|
|
9128
|
-
|
|
9046
|
+
/* @__PURE__ */ jsx18(PanelLeftIcon, {}),
|
|
9129
9047
|
conversations.length > 0 && /* @__PURE__ */ jsx18(
|
|
9130
9048
|
Box15,
|
|
9131
9049
|
{
|
|
@@ -11300,13 +11218,18 @@ var ChatContent = () => {
|
|
|
11300
11218
|
left: drawerOpen && !isMobile ? "340px" : 0,
|
|
11301
11219
|
width: !isMobile && canvasOpen ? `calc(100vw - ${drawerOpen ? "340px" : "0px"} - ${CANVAS_WIDTH})` : drawerOpen && !isMobile ? "calc(100vw - 340px)" : "100vw",
|
|
11302
11220
|
zIndex: 0,
|
|
11303
|
-
// Claude
|
|
11304
|
-
//
|
|
11305
|
-
//
|
|
11306
|
-
//
|
|
11307
|
-
|
|
11308
|
-
|
|
11309
|
-
|
|
11221
|
+
// Claude-style push (mobile only; desktop stays flush): the chat
|
|
11222
|
+
// shell slides right and shrinks slightly into a rounded card. The
|
|
11223
|
+
// scale insets the card from every screen edge so all four rounded
|
|
11224
|
+
// corners stay visible — a full-height 100dvh card had its bottom
|
|
11225
|
+
// corners clipped at the device edge in the PWA. Width kept in sync
|
|
11226
|
+
// with the drawer in enhanced-mobile-conversations-modal.tsx.
|
|
11227
|
+
transform: isMobile && mobileConversationsOpen ? "translateX(min(calc(100vw - 56px), 360px)) scale(0.96)" : "none",
|
|
11228
|
+
borderRadius: isMobile && mobileConversationsOpen ? "24px" : 0,
|
|
11229
|
+
// Hairline border so the rounded card reads even when the backdrop
|
|
11230
|
+
// is the same near-black as the shell.
|
|
11231
|
+
border: isMobile && mobileConversationsOpen ? `1px solid ${theme.palette.mode === "dark" ? "rgba(255,255,255,0.14)" : "rgba(0,0,0,0.12)"}` : "none",
|
|
11232
|
+
boxShadow: isMobile && mobileConversationsOpen ? `0 12px 40px ${theme.palette.mode === "dark" ? "rgba(0,0,0,0.55)" : "rgba(0,0,0,0.25)"}` : "none",
|
|
11310
11233
|
transition: "left 0.3s ease-in-out, width 0.3s ease-in-out, transform 0.3s ease-in-out, border-radius 0.3s ease-in-out"
|
|
11311
11234
|
}),
|
|
11312
11235
|
children: [
|
|
@@ -11575,4 +11498,4 @@ var chat_default = Chat;
|
|
|
11575
11498
|
export {
|
|
11576
11499
|
chat_default
|
|
11577
11500
|
};
|
|
11578
|
-
//# sourceMappingURL=chunk-
|
|
11501
|
+
//# sourceMappingURL=chunk-QPZC6GTA.mjs.map
|