@burtson-labs/bandit-engine 2.0.152 → 2.0.154
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-E3VSYTAB.mjs +16 -0
- package/dist/chat-provider.js +8 -10
- package/dist/chat-provider.js.map +1 -1
- package/dist/chat-provider.mjs +5 -5
- package/dist/{chunk-6STVJJSG.mjs → chunk-2HGBMNX4.mjs} +17 -3
- package/dist/chunk-2HGBMNX4.mjs.map +1 -0
- package/dist/{chunk-LPSM62OE.mjs → chunk-2X46TMFE.mjs} +19 -14
- package/dist/chunk-2X46TMFE.mjs.map +1 -0
- package/dist/{chunk-7ESJJN6D.mjs → chunk-7AMLR6P4.mjs} +263 -75
- package/dist/chunk-7AMLR6P4.mjs.map +1 -0
- package/dist/{chunk-RRCCSN3N.mjs → chunk-B2TJZM4Z.mjs} +2 -2
- package/dist/{chunk-U33KBX3Y.mjs → chunk-GQ3X6VPR.mjs} +4 -4
- package/dist/{chunk-CVFFNX7H.mjs → chunk-IS2LWSBZ.mjs} +10 -12
- package/dist/chunk-IS2LWSBZ.mjs.map +1 -0
- package/dist/{chunk-TYRYAAP2.mjs → chunk-RN7FRSMX.mjs} +3 -3
- package/dist/{chunk-QLATFSSO.mjs → chunk-TVPYBRWF.mjs} +5 -5
- package/dist/{chunk-EORIRPPX.mjs → chunk-ZOCXFQID.mjs} +2 -2
- package/dist/{chunk-EORIRPPX.mjs.map → chunk-ZOCXFQID.mjs.map} +1 -1
- package/dist/{chunk-VLUXQE24.mjs → chunk-ZW3YNAD7.mjs} +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +790 -570
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +10 -10
- package/dist/management/management.js +489 -269
- package/dist/management/management.js.map +1 -1
- package/dist/management/management.mjs +8 -8
- package/dist/modals/chat-modal/chat-modal.js.map +1 -1
- package/dist/modals/chat-modal/chat-modal.mjs +4 -4
- package/dist/{modelStore-U57LUIIB.mjs → modelStore-KBUW3XAV.mjs} +2 -2
- package/dist/{public-20My32EB.d.mts → public-0EYmtpGD.d.mts} +8 -0
- package/dist/{public-20My32EB.d.ts → public-0EYmtpGD.d.ts} +8 -0
- package/dist/public-types.d.mts +1 -1
- package/dist/public-types.d.ts +1 -1
- package/package.json +1 -1
- package/dist/chat-Y3WOTIKI.mjs +0 -16
- package/dist/chunk-6STVJJSG.mjs.map +0 -1
- package/dist/chunk-7ESJJN6D.mjs.map +0 -1
- package/dist/chunk-CVFFNX7H.mjs.map +0 -1
- package/dist/chunk-LPSM62OE.mjs.map +0 -1
- /package/dist/{chat-Y3WOTIKI.mjs.map → chat-E3VSYTAB.mjs.map} +0 -0
- /package/dist/{chunk-RRCCSN3N.mjs.map → chunk-B2TJZM4Z.mjs.map} +0 -0
- /package/dist/{chunk-U33KBX3Y.mjs.map → chunk-GQ3X6VPR.mjs.map} +0 -0
- /package/dist/{chunk-TYRYAAP2.mjs.map → chunk-RN7FRSMX.mjs.map} +0 -0
- /package/dist/{chunk-QLATFSSO.mjs.map → chunk-TVPYBRWF.mjs.map} +0 -0
- /package/dist/{chunk-VLUXQE24.mjs.map → chunk-ZW3YNAD7.mjs.map} +0 -0
- /package/dist/{modelStore-U57LUIIB.mjs.map → modelStore-KBUW3XAV.mjs.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
indexedDBService_default,
|
|
3
3
|
usePackageSettingsStore
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-ZOCXFQID.mjs";
|
|
5
5
|
import {
|
|
6
6
|
authenticationService,
|
|
7
7
|
useAIProviderStore
|
|
@@ -285,4 +285,4 @@ var aiProviderInitService = AIProviderInitService.getInstance();
|
|
|
285
285
|
export {
|
|
286
286
|
aiProviderInitService
|
|
287
287
|
};
|
|
288
|
-
//# sourceMappingURL=chunk-
|
|
288
|
+
//# sourceMappingURL=chunk-B2TJZM4Z.mjs.map
|
|
@@ -24,20 +24,20 @@ import {
|
|
|
24
24
|
useNotificationService,
|
|
25
25
|
useTTS,
|
|
26
26
|
useVoiceStore
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-RN7FRSMX.mjs";
|
|
28
28
|
import {
|
|
29
29
|
brandingService_default,
|
|
30
30
|
toTitleCase,
|
|
31
31
|
useAIQueryStore,
|
|
32
32
|
useConversationStore,
|
|
33
33
|
useMemoryStore
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-ZW3YNAD7.mjs";
|
|
35
35
|
import {
|
|
36
36
|
indexedDBService_default,
|
|
37
37
|
useModelStore,
|
|
38
38
|
usePackageSettingsStore,
|
|
39
39
|
usePreferencesStore
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-ZOCXFQID.mjs";
|
|
41
41
|
import {
|
|
42
42
|
useAIProviderStore
|
|
43
43
|
} from "./chunk-GWQRTUKF.mjs";
|
|
@@ -2941,4 +2941,4 @@ export {
|
|
|
2941
2941
|
MAX_WINDOWED_HEIGHT,
|
|
2942
2942
|
chat_modal_default
|
|
2943
2943
|
};
|
|
2944
|
-
//# sourceMappingURL=chunk-
|
|
2944
|
+
//# sourceMappingURL=chunk-GQ3X6VPR.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
indexedDBService_default,
|
|
3
3
|
usePackageSettingsStore
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-ZOCXFQID.mjs";
|
|
5
5
|
import {
|
|
6
6
|
authenticationService
|
|
7
7
|
} from "./chunk-GWQRTUKF.mjs";
|
|
@@ -128,19 +128,17 @@ var webFetchTool = {
|
|
|
128
128
|
var imageGenerationTool = {
|
|
129
129
|
id: "image-generation",
|
|
130
130
|
name: "image_generation",
|
|
131
|
-
description: "Generate
|
|
131
|
+
description: "Generate an image from a text prompt on the Burtson Labs GPU",
|
|
132
132
|
enabled: true,
|
|
133
133
|
type: "function",
|
|
134
134
|
function: {
|
|
135
135
|
name: "image_generation",
|
|
136
|
-
description: "Generate
|
|
136
|
+
description: "Generate an image from a text prompt on the Burtson Labs GPU",
|
|
137
137
|
parameters: {
|
|
138
138
|
type: "object",
|
|
139
139
|
properties: {
|
|
140
140
|
prompt: { type: "string", description: "Text description of the image to generate" },
|
|
141
|
-
size: { type: "string", enum: ["1024x1024", "
|
|
142
|
-
quality: { type: "string", enum: ["standard", "hd"], description: "Image quality" },
|
|
143
|
-
style: { type: "string", enum: ["vivid", "natural"], description: "Style preference" }
|
|
141
|
+
size: { type: "string", enum: ["1024x1024", "1344x768", "768x1344"], description: "Canvas: square, landscape, or portrait" }
|
|
144
142
|
},
|
|
145
143
|
required: ["prompt"]
|
|
146
144
|
}
|
|
@@ -152,20 +150,20 @@ var imageGenerationTool = {
|
|
|
152
150
|
var createFileTool = {
|
|
153
151
|
id: "create-file",
|
|
154
152
|
name: "create_file",
|
|
155
|
-
description: "Create a downloadable file for the user (md, txt, csv, json, html, docx, pptx). Returns a temporary (~1 hour) download link.",
|
|
153
|
+
description: "Create a downloadable file for the user (md, txt, csv, json, html, docx, pptx, pdf). Returns a temporary (~1 hour) download link.",
|
|
156
154
|
enabled: true,
|
|
157
155
|
type: "function",
|
|
158
156
|
function: {
|
|
159
157
|
name: "create_file",
|
|
160
|
-
description: "Generate a file the user can download. For docx/pptx write well-structured Markdown (headings, lists, tables; use '## ' headings to start each slide). Returns a short-lived (~1 hour) download URL \u2014 tell the user it expires.",
|
|
158
|
+
description: "Generate a file the user can download. For docx/pptx write well-structured Markdown (headings, lists, tables; use '## ' headings to start each slide). For pdf, prefer complete HTML with inline CSS (branded proposals, print layouts) \u2014 Chromium renders it without browser headers/footers; Markdown also works. Returns a short-lived (~1 hour) download URL \u2014 tell the user it expires.",
|
|
161
159
|
parameters: {
|
|
162
160
|
type: "object",
|
|
163
161
|
properties: {
|
|
164
|
-
content: { type: "string", description: "The file content (Markdown for docx/pptx; raw text for others)." },
|
|
165
|
-
filename: { type: "string", description: "Desired filename, e.g. 'report.
|
|
162
|
+
content: { type: "string", description: "The file content (HTML preferred for pdf; Markdown for docx/pptx/pdf; raw text for others)." },
|
|
163
|
+
filename: { type: "string", description: "Desired filename, e.g. 'report.pdf' or 'notes.md'." },
|
|
166
164
|
format: {
|
|
167
165
|
type: "string",
|
|
168
|
-
enum: ["md", "txt", "csv", "json", "html", "xml", "yaml", "docx", "pptx"],
|
|
166
|
+
enum: ["md", "txt", "csv", "json", "html", "xml", "yaml", "docx", "pptx", "pdf"],
|
|
169
167
|
description: "File format. Defaults to md."
|
|
170
168
|
}
|
|
171
169
|
},
|
|
@@ -310,4 +308,4 @@ export {
|
|
|
310
308
|
discoverMcpTools,
|
|
311
309
|
useMCPToolsStore
|
|
312
310
|
};
|
|
313
|
-
//# sourceMappingURL=chunk-
|
|
311
|
+
//# sourceMappingURL=chunk-IS2LWSBZ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/store/mcpToolsStore.ts","../src/services/mcp/mcpServersService.ts"],"sourcesContent":["/*\n © 2025 Burtson Labs — Licensed under Business Source License 1.1\n https://burtson.ai/license\n\n This file is protected intellectual property.\n Do NOT use in commercial software, prompts, AI training data, or derivative works without a valid commercial license.\n\n 🚫 AI NOTICE: This file contains visible and invisible watermarks.\n ⚖️ VIOLATION NOTICE: Removing, modifying, or obscuring these watermarks is a license violation.\n 🔒 LICENSE TERMINATION: Upon license termination, ALL forks, copies, and derivatives must be permanently deleted.\n 📋 AUDIT TRAIL: File usage is logged and monitored for compliance verification.\n*/\n\n// Bandit Engine Watermark: BL-WM-BF8A-82BFF7\nconst __banditFingerprint_store_mcpToolsStorets = 'BL-FP-414506-12AF';\nconst __auditTrail_store_mcpToolsStorets = 'BL-AU-MGOIKVW4-PIWV';\n// File: mcpToolsStore.ts | Path: src/store/mcpToolsStore.ts | Hash: bf8a12af\n\nimport { create } from \"zustand\";\nimport indexedDBService from \"../services/indexedDB/indexedDBService\";\nimport { debugLogger } from \"../services/logging/debugLogger\";\nimport { listMcpServers, discoverMcpTools } from \"../services/mcp/mcpServersService\";\n\n// Sanitize an MCP tool into a valid, namespaced function name for the model.\nconst sanitizeMcpToolName = (raw: string): string =>\n raw.replace(/[^a-zA-Z0-9_]/g, \"_\").replace(/_+/g, \"_\").replace(/^_|_$/g, \"\").slice(0, 60);\n\nexport interface MCPTool {\n id: string;\n name: string;\n description: string;\n enabled: boolean;\n type: \"function\";\n function: {\n name: string;\n description: string;\n parameters: {\n type: \"object\";\n properties: Record<string, unknown>;\n required: string[];\n };\n };\n endpoint?: string; // API endpoint for gateway calls\n method?: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\";\n isBuiltIn?: boolean;\n // Set when this tool comes from a user-connected MCP server. Such tools are\n // invoked through POST /mcp/invoke (not a fixed endpoint) and are never\n // persisted to IndexedDB — they're re-discovered from the gateway each load.\n mcpServerId?: string;\n mcpToolName?: string; // the tool's real name on the MCP server\n}\n\ninterface MCPToolsStore {\n tools: MCPTool[];\n isLoaded: boolean;\n addTool: (tool: Omit<MCPTool, \"id\">) => void;\n updateTool: (id: string, updates: Partial<MCPTool>) => void;\n deleteTool: (id: string) => void;\n toggleTool: (id: string) => void;\n loadTools: () => Promise<void>;\n saveTools: () => Promise<void>;\n getEnabledTools: () => MCPTool[];\n loadMcpServerTools: () => Promise<void>;\n}\n\n// Built-in controller-backed tools\nconst healthCheckTool: MCPTool = {\n id: \"health-check\",\n name: \"check_gateway_health\",\n description: \"Check the health status of the gateway API service\",\n enabled: true,\n type: \"function\",\n function: {\n name: \"check_gateway_health\",\n description: \"Check the health status of the gateway API service\",\n parameters: {\n type: \"object\",\n properties: {},\n required: []\n }\n },\n endpoint: \"/mcp/health\",\n method: \"GET\",\n isBuiltIn: true\n};\n\nconst webSearchTool: MCPTool = {\n id: \"web-search\",\n name: \"web_search\",\n description: \"Search the web for current information, documentation, and facts\",\n enabled: true,\n type: \"function\",\n function: {\n name: \"web_search\",\n description: \"Search the web and return ranked results with snippets (and an optional summarized answer). Use for current events, documentation, libraries, error messages, and factual lookups.\",\n parameters: {\n type: \"object\",\n properties: {\n query: { type: \"string\", description: \"The search query — natural language or keywords\" },\n count: { type: \"number\", description: \"Number of results to return (1-10, default 5)\" },\n include_answer: { type: \"boolean\", description: \"Include a short summarized answer when available\" }\n },\n required: [\"query\"]\n }\n },\n endpoint: \"/mcp/web-search\",\n method: \"GET\",\n isBuiltIn: true\n};\n\nconst webFetchTool: MCPTool = {\n id: \"web-fetch\",\n name: \"web_fetch\",\n description: \"Fetch the text content of a specific URL\",\n enabled: true,\n type: \"function\",\n function: {\n name: \"web_fetch\",\n description: \"Fetch a single public URL and return its trimmed text content. Use when you already have a specific link you need to read.\",\n parameters: {\n type: \"object\",\n properties: {\n url: { type: \"string\", description: \"Absolute http(s) URL to fetch\" }\n },\n required: [\"url\"]\n }\n },\n endpoint: \"/mcp/web-fetch\",\n method: \"GET\",\n isBuiltIn: true\n};\n\n// Image generation runs on Burtson's own GPU (the Image Studio backend behind\n// the gateway) — never a third-party image API. The gateway forwards the\n// user's token to Anton, whose admin/partner gate decides who may take the\n// GPU; everyone else gets a clear \"limited to admin and partner accounts\"\n// message. Cold starts can take a couple of minutes.\nconst imageGenerationTool: MCPTool = {\n id: \"image-generation\",\n name: \"image_generation\",\n description: \"Generate an image from a text prompt on the Burtson Labs GPU\",\n enabled: true,\n type: \"function\",\n function: {\n name: \"image_generation\",\n description: \"Generate an image from a text prompt on the Burtson Labs GPU\",\n parameters: {\n type: \"object\",\n properties: {\n prompt: { type: \"string\", description: \"Text description of the image to generate\" },\n size: { type: \"string\", enum: [\"1024x1024\", \"1344x768\", \"768x1344\"], description: \"Canvas: square, landscape, or portrait\" }\n },\n required: [\"prompt\"]\n }\n },\n endpoint: \"/mcp/generate-image\",\n method: \"POST\",\n isBuiltIn: true\n};\n\n// Create a downloadable file for the user (stored ~1 hour at a gateway URL).\nconst createFileTool: MCPTool = {\n id: \"create-file\",\n name: \"create_file\",\n description: \"Create a downloadable file for the user (md, txt, csv, json, html, docx, pptx, pdf). Returns a temporary (~1 hour) download link.\",\n enabled: true,\n type: \"function\",\n function: {\n name: \"create_file\",\n description:\n \"Generate a file the user can download. For docx/pptx write well-structured Markdown (headings, lists, tables; use '## ' headings to start each slide). For pdf, prefer complete HTML with inline CSS (branded proposals, print layouts) — Chromium renders it without browser headers/footers; Markdown also works. Returns a short-lived (~1 hour) download URL — tell the user it expires.\",\n parameters: {\n type: \"object\",\n properties: {\n content: { type: \"string\", description: \"The file content (HTML preferred for pdf; Markdown for docx/pptx/pdf; raw text for others).\" },\n filename: { type: \"string\", description: \"Desired filename, e.g. 'report.pdf' or 'notes.md'.\" },\n format: {\n type: \"string\",\n enum: [\"md\", \"txt\", \"csv\", \"json\", \"html\", \"xml\", \"yaml\", \"docx\", \"pptx\", \"pdf\"],\n description: \"File format. Defaults to md.\",\n },\n },\n required: [\"content\", \"format\"],\n },\n },\n endpoint: \"/mcp/create-file\",\n method: \"POST\",\n isBuiltIn: true,\n};\n\nconst defaultTools: MCPTool[] = [healthCheckTool, webSearchTool, webFetchTool, imageGenerationTool, createFileTool];\n\nexport const useMCPToolsStore = create<MCPToolsStore>((set, get) => ({\n tools: defaultTools,\n isLoaded: false,\n \n addTool: (toolData) => {\n const newTool: MCPTool = {\n ...toolData,\n id: `tool-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,\n };\n set((state) => ({\n tools: [...state.tools, newTool],\n }));\n get().saveTools();\n },\n \n updateTool: (id, updates) => {\n set((state) => ({\n tools: state.tools.map((tool) =>\n tool.id === id ? { ...tool, ...updates } : tool\n ),\n }));\n get().saveTools();\n },\n \n deleteTool: (id) => {\n set((state) => ({\n tools: state.tools.filter((tool) => tool.id !== id || tool.isBuiltIn),\n }));\n get().saveTools();\n },\n \n toggleTool: (id) => {\n set((state) => ({\n tools: state.tools.map((tool) =>\n tool.id === id ? { ...tool, enabled: !tool.enabled } : tool\n ),\n }));\n get().saveTools();\n },\n \n getEnabledTools: () => {\n return get().tools.filter((tool) => tool.enabled);\n },\n \n loadTools: async () => {\n try {\n const storeConfigs = [{ name: \"config\", keyPath: \"id\" }];\n const data = await indexedDBService.get(\"banditConfig\", 1, \"config\", \"mcpTools\", storeConfigs);\n \n if (data?.tools && Array.isArray(data.tools)) {\n // Merge saved tools with built-in tools, ensuring built-ins always use default definition\n const savedTools = data.tools as MCPTool[];\n const builtInIds = defaultTools.map(t => t.id);\n const customTools = savedTools.filter(\n (tool) => !tool.isBuiltIn && !builtInIds.includes(tool.id)\n );\n\n set({\n tools: [...defaultTools, ...customTools],\n isLoaded: true\n });\n debugLogger.info(\"MCP tools loaded from IndexedDB\", { \n totalTools: defaultTools.length + customTools.length,\n builtInTools: defaultTools.length,\n customTools: customTools.length\n });\n } else {\n // First time, save defaults\n set({ isLoaded: true });\n await get().saveTools();\n debugLogger.info(\"Default MCP tools initialized\");\n }\n } catch (error) {\n debugLogger.error(\"Failed to load MCP tools from IndexedDB\", { error });\n set({ isLoaded: true }); // Mark as loaded even if failed, so UI can render\n }\n },\n \n saveTools: async () => {\n try {\n const { tools } = get();\n const storeConfigs = [{ name: \"config\", keyPath: \"id\" }];\n \n // Persist only user-defined custom tools — never built-ins or the dynamic\n // tools discovered from MCP servers (those are re-fetched from the gateway).\n const customTools = tools.filter((tool) => !tool.isBuiltIn && !tool.mcpServerId);\n\n await indexedDBService.put(\"banditConfig\", 1, \"config\", {\n id: \"mcpTools\",\n tools: customTools,\n }, storeConfigs);\n\n debugLogger.debug(\"MCP tools saved to IndexedDB\", { toolCount: customTools.length });\n } catch (error) {\n debugLogger.error(\"Failed to save MCP tools to IndexedDB\", { error });\n }\n },\n\n // Discover the user's connected MCP servers' tools from the gateway and merge\n // them into the tool list (so the model can call them). Replaces any prior\n // MCP-server tools; best-effort — a single unreachable server is skipped.\n loadMcpServerTools: async () => {\n let servers;\n try {\n servers = await listMcpServers();\n } catch (error) {\n debugLogger.warn(\"Could not list MCP servers\", { error: String(error) });\n return;\n }\n\n const collected: MCPTool[] = [];\n for (const server of servers.filter((s) => s.enabled)) {\n try {\n const { tools } = await discoverMcpTools(server.id);\n for (const t of tools) {\n const fnName = sanitizeMcpToolName(`mcp_${server.name}_${t.name}`);\n const schema =\n t.inputSchema && typeof t.inputSchema === \"object\" && (t.inputSchema as { type?: string }).type === \"object\"\n ? (t.inputSchema as MCPTool[\"function\"][\"parameters\"])\n : { type: \"object\" as const, properties: {}, required: [] };\n collected.push({\n id: `mcp-${server.id}-${t.name}`,\n name: fnName,\n description: t.description || `${t.name} (via ${server.name})`,\n enabled: true,\n type: \"function\",\n function: {\n name: fnName,\n description: t.description || `${t.name} — provided by the ${server.name} MCP server.`,\n parameters: schema,\n },\n mcpServerId: server.id,\n mcpToolName: t.name,\n });\n }\n } catch (error) {\n debugLogger.warn(\"Failed to discover tools for MCP server\", { server: server.name, error: String(error) });\n }\n }\n\n set((state) => ({\n tools: [...state.tools.filter((t) => !t.mcpServerId), ...collected],\n }));\n debugLogger.info(\"MCP server tools loaded\", { count: collected.length });\n },\n}));\n","import { usePackageSettingsStore } from \"../../store/packageSettingsStore\";\nimport { authenticationService } from \"../auth/authenticationService\";\n\n/**\n * Client for the gateway's MCP host (phase 1 backend at /api/mcp/servers + /invoke).\n * Lets users connect their own remote MCP servers; the gateway holds the configs\n * and proxies discovery/invocation. Mirrors mcpService's gateway-base + bearer\n * conventions (gatewayApiUrl already ends in /api, so paths start with /mcp/...).\n */\n\nexport interface McpServer {\n id: string;\n name: string;\n url: string;\n authType: string;\n hasAuth: boolean;\n headerName?: string | null;\n enabled: boolean;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface McpServerInput {\n name: string;\n url: string;\n authType?: \"none\" | \"bearer\" | \"header\";\n authValue?: string;\n headerName?: string;\n enabled?: boolean;\n}\n\nexport interface McpDiscoveredTool {\n name: string;\n description?: string;\n inputSchema?: Record<string, unknown>;\n}\n\nconst gatewayBase = (): string => {\n const settings = usePackageSettingsStore.getState().settings;\n const url = settings?.gatewayApiUrl?.replace(/\\/$/, \"\");\n if (!url) throw new Error(\"Gateway API is not configured.\");\n return url;\n};\n\nconst authHeaders = (): Record<string, string> => {\n const headers: Record<string, string> = { \"Content-Type\": \"application/json\" };\n const token = authenticationService.getToken();\n if (token) headers[\"Authorization\"] = `Bearer ${token}`;\n return headers;\n};\n\nconst parse = async (res: Response) => {\n const text = await res.text();\n const body = text ? JSON.parse(text) : null;\n if (!res.ok) {\n const message =\n (body && typeof body === \"object\" && (body.error || body.message)) ||\n `Request failed (${res.status})`;\n throw new Error(String(message));\n }\n return body;\n};\n\nexport const listMcpServers = async (): Promise<McpServer[]> =>\n parse(await fetch(`${gatewayBase()}/mcp/servers`, { headers: authHeaders() }));\n\nexport const addMcpServer = async (input: McpServerInput): Promise<McpServer> =>\n parse(\n await fetch(`${gatewayBase()}/mcp/servers`, {\n method: \"POST\",\n headers: authHeaders(),\n body: JSON.stringify(input),\n }),\n );\n\nexport const updateMcpServer = async (\n id: string,\n input: Partial<McpServerInput>,\n): Promise<McpServer> =>\n parse(\n await fetch(`${gatewayBase()}/mcp/servers/${encodeURIComponent(id)}`, {\n method: \"PUT\",\n headers: authHeaders(),\n body: JSON.stringify(input),\n }),\n );\n\nexport const deleteMcpServer = async (id: string): Promise<void> => {\n const res = await fetch(`${gatewayBase()}/mcp/servers/${encodeURIComponent(id)}`, {\n method: \"DELETE\",\n headers: authHeaders(),\n });\n if (!res.ok && res.status !== 204) {\n throw new Error(`Could not remove the server (${res.status}).`);\n }\n};\n\nexport const discoverMcpTools = async (\n id: string,\n): Promise<{ serverId: string; server: string; tools: McpDiscoveredTool[] }> =>\n parse(await fetch(`${gatewayBase()}/mcp/servers/${encodeURIComponent(id)}/tools`, { headers: authHeaders() }));\n"],"mappings":"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","names":[]}
|
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
useMemoryStore,
|
|
7
7
|
useNotification,
|
|
8
8
|
useVectorStore
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-ZW3YNAD7.mjs";
|
|
10
10
|
import {
|
|
11
11
|
useModelStore,
|
|
12
12
|
usePackageSettingsStore,
|
|
13
13
|
usePreferencesStore
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-ZOCXFQID.mjs";
|
|
15
15
|
import {
|
|
16
16
|
GatewayService,
|
|
17
17
|
authenticationService
|
|
@@ -8806,4 +8806,4 @@ export {
|
|
|
8806
8806
|
themeMap_default,
|
|
8807
8807
|
useNotificationService
|
|
8808
8808
|
};
|
|
8809
|
-
//# sourceMappingURL=chunk-
|
|
8809
|
+
//# sourceMappingURL=chunk-RN7FRSMX.mjs.map
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
} from "./chunk-ONQMRE2G.mjs";
|
|
4
4
|
import {
|
|
5
5
|
aiProviderInitService
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-B2TJZM4Z.mjs";
|
|
7
7
|
import {
|
|
8
8
|
useMCPToolsStore
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-IS2LWSBZ.mjs";
|
|
10
10
|
import {
|
|
11
11
|
FeatureFlagProvider,
|
|
12
12
|
NotificationProvider,
|
|
@@ -19,13 +19,13 @@ import {
|
|
|
19
19
|
useKnowledgeStore2,
|
|
20
20
|
useMemoryStore,
|
|
21
21
|
useProjectStore
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-ZW3YNAD7.mjs";
|
|
23
23
|
import {
|
|
24
24
|
indexedDBService_default,
|
|
25
25
|
useModelStore,
|
|
26
26
|
usePackageSettingsStore,
|
|
27
27
|
usePreferencesStore
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-ZOCXFQID.mjs";
|
|
29
29
|
import {
|
|
30
30
|
AUTH_TOKEN_CHANGED_EVENT,
|
|
31
31
|
authenticationService
|
|
@@ -191,4 +191,4 @@ export {
|
|
|
191
191
|
ChatProvider,
|
|
192
192
|
chat_provider_default
|
|
193
193
|
};
|
|
194
|
-
//# sourceMappingURL=chunk-
|
|
194
|
+
//# sourceMappingURL=chunk-TVPYBRWF.mjs.map
|
|
@@ -355,7 +355,7 @@ var usePreferencesStore = create2((set, get) => ({
|
|
|
355
355
|
}));
|
|
356
356
|
get().savePreferences();
|
|
357
357
|
if (key === "banditModelsEnabled" && prevValue !== value) {
|
|
358
|
-
import("./modelStore-
|
|
358
|
+
import("./modelStore-KBUW3XAV.mjs").then(({ useModelStore: useModelStore2 }) => {
|
|
359
359
|
useModelStore2.getState().handleBanditPersonalitiesPreferenceChange(value);
|
|
360
360
|
});
|
|
361
361
|
}
|
|
@@ -872,4 +872,4 @@ export {
|
|
|
872
872
|
usePreferencesStore,
|
|
873
873
|
useModelStore
|
|
874
874
|
};
|
|
875
|
-
//# sourceMappingURL=chunk-
|
|
875
|
+
//# sourceMappingURL=chunk-ZOCXFQID.mjs.map
|