@burtson-labs/bandit-engine 2.0.137 → 2.0.139

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.
@@ -9776,7 +9776,7 @@ var MCPToolsTabV2_default = MCPToolsTabV2;
9776
9776
 
9777
9777
  // src/management/management.tsx
9778
9778
  import { jsx as jsx14, jsxs as jsxs14 } from "react/jsx-runtime";
9779
- var preloadChatPage = () => import("./chat-REZJEBRK.mjs");
9779
+ var preloadChatPage = () => import("./chat-KR4S7YJ3.mjs");
9780
9780
  var buildCapabilitiesUrl = (gatewayApiUrl) => {
9781
9781
  const trimmed = gatewayApiUrl.replace(/\/$/, "");
9782
9782
  if (trimmed.endsWith("/api")) {
@@ -11149,4 +11149,4 @@ export {
11149
11149
  useGatewayMemory,
11150
11150
  management_default
11151
11151
  };
11152
- //# sourceMappingURL=chunk-2L5DC4OI.mjs.map
11152
+ //# sourceMappingURL=chunk-S7W2AAFG.mjs.map
package/dist/index.js CHANGED
@@ -26040,8 +26040,10 @@ var init_enhanced_mobile_conversations_modal = __esm({
26040
26040
  // Keep in sync with MOBILE_CONVERSATIONS_DRAWER_WIDTH in chat.tsx
26041
26041
  // (the chat shell translates by the same amount).
26042
26042
  width: "min(calc(100vw - 56px), 360px)",
26043
- // top/bottom stretch instead of 100dvh — iOS standalone
26044
- // under-reports dvh, leaving a dead band above the home bar.
26043
+ // Explicit 100lvh overflows iOS standalone's under-reported
26044
+ // viewport downward — bottom-anchoring alone stops short.
26045
+ height: "100dvh",
26046
+ "@supports (height: 100lvh)": { height: "100lvh" },
26045
26047
  bgcolor: theme.palette.background.paper,
26046
26048
  display: "flex",
26047
26049
  flexDirection: "column",
@@ -31620,18 +31622,20 @@ var init_chat2 = __esm({
31620
31622
  sx: (theme) => ({
31621
31623
  display: "flex",
31622
31624
  flexDirection: "column",
31623
- // Stretch via top/bottom instead of 100dvh — the iOS standalone
31624
- // webview under-reports dvh and left a dead band above the home
31625
- // indicator; inset-stretched fixed elements get the real viewport.
31625
+ // iOS standalone under-reports both dvh AND the fixed-position
31626
+ // containing block, stranding a dead band above the home bar.
31627
+ // An explicit 100lvh height can overflow that short viewport
31628
+ // downward, which bottom-anchoring cannot.
31626
31629
  overflow: "hidden",
31627
31630
  bgcolor: theme.palette.chat.shell,
31628
31631
  color: theme.palette.text.primary,
31629
31632
  position: "fixed",
31630
31633
  top: 0,
31631
31634
  bottom: 0,
31635
+ height: "100dvh",
31636
+ "@supports (height: 100lvh)": { height: "100lvh" },
31632
31637
  left: drawerOpen && !isMobile ? "340px" : 0,
31633
31638
  width: !isMobile && canvasOpen ? `calc(100vw - ${drawerOpen ? "340px" : "0px"} - ${CANVAS_WIDTH})` : drawerOpen && !isMobile ? "calc(100vw - 340px)" : "100vw",
31634
- zIndex: 0,
31635
31639
  // Claude-style push (mobile only; desktop stays flush): the chat
31636
31640
  // shell slides right as a full-height rounded card — exactly like
31637
31641
  // Claude iOS, where the card runs edge-to-edge vertically and the
@@ -31642,15 +31646,20 @@ var init_chat2 = __esm({
31642
31646
  // status area, the bottom stays flush with the screen edge, and the
31643
31647
  // motion reads as the native sheet-behind effect instead of the
31644
31648
  // content lurching downward.
31645
- transform: isMobile && mobileConversationsOpen ? "translateX(min(calc(100vw - 56px), 360px)) scale(0.93)" : "none",
31649
+ // Slides 12px OVER the drawer's edge (not edge-to-edge) and rides
31650
+ // above it in z-order, so the card's shadow falls on the drawer —
31651
+ // the overlapped-sheet look.
31652
+ transform: isMobile && mobileConversationsOpen ? "translateX(calc(min(calc(100vw - 56px), 360px) - 12px)) scale(0.93)" : "none",
31646
31653
  transformOrigin: "left bottom",
31647
31654
  borderRadius: isMobile && mobileConversationsOpen ? "36px" : 0,
31655
+ zIndex: isMobile && mobileConversationsOpen ? theme.zIndex.modal + 1 : 0,
31648
31656
  // Hairline border so the rounded card reads even when the backdrop
31649
31657
  // is the same near-black as the shell.
31650
31658
  border: isMobile && mobileConversationsOpen ? `1px solid ${theme.palette.mode === "dark" ? "rgba(255,255,255,0.14)" : "rgba(0,0,0,0.12)"}` : "none",
31651
31659
  boxShadow: isMobile && mobileConversationsOpen ? `0 12px 40px ${theme.palette.mode === "dark" ? "rgba(0,0,0,0.55)" : "rgba(0,0,0,0.25)"}` : "none",
31652
31660
  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"
31653
31661
  }),
31662
+ onClick: isMobile && mobileConversationsOpen ? () => setMobileConversationsOpen(false) : void 0,
31654
31663
  children: [
31655
31664
  /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
31656
31665
  chat_app_bar_default,
@@ -31667,14 +31676,14 @@ var init_chat2 = __esm({
31667
31676
  }
31668
31677
  ),
31669
31678
  isTemporaryChat && /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
31670
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
31679
+ !isMobile && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
31671
31680
  import_material33.Box,
31672
31681
  {
31673
31682
  sx: (theme) => ({
31674
31683
  position: "absolute",
31675
- inset: isMobile ? "3px" : 0,
31684
+ inset: 0,
31676
31685
  border: `3px solid ${theme.palette.mode === "dark" ? "rgba(255,255,255,0.55)" : "rgba(0,0,0,0.45)"}`,
31677
- borderRadius: isMobile ? "28px" : "inherit",
31686
+ borderRadius: "inherit",
31678
31687
  zIndex: 1400,
31679
31688
  pointerEvents: "none"
31680
31689
  })
@@ -31685,7 +31694,9 @@ var init_chat2 = __esm({
31685
31694
  {
31686
31695
  sx: (theme) => ({
31687
31696
  position: "absolute",
31688
- top: `calc(${theme.spacing(8)} + env(safe-area-inset-top, 0px))`,
31697
+ // Mobile: centered in the top-bar row between the two pills
31698
+ // (Claude's "Incognito chat" placement); desktop: below the bar.
31699
+ top: isMobile ? "calc(env(safe-area-inset-top, 0px) + 14px)" : `calc(${theme.spacing(8)} + env(safe-area-inset-top, 0px))`,
31689
31700
  left: "50%",
31690
31701
  transform: "translateX(-50%)",
31691
31702
  zIndex: 1401,
@@ -31694,14 +31705,15 @@ var init_chat2 = __esm({
31694
31705
  gap: 0.75,
31695
31706
  pl: 1.5,
31696
31707
  pr: 0.75,
31697
- py: 0.4,
31708
+ py: 0.6,
31698
31709
  borderRadius: 999,
31699
- fontSize: "0.78rem",
31700
- fontWeight: 600,
31701
- color: theme.palette.text.primary,
31702
- bgcolor: theme.palette.mode === "dark" ? "rgba(255,255,255,0.12)" : "rgba(0,0,0,0.08)",
31703
- border: `1px solid ${theme.palette.divider}`,
31704
- backdropFilter: "blur(8px)",
31710
+ fontSize: "0.82rem",
31711
+ fontWeight: 700,
31712
+ // Inverted, high-contrast — same treatment as the active
31713
+ // ghost toggle, so the mode is unmissable without a frame.
31714
+ color: theme.palette.getContrastText(theme.palette.text.primary),
31715
+ bgcolor: theme.palette.text.primary,
31716
+ boxShadow: `0 4px 16px ${theme.palette.mode === "dark" ? "rgba(0,0,0,0.5)" : "rgba(0,0,0,0.25)"}`,
31705
31717
  whiteSpace: "nowrap"
31706
31718
  }),
31707
31719
  children: [
@@ -31718,21 +31730,22 @@ var init_chat2 = __esm({
31718
31730
  display: "inline-flex",
31719
31731
  alignItems: "center",
31720
31732
  justifyContent: "center",
31721
- width: 20,
31722
- height: 20,
31733
+ width: 22,
31734
+ height: 22,
31723
31735
  ml: 0.25,
31724
31736
  p: 0,
31725
31737
  border: "none",
31726
31738
  borderRadius: "50%",
31727
31739
  cursor: "pointer",
31728
- color: theme.palette.text.secondary,
31740
+ color: "inherit",
31729
31741
  bgcolor: "transparent",
31730
31742
  font: "inherit",
31731
- fontSize: "0.85rem",
31743
+ fontSize: "0.9rem",
31732
31744
  lineHeight: 1,
31745
+ opacity: 0.75,
31733
31746
  "&:hover": {
31734
- bgcolor: theme.palette.mode === "dark" ? "rgba(255,255,255,0.15)" : "rgba(0,0,0,0.1)",
31735
- color: theme.palette.text.primary
31747
+ opacity: 1,
31748
+ bgcolor: theme.palette.mode === "dark" ? "rgba(0,0,0,0.12)" : "rgba(255,255,255,0.2)"
31736
31749
  }
31737
31750
  }),
31738
31751
  children: "\u2715"
@@ -31755,7 +31768,10 @@ var init_chat2 = __esm({
31755
31768
  px: isMobile ? 1 : 2,
31756
31769
  // Reduce padding on mobile for better width utilization
31757
31770
  pb: logoOnly ? 0 : `${inputHeight + 24}px`,
31758
- maxHeight: isMobile ? "calc(var(--vh, 1vh) * 100)" : "100%",
31771
+ // The flex column already bounds this; the old --vh cap (from
31772
+ // window.innerHeight) under-measured in iOS standalone and let
31773
+ // the composer's auto margins float it above the bottom.
31774
+ maxHeight: "100%",
31759
31775
  WebkitOverflowScrolling: "touch",
31760
31776
  overscrollBehavior: "contain",
31761
31777
  position: "relative",
@@ -31881,7 +31897,7 @@ var init_chat2 = __esm({
31881
31897
  display: "flex",
31882
31898
  flexDirection: "column",
31883
31899
  alignItems: "center",
31884
- margin: "auto",
31900
+ margin: "0 auto",
31885
31901
  width: "100vw",
31886
31902
  maxWidth: "768px"
31887
31903
  },