@burtson-labs/bandit-engine 2.0.21 → 2.0.23

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.
Files changed (33) hide show
  1. package/dist/{chat-2Y72EFJ2.mjs → chat-VOVYLTMX.mjs} +4 -4
  2. package/dist/chat-provider.js +73 -47
  3. package/dist/chat-provider.js.map +1 -1
  4. package/dist/chat-provider.mjs +3 -3
  5. package/dist/{chunk-CY227I4F.mjs → chunk-6PQRG6W4.mjs} +3 -3
  6. package/dist/{chunk-2ZNIQD26.mjs → chunk-7RLN6ZGT.mjs} +53 -48
  7. package/dist/chunk-7RLN6ZGT.mjs.map +1 -0
  8. package/dist/{chunk-XEG45Q6V.mjs → chunk-GBANNFRD.mjs} +2 -2
  9. package/dist/{chunk-JECYIAWF.mjs → chunk-JTZL6WJJ.mjs} +6 -6
  10. package/dist/{chunk-L7UOQ2Y2.mjs → chunk-LG2JCTOE.mjs} +3 -3
  11. package/dist/{chunk-UMPVXYVC.mjs → chunk-XD5VJCFN.mjs} +23 -2
  12. package/dist/chunk-XD5VJCFN.mjs.map +1 -0
  13. package/dist/{chunk-6V2YMAX2.mjs → chunk-ZRTP2N7E.mjs} +74 -24
  14. package/dist/{chunk-6V2YMAX2.mjs.map → chunk-ZRTP2N7E.mjs.map} +1 -1
  15. package/dist/cli/cli.js +1 -1
  16. package/dist/cli/cli.js.map +1 -1
  17. package/dist/index.js +140 -65
  18. package/dist/index.js.map +1 -1
  19. package/dist/index.mjs +7 -7
  20. package/dist/management/management.js +140 -65
  21. package/dist/management/management.js.map +1 -1
  22. package/dist/management/management.mjs +5 -5
  23. package/dist/modals/chat-modal/chat-modal.js +22 -1
  24. package/dist/modals/chat-modal/chat-modal.js.map +1 -1
  25. package/dist/modals/chat-modal/chat-modal.mjs +3 -3
  26. package/package.json +1 -1
  27. package/dist/chunk-2ZNIQD26.mjs.map +0 -1
  28. package/dist/chunk-UMPVXYVC.mjs.map +0 -1
  29. /package/dist/{chat-2Y72EFJ2.mjs.map → chat-VOVYLTMX.mjs.map} +0 -0
  30. /package/dist/{chunk-CY227I4F.mjs.map → chunk-6PQRG6W4.mjs.map} +0 -0
  31. /package/dist/{chunk-XEG45Q6V.mjs.map → chunk-GBANNFRD.mjs.map} +0 -0
  32. /package/dist/{chunk-JECYIAWF.mjs.map → chunk-JTZL6WJJ.mjs.map} +0 -0
  33. /package/dist/{chunk-L7UOQ2Y2.mjs.map → chunk-LG2JCTOE.mjs.map} +0 -0
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  ChatProvider,
3
3
  chat_provider_default
4
- } from "./chunk-CY227I4F.mjs";
4
+ } from "./chunk-6PQRG6W4.mjs";
5
5
  import "./chunk-ONQMRE2G.mjs";
6
- import "./chunk-2ZNIQD26.mjs";
6
+ import "./chunk-7RLN6ZGT.mjs";
7
7
  import "./chunk-RTQDQ6TC.mjs";
8
- import "./chunk-UMPVXYVC.mjs";
8
+ import "./chunk-XD5VJCFN.mjs";
9
9
  import "./chunk-XUBYA5I7.mjs";
10
10
  import "./chunk-IHJPVIGB.mjs";
11
11
  import "./chunk-KCI46M23.mjs";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-ONQMRE2G.mjs";
