@burtson-labs/bandit-engine 2.0.62 → 2.0.63

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.
@@ -24,7 +24,7 @@ import {
24
24
  useNotificationService,
25
25
  useTTS,
26
26
  useVoiceStore
27
- } from "./chunk-5WQMMCZQ.mjs";
27
+ } from "./chunk-NCMSNXB2.mjs";
28
28
  import {
29
29
  brandingService_default,
30
30
  toTitleCase,
@@ -2803,4 +2803,4 @@ export {
2803
2803
  MAX_WINDOWED_HEIGHT,
2804
2804
  chat_modal_default
2805
2805
  };
2806
- //# sourceMappingURL=chunk-PY7A3J5T.mjs.map
2806
+ //# sourceMappingURL=chunk-UQ4VQSWS.mjs.map
package/dist/index.js CHANGED
@@ -13559,7 +13559,7 @@ var init_ai_response_action_bar = __esm({
13559
13559
  });
13560
13560
 
13561
13561
  // src/modals/chat-modal/ai-response-text-field.tsx
13562
- var import_react15, import_styles4, import_react_markdown, import_remark_gfm, import_rehype_raw, import_rehype_sanitize2, import_material8, import_jsx_runtime11, brainIcon, avatarFilenames, banditHead2, resolveAvatar2, normalizeTables, isNonEmptyString, toDateSafe, toNumberArray, MarkdownCodeBlock, AIResponseTextField, ai_response_text_field_default;
13562
+ var import_react15, import_styles4, import_react_markdown, import_remark_gfm, import_rehype_raw, import_rehype_sanitize2, import_material8, import_jsx_runtime11, brainIcon, normalizeTables, isNonEmptyString, toDateSafe, toNumberArray, MarkdownCodeBlock, AIResponseTextField, ai_response_text_field_default;
13563
13563
  var init_ai_response_text_field = __esm({
13564
13564
  "src/modals/chat-modal/ai-response-text-field.tsx"() {
13565
13565
  "use strict";
@@ -13574,33 +13574,12 @@ var init_ai_response_text_field = __esm({
13574
13574
  import_rehype_sanitize2 = __toESM(require("rehype-sanitize"));
13575
13575
  init_debugLogger();
13576
13576
  import_material8 = require("@mui/material");
13577
- init_modelStore();
13578
13577
  init_lowlight();
13579
13578
  init_markdownRendering();
13580
13579
  init_lucide_icons();
13581
13580
  init_ai_response_action_bar();
13582
- init_brandingService();
13583
13581
  import_jsx_runtime11 = require("react/jsx-runtime");
13584
13582
  brainIcon = "https://cdn.burtson.ai/images/brain-icon.png";
13585
- avatarFilenames = {
13586
- "Bandit-Core": "core-avatar.png",
13587
- "Bandit-Muse": "muse-avatar.png",
13588
- "Bandit-Logic": "logic-avatar.png",
13589
- "Bandit-D1VA": "d1va-avatar.png",
13590
- "Bandit-Exec": "exec-avatar.png",
13591
- "default": "bandit-head.png"
13592
- };
13593
- banditHead2 = `https://cdn.burtson.ai/images/bandit-head.png`;
13594
- resolveAvatar2 = (selectedModel) => {
13595
- const model = useModelStore.getState().availableModels.find(
13596
- (m) => m.name === selectedModel
13597
- );
13598
- if (model?.avatarBase64) {
13599
- return model.avatarBase64;
13600
- }
13601
- const avatarFilename = avatarFilenames[selectedModel] || avatarFilenames["default"];
13602
- return `https://cdn.burtson.ai/avatars/${avatarFilename}`;
13603
- };
13604
13583
  normalizeTables = (markdown2) => {
13605
13584
  const lines = markdown2.split("\n");
13606
13585
  const output = [];
@@ -13946,15 +13925,6 @@ var init_ai_response_text_field = __esm({
13946
13925
  const timeout3 = setTimeout(() => setShowMemoryUpdated(false), 3e3);
13947
13926
  return () => clearTimeout(timeout3);
13948
13927
  }, [memoryUpdated]);
13949
- const selectedModel = useModelStore((state) => state.selectedModel);
13950
- const [userAvatar, setUserAvatar] = (0, import_react15.useState)(banditHead2);
13951
- (0, import_react15.useEffect)(() => {
13952
- const fetchBranding = async () => {
13953
- const branding = await brandingService_default.getBranding();
13954
- setUserAvatar(branding?.logoBase64 || banditHead2);
13955
- };
13956
- fetchBranding();
13957
- }, []);
13958
13928
  const theme = (0, import_styles4.useTheme)();
13959
13929
  const chatResponse = theme.palette.chat?.response;
13960
13930
  const sanitizeMarkdown = (raw) => {
@@ -14323,283 +14293,108 @@ ${sourcesMarkdownList.join("\n")}`;
14323
14293
  alignSelf: "stretch",
14324
14294
  display: "flex",
14325
14295
  flexDirection: "column",
14326
- bgcolor: chatResponse.containerBackground,
14327
- color: chatResponse.aiText || "#fff",
14328
- p: isMobile ? 1 : 2,
14329
- borderRadius: "4px",
14330
- userSelect: "text",
14331
- border: "1px solid " + (chatResponse.aiBorder || "#ccc"),
14332
- boxShadow: "0 0 6px rgba(0,0,0,0.3)"
14296
+ color: chatResponse.aiText || theme.palette.text.primary,
14297
+ px: isMobile ? 0.5 : 2,
14298
+ py: 1,
14299
+ userSelect: "text"
14333
14300
  },
14334
14301
  children: [
14335
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
14336
- import_material8.Box,
14337
- {
14338
- sx: {
14339
- display: "flex",
14340
- flexDirection: "column",
14341
- alignItems: {
14342
- xs: "flex-start",
14343
- sm: "flex-end"
14302
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_material8.Box, { sx: { display: "flex", justifyContent: "flex-end", mb: 2.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_material8.Box, { sx: { maxWidth: { xs: "100%", sm: "85%" }, minWidth: 0 }, children: [
14303
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14304
+ import_material8.Box,
14305
+ {
14306
+ sx: {
14307
+ bgcolor: chatResponse.userBubble || (0, import_styles4.alpha)(theme.palette.common.white, 0.07),
14308
+ borderRadius: "18px",
14309
+ px: 2,
14310
+ py: 1.25,
14311
+ wordBreak: "break-word",
14312
+ whiteSpace: "pre-wrap",
14313
+ overflowWrap: "break-word"
14344
14314
  },
14345
- gap: 2,
14346
- mb: 2,
14347
- justifyContent: "flex-end"
14348
- },
14349
- children: [
14350
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
14351
- import_material8.Box,
14315
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14316
+ import_material8.Typography,
14352
14317
  {
14353
14318
  sx: {
14354
- display: "flex",
14355
- flexDirection: "column",
14356
- alignItems: "center"
14319
+ color: theme.palette.text.primary,
14320
+ lineHeight: 1.5,
14321
+ wordBreak: "break-word",
14322
+ whiteSpace: "pre-wrap"
14357
14323
  },
14358
- children: [
14359
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14360
- import_material8.Avatar,
14361
- {
14362
- alt: "You",
14363
- src: userAvatar,
14364
- sx: {
14365
- display: { xs: "none", sm: "flex" },
14366
- width: { sm: 72 },
14367
- height: { sm: 72 },
14368
- bgcolor: chatResponse.userAvatarBackground || (theme.palette.mode === "dark" ? "transparent" : "#eee"),
14369
- color: "#fff",
14370
- fontWeight: "bold",
14371
- fontSize: { sm: "1.1rem" },
14372
- border: "2px solid #a78bfa",
14373
- boxShadow: "0 0 8px rgba(167, 139, 250, 0.3)",
14374
- transform: "scaleX(1)"
14375
- }
14376
- }
14377
- ),
14378
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14379
- import_material8.Typography,
14380
- {
14381
- variant: "caption",
14382
- sx: { color: chatResponse.modelLabel || "#888", mt: 1, fontStyle: "italic" },
14383
- children: "You said"
14384
- }
14385
- )
14386
- ]
14324
+ children: question
14387
14325
  }
14388
- ),
14389
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_material8.Box, { sx: { flex: 1 }, children: [
14390
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14391
- import_material8.Box,
14392
- {
14393
- sx: {
14394
- display: "inline-block",
14395
- textAlign: "left",
14396
- bgcolor: chatResponse.userBubble || "#1f1f1f",
14397
- borderRadius: "4px",
14398
- px: isMobile ? 1 : 2,
14399
- py: 1.5,
14400
- width: isMobile ? "100%" : "fit-content",
14401
- maxWidth: "100%",
14402
- border: "1px solid " + (chatResponse.aiBorder || "#444"),
14403
- wordBreak: "break-word",
14404
- whiteSpace: "pre-wrap",
14405
- overflowWrap: "break-word",
14406
- mt: { xs: 0.5, sm: 0.25 }
14407
- },
14408
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14409
- import_material8.Typography,
14410
- {
14411
- sx: {
14412
- color: chatResponse.userText || "#6C9AC5",
14413
- fontStyle: "italic",
14414
- wordBreak: "break-word",
14415
- whiteSpace: "pre-wrap"
14416
- },
14417
- children: question
14418
- }
14419
- )
14420
- }
14421
- ),
14422
- images && images.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_material8.Box, { sx: { display: "flex", gap: 1, mt: 1, flexWrap: "wrap" }, children: images.map((img, i) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14423
- import_material8.Avatar,
14424
- {
14425
- src: img,
14426
- variant: "rounded",
14427
- onClick: () => setOpenImage(img),
14428
- sx: {
14429
- width: 64,
14430
- height: 64,
14431
- borderRadius: 2,
14432
- cursor: "pointer",
14433
- "&:hover": { boxShadow: `0 0 0 2px ${theme.palette.primary.main}` }
14434
- }
14435
- },
14436
- i
14437
- )) })
14438
- ] })
14439
- ]
14440
- }
14441
- ),
14442
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_material8.Box, { sx: { borderBottom: `1px solid ${theme.palette.divider}`, my: 2 } }),
14443
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
14444
- import_material8.Box,
14445
- {
14446
- sx: {
14447
- display: "flex",
14448
- flexDirection: "column",
14449
- alignItems: {
14450
- xs: "center",
14451
- sm: "flex-start"
14452
- },
14453
- gap: 2,
14454
- mb: 2
14326
+ )
14327
+ }
14328
+ ),
14329
+ images && images.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_material8.Box, { sx: { display: "flex", gap: 1, mt: 1, flexWrap: "wrap", justifyContent: "flex-end" }, children: images.map((img, i) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14330
+ import_material8.Avatar,
14331
+ {
14332
+ src: img,
14333
+ variant: "rounded",
14334
+ onClick: () => setOpenImage(img),
14335
+ sx: {
14336
+ width: 64,
14337
+ height: 64,
14338
+ borderRadius: 2,
14339
+ cursor: "pointer",
14340
+ "&:hover": { boxShadow: `0 0 0 2px ${theme.palette.primary.main}` }
14341
+ }
14455
14342
  },
14456
- children: [
14457
- typeof response === "string" && response.trim() !== "" && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
14458
- import_material8.Box,
14459
- {
14460
- sx: {
14461
- display: "flex",
14462
- flexDirection: "column",
14463
- alignItems: "center",
14464
- mr: 2,
14465
- position: "relative"
14466
- },
14467
- children: [
14468
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14469
- import_material8.Avatar,
14470
- {
14471
- src: resolveAvatar2(selectedModel),
14472
- alt: selectedModel,
14473
- sx: {
14474
- display: { xs: "none", sm: "flex" },
14475
- width: 72,
14476
- height: 72,
14477
- border: "1px solid #888",
14478
- boxShadow: "0 0 6px rgba(136, 136, 136, 0.4)",
14479
- filter: "brightness(1.6)"
14480
- }
14481
- }
14482
- ),
14483
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_material8.Box, { sx: { display: { xs: "none", sm: "block" } }, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
14484
- import_material8.Typography,
14485
- {
14486
- variant: "caption",
14487
- sx: { color: chatResponse.modelLabel || "#888", mt: 1, fontStyle: "italic" },
14488
- children: [
14489
- selectedModel,
14490
- " says"
14491
- ]
14492
- }
14493
- ) })
14494
- ]
14495
- }
14496
- ),
14497
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14498
- import_material8.Box,
14499
- {
14500
- sx: {
14501
- display: { xs: "flex", sm: "none" },
14502
- justifyContent: "right",
14503
- width: "100%",
14504
- mt: -1,
14505
- mb: 1
14506
- },
14507
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
14508
- import_material8.Typography,
14509
- {
14510
- variant: "caption",
14511
- sx: { fontStyle: "italic", color: chatResponse.modelLabel || "#888" },
14512
- children: [
14513
- selectedModel,
14514
- " says"
14515
- ]
14516
- }
14517
- )
14518
- }
14519
- ),
14520
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_material8.Box, { sx: { position: "relative", width: "100%" }, children: [
14521
- cancelled && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14522
- import_material8.Box,
14523
- {
14524
- sx: {
14525
- position: "absolute",
14526
- top: -24,
14527
- left: 0,
14528
- display: "flex",
14529
- alignItems: "center",
14530
- gap: 1,
14531
- pl: 1,
14532
- zIndex: 1
14533
- },
14534
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_material8.Typography, { variant: "caption", sx: { fontStyle: "italic", opacity: 0.85 }, children: "Cancelled by you" })
14535
- }
14536
- ),
14537
- showMemoryUpdated && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
14538
- import_material8.Box,
14539
- {
14540
- sx: {
14541
- position: "absolute",
14542
- top: -24,
14543
- right: 0,
14544
- display: "flex",
14545
- alignItems: "center",
14546
- gap: 1,
14547
- pr: 1,
14548
- animation: "fadeOut 0.3s ease-in 2.7s forwards",
14549
- zIndex: 1
14550
- },
14551
- children: [
14552
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14553
- "img",
14554
- {
14555
- src: brainIcon,
14556
- alt: "Memory",
14557
- style: { width: 18, height: 18 }
14558
- }
14559
- ),
14560
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14561
- import_material8.Typography,
14562
- {
14563
- variant: "caption",
14564
- sx: { color: chatResponse.memoryText || "#2e7d32", fontStyle: "italic" },
14565
- children: "Bandit added to memory"
14566
- }
14567
- )
14568
- ]
14569
- }
14570
- ),
14343
+ i
14344
+ )) })
14345
+ ] }) }),
14346
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_material8.Box, { sx: { position: "relative", width: "100%", maxWidth: { xs: "100%", sm: "768px" } }, children: [
14347
+ cancelled && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14348
+ import_material8.Box,
14349
+ {
14350
+ sx: {
14351
+ position: "absolute",
14352
+ top: -22,
14353
+ left: 0,
14354
+ display: "flex",
14355
+ alignItems: "center",
14356
+ gap: 1,
14357
+ zIndex: 1
14358
+ },
14359
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_material8.Typography, { variant: "caption", sx: { fontStyle: "italic", opacity: 0.85 }, children: "Cancelled by you" })
14360
+ }
14361
+ ),
14362
+ showMemoryUpdated && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
14363
+ import_material8.Box,
14364
+ {
14365
+ sx: {
14366
+ position: "absolute",
14367
+ top: -22,
14368
+ right: 0,
14369
+ display: "flex",
14370
+ alignItems: "center",
14371
+ gap: 1,
14372
+ animation: "fadeOut 0.3s ease-in 2.7s forwards",
14373
+ zIndex: 1
14374
+ },
14375
+ children: [
14376
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("img", { src: brainIcon, alt: "Memory", style: { width: 16, height: 16 } }),
14571
14377
  /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14572
- import_material8.Box,
14378
+ import_material8.Typography,
14573
14379
  {
14574
- sx: {
14575
- bgcolor: chatResponse.aiBubble ?? "#2f2f2f",
14576
- borderRadius: "4px",
14577
- px: isMobile ? 1 : 1.5,
14578
- // Reduced padding on mobile
14579
- py: 1.25,
14580
- width: "100%",
14581
- maxWidth: isMobile ? "100%" : "768px",
14582
- // Full width on mobile
14583
- border: "1px solid " + (chatResponse.aiBorder || "#ccc"),
14584
- wordBreak: "break-word",
14585
- alignSelf: "flex-start",
14586
- mt: { xs: 0.5, sm: 0.25 }
14587
- },
14588
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_material8.Box, { sx: { width: "100%", maxWidth: "100%" }, children: typeof response === "string" ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14589
- import_react_markdown.default,
14590
- {
14591
- remarkPlugins: [import_remark_gfm.default],
14592
- rehypePlugins: [import_rehype_raw.default, [import_rehype_sanitize2.default, markdownSanitizeSchema]],
14593
- components,
14594
- children: enrichedMarkdown ?? sanitizeMarkdown(response)
14595
- }
14596
- ) : import_react15.default.isValidElement(response) ? response : /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_material8.Typography, { color: "error", children: "\u26A0\uFE0F Invalid AI response" }) })
14380
+ variant: "caption",
14381
+ sx: { color: chatResponse.memoryText || "#2e7d32", fontStyle: "italic" },
14382
+ children: "Bandit added to memory"
14597
14383
  }
14598
14384
  )
14599
- ] })
14600
- ]
14601
- }
14602
- ),
14385
+ ]
14386
+ }
14387
+ ),
14388
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_material8.Box, { sx: { width: "100%", maxWidth: "100%" }, children: typeof response === "string" ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14389
+ import_react_markdown.default,
14390
+ {
14391
+ remarkPlugins: [import_remark_gfm.default],
14392
+ rehypePlugins: [import_rehype_raw.default, [import_rehype_sanitize2.default, markdownSanitizeSchema]],
14393
+ components,
14394
+ children: enrichedMarkdown ?? sanitizeMarkdown(response)
14395
+ }
14396
+ ) : import_react15.default.isValidElement(response) ? response : /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_material8.Typography, { color: "error", children: "\u26A0\uFE0F Invalid AI response" }) })
14397
+ ] }),
14603
14398
  !!(responseText || typeof response === "string" && response) && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(ai_response_action_bar_default, { text: responseText || response }),
14604
14399
  displaySourceFiles && displaySourceFiles.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_material8.Box, { sx: { mt: 1.5, display: "flex", gap: 2, flexWrap: "wrap", justifyContent: "flex-start" }, children: displaySourceFiles.map((doc, idx) => {
14605
14400
  debugLogger.debug("Rendering DocumentCard in AI response", {
@@ -24836,7 +24631,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
24836
24631
  });
24837
24632
 
24838
24633
  // src/chat/chat-app-bar.tsx
24839
- var import_material22, import_react31, import_material23, import_react_router_dom, import_shallow2, import_jsx_runtime24, CDN_BASE, banditHead3, modelAvatars2, ChatAppBar, chat_app_bar_default;
24634
+ var import_material22, import_react31, import_material23, import_react_router_dom, import_shallow2, import_jsx_runtime24, CDN_BASE, banditHead2, modelAvatars2, ChatAppBar, chat_app_bar_default;
24840
24635
  var init_chat_app_bar = __esm({
24841
24636
  "src/chat/chat-app-bar.tsx"() {
24842
24637
  "use strict";
@@ -24860,7 +24655,7 @@ var init_chat_app_bar = __esm({
24860
24655
  import_shallow2 = require("zustand/shallow");
24861
24656
  import_jsx_runtime24 = require("react/jsx-runtime");
24862
24657
  CDN_BASE = "https://cdn.burtson.ai/";
24863
- banditHead3 = `${CDN_BASE}/images/bandit-head.png`;
24658
+ banditHead2 = `${CDN_BASE}/images/bandit-head.png`;
24864
24659
  modelAvatars2 = {
24865
24660
  "Bandit-Core": `${CDN_BASE}/avatars/core-avatar.png`,
24866
24661
  "Bandit-Muse": `${CDN_BASE}/avatars/muse-avatar.png`,
@@ -25026,7 +24821,7 @@ var init_chat_app_bar = __esm({
25026
24821
  };
25027
24822
  const selectedModel = useModelStore((s) => s.selectedModel);
25028
24823
  const currentModel = useModelStore((s) => s.availableModels.find((m) => m.name === selectedModel));
25029
- const currentAvatar = currentModel?.avatarBase64 || modelAvatars2[selectedModel] || banditHead3;
24824
+ const currentAvatar = currentModel?.avatarBase64 || modelAvatars2[selectedModel] || banditHead2;
25030
24825
  const engines = useEngineStore((s) => s.engines);
25031
24826
  const selectedEngine = useEngineStore((s) => s.selectedEngine);
25032
24827
  const effectiveEngineId = selectedEngine || usePackageSettingsStore.getState().settings?.defaultModel || "bandit-core";
@@ -25037,7 +24832,7 @@ var init_chat_app_bar = __esm({
25037
24832
  (0, import_react31.useEffect)(() => {
25038
24833
  useEngineStore.getState().fetchEngines();
25039
24834
  }, []);
25040
- const pendingModelAvatar = useModelStore.getState().availableModels.find((m) => m.name === pendingModel)?.avatarBase64 || modelAvatars2[pendingModel || ""] || banditHead3;
24835
+ const pendingModelAvatar = useModelStore.getState().availableModels.find((m) => m.name === pendingModel)?.avatarBase64 || modelAvatars2[pendingModel || ""] || banditHead2;
25041
24836
  const resolvedHomeUrl = preferences.homeUrl?.trim() || packageSettings?.homeUrl?.trim() || "";
25042
24837
  const homeTooltip = (() => {
25043
24838
  if (!resolvedHomeUrl) return "Home";
@@ -25355,7 +25150,7 @@ var init_chat_app_bar = __esm({
25355
25150
  onClick: (e) => setEngineAnchorEl(e.currentTarget),
25356
25151
  sx: pillButtonStyles,
25357
25152
  "aria-label": `Change base model (engine). Currently ${engineDisplay}`,
25358
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(PsychologyIcon, { fontSize: "small" })
25153
+ children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(AutoAwesomeIcon, { fontSize: "small" })
25359
25154
  }
25360
25155
  ) }),
25361
25156
  /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
@@ -25510,7 +25305,7 @@ var init_chat_app_bar = __esm({
25510
25305
  /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
25511
25306
  import_material22.Avatar,
25512
25307
  {
25513
- src: model.avatarBase64 || modelAvatars2[model.name] || banditHead3,
25308
+ src: model.avatarBase64 || modelAvatars2[model.name] || banditHead2,
25514
25309
  alt: model.name,
25515
25310
  sx: {
25516
25311
  width: 28,
@@ -30873,7 +30668,7 @@ var import_material30 = require("@mui/material");
30873
30668
  init_lucide_icons();
30874
30669
  var import_jsx_runtime31 = require("react/jsx-runtime");
30875
30670
  var banditaiLogo = "https://cdn.burtson.ai/logos/bandit-ai-logo.png";
30876
- var banditHead4 = "https://cdn.burtson.ai/images/bandit-head.png";
30671
+ var banditHead3 = "https://cdn.burtson.ai/images/bandit-head.png";
30877
30672
  var ModalHeader = ({
30878
30673
  fullScreen,
30879
30674
  setFullScreen,
@@ -30887,7 +30682,7 @@ var ModalHeader = ({
30887
30682
  }) => {
30888
30683
  const theme = (0, import_material30.useTheme)();
30889
30684
  const isMobile = (0, import_material30.useMediaQuery)((theme2) => theme2.breakpoints.down("sm"));
30890
- const displayLogo = logo && logo !== banditaiLogo ? logo : banditHead4;
30685
+ const displayLogo = logo && logo !== banditaiLogo ? logo : banditHead3;
30891
30686
  const [isHovering, setIsHovering] = (0, import_react38.useState)(false);
30892
30687
  const buttonStyles = {
30893
30688
  transition: "all 0.15s ease-out",
@@ -32882,7 +32677,7 @@ init_lucide_icons();
32882
32677
  var import_jsx_runtime35 = require("react/jsx-runtime");
32883
32678
  var FULL_SCREEN_THRESHOLD = 100;
32884
32679
  var CDN_BASE2 = "https://cdn.burtson.ai/";
32885
- var banditHead5 = `${CDN_BASE2}/images/bandit-head.png`;
32680
+ var banditHead4 = `${CDN_BASE2}/images/bandit-head.png`;
32886
32681
  var modelAvatars3 = {
32887
32682
  "Bandit-Core": `${CDN_BASE2}/avatars/core-avatar.png`,
32888
32683
  "Bandit-Muse": `${CDN_BASE2}/avatars/muse-avatar.png`,
@@ -32972,7 +32767,7 @@ var ChatModal = ({
32972
32767
  const provider = useAIProviderStore((state) => state.provider);
32973
32768
  const notificationService2 = useNotificationService();
32974
32769
  const currentModel = availableModels.find((m) => m.name === selectedModel);
32975
- const currentAvatar = currentModel?.avatarBase64 || modelAvatars3[selectedModel] || banditHead5;
32770
+ const currentAvatar = currentModel?.avatarBase64 || modelAvatars3[selectedModel] || banditHead4;
32976
32771
  const removeImage = (index) => {
32977
32772
  setPastedImages((prev) => prev.filter((_, i) => i !== index));
32978
32773
  };
@@ -33292,7 +33087,7 @@ var ChatModal = ({
33292
33087
  /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
33293
33088
  import_material35.Avatar,
33294
33089
  {
33295
- src: model.avatarBase64 || modelAvatars3[model.name] || banditHead5,
33090
+ src: model.avatarBase64 || modelAvatars3[model.name] || banditHead4,
33296
33091
  alt: model.name,
33297
33092
  sx: {
33298
33093
  width: 28,
@@ -42760,7 +42555,7 @@ var Management = () => {
42760
42555
  const isMobile = (0, import_useMediaQuery2.default)("(max-width:900px)");
42761
42556
  const [sidebarOpen, setSidebarOpen] = (0, import_react58.useState)(false);
42762
42557
  const getOptimalFabLogo = async () => {
42763
- const banditHead7 = "https://cdn.burtson.ai/images/bandit-head.png";
42558
+ const banditHead6 = "https://cdn.burtson.ai/images/bandit-head.png";
42764
42559
  try {
42765
42560
  const subdomain = window.location.hostname.split(".")[0];
42766
42561
  const faviconUrl = `https://cdn.burtson.ai/favicons/${subdomain}/favicon.png`;
@@ -42777,10 +42572,10 @@ var Management = () => {
42777
42572
  if (branding?.logoBase64) {
42778
42573
  return branding.logoBase64;
42779
42574
  }
42780
- return banditHead7;
42575
+ return banditHead6;
42781
42576
  } catch (error) {
42782
42577
  debugLogger.error("Failed to get optimal FAB logo", { error });
42783
- return banditHead7;
42578
+ return banditHead6;
42784
42579
  }
42785
42580
  };
42786
42581
  const {
@@ -42799,8 +42594,8 @@ var Management = () => {
42799
42594
  setHasTransparentLogo
42800
42595
  } = useModelStore();
42801
42596
  const [modalOpen, setModalOpen] = (0, import_react58.useState)(false);
42802
- const banditHead6 = "https://cdn.burtson.ai/images/bandit-head.png";
42803
- const [fabLogo, setFabLogo] = (0, import_react58.useState)(banditHead6);
42597
+ const banditHead5 = "https://cdn.burtson.ai/images/bandit-head.png";
42598
+ const [fabLogo, setFabLogo] = (0, import_react58.useState)(banditHead5);
42804
42599
  const [tabIndex, setTabIndex] = (0, import_react58.useState)(4);
42805
42600
  const [logoFile, setLogoFile] = (0, import_react58.useState)(null);
42806
42601
  const [logoBase64, setLogoBase64] = (0, import_react58.useState)(null);