@burtson-labs/bandit-engine 2.0.99 → 2.0.101
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/{aiProviderStore-337QNQB3.mjs → aiProviderStore-FTD277QP.mjs} +2 -2
- package/dist/chat-PMO3WTM4.mjs +16 -0
- package/dist/chat-provider.js +152 -111
- package/dist/chat-provider.js.map +1 -1
- package/dist/chat-provider.mjs +5 -5
- package/dist/{chunk-J2PMXOV2.mjs → chunk-37JLV5PU.mjs} +18 -143
- package/dist/chunk-37JLV5PU.mjs.map +1 -0
- package/dist/{chunk-H3BYFEIE.mjs → chunk-43MLINPL.mjs} +157 -7
- package/dist/chunk-43MLINPL.mjs.map +1 -0
- package/dist/{chunk-L2EKYO4F.mjs → chunk-BN3D45E2.mjs} +4 -4
- package/dist/{chunk-ZLXWNTFK.mjs → chunk-HAUDGBUS.mjs} +3 -5
- package/dist/{chunk-ZLXWNTFK.mjs.map → chunk-HAUDGBUS.mjs.map} +1 -1
- package/dist/{chunk-I7WBZVTR.mjs → chunk-JTDQTYJR.mjs} +13 -13
- package/dist/chunk-JTDQTYJR.mjs.map +1 -0
- package/dist/{chunk-RUMVTVNM.mjs → chunk-KYC7CC6C.mjs} +2 -2
- package/dist/{chunk-C2SY64XM.mjs → chunk-R3HBSHLE.mjs} +92 -46
- package/dist/chunk-R3HBSHLE.mjs.map +1 -0
- package/dist/{chunk-AGT77Z3A.mjs → chunk-RN3AKXKI.mjs} +4 -4
- package/dist/{chunk-IVLVUNIB.mjs → chunk-VIKZPBVO.mjs} +5 -5
- package/dist/{chunk-OSSZ7Z2O.mjs → chunk-VTKRZNLI.mjs} +8 -6
- package/dist/{chunk-OSSZ7Z2O.mjs.map → chunk-VTKRZNLI.mjs.map} +1 -1
- package/dist/index.js +106 -36
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +13 -12
- package/dist/index.mjs.map +1 -1
- package/dist/management/management.js +252 -182
- package/dist/management/management.js.map +1 -1
- package/dist/management/management.mjs +8 -8
- package/dist/modals/chat-modal/chat-modal.js +161 -121
- package/dist/modals/chat-modal/chat-modal.js.map +1 -1
- package/dist/modals/chat-modal/chat-modal.mjs +4 -4
- package/package.json +1 -1
- package/dist/chat-IOBCRT5Y.mjs +0 -16
- package/dist/chunk-C2SY64XM.mjs.map +0 -1
- package/dist/chunk-H3BYFEIE.mjs.map +0 -1
- package/dist/chunk-I7WBZVTR.mjs.map +0 -1
- package/dist/chunk-J2PMXOV2.mjs.map +0 -1
- /package/dist/{aiProviderStore-337QNQB3.mjs.map → aiProviderStore-FTD277QP.mjs.map} +0 -0
- /package/dist/{chat-IOBCRT5Y.mjs.map → chat-PMO3WTM4.mjs.map} +0 -0
- /package/dist/{chunk-L2EKYO4F.mjs.map → chunk-BN3D45E2.mjs.map} +0 -0
- /package/dist/{chunk-RUMVTVNM.mjs.map → chunk-KYC7CC6C.mjs.map} +0 -0
- /package/dist/{chunk-AGT77Z3A.mjs.map → chunk-RN3AKXKI.mjs.map} +0 -0
- /package/dist/{chunk-IVLVUNIB.mjs.map → chunk-VIKZPBVO.mjs.map} +0 -0
|
@@ -1 +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 if (providerConfig.type === AIProviderType.ANTHROPIC) {\n providerConfig = this.convertAnthropicConfig(providerConfig, settings?.gatewayApiUrl);\n }\n\n // Ensure tokenFactory is present for providers that need it\n providerConfig = this.ensureTokenFactory(providerConfig);\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 if (providerConfig.type === AIProviderType.ANTHROPIC) {\n providerConfig = this.convertAnthropicConfig(providerConfig, settings.gatewayApiUrl);\n }\n \n providerConfig = this.ensureTokenFactory(providerConfig);\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 normalizedConfig = this.ensureTokenFactory({ ...config });\n const { switchProvider } = useAIProviderStore.getState();\n switchProvider(normalizedConfig);\n debugLogger.info(`Switched to AI provider: ${normalizedConfig.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 private convertAnthropicConfig(config: AIProviderConfig, gatewayUrl?: string | null): AIProviderConfig {\n if (config.type !== AIProviderType.ANTHROPIC) {\n return config;\n }\n\n const defaultModel = typeof config.defaultModel === 'string' && config.defaultModel.trim()\n ? config.defaultModel.trim()\n : 'claude-3-5-sonnet-latest';\n\n const normalized: AIProviderConfig = {\n type: AIProviderType.GATEWAY,\n gatewayUrl: gatewayUrl || config.gatewayUrl || '',\n provider: 'anthropic',\n defaultModel,\n tokenFactory: config.tokenFactory\n };\n\n debugLogger.info('AI Provider Init: Converted direct Anthropic provider to gateway configuration');\n return normalized;\n }\n\n /**\n * Ensure providers that require auth have a token factory configured.\n * Handles both UI auth tokens and API key scenarios.\n */\n private ensureTokenFactory(config: AIProviderConfig): AIProviderConfig {\n if (config.type === AIProviderType.OLLAMA || config.type === AIProviderType.GATEWAY) {\n const existingFactory = config.tokenFactory;\n if (existingFactory) {\n return config;\n }\n\n // Prefer explicit API key if provided\n if (typeof config.apiKey === 'string' && config.apiKey.trim() !== '') {\n const key = config.apiKey.trim();\n config.tokenFactory = () => key;\n debugLogger.info(\"AIProviderInit: Using API key for token factory\", {\n type: config.type,\n hasKey: true\n });\n return config;\n }\n\n // Fallback to stored auth tokens (UI sessions)\n config.tokenFactory = () => {\n // Try multiple sources for the token\n let token = authenticationService.getToken();\n\n if (!token && typeof localStorage !== 'undefined') {\n try {\n token = localStorage.getItem(\"authToken\");\n } catch {\n // ignore storage errors\n }\n }\n\n if (!token) {\n try {\n const { useAuthenticationStore } = require(\"../../store/authenticationStore\");\n const authStore = useAuthenticationStore.getState();\n token = authStore.token;\n } catch {\n // Store might not be available, that's ok\n }\n }\n\n debugLogger.info(\"AIProviderInit: Token factory resolved auth token\", { \n hasToken: !!token,\n });\n return token;\n };\n }\n\n return config;\n }\n}\n\nexport const aiProviderInitService = AIProviderInitService.getInstance();\n"],"mappings":"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","names":[]}
|
|
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 if (providerConfig.type === AIProviderType.ANTHROPIC) {\n providerConfig = this.convertAnthropicConfig(providerConfig, settings?.gatewayApiUrl);\n }\n\n // Ensure tokenFactory is present for providers that need it\n providerConfig = this.ensureTokenFactory(providerConfig);\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 if (providerConfig.type === AIProviderType.ANTHROPIC) {\n providerConfig = this.convertAnthropicConfig(providerConfig, settings.gatewayApiUrl);\n }\n \n providerConfig = this.ensureTokenFactory(providerConfig);\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 normalizedConfig = this.ensureTokenFactory({ ...config });\n const { switchProvider } = useAIProviderStore.getState();\n switchProvider(normalizedConfig);\n debugLogger.info(`Switched to AI provider: ${normalizedConfig.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 private convertAnthropicConfig(config: AIProviderConfig, gatewayUrl?: string | null): AIProviderConfig {\n if (config.type !== AIProviderType.ANTHROPIC) {\n return config;\n }\n\n const defaultModel = typeof config.defaultModel === 'string' && config.defaultModel.trim()\n ? config.defaultModel.trim()\n : 'claude-3-5-sonnet-latest';\n\n const normalized: AIProviderConfig = {\n type: AIProviderType.GATEWAY,\n gatewayUrl: gatewayUrl || config.gatewayUrl || '',\n provider: 'anthropic',\n defaultModel,\n tokenFactory: config.tokenFactory\n };\n\n debugLogger.info('AI Provider Init: Converted direct Anthropic provider to gateway configuration');\n return normalized;\n }\n\n /**\n * Ensure providers that require auth have a token factory configured.\n * Handles both UI auth tokens and API key scenarios.\n */\n private ensureTokenFactory(config: AIProviderConfig): AIProviderConfig {\n if (config.type === AIProviderType.OLLAMA || config.type === AIProviderType.GATEWAY) {\n const existingFactory = config.tokenFactory;\n if (existingFactory) {\n return config;\n }\n\n // Prefer explicit API key if provided\n if (typeof config.apiKey === 'string' && config.apiKey.trim() !== '') {\n const key = config.apiKey.trim();\n config.tokenFactory = () => key;\n debugLogger.info(\"AIProviderInit: Using API key for token factory\", {\n type: config.type,\n hasKey: true\n });\n return config;\n }\n\n // Fallback to stored auth tokens (UI sessions)\n config.tokenFactory = () => {\n // Try multiple sources for the token\n let token = authenticationService.getToken();\n\n if (!token && typeof localStorage !== 'undefined') {\n try {\n token = localStorage.getItem(\"authToken\");\n } catch {\n // ignore storage errors\n }\n }\n\n if (!token) {\n try {\n const { useAuthenticationStore } = require(\"../../store/authenticationStore\");\n const authStore = useAuthenticationStore.getState();\n token = authStore.token;\n } catch {\n // Store might not be available, that's ok\n }\n }\n\n debugLogger.info(\"AIProviderInit: Token factory resolved auth token\", { \n hasToken: !!token,\n });\n return token;\n };\n }\n\n return config;\n }\n}\n\nexport const aiProviderInitService = AIProviderInitService.getInstance();\n"],"mappings":"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","names":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
StreamingMarkdown_default
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KYC7CC6C.mjs";
|
|
4
4
|
import {
|
|
5
5
|
aiProviderInitService
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-HAUDGBUS.mjs";
|
|
7
7
|
import {
|
|
8
8
|
addMcpServer,
|
|
9
9
|
deleteMcpServer,
|
|
@@ -11,10 +11,10 @@ import {
|
|
|
11
11
|
listMcpServers,
|
|
12
12
|
updateMcpServer,
|
|
13
13
|
useMCPToolsStore
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-BN3D45E2.mjs";
|
|
15
15
|
import {
|
|
16
16
|
chat_modal_default
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-RN3AKXKI.mjs";
|
|
18
18
|
import {
|
|
19
19
|
AddIcon,
|
|
20
20
|
ArchiveIcon,
|
|
@@ -86,21 +86,19 @@ import {
|
|
|
86
86
|
predefinedThemes,
|
|
87
87
|
useNotificationService,
|
|
88
88
|
useVoiceStore
|
|
89
|
-
} from "./chunk-
|
|
89
|
+
} from "./chunk-VIKZPBVO.mjs";
|
|
90
90
|
import {
|
|
91
91
|
TOPICS,
|
|
92
|
-
authenticationService,
|
|
93
92
|
brandingService_default,
|
|
94
93
|
detectTransparency,
|
|
95
94
|
fetchAndConvertToBase64,
|
|
96
95
|
resolveAvatar,
|
|
97
|
-
useAuthenticationStore,
|
|
98
96
|
useConversationSyncStore,
|
|
99
97
|
useFeatureVisibility,
|
|
100
98
|
useFeatures,
|
|
101
99
|
useKnowledgeStore2 as useKnowledgeStore,
|
|
102
100
|
useVectorStore
|
|
103
|
-
} from "./chunk-
|
|
101
|
+
} from "./chunk-37JLV5PU.mjs";
|
|
104
102
|
import {
|
|
105
103
|
indexedDBService_default,
|
|
106
104
|
models,
|
|
@@ -111,8 +109,10 @@ import {
|
|
|
111
109
|
import {
|
|
112
110
|
AIProviderFactory,
|
|
113
111
|
GatewayService,
|
|
114
|
-
|
|
115
|
-
|
|
112
|
+
authenticationService,
|
|
113
|
+
useAIProviderStore,
|
|
114
|
+
useAuthenticationStore
|
|
115
|
+
} from "./chunk-43MLINPL.mjs";
|
|
116
116
|
import {
|
|
117
117
|
debugLogger
|
|
118
118
|
} from "./chunk-KCI46M23.mjs";
|
|
@@ -2579,7 +2579,7 @@ var PreferencesTab = ({
|
|
|
2579
2579
|
{
|
|
2580
2580
|
variant: "h5",
|
|
2581
2581
|
color: "text.primary",
|
|
2582
|
-
sx: { mb: 1, fontWeight: 600, fontSize: { xs: "1.
|
|
2582
|
+
sx: { mb: 1, fontWeight: 600, fontSize: { xs: "1.3rem", md: "1.45rem" } },
|
|
2583
2583
|
children: "Preferences"
|
|
2584
2584
|
}
|
|
2585
2585
|
),
|
|
@@ -9738,7 +9738,7 @@ var MCPToolsTabV2_default = MCPToolsTabV2;
|
|
|
9738
9738
|
|
|
9739
9739
|
// src/management/management.tsx
|
|
9740
9740
|
import { jsx as jsx14, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
9741
|
-
var preloadChatPage = () => import("./chat-
|
|
9741
|
+
var preloadChatPage = () => import("./chat-PMO3WTM4.mjs");
|
|
9742
9742
|
var buildCapabilitiesUrl = (gatewayApiUrl) => {
|
|
9743
9743
|
const trimmed = gatewayApiUrl.replace(/\/$/, "");
|
|
9744
9744
|
if (trimmed.endsWith("/api")) {
|
|
@@ -11104,4 +11104,4 @@ export {
|
|
|
11104
11104
|
useGatewayMemory,
|
|
11105
11105
|
management_default
|
|
11106
11106
|
};
|
|
11107
|
-
//# sourceMappingURL=chunk-
|
|
11107
|
+
//# sourceMappingURL=chunk-JTDQTYJR.mjs.map
|