4
4
  import {
5
5
  aiProviderInitService
6
- } from "./chunk-2ZNIQD26.mjs";
6
+ } from "./chunk-7RLN6ZGT.mjs";
7
7
  import {
8
8
  useMCPToolsStore
9
9
  } from "./chunk-RTQDQ6TC.mjs";
@@ -20,7 +20,7 @@ import {
20
20
  useKnowledgeStore2,
21
21
  useMemoryStore,
22
22
  useProjectStore
23
- } from "./chunk-UMPVXYVC.mjs";
23
+ } from "./chunk-XD5VJCFN.mjs";
24
24
  import {
25
25
  indexedDBService_default,
26
26
  useModelStore,
@@ -157,4 +157,4 @@ export {
157
157
  ChatProvider,
158
158
  chat_provider_default
159
159
  };
160
- //# sourceMappingURL=chunk-CY227I4F.mjs.map
160
+ //# sourceMappingURL=chunk-6PQRG6W4.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  authenticationService
3
- } from "./chunk-UMPVXYVC.mjs";
3
+ } from "./chunk-XD5VJCFN.mjs";
4
4
  import {
5
5
  indexedDBService_default,
6
6
  usePackageSettingsStore
@@ -42,58 +42,63 @@ var AIProviderInitService = class _AIProviderInitService {
42
42
  hasAiProvider: !!settings.aiProvider,
43
43
  ollamaUrl: settings.ollamaUrl
44
44
  });
