diff --git a/src/lib/ae_elements/AE_AITools.svelte b/src/lib/ae_elements/AE_AITools.svelte index 21fa5e5a..404f68b9 100644 --- a/src/lib/ae_elements/AE_AITools.svelte +++ b/src/lib/ae_elements/AE_AITools.svelte @@ -9,17 +9,17 @@ import { Modal } from 'flowbite-svelte'; import { Bot, BotMessageSquare, + Eye, + EyeOff, + Globe, + Copy, Loader, - FileText, Save, FilePenLine, RotateCcw, Settings, - RefreshCcw, - Globe, - Copy } from '@lucide/svelte'; -import { ae_loc, ae_api } from '$lib/stores/ae_stores'; +import { ae_loc } from '$lib/stores/ae_stores'; import AE_Comp_Editor_CodeMirror from '$lib/elements/element_editor_codemirror.svelte'; interface Props { @@ -68,10 +68,11 @@ if (maxTokens === undefined) maxTokens = 512; if (temperature === undefined) temperature = 0.7; // Internal State -let ae_promises: any = $state(null); +let ae_promises = $state | null>(null); let show_modal = $state(false); let active_tab: 'result' | 'settings' = $state('result'); let tmp_summary = $state(''); +let show_api_token = $state(false); async function generate_ai_result() { if (!content) { @@ -83,7 +84,9 @@ async function generate_ai_result() { // If no token is provided, trigger a "Demo Mode" placeholder after a fake delay if (!token || token === '') { - console.log('AE_AITools: No token provided. Entering Demo Mode.'); + if (log_lvl > 0) { + console.log('AE_AITools: No token provided. Entering Demo Mode.'); + } ae_promises = new Promise((resolve) => { setTimeout(() => { tmp_summary = `### AI Summary (DEMO MODE)\n\nThis is a placeholder summary because no API token was provided in the settings. \n\n**Original Content Length:** ${content.length} characters.\n\n**System Prompt:** ${systemPrompt}\n\n**Model:** ${model}`; @@ -121,10 +124,13 @@ async function generate_ai_result() { tmp_summary = result; show_modal = true; }); - } catch (err: any) { - console.error('AE_AITools: AI Error:', err); + } catch (err: unknown) { + if (log_lvl > 0) { + console.error('AE_AITools: AI Error:', err); + } + const err_msg = err instanceof Error ? err.message : String(err); // Even on error, show the modal with the error message so the UI can be inspected - tmp_summary = `### AI Error\n\nFailed to connect to the AI service.\n\n**Error:** ${err.message}\n\nCheck your Settings tab for Base URL and Token configuration.`; + tmp_summary = `### AI Error\n\nFailed to connect to the AI service.\n\n**Error:** ${err_msg}\n\nCheck your Settings tab for Base URL and Token configuration.`; show_modal = true; ae_promises = Promise.resolve(); } @@ -162,7 +168,7 @@ function handle_save() { active_tab = 'settings'; show_modal = true; }} - class="btn btn-sm variant-soft-surface shadow-md" + class="btn btn-sm preset-tonal-surface shadow-md" title="AI Settings"> @@ -173,21 +179,21 @@ function handle_save() { title="Aether AI Assistant" bind:open={show_modal} size="lg" - class="bg-white dark:bg-gray-800"> + class="bg-surface-50-900">
@@ -197,12 +203,12 @@ function handle_save() {
@@ -227,7 +233,7 @@ function handle_save() { {#if onSyncConfig}