@burtson-labs/bandit-engine 2.0.146 → 2.0.148

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  chat_default
3
- } from "./chunk-PHUOR6GB.mjs";
3
+ } from "./chunk-NCZX5YKN.mjs";
4
4
  import {
5
5
  chat_provider_default
6
6
  } from "./chunk-PU74BI6Y.mjs";
@@ -10,7 +10,7 @@ import {
10
10
  useGatewayHealth,
11
11
  useGatewayMemory,
12
12
  useGatewayModels
13
- } from "./chunk-EJYWNSUW.mjs";
13
+ } from "./chunk-3ADU3BFL.mjs";
14
14
  import "./chunk-P5IJLX6I.mjs";
15
15
  import "./chunk-F7JXIW6T.mjs";
16
16
  import "./chunk-K2JGFKEB.mjs";
@@ -28047,47 +28047,27 @@ var init_enhanced_mobile_conversations_modal = __esm({
28047
28047
  }
28048
28048
  }
28049
28049
  ),
28050
- syncEnabled && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
28051
- import_material47.IconButton,
28050
+ syncEnabled && syncStatus === "syncing" && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
28051
+ import_material47.Box,
28052
28052
  {
28053
- onClick: () => {
28054
- if (syncStatus !== "syncing") void runSync({ force: true });
28055
- },
28056
- "aria-label": "Sync conversations",
28053
+ component: "span",
28057
28054
  sx: {
28058
- color: syncStatus === "error" ? theme.palette.error.main : theme.palette.text.secondary,
28059
- ...syncStatus === "syncing" && {
28060
- animation: "bandit-sync-spin 1s linear infinite",
28061
- "@keyframes bandit-sync-spin": {
28062
- "0%": { transform: "rotate(0deg)" },
28063
- "100%": { transform: "rotate(360deg)" }
28064
- }
28055
+ display: "inline-flex",
28056
+ mr: 0.5,
28057
+ animation: "bandit-sync-spin 1s linear infinite",
28058
+ "@keyframes bandit-sync-spin": {
28059
+ "0%": { transform: "rotate(0deg)" },
28060
+ "100%": { transform: "rotate(360deg)" }
28065
28061
  }
28066
28062
  },
28067
- children: syncStatus === "error" ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.CircleAlert, {}) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.RefreshCw, {})
28068
- }
28069
- ),
28070
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
28071
- import_material47.IconButton,
28072
- {
28073
- onClick: () => setMemoryModalOpen(true),
28074
- "aria-label": "Memory",
28075
- sx: { color: theme.palette.text.secondary },
28076
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.Brain, {})
28077
- }
28078
- ),
28079
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
28080
- import_material47.IconButton,
28081
- {
28082
- onClick: () => setProjectManagementOpen(true),
28083
- sx: { color: theme.palette.text.secondary },
28084
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.Folder, {})
28063
+ children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.RefreshCw, { size: 18, color: theme.palette.text.secondary })
28085
28064
  }
28086
28065
  ),
28087
28066
  /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
28088
28067
  import_material47.IconButton,
28089
28068
  {
28090
28069
  onClick: handleMenuOpen,
28070
+ "aria-label": "Conversation options",
28091
28071
  sx: { color: theme.palette.text.secondary },
28092
28072
  children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.MoreVertical, {})
28093
28073
  }
@@ -28616,46 +28596,27 @@ var init_enhanced_mobile_conversations_modal = __esm({
28616
28596
  children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.SlidersHorizontal, { size: 16 })
28617
28597
  }
28618
28598
  ),
28619
- user2 && /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_jsx_runtime47.Fragment, { children: [
28620
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
28621
- import_material47.Box,
28622
- {
28623
- sx: {
28624
- flexShrink: 0,
28625
- display: "flex",
28626
- alignItems: "center",
28627
- justifyContent: "center",
28628
- width: 30,
28629
- height: 30,
28630
- borderRadius: "50%",
28631
- border: `1px solid ${(0, import_styles31.alpha)(theme.palette.divider, 0.8)}`,
28632
- color: theme.palette.text.secondary
28633
- },
28634
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.Settings, { size: 16 })
28635
- }
28636
- ),
28637
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
28638
- import_material47.IconButton,
28639
- {
28640
- "aria-label": "Sign out",
28641
- title: "Sign out",
28642
- onClick: (event) => {
28643
- event.stopPropagation();
28644
- authenticationService.clearToken();
28645
- window.location.href = "/login";
28646
- },
28647
- sx: {
28648
- flexShrink: 0,
28649
- width: 30,
28650
- height: 30,
28651
- border: `1px solid ${(0, import_styles31.alpha)(theme.palette.error.main, 0.4)}`,
28652
- color: theme.palette.error.main,
28653
- "&:hover": { bgcolor: (0, import_styles31.alpha)(theme.palette.error.main, 0.1) }
28654
- },
28655
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.LogOut, { size: 16 })
28656
- }
28657
- )
28658
- ] })
28599
+ user2 && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_jsx_runtime47.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
28600
+ import_material47.IconButton,
28601
+ {
28602
+ "aria-label": "Sign out",
28603
+ title: "Sign out",
28604
+ onClick: (event) => {
28605
+ event.stopPropagation();
28606
+ authenticationService.clearToken();
28607
+ window.location.href = "/login";
28608
+ },
28609
+ sx: {
28610
+ flexShrink: 0,
28611
+ width: 30,
28612
+ height: 30,
28613
+ border: `1px solid ${(0, import_styles31.alpha)(theme.palette.error.main, 0.4)}`,
28614
+ color: theme.palette.error.main,
28615
+ "&:hover": { bgcolor: (0, import_styles31.alpha)(theme.palette.error.main, 0.1) }
28616
+ },
28617
+ children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.LogOut, { size: 16 })
28618
+ }
28619
+ ) })
28659
28620
  ]
