@burtson-labs/bandit-engine 2.0.60 → 2.0.61
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-NLBCURUN.mjs → chat-E23BSMK5.mjs} +2 -2
- package/dist/{chunk-MFDMM5MS.mjs → chunk-G7U2FNUK.mjs} +138 -2
- package/dist/chunk-G7U2FNUK.mjs.map +1 -0
- package/dist/{chunk-3AWAL2YH.mjs → chunk-SKMJ43NN.mjs} +2 -2
- package/dist/index.js +148 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5 -5
- package/dist/management/management.js +148 -2
- package/dist/management/management.js.map +1 -1
- package/dist/management/management.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-MFDMM5MS.mjs.map +0 -1
- /package/dist/{chat-NLBCURUN.mjs.map → chat-E23BSMK5.mjs.map} +0 -0
- /package/dist/{chunk-3AWAL2YH.mjs.map → chunk-SKMJ43NN.mjs.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
chat_default
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-G7U2FNUK.mjs";
|
|
4
4
|
import "./chunk-ONQMRE2G.mjs";
|
|
5
5
|
import "./chunk-SRCCNBHF.mjs";
|
|
6
6
|
import "./chunk-6QTTNYF2.mjs";
|
|
@@ -13,4 +13,4 @@ import "./chunk-BJTO5JO5.mjs";
|
|
|
13
13
|
export {
|
|
14
14
|
chat_default as default
|
|
15
15
|
};
|
|
16
|
-
//# sourceMappingURL=chat-
|
|
16
|
+
//# sourceMappingURL=chat-E23BSMK5.mjs.map
|
|
@@ -1695,6 +1695,55 @@ function telemetryEndTurn(outcome) {
|
|
|
1695
1695
|
void active?.endTurn(outcome);
|
|
1696
1696
|
}
|
|
1697
1697
|
|
|
1698
|
+
// src/store/engineStore.ts
|
|
1699
|
+
import { create as create2 } from "zustand";
|
|
1700
|
+
var STORAGE_KEY = "bandit.selectedEngine";
|
|
1701
|
+
var readStored = () => {
|
|
1702
|
+
try {
|
|
1703
|
+
return typeof window !== "undefined" ? window.localStorage.getItem(STORAGE_KEY) : null;
|
|
1704
|
+
} catch {
|
|
1705
|
+
return null;
|
|
1706
|
+
}
|
|
1707
|
+
};
|
|
1708
|
+
var useEngineStore = create2((set, get) => ({
|
|
1709
|
+
selectedEngine: readStored(),
|
|
1710
|
+
engines: [],
|
|
1711
|
+
loaded: false,
|
|
1712
|
+
setSelectedEngine: (id) => {
|
|
1713
|
+
set({ selectedEngine: id });
|
|
1714
|
+
try {
|
|
1715
|
+
window.localStorage.setItem(STORAGE_KEY, id);
|
|
1716
|
+
} catch {
|
|
1717
|
+
}
|
|
1718
|
+
},
|
|
1719
|
+
getSelectedEngine: () => get().selectedEngine || usePackageSettingsStore.getState().settings?.defaultModel || "bandit-core",
|
|
1720
|
+
fetchEngines: async () => {
|
|
1721
|
+
const settings = usePackageSettingsStore.getState().settings;
|
|
1722
|
+
const base = settings?.gatewayApiUrl?.replace(/\/$/, "") ?? "";
|
|
1723
|
+
if (!base || settings?.playgroundMode || base.toLowerCase().startsWith("playground://")) {
|
|
1724
|
+
set({ loaded: true });
|
|
1725
|
+
return;
|
|
1726
|
+
}
|
|
1727
|
+
try {
|
|
1728
|
+
const headers = { "Content-Type": "application/json" };
|
|
1729
|
+
const token = authenticationService.getToken();
|
|
1730
|
+
if (token) headers["Authorization"] = `Bearer ${token}`;
|
|
1731
|
+
const res = await fetch(`${base}/models`, { headers });
|
|
1732
|
+
const data = await res.json();
|
|
1733
|
+
if (res.ok && Array.isArray(data?.models)) {
|
|
1734
|
+
set({ engines: data.models, loaded: true });
|
|
1735
|
+
} else {
|
|
1736
|
+
set({ loaded: true });
|
|
1737
|
+
}
|
|
1738
|
+
} catch (error) {
|
|
1739
|
+
debugLogger.error("Failed to fetch engines", {
|
|
1740
|
+
error: error instanceof Error ? error.message : String(error)
|
|
1741
|
+
});
|
|
1742
|
+
set({ loaded: true });
|
|
1743
|
+
}
|
|
1744
|
+
}
|
|
1745
|
+
}));
|
|
1746
|
+
|
|
1698
1747
|
// src/chat/hooks/useMemoryEnhancer.tsx
|
|
1699
1748
|
import { lastValueFrom, map as map2 } from "rxjs";
|
|
1700
1749
|
var MEMORY_LIMIT = 100;
|
|
@@ -2747,7 +2796,7 @@ var useAIProvider = ({
|
|
|
2747
2796
|
question: pendingQuestion,
|
|
2748
2797
|
images: pendingImages
|
|
2749
2798
|
});
|
|
2750
|
-
const modelName =
|
|
2799
|
+
const modelName = useEngineStore.getState().getSelectedEngine();
|
|
2751
2800
|
const CONFIG = modelConfigs[modelName] ?? modelConfigs["bandit-core:4b-it-qat"];
|
|
2752
2801
|
const base64Images = imageList.map((img) => img.split(",")[1]);
|
|
2753
2802
|
const latestEntries = history.slice(-CONFIG.historyMessages);
|
|
@@ -7049,6 +7098,7 @@ var ChatAppBar = ({
|
|
|
7049
7098
|
menuText
|
|
7050
7099
|
} = theme.palette.chat.appBar;
|
|
7051
7100
|
const [modelAnchorEl, setModelAnchorEl] = useState12(null);
|
|
7101
|
+
const [engineAnchorEl, setEngineAnchorEl] = useState12(null);
|
|
7052
7102
|
const [voiceAnchorEl, setVoiceAnchorEl] = useState12(null);
|
|
7053
7103
|
const [modalOpen, setModalOpen] = useState12(false);
|
|
7054
7104
|
const [confirmModelChangeOpen, setConfirmModelChangeOpen] = useState12(false);
|
|
@@ -7169,6 +7219,14 @@ var ChatAppBar = ({
|
|
|
7169
7219
|
const selectedModel = useModelStore((s) => s.selectedModel);
|
|
7170
7220
|
const currentModel = useModelStore((s) => s.availableModels.find((m) => m.name === selectedModel));
|
|
7171
7221
|
const currentAvatar = currentModel?.avatarBase64 || modelAvatars[selectedModel] || banditHead;
|
|
7222
|
+
const engines = useEngineStore((s) => s.engines);
|
|
7223
|
+
const selectedEngine = useEngineStore((s) => s.selectedEngine);
|
|
7224
|
+
const effectiveEngineId = selectedEngine || usePackageSettingsStore.getState().settings?.defaultModel || "bandit-core";
|
|
7225
|
+
const currentEngine = engines.find((e) => e.id === effectiveEngineId);
|
|
7226
|
+
const engineLabel = currentEngine?.displayName?.replace(/^Bandit /, "") || "Engine";
|
|
7227
|
+
useEffect11(() => {
|
|
7228
|
+
useEngineStore.getState().fetchEngines();
|
|
7229
|
+
}, []);
|
|
7172
7230
|
const pendingModelAvatar = useModelStore.getState().availableModels.find((m) => m.name === pendingModel)?.avatarBase64 || modelAvatars[pendingModel || ""] || banditHead;
|
|
7173
7231
|
const resolvedHomeUrl = preferences.homeUrl?.trim() || packageSettings?.homeUrl?.trim() || "";
|
|
7174
7232
|
const homeTooltip = (() => {
|
|
@@ -7481,6 +7539,84 @@ var ChatAppBar = ({
|
|
|
7481
7539
|
)
|
|
7482
7540
|
}
|
|
7483
7541
|
) }),
|
|
7542
|
+
/* @__PURE__ */ jsx13(Tooltip4, { title: `Engine: ${currentEngine?.displayName ?? effectiveEngineId}`, arrow: true, children: /* @__PURE__ */ jsxs10(
|
|
7543
|
+
IconButton9,
|
|
7544
|
+
{
|
|
7545
|
+
onClick: (e) => setEngineAnchorEl(e.currentTarget),
|
|
7546
|
+
sx: pillButtonStyles,
|
|
7547
|
+
"aria-label": `Change base model (engine). Currently ${effectiveEngineId}`,
|
|
7548
|
+
children: [
|
|
7549
|
+
currentEngine?.cloud ? /* @__PURE__ */ jsx13(CloudDoneIcon, { fontSize: "small" }) : /* @__PURE__ */ jsx13(CloudOffIcon, { fontSize: "small" }),
|
|
7550
|
+
/* @__PURE__ */ jsx13(Typography8, { variant: "caption", sx: { ml: 0.75, fontWeight: 600, whiteSpace: "nowrap" }, children: engineLabel })
|
|
7551
|
+
]
|
|
7552
|
+
}
|
|
7553
|
+
) }),
|
|
7554
|
+
/* @__PURE__ */ jsxs10(
|
|
7555
|
+
Menu5,
|
|
7556
|
+
{
|
|
7557
|
+
anchorEl: engineAnchorEl,
|
|
7558
|
+
open: Boolean(engineAnchorEl),
|
|
7559
|
+
onClose: () => setEngineAnchorEl(null),
|
|
7560
|
+
transformOrigin: { horizontal: "right", vertical: "top" },
|
|
7561
|
+
anchorOrigin: { horizontal: "right", vertical: "bottom" },
|
|
7562
|
+
children: [
|
|
7563
|
+
/* @__PURE__ */ jsx13(Typography8, { variant: "overline", sx: { px: 2, color: theme.palette.text.secondary }, children: "Engine \xB7 base model" }),
|
|
7564
|
+
engines.length === 0 && /* @__PURE__ */ jsx13(MenuItem5, { disabled: true, children: /* @__PURE__ */ jsx13(Typography8, { variant: "body2", children: "No engines available" }) }),
|
|
7565
|
+
engines.map((engine) => {
|
|
7566
|
+
const badges = [
|
|
7567
|
+
engine.vision && "vision",
|
|
7568
|
+
engine.tools && "tools",
|
|
7569
|
+
engine.thinking && "thinking",
|
|
7570
|
+
engine.cloud && "cloud"
|
|
7571
|
+
].filter(Boolean);
|
|
7572
|
+
return /* @__PURE__ */ jsxs10(
|
|
7573
|
+
MenuItem5,
|
|
7574
|
+
{
|
|
7575
|
+
selected: engine.id === effectiveEngineId,
|
|
7576
|
+
disabled: !engine.available,
|
|
7577
|
+
onClick: () => {
|
|
7578
|
+
useEngineStore.getState().setSelectedEngine(engine.id);
|
|
7579
|
+
setEngineAnchorEl(null);
|
|
7580
|
+
},
|
|
7581
|
+
sx: {
|
|
7582
|
+
display: "flex",
|
|
7583
|
+
flexDirection: "column",
|
|
7584
|
+
alignItems: "flex-start",
|
|
7585
|
+
gap: 0.5,
|
|
7586
|
+
py: 1,
|
|
7587
|
+
px: 2,
|
|
7588
|
+
maxWidth: 360,
|
|
7589
|
+
whiteSpace: "normal"
|
|
7590
|
+
},
|
|
7591
|
+
children: [
|
|
7592
|
+
/* @__PURE__ */ jsxs10(Box10, { sx: { display: "flex", alignItems: "center", gap: 1, width: "100%" }, children: [
|
|
7593
|
+
/* @__PURE__ */ jsx13(Typography8, { variant: "body2", sx: { fontWeight: 600, flex: 1 }, children: engine.displayName }),
|
|
7594
|
+
engine.id === effectiveEngineId && /* @__PURE__ */ jsx13(Box10, { sx: { width: 8, height: 8, borderRadius: "50%", bgcolor: theme.palette.primary.main } })
|
|
7595
|
+
] }),
|
|
7596
|
+
/* @__PURE__ */ jsx13(Typography8, { variant: "caption", sx: { color: theme.palette.text.secondary }, children: engine.available ? engine.description : engine.unavailableReason || "Unavailable" }),
|
|
7597
|
+
badges.length > 0 && /* @__PURE__ */ jsx13(Box10, { sx: { display: "flex", gap: 0.5, flexWrap: "wrap", mt: 0.25 }, children: badges.map((b) => /* @__PURE__ */ jsx13(
|
|
7598
|
+
Box10,
|
|
7599
|
+
{
|
|
7600
|
+
sx: {
|
|
7601
|
+
fontSize: "0.65rem",
|
|
7602
|
+
px: 0.75,
|
|
7603
|
+
py: 0.1,
|
|
7604
|
+
borderRadius: 1,
|
|
7605
|
+
bgcolor: theme.palette.primary.main + "22",
|
|
7606
|
+
color: theme.palette.primary.main
|
|
7607
|
+
},
|
|
7608
|
+
children: b
|
|
7609
|
+
},
|
|
7610
|
+
b
|
|
7611
|
+
)) })
|
|
7612
|
+
]
|
|
7613
|
+
},
|
|
7614
|
+
engine.id
|
|
7615
|
+
);
|
|
7616
|
+
})
|
|
7617
|
+
]
|
|
7618
|
+
}
|
|
7619
|
+
),
|
|
7484
7620
|
/* @__PURE__ */ jsx13(
|
|
7485
7621
|
Menu5,
|
|
7486
7622
|
{
|
|
@@ -9586,4 +9722,4 @@ var chat_default = Chat;
|
|
|
9586
9722
|
export {
|
|
9587
9723
|
chat_default
|
|
9588
9724
|
};
|
|
9589
|
-
//# sourceMappingURL=chunk-
|
|
9725
|
+
//# sourceMappingURL=chunk-G7U2FNUK.mjs.map
|