45
- try {
46
- const savedConfig = await indexedDBService_default.get(
47
- "banditConfig",
48
- 1,
49
- "config",
50
- "aiProvider",
51
- [{ name: "config", keyPath: "id" }]
52
- );
53
- if (savedConfig) {
54
- debugLogger.info("AI Provider Init: Found saved config in IndexedDB", { type: savedConfig.type });
55
- const { id: _id, ...configWithoutId } = savedConfig;
56
- providerConfig = { ...configWithoutId };
57
- if ((providerConfig.type === "ollama" /* OLLAMA */ || providerConfig.type === "gateway" /* GATEWAY */) && !providerConfig.tokenFactory) {
58
- providerConfig.tokenFactory = () => {
59
- let token = authenticationService.getToken();
60
- if (!token) {
61
- token = localStorage.getItem("authToken");
62
- }
63
- if (!token) {
45
+ const isPlaygroundEnvironment = settings.playgroundMode === true || settings.aiProvider?.type === "playground" /* PLAYGROUND */ || (settings.gatewayApiUrl?.toLowerCase()?.startsWith("playground://") ?? false) || typeof window !== "undefined" && window.location.pathname.includes("/playground");
46
+ if (isPlaygroundEnvironment) {
47
+ debugLogger.info("AI Provider Init: Playground environment detected, bypassing saved provider config");
48
+ } else {
49
+ try {
50
+ const savedConfig = await indexedDBService_default.get(
51
+ "banditConfig",
52
+ 1,
53
+ "config",
54
+ "aiProvider",
55
+ [{ name: "config", keyPath: "id" }]
56
+ );
57
+ if (savedConfig) {
58
+ debugLogger.info("AI Provider Init: Found saved config in IndexedDB", { type: savedConfig.type });
59
+ const { id: _id, ...configWithoutId } = savedConfig;
60
+ providerConfig = { ...configWithoutId };
61
+ if ((providerConfig.type === "ollama" /* OLLAMA */ || providerConfig.type === "gateway" /* GATEWAY */) && !providerConfig.tokenFactory) {
62
+ providerConfig.tokenFactory = () => {
63
+ let token = authenticationService.getToken();
64
+ if (!token) {
65
+ token = localStorage.getItem("authToken");
66
+ }
67
+ if (!token) {
68
+ try {
69
+ const { useAuthenticationStore } = __require("../../store/authenticationStore");
70
+ const authStore = useAuthenticationStore.getState();
71
+ token = authStore.token;
72
+ } catch (e) {
73
+ }
74
+ }
75
+ debugLogger.info("AI Provider Init: IndexedDB config token factory", {
76
+ hasToken: !!token
77
+ });
78
+ return token;
79
+ };
80
+ }
81
+ try {
82
+ const { createProvider } = useAIProviderStore.getState();
83
+ createProvider(providerConfig);
84
+ const provider = useAIProviderStore.getState().provider;
85
+ if (provider) {
64
86
  try {
65
- const { useAuthenticationStore } = __require("../../store/authenticationStore");
66
- const authStore = useAuthenticationStore.getState();
67
- token = authStore.token;
68
- } catch (e) {
87
+ await provider.validateServiceAvailability({ timeoutMs: 5e3 });
88
+ debugLogger.info(`AI Provider initialized and validated from IndexedDB: ${providerConfig.type}`);
89
+ } catch (validationError) {
90
+ debugLogger.warn(`AI Provider created but validation failed`, { error: validationError });
69
91
  }
70
92
  }
71
- debugLogger.info("AI Provider Init: IndexedDB config token factory", {
72
- hasToken: !!token
73
- });
74
- return token;
75
- };
76
- }
77
- try {
78
- const { createProvider } = useAIProviderStore.getState();
79
- createProvider(providerConfig);
80
- const provider = useAIProviderStore.getState().provider;
81
- if (provider) {
82
- try {
83
- await provider.validateServiceAvailability({ timeoutMs: 5e3 });
84
- debugLogger.info(`AI Provider initialized and validated from IndexedDB: ${providerConfig.type}`);
85
- } catch (validationError) {
86
- debugLogger.warn(`AI Provider created but validation failed`, { error: validationError });
87
- }
93
+ return;
94
+ } catch (error) {
95
+ debugLogger.error("Failed to initialize saved provider config, falling back to package settings", { error });
88
96
  }
89
- return;
90
- } catch (error) {
91
- debugLogger.error("Failed to initialize saved provider config, falling back to package settings", { error });
92
97
  }
98
+ debugLogger.info("AI Provider Init: No saved config found, using package settings");
99
+ } catch (error) {
100
+ debugLogger.warn("AI Provider Init: Failed to load from IndexedDB, using package settings", { error });
93
101
  }
94
- debugLogger.info("AI Provider Init: No saved config found, using package settings");
95
- } catch (error) {
96
- debugLogger.warn("AI Provider Init: Failed to load from IndexedDB, using package settings", { error });
97
102
  }
98
103
  if (settings.aiProvider) {
99
104
  providerConfig = { ...settings.aiProvider };
@@ -256,4 +261,4 @@ var aiProviderInitService = AIProviderInitService.getInstance();
256
261
  export {
257
262
  aiProviderInitService
258
263
  };
259
- //# sourceMappingURL=chunk-2ZNIQD26.mjs.map
264
+ //# sourceMappingURL=chunk-7RLN6ZGT.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/services/ai-provider-init.service.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-BFD5-C74863\nconst __banditFingerprint_services_aiproviderinitservicets = 'BL-FP-DDF978-53AF';\nconst __auditTrail_services_aiproviderinitservicets = 'BL-AU-MGOIKVVR-WP87';\n// File: ai-provider-init.service.ts | Path: src/services/ai-provider-init.service.ts | Hash: bfd553af\n\nimport { useAIProviderStore } from \"../store/aiProviderStore\";\nimport { usePackageSettingsStore } from \"../store/packageSettingsStore\";\nimport { AIProviderConfig, AIProviderType } from \"./ai-provider/types/common.types\";\nimport { authenticationService } from \"./auth/authenticationService\";\nimport { debugLogger } from \"./logging/debugLogger\";\nimport indexedDBService from \"./indexedDB/indexedDBService\";\n\ntype StoredAIProviderConfig = AIProviderConfig & { id?: string };\n\n/**\n * Service to initialize AI providers based on package settings\n */\nexport class AIProviderInitService {\n private static instance: AIProviderInitService;\n\n private constructor() {}\n\n static getInstance(): AIProviderInitService {\n if (!AIProviderInitService.instance) {\n AIProviderInitService.instance = new AIProviderInitService();\n }\n return AIProviderInitService.instance;\n }\n\n /**\n * Initialize AI provider from package settings\n * Provides backward compatibility with existing Ollama settings\n */\n async initializeFromSettings(): Promise<void> {\n const settings = usePackageSettingsStore.getState().settings;\n if (!settings) {\n debugLogger.warn(\"No package settings found, cannot initialize AI provider\");\n return;\n }\n\n let providerConfig: AIProviderConfig;\n\n debugLogger.info(\"AI Provider Init: Starting initialization\", { \n hasSettings: !!settings,\n hasAiProvider: !!settings.aiProvider,\n ollamaUrl: settings.ollamaUrl\n });\n\n const isPlaygroundEnvironment =\n settings.playgroundMode === true ||\n settings.aiProvider?.type === AIProviderType.PLAYGROUND ||\n (settings.gatewayApiUrl?.toLowerCase()?.startsWith(\"playground://\") ?? false) ||\n (typeof window !== \"undefined\" && window.location.pathname.includes(\"/playground\"));\n\n // First, try to load provider configuration from IndexedDB\n if (isPlaygroundEnvironment) {\n debugLogger.info(\"AI Provider Init: Playground environment detected, bypassing saved provider config\");\n } else {\n try {\n const savedConfig = await indexedDBService.get<StoredAIProviderConfig>(\n 'banditConfig', \n 1, \n 'config', \n 'aiProvider',\n [{ name: 'config', keyPath: 'id' }]\n );\n \n if (savedConfig) {\n debugLogger.info('AI Provider Init: Found saved config in IndexedDB', { type: savedConfig.type });\n \n // Filter out the 'id' property that was added for IndexedDB storage\n const { id: _id, ...configWithoutId } = savedConfig;\n providerConfig = { ...configWithoutId };\n \n // Ensure tokenFactory is present for providers that need it\n if ((providerConfig.type === AIProviderType.OLLAMA || providerConfig.type === AIProviderType.GATEWAY) && !providerConfig.tokenFactory) {\n providerConfig.tokenFactory = () => {\n // Try multiple sources for the token\n let token = authenticationService.getToken();\n \n // If the bandit-engine's service doesn't have a token, try direct localStorage access\n if (!token) {\n token = localStorage.getItem(\"authToken\");\n }\n \n // Also try the authentication store if available\n if (!token) {\n try {\n const { useAuthenticationStore } = require(\"../../store/authenticationStore\");\n const authStore = useAuthenticationStore.getState();\n token = authStore.token;\n } catch (e) {\n // Store might not be available, that's ok\n }\n }\n \n debugLogger.info(\"AI Provider Init: IndexedDB config token factory\", { \n hasToken: !!token\n });\n return token;\n };\n }\n \n // Initialize the provider with saved config\n try {\n const { createProvider } = useAIProviderStore.getState();\n createProvider(providerConfig);\n \n const provider = useAIProviderStore.getState().provider;\n if (provider) {\n try {\n await provider.validateServiceAvailability({ timeoutMs: 5000 });\n debugLogger.info(`AI Provider initialized and validated from IndexedDB: ${providerConfig.type}`);\n } catch (validationError) {\n debugLogger.warn(`AI Provider created but validation failed`, { error: validationError });\n }\n }\n return; // Successfully initialized from IndexedDB\n } catch (error) {\n debugLogger.error(\"Failed to initialize saved provider config, falling back to package settings\", { error });\n }\n }\n \n debugLogger.info('AI Provider Init: No saved config found, using package settings');\n } catch (error) {\n debugLogger.warn('AI Provider Init: Failed to load from IndexedDB, using package settings', { error });\n }\n }\n\n // Fallback to package settings if no saved config found\n if (settings.aiProvider) {\n providerConfig = { ...settings.aiProvider };\n \n // Ensure tokenFactory is present for Ollama providers\n if (providerConfig.type === AIProviderType.OLLAMA && !providerConfig.tokenFactory) {\n providerConfig.tokenFactory = () => {\n // Try multiple sources for the token\n let token = authenticationService.getToken();\n \n // If the bandit-engine's service doesn't have a token, try direct localStorage access\n if (!token) {\n token = localStorage.getItem(\"authToken\");\n }\n \n // Also try the authentication store if available\n if (!token) {\n try {\n const { useAuthenticationStore } = require(\"../../store/authenticationStore\");\n const authStore = useAuthenticationStore.getState();\n token = authStore.token;\n } catch (e) {\n // Store might not be available, that's ok\n }\n }\n \n debugLogger.info(\"AIProviderInit: Explicit config tokenFactory\", { \n hasToken: !!token,\n localStorage: !!localStorage.getItem(\"authToken\")\n });\n return token;\n };\n }\n \n debugLogger.info(\"Using explicit AI provider config\", providerConfig);\n } else {\n // Fall back to legacy Ollama settings for backward compatibility\n providerConfig = {\n type: AIProviderType.OLLAMA,\n baseUrl: settings.ollamaUrl,\n tokenFactory: () => {\n // Try multiple sources for the token\n let token = authenticationService.getToken();\n \n // If the bandit-engine's service doesn't have a token, try direct localStorage access\n if (!token) {\n token = localStorage.getItem(\"authToken\");\n }\n \n // Also try the authentication store if available\n if (!token) {\n try {\n const { useAuthenticationStore } = require(\"../../store/authenticationStore\");\n const authStore = useAuthenticationStore.getState();\n token = authStore.token;\n } catch (e) {\n // Store might not be available, that's ok\n }\n }\n \n debugLogger.info(\"AIProviderInit: Token factory called\", { \n hasToken: !!token,\n localStorage: !!localStorage.getItem(\"authToken\")\n });\n return token;\n }\n };\n debugLogger.info(\"Using legacy Ollama config\", providerConfig);\n }\n\n try {\n // First validate if the service is available\n const { createProvider } = useAIProviderStore.getState();\n \n // Try to create and validate the provider\n createProvider(providerConfig);\n \n // Test provider availability\n const provider = useAIProviderStore.getState().provider;\n if (provider) {\n try {\n await provider.validateServiceAvailability({ timeoutMs: 5000 });\n debugLogger.info(`AI Provider initialized and validated: ${providerConfig.type}`);\n } catch (validationError) {\n debugLogger.warn(`AI Provider created but validation failed:`, { error: validationError });\n // Provider is created but may not be fully available - this is ok for offline scenarios\n }\n }\n } catch (error) {\n debugLogger.error(\"Failed to initialize AI provider:\", { error });\n \n // Try to fall back to default Ollama if initial provider fails\n if (providerConfig.type !== AIProviderType.OLLAMA) {\n try {\n const fallbackConfig: AIProviderConfig = {\n type: AIProviderType.OLLAMA,\n baseUrl: settings.ollamaUrl || 'http://localhost:11434',\n tokenFactory: () => {\n // Try multiple sources for the token\n let token = authenticationService.getToken();\n \n // If the bandit-engine's service doesn't have a token, try direct localStorage access\n if (!token) {\n token = localStorage.getItem(\"authToken\");\n }\n \n // Also try the authentication store if available\n if (!token) {\n try {\n const { useAuthenticationStore } = require(\"../../store/authenticationStore\");\n const authStore = useAuthenticationStore.getState();\n token = authStore.token;\n } catch (e) {\n // Store might not be available, that's ok\n }\n }\n \n debugLogger.info(\"AIProviderInit: Fallback tokenFactory\", { \n hasToken: !!token,\n localStorage: !!localStorage.getItem(\"authToken\")\n });\n return token;\n }\n };\n const { createProvider } = useAIProviderStore.getState();\n createProvider(fallbackConfig);\n debugLogger.info(\"Fallback to Ollama provider successful\");\n } catch (fallbackError) {\n debugLogger.error(\"Failed to initialize fallback Ollama provider:\", { error: fallbackError });\n }\n } else {\n // If Ollama provider fails, try localhost as ultimate fallback\n try {\n const localFallbackConfig: AIProviderConfig = {\n type: AIProviderType.OLLAMA,\n baseUrl: 'http://localhost:11434',\n tokenFactory: () => {\n // Try multiple sources for the token\n let token = authenticationService.getToken();\n \n // If the bandit-engine's service doesn't have a token, try direct localStorage access\n if (!token) {\n token = localStorage.getItem(\"authToken\");\n }\n \n // Also try the authentication store if available\n if (!token) {\n try {\n const { useAuthenticationStore } = require(\"../../store/authenticationStore\");\n const authStore = useAuthenticationStore.getState();\n token = authStore.token;\n } catch (e) {\n // Store might not be available, that's ok\n }\n }\n \n debugLogger.info(\"AIProviderInit: Local fallback tokenFactory\", { \n hasToken: !!token,\n localStorage: !!localStorage.getItem(\"authToken\")\n });\n return token;\n }\n };\n const { createProvider } = useAIProviderStore.getState();\n createProvider(localFallbackConfig);\n debugLogger.info(\"Fallback to localhost Ollama provider successful\");\n } catch (localFallbackError) {\n debugLogger.error(\"All provider initialization attempts failed:\", { error: localFallbackError });\n }\n }\n }\n }\n\n /**\n * Switch to a different AI provider\n */\n switchProvider(config: AIProviderConfig): void {\n try {\n const { switchProvider } = useAIProviderStore.getState();\n switchProvider(config);\n debugLogger.info(`Switched to AI provider: ${config.type}`);\n } catch (error) {\n debugLogger.error(\"Failed to switch AI provider:\", { error });\n throw error;\n }\n }\n\n /**\n * Get the current provider type\n */\n getCurrentProviderType(): string | null {\n const provider = useAIProviderStore.getState().provider;\n return provider ? provider.getProviderType() : null;\n }\n\n /**\n * Check if a provider is initialized\n */\n isProviderInitialized(): boolean {\n return useAIProviderStore.getState().provider !== null;\n }\n}\n\nexport const aiProviderInitService = AIProviderInitService.getInstance();\n"],"mappings":"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","names":[]}
@@ -8,7 +8,7 @@ import {
8
8
  useMemoryStore,
9
9
  useNotification,
10
10
  useVectorStore
11
- } from "./chunk-UMPVXYVC.mjs";
11
+ } from "./chunk-XD5VJCFN.mjs";
12
12
  import {
13
13
  useModelStore,
14
14
  usePackageSettingsStore,
@@ -8922,4 +8922,4 @@ export {
8922
8922
  FeedbackButton,
8923
8923
  useNotificationService
8924
8924
  };
8925
- //# sourceMappingURL=chunk-XEG45Q6V.mjs.map
8925
+ //# sourceMappingURL=chunk-GBANNFRD.mjs.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  aiProviderInitService
3
- } from "./chunk-2ZNIQD26.mjs";
3
+ } from "./chunk-7RLN6ZGT.mjs";
4
4
  import {
5
5
  useMCPToolsStore
6
6
  } from "./chunk-RTQDQ6TC.mjs";
7
7
  import {
8
8
  chat_modal_default
9
- } from "./chunk-L7UOQ2Y2.mjs";
9
+ } from "./chunk-LG2JCTOE.mjs";
10
10
  import {
11
11
  DocumentCard_default,
12
12
  banditDarkTheme,
@@ -14,7 +14,7 @@ import {
14
14
  predefinedThemes,
15
15
  useNotificationService,
16
16
  useVoiceStore
17
- } from "./chunk-XEG45Q6V.mjs";
17
+ } from "./chunk-GBANNFRD.mjs";
18
18
  import {
19
19
  authenticationService,
20
20
  brandingService_default,
@@ -27,7 +27,7 @@ import {
27
27
  useFeatures,
28
28
  useKnowledgeStore2 as useKnowledgeStore,
29
29
  useVectorStore
30
- } from "./chunk-UMPVXYVC.mjs";
30
+ } from "./chunk-XD5VJCFN.mjs";
31
31
  import {
32
32
  indexedDBService_default,
33
33
  models,
@@ -7608,7 +7608,7 @@ var MCPToolsTabV2_default = MCPToolsTabV2;
7608
7608
 
7609
7609
  // src/management/management.tsx
7610
7610
  import { jsx as jsx11, jsxs as jsxs11 } from "react/jsx-runtime";
7611
- var preloadChatPage = () => import("./chat-2Y72EFJ2.mjs");
7611
+ var preloadChatPage = () => import("./chat-VOVYLTMX.mjs");
7612
7612
  var Management = () => {
7613
7613
  const navigate = useNavigate();
7614
7614
  const notificationService = useNotificationService();
@@ -8786,4 +8786,4 @@ export {
8786
8786
  useGatewayMemory,
8787
8787
  management_default
8788
8788
  };
8789
- //# sourceMappingURL=chunk-JECYIAWF.mjs.map
8789
+ //# sourceMappingURL=chunk-JTZL6WJJ.mjs.map
@@ -8,14 +8,14 @@ import {
8
8
  useNotificationService,
9
9
  useTTS,
10
10
  useVoiceStore
11
- } from "./chunk-XEG45Q6V.mjs";
11
+ } from "./chunk-GBANNFRD.mjs";
12
12
  import {
13
13
  brandingService_default,
14
14
  toTitleCase,
15
15
  useAIQueryStore,
16
16
  useConversationStore,
17
17
  useMemoryStore
18
- } from "./chunk-UMPVXYVC.mjs";
18
+ } from "./chunk-XD5VJCFN.mjs";
19
19
  import {
20
20
  indexedDBService_default,
21
21
  useModelStore,
@@ -2807,4 +2807,4 @@ export {
2807
2807
  MAX_WINDOWED_HEIGHT,
2808
2808
  chat_modal_default
2809
2809
  };
2810
- //# sourceMappingURL=chunk-L7UOQ2Y2.mjs.map
2810
+ //# sourceMappingURL=chunk-LG2JCTOE.mjs.map
@@ -430,13 +430,27 @@ var useConversationStore = create3((set, get) => ({
430
430
  });
431
431
  },
432
432
  deleteConversation: (id) => {
433
+ const runHydrate = async () => {
434
+ try {
435
+ await get().hydrate();
436
+ } catch (error) {
437
+ debugLogger.warn("conversationStore: rehydrate after delete failed", {
438
+ error: error instanceof Error ? error.message : String(error)
439
+ });
440
+ }
441
+ };
433
442
  set((state) => {
434
443
  const filtered = state.conversations.filter((c) => c.id !== id);
435
444
  const isDeletingCurrent = state.currentId === id;
436
445
  if (isDeletingCurrent) {
437
446
  useAIQueryStore.getState().reset();
438
447
  }
439
- deleteConversationFromDB(id);
448
+ deleteConversationFromDB(id).then(runHydrate).catch((error) => {
449
+ debugLogger.error("Failed to delete conversation from DB", {
450
+ error,
451
+ conversationId: id
452
+ });
453
+ });
440
454
  emitConversationDelete(id);
441
455
  return {
442
456
  conversations: filtered,
@@ -606,6 +620,13 @@ var useConversationStore = create3((set, get) => ({
606
620
  currentId: isCurrentDeleted ? null : state.currentId
607
621
  };
608
622
  });
623
+ try {
624
+ await get().hydrate();
625
+ } catch (error) {
626
+ debugLogger.warn("conversationStore: hydrate failed after remote delete", {
627
+ error: error instanceof Error ? error.message : String(error)
628
+ });
629
+ }
609
630
  }
610
631
  }));
611
632
  function normalizeConversation(conversation) {
@@ -5655,4 +5676,4 @@ export {
5655
5676
  useNotification,
5656
5677
  NotificationProvider
5657
5678
  };
5658
- //# sourceMappingURL=chunk-UMPVXYVC.mjs.map
5679
+ //# sourceMappingURL=chunk-XD5VJCFN.mjs.map