28660
28621
  }
28661
28622
  )
@@ -28681,7 +28642,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
28681
28642
  currentProjectId: conversationToMove.projectId
28682
28643
  }
28683
28644
  ),
28684
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
28645
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
28685
28646
  import_material47.Menu,
28686
28647
  {
28687
28648
  anchorEl: menuAnchorEl,
@@ -28695,21 +28656,62 @@ var init_enhanced_mobile_conversations_modal = __esm({
28695
28656
  vertical: "bottom",
28696
28657
  horizontal: "right"
28697
28658
  },
28698
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
28699
- import_material47.MenuItem,
28700
- {
28701
- onClick: () => {
28702
- setClearConfirmOpen(true);
28703
- handleMenuClose();
28704
- },
28705
- disabled: visibleConversationCount === 0,
28706
- sx: { color: theme.palette.error.main },
28707
- children: [
28708
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_material47.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.Trash2, { size: 16, color: theme.palette.error.main }) }),
28709
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_material47.ListItemText, { children: "Clear All Conversations" })
28710
- ]
28711
- }
28712
- )
28659
+ children: [
28660
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
28661
+ import_material47.MenuItem,
28662
+ {
28663
+ onClick: () => {
28664
+ setMemoryModalOpen(true);
28665
+ handleMenuClose();
28666
+ },
28667
+ children: [
28668
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_material47.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.Brain, { size: 16 }) }),
28669
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_material47.ListItemText, { children: "Memories" })
28670
+ ]
28671
+ }
28672
+ ),
28673
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
28674
+ import_material47.MenuItem,
28675
+ {
28676
+ onClick: () => {
28677
+ setProjectManagementOpen(true);
28678
+ handleMenuClose();
28679
+ },
28680
+ children: [
28681
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_material47.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.Folder, { size: 16 }) }),
28682
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_material47.ListItemText, { children: "Manage projects" })
28683
+ ]
28684
+ }
28685
+ ),
28686
+ syncEnabled && /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
28687
+ import_material47.MenuItem,
28688
+ {
28689
+ onClick: () => {
28690
+ if (syncStatus !== "syncing") void runSync({ force: true });
28691
+ handleMenuClose();
28692
+ },
28693
+ children: [
28694
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_material47.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.RefreshCw, { size: 16 }) }),
28695
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_material47.ListItemText, { children: "Sync now" })
28696
+ ]
28697
+ }
28698
+ ),
28699
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
28700
+ import_material47.MenuItem,
28701
+ {
28702
+ onClick: () => {
28703
+ setClearConfirmOpen(true);
28704
+ handleMenuClose();
28705
+ },
28706
+ disabled: visibleConversationCount === 0,
28707
+ sx: { color: theme.palette.error.main },
28708
+ children: [
28709
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_material47.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.Trash2, { size: 16, color: theme.palette.error.main }) }),
28710
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_material47.ListItemText, { children: "Clear All Conversations" })
28711
+ ]
28712
+ }
28713
+ )
28714
+ ]
28713
28715
  }
28714
28716
  ),
28715
28717
  /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
@@ -31136,12 +31138,14 @@ var init_chat2 = __esm({
31136
31138
  // status area, the bottom stays flush with the screen edge, and the
31137
31139
  // motion reads as the native sheet-behind effect instead of the
31138
31140
  // content lurching downward.
31139
- // Slides 12px OVER the drawer's edge (not edge-to-edge) and rides
31140
- // above it in z-order, so the card's shadow falls on the drawer —
31141
- // the overlapped-sheet look.
31142
- transform: isMobile && mobileConversationsOpen ? "translateX(calc(min(calc(100vw - 56px), 360px) - 12px)) scale(0.93)" : "none",
31143
- transformOrigin: "left bottom",
31144
- borderRadius: isMobile && mobileConversationsOpen ? "36px" : 0,
31141
+ // Full-height card sliding 12px OVER the drawer's edge, riding
31142
+ // above it in z-order so its shadow falls on the drawer. No scale:
31143
+ // the card runs flush top-to-bottom of the webview, and because
31144
+ // the OS status strip above is painted the same surface tone, it
31145
+ // reads as full physical height with the rounded corner visible
31146
+ // where it overlaps the drawer.
31147
+ transform: isMobile && mobileConversationsOpen ? "translateX(calc(min(calc(100vw - 56px), 360px) - 12px))" : "none",
31148
+ borderRadius: isMobile && mobileConversationsOpen ? "44px" : 0,
31145
31149
  zIndex: isMobile && mobileConversationsOpen ? theme.zIndex.modal + 1 : 0,
31146
31150
  // Hairline border so the rounded card reads even when the backdrop
31147
31151
  // is the same near-black as the shell.