@hao-gd/page-agent-ui 1.10.1
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/LICENSE +22 -0
- package/dist/lib/index.d.ts +801 -0
- package/dist/lib/page-agent-ui.js +6689 -0
- package/dist/lib/page-agent-ui.js.map +1 -0
- package/package.json +41 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-agent-ui.js","names":["#callbacks","#container","#pill","#buildPill","#boundClose","#dropdown","#closeDropdown","#boundKeydown","#handleKeyDown","#settings","#activeProviderId","#activeModelName","#updatePill","#toggleDropdown","#getProviderIcon","#isOpen","#openDropdown","#buildDropdown","#buildModelItem","#getModelBadges","#selectModel","#getVisibleItems","_Dexie","#SETTINGS_STORAGE_KEY","#handleStatusChange","#handleHistoryChange","#handleActivity","#handleMouseMove","#handleMouseUp","#handleWidthResizeMove","#handleWidthResizeUp","#handleInputResizeMove","#handleInputResizeUp","#handleDocumentClick","#wrapper","#agent","#config","#i18n","#askUser","#createWrapper","#indicator","#statusText","#historySection","#expandButton","#actionButton","#inputSection","#taskInput","#inputResizeHandle","#settingsSection","#settingsBtn","#modelSwitcherContainer","#modelSwitcher","#handleModelSwitch","#toggleSettings","#loadSettings","#conversationDropdownContainer","#conversationBtn","#conversationSection","#newConvBtn","#onStatusChange","#onHistoryChange","#onActivity","#onAgentDispose","#setupEventListeners","#syncHistoryToggleButton","#startHeaderUpdateLoop","#setupConversationEvents","#initConversations","#showInputArea","#restorePanelPosition","#updateStatusIndicator","#hideInputArea","#isRestoring","#isExpanded","#expand","#shouldShowInputArea","#autoSaveOnTaskEnd","#renderHistory","#pendingHeaderText","#getToolExecutingText","#isWaitingForUserAnswer","#userAnswerResolver","#scrollToBottom","#getUserAnswerPlaceholder","#removeTempCards","#hasCustomPosition","#collapse","#saveCurrentConversation","#onDocumentClick","#stopHeaderUpdateLoop","#handleUserAnswer","#getTaskInputPlaceholder","#isWindowsPlatform","#getHistoryToggleIcon","#handleDragStart","#handleResizeStart","#handleInputResizeStart","#toggle","#handleActionButton","#submitTask","#isDragging","#dragStartX","#dragStartY","#panelStartLeft","#panelStartBottom","#onMouseMove","#onMouseUp","#savePanelPosition","#isResizing","#resizeStartX","#resizeStartWidth","#onResizeMouseMove","#onResizeMouseUp","#isResizingInput","#inputResizeStartY","#inputResizeStartHeight","#onInputResizeMouseMove","#onInputResizeMouseUp","#STORAGE_KEY","#saveSettingsToStorage","#isSettingsVisible","#buildSettingsForm","#settingsTabBtns","#switchSettingsTab","#buildProvidersTab","#buildGeneralTab","#buildSkillsTab","#getSelectedProviderId","#buildProviderCard","#wireProviderEvents","#expandedProviderIds","#syncSettingsFromForm","#selectProvider","#setActiveModelByIndex","#persistSettings","#saveSettings","#buildSkillCard","#buildSkillInfoCard","#wireSkillsEvents","#showSkillEditor","#showImportForm","#parseSkillContent","#collectSettingsFromForm","#loadRawFromStorage","#isNewFormat","#migrateSettings","#inferProviderName","#getDefaultSettings","#headerUpdateTimer","#checkAndUpdateHeader","#isAnimating","#animateTextChange","#createTaskCard","#createHistoryCards","#createActionCards","#addTimelineGrouping","#toggleConversationDropdown","#handleNewConversation","#isConversationDropdownOpen","#closeConversationDropdown","#conversations","#activeConversationId","#updateConversationButtonLabel","#renderConversationDropdown","#formatRelativeTime","#handleConversationSelect","#handleDeleteConversation"],"sources":["../../src/i18n/locales.ts","../../src/i18n/index.ts","../../src/utils.ts","../../src/panel/types.ts","../../src/panel/Panel.module.css","../../src/panel/ModelSwitcher.ts","../../src/panel/markdown.ts","../../src/panel/cards.ts","../../../../node_modules/dexie/dist/dexie.min.js","../../../../node_modules/dexie/import-wrapper-prod.mjs","../../src/panel/conversations.ts","../../src/panel/skills-db.ts","../../src/panel/Panel.ts"],"sourcesContent":["// English translations (base/reference language)\nconst enUS = {\n\tui: {\n\t\tpanel: {\n\t\t\tready: 'Ready',\n\t\t\tthinking: 'Thinking...',\n\t\t\ttaskInput: 'Enter new task, describe steps in detail, press Ctrl/Cmd+Enter to submit',\n\t\t\ttaskInputWindows:\n\t\t\t\t'Enter new task, describe steps in detail, press Enter to submit, Shift+Enter for new line',\n\t\t\tuserAnswerPrompt: 'Please answer the question above, press Ctrl/Cmd+Enter to submit',\n\t\t\tuserAnswerPromptWindows:\n\t\t\t\t'Please answer the question above, press Enter to submit, Shift+Enter for new line',\n\t\t\twaitingPlaceholder: 'Waiting for task to start...',\n\t\t\tstop: 'Stop',\n\t\t\tclose: 'Close',\n\t\t\texpand: 'Expand history',\n\t\t\thistory: 'History',\n\t\t\tstep: 'Step {{number}}',\n\t\t\tnewConversation: 'New Conversation',\n\t\t\tconversations: 'Conversations',\n\t\t\tnoConversations: 'No conversations',\n\t\t\tconversationDefaultTitle: 'New Conversation',\n\t\t\tdeleteConversation: 'Delete conversation',\n\t\t\ttimeJustNow: 'Just now',\n\t\t\ttimeMinutesAgo: '{{n}}m ago',\n\t\t\ttimeHoursAgo: '{{n}}h ago',\n\t\t\ttimeDaysAgo: '{{n}}d ago',\n\t\t},\n\t\tsettings: {\n\t\t\ttitle: 'Settings',\n\t\t\tmodelTab: 'Model Config',\n\t\t\tprovidersTab: 'Providers',\n\t\t\tgeneralTab: 'General',\n\t\t\tbaseURL: 'Base URL',\n\t\t\tbaseURLHint: 'API endpoint (without /chat/completions or /messages)',\n\t\t\tapiFormat: 'API Format',\n\t\t\tapiFormatHint: 'Select the API protocol format for this provider',\n\t\t\tapiFormatOpenAI: 'OpenAI Chat Completions',\n\t\t\tapiFormatAnthropic: 'Anthropic Messages',\n\t\t\tmodel: 'Model',\n\t\t\tmodelHint: 'Model name (e.g. gpt-4o, claude-opus-4-8)',\n\t\t\tapiKey: 'API Key',\n\t\t\tapiKeyHint: 'Your API key (stored locally in browser)',\n\t\t\ttemperature: 'Temperature',\n\t\t\tmaxSteps: 'Max Steps',\n\t\t\tmaxStepsHint: 'Maximum agent loop iterations (5-200)',\n\t\t\tsave: 'Save',\n\t\t\tcancel: 'Cancel',\n\t\t\tsaved: 'Settings saved. Restart agent for changes to take effect.',\n\t\t\tactiveProvider: 'Active Provider',\n\t\t\tenableProvider: 'Enable',\n\t\t\tselectedProvider: 'Enabled',\n\t\t\tproviderName: 'Provider Name',\n\t\t\tproviderNameHint: 'Display name (e.g. OpenAI, Anthropic)',\n\t\t\tmodels: 'Models',\n\t\t\taddModel: '+ Add Model',\n\t\t\taddProvider: '+ Add Provider',\n\t\t\tcurrentModel: 'Current',\n\t\t\tmodelNameHint: 'Model ID (e.g. gpt-4o)',\n\t\t\tuseThisModel: 'Use This',\n\t\t\tenabled: 'Enabled',\n\t\t\tnoProviders: 'No providers configured. Add one to get started.',\n\t\t\tdeleteProvider: 'Delete Provider',\n\t\t\tenabledProviderLocked: 'Enabled provider cannot be deleted',\n\t\t\tdeleteModel: 'Delete',\n\t\t\tconfirmDeleteProvider: 'Delete this provider and all its models?',\n\t\t},\n\t\tmodelSwitcher: {\n\t\t\tconfigureProviders: 'Configure Providers...',\n\t\t\tnoModels: 'No models configured',\n\t\t\tsearchPlaceholder: 'Search models...',\n\t\t},\n\t\ttools: {\n\t\t\tclicking: 'Clicking element [{{index}}]...',\n\t\t\tinputting: 'Inputting text to element [{{index}}]...',\n\t\t\tselecting: 'Selecting option \"{{text}}\"...',\n\t\t\tscrolling: 'Scrolling page...',\n\t\t\twaiting: 'Waiting {{seconds}} seconds...',\n\t\t\taskingUser: 'Asking user...',\n\t\t\tdone: 'Task done',\n\t\t\texecuting: 'Executing {{toolName}}...',\n\t\t},\n\t\tskills: {\n\t\t\ttab: 'Skills',\n\t\t\tcreate: 'Create Skill',\n\t\t\tedit: 'Edit Skill',\n\t\t\timportJSON: 'Import Skill',\n\t\t\texportJSON: 'Export JSON',\n\t\t\tdelete: 'Delete',\n\t\t\tconfirmDelete: 'Are you sure you want to delete this skill?',\n\t\t\tempty: 'No skills configured. Create one or import from JSON.',\n\t\t\tbuiltIn: 'Built-in Skills',\n\t\t\tpasteJSON: 'Paste skill JSON here:',\n\t\t\tloadError: 'Failed to load skills.',\n\t\t\tfieldId: 'Skill ID',\n\t\t\tfieldName: 'Name',\n\t\t\tfieldVersion: 'Version',\n\t\t\tfieldDescription: 'Description',\n\t\t\tfieldPromptFragment: 'System Prompt Fragment',\n\t\t\tfieldPromptPlaceholder: \"Tell the LLM when and how to use this skill's tools...\",\n\t\t\tfieldTools: 'Tools (JSON array)',\n\t\t\tfieldToolsHint:\n\t\t\t\t'Define tools as JSON. executeCode should be the source code of an async function.',\n\t\t\tfieldRequired: 'ID and Name are required',\n\t\t\tsaveFailed: 'Failed to save skill: ',\n\t\t\timportFailed: 'Failed to import skill: ',\n\t\t\timportAsText: 'Create skill from pasted text',\n\t\t\timportHint:\n\t\t\t\t'Paste JSON for a full skill definition, or paste markdown/text to auto-create a knowledge skill.',\n\t\t},\n\t},\n} as const\n\n// Chinese translations (must match the structure of enUS)\nconst zhCN = {\n\tui: {\n\t\tpanel: {\n\t\t\tready: '准备就绪',\n\t\t\tthinking: '正在思考...',\n\t\t\ttaskInput: '输入新任务,详细描述步骤,按 Ctrl/Cmd+Enter 提交',\n\t\t\ttaskInputWindows: '输入新任务,详细描述步骤,按 Enter 提交,Shift+Enter 换行',\n\t\t\tuserAnswerPrompt: '请回答上面问题,按 Ctrl/Cmd+Enter 提交',\n\t\t\tuserAnswerPromptWindows: '请回答上面问题,按 Enter 提交,Shift+Enter 换行',\n\t\t\twaitingPlaceholder: '等待任务开始...',\n\t\t\tstop: '终止',\n\t\t\tclose: '关闭',\n\t\t\texpand: '展开历史',\n\t\t\thistory: '历史记录',\n\t\t\tstep: '步骤 {{number}}',\n\t\t\tnewConversation: '新建会话',\n\t\t\tconversations: '会话列表',\n\t\t\tnoConversations: '暂无会话',\n\t\t\tconversationDefaultTitle: '新的会话',\n\t\t\tdeleteConversation: '删除会话',\n\t\t\ttimeJustNow: '刚刚',\n\t\t\ttimeMinutesAgo: '{{n}}分钟前',\n\t\t\ttimeHoursAgo: '{{n}}小时前',\n\t\t\ttimeDaysAgo: '{{n}}天前',\n\t\t},\n\t\tsettings: {\n\t\t\ttitle: '设置',\n\t\t\tmodelTab: '模型配置',\n\t\t\tprovidersTab: '供应商',\n\t\t\tgeneralTab: '通用',\n\t\t\tbaseURL: 'API 地址',\n\t\t\tbaseURLHint: 'API 端点 (不包含 /chat/completions 或 /messages)',\n\t\t\tapiFormat: 'API 格式',\n\t\t\tapiFormatHint: '选择此供应商使用的 API 协议格式',\n\t\t\tapiFormatOpenAI: 'OpenAI Chat Completions',\n\t\t\tapiFormatAnthropic: 'Anthropic Messages',\n\t\t\tmodel: '模型',\n\t\t\tmodelHint: '模型名称 (例如 gpt-4o, claude-opus-4-8)',\n\t\t\tapiKey: 'API 密钥',\n\t\t\tapiKeyHint: '密钥仅存储在浏览器本地',\n\t\t\ttemperature: '温度参数',\n\t\t\tmaxSteps: '最大步数',\n\t\t\tmaxStepsHint: 'Agent 循环最大迭代次数 (5-200)',\n\t\t\tsave: '保存',\n\t\t\tcancel: '取消',\n\t\t\tsaved: '设置已保存。重新启动 Agent 后生效。',\n\t\t\tactiveProvider: '当前供应商',\n\t\t\tenableProvider: '启用',\n\t\t\tselectedProvider: '已启用',\n\t\t\tproviderName: '供应商名称',\n\t\t\tproviderNameHint: '显示名称 (例如 OpenAI, Anthropic)',\n\t\t\tmodels: '模型列表',\n\t\t\taddModel: '+ 添加模型',\n\t\t\taddProvider: '+ 添加供应商',\n\t\t\tcurrentModel: '当前使用',\n\t\t\tmodelNameHint: '模型标识 (例如 gpt-4o)',\n\t\t\tuseThisModel: '设为当前',\n\t\t\tenabled: '已启用',\n\t\t\tnoProviders: '尚未配置供应商,请添加一个开始使用。',\n\t\t\tdeleteProvider: '删除供应商',\n\t\t\tenabledProviderLocked: '已启用的供应商无法删除',\n\t\t\tdeleteModel: '删除',\n\t\t\tconfirmDeleteProvider: '确认删除此供应商及其所有模型?',\n\t\t},\n\t\tmodelSwitcher: {\n\t\t\tconfigureProviders: '配置供应商...',\n\t\t\tnoModels: '未配置模型',\n\t\t\tsearchPlaceholder: '搜索模型...',\n\t\t},\n\t\ttools: {\n\t\t\tclicking: '正在点击元素 [{{index}}]...',\n\t\t\tinputting: '正在输入文本到元素 [{{index}}]...',\n\t\t\tselecting: '正在选择选项 \"{{text}}\"...',\n\t\t\tscrolling: '正在滚动页面...',\n\t\t\twaiting: '等待 {{seconds}} 秒...',\n\t\t\taskingUser: '正在询问用户...',\n\t\t\tdone: '结束任务',\n\t\t\texecuting: '正在执行 {{toolName}}...',\n\t\t},\n\t\tskills: {\n\t\t\ttab: '技能',\n\t\t\tcreate: '创建技能',\n\t\t\tedit: '编辑技能',\n\t\t\timportJSON: '导入技能',\n\t\t\texportJSON: '导出 JSON',\n\t\t\tdelete: '删除',\n\t\t\tconfirmDelete: '确认删除此技能?',\n\t\t\tempty: '尚未配置技能。请创建或从 JSON 导入。',\n\t\t\tbuiltIn: '内置技能',\n\t\t\tpasteJSON: '请粘贴 Skill JSON:',\n\t\t\tloadError: '技能加载失败。',\n\t\t\tfieldId: '技能 ID',\n\t\t\tfieldName: '名称',\n\t\t\tfieldVersion: '版本',\n\t\t\tfieldDescription: '描述',\n\t\t\tfieldPromptFragment: 'System Prompt 片段',\n\t\t\tfieldPromptPlaceholder: '告诉 LLM 何时以及如何使用此技能的工具...',\n\t\t\tfieldTools: '工具(JSON 数组)',\n\t\t\tfieldToolsHint: '以 JSON 定义工具。executeCode 应为 async 函数的源代码。',\n\t\t\tfieldRequired: 'ID 和名称为必填项',\n\t\t\tsaveFailed: '保存技能失败:',\n\t\t\timportFailed: '导入技能失败:',\n\t\t\timportAsText: '将粘贴的文本创建为技能',\n\t\t\timportHint: '粘贴 JSON 可导入完整技能定义,粘贴 Markdown/文本可自动创建知识型技能。',\n\t\t},\n\t},\n} as const\n\n// Type definitions generated from English base structure (but with string values)\ntype DeepStringify<T> = {\n\t[K in keyof T]: T[K] extends string ? string : T[K] extends object ? DeepStringify<T[K]> : T[K]\n}\n\nexport type TranslationSchema = DeepStringify<typeof enUS>\n\n// Utility type: Extract all nested paths from translation object\ntype NestedKeyOf<ObjectType extends object> = {\n\t[Key in keyof ObjectType & (string | number)]: ObjectType[Key] extends object\n\t\t? `${Key}` | `${Key}.${NestedKeyOf<ObjectType[Key]>}`\n\t\t: `${Key}`\n}[keyof ObjectType & (string | number)]\n\n// Extract all possible key paths from translation structure\nexport type TranslationKey = NestedKeyOf<TranslationSchema>\n\n// Parameterized translation types\nexport type TranslationParams = Record<string, string | number>\n\nexport const locales = {\n\t'en-US': enUS,\n\t'zh-CN': zhCN,\n} as const\n\nexport type SupportedLanguage = keyof typeof locales\n","import {\n\ttype SupportedLanguage,\n\ttype TranslationKey,\n\ttype TranslationParams,\n\ttype TranslationSchema,\n\tlocales,\n} from './locales'\n\nexport class I18n {\n\tprivate language: SupportedLanguage\n\tprivate translations: TranslationSchema\n\n\tconstructor(language: SupportedLanguage = 'en-US') {\n\t\tthis.language = language in locales ? language : 'en-US'\n\t\tthis.translations = locales[this.language]\n\t}\n\n\t// 类型安全的翻译方法\n\tt(key: TranslationKey, params?: TranslationParams): string {\n\t\tconst value = this.getNestedValue(this.translations, key)\n\t\tif (!value) {\n\t\t\tconsole.warn(`Translation key \"${key}\" not found for language \"${this.language}\"`)\n\t\t\treturn key\n\t\t}\n\n\t\tif (params) {\n\t\t\treturn this.interpolate(value, params)\n\t\t}\n\t\treturn value\n\t}\n\n\tprivate getNestedValue(obj: any, path: string): string | undefined {\n\t\treturn path.split('.').reduce((current, key) => current?.[key], obj)\n\t}\n\n\tprivate interpolate(template: string, params: TranslationParams): string {\n\t\treturn template.replace(/\\{\\{(\\w+)\\}\\}/g, (match, key) => {\n\t\t\t// Use != null to check for both null and undefined, allow empty strings\n\t\t\treturn params[key] != null ? params[key].toString() : match\n\t\t})\n\t}\n\n\tgetLanguage(): SupportedLanguage {\n\t\treturn this.language\n\t}\n}\n\n// 导出类型和实例创建函数\nexport type { TranslationKey, SupportedLanguage, TranslationParams }\nexport { locales }\n","export function truncate(text: string, maxLength: number): string {\n\tif (text.length > maxLength) {\n\t\treturn text.substring(0, maxLength) + '...'\n\t}\n\treturn text\n}\n\n/**\n * Escape HTML special characters to prevent XSS and rendering issues\n */\nexport function escapeHtml(text: string): string {\n\treturn text\n\t\t.replace(/&/g, '&')\n\t\t.replace(/</g, '<')\n\t\t.replace(/>/g, '>')\n\t\t.replace(/\"/g, '"')\n\t\t.replace(/'/g, ''')\n}\n","// ========== Multi-Provider Model Configuration Types ==========\n\n/**\n * Per-model configuration within a provider.\n */\nexport interface ModelConfig {\n\t/** Model identifier (e.g. \"gpt-4o\", \"claude-opus-4-8\") */\n\tname: string\n\t/** Per-model temperature override. Falls back to global default if unset. */\n\ttemperature?: number\n}\n\n/**\n * Supported API protocol formats.\n * - `openai`: OpenAI Chat Completions API (/chat/completions)\n * - `anthropic`: Anthropic Messages API (/messages)\n */\nexport type ApiFormat = 'openai' | 'anthropic'\n\n/**\n * A configured LLM provider with its models.\n */\nexport interface ProviderConfig {\n\t/** Unique identifier */\n\tid: string\n\t/** Display name (e.g. \"OpenAI\", \"Anthropic\") */\n\tname: string\n\t/** API endpoint (base URL, without the endpoint path) */\n\tbaseURL: string\n\t/** API protocol format */\n\tapiFormat: ApiFormat\n\t/** API key (stored locally in browser) */\n\tapiKey?: string\n\t/** Models configured under this provider */\n\tmodels: ModelConfig[]\n\t/** Whether this provider is active and visible in the quick-switch dropdown */\n\tenabled: boolean\n}\n\n/**\n * Complete settings stored in localStorage.\n */\nexport interface PageAgentSettings {\n\t/** All configured providers */\n\tproviders: ProviderConfig[]\n\t/** ID of the currently active provider */\n\tactiveProviderId: string\n\t/** Name of the currently active model (within the active provider) */\n\tactiveModelName: string\n\t/** Global maximum agent loop iterations */\n\tmaxSteps: number\n\t/** Global default temperature (overridable per-model) */\n\ttemperature: number\n}\n\n/**\n * Derived active LLM configuration from the currently selected provider + model.\n */\nexport interface ActiveLLMConfig {\n\tbaseURL: string\n\tmodel: string\n\tapiKey?: string\n\tapiFormat: ApiFormat\n\ttemperature: number\n\tmaxSteps: number\n}\n\n/**\n * Result of resolving the active provider + model from settings.\n */\nexport interface ResolvedActiveModel {\n\tprovider: ProviderConfig\n\tmodel: ModelConfig\n}\n\n/**\n * Resolve the currently active provider and model from settings.\n *\n * Resolution order:\n * 1. Find provider by activeProviderId (must be enabled)\n * 2. Fall back to first enabled provider\n * 3. Find model by activeModelName within the resolved provider\n * 4. Fall back to first model in that provider\n *\n * Returns null if no enabled provider with models is configured.\n */\nexport function resolveActiveModel(settings: PageAgentSettings): ResolvedActiveModel | null {\n\t// Resolve provider: prefer the one matching activeProviderId, but only if enabled\n\tlet provider = settings.providers.find((p) => p.id === settings.activeProviderId && p.enabled)\n\tif (!provider) {\n\t\tprovider = settings.providers.find((p) => p.enabled)\n\t}\n\tif (!provider || provider.models.length === 0) return null\n\n\t// Resolve model: prefer the one matching activeModelName\n\tlet model = provider.models.find((m) => m.name === settings.activeModelName)\n\tif (!model) {\n\t\tmodel = provider.models[0]\n\t}\n\tif (!model) return null\n\n\treturn { provider, model }\n}\n\n// ========== Agent Activity Types ==========\n\n/**\n * Agent activity - transient state for immediate UI feedback.\n *\n * Unlike historical events (which are persisted), activities are ephemeral\n * and represent \"what the agent is doing right now\". UI components should\n * listen to 'activity' events to show real-time feedback.\n *\n * Note: There is no 'idle' activity - absence of activity events means idle.\n *\n * Events dispatched: CustomEvent<AgentActivity>\n */\nexport type AgentActivity =\n\t| { type: 'thinking' }\n\t| { type: 'executing'; tool: string; input: unknown }\n\t| { type: 'executed'; tool: string; input: unknown; output: string; duration: number }\n\t| { type: 'retrying'; attempt: number; maxAttempts: number }\n\t| { type: 'error'; message: string }\n\n/**\n * Minimal interface that Panel expects from an agent.\n * Panel does not depend on PageAgent directly - it only requires this interface.\n * This enables decoupling and allows any agent implementation to work with Panel.\n *\n * Events:\n * - 'statuschange': Agent status changed\n * - 'historychange': Historical events updated (persisted)\n * - 'activity': Transient activity for immediate UI feedback (thinking/executing/etc)\n * - 'dispose': Agent is being disposed\n */\nexport interface PanelAgentAdapter extends EventTarget {\n\t/** Current agent status */\n\treadonly status: 'idle' | 'running' | 'completed' | 'error' | 'stopped'\n\n\t/** Result of the most recent run, or `null` before the first run completes */\n\treadonly lastResult: { success: boolean } | null\n\n\t/** History of agent events */\n\treadonly history: readonly {\n\t\ttype: 'step' | 'observation' | 'user_takeover' | 'retry' | 'error'\n\t\tstepIndex?: number\n\t\t/** For 'step' type */\n\t\treflection?: {\n\t\t\tevaluation_previous_goal?: string\n\t\t\tmemory?: string\n\t\t\tnext_goal?: string\n\t\t}\n\t\t/** For 'step' type */\n\t\taction?: {\n\t\t\tname: string\n\t\t\tinput: unknown\n\t\t\toutput: string\n\t\t}\n\t\t/** For 'observation' type */\n\t\tcontent?: string\n\t\t/** For 'retry' type */\n\t\tattempt?: number\n\t\tmaxAttempts?: number\n\t\t/** For 'retry' and 'error' types */\n\t\tmessage?: string\n\t}[]\n\n\t/** Current task being executed */\n\treadonly task: string\n\n\t/**\n\t * Called when the agent needs to ask the user questions.\n\t * If unset, the `ask_user` tool will be disabled.\n\t * Panel will set this to handle user questions via its UI.\n\t * The optional `signal` aborts when the task is stopped or disposed.\n\t */\n\tonAskUser?: (question: string, options?: { signal: AbortSignal }) => Promise<string>\n\n\t/** Execute a task */\n\texecute(task: string): Promise<unknown>\n\n\t/** Stop the current task (agent remains reusable) */\n\tstop(): Promise<void>\n\n\t/** Dispose the agent (terminal, cannot be reused) */\n\tdispose(): void\n\n\t/**\n\t * Get the current page's simplified HTML content for DOM preview.\n\t * Returns null/undefined when DOM preview is not supported.\n\t * Called on-demand when the user opens the DOM preview panel.\n\t */\n\tgetSimplifiedHTML?(): string | null | undefined\n\n\t/**\n\t * Snapshot the current agent state for conversation persistence.\n\t * Returns a serializable state object, or null if no meaningful state exists.\n\t */\n\tgetConversationState?(): {\n\t\ttask: string\n\t\thistory: readonly unknown[]\n\t\tlastResult: { success: boolean; data: string } | null\n\t\tstatus: 'idle' | 'running' | 'completed' | 'error' | 'stopped'\n\t} | null\n\n\t/**\n\t * Restore agent state from a previously saved conversation snapshot.\n\t * Emits historychange and statuschange so the UI re-renders.\n\t */\n\trestoreConversationState?(state: {\n\t\ttask: string\n\t\thistory: readonly unknown[]\n\t\tlastResult: { success: boolean; data: string } | null\n\t\tstatus: 'idle' | 'running' | 'completed' | 'error' | 'stopped'\n\t}): void\n\n\t/**\n\t * Reset the agent to a fresh state for a new conversation.\n\t * Emits events so the UI clears history and shows the input area.\n\t */\n\tnewConversation?(): void\n\n\t// ── Skills Management (optional) ──\n\n\t/** Get metadata for all registered skills */\n\tgetAvailableSkills?(): {\n\t\tid: string\n\t\tname: string\n\t\tdescription: string\n\t\tversion: string\n\t\tauthor?: string\n\t\ticon?: string\n\t\tactive: boolean\n\t\thasConfig: boolean\n\t\tconfigSchema?: object\n\t\tsource: string\n\t}[]\n\n\t/** Get IDs of currently active skills */\n\tgetActiveSkillIds?(): string[]\n\n\t/** Load (activate) a skill by id or full skill object */\n\tloadSkill?(skillOrId: unknown): Promise<void>\n\n\t/** Unload (deactivate) a skill by id */\n\tunloadSkill?(skillId: string): Promise<void>\n\n\t/** Get current config for a skill */\n\tgetSkillConfig?(skillId: string): Record<string, unknown>\n\n\t/** Update config for a skill */\n\tupdateSkillConfig?(skillId: string, config: Record<string, unknown>): Promise<void>\n\n\t/** Subscribe to skill change events */\n\tonSkillChange?(callback: () => void): void\n}\n",".wrapper {\n\tposition: fixed;\n\tbottom: 100px;\n\tleft: 50%;\n\ttransform: translateX(-50%) translateY(20px);\n\topacity: 0;\n\tz-index: 2147483642; /* 比 SimulatorMask 高一层 */\n\tbox-sizing: border-box;\n\n\toverflow: visible;\n\n\t* {\n\t\tbox-sizing: border-box;\n\t}\n\n\t--width: 400px;\n\t--height: 40px;\n\t--border-radius: 12px;\n\n\t--side-space: 12px; /* 控制栏两侧的间距 */\n\t--history-width: calc(var(--width) - var(--side-space) * 2);\n\n\t--color-1: rgb(57, 182, 255);\n\t--color-2: rgb(189, 69, 251);\n\t--color-3: rgb(255, 87, 51);\n\t--color-4: rgb(255, 214, 0);\n\n\twidth: var(--width);\n\tmin-width: min(400px, calc(100vw - 40px));\n\theight: var(--height);\n\n\ttransition:\n\t\topacity 0.3s ease-in-out,\n\t\ttransform 0.3s ease-in-out;\n\n\t/* 响应式设计 */\n\t@media (max-width: 480px) {\n\t\twidth: calc(100vw - 40px);\n\t\t--width: calc(100vw - 40px);\n\t}\n\n\t.background {\n\t\tposition: absolute;\n\t\tinset: -2px -8px;\n\t\tborder-radius: calc(var(--border-radius) + 4px);\n\t\tfilter: blur(16px);\n\t\toverflow: hidden;\n\t\t/* mix-blend-mode: lighten; */\n\t\t/* display: none; */\n\n\t\t&::before {\n\t\t\tcontent: '';\n\t\t\tz-index: -1;\n\t\t\tpointer-events: none;\n\t\t\tposition: absolute;\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\t/* left: -100%; */\n\t\t\tleft: 0;\n\t\t\ttop: 0;\n\n\t\t\tbackground-image: linear-gradient(\n\t\t\t\tto bottom left,\n\t\t\t\tvar(--color-1),\n\t\t\t\tvar(--color-2),\n\t\t\t\tvar(--color-1)\n\t\t\t);\n\t\t\tanimation: mask-running 2s linear infinite;\n\t\t}\n\t\t&::after {\n\t\t\tcontent: '';\n\t\t\tz-index: -1;\n\t\t\tpointer-events: none;\n\t\t\tposition: absolute;\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tleft: 0;\n\t\t\ttop: 0;\n\n\t\t\tbackground-image: linear-gradient(\n\t\t\t\tto bottom left,\n\t\t\t\tvar(--color-2),\n\t\t\t\tvar(--color-1),\n\t\t\t\tvar(--color-2)\n\t\t\t);\n\t\t\tanimation: mask-running 2s linear infinite;\n\t\t\tanimation-delay: 1s;\n\t\t}\n\t}\n}\n\n@keyframes mask-running {\n\tfrom {\n\t\ttransform: translateX(-100%);\n\t}\n\tto {\n\t\ttransform: translateX(100%);\n\t}\n}\n\n/* 控制栏 */\n.header {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 8px 12px;\n\tuser-select: none;\n\n\tposition: absolute;\n\tinset: 0;\n\n\tcursor: grab;\n\tflex-shrink: 0; /* 防止 header 被压缩 */\n\n\tbackground: rgba(0, 0, 0, 0.5);\n\tbackdrop-filter: blur(10px);\n\tborder-radius: var(--border-radius);\n\tbackground-clip: padding-box;\n\n\tbox-shadow:\n\t\t0 0 0px 2px rgba(255, 255, 255, 0.4),\n\t\t0 0 5px 1px rgba(255, 255, 255, 0.3);\n\n\t.statusSection {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 8px;\n\t\tflex: 1;\n\t\tmin-height: 24px; /* 确保垂直居中 */\n\n\t\t.indicator {\n\t\t\twidth: 6px;\n\t\t\theight: 6px;\n\t\t\tborder-radius: 50%;\n\t\t\tbackground: rgba(255, 255, 255, 0.5);\n\t\t\tflex-shrink: 0;\n\t\t\tanimation: none; /* 默认无动画 */\n\n\t\t\t/* 运行状态 - 有动画 */\n\t\t\t&.thinking {\n\t\t\t\tbackground: rgb(57, 182, 255);\n\t\t\t\tanimation: pulse 0.8s ease-in-out infinite;\n\t\t\t}\n\n\t\t\t&.tool_executing {\n\t\t\t\tbackground: rgb(189, 69, 251);\n\t\t\t\tanimation: pulse 0.6s ease-in-out infinite;\n\t\t\t}\n\n\t\t\t&.retry {\n\t\t\t\tbackground: rgb(255, 214, 0);\n\t\t\t\tanimation: retryPulse 1s ease-in-out infinite;\n\t\t\t}\n\n\t\t\t/* 静止状态 - 无动画 */\n\t\t\t&.completed,\n\t\t\t&.input,\n\t\t\t&.output {\n\t\t\t\tbackground: rgb(34, 197, 94);\n\t\t\t\tanimation: none;\n\t\t\t}\n\n\t\t\t&.error {\n\t\t\t\tbackground: rgb(239, 68, 68);\n\t\t\t\tanimation: none;\n\t\t\t}\n\t\t}\n\n\t\t.statusText {\n\t\t\tcolor: white;\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 1;\n\t\t\tfont-weight: 500;\n\t\t\ttransition:\n\t\t\t\topacity 0.3s ease-in-out,\n\t\t\t\ttransform 0.3s ease-in-out;\n\t\t\tposition: relative;\n\t\t\toverflow: hidden;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tmin-height: 24px; /* 确保垂直居中 */\n\n\t\t\t&.fadeOut {\n\t\t\t\tanimation: statusTextFadeOut 0.3s ease forwards;\n\t\t\t}\n\n\t\t\t&.fadeIn {\n\t\t\t\tanimation: statusTextFadeIn 0.3s ease forwards;\n\t\t\t}\n\t\t}\n\t}\n\n\t.headerCenter {\n\t\tposition: absolute;\n\t\tleft: 50%;\n\t\ttop: 50%;\n\t\ttransform: translate(-50%, -50%);\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\twidth: min(100%, calc(var(--width) - 180px));\n\t\tpointer-events: none;\n\t}\n\n\t.controls {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 4px;\n\n\t\t.controlButton {\n\t\t\twidth: 24px;\n\t\t\theight: 24px;\n\t\t\tborder: none;\n\t\t\tborder-radius: 4px;\n\t\t\tbackground: rgba(255, 255, 255, 0.1);\n\t\t\tcolor: white;\n\t\t\tcursor: pointer;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 1;\n\n\t\t\tsvg {\n\t\t\t\twidth: 14px;\n\t\t\t\theight: 14px;\n\t\t\t\tfill: none;\n\t\t\t\tstroke: currentColor;\n\t\t\t\tstroke-width: 1.8;\n\t\t\t\tstroke-linecap: round;\n\t\t\t\tstroke-linejoin: round;\n\t\t\t}\n\n\t\t\t&:hover {\n\t\t\t\tbackground: rgba(255, 255, 255, 0.2);\n\t\t\t}\n\t\t}\n\n\t\t.stopButton {\n\t\t\tbackground: rgba(239, 68, 68, 0.2);\n\t\t\tcolor: rgb(255, 41, 41);\n\t\t\tfont-weight: 600;\n\n\t\t\t&:hover {\n\t\t\t\tbackground: rgba(239, 68, 68, 0.3);\n\t\t\t}\n\t\t}\n\t}\n}\n\n@keyframes statusTextFadeIn {\n\t0% {\n\t\topacity: 0;\n\t\ttransform: translateY(5px);\n\t}\n\t100% {\n\t\topacity: 1;\n\t\ttransform: translateY(0);\n\t}\n}\n\n@keyframes statusTextFadeOut {\n\t0% {\n\t\topacity: 1;\n\t\ttransform: translateY(0);\n\t}\n\t100% {\n\t\topacity: 0;\n\t\ttransform: translateY(-5px);\n\t}\n}\n\n.historySectionWrapper {\n\tposition: absolute;\n\twidth: var(--history-width);\n\tbottom: var(--height);\n\tleft: var(--side-space);\n\tz-index: -2;\n\n\tpadding-top: 0px;\n\tvisibility: collapse;\n\toverflow: hidden;\n\n\ttransition: all 0.2s;\n\n\tbackground: rgba(2, 0, 20, 0.5);\n\t/* background: rgba(186, 186, 186, 0.2); */\n\tbackdrop-filter: blur(10px);\n\n\ttext-shadow: 0 0 1px rgba(0, 0, 0, 0.2);\n\n\tborder-top-left-radius: calc(var(--border-radius) + 4px);\n\tborder-top-right-radius: calc(var(--border-radius) + 4px);\n\n\t/* border: 2px solid rgba(255, 255, 255, 0.8); */\n\tborder: 2px solid rgba(255, 255, 255, 0.4);\n\tbox-shadow: 0 4px 16px rgba(0, 0, 0, 0.6);\n\n\t/* @media (prefers-color-scheme: dark) {\n\t\tbox-shadow:\n\t\t\t0 8px 32px 0 rgba(0, 0, 0, 0.85),\n\t\t\t0 2px 12px 0 rgba(57, 182, 255, 0.1);\n\t} */\n\n\t.expanded & {\n\t\tpadding-top: 8px;\n\t\tvisibility: visible;\n\t}\n\n\t.historySection {\n\t\tposition: relative;\n\t\toverflow-y: auto;\n\t\toverscroll-behavior: contain;\n\t\tscrollbar-width: none;\n\t\tmax-height: 0;\n\t\tpadding-inline: 8px;\n\n\t\ttransition: max-height 0.2s;\n\n\t\t.expanded & {\n\t\t\tmax-height: min(500px, calc(100vh - 200px - var(--height)));\n\t\t}\n\n\t\t.historyItem {\n\t\t\t/* backdrop-filter: blur(10px); */\n\t\t\tpadding: 8px 10px 8px 28px;\n\t\t\tmargin-bottom: 6px;\n\t\t\tbackground: linear-gradient(135deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));\n\t\t\tborder-radius: 8px;\n\t\t\tborder-left: 2px solid rgba(57, 182, 255, 0.5);\n\t\t\tfont-size: 12px;\n\t\t\tcolor: white;\n\t\t\t/* color: black; */\n\t\t\tline-height: 1.3;\n\t\t\tposition: relative;\n\t\t\toverflow: hidden;\n\n\t\t\t/* 微妙的内阴影 */\n\t\t\tbox-shadow:\n\t\t\t\tinset 0 1px 0 rgba(255, 255, 255, 0.1),\n\t\t\t\t0 1px 3px rgba(0, 0, 0, 0.1);\n\n\t\t\t&::before {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\theight: 1px;\n\t\t\t\tbackground: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);\n\t\t\t}\n\n\t\t\t&:hover {\n\t\t\t\tbackground: linear-gradient(135deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.06));\n\t\t\t\t/* transform: translateY(-1px); */\n\t\t\t\tbox-shadow:\n\t\t\t\t\tinset 0 1px 0 rgba(255, 255, 255, 0.15),\n\t\t\t\t\t0 2px 4px rgba(0, 0, 0, 0.15);\n\t\t\t}\n\n\t\t\t&:last-child {\n\t\t\t\tmargin-bottom: 10px;\n\t\t\t}\n\n\t\t\t&.completed,\n\t\t\t&.input,\n\t\t\t&.output {\n\t\t\t\tborder-left-color: rgb(34, 197, 94);\n\t\t\t\tbackground: linear-gradient(135deg, rgba(34, 197, 94, 0.1), rgba(34, 197, 94, 0.05));\n\t\t\t}\n\n\t\t\t&.error {\n\t\t\t\tborder-left-color: rgb(239, 68, 68);\n\t\t\t\tbackground: linear-gradient(135deg, rgba(239, 68, 68, 0.1), rgba(239, 68, 68, 0.05));\n\t\t\t}\n\n\t\t\t&.retry {\n\t\t\t\tborder-left-color: rgb(255, 214, 0);\n\t\t\t\tbackground: linear-gradient(135deg, rgba(255, 214, 0, 0.1), rgba(255, 214, 0, 0.05));\n\t\t\t}\n\n\t\t\t&.observation {\n\t\t\t\tborder-left-color: rgb(147, 51, 234);\n\t\t\t\tbackground: linear-gradient(135deg, rgba(147, 51, 234, 0.1), rgba(147, 51, 234, 0.05));\n\t\t\t}\n\n\t\t\t&.question {\n\t\t\t\tborder-left-color: rgb(255, 159, 67);\n\t\t\t\tbackground: linear-gradient(135deg, rgba(255, 159, 67, 0.15), rgba(255, 159, 67, 0.08));\n\t\t\t}\n\n\t\t\t/* 突出显示 done 成功结果 */\n\t\t\t&.doneSuccess {\n\t\t\t\tbackground: linear-gradient(\n\t\t\t\t\t135deg,\n\t\t\t\t\trgba(34, 197, 94, 0.25),\n\t\t\t\t\trgba(34, 197, 94, 0.15),\n\t\t\t\t\trgba(34, 197, 94, 0.08)\n\t\t\t\t);\n\t\t\t\tborder: none;\n\t\t\t\tborder-left: 4px solid rgb(34, 197, 94);\n\t\t\t\tbox-shadow:\n\t\t\t\t\t0 4px 12px rgba(34, 197, 94, 0.3),\n\t\t\t\t\tinset 0 1px 0 rgba(255, 255, 255, 0.2),\n\t\t\t\t\t0 0 20px rgba(34, 197, 94, 0.1);\n\t\t\t\tfont-weight: 600;\n\t\t\t\tcolor: rgb(220, 252, 231);\n\t\t\t\tpadding: 10px 12px;\n\t\t\t\tmargin-bottom: 8px;\n\t\t\t\tborder-radius: 8px;\n\t\t\t\tposition: relative;\n\t\t\t\toverflow: hidden;\n\n\t\t\t\t&::before {\n\t\t\t\t\tbackground: linear-gradient(90deg, transparent, rgba(34, 197, 94, 0.4), transparent);\n\t\t\t\t}\n\n\t\t\t\t&::after {\n\t\t\t\t\tcontent: '';\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tleft: -100%;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\theight: 100%;\n\t\t\t\t\tbackground: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);\n\t\t\t\t\tanimation: shimmer 2s ease-in-out infinite;\n\t\t\t\t}\n\n\t\t\t\t.historyContent {\n\t\t\t\t\t.statusIcon {\n\t\t\t\t\t\tfont-size: 16px;\n\t\t\t\t\t\tanimation: celebrate 0.8s ease-in-out;\n\t\t\t\t\t\tfilter: drop-shadow(0 2px 4px rgba(34, 197, 94, 0.5));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/* 突出显示 done 失败结果 */\n\t\t\t&.doneError {\n\t\t\t\tbackground: linear-gradient(\n\t\t\t\t\t135deg,\n\t\t\t\t\trgba(239, 68, 68, 0.25),\n\t\t\t\t\trgba(239, 68, 68, 0.15),\n\t\t\t\t\trgba(239, 68, 68, 0.08)\n\t\t\t\t);\n\t\t\t\tborder: none;\n\t\t\t\tborder-left: 4px solid rgb(239, 68, 68);\n\t\t\t\tbox-shadow:\n\t\t\t\t\t0 4px 12px rgba(239, 68, 68, 0.3),\n\t\t\t\t\tinset 0 1px 0 rgba(255, 255, 255, 0.2),\n\t\t\t\t\t0 0 20px rgba(239, 68, 68, 0.1);\n\t\t\t\tfont-weight: 600;\n\t\t\t\tcolor: rgb(254, 226, 226);\n\t\t\t\tpadding: 10px 12px;\n\t\t\t\tmargin-bottom: 8px;\n\t\t\t\tborder-radius: 8px;\n\t\t\t\tposition: relative;\n\t\t\t\toverflow: hidden;\n\n\t\t\t\t&::before {\n\t\t\t\t\tbackground: linear-gradient(90deg, transparent, rgba(239, 68, 68, 0.4), transparent);\n\t\t\t\t}\n\n\t\t\t\t.historyContent {\n\t\t\t\t\t.statusIcon {\n\t\t\t\t\t\tfont-size: 16px;\n\t\t\t\t\t\tfilter: drop-shadow(0 2px 4px rgba(239, 68, 68, 0.5));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.historyContent {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: flex-start;\n\t\t\t\tgap: 8px;\n\n\t\t\t\tword-break: break-all;\n\t\t\t\twhite-space: pre-wrap;\n\n\t\t\t\t/* overflow-x: auto; */\n\n\t\t\t\t.statusIcon {\n\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\tflex-shrink: 0;\n\t\t\t\t\tline-height: 1;\n\t\t\t\t\ttransition: all 0.3s ease;\n\t\t\t\t}\n\n\t\t\t\t.reflectionLines {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tflex-direction: column;\n\t\t\t\t\tgap: 4px;\n\t\t\t\t}\n\n\t\t\t\t/* ========== Markdown content styles ========== */\n\t\t\t\t.markdownContent {\n\t\t\t\t\tflex: 1;\n\t\t\t\t\tmin-width: 0;\n\t\t\t\t\tline-height: 1.5;\n\t\t\t\t\twhite-space: normal;\n\n\t\t\t\t\t& :global(.md-paragraph) {\n\t\t\t\t\t\tmargin: 0 0 4px 0;\n\t\t\t\t\t\twhite-space: pre-wrap;\n\t\t\t\t\t\t&:last-child {\n\t\t\t\t\t\t\tmargin-bottom: 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t& :global(.md-heading) {\n\t\t\t\t\t\tmargin: 6px 0 2px 0;\n\t\t\t\t\t\tfont-size: 13px;\n\t\t\t\t\t\tfont-weight: 600;\n\t\t\t\t\t\tcolor: rgba(255, 255, 255, 0.95);\n\t\t\t\t\t\tline-height: 1.3;\n\t\t\t\t\t}\n\n\t\t\t\t\t& :global(.md-inline-code) {\n\t\t\t\t\t\tbackground: rgba(255, 255, 255, 0.12);\n\t\t\t\t\t\tpadding: 1px 4px;\n\t\t\t\t\t\tborder-radius: 3px;\n\t\t\t\t\t\tfont-family: 'SF Mono', 'Cascadia Code', 'Fira Code', Consolas, monospace;\n\t\t\t\t\t\tfont-size: 11px;\n\t\t\t\t\t\twhite-space: pre-wrap;\n\t\t\t\t\t\tword-break: break-all;\n\t\t\t\t\t}\n\n\t\t\t\t\t& :global(.md-code-block) {\n\t\t\t\t\t\tbackground: rgba(0, 0, 0, 0.3);\n\t\t\t\t\t\tborder: 1px solid rgba(255, 255, 255, 0.1);\n\t\t\t\t\t\tborder-radius: 6px;\n\t\t\t\t\t\tpadding: 8px 10px 8px 28px;\n\t\t\t\t\t\tmargin: 4px 0;\n\t\t\t\t\t\toverflow-x: auto;\n\t\t\t\t\t\tfont-family: 'SF Mono', 'Cascadia Code', 'Fira Code', Consolas, monospace;\n\t\t\t\t\t\tfont-size: 11px;\n\t\t\t\t\t\tline-height: 1.4;\n\t\t\t\t\t\twhite-space: pre;\n\n\t\t\t\t\t\t& code {\n\t\t\t\t\t\t\tbackground: none;\n\t\t\t\t\t\t\tpadding: 0;\n\t\t\t\t\t\t\tfont-size: inherit;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t& strong {\n\t\t\t\t\t\tfont-weight: 600;\n\t\t\t\t\t\tcolor: rgba(255, 255, 255, 0.95);\n\t\t\t\t\t}\n\n\t\t\t\t\t& em {\n\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\tcolor: rgba(255, 255, 255, 0.85);\n\t\t\t\t\t}\n\n\t\t\t\t\t& a {\n\t\t\t\t\t\tcolor: var(--color-1);\n\t\t\t\t\t\ttext-decoration: underline;\n\t\t\t\t\t\t&:hover {\n\t\t\t\t\t\t\tcolor: var(--color-2);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t& :global(.md-list) {\n\t\t\t\t\t\tmargin: 2px 0;\n\t\t\t\t\t\tpadding-left: 16px;\n\n\t\t\t\t\t\t& li {\n\t\t\t\t\t\t\tmargin-bottom: 1px;\n\t\t\t\t\t\t\t&:last-child {\n\t\t\t\t\t\t\t\tmargin-bottom: 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&.md-ordered-list {\n\t\t\t\t\t\t\tpadding-left: 18px;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/* ========== Timeline styles ========== */\n\t\t\t.timelineDot {\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: 6px;\n\t\t\t\ttop: 10px;\n\t\t\t\twidth: 14px;\n\t\t\t\theight: 14px;\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tborder: 2px solid rgba(255, 255, 255, 0.6);\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\tflex-shrink: 0;\n\t\t\t\tz-index: 1;\n\t\t\t\ttransition: all 0.3s ease;\n\t\t\t}\n\n\t\t\t.timelineStepNumber {\n\t\t\t\tfont-size: 8px;\n\t\t\t\tfont-weight: 700;\n\t\t\t\tcolor: white;\n\t\t\t\tline-height: 1;\n\t\t\t\ttext-shadow: 0 0 2px rgba(0, 0, 0, 0.5);\n\t\t\t}\n\n\t\t\t/* Timeline connector line between cards in a step group */\n\t\t\t&.timelineFirst::after {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: 12px;\n\t\t\t\ttop: 24px;\n\t\t\t\tbottom: -3px;\n\t\t\t\twidth: 2px;\n\t\t\t\tbackground: rgba(255, 255, 255, 0.15);\n\t\t\t\tz-index: 0;\n\t\t\t}\n\n\t\t\t&.timelineLast::after {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: 12px;\n\t\t\t\ttop: -3px;\n\t\t\t\tbottom: calc(100% - 10px);\n\t\t\t\twidth: 2px;\n\t\t\t\tbackground: rgba(255, 255, 255, 0.15);\n\t\t\t\tz-index: 0;\n\t\t\t}\n\n\t\t\t.historyMeta {\n\t\t\t\tfont-size: 10px;\n\t\t\t\tcolor: rgba(255, 255, 255, 0.6);\n\t\t\t\t/* color: rgb(61, 61, 61); */\n\t\t\t\tmargin-top: 8px;\n\t\t\t\tline-height: 1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* 动画关键帧 - 更快的闪烁 */\n@keyframes pulse {\n\t0%,\n\t100% {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t}\n\t50% {\n\t\topacity: 0.4;\n\t\ttransform: scale(1.3);\n\t}\n}\n\n/* 重试动画 - 旋转脉冲 */\n@keyframes retryPulse {\n\t0%,\n\t100% {\n\t\topacity: 1;\n\t\ttransform: scale(1) rotate(0deg);\n\t}\n\t25% {\n\t\topacity: 0.6;\n\t\ttransform: scale(1.2) rotate(90deg);\n\t}\n\t50% {\n\t\topacity: 0.8;\n\t\ttransform: scale(1.1) rotate(180deg);\n\t}\n\t75% {\n\t\topacity: 0.6;\n\t\ttransform: scale(1.2) rotate(270deg);\n\t}\n}\n\n/* 庆祝动画 */\n@keyframes celebrate {\n\t0%,\n\t100% {\n\t\ttransform: scale(1);\n\t}\n\t25% {\n\t\ttransform: scale(1.2) rotate(-5deg);\n\t}\n\t75% {\n\t\ttransform: scale(1.2) rotate(5deg);\n\t}\n}\n\n/* done 卡片的光泽效果 */\n@keyframes shimmer {\n\t0% {\n\t\tleft: -100%;\n\t}\n\t100% {\n\t\tleft: 100%;\n\t}\n}\n\n/* 输入区域样式 */\n.inputSectionWrapper {\n\tposition: absolute;\n\twidth: var(--history-width);\n\ttop: var(--height);\n\tleft: var(--side-space);\n\tz-index: -1;\n\n\tvisibility: visible;\n\toverflow: visible;\n\n\theight: auto;\n\n\ttransition: all 0.2s;\n\n\tbackground: rgba(186, 186, 186, 0.2);\n\tbackdrop-filter: blur(10px);\n\n\tborder-bottom-left-radius: calc(var(--border-radius) + 4px);\n\tborder-bottom-right-radius: calc(var(--border-radius) + 4px);\n\n\tborder: 2px solid rgba(255, 255, 255, 0.3);\n\tbox-shadow: 0 1px 16px rgba(0, 0, 0, 0.4);\n\n\t&.hidden {\n\t\tvisibility: collapse;\n\t\theight: 0;\n\t\toverflow: hidden;\n\t}\n\n\t.inputSection {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: stretch;\n\t\tgap: 4px;\n\t\tpadding: 6px 8px 8px;\n\n\t\t.taskInput {\n\t\t\tflex: 1;\n\t\t\tbackground: rgba(255, 255, 255, 0.4);\n\t\t\tborder: 1px solid rgba(255, 255, 255, 0.3);\n\t\t\tborder-radius: 10px;\n\t\t\tpadding: 8px 10px 8px 28px;\n\t\t\tcolor: rgb(20, 20, 20);\n\t\t\tfont-size: 12px;\n\t\t\tfont-family:\n\t\t\t\t-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n\t\t\tfont-variant: normal;\n\t\t\tfont-weight: 400;\n\t\t\tletter-spacing: normal;\n\t\t\ttext-transform: none;\n\t\t\tword-spacing: normal;\n\t\t\tmin-height: 68px;\n\t\t\tmax-height: 120px;\n\t\t\tline-height: 1.4;\n\t\t\toutline: none;\n\t\t\tresize: none;\n\t\t\ttransition: all 0.2s ease;\n\n\t\t\t/* text-shadow: 0 0 2px rgba(255, 255, 255, 0.8); */\n\n\t\t\t/* border-color: rgba(57, 182, 255, 0.3); */\n\n\t\t\t&::placeholder {\n\t\t\t\tcolor: rgb(53, 53, 53);\n\t\t\t}\n\n\t\t\t&:focus {\n\t\t\t\tbackground: rgba(255, 255, 255, 0.8);\n\t\t\t\tborder-color: rgba(57, 182, 255, 0.6);\n\t\t\t\tbox-shadow: 0 0 0 2px rgba(57, 182, 255, 0.2);\n\t\t\t}\n\t\t}\n\n\t\t.inputResizeHandle {\n\t\t\twidth: 40px;\n\t\t\theight: 6px;\n\t\t\tmargin: -7px auto 0;\n\t\t\tbackground: #d4886e;\n\t\t\tborder-radius: 4px;\n\t\t\tcursor: ns-resize;\n\t\t\tflex-shrink: 0;\n\t\t\ttransition: background 0.2s;\n\n\t\t\t&:hover {\n\t\t\t\tbackground: #ba6e54;\n\t\t\t}\n\t\t}\n\t}\n\n\t.inputFooter {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: flex-end;\n\t\tgap: 6px;\n\t\tpadding: 6px 8px;\n\t\tborder-top: 1px solid rgba(0, 0, 0, 0.12);\n\t}\n}\n\n/* ========== Resize Handle (right edge — width only) ========== */\n.resizeHandle {\n\tposition: absolute;\n\ttop: 8px;\n\tright: -4px;\n\tbottom: 8px;\n\twidth: 8px;\n\tcursor: ew-resize;\n\tz-index: 10;\n\tborder-radius: 2px;\n\ttransition: background 0.2s;\n\n\t&:hover {\n\t\tbackground: rgba(255, 255, 255, 0.15);\n\t}\n}\n\n/* ======== Settings Panel ======== */\n\n.settingsSection {\n\tposition: absolute;\n\twidth: var(--history-width);\n\tbottom: var(--height);\n\tleft: var(--side-space);\n\tz-index: -1;\n\tmax-height: min(520px, calc(100vh - 150px - var(--height)));\n\toverflow: hidden;\n\tdisplay: flex;\n\tflex-direction: column;\n\n\tbackground: rgba(0, 0, 0, 0.75);\n\tbackdrop-filter: blur(10px);\n\n\tborder-top-left-radius: calc(var(--border-radius) + 4px);\n\tborder-top-right-radius: calc(var(--border-radius) + 4px);\n\n\tborder: 2px solid rgba(255, 255, 255, 0.4);\n\tbox-shadow: 0 4px 16px rgba(0, 0, 0, 0.6);\n\n\ttransition: all 0.2s;\n\tvisibility: visible;\n\tpadding: 0;\n\n\t&.hidden {\n\t\tvisibility: collapse;\n\t\tmax-height: 0;\n\t}\n}\n\n.settingsHeader {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 10px 14px 8px 14px;\n\tborder-bottom: 1px solid rgba(255, 255, 255, 0.1);\n\tflex-shrink: 0;\n}\n\n.settingsTitle {\n\tfont-size: 13px;\n\tfont-weight: 600;\n\tcolor: rgba(255, 255, 255, 0.9);\n\tmargin: 0;\n}\n\n.settingsCloseBtn {\n\tbackground: rgba(255, 255, 255, 0.1);\n\tborder: 1px solid rgba(255, 255, 255, 0.15);\n\tcolor: #fff;\n\twidth: 26px;\n\theight: 26px;\n\tborder-radius: 6px;\n\tcursor: pointer;\n\tfont-size: 13px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-shrink: 0;\n\n\t&:hover {\n\t\tbackground: rgba(255, 255, 255, 0.2);\n\t}\n}\n\n/* ======== Tabs ======== */\n\n.tabsBar {\n\tdisplay: flex;\n\tgap: 0;\n\tpadding: 0 14px;\n\tborder-bottom: 1px solid rgba(255, 255, 255, 0.08);\n\tflex-shrink: 0;\n\toverflow-x: auto;\n\toverflow-y: hidden;\n}\n\n.tabBtn {\n\tbackground: none;\n\tborder: none;\n\tcolor: rgba(255, 255, 255, 0.5);\n\tfont-size: 11px;\n\tfont-weight: 500;\n\tpadding: 8px 12px;\n\tcursor: pointer;\n\tborder-bottom: 2px solid transparent;\n\tmargin-bottom: -1px;\n\ttransition:\n\t\tcolor 0.2s,\n\t\tborder-color 0.2s;\n\twhite-space: nowrap;\n\n\t&:hover {\n\t\tcolor: rgba(255, 255, 255, 0.85);\n\t}\n}\n\n.tabActive {\n\tcolor: #39b6ff;\n\tborder-bottom-color: #39b6ff;\n}\n\n/* ======== Tab Content ======== */\n\n.tabContent {\n\tflex: 1;\n\toverflow-y: auto;\n\tpadding: 12px 14px;\n}\n\n.tabPanel {\n\tdisplay: none;\n}\n\n.tabPanelActive {\n\tdisplay: block;\n}\n\n/* ======== Settings Form Fields ======== */\n\n.formGroup {\n\tmargin-bottom: 11px;\n}\n\n.formLabel {\n\tdisplay: block;\n\tfont-size: 10px;\n\tfont-weight: 600;\n\tcolor: rgba(255, 255, 255, 0.55);\n\tmargin-bottom: 5px;\n\ttext-transform: uppercase;\n\tletter-spacing: 0.6px;\n}\n\n.formInput {\n\twidth: 100%;\n\tpadding: 8px 10px;\n\tborder-radius: 6px;\n\tborder: 1px solid rgba(255, 255, 255, 0.1);\n\tbackground: rgba(255, 255, 255, 0.05);\n\tcolor: #fff;\n\tfont-size: 12.5px;\n\toutline: none;\n\tbox-sizing: border-box;\n\ttransition:\n\t\tborder-color 0.2s ease,\n\t\tbackground 0.2s ease,\n\t\tbox-shadow 0.2s ease;\n\n\t&:hover {\n\t\tborder-color: rgba(255, 255, 255, 0.2);\n\t\tbackground: rgba(255, 255, 255, 0.07);\n\t}\n\n\t&:focus {\n\t\tborder-color: #39b6ff;\n\t\tbackground: rgba(57, 182, 255, 0.06);\n\t\tbox-shadow: 0 0 0 3px rgba(57, 182, 255, 0.12);\n\t}\n\n\t&::placeholder {\n\t\tcolor: rgba(255, 255, 255, 0.2);\n\t}\n}\n\n.formInputPassword {\n\tfont-family: 'SF Mono', 'Fira Code', monospace;\n\tletter-spacing: 2.5px;\n\n\t&::placeholder {\n\t\tletter-spacing: 0;\n\t}\n}\n\n.formHint {\n\tfont-size: 10px;\n\tcolor: rgba(255, 255, 255, 0.3);\n\tmargin-top: 4px;\n\tline-height: 1.4;\n}\n\n/* ======== Slider (Temperature) ======== */\n\n.sliderRow {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 10px;\n}\n\n.sliderInput {\n\tflex: 1;\n\tappearance: none;\n\theight: 6px;\n\tborder-radius: 3px;\n\tbackground: rgba(255, 255, 255, 0.1);\n\toutline: none;\n\tcursor: pointer;\n\ttransition: background 0.15s ease;\n\n\t&:hover {\n\t\tbackground: rgba(255, 255, 255, 0.15);\n\t}\n\n\t&::-webkit-slider-thumb {\n\t\tappearance: none;\n\t\twidth: 16px;\n\t\theight: 16px;\n\t\tborder-radius: 50%;\n\t\tbackground: #fff;\n\t\tcursor: pointer;\n\t\tborder: none;\n\t\tbox-shadow:\n\t\t\t0 0 0 3px rgba(57, 182, 255, 0.3),\n\t\t\t0 2px 6px rgba(0, 0, 0, 0.3);\n\t\ttransition:\n\t\t\tbox-shadow 0.15s ease,\n\t\t\ttransform 0.1s ease;\n\t}\n\n\t&::-webkit-slider-thumb:hover {\n\t\tbox-shadow:\n\t\t\t0 0 0 4px rgba(57, 182, 255, 0.45),\n\t\t\t0 2px 8px rgba(0, 0, 0, 0.4);\n\t\ttransform: scale(1.1);\n\t}\n\n\t&::-webkit-slider-thumb:active {\n\t\ttransform: scale(0.95);\n\t}\n}\n\n.sliderValue {\n\tfont-size: 13px;\n\tfont-weight: 600;\n\tcolor: #39b6ff;\n\tmin-width: 34px;\n\ttext-align: right;\n\tfont-variant-numeric: tabular-nums;\n}\n\n/* ======== Checkbox / Toggle ======== */\n\n.checkboxRow {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 8px 10px;\n\tbackground: rgba(255, 255, 255, 0.03);\n\tborder-radius: 7px;\n\tborder: 1px solid rgba(255, 255, 255, 0.06);\n\tgap: 8px;\n}\n\n.checkboxLabel {\n\tfont-size: 11.5px;\n\tfont-weight: 500;\n\tcolor: rgba(255, 255, 255, 0.8);\n}\n\n.toggleSwitch {\n\tposition: relative;\n\twidth: 38px;\n\theight: 22px;\n\tflex-shrink: 0;\n}\n\n.toggleInput {\n\topacity: 0;\n\twidth: 0;\n\theight: 0;\n\n\t&:checked + .toggleTrack {\n\t\tbackground: #39b6ff;\n\t\tbox-shadow: 0 0 8px rgba(57, 182, 255, 0.35);\n\t}\n\n\t&:checked + .toggleTrack::after {\n\t\ttransform: translateX(16px);\n\t}\n}\n\n.toggleTrack {\n\tposition: absolute;\n\tinset: 0;\n\tbackground: rgba(255, 255, 255, 0.18);\n\tborder-radius: 11px;\n\tcursor: pointer;\n\ttransition:\n\t\tbackground 0.2s ease,\n\t\tbox-shadow 0.2s ease;\n\n\t&:hover {\n\t\tbackground: rgba(255, 255, 255, 0.25);\n\t}\n\n\t&::after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\ttop: 3px;\n\t\tleft: 3px;\n\t\twidth: 16px;\n\t\theight: 16px;\n\t\tborder-radius: 50%;\n\t\tbackground: #fff;\n\t\tbox-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);\n\t\ttransition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);\n\t}\n}\n\n.settingsBtn {\n\t/* base styling inherited from .controlButton */\n}\n\n/* ======== Settings Scrollbar ======== */\n\n.tabContent {\n\tscrollbar-width: thin;\n\tscrollbar-color: rgba(255, 255, 255, 0.12) transparent;\n\n\t&::-webkit-scrollbar {\n\t\twidth: 4px;\n\t}\n\n\t&::-webkit-scrollbar-track {\n\t\tbackground: transparent;\n\t\tmargin-block: 4px;\n\t}\n\n\t&::-webkit-scrollbar-thumb {\n\t\tbackground: rgba(255, 255, 255, 0.12);\n\t\tborder-radius: 2px;\n\n\t\t&:hover {\n\t\t\tbackground: rgba(57, 182, 255, 0.4);\n\t\t}\n\t}\n}\n\n/* ======== Model Switcher (in input area) ======== */\n\n.modelSwitcher {\n\tposition: relative;\n\twidth: auto;\n\tmax-width: 100%;\n\tflex-shrink: 0;\n\tz-index: 10;\n\tpointer-events: auto;\n}\n\n.modelSwitcherPill {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 5px;\n\twidth: auto;\n\tmax-width: min(100%, 180px);\n\theight: 28px;\n\tpadding: 0 8px;\n\tborder: 1px solid rgba(255, 255, 255, 0.12);\n\tborder-radius: 14px;\n\tbackground: rgba(255, 255, 255, 0.08);\n\tbackdrop-filter: blur(8px);\n\tcolor: rgba(255, 255, 255, 0.9);\n\tfont-size: 11px;\n\tfont-family:\n\t\t-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n\tcursor: pointer;\n\ttransition:\n\t\tbackground 0.2s ease,\n\t\ttransform 0.15s ease,\n\t\tborder-color 0.2s ease,\n\t\tbox-shadow 0.2s ease;\n\tuser-select: none;\n\n\t&:hover {\n\t\tbackground: rgba(255, 255, 255, 0.14);\n\t\tborder-color: rgba(255, 255, 255, 0.22);\n\t\ttransform: scale(1.02);\n\t\tbox-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);\n\t}\n\n\t&:active {\n\t\ttransform: scale(0.98);\n\t}\n}\n\n.modelSwitcherPillOpen {\n\tbackground: rgba(57, 182, 255, 0.15);\n\tborder-color: rgba(57, 182, 255, 0.4);\n\tbox-shadow: 0 0 12px rgba(57, 182, 255, 0.15);\n}\n\n.modelSwitcherPillEmpty {\n\topacity: 0.5;\n\n\t&:hover {\n\t\topacity: 0.8;\n\t}\n}\n\n.modelSwitcherPillIcon {\n\tfont-size: 11px;\n\tflex-shrink: 0;\n\tline-height: 1;\n\topacity: 0.8;\n}\n\n.modelSwitcherPillName {\n\tflex: 1;\n\ttext-align: left;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n\tfont-weight: 500;\n}\n\n.modelSwitcherPillChevron {\n\tfont-size: 7px;\n\tflex-shrink: 0;\n\ttransition: transform 0.2s ease;\n\topacity: 0.6;\n\n\t.modelSwitcherPillOpen & {\n\t\ttransform: rotate(180deg);\n\t}\n}\n\n/* ======== Model Dropdown ======== */\n\n.modelDropdown {\n\tposition: absolute;\n\tbottom: calc(100% + 6px);\n\tleft: 50%;\n\tright: auto;\n\ttop: auto;\n\twidth: max-content;\n\tmin-width: min(320px, calc(var(--history-width) - 16px));\n\tmax-width: min(360px, calc(var(--history-width) - 16px));\n\tmax-height: min(320px, calc(100vh - 260px));\n\toverflow-y: auto;\n\tz-index: 100;\n\n\tbackground: rgba(15, 15, 30, 0.94);\n\tbackdrop-filter: blur(20px);\n\tborder: 1px solid rgba(255, 255, 255, 0.1);\n\tborder-radius: 12px;\n\tbox-shadow:\n\t\t0 8px 32px rgba(0, 0, 0, 0.5),\n\t\t0 0 0 1px rgba(255, 255, 255, 0.05) inset;\n\tpadding: 6px;\n\n\topacity: 0;\n\ttransform: translate(-50%, 4px);\n\ttransition:\n\t\topacity 0.2s ease-out,\n\t\ttransform 0.2s ease-out;\n\tpointer-events: none;\n\n\tscrollbar-width: thin;\n\tscrollbar-color: rgba(255, 255, 255, 0.1) transparent;\n\n\t&::-webkit-scrollbar {\n\t\twidth: 4px;\n\t}\n\n\t&::-webkit-scrollbar-track {\n\t\tbackground: transparent;\n\t}\n\n\t&::-webkit-scrollbar-thumb {\n\t\tbackground: rgba(255, 255, 255, 0.1);\n\t\tborder-radius: 2px;\n\n\t\t&:hover {\n\t\t\tbackground: rgba(57, 182, 255, 0.35);\n\t\t}\n\t}\n}\n\n.modelDropdownOpen {\n\topacity: 1;\n\ttransform: translate(-50%, 0);\n\tpointer-events: all;\n}\n\n.modelDropdownClosing {\n\topacity: 0;\n\ttransform: translate(-50%, 4px);\n}\n\n.modelDropdownEmpty {\n\tpadding: 16px 12px;\n\ttext-align: center;\n\tfont-size: 11px;\n\tcolor: rgba(255, 255, 255, 0.4);\n}\n\n/* ======== Provider Group in Dropdown ======== */\n\n.modelDropdownGroup {\n\tmargin-bottom: 2px;\n\n\t&:last-of-type {\n\t\tmargin-bottom: 0;\n\t}\n}\n\n.modelDropdownGroupLabel {\n\tpadding: 6px 10px 4px;\n\tfont-size: 9px;\n\tfont-weight: 600;\n\tcolor: rgba(255, 255, 255, 0.35);\n\ttext-transform: uppercase;\n\tletter-spacing: 0.8px;\n\tuser-select: none;\n}\n\n.modelDropdownItem {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tpadding: 7px 10px;\n\tborder-radius: 8px;\n\tcursor: pointer;\n\ttransition:\n\t\tbackground 0.12s ease,\n\t\tcolor 0.12s ease;\n\tfont-size: 11.5px;\n\tcolor: rgba(255, 255, 255, 0.75);\n\toutline: none;\n\tborder: 1px solid transparent;\n\n\t&:hover {\n\t\tbackground: rgba(255, 255, 255, 0.1);\n\t\tcolor: rgba(255, 255, 255, 0.95);\n\t}\n\n\t&:focus-visible {\n\t\tborder-color: rgba(57, 182, 255, 0.5);\n\t\tbox-shadow: 0 0 0 2px rgba(57, 182, 255, 0.15);\n\t}\n}\n\n.modelDropdownItemActive {\n\tbackground: rgba(57, 182, 255, 0.12);\n\tcolor: #39b6ff;\n\tfont-weight: 500;\n\tborder-left: 2px solid #39b6ff;\n\n\t&:hover {\n\t\tbackground: rgba(57, 182, 255, 0.18);\n\t\tcolor: #39b6ff;\n\t}\n}\n\n.modelDropdownItemIcon {\n\twidth: 16px;\n\tfont-size: 12px;\n\tflex-shrink: 0;\n\ttext-align: center;\n\tcolor: #39b6ff;\n}\n\n.modelDropdownItemName {\n\tflex: 1;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n.modelDropdownItemBadge {\n\tfont-size: 10px;\n\topacity: 0.5;\n\tflex-shrink: 0;\n}\n\n/* ======== Dropdown Footer ======== */\n\n.modelDropdownFooter {\n\tborder-top: 1px solid rgba(255, 255, 255, 0.06);\n\tmargin-top: 4px;\n\tpadding: 4px 0 0;\n}\n\n.modelDropdownFooterBtn {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n\twidth: 100%;\n\tpadding: 8px 10px;\n\tborder: none;\n\tborder-radius: 8px;\n\tbackground: transparent;\n\tcolor: rgba(255, 255, 255, 0.5);\n\tfont-size: 11px;\n\tcursor: pointer;\n\ttransition:\n\t\tbackground 0.12s ease,\n\t\tcolor 0.12s ease;\n\tfont-family: inherit;\n\n\t&:hover {\n\t\tbackground: rgba(255, 255, 255, 0.06);\n\t\tcolor: rgba(255, 255, 255, 0.8);\n\t}\n}\n\n/* ======== Multi-Provider Settings Cards ======== */\n\n.modelSwitcherContainer {\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\twidth: 100%;\n\tmargin-bottom: 0;\n}\n\n.providerCard {\n\tborder: 1px solid rgba(255, 255, 255, 0.08);\n\tborder-radius: 8px;\n\tmargin-bottom: 8px;\n\tbackground: rgba(255, 255, 255, 0.03);\n\toverflow: hidden;\n\ttransition:\n\t\tborder-color 0.2s ease,\n\t\tbox-shadow 0.2s ease;\n}\n\n.providerCard:hover {\n\tborder-color: rgba(255, 255, 255, 0.15);\n}\n\n.providerCardActive {\n\tborder-color: rgba(57, 182, 255, 0.45);\n\tbox-shadow:\n\t\t0 0 0 1px rgba(57, 182, 255, 0.18),\n\t\t0 0 14px rgba(57, 182, 255, 0.12);\n\tbackground: linear-gradient(180deg, rgba(57, 182, 255, 0.08), rgba(255, 255, 255, 0.03));\n}\n\n.providerCardActive .providerCardHeader {\n\tbackground: rgba(57, 182, 255, 0.08);\n}\n\n.providerCardHeader {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tpadding: 10px 12px;\n\tcursor: pointer;\n\tuser-select: none;\n\ttransition: background 0.15s ease;\n}\n\n.providerCardHeader:hover {\n\tbackground: rgba(255, 255, 255, 0.04);\n}\n\n.providerCardSelectBtn {\n\tborder: 1px solid rgba(255, 255, 255, 0.1);\n\tborder-radius: 999px;\n\tbackground: rgba(255, 255, 255, 0.05);\n\tcolor: rgba(255, 255, 255, 0.72);\n\tpadding: 4px 9px;\n\tfont-size: 10px;\n\tfont-family: inherit;\n\twhite-space: nowrap;\n\tcursor: pointer;\n\tflex-shrink: 0;\n\ttransition:\n\t\tborder-color 0.15s ease,\n\t\tbackground 0.15s ease,\n\t\tcolor 0.15s ease,\n\t\tbox-shadow 0.15s ease,\n\t\ttransform 0.15s ease;\n}\n\n.providerCardSelectBtn:hover {\n\tborder-color: rgba(255, 255, 255, 0.18);\n\tbackground: rgba(255, 255, 255, 0.09);\n\tcolor: rgba(255, 255, 255, 0.94);\n}\n\n.providerCardSelectBtnActive {\n\tborder-color: rgba(57, 182, 255, 0.42);\n\tbackground: rgba(57, 182, 255, 0.15);\n\tcolor: #8dd8ff;\n\tbox-shadow: 0 0 0 1px rgba(57, 182, 255, 0.14);\n}\n\n.providerCardSelectBtnActive:hover {\n\tborder-color: rgba(57, 182, 255, 0.48);\n\tbackground: rgba(57, 182, 255, 0.18);\n\tcolor: #a7e4ff;\n}\n\n.providerCardDeleteBtn {\n\twidth: 24px;\n\theight: 24px;\n\tborder: 1px solid rgba(239, 68, 68, 0.18);\n\tborder-radius: 999px;\n\tbackground: rgba(239, 68, 68, 0.08);\n\tcolor: rgba(255, 120, 120, 0.9);\n\tfont-size: 11px;\n\tfont-family: inherit;\n\tline-height: 1;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcursor: pointer;\n\tflex-shrink: 0;\n\ttransition:\n\t\tborder-color 0.15s ease,\n\t\tbackground 0.15s ease,\n\t\tcolor 0.15s ease,\n\t\tbox-shadow 0.15s ease,\n\t\ttransform 0.15s ease;\n}\n\n.expandButton {\n\tcolor: rgba(255, 255, 255, 0.88);\n}\n\n.expandButtonActive {\n\tbackground: rgba(57, 182, 255, 0.22) !important;\n\tcolor: #8dd8ff;\n}\n\n.providerCardDeleteBtn:hover {\n\tborder-color: rgba(239, 68, 68, 0.38);\n\tbackground: rgba(239, 68, 68, 0.18);\n\tcolor: rgb(255, 160, 160);\n\tbox-shadow: 0 0 0 1px rgba(239, 68, 68, 0.08);\n}\n\n.providerCardDeleteBtnDisabled,\n.providerCardDeleteBtn:disabled {\n\tborder-color: rgba(255, 255, 255, 0.08);\n\tbackground: rgba(255, 255, 255, 0.03);\n\tcolor: rgba(255, 255, 255, 0.2);\n\tcursor: not-allowed;\n\tbox-shadow: none;\n}\n\n.providerCardDeleteBtnDisabled:hover,\n.providerCardDeleteBtn:disabled:hover {\n\tborder-color: rgba(255, 255, 255, 0.08);\n\tbackground: rgba(255, 255, 255, 0.03);\n\tcolor: rgba(255, 255, 255, 0.2);\n\tbox-shadow: none;\n}\n\n.providerCardName {\n\tfont-size: 12px;\n\tfont-weight: 600;\n\tcolor: rgba(255, 255, 255, 0.85);\n\tflex: 1;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n.providerCardBadge {\n\tfont-size: 10px;\n\tcolor: rgba(255, 255, 255, 0.35);\n\tbackground: rgba(255, 255, 255, 0.06);\n\tpadding: 2px 8px;\n\tborder-radius: 10px;\n\tflex-shrink: 0;\n}\n\n.providerCardChevron {\n\tfont-size: 8px;\n\tcolor: rgba(255, 255, 255, 0.4);\n\ttransition: transform 0.2s ease;\n\tflex-shrink: 0;\n}\n\n.providerCardExpanded .providerCardChevron {\n\ttransform: rotate(180deg);\n}\n\n.providerCardBody {\n\tdisplay: none;\n\tpadding: 0 12px 12px;\n\tborder-top: 1px solid rgba(255, 255, 255, 0.06);\n}\n\n.providerCardExpanded .providerCardBody {\n\tdisplay: block;\n}\n\n.providerEmpty {\n\ttext-align: center;\n\tpadding: 24px 12px;\n\tfont-size: 12px;\n\tcolor: rgba(255, 255, 255, 0.35);\n\tline-height: 1.6;\n}\n\n.providerAddBtn {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tgap: 4px;\n\twidth: 100%;\n\tpadding: 10px;\n\tborder: 1px dashed rgba(255, 255, 255, 0.12);\n\tborder-radius: 8px;\n\tbackground: transparent;\n\tcolor: rgba(255, 255, 255, 0.5);\n\tfont-size: 11px;\n\tfont-family: inherit;\n\tcursor: pointer;\n\ttransition:\n\t\tborder-color 0.2s ease,\n\t\tcolor 0.2s ease,\n\t\tbackground 0.2s ease;\n}\n\n.providerAddBtn:hover {\n\tborder-color: rgba(57, 182, 255, 0.4);\n\tcolor: #39b6ff;\n\tbackground: rgba(57, 182, 255, 0.05);\n}\n\n.modelRow {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n\tmargin-bottom: 6px;\n\tpadding: 6px 8px;\n\tbackground: rgba(255, 255, 255, 0.03);\n\tborder-radius: 6px;\n\tborder: 1px solid rgba(255, 255, 255, 0.05);\n}\n\n.modelRowActive {\n\tborder-color: rgba(57, 182, 255, 0.28);\n\tbackground: rgba(57, 182, 255, 0.08);\n\tbox-shadow: 0 0 0 1px rgba(57, 182, 255, 0.08);\n}\n\n.modelNameInput {\n\tflex: 1;\n\tfont-size: 11px !important;\n\tpadding: 5px 8px !important;\n}\n\n.modelSelectBtn {\n\tflex-shrink: 0;\n\tpadding: 5px 8px;\n\tborder-radius: 999px;\n\tborder: 1px solid rgba(255, 255, 255, 0.1);\n\tbackground: rgba(255, 255, 255, 0.05);\n\tcolor: rgba(255, 255, 255, 0.68);\n\tfont-size: 10px;\n\tfont-family: inherit;\n\tcursor: pointer;\n\twhite-space: nowrap;\n\ttransition:\n\t\tbackground 0.15s ease,\n\t\tborder-color 0.15s ease,\n\t\tcolor 0.15s ease,\n\t\tbox-shadow 0.15s ease;\n}\n\n.modelSelectBtn:hover {\n\tborder-color: rgba(57, 182, 255, 0.28);\n\tbackground: rgba(57, 182, 255, 0.12);\n\tcolor: rgba(255, 255, 255, 0.92);\n}\n\n.modelSelectBtnActive {\n\tborder-color: rgba(57, 182, 255, 0.45);\n\tbackground: rgba(57, 182, 255, 0.2);\n\tcolor: #8dd8ff;\n\tbox-shadow: 0 0 0 1px rgba(57, 182, 255, 0.12);\n}\n\n.modelSelectBtnActive:hover {\n\tborder-color: rgba(57, 182, 255, 0.45);\n\tbackground: rgba(57, 182, 255, 0.22);\n\tcolor: #a7e4ff;\n}\n\n.modelDeleteBtn {\n\twidth: 24px;\n\theight: 24px;\n\tflex-shrink: 0;\n\tborder: none;\n\tborder-radius: 4px;\n\tbackground: rgba(255, 255, 255, 0.05);\n\tcolor: rgba(255, 255, 255, 0.4);\n\tfont-size: 10px;\n\tcursor: pointer;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\ttransition:\n\t\tbackground 0.15s ease,\n\t\tcolor 0.15s ease;\n}\n\n.modelDeleteBtn:hover {\n\tbackground: rgba(239, 68, 68, 0.2);\n\tcolor: rgb(239, 68, 68);\n}\n\n.modelAddBtn {\n\tdisplay: block;\n\twidth: 100%;\n\tpadding: 6px;\n\tborder: 1px dashed rgba(255, 255, 255, 0.1);\n\tborder-radius: 6px;\n\tbackground: transparent;\n\tcolor: rgba(255, 255, 255, 0.4);\n\tfont-size: 11px;\n\tfont-family: inherit;\n\tcursor: pointer;\n\ttransition:\n\t\tborder-color 0.2s ease,\n\t\tcolor 0.2s ease;\n}\n\n.modelAddBtn:hover {\n\tborder-color: rgba(57, 182, 255, 0.3);\n\tcolor: #39b6ff;\n}\n\n.providerCardActions {\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\tmargin-top: 10px;\n\tpadding-top: 10px;\n\tborder-top: 1px solid rgba(255, 255, 255, 0.06);\n}\n\n.providerCardSaveBtn {\n\tmin-width: 84px;\n\tpadding: 8px 14px;\n\tborder-radius: 8px;\n\tborder: 1px solid rgba(57, 182, 255, 0.28);\n\tbackground: rgba(57, 182, 255, 0.18);\n\tcolor: #d9f3ff;\n\tfont-size: 11px;\n\tfont-weight: 600;\n\tfont-family: inherit;\n\tcursor: pointer;\n\ttransition:\n\t\tbackground 0.15s ease,\n\t\tborder-color 0.15s ease,\n\t\tbox-shadow 0.15s ease,\n\t\ttransform 0.1s ease;\n\n\t&:hover {\n\t\tbackground: rgba(57, 182, 255, 0.26);\n\t\tborder-color: rgba(57, 182, 255, 0.45);\n\t\tbox-shadow: 0 2px 10px rgba(57, 182, 255, 0.18);\n\t}\n\n\t&:active {\n\t\ttransform: scale(0.98);\n\t}\n}\n\n/* ========== Conversation Management ========== */\n\n.conversationSection {\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tmargin: 0 6px;\n\tflex-shrink: 0;\n}\n\n.conversationBtn {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n\tmax-width: 140px;\n\tpadding: 2px 8px;\n\tborder-radius: 6px;\n\tfont-size: 11px;\n\tbackground: rgba(0, 0, 0, 0.08);\n\tborder: 1px solid rgba(0, 0, 0, 0.12);\n\tcolor: rgba(0, 0, 0, 0.7);\n\tcursor: pointer;\n\ttransition:\n\t\tbackground 0.15s ease,\n\t\tborder-color 0.15s ease;\n\n\t&:hover {\n\t\tbackground: rgba(0, 0, 0, 0.14);\n\t\tborder-color: rgba(57, 182, 255, 0.4);\n\t}\n}\n\n.conversationBtnActive {\n\tbackground: rgba(57, 182, 255, 0.2);\n\tborder-color: rgba(57, 182, 255, 0.5);\n}\n\n.conversationBtnLabel {\n\tflex: 1;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n.conversationBtnArrow {\n\tfont-size: 8px;\n\topacity: 0.6;\n\tflex-shrink: 0;\n}\n\n.conversationDropdown {\n\tposition: absolute;\n\tz-index: 2147483643;\n\tmin-width: 220px;\n\tmax-width: 300px;\n\tmax-height: 260px;\n\toverflow-y: auto;\n\tbackground: rgba(20, 20, 30, 0.96);\n\tbackdrop-filter: blur(12px);\n\tborder: 1px solid rgba(255, 255, 255, 0.12);\n\tborder-radius: 8px;\n\tbox-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);\n\tpadding: 4px 0;\n\n\t&.hidden {\n\t\tdisplay: none;\n\t}\n}\n\n.conversationDropdownEmpty {\n\tpadding: 16px;\n\ttext-align: center;\n\tcolor: rgba(255, 255, 255, 0.4);\n\tfont-size: 12px;\n}\n\n.conversationDropdownItem {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding: 8px 10px;\n\tcursor: pointer;\n\ttransition: background 0.1s ease;\n\tborder-bottom: 1px solid rgba(255, 255, 255, 0.04);\n\n\t&:last-child {\n\t\tborder-bottom: none;\n\t}\n\n\t&:hover {\n\t\tbackground: rgba(57, 182, 255, 0.1);\n\t}\n}\n\n.conversationDropdownItemActive {\n\tbackground: rgba(57, 182, 255, 0.15);\n\n\t&:hover {\n\t\tbackground: rgba(57, 182, 255, 0.2);\n\t}\n}\n\n.conversationDropdownItemContent {\n\tflex: 1;\n\tmin-width: 0;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n}\n\n.conversationDropdownItemTitle {\n\tfont-size: 12px;\n\tcolor: rgba(255, 255, 255, 0.9);\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n.conversationDropdownItemTime {\n\tfont-size: 10px;\n\tcolor: rgba(255, 255, 255, 0.4);\n}\n\n.conversationDropdownItemDelete {\n\tflex-shrink: 0;\n\tbackground: none;\n\tborder: none;\n\tcolor: rgba(255, 255, 255, 0.3);\n\tcursor: pointer;\n\tpadding: 2px 4px;\n\tborder-radius: 4px;\n\tfont-size: 12px;\n\ttransition:\n\t\tcolor 0.15s ease,\n\t\tbackground 0.15s ease;\n\n\t&:hover {\n\t\tcolor: rgba(255, 87, 51, 0.85);\n\t\tbackground: rgba(255, 87, 51, 0.12);\n\t}\n}\n\n.newConversationBtn {\n\tfont-size: 16px;\n\tfont-weight: 600;\n\tline-height: 1;\n\tpadding: 2px 8px;\n\tbackground: rgba(0, 0, 0, 0.08);\n\tborder: 1px solid rgba(0, 0, 0, 0.12);\n\tborder-radius: 6px;\n\tcolor: rgba(0, 0, 0, 0.55);\n\tcursor: pointer;\n\ttransition:\n\t\tbackground 0.15s ease,\n\t\tcolor 0.15s ease;\n\n\t&:hover {\n\t\tbackground: rgba(57, 182, 255, 0.22);\n\t\tcolor: rgba(0, 0, 0, 0.75);\n\t}\n}\n\n/* ======== Skills Tab ======== */\n\n.skillsHeader {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tmargin-bottom: 10px;\n\tpadding-bottom: 8px;\n\tborder-bottom: 1px solid rgba(255, 255, 255, 0.08);\n}\n\n.skillsHeaderActions {\n\tdisplay: flex;\n\tgap: 6px;\n}\n\n.skillActionBtn {\n\tbackground: rgba(57, 182, 255, 0.15);\n\tborder: 1px solid rgba(57, 182, 255, 0.25);\n\tcolor: #39b6ff;\n\tpadding: 4px 10px;\n\tborder-radius: 4px;\n\tcursor: pointer;\n\tfont-size: 0.78em;\n\ttransition: background 0.15s;\n}\n\n.skillActionBtn:hover {\n\tbackground: rgba(57, 182, 255, 0.25);\n}\n\n.skillCancelBtn {\n\tbackground: rgba(255, 255, 255, 0.06);\n\tborder-color: rgba(255, 255, 255, 0.1);\n\tcolor: rgba(255, 255, 255, 0.6);\n}\n\n.skillCancelBtn:hover {\n\tbackground: rgba(255, 255, 255, 0.1);\n}\n\n.skillsEmpty {\n\tcolor: rgba(255, 255, 255, 0.35);\n\tfont-size: 0.82em;\n\tpadding: 20px 0;\n\ttext-align: center;\n}\n\n.skillsSectionLabel {\n\tcolor: rgba(255, 255, 255, 0.45);\n\tfont-size: 0.72em;\n\tfont-weight: 600;\n\ttext-transform: uppercase;\n\tletter-spacing: 0.05em;\n\tmargin: 12px 0 6px;\n\tpadding-top: 8px;\n\tborder-top: 1px solid rgba(255, 255, 255, 0.06);\n}\n\n/* Skill Card */\n.skillCard {\n\tbackground: rgba(255, 255, 255, 0.03);\n\tborder: 1px solid rgba(255, 255, 255, 0.08);\n\tborder-radius: 6px;\n\tpadding: 10px 12px;\n\tmargin-bottom: 6px;\n\ttransition:\n\t\tborder-color 0.15s,\n\t\tbackground 0.15s;\n}\n\n.skillCard:hover {\n\tborder-color: rgba(255, 255, 255, 0.14);\n}\n\n.skillCardActive {\n\tborder-color: rgba(57, 182, 255, 0.35);\n\tbackground: rgba(57, 182, 255, 0.05);\n}\n\n.skillCardHeader {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n}\n\n.skillIcon {\n\tfont-size: 1.2em;\n\tflex-shrink: 0;\n}\n\n.skillCardInfo {\n\tflex: 1;\n\tmin-width: 0;\n}\n\n.skillCardName {\n\tfont-weight: 600;\n\tfont-size: 0.85em;\n\tcolor: rgba(255, 255, 255, 0.9);\n}\n\n.skillCardMeta {\n\tdisplay: flex;\n\tgap: 8px;\n\tfont-size: 0.72em;\n\tcolor: rgba(255, 255, 255, 0.4);\n\tmargin-top: 2px;\n}\n\n.skillAuthor {\n\tcolor: rgba(255, 255, 255, 0.45);\n}\n\n.skillSourceTag {\n\tbackground: rgba(57, 182, 255, 0.12);\n\tcolor: #39b6ff;\n\tpadding: 0 4px;\n\tborder-radius: 3px;\n\tfont-size: 0.85em;\n}\n\n.skillCardDesc {\n\tfont-size: 0.78em;\n\tcolor: rgba(255, 255, 255, 0.5);\n\tmargin-top: 6px;\n\tline-height: 1.4;\n}\n\n.skillCardActions {\n\tdisplay: flex;\n\tgap: 6px;\n\tmargin-top: 8px;\n}\n\n.skillSmallBtn {\n\tbackground: rgba(255, 255, 255, 0.06);\n\tborder: 1px solid rgba(255, 255, 255, 0.1);\n\tcolor: rgba(255, 255, 255, 0.5);\n\tpadding: 2px 8px;\n\tborder-radius: 3px;\n\tcursor: pointer;\n\tfont-size: 0.72em;\n\ttransition: background 0.15s;\n}\n\n.skillSmallBtn:hover {\n\tbackground: rgba(255, 255, 255, 0.1);\n}\n\n.skillDangerBtn {\n\tcolor: #f85149;\n\tborder-color: rgba(248, 81, 73, 0.25);\n}\n\n.skillDangerBtn:hover {\n\tbackground: rgba(248, 81, 73, 0.1);\n}\n\n/* Skills Editor */\n.skillsEditor {\n\tpadding: 4px 0;\n}\n\n.skillsEditor h4 {\n\tmargin: 0 0 12px;\n\tcolor: #39b6ff;\n\tfont-size: 0.9em;\n}\n\n.skillsEditorActions {\n\tdisplay: flex;\n\tgap: 8px;\n\tmargin-top: 12px;\n}\n\n.skillCodeArea {\n\tfont-family: 'Fira Code', 'Cascadia Code', 'JetBrains Mono', monospace !important;\n\tfont-size: 0.75em !important;\n\tline-height: 1.4 !important;\n}\n\n/* ======== Toggle Switch (reused from providers) ======== */\n\n.toggleSwitch {\n\tposition: relative;\n\tdisplay: inline-block;\n\twidth: 36px;\n\theight: 20px;\n\tflex-shrink: 0;\n}\n\n.toggleSwitch input {\n\topacity: 0;\n\twidth: 0;\n\theight: 0;\n}\n\n.toggleSlider {\n\tposition: absolute;\n\tcursor: pointer;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tbackground: rgba(255, 255, 255, 0.12);\n\tborder-radius: 10px;\n\ttransition: background 0.2s;\n}\n\n.toggleSlider::before {\n\tcontent: '';\n\tposition: absolute;\n\theight: 14px;\n\twidth: 14px;\n\tleft: 3px;\n\tbottom: 3px;\n\tbackground: white;\n\tborder-radius: 50%;\n\ttransition: transform 0.2s;\n}\n\n.toggleSwitch input:checked + .toggleSlider {\n\tbackground: #39b6ff;\n}\n\n.toggleSwitch input:checked + .toggleSlider::before {\n\ttransform: translateX(16px);\n}\n\n/* ======== Form Elements (for skills editor) ======== */\n\n.formTextarea {\n\twidth: 100%;\n\tbackground: rgba(255, 255, 255, 0.05);\n\tborder: 1px solid rgba(255, 255, 255, 0.1);\n\tborder-radius: 4px;\n\tcolor: #fff;\n\tpadding: 6px 8px;\n\tfont-size: 0.8em;\n\tresize: vertical;\n\tmin-height: 40px;\n}\n\n.formTextarea:focus {\n\toutline: none;\n\tborder-color: rgba(57, 182, 255, 0.4);\n\tbackground: rgba(255, 255, 255, 0.07);\n}\n","import { resolveActiveModel } from './types'\nimport type { ModelConfig, PageAgentSettings, ProviderConfig } from './types'\n\nimport styles from './Panel.module.css'\n\nexport interface ModelSwitcherCallbacks {\n\tonModelSelect: (providerId: string, modelName: string) => void\n\tonConfigure: () => void\n\t/** Translated label for the \"Configure providers\" footer button */\n\tconfigureLabel?: string\n}\n\n/**\n * Compact model switcher component for the input area.\n *\n * Displays a pill showing the current provider/model and opens a glassmorphism\n * dropdown with all enabled providers' models grouped for quick switching.\n *\n * Keyboard: ↑↓ navigate, Enter select, Escape close, / to search.\n */\nexport class ModelSwitcher {\n\t#container: HTMLElement\n\t#pill: HTMLElement\n\t#dropdown: HTMLElement | null = null\n\t#callbacks: ModelSwitcherCallbacks\n\t#isOpen = false\n\t#activeProviderId = ''\n\t#activeModelName = ''\n\t#settings: PageAgentSettings | null = null\n\t#boundClose: (e: MouseEvent) => void\n\t#boundKeydown: (e: KeyboardEvent) => void\n\n\tconstructor(callbacks: ModelSwitcherCallbacks) {\n\t\tthis.#callbacks = callbacks\n\t\tthis.#container = document.createElement('div')\n\t\tthis.#container.className = styles.modelSwitcher\n\t\tthis.#pill = this.#buildPill()\n\t\tthis.#container.appendChild(this.#pill)\n\n\t\tthis.#boundClose = (e: MouseEvent) => {\n\t\t\tif (this.#dropdown && !this.#container.contains(e.target as Node)) {\n\t\t\t\tthis.#closeDropdown()\n\t\t\t}\n\t\t}\n\t\tthis.#boundKeydown = (e: KeyboardEvent) => {\n\t\t\tthis.#handleKeyDown(e)\n\t\t}\n\t}\n\n\tget element(): HTMLElement {\n\t\treturn this.#container\n\t}\n\n\t// ========== Public API ==========\n\n\t/**\n\t * Render the switcher with current settings.\n\t */\n\trender(settings: PageAgentSettings): void {\n\t\tthis.#settings = settings\n\t\tconst resolved = resolveActiveModel(settings)\n\t\tthis.#activeProviderId = resolved?.provider.id || ''\n\t\tthis.#activeModelName = resolved?.model.name || ''\n\n\t\tthis.#updatePill(resolved?.provider, resolved?.model.name || '')\n\t}\n\n\t// ========== Pill ==========\n\n\t#buildPill(): HTMLElement {\n\t\tconst pill = document.createElement('button')\n\t\tpill.className = styles.modelSwitcherPill\n\t\tpill.setAttribute('aria-haspopup', 'listbox')\n\t\tpill.setAttribute('aria-expanded', 'false')\n\t\tpill.title = 'Switch model'\n\t\tpill.addEventListener('click', (e) => {\n\t\t\te.stopPropagation()\n\t\t\tthis.#toggleDropdown()\n\t\t})\n\t\tpill.innerHTML = `\n\t\t\t<span class=\"${styles.modelSwitcherPillIcon}\"></span>\n\t\t\t<span class=\"${styles.modelSwitcherPillName}\"></span>\n\t\t\t<span class=\"${styles.modelSwitcherPillChevron}\">▾</span>\n\t\t`\n\t\treturn pill\n\t}\n\n\t#updatePill(provider: ProviderConfig | undefined, modelName: string): void {\n\t\tconst iconEl = this.#pill.querySelector(`.${styles.modelSwitcherPillIcon}`)!\n\t\tconst nameEl = this.#pill.querySelector(`.${styles.modelSwitcherPillName}`)!\n\n\t\tif (provider && modelName) {\n\t\t\ticonEl.textContent = this.#getProviderIcon(provider)\n\t\t\tnameEl.textContent = `${provider.name} / ${modelName}`\n\t\t\tthis.#pill.classList.remove(styles.modelSwitcherPillEmpty)\n\t\t} else {\n\t\t\ticonEl.textContent = '⚙'\n\t\t\tnameEl.textContent = 'Configure models...'\n\t\t\tthis.#pill.classList.add(styles.modelSwitcherPillEmpty)\n\t\t}\n\t}\n\n\t// ========== Dropdown ==========\n\n\t#toggleDropdown(): void {\n\t\tif (this.#isOpen) {\n\t\t\tthis.#closeDropdown()\n\t\t} else {\n\t\t\tthis.#openDropdown()\n\t\t}\n\t}\n\n\t#openDropdown(): void {\n\t\tif (this.#isOpen || !this.#settings) return\n\t\tthis.#isOpen = true\n\n\t\tthis.#pill.setAttribute('aria-expanded', 'true')\n\t\tthis.#pill.classList.add(styles.modelSwitcherPillOpen)\n\n\t\tthis.#dropdown = this.#buildDropdown(this.#settings)\n\t\tthis.#container.appendChild(this.#dropdown)\n\n\t\t// Animate in\n\t\trequestAnimationFrame(() => {\n\t\t\tif (this.#dropdown) {\n\t\t\t\tthis.#dropdown.classList.add(styles.modelDropdownOpen)\n\t\t\t}\n\t\t})\n\n\t\tdocument.addEventListener('click', this.#boundClose, true)\n\t\tdocument.addEventListener('keydown', this.#boundKeydown)\n\n\t\t// Focus first item\n\t\tsetTimeout(() => {\n\t\t\tconst firstItem = this.#dropdown?.querySelector(`.${styles.modelDropdownItem}`)\n\t\t\tif (firstItem instanceof HTMLElement) firstItem.focus()\n\t\t}, 50)\n\t}\n\n\t#closeDropdown(): void {\n\t\tif (!this.#isOpen || !this.#dropdown) return\n\t\tthis.#isOpen = false\n\n\t\tthis.#pill.setAttribute('aria-expanded', 'false')\n\t\tthis.#pill.classList.remove(styles.modelSwitcherPillOpen)\n\n\t\tconst dropdown = this.#dropdown\n\t\tdropdown.classList.remove(styles.modelDropdownOpen)\n\t\tdropdown.classList.add(styles.modelDropdownClosing)\n\n\t\t// Remove after animation\n\t\tsetTimeout(() => {\n\t\t\tdropdown.remove()\n\t\t}, 180)\n\n\t\tthis.#dropdown = null\n\t\tdocument.removeEventListener('click', this.#boundClose, true)\n\t\tdocument.removeEventListener('keydown', this.#boundKeydown)\n\t}\n\n\t#buildDropdown(settings: PageAgentSettings): HTMLElement {\n\t\tconst dropdown = document.createElement('div')\n\t\tdropdown.className = styles.modelDropdown\n\t\tdropdown.setAttribute('role', 'listbox')\n\t\tdropdown.setAttribute('aria-label', 'Select model')\n\n\t\t// Collect enabled providers and their models\n\t\tconst enabledProviders = settings.providers.filter((p) => p.enabled && p.models.length > 0)\n\n\t\tif (enabledProviders.length === 0) {\n\t\t\tdropdown.innerHTML = `\n\t\t\t\t<div class=\"${styles.modelDropdownEmpty}\">\n\t\t\t\t\t<span>No models configured</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"${styles.modelDropdownFooter}\">\n\t\t\t\t\t<button class=\"${styles.modelDropdownFooterBtn}\">⚙ ${this.#callbacks.configureLabel || 'Configure providers...'}</button>\n\t\t\t\t</div>\n\t\t\t`\n\t\t\tconst btn = dropdown.querySelector(`.${styles.modelDropdownFooterBtn}`)!\n\t\t\tbtn.addEventListener('click', (e) => {\n\t\t\t\te.stopPropagation()\n\t\t\t\tthis.#closeDropdown()\n\t\t\t\tthis.#callbacks.onConfigure()\n\t\t\t})\n\t\t\treturn dropdown\n\t\t}\n\n\t\t// Build groups for each provider\n\t\tfor (const provider of enabledProviders) {\n\t\t\tconst group = document.createElement('div')\n\t\t\tgroup.className = styles.modelDropdownGroup\n\t\t\tgroup.setAttribute('role', 'group')\n\t\t\tgroup.setAttribute('aria-labelledby', `provider-group-${provider.id}`)\n\n\t\t\tconst label = document.createElement('div')\n\t\t\tlabel.className = styles.modelDropdownGroupLabel\n\t\t\tlabel.id = `provider-group-${provider.id}`\n\t\t\tlabel.textContent = provider.name\n\t\t\tgroup.appendChild(label)\n\n\t\t\tfor (const model of provider.models) {\n\t\t\t\tconst item = this.#buildModelItem(provider, model)\n\t\t\t\tgroup.appendChild(item)\n\t\t\t}\n\n\t\t\tdropdown.appendChild(group)\n\t\t}\n\n\t\t// Footer\n\t\tconst footer = document.createElement('div')\n\t\tfooter.className = styles.modelDropdownFooter\n\t\tfooter.innerHTML = `<button class=\"${styles.modelDropdownFooterBtn}\">⚙ ${this.#callbacks.configureLabel || 'Configure providers...'}</button>`\n\t\tconst btn = footer.querySelector(`.${styles.modelDropdownFooterBtn}`)!\n\t\tbtn.addEventListener('click', (e) => {\n\t\t\te.stopPropagation()\n\t\t\tthis.#closeDropdown()\n\t\t\tthis.#callbacks.onConfigure()\n\t\t})\n\t\tdropdown.appendChild(footer)\n\n\t\treturn dropdown\n\t}\n\n\t#buildModelItem(provider: ProviderConfig, model: ModelConfig): HTMLElement {\n\t\tconst isActive = provider.id === this.#activeProviderId && model.name === this.#activeModelName\n\n\t\tconst item = document.createElement('div')\n\t\titem.className = `${styles.modelDropdownItem}${isActive ? ` ${styles.modelDropdownItemActive}` : ''}`\n\t\titem.setAttribute('role', 'option')\n\t\titem.setAttribute('aria-selected', isActive ? 'true' : 'false')\n\t\titem.setAttribute('tabindex', '0')\n\t\titem.dataset.providerId = provider.id\n\t\titem.dataset.modelName = model.name\n\n\t\titem.innerHTML = `\n\t\t\t<span class=\"${styles.modelDropdownItemIcon}\">${isActive ? '✓' : ''}</span>\n\t\t\t<span class=\"${styles.modelDropdownItemName}\"></span>\n\t\t\t<span class=\"${styles.modelDropdownItemBadge}\">${this.#getModelBadges(model)}</span>\n\t\t`\n\t\t// Set model name via textContent to prevent XSS\n\t\tconst nameSpan = item.querySelector(`.${styles.modelDropdownItemName}`)\n\t\tif (nameSpan) nameSpan.textContent = model.name\n\n\t\titem.addEventListener('click', (e) => {\n\t\t\te.stopPropagation()\n\t\t\tthis.#selectModel(provider.id, model.name)\n\t\t})\n\n\t\treturn item\n\t}\n\n\t#selectModel(providerId: string, modelName: string): void {\n\t\tthis.#activeProviderId = providerId\n\t\tthis.#activeModelName = modelName\n\n\t\t// Update pill immediately\n\t\tif (this.#settings) {\n\t\t\tconst provider = this.#settings.providers.find((p) => p.id === providerId)\n\t\t\tthis.#updatePill(provider, modelName)\n\t\t}\n\n\t\tthis.#closeDropdown()\n\t\tthis.#callbacks.onModelSelect(providerId, modelName)\n\t}\n\n\t// ========== Keyboard ==========\n\n\t#handleKeyDown(e: KeyboardEvent): void {\n\t\tif (!this.#isOpen) return\n\n\t\tswitch (e.key) {\n\t\t\tcase 'Escape':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.#closeDropdown()\n\t\t\t\tthis.#pill.focus()\n\t\t\t\tbreak\n\t\t\tcase 'ArrowDown': {\n\t\t\t\te.preventDefault()\n\t\t\t\tconst items = this.#getVisibleItems()\n\t\t\t\tconst current = document.activeElement as HTMLElement\n\t\t\t\tconst idx = items.indexOf(current)\n\t\t\t\tconst next = items[(idx + 1) % items.length]\n\t\t\t\tnext?.focus()\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'ArrowUp': {\n\t\t\t\te.preventDefault()\n\t\t\t\tconst items = this.#getVisibleItems()\n\t\t\t\tconst current = document.activeElement as HTMLElement\n\t\t\t\tconst idx = items.indexOf(current)\n\t\t\t\tconst prev = items[(idx - 1 + items.length) % items.length]\n\t\t\t\tprev?.focus()\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'Enter':\n\t\t\tcase ' ': {\n\t\t\t\te.preventDefault()\n\t\t\t\tconst active = document.activeElement as HTMLElement\n\t\t\t\tconst pid = active?.dataset?.providerId\n\t\t\t\tconst mname = active?.dataset?.modelName\n\t\t\t\tif (pid && mname) {\n\t\t\t\t\tthis.#selectModel(pid, mname)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\t#getVisibleItems(): HTMLElement[] {\n\t\tif (!this.#dropdown) return []\n\t\treturn Array.from(this.#dropdown.querySelectorAll(`.${styles.modelDropdownItem}`))\n\t}\n\n\t// ========== Helpers ==========\n\n\t#getProviderIcon(provider: ProviderConfig): string {\n\t\tconst url = provider.baseURL.toLowerCase()\n\t\tif (url.includes('openai')) return '◯'\n\t\tif (url.includes('anthropic')) return 'Ⓐ'\n\t\tif (url.includes('deepseek')) return 'Ⓓ'\n\t\tif (url.includes('gemini') || url.includes('google')) return 'Ⓖ'\n\t\tif (url.includes('groq')) return '◻'\n\t\tif (url.includes('azure')) return '☁'\n\t\tif (url.includes('localhost') || url.includes('127.0.0.1')) return '⬡'\n\t\treturn '●'\n\t}\n\n\t#getModelBadges(model: ModelConfig): string {\n\t\tvoid model\n\t\treturn ''\n\t}\n\n\t// ========== Cleanup ==========\n\n\tdispose(): void {\n\t\tthis.#closeDropdown()\n\t\tdocument.removeEventListener('click', this.#boundClose, true)\n\t\tdocument.removeEventListener('keydown', this.#boundKeydown)\n\t\tthis.#container.remove()\n\t}\n}\n","/**\n * Minimal markdown-to-HTML parser for rendering LLM output.\n *\n * Supports: bold, italic, inline code, code blocks, links, headings,\n * unordered lists, ordered lists, paragraphs, and line breaks.\n *\n * The output is safe HTML — input text is escaped before markdown\n * patterns are applied, so raw HTML/script in the source is never\n * interpreted.\n */\nimport { escapeHtml } from '../utils'\n\n/**\n * Convert markdown text to safe HTML.\n * All content is escaped first, then markdown patterns are converted to HTML tags.\n */\nexport function renderMarkdown(text: string): string {\n // Normalize line endings\n const normalized = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n')\n\n // Split into blocks (paragraphs, code blocks, lists)\n const blocks = splitBlocks(normalized)\n\n return blocks\n .map((block) => {\n switch (block.type) {\n case 'code':\n return renderCodeBlock(block.content)\n case 'heading':\n return renderHeading(block.content, block.level!)\n case 'unordered-list':\n return renderUnorderedList(block.items!)\n case 'ordered-list':\n return renderOrderedList(block.items!)\n case 'paragraph':\n return renderParagraph(block.content)\n default:\n return renderParagraph(block.content)\n }\n })\n .join('\\n')\n}\n\ninterface Block {\n type: 'code' | 'heading' | 'unordered-list' | 'ordered-list' | 'paragraph'\n content: string\n level?: number\n items?: string[]\n}\n\n/**\n * Split markdown text into logical blocks.\n */\nfunction splitBlocks(text: string): Block[] {\n const lines = text.split('\\n')\n const blocks: Block[] = []\n let i = 0\n\n while (i < lines.length) {\n const line = lines[i]\n\n // Fenced code block\n if (line.startsWith('```')) {\n const codeLines: string[] = []\n i++ // skip opening fence\n while (i < lines.length && !lines[i].startsWith('```')) {\n codeLines.push(lines[i])\n i++\n }\n i++ // skip closing fence\n blocks.push({ type: 'code', content: codeLines.join('\\n') })\n continue\n }\n\n // Heading\n const headingMatch = line.match(/^(#{1,3})\\s+(.+)/)\n if (headingMatch) {\n blocks.push({\n type: 'heading',\n content: headingMatch[2],\n level: headingMatch[1].length,\n })\n i++\n continue\n }\n\n // Unordered list — collect consecutive items\n if (/^[\\-\\*\\+]\\s+/.test(line)) {\n const items: string[] = []\n while (i < lines.length && /^[\\-\\*\\+]\\s+/.test(lines[i])) {\n items.push(lines[i].replace(/^[\\-\\*\\+]\\s+/, ''))\n i++\n }\n blocks.push({ type: 'unordered-list', content: '', items })\n continue\n }\n\n // Ordered list — collect consecutive items\n if (/^\\d+[\\.\\)]\\s+/.test(line)) {\n const items: string[] = []\n while (i < lines.length && /^\\d+[\\.\\)]\\s+/.test(lines[i])) {\n items.push(lines[i].replace(/^\\d+[\\.\\)]\\s+/, ''))\n i++\n }\n blocks.push({ type: 'ordered-list', content: '', items })\n continue\n }\n\n // Blank line\n if (line.trim() === '') {\n i++\n continue\n }\n\n // Collect paragraph lines until next blank or structural line\n const paraLines: string[] = []\n while (\n i < lines.length &&\n lines[i].trim() !== '' &&\n !lines[i].startsWith('```') &&\n !lines[i].startsWith('#') &&\n !/^[\\-\\*\\+]\\s+/.test(lines[i]) &&\n !/^\\d+[\\.\\)]\\s+/.test(lines[i])\n ) {\n paraLines.push(lines[i])\n i++\n }\n if (paraLines.length > 0) {\n blocks.push({ type: 'paragraph', content: paraLines.join('\\n') })\n }\n }\n\n return blocks\n}\n\n/**\n * Render inline markdown within a line.\n * Must be called AFTER escaping — it replaces escaped-safe patterns with HTML.\n */\nfunction renderInline(text: string): string {\n // Escaped text — safe to apply markdown patterns\n let html = escapeHtml(text)\n\n // Bold: **text** or __text__\n html = html.replace(/\\*\\*(.+?)\\*\\*/g, '<strong>$1</strong>')\n html = html.replace(/__(.+?)__/g, '<strong>$1</strong>')\n\n // Italic: *text* or _text_ (not matching ** or __ already processed)\n html = html.replace(/\\*(.+?)\\*/g, '<em>$1</em>')\n html = html.replace(/(?<!_)__(.+?)_(?!_)/g, '<em>$1</em>')\n\n // Inline code: `text`\n html = html.replace(/`(.+?)`/g, '<code class=\"md-inline-code\">$1</code>')\n\n // Links: [text](url)\n html = html.replace(\n /\\[([^\\]]+)\\]\\(([^)]+)\\)/g,\n '<a href=\"$2\" target=\"_blank\" rel=\"noopener noreferrer\">$1</a>'\n )\n\n return html\n}\n\nfunction renderCodeBlock(content: string): string {\n const escaped = content ? escapeHtml(content) : ''\n return `<pre class=\"md-code-block\"><code>${escaped || ' '}</code></pre>`\n}\n\nfunction renderHeading(content: string, level: number): string {\n const tag = `h${Math.min(level + 3, 6)}` // h4-h6 to avoid clashing with page headings\n return `<${tag} class=\"md-heading\">${renderInline(content)}</${tag}>`\n}\n\nfunction renderParagraph(content: string): string {\n const lines = content.split('\\n')\n const html = lines.map((line) => renderInline(line)).join('<br>')\n return `<p class=\"md-paragraph\">${html}</p>`\n}\n\nfunction renderUnorderedList(items: string[]): string {\n const listItems = items.map((item) => `<li>${renderInline(item)}</li>`).join('')\n return `<ul class=\"md-list\">${listItems}</ul>`\n}\n\nfunction renderOrderedList(items: string[]): string {\n const listItems = items.map((item) => `<li>${renderInline(item)}</li>`).join('')\n return `<ol class=\"md-list md-ordered-list\">${listItems}</ol>`\n}\n","/**\n * Card HTML generation utilities for Panel\n */\nimport { escapeHtml } from '../utils'\nimport { renderMarkdown } from './markdown'\n\nimport styles from './Panel.module.css'\n\ntype CardType = 'default' | 'input' | 'output' | 'question' | 'observation'\n\ninterface CardOptions {\n\ticon: string\n\tcontent: string | string[]\n\tmeta?: string\n\ttype?: CardType\n\t/** When true, render content as markdown (only applies when content is a string) */\n\tmarkdown?: boolean\n\t/** Step index for timeline display (0-based, displayed as 1-based) */\n\tstepIndex?: number\n\t/** Whether this card is the first in a step (for timeline grouping) */\n\tisFirstInStep?: boolean\n\t/** Whether this card is the last in a step (for timeline grouping) */\n\tisLastInStep?: boolean\n}\n\n/** Step phase colors for timeline dots */\nconst PHASE_COLORS: Record<string, string> = {\n\tthink: '#rgb(57, 182, 255)', // blue\n\tact: 'rgb(189, 69, 251)', // purple\n\tobserve: 'rgb(147, 51, 234)', // deep purple\n\tdone: 'rgb(34, 197, 94)', // green\n\terror: 'rgb(239, 68, 68)', // red\n\tretry: 'rgb(255, 214, 0)', // yellow\n\task: 'rgb(255, 159, 67)', // orange\n}\n\n/** Get phase label for a card type */\nfunction getPhaseLabel(type?: CardType): string {\n\tswitch (type) {\n\t\tcase 'output': return 'act'\n\t\tcase 'input': return 'act'\n\t\tcase 'question': return 'ask'\n\t\tcase 'observation': return 'observe'\n\t\tdefault: return 'act'\n\t}\n}\n\n/** Create a single history card */\nexport function createCard({\n\ticon,\n\tcontent,\n\tmeta,\n\ttype,\n\tmarkdown,\n\tstepIndex,\n\tisFirstInStep,\n\tisLastInStep,\n}: CardOptions): string {\n\tconst typeClass = type ? styles[type] : ''\n\tconst phase = getPhaseLabel(type)\n\tconst dotColor = PHASE_COLORS[phase] || PHASE_COLORS.act\n\n\t// Timeline dot and connector\n\tconst timelineHtml = stepIndex !== undefined\n\t\t? `<div class=\"${styles.timelineDot}\" style=\"background: ${dotColor}; box-shadow: 0 0 6px ${dotColor};\">\n\t\t\t\t<span class=\"${styles.timelineStepNumber}\">${stepIndex + 1}</span>\n\t\t\t</div>`\n\t\t: ''\n\n\t// Escape content to prevent XSS — LLM output may contain HTML/script.\n\t// When markdown is enabled, renderMarkdown handles escaping internally.\n\tconst contentHtml = Array.isArray(content)\n\t\t? `<div class=\"${styles.reflectionLines}\">${content.map((line) => `<span>${escapeHtml(line)}</span>`).join('')}</div>`\n\t\t: markdown\n\t\t\t? `<div class=\"${styles.markdownContent}\">${renderMarkdown(content)}</div>`\n\t\t\t: `<span>${escapeHtml(content)}</span>`\n\n\t// Meta is also escaped for defense-in-depth\n\tconst metaHtml = meta ? escapeHtml(meta) : ''\n\n\tconst groupingClass = [\n\t\tisFirstInStep ? styles.timelineFirst : '',\n\t\tisLastInStep ? styles.timelineLast : '',\n\t].filter(Boolean).join(' ')\n\n\treturn `\n\t\t\t<div class=\"${styles.historyItem} ${typeClass} ${groupingClass}\">\n\t\t\t\t${timelineHtml}\n\t\t\t\t<div class=\"${styles.historyContent}\">\n\t\t\t\t\t<span class=\"${styles.statusIcon}\">${icon}</span>\n\t\t\t\t\t${contentHtml}\n\t\t\t\t</div>\n\t\t\t\t${meta ? `<div class=\"${styles.historyMeta}\">${metaHtml}</div>` : ''}\n\t\t\t</div>\n\t\t`\n}\n\n/** Create reflection lines from reflection object */\nexport function createReflectionLines(reflection: {\n\tevaluation_previous_goal?: string\n\tmemory?: string\n\tnext_goal?: string\n}): string[] {\n\tconst lines: string[] = []\n\tif (reflection.evaluation_previous_goal) {\n\t\tlines.push(`🔍 ${reflection.evaluation_previous_goal}`)\n\t}\n\tif (reflection.memory) {\n\t\tlines.push(`💾 ${reflection.memory}`)\n\t}\n\tif (reflection.next_goal) {\n\t\tlines.push(`🎯 ${reflection.next_goal}`)\n\t}\n\treturn lines\n}\n\nexport { PHASE_COLORS }\n","((e,t)=>{\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).Dexie=t()})(this,function(){var B=function(e,t){return(B=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(e,t){e.__proto__=t}:function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}))(e,t)};var _=function(){return(_=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};function R(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i<o;i++)!r&&i in t||((r=r||Array.prototype.slice.call(t,0,i))[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))}var f=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:global,O=Object.keys,x=Array.isArray;function a(t,n){return\"object\"==typeof n&&O(n).forEach(function(e){t[e]=n[e]}),t}\"undefined\"==typeof Promise||f.Promise||(f.Promise=Promise);var F=Object.getPrototypeOf,N={}.hasOwnProperty;function m(e,t){return N.call(e,t)}function M(t,n){\"function\"==typeof n&&(n=n(F(t))),(\"undefined\"==typeof Reflect?O:Reflect.ownKeys)(n).forEach(function(e){u(t,e,n[e])})}var L=Object.defineProperty;function u(e,t,n,r){L(e,t,a(n&&m(n,\"get\")&&\"function\"==typeof n.get?{get:n.get,set:n.set,configurable:!0}:{value:n,configurable:!0,writable:!0},r))}function U(t){return{from:function(e){return t.prototype=Object.create(e.prototype),u(t.prototype,\"constructor\",t),{extend:M.bind(null,t.prototype)}}}}var z=Object.getOwnPropertyDescriptor;var V=[].slice;function W(e,t,n){return V.call(e,t,n)}function Y(e,t){return t(e)}function $(e){if(!e)throw new Error(\"Assertion Failed\")}function Q(e){f.setImmediate?setImmediate(e):setTimeout(e,0)}function c(e,t){if(\"string\"==typeof t&&m(e,t))return e[t];if(!t)return e;if(\"string\"!=typeof t){for(var n=[],r=0,i=t.length;r<i;++r){var o=c(e,t[r]);n.push(o)}return n}var a,u=t.indexOf(\".\");return-1===u||null==(a=e[t.substr(0,u)])?void 0:c(a,t.substr(u+1))}function b(e,t,n){if(e&&void 0!==t&&!(\"isFrozen\"in Object&&Object.isFrozen(e)))if(\"string\"!=typeof t&&\"length\"in t){$(\"string\"!=typeof n&&\"length\"in n);for(var r=0,i=t.length;r<i;++r)b(e,t[r],n[r])}else{var o=t.indexOf(\".\");if(-1!==o){var a=t.substr(0,o),o=t.substr(o+1);if(\"\"===o)void 0===n?x(e)&&!isNaN(parseInt(a))?e.splice(a,1):delete e[a]:e[a]=n;else{var u=e[a];if(!u||!m(e,a)){if(void 0===n)return;u=e[a]={}}b(u,o,n)}}else void 0===n?x(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}function G(e){var t,n={};for(t in e)m(e,t)&&(n[t]=e[t]);return n}var X=[].concat;function H(e){return X.apply([],e)}var e=\"BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey\".split(\",\").concat(H([8,16,32,64].map(function(t){return[\"Int\",\"Uint\",\"Float\"].map(function(e){return e+t+\"Array\"})}))).filter(function(e){return f[e]}),J=new Set(e.map(function(e){return f[e]}));var Z=null;function ee(e){Z=new WeakMap;e=function e(t){if(!t||\"object\"!=typeof t)return t;var n=Z.get(t);if(n)return n;if(x(t)){n=[],Z.set(t,n);for(var r=0,i=t.length;r<i;++r)n.push(e(t[r]))}else if(J.has(t.constructor))n=t;else{var o,a=F(t);for(o in n=a===Object.prototype?{}:Object.create(a),Z.set(t,n),t)m(t,o)&&(n[o]=e(t[o]))}return n}(e);return Z=null,e}var te={}.toString;function ne(e){return te.call(e).slice(8,-1)}var re=\"undefined\"!=typeof Symbol?Symbol.iterator:\"@@iterator\",ie=\"symbol\"==typeof re?function(e){var t;return null!=e&&(t=e[re])&&t.apply(e)}:function(){return null};function oe(e,t){t=e.indexOf(t);0<=t&&e.splice(t,1)}var ae={};function n(e){var t,n,r,i;if(1===arguments.length){if(x(e))return e.slice();if(this===ae&&\"string\"==typeof e)return[e];if(i=ie(e))for(n=[];!(r=i.next()).done;)n.push(r.value);else{if(null==e)return[e];if(\"number\"!=typeof(t=e.length))return[e];for(n=new Array(t);t--;)n[t]=e[t]}}else for(t=arguments.length,n=new Array(t);t--;)n[t]=arguments[t];return n}var ue=\"undefined\"!=typeof Symbol?function(e){return\"AsyncFunction\"===e[Symbol.toStringTag]}:function(){return!1},e=[\"Unknown\",\"Constraint\",\"Data\",\"TransactionInactive\",\"ReadOnly\",\"Version\",\"NotFound\",\"InvalidState\",\"InvalidAccess\",\"Abort\",\"Timeout\",\"QuotaExceeded\",\"Syntax\",\"DataClone\"],t=[\"Modify\",\"Bulk\",\"OpenFailed\",\"VersionChange\",\"Schema\",\"Upgrade\",\"InvalidTable\",\"MissingAPI\",\"NoSuchDatabase\",\"InvalidArgument\",\"SubTransaction\",\"Unsupported\",\"Internal\",\"DatabaseClosed\",\"PrematureCommit\",\"ForeignAwait\"].concat(e),se={VersionChanged:\"Database version changed by other database connection\",DatabaseClosed:\"Database has been closed\",Abort:\"Transaction aborted\",TransactionInactive:\"Transaction has already completed or failed\",MissingAPI:\"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb\"};function ce(e,t){this.name=e,this.message=t}function le(e,t){return e+\". Errors: \"+Object.keys(t).map(function(e){return t[e].toString()}).filter(function(e,t,n){return n.indexOf(e)===t}).join(\"\\n\")}function fe(e,t,n,r){this.failures=t,this.failedKeys=r,this.successCount=n,this.message=le(e,t)}function he(e,t){this.name=\"BulkError\",this.failures=Object.keys(t).map(function(e){return t[e]}),this.failuresByPos=t,this.message=le(e,this.failures)}U(ce).from(Error).extend({toString:function(){return this.name+\": \"+this.message}}),U(fe).from(ce),U(he).from(ce);var de=t.reduce(function(e,t){return e[t]=t+\"Error\",e},{}),pe=ce,k=t.reduce(function(e,n){var r=n+\"Error\";function t(e,t){this.name=r,e?\"string\"==typeof e?(this.message=\"\".concat(e).concat(t?\"\\n \"+t:\"\"),this.inner=t||null):\"object\"==typeof e&&(this.message=\"\".concat(e.name,\" \").concat(e.message),this.inner=e):(this.message=se[n]||r,this.inner=null)}return U(t).from(pe),e[n]=t,e},{}),ye=(k.Syntax=SyntaxError,k.Type=TypeError,k.Range=RangeError,e.reduce(function(e,t){return e[t+\"Error\"]=k[t],e},{}));e=t.reduce(function(e,t){return-1===[\"Syntax\",\"Type\",\"Range\"].indexOf(t)&&(e[t+\"Error\"]=k[t]),e},{});function g(){}function ve(e){return e}function me(t,n){return null==t||t===ve?n:function(e){return n(t(e))}}function be(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function ge(i,o){return i===g?o:function(){var e=i.apply(this,arguments),t=(void 0!==e&&(arguments[0]=e),this.onsuccess),n=this.onerror,r=(this.onsuccess=null,this.onerror=null,o.apply(this,arguments));return t&&(this.onsuccess=this.onsuccess?be(t,this.onsuccess):t),n&&(this.onerror=this.onerror?be(n,this.onerror):n),void 0!==r?r:e}}function we(n,r){return n===g?r:function(){n.apply(this,arguments);var e=this.onsuccess,t=this.onerror;this.onsuccess=this.onerror=null,r.apply(this,arguments),e&&(this.onsuccess=this.onsuccess?be(e,this.onsuccess):e),t&&(this.onerror=this.onerror?be(t,this.onerror):t)}}function _e(i,o){return i===g?o:function(e){var t=i.apply(this,arguments),e=(a(e,t),this.onsuccess),n=this.onerror,r=(this.onsuccess=null,this.onerror=null,o.apply(this,arguments));return e&&(this.onsuccess=this.onsuccess?be(e,this.onsuccess):e),n&&(this.onerror=this.onerror?be(n,this.onerror):n),void 0===t?void 0===r?void 0:r:a(t,r)}}function xe(e,t){return e===g?t:function(){return!1!==t.apply(this,arguments)&&e.apply(this,arguments)}}function ke(i,o){return i===g?o:function(){var e=i.apply(this,arguments);if(e&&\"function\"==typeof e.then){for(var t=this,n=arguments.length,r=new Array(n);n--;)r[n]=arguments[n];return e.then(function(){return o.apply(t,r)})}return o.apply(this,arguments)}}e.ModifyError=fe,e.DexieError=ce,e.BulkError=he;var l=\"undefined\"!=typeof location&&/^(http|https):\\/\\/(localhost|127\\.0\\.0\\.1)/.test(location.href);function Oe(e){l=e}var Pe={},Ke=100,Ee=\"undefined\"==typeof Promise?[]:(t=Promise.resolve(),\"undefined\"!=typeof crypto&&crypto.subtle?[Ee=crypto.subtle.digest(\"SHA-512\",new Uint8Array([0])),F(Ee),t]:[t,F(t),t]),t=Ee[0],Se=Ee[1],Se=Se&&Se.then,Ae=t&&t.constructor,Ce=!!Ee[2];var je=function(e,t){Re.push([e,t]),Ie&&(queueMicrotask(Ye),Ie=!1)},Te=!0,Ie=!0,qe=[],De=[],Be=ve,s={id:\"global\",global:!0,ref:0,unhandleds:[],onunhandled:g,pgp:!1,env:{},finalize:g},P=s,Re=[],Fe=0,Ne=[];function K(e){if(\"object\"!=typeof this)throw new TypeError(\"Promises must be constructed via new\");this._listeners=[],this._lib=!1;var t=this._PSD=P;if(\"function\"!=typeof e){if(e!==Pe)throw new TypeError(\"Not a function\");this._state=arguments[1],this._value=arguments[2],!1===this._state&&Ue(this,this._value)}else this._state=null,this._value=null,++t.ref,function t(r,e){try{e(function(n){if(null===r._state){if(n===r)throw new TypeError(\"A promise cannot be resolved with itself.\");var e=r._lib&&$e();n&&\"function\"==typeof n.then?t(r,function(e,t){n instanceof K?n._then(e,t):n.then(e,t)}):(r._state=!0,r._value=n,ze(r)),e&&Qe()}},Ue.bind(null,r))}catch(e){Ue(r,e)}}(this,e)}var Me={get:function(){var u=P,t=et;function e(n,r){var i=this,o=!u.global&&(u!==P||t!==et),a=o&&!w(),e=new K(function(e,t){Ve(i,new Le(ut(n,u,o,a),ut(r,u,o,a),e,t,u))});return this._consoleTask&&(e._consoleTask=this._consoleTask),e}return e.prototype=Pe,e},set:function(e){u(this,\"then\",e&&e.prototype===Pe?Me:{get:function(){return e},set:Me.set})}};function Le(e,t,n,r,i){this.onFulfilled=\"function\"==typeof e?e:null,this.onRejected=\"function\"==typeof t?t:null,this.resolve=n,this.reject=r,this.psd=i}function Ue(e,t){var n,r;De.push(t),null===e._state&&(n=e._lib&&$e(),t=Be(t),e._state=!1,e._value=t,r=e,qe.some(function(e){return e._value===r._value})||qe.push(r),ze(e),n)&&Qe()}function ze(e){var t=e._listeners;e._listeners=[];for(var n=0,r=t.length;n<r;++n)Ve(e,t[n]);var i=e._PSD;--i.ref||i.finalize(),0===Fe&&(++Fe,je(function(){0==--Fe&&Ge()},[]))}function Ve(e,t){if(null===e._state)e._listeners.push(t);else{var n=e._state?t.onFulfilled:t.onRejected;if(null===n)return(e._state?t.resolve:t.reject)(e._value);++t.psd.ref,++Fe,je(We,[n,e,t])}}function We(e,t,n){try{var r,i=t._value;!t._state&&De.length&&(De=[]),r=l&&t._consoleTask?t._consoleTask.run(function(){return e(i)}):e(i),t._state||-1!==De.indexOf(i)||(e=>{for(var t=qe.length;t;)if(qe[--t]._value===e._value)return qe.splice(t,1)})(t),n.resolve(r)}catch(e){n.reject(e)}finally{0==--Fe&&Ge(),--n.psd.ref||n.psd.finalize()}}function Ye(){at(s,function(){$e()&&Qe()})}function $e(){var e=Te;return Ie=Te=!1,e}function Qe(){var e,t,n;do{for(;0<Re.length;)for(e=Re,Re=[],n=e.length,t=0;t<n;++t){var r=e[t];r[0].apply(null,r[1])}}while(0<Re.length);Ie=Te=!0}function Ge(){for(var e=qe,t=(qe=[],e.forEach(function(e){e._PSD.onunhandled.call(null,e._value,e)}),Ne.slice(0)),n=t.length;n;)t[--n]()}function Xe(e){return new K(Pe,!1,e)}function E(n,r){var i=P;return function(){var e=$e(),t=P;try{return h(i,!0),n.apply(this,arguments)}catch(e){r&&r(e)}finally{h(t,!1),e&&Qe()}}}M(K.prototype,{then:Me,_then:function(e,t){Ve(this,new Le(null,null,e,t,P))},catch:function(e){var t,n;return 1===arguments.length?this.then(null,e):(t=e,n=arguments[1],\"function\"==typeof t?this.then(null,function(e){return(e instanceof t?n:Xe)(e)}):this.then(null,function(e){return(e&&e.name===t?n:Xe)(e)}))},finally:function(t){return this.then(function(e){return K.resolve(t()).then(function(){return e})},function(e){return K.resolve(t()).then(function(){return Xe(e)})})},timeout:function(r,i){var o=this;return r<1/0?new K(function(e,t){var n=setTimeout(function(){return t(new k.Timeout(i))},r);o.then(e,t).finally(clearTimeout.bind(null,n))}):this}}),\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&u(K.prototype,Symbol.toStringTag,\"Dexie.Promise\"),s.env=ot(),M(K,{all:function(){var o=n.apply(null,arguments).map(rt);return new K(function(n,r){0===o.length&&n([]);var i=o.length;o.forEach(function(e,t){return K.resolve(e).then(function(e){o[t]=e,--i||n(o)},r)})})},resolve:function(n){return n instanceof K?n:n&&\"function\"==typeof n.then?new K(function(e,t){n.then(e,t)}):new K(Pe,!0,n)},reject:Xe,race:function(){var e=n.apply(null,arguments).map(rt);return new K(function(t,n){e.map(function(e){return K.resolve(e).then(t,n)})})},PSD:{get:function(){return P},set:function(e){return P=e}},totalEchoes:{get:function(){return et}},newPSD:v,usePSD:at,scheduler:{get:function(){return je},set:function(e){je=e}},rejectionMapper:{get:function(){return Be},set:function(e){Be=e}},follow:function(i,n){return new K(function(e,t){return v(function(n,r){var e=P;e.unhandleds=[],e.onunhandled=r,e.finalize=be(function(){var t,e=this;t=function(){0===e.unhandleds.length?n():r(e.unhandleds[0])},Ne.push(function e(){t(),Ne.splice(Ne.indexOf(e),1)}),++Fe,je(function(){0==--Fe&&Ge()},[])},e.finalize),i()},n,e,t)})}}),Ae&&(Ae.allSettled&&u(K,\"allSettled\",function(){var e=n.apply(null,arguments).map(rt);return new K(function(n){0===e.length&&n([]);var r=e.length,i=new Array(r);e.forEach(function(e,t){return K.resolve(e).then(function(e){return i[t]={status:\"fulfilled\",value:e}},function(e){return i[t]={status:\"rejected\",reason:e}}).then(function(){return--r||n(i)})})})}),Ae.any&&\"undefined\"!=typeof AggregateError&&u(K,\"any\",function(){var e=n.apply(null,arguments).map(rt);return new K(function(n,r){0===e.length&&r(new AggregateError([]));var i=e.length,o=new Array(i);e.forEach(function(e,t){return K.resolve(e).then(function(e){return n(e)},function(e){o[t]=e,--i||r(new AggregateError(o))})})})}),Ae.withResolvers)&&(K.withResolvers=Ae.withResolvers);var o={awaits:0,echoes:0,id:0},He=0,Je=[],Ze=0,et=0,tt=0;function v(e,t,n,r){var i=P,o=Object.create(i),t=(o.parent=i,o.ref=0,o.global=!1,o.id=++tt,s.env,o.env=Ce?{Promise:K,PromiseProp:{value:K,configurable:!0,writable:!0},all:K.all,race:K.race,allSettled:K.allSettled,any:K.any,resolve:K.resolve,reject:K.reject}:{},t&&a(o,t),++i.ref,o.finalize=function(){--this.parent.ref||this.parent.finalize()},at(o,e,n,r));return 0===o.ref&&o.finalize(),t}function nt(){return o.id||(o.id=++He),++o.awaits,o.echoes+=Ke,o.id}function w(){return!!o.awaits&&(0==--o.awaits&&(o.id=0),o.echoes=o.awaits*Ke,!0)}function rt(e){return o.echoes&&e&&e.constructor===Ae?(nt(),e.then(function(e){return w(),e},function(e){return w(),S(e)})):e}function it(){var e=Je[Je.length-1];Je.pop(),h(e,!1)}function h(e,t){var n,r,i=P;(t?!o.echoes||Ze++&&e===P:!Ze||--Ze&&e===P)||queueMicrotask(t?function(e){++et,o.echoes&&0!=--o.echoes||(o.echoes=o.awaits=o.id=0),Je.push(P),h(e,!0)}.bind(null,e):it),e!==P&&(P=e,i===s&&(s.env=ot()),Ce)&&(n=s.env.Promise,r=e.env,i.global||e.global)&&(Object.defineProperty(f,\"Promise\",r.PromiseProp),n.all=r.all,n.race=r.race,n.resolve=r.resolve,n.reject=r.reject,r.allSettled&&(n.allSettled=r.allSettled),r.any)&&(n.any=r.any)}function ot(){var e=f.Promise;return Ce?{Promise:e,PromiseProp:Object.getOwnPropertyDescriptor(f,\"Promise\"),all:e.all,race:e.race,allSettled:e.allSettled,any:e.any,resolve:e.resolve,reject:e.reject}:{}}function at(e,t,n,r,i){var o=P;try{return h(e,!0),t(n,r,i)}finally{h(o,!1)}}function ut(t,n,r,i){return\"function\"!=typeof t?t:function(){var e=P;r&&nt(),h(n,!0);try{return t.apply(this,arguments)}finally{h(e,!1),i&&queueMicrotask(w)}}}function st(e){Promise===Ae&&0===o.echoes?0===Ze?e():enqueueNativeMicroTask(e):setTimeout(e,0)}-1===(\"\"+Se).indexOf(\"[native code]\")&&(nt=w=g);var S=K.reject;var ct=String.fromCharCode(65535),A=\"Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.\",lt=\"String expected.\",ft=\"__dbnames\",ht=\"readonly\",dt=\"readwrite\";function pt(e,t){return e?t?function(){return e.apply(this,arguments)&&t.apply(this,arguments)}:e:t}var yt={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function vt(t){return\"string\"!=typeof t||/\\./.test(t)?function(e){return e}:function(e){return void 0===e[t]&&t in e&&delete(e=ee(e))[t],e}}function mt(){throw k.Type(\"Entity instances must never be new:ed. Instances are generated by the framework bypassing the constructor.\")}function C(e,t){try{var n=bt(e),r=bt(t);if(n!==r)return\"Array\"===n?1:\"Array\"===r?-1:\"binary\"===n?1:\"binary\"===r?-1:\"string\"===n?1:\"string\"===r?-1:\"Date\"===n?1:\"Date\"!==r?NaN:-1;switch(n){case\"number\":case\"Date\":case\"string\":return t<e?1:e<t?-1:0;case\"binary\":for(var i=gt(e),o=gt(t),a=i.length,u=o.length,s=a<u?a:u,c=0;c<s;++c)if(i[c]!==o[c])return i[c]<o[c]?-1:1;return a===u?0:a<u?-1:1;case\"Array\":for(var l=e,f=t,h=l.length,d=f.length,p=h<d?h:d,y=0;y<p;++y){var v=C(l[y],f[y]);if(0!==v)return v}return h===d?0:h<d?-1:1}}catch(e){}return NaN}function bt(e){var t=typeof e;return\"object\"==t&&(ArrayBuffer.isView(e)||\"ArrayBuffer\"===(t=ne(e)))?\"binary\":t}function gt(e){return e instanceof Uint8Array?e:ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(e)}function wt(t,n,r){var e=t.schema.yProps;return e?(n&&0<r.numFailures&&(n=n.filter(function(e,t){return!r.failures[t]})),Promise.all(e.map(function(e){e=e.updatesTable;return n?t.db.table(e).where(\"k\").anyOf(n).delete():t.db.table(e).clear()})).then(function(){return r})):r}xt.prototype.execute=function(e){var t=this[\"@@propmod\"];if(void 0!==t.add){var n=t.add;if(x(n))return R(R([],x(e)?e:[],!0),n,!0).sort();if(\"number\"==typeof n)return(Number(e)||0)+n;if(\"bigint\"==typeof n)try{return BigInt(e)+n}catch(e){return BigInt(0)+n}throw new TypeError(\"Invalid term \".concat(n))}if(void 0!==t.remove){var r=t.remove;if(x(r))return x(e)?e.filter(function(e){return!r.includes(e)}).sort():[];if(\"number\"==typeof r)return Number(e)-r;if(\"bigint\"==typeof r)try{return BigInt(e)-r}catch(e){return BigInt(0)-r}throw new TypeError(\"Invalid subtrahend \".concat(r))}n=null==(n=t.replacePrefix)?void 0:n[0];return n&&\"string\"==typeof e&&e.startsWith(n)?t.replacePrefix[1]+e.substring(n.length):e};var _t=xt;function xt(e){this[\"@@propmod\"]=e}function kt(e,t){for(var n=O(t),r=n.length,i=!1,o=0;o<r;++o){var a=n[o],u=t[a],s=c(e,a);u instanceof _t?(b(e,a,u.execute(s)),i=!0):s!==u&&(b(e,a,u),i=!0)}return i}r.prototype._trans=function(e,r,t){var n=this._tx||P.trans,i=this.name,o=l&&\"undefined\"!=typeof console&&console.createTask&&console.createTask(\"Dexie: \".concat(\"readonly\"===e?\"read\":\"write\",\" \").concat(this.name));function a(e,t,n){if(n.schema[i])return r(n.idbtrans,n);throw new k.NotFound(\"Table \"+i+\" not part of transaction\")}var u=$e();try{var s=n&&n.db._novip===this.db._novip?n===P.trans?n._promise(e,a,t):v(function(){return n._promise(e,a,t)},{trans:n,transless:P.transless||P}):function t(n,r,i,o){if(n.idbdb&&(n._state.openComplete||P.letThrough||n._vip)){var a=n._createTransaction(r,i,n._dbSchema);try{a.create(),n._state.PR1398_maxLoop=3}catch(e){return e.name===de.InvalidState&&n.isOpen()&&0<--n._state.PR1398_maxLoop?(console.warn(\"Dexie: Need to reopen db\"),n.close({disableAutoOpen:!1}),n.open().then(function(){return t(n,r,i,o)})):S(e)}return a._promise(r,function(e,t){return v(function(){return P.trans=a,o(e,t,a)})}).then(function(e){if(\"readwrite\"===r)try{a.idbtrans.commit()}catch(e){}return\"readonly\"===r?e:a._completion.then(function(){return e})})}if(n._state.openComplete)return S(new k.DatabaseClosed(n._state.dbOpenError));if(!n._state.isBeingOpened){if(!n._state.autoOpen)return S(new k.DatabaseClosed);n.open().catch(g)}return n._state.dbReadyPromise.then(function(){return t(n,r,i,o)})}(this.db,e,[this.name],a);return o&&(s._consoleTask=o,s=s.catch(function(e){return console.trace(e),S(e)})),s}finally{u&&Qe()}},r.prototype.get=function(t,e){var n=this;return t&&t.constructor===Object?this.where(t).first(e):null==t?S(new k.Type(\"Invalid argument to Table.get()\")):this._trans(\"readonly\",function(e){return n.core.get({trans:e,key:t}).then(function(e){return n.hook.reading.fire(e)})}).then(e)},r.prototype.where=function(o){if(\"string\"==typeof o)return new this.db.WhereClause(this,o);if(x(o))return new this.db.WhereClause(this,\"[\".concat(o.join(\"+\"),\"]\"));var n=O(o);if(1===n.length)return this.where(n[0]).equals(o[n[0]]);var e=this.schema.indexes.concat(this.schema.primKey).filter(function(t){if(t.compound&&n.every(function(e){return 0<=t.keyPath.indexOf(e)})){for(var e=0;e<n.length;++e)if(-1===n.indexOf(t.keyPath[e]))return!1;return!0}return!1}).sort(function(e,t){return e.keyPath.length-t.keyPath.length})[0];if(e&&this.db._maxKey!==ct)return t=e.keyPath.slice(0,n.length),this.where(t).equals(t.map(function(e){return o[e]}));!e&&l&&console.warn(\"The query \".concat(JSON.stringify(o),\" on \").concat(this.name,\" would benefit from a \")+\"compound index [\".concat(n.join(\"+\"),\"]\"));var a=this.schema.idxByName;function u(e,t){return 0===C(e,t)}var t=n.reduce(function(e,t){var n=e[0],e=e[1],r=a[t],i=o[t];return[n||r,n||!r?pt(e,r&&r.multi?function(e){e=c(e,t);return x(e)&&e.some(function(e){return u(i,e)})}:function(e){return u(i,c(e,t))}):e]},[null,null]),r=t[0],t=t[1];return r?this.where(r.name).equals(o[r.keyPath]).filter(t):e?this.filter(t):this.where(n).equals(\"\")},r.prototype.filter=function(e){return this.toCollection().and(e)},r.prototype.count=function(e){return this.toCollection().count(e)},r.prototype.offset=function(e){return this.toCollection().offset(e)},r.prototype.limit=function(e){return this.toCollection().limit(e)},r.prototype.each=function(e){return this.toCollection().each(e)},r.prototype.toArray=function(e){return this.toCollection().toArray(e)},r.prototype.toCollection=function(){return new this.db.Collection(new this.db.WhereClause(this))},r.prototype.orderBy=function(e){return new this.db.Collection(new this.db.WhereClause(this,x(e)?\"[\".concat(e.join(\"+\"),\"]\"):e))},r.prototype.reverse=function(){return this.toCollection().reverse()},r.prototype.mapToClass=function(r){for(var o=this.db,a=this.name,i=((this.schema.mappedClass=r).prototype instanceof mt&&(r=(e=>{var t=i,n=e;if(\"function\"!=typeof n&&null!==n)throw new TypeError(\"Class extends value \"+String(n)+\" is not a constructor or null\");function r(){this.constructor=t}function i(){return null!==e&&e.apply(this,arguments)||this}return B(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r),Object.defineProperty(i.prototype,\"db\",{get:function(){return o},enumerable:!1,configurable:!0}),i.prototype.table=function(){return a},i})(r)),new Set),e=r.prototype;e;e=F(e))Object.getOwnPropertyNames(e).forEach(function(e){return i.add(e)});function t(e){if(!e)return e;var t,n=Object.create(r.prototype);for(t in e)if(!i.has(t))try{n[t]=e[t]}catch(e){}return n}return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=t,this.hook(\"reading\",t),r},r.prototype.defineClass=function(){return this.mapToClass(function(e){a(this,e)})},r.prototype.add=function(t,n){var r=this,e=this.schema.primKey,i=e.auto,o=e.keyPath,a=t;return o&&i&&(a=vt(o)(t)),this._trans(\"readwrite\",function(e){return r.core.mutate({trans:e,type:\"add\",keys:null!=n?[n]:null,values:[a]})}).then(function(e){return e.numFailures?K.reject(e.failures[0]):e.lastResult}).then(function(e){if(o)try{b(t,o,e)}catch(e){}return e})},r.prototype.upsert=function(r,i){var o=this,a=this.schema.primKey.keyPath;return this._trans(\"readwrite\",function(n){return o.core.get({trans:n,key:r}).then(function(t){var e=null!=t?t:{};return kt(e,i),a&&b(e,a,r),o.core.mutate({trans:n,type:\"put\",values:[e],keys:[r],upsert:!0,updates:{keys:[r],changeSpecs:[i]}}).then(function(e){return e.numFailures?K.reject(e.failures[0]):!!t})})})},r.prototype.update=function(e,t){return\"object\"!=typeof e||x(e)?this.where(\":id\").equals(e).modify(t):void 0===(e=c(e,this.schema.primKey.keyPath))?S(new k.InvalidArgument(\"Given object does not contain its primary key\")):this.where(\":id\").equals(e).modify(t)},r.prototype.put=function(t,n){var r=this,e=this.schema.primKey,i=e.auto,o=e.keyPath,a=t;return o&&i&&(a=vt(o)(t)),this._trans(\"readwrite\",function(e){return r.core.mutate({trans:e,type:\"put\",values:[a],keys:null!=n?[n]:null})}).then(function(e){return e.numFailures?K.reject(e.failures[0]):e.lastResult}).then(function(e){if(o)try{b(t,o,e)}catch(e){}return e})},r.prototype.delete=function(t){var n=this;return this._trans(\"readwrite\",function(e){return n.core.mutate({trans:e,type:\"delete\",keys:[t]}).then(function(e){return wt(n,[t],e)}).then(function(e){return e.numFailures?K.reject(e.failures[0]):void 0})})},r.prototype.clear=function(){var t=this;return this._trans(\"readwrite\",function(e){return t.core.mutate({trans:e,type:\"deleteRange\",range:yt}).then(function(e){return wt(t,null,e)})}).then(function(e){return e.numFailures?K.reject(e.failures[0]):void 0})},r.prototype.bulkGet=function(t){var n=this;return this._trans(\"readonly\",function(e){return n.core.getMany({keys:t,trans:e}).then(function(e){return e.map(function(e){return n.hook.reading.fire(e)})})})},r.prototype.bulkAdd=function(i,e,t){var o=this,a=Array.isArray(e)?e:void 0,u=(t=t||(a?void 0:e))?t.allKeys:void 0;return this._trans(\"readwrite\",function(e){var t=o.schema.primKey,n=t.auto,t=t.keyPath;if(t&&a)throw new k.InvalidArgument(\"bulkAdd(): keys argument invalid on tables with inbound keys\");if(a&&a.length!==i.length)throw new k.InvalidArgument(\"Arguments objects and keys must have the same length\");var r=i.length,n=t&&n?i.map(vt(t)):i;return o.core.mutate({trans:e,type:\"add\",keys:a,values:n,wantResults:u}).then(function(e){var t=e.numFailures,n=e.failures;if(0===t)return u?e.results:e.lastResult;throw new he(\"\".concat(o.name,\".bulkAdd(): \").concat(t,\" of \").concat(r,\" operations failed\"),n)})})},r.prototype.bulkPut=function(i,e,t){var o=this,a=Array.isArray(e)?e:void 0,u=(t=t||(a?void 0:e))?t.allKeys:void 0;return this._trans(\"readwrite\",function(e){var t=o.schema.primKey,n=t.auto,t=t.keyPath;if(t&&a)throw new k.InvalidArgument(\"bulkPut(): keys argument invalid on tables with inbound keys\");if(a&&a.length!==i.length)throw new k.InvalidArgument(\"Arguments objects and keys must have the same length\");var r=i.length,n=t&&n?i.map(vt(t)):i;return o.core.mutate({trans:e,type:\"put\",keys:a,values:n,wantResults:u}).then(function(e){var t=e.numFailures,n=e.failures;if(0===t)return u?e.results:e.lastResult;throw new he(\"\".concat(o.name,\".bulkPut(): \").concat(t,\" of \").concat(r,\" operations failed\"),n)})})},r.prototype.bulkUpdate=function(t){var h=this,n=this.core,r=t.map(function(e){return e.key}),i=t.map(function(e){return e.changes}),d=[];return this._trans(\"readwrite\",function(e){return n.getMany({trans:e,keys:r,cache:\"clone\"}).then(function(c){var l=[],f=[],s=(t.forEach(function(e,t){var n=e.key,r=e.changes,i=c[t];if(i){for(var o=0,a=Object.keys(r);o<a.length;o++){var u=a[o],s=r[u];if(u===h.schema.primKey.keyPath){if(0!==C(s,n))throw new k.Constraint(\"Cannot update primary key in bulkUpdate()\")}else b(i,u,s)}d.push(t),l.push(n),f.push(i)}}),l.length);return n.mutate({trans:e,type:\"put\",keys:l,values:f,updates:{keys:r,changeSpecs:i}}).then(function(e){var t=e.numFailures,n=e.failures;if(0===t)return s;for(var r=0,i=Object.keys(n);r<i.length;r++){var o,a=i[r],u=d[Number(a)];null!=u&&(o=n[a],delete n[a],n[u]=o)}throw new he(\"\".concat(h.name,\".bulkUpdate(): \").concat(t,\" of \").concat(s,\" operations failed\"),n)})})})},r.prototype.bulkDelete=function(t){var r=this,i=t.length;return this._trans(\"readwrite\",function(e){return r.core.mutate({trans:e,type:\"delete\",keys:t}).then(function(e){return wt(r,t,e)})}).then(function(e){var t=e.numFailures,n=e.failures;if(0===t)return e.lastResult;throw new he(\"\".concat(r.name,\".bulkDelete(): \").concat(t,\" of \").concat(i,\" operations failed\"),n)})};var Ot=r;function r(){}function Pt(i){function t(e,t){if(t){for(var n=arguments.length,r=new Array(n-1);--n;)r[n-1]=arguments[n];return a[e].subscribe.apply(null,r),i}if(\"string\"==typeof e)return a[e]}var a={};t.addEventType=u;for(var e=1,n=arguments.length;e<n;++e)u(arguments[e]);return t;function u(e,n,r){var i,o;if(\"object\"!=typeof e)return n=n||xe,o={subscribers:[],fire:r=r||g,subscribe:function(e){-1===o.subscribers.indexOf(e)&&(o.subscribers.push(e),o.fire=n(o.fire,e))},unsubscribe:function(t){o.subscribers=o.subscribers.filter(function(e){return e!==t}),o.fire=o.subscribers.reduce(n,r)}},a[e]=t[e]=o;O(i=e).forEach(function(e){var t=i[e];if(x(t))u(e,i[e][0],i[e][1]);else{if(\"asap\"!==t)throw new k.InvalidArgument(\"Invalid event config\");var n=u(e,ve,function(){for(var e=arguments.length,t=new Array(e);e--;)t[e]=arguments[e];n.subscribers.forEach(function(e){Q(function(){e.apply(null,t)})})})}})}}function Kt(e,t){return U(t).from({prototype:e}),t}function Et(e,t){return!(e.filter||e.algorithm||e.or)&&(t?e.justLimit:!e.replayFilter)}function St(e,t){e.filter=pt(e.filter,t)}function At(e,t,n){var r=e.replayFilter;e.replayFilter=r?function(){return pt(r(),t())}:t,e.justLimit=n&&!r}function Ct(e,t){if(e.isPrimKey)return t.primaryKey;var n=t.getIndexByKeyPath(e.index);if(n)return n;throw new k.Schema(\"KeyPath \"+e.index+\" on object store \"+t.name+\" is not indexed\")}function jt(e,t,n){var r=Ct(e,t.schema);return t.openCursor({trans:n,values:!e.keysOnly,reverse:\"prev\"===e.dir,unique:!!e.unique,query:{index:r,range:e.range}})}function Tt(e,o,t,n){var a,r,u=e.replayFilter?pt(e.filter,e.replayFilter()):e.filter;return e.or?(a={},r=function(e,t,n){var r,i;u&&!u(t,n,function(e){return t.stop(e)},function(e){return t.fail(e)})||(\"[object ArrayBuffer]\"===(i=\"\"+(r=t.primaryKey))&&(i=\"\"+new Uint8Array(r)),m(a,i))||(a[i]=!0,o(e,t,n))},Promise.all([e.or._iterate(r,t),It(jt(e,n,t),e.algorithm,r,!e.keysOnly&&e.valueMapper)])):It(jt(e,n,t),pt(e.algorithm,u),o,!e.keysOnly&&e.valueMapper)}function It(e,r,i,o){var a=E(o?function(e,t,n){return i(o(e),t,n)}:i);return e.then(function(n){if(n)return n.start(function(){var t=function(){return n.continue()};r&&!r(n,function(e){return t=e},function(e){n.stop(e),t=g},function(e){n.fail(e),t=g})||a(n.value,n,function(e){return t=e}),t()})})}i.prototype._read=function(e,t){var n=this._ctx;return n.error?n.table._trans(null,S.bind(null,n.error)):n.table._trans(\"readonly\",e).then(t)},i.prototype._write=function(e){var t=this._ctx;return t.error?t.table._trans(null,S.bind(null,t.error)):t.table._trans(\"readwrite\",e,\"locked\")},i.prototype._addAlgorithm=function(e){var t=this._ctx;t.algorithm=pt(t.algorithm,e)},i.prototype._iterate=function(e,t){return Tt(this._ctx,e,t,this._ctx.table.core)},i.prototype.clone=function(e){var t=Object.create(this.constructor.prototype),n=Object.create(this._ctx);return e&&a(n,e),t._ctx=n,t},i.prototype.raw=function(){return this._ctx.valueMapper=null,this},i.prototype.each=function(t){var n=this._ctx;return this._read(function(e){return Tt(n,t,e,n.table.core)})},i.prototype.count=function(e){var i=this;return this._read(function(e){var t,n=i._ctx,r=n.table.core;return Et(n,!0)?r.count({trans:e,query:{index:Ct(n,r.schema),range:n.range}}).then(function(e){return Math.min(e,n.limit)}):(t=0,Tt(n,function(){return++t,!1},e,r).then(function(){return t}))}).then(e)},i.prototype.sortBy=function(e,t){var n=e.split(\".\").reverse(),r=n[0],i=n.length-1;function o(e,t){return t?o(e[n[t]],t-1):e[r]}var a=\"next\"===this._ctx.dir?1:-1;function u(e,t){return C(o(e,i),o(t,i))*a}return this.toArray(function(e){return e.slice().sort(u)}).then(t)},i.prototype.toArray=function(e){var o=this;return this._read(function(e){var t,n,r,i=o._ctx;return Et(i,!0)&&0<i.limit?(t=i.valueMapper,n=Ct(i,i.table.core.schema),i.table.core.query({trans:e,limit:i.limit,values:!0,direction:\"prev\"===i.dir?\"prev\":void 0,query:{index:n,range:i.range}}).then(function(e){e=e.result;return t?e.map(t):e})):(r=[],Tt(i,function(e){return r.push(e)},e,i.table.core).then(function(){return r}))},e)},i.prototype.offset=function(t){var e=this._ctx;return t<=0||(e.offset+=t,Et(e)?At(e,function(){var n=t;return function(e,t){return 0===n||(1===n?--n:t(function(){e.advance(n),n=0}),!1)}}):At(e,function(){var e=t;return function(){return--e<0}})),this},i.prototype.limit=function(e){return this._ctx.limit=Math.min(this._ctx.limit,e),At(this._ctx,function(){var r=e;return function(e,t,n){return--r<=0&&t(n),0<=r}},!0),this},i.prototype.until=function(r,i){return St(this._ctx,function(e,t,n){return!r(e.value)||(t(n),i)}),this},i.prototype.first=function(e){return this.limit(1).toArray(function(e){return e[0]}).then(e)},i.prototype.last=function(e){return this.reverse().first(e)},i.prototype.filter=function(t){var e;return St(this._ctx,function(e){return t(e.value)}),(e=this._ctx).isMatch=pt(e.isMatch,t),this},i.prototype.and=function(e){return this.filter(e)},i.prototype.or=function(e){return new this.db.WhereClause(this._ctx.table,e,this)},i.prototype.reverse=function(){return this._ctx.dir=\"prev\"===this._ctx.dir?\"next\":\"prev\",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this},i.prototype.desc=function(){return this.reverse()},i.prototype.eachKey=function(n){var e=this._ctx;return e.keysOnly=!e.isMatch,this.each(function(e,t){n(t.key,t)})},i.prototype.eachUniqueKey=function(e){return this._ctx.unique=\"unique\",this.eachKey(e)},i.prototype.eachPrimaryKey=function(n){var e=this._ctx;return e.keysOnly=!e.isMatch,this.each(function(e,t){n(t.primaryKey,t)})},i.prototype.keys=function(e){var t=this._ctx,n=(t.keysOnly=!t.isMatch,[]);return this.each(function(e,t){n.push(t.key)}).then(function(){return n}).then(e)},i.prototype.primaryKeys=function(e){var n=this._ctx;if(Et(n,!0)&&0<n.limit)return this._read(function(e){var t=Ct(n,n.table.core.schema);return n.table.core.query({trans:e,values:!1,limit:n.limit,direction:\"prev\"===n.dir?\"prev\":void 0,query:{index:t,range:n.range}})}).then(function(e){return e.result}).then(e);n.keysOnly=!n.isMatch;var r=[];return this.each(function(e,t){r.push(t.primaryKey)}).then(function(){return r}).then(e)},i.prototype.uniqueKeys=function(e){return this._ctx.unique=\"unique\",this.keys(e)},i.prototype.firstKey=function(e){return this.limit(1).keys(function(e){return e[0]}).then(e)},i.prototype.lastKey=function(e){return this.reverse().firstKey(e)},i.prototype.distinct=function(){var n,e=this._ctx,e=e.index&&e.table.schema.idxByName[e.index];return e&&e.multi&&(n={},St(this._ctx,function(e){var e=e.primaryKey.toString(),t=m(n,e);return n[e]=!0,!t})),this},i.prototype.modify=function(x){var n=this,k=this._ctx;return this._write(function(p){function y(e,t){var n=t.failures;u+=e-t.numFailures;for(var r=0,i=O(n);r<i.length;r++){var o=i[r];a.push(n[o])}}var v=\"function\"==typeof x?x:function(e){return kt(e,x)},m=k.table.core,e=m.schema.primaryKey,b=e.outbound,g=e.extractKey,w=200,e=n.db._options.modifyChunkSize,a=(e&&(w=\"object\"==typeof e?e[m.name]||e[\"*\"]||200:e),[]),u=0,t=[],_=x===Dt;return n.clone().primaryKeys().then(function(f){function h(s){var c=Math.min(w,f.length-s),l=f.slice(s,s+c);return(_?Promise.resolve([]):m.getMany({trans:p,keys:l,cache:\"immutable\"})).then(function(e){var n=[],t=[],r=b?[]:null,i=_?l:[];if(!_)for(var o=0;o<c;++o){var a=e[o],u={value:ee(a),primKey:f[s+o]};!1!==v.call(u,u.value,u)&&(null==u.value?i.push(f[s+o]):b||0===C(g(a),g(u.value))?(t.push(u.value),b&&r.push(f[s+o])):(i.push(f[s+o]),n.push(u.value)))}return Promise.resolve(0<n.length&&m.mutate({trans:p,type:\"add\",values:n}).then(function(e){for(var t in e.failures)i.splice(parseInt(t),1);y(n.length,e)})).then(function(){return(0<t.length||d&&\"object\"==typeof x)&&m.mutate({trans:p,type:\"put\",keys:r,values:t,criteria:d,changeSpec:\"function\"!=typeof x&&x,isAdditionalChunk:0<s}).then(function(e){return y(t.length,e)})}).then(function(){return(0<i.length||d&&_)&&m.mutate({trans:p,type:\"delete\",keys:i,criteria:d,isAdditionalChunk:0<s}).then(function(e){return wt(k.table,i,e)}).then(function(e){return y(i.length,e)})}).then(function(){return f.length>s+c&&h(s+w)})})}var d=Et(k)&&k.limit===1/0&&(\"function\"!=typeof x||_)&&{index:k.index,range:k.range};return h(0).then(function(){if(0<a.length)throw new fe(\"Error modifying one or more objects\",a,u,t);return f.length})})})},i.prototype.delete=function(){var i=this._ctx,n=i.range;return!Et(i)||i.table.schema.yProps||!i.isPrimKey&&3!==n.type?this.modify(Dt):this._write(function(e){var t=i.table.core.schema.primaryKey,r=n;return i.table.core.count({trans:e,query:{index:t,range:r}}).then(function(n){return i.table.core.mutate({trans:e,type:\"deleteRange\",range:r}).then(function(e){var t=e.failures,e=e.numFailures;if(e)throw new fe(\"Could not delete some values\",Object.keys(t).map(function(e){return t[e]}),n-e);return n-e})})})};var qt=i;function i(){}var Dt=function(e,t){return t.value=null};function Bt(e,t){return e<t?-1:e===t?0:1}function Rt(e,t){return t<e?-1:e===t?0:1}function j(e,t,n){e=e instanceof Lt?new e.Collection(e):e;return e._ctx.error=new(n||TypeError)(t),e}function Ft(e){return new e.Collection(e,function(){return Mt(\"\")}).limit(0)}function Nt(e,s,n,r){var i,c,l,f,h,d,p,y=n.length;if(!n.every(function(e){return\"string\"==typeof e}))return j(e,lt);function t(e){i=\"next\"===e?function(e){return e.toUpperCase()}:function(e){return e.toLowerCase()},c=\"next\"===e?function(e){return e.toLowerCase()}:function(e){return e.toUpperCase()},l=\"next\"===e?Bt:Rt;var t=n.map(function(e){return{lower:c(e),upper:i(e)}}).sort(function(e,t){return l(e.lower,t.lower)});f=t.map(function(e){return e.upper}),h=t.map(function(e){return e.lower}),p=\"next\"===(d=e)?\"\":r}t(\"next\");var e=new e.Collection(e,function(){return T(f[0],h[y-1]+r)}),v=(e._ondirectionchange=function(e){t(e)},0);return e._addAlgorithm(function(e,t,n){var r=e.key;if(\"string\"==typeof r){var i=c(r);if(s(i,h,v))return!0;for(var o=null,a=v;a<y;++a){var u=((e,t,n,r,i,o)=>{for(var a=Math.min(e.length,r.length),u=-1,s=0;s<a;++s){var c=t[s];if(c!==r[s])return i(e[s],n[s])<0?e.substr(0,s)+n[s]+n.substr(s+1):i(e[s],r[s])<0?e.substr(0,s)+r[s]+n.substr(s+1):0<=u?e.substr(0,u)+t[u]+n.substr(u+1):null;i(e[s],c)<0&&(u=s)}return a<r.length&&\"next\"===o?e+n.substr(e.length):a<e.length&&\"prev\"===o?e.substr(0,n.length):u<0?null:e.substr(0,u)+r[u]+n.substr(u+1)})(r,i,f[a],h[a],l,d);null===u&&null===o?v=a+1:(null===o||0<l(o,u))&&(o=u)}t(null!==o?function(){e.continue(o+p)}:n)}return!1}),e}function T(e,t,n,r){return{type:2,lower:e,upper:t,lowerOpen:n,upperOpen:r}}function Mt(e){return{type:1,lower:e,upper:e}}Object.defineProperty(d.prototype,\"Collection\",{get:function(){return this._ctx.table.db.Collection},enumerable:!1,configurable:!0}),d.prototype.between=function(e,t,n,r){n=!1!==n,r=!0===r;try{return 0<this._cmp(e,t)||0===this._cmp(e,t)&&(n||r)&&(!n||!r)?Ft(this):new this.Collection(this,function(){return T(e,t,!n,!r)})}catch(e){return j(this,A)}},d.prototype.equals=function(e){return null==e?j(this,A):new this.Collection(this,function(){return Mt(e)})},d.prototype.above=function(e){return null==e?j(this,A):new this.Collection(this,function(){return T(e,void 0,!0)})},d.prototype.aboveOrEqual=function(e){return null==e?j(this,A):new this.Collection(this,function(){return T(e,void 0,!1)})},d.prototype.below=function(e){return null==e?j(this,A):new this.Collection(this,function(){return T(void 0,e,!1,!0)})},d.prototype.belowOrEqual=function(e){return null==e?j(this,A):new this.Collection(this,function(){return T(void 0,e)})},d.prototype.startsWith=function(e){return\"string\"!=typeof e?j(this,lt):this.between(e,e+ct,!0,!0)},d.prototype.startsWithIgnoreCase=function(e){return\"\"===e?this.startsWith(e):Nt(this,function(e,t){return 0===e.indexOf(t[0])},[e],ct)},d.prototype.equalsIgnoreCase=function(e){return Nt(this,function(e,t){return e===t[0]},[e],\"\")},d.prototype.anyOfIgnoreCase=function(){var e=n.apply(ae,arguments);return 0===e.length?Ft(this):Nt(this,function(e,t){return-1!==t.indexOf(e)},e,\"\")},d.prototype.startsWithAnyOfIgnoreCase=function(){var e=n.apply(ae,arguments);return 0===e.length?Ft(this):Nt(this,function(t,e){return e.some(function(e){return 0===t.indexOf(e)})},e,ct)},d.prototype.anyOf=function(){var e,i,t=this,o=n.apply(ae,arguments),a=this._cmp;try{o.sort(a)}catch(e){return j(this,A)}return 0===o.length?Ft(this):((e=new this.Collection(this,function(){return T(o[0],o[o.length-1])}))._ondirectionchange=function(e){a=\"next\"===e?t._ascending:t._descending,o.sort(a)},i=0,e._addAlgorithm(function(e,t,n){for(var r=e.key;0<a(r,o[i]);)if(++i===o.length)return t(n),!1;return 0===a(r,o[i])||(t(function(){e.continue(o[i])}),!1)}),e)},d.prototype.notEqual=function(e){return this.inAnyRange([[-1/0,e],[e,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})},d.prototype.noneOf=function(){var e=n.apply(ae,arguments);if(0===e.length)return new this.Collection(this);try{e.sort(this._ascending)}catch(e){return j(this,A)}var t=e.reduce(function(e,t){return e?e.concat([[e[e.length-1][1],t]]):[[-1/0,t]]},null);return t.push([e[e.length-1],this.db._maxKey]),this.inAnyRange(t,{includeLowers:!1,includeUppers:!1})},d.prototype.inAnyRange=function(e,t){var o=this,a=this._cmp,u=this._ascending,n=this._descending,s=this._min,c=this._max;if(0===e.length)return Ft(this);if(!e.every(function(e){return void 0!==e[0]&&void 0!==e[1]&&u(e[0],e[1])<=0}))return j(this,\"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower\",k.InvalidArgument);var r=!t||!1!==t.includeLowers,i=t&&!0===t.includeUppers;var l,f=u;function h(e,t){return f(e[0],t[0])}try{(l=e.reduce(function(e,t){for(var n=0,r=e.length;n<r;++n){var i=e[n];if(a(t[0],i[1])<0&&0<a(t[1],i[0])){i[0]=s(i[0],t[0]),i[1]=c(i[1],t[1]);break}}return n===r&&e.push(t),e},[])).sort(h)}catch(e){return j(this,A)}var d=0,p=i?function(e){return 0<u(e,l[d][1])}:function(e){return 0<=u(e,l[d][1])},y=r?function(e){return 0<n(e,l[d][0])}:function(e){return 0<=n(e,l[d][0])};var v=p,t=new this.Collection(this,function(){return T(l[0][0],l[l.length-1][1],!r,!i)});return t._ondirectionchange=function(e){f=\"next\"===e?(v=p,u):(v=y,n),l.sort(h)},t._addAlgorithm(function(e,t,n){for(var r,i=e.key;v(i);)if(++d===l.length)return t(n),!1;return!p(r=i)&&!y(r)||(0===o._cmp(i,l[d][1])||0===o._cmp(i,l[d][0])||t(function(){f===u?e.continue(l[d][0]):e.continue(l[d][1])}),!1)}),t},d.prototype.startsWithAnyOf=function(){var e=n.apply(ae,arguments);return e.every(function(e){return\"string\"==typeof e})?0===e.length?Ft(this):this.inAnyRange(e.map(function(e){return[e,e+ct]})):j(this,\"startsWithAnyOf() only works with strings\")};var Lt=d;function d(){}function I(t){return E(function(e){return Ut(e),t(e.target.error),!1})}function Ut(e){e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault()}var zt=\"storagemutated\",Vt=\"x-storagemutated-1\",Wt=Pt(null,zt),Yt=(p.prototype._lock=function(){return $(!P.global),++this._reculock,1!==this._reculock||P.global||(P.lockOwnerFor=this),this},p.prototype._unlock=function(){if($(!P.global),0==--this._reculock)for(P.global||(P.lockOwnerFor=null);0<this._blockedFuncs.length&&!this._locked();){var e=this._blockedFuncs.shift();try{at(e[1],e[0])}catch(e){}}return this},p.prototype._locked=function(){return this._reculock&&P.lockOwnerFor!==this},p.prototype.create=function(t){var n=this;if(this.mode){var e=this.db.idbdb,r=this.db._state.dbOpenError;if($(!this.idbtrans),!t&&!e)switch(r&&r.name){case\"DatabaseClosedError\":throw new k.DatabaseClosed(r);case\"MissingAPIError\":throw new k.MissingAPI(r.message,r);default:throw new k.OpenFailed(r)}if(!this.active)throw new k.TransactionInactive;$(null===this._completion._state),(t=this.idbtrans=t||(this.db.core||e).transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability})).onerror=E(function(e){Ut(e),n._reject(t.error)}),t.onabort=E(function(e){Ut(e),n.active&&n._reject(new k.Abort(t.error)),n.active=!1,n.on(\"abort\").fire(e)}),t.oncomplete=E(function(){n.active=!1,n._resolve(),\"mutatedParts\"in t&&Wt.storagemutated.fire(t.mutatedParts)})}return this},p.prototype._promise=function(n,r,i){var e,o=this;return\"readwrite\"===n&&\"readwrite\"!==this.mode?S(new k.ReadOnly(\"Transaction is readonly\")):this.active?this._locked()?new K(function(e,t){o._blockedFuncs.push([function(){o._promise(n,r,i).then(e,t)},P])}):i?v(function(){var e=new K(function(e,t){o._lock();var n=r(e,t,o);n&&n.then&&n.then(e,t)});return e.finally(function(){return o._unlock()}),e._lib=!0,e}):((e=new K(function(e,t){var n=r(e,t,o);n&&n.then&&n.then(e,t)}))._lib=!0,e):S(new k.TransactionInactive)},p.prototype._root=function(){return this.parent?this.parent._root():this},p.prototype.waitFor=function(e){var t,r=this._root(),i=K.resolve(e),o=(r._waitingFor?r._waitingFor=r._waitingFor.then(function(){return i}):(r._waitingFor=i,r._waitingQueue=[],t=r.idbtrans.objectStore(r.storeNames[0]),function e(){for(++r._spinCount;r._waitingQueue.length;)r._waitingQueue.shift()();r._waitingFor&&(t.get(-1/0).onsuccess=e)}()),r._waitingFor);return new K(function(t,n){i.then(function(e){return r._waitingQueue.push(E(t.bind(null,e)))},function(e){return r._waitingQueue.push(E(n.bind(null,e)))}).finally(function(){r._waitingFor===o&&(r._waitingFor=null)})})},p.prototype.abort=function(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new k.Abort))},p.prototype.table=function(e){var t=this._memoizedTables||(this._memoizedTables={});if(m(t,e))return t[e];var n=this.schema[e];if(n)return(n=new this.db.Table(e,n,this)).core=this.db.core.table(e),t[e]=n;throw new k.NotFound(\"Table \"+e+\" not part of transaction\")},p);function p(){}function $t(e,t,n,r,i,o,a,u){return{name:e,keyPath:t,unique:n,multi:r,auto:i,compound:o,src:(n&&!a?\"&\":\"\")+(r?\"*\":\"\")+(i?\"++\":\"\")+Qt(t),type:u}}function Qt(e){return\"string\"==typeof e?e:e?\"[\"+[].join.call(e,\"+\")+\"]\":\"\"}function Gt(e,t,n){return{name:e,primKey:t,indexes:n,mappedClass:null,idxByName:(r=function(e){return[e.name,e]},n.reduce(function(e,t,n){t=r(t,n);return t&&(e[t[0]]=t[1]),e},{}))};var r}var Xt=function(e){try{return e.only([[]]),Xt=function(){return[[]]},[[]]}catch(e){return Xt=function(){return ct},ct}};function Ht(t){return null==t?function(){}:\"string\"==typeof t?1===(n=t).split(\".\").length?function(e){return e[n]}:function(e){return c(e,n)}:function(e){return c(e,t)};var n}function Jt(e){return[].slice.call(e)}var Zt=0;function en(e){return null==e?\":id\":\"string\"==typeof e?e:\"[\".concat(e.join(\"+\"),\"]\")}function tn(e,i,t){function _(e){if(3===e.type)return null;if(4===e.type)throw new Error(\"Cannot convert never type to IDBKeyRange\");var t=e.lower,n=e.upper,r=e.lowerOpen,e=e.upperOpen;return void 0===t?void 0===n?null:i.upperBound(n,!!e):void 0===n?i.lowerBound(t,!!r):i.bound(t,n,!!r,!!e)}function n(e){var p,y,w=e.name;return{name:w,schema:e,mutate:function(e){var y=e.trans,v=e.type,m=e.keys,b=e.values,g=e.range;return new Promise(function(t,e){t=E(t);var n=y.objectStore(w),r=null==n.keyPath,i=\"put\"===v||\"add\"===v;if(!i&&\"delete\"!==v&&\"deleteRange\"!==v)throw new Error(\"Invalid operation type: \"+v);var o,a=(m||b||{length:1}).length;if(m&&b&&m.length!==b.length)throw new Error(\"Given keys array must have same length as given values array.\");if(0===a)return t({numFailures:0,failures:{},results:[],lastResult:void 0});function u(e){++l,Ut(e)}var s=[],c=[],l=0;if(\"deleteRange\"===v){if(4===g.type)return t({numFailures:l,failures:c,results:[],lastResult:void 0});3===g.type?s.push(o=n.clear()):s.push(o=n.delete(_(g)))}else{var r=i?r?[b,m]:[b,null]:[m,null],f=r[0],h=r[1];if(i)for(var d=0;d<a;++d)s.push(o=h&&void 0!==h[d]?n[v](f[d],h[d]):n[v](f[d])),o.onerror=u;else for(d=0;d<a;++d)s.push(o=n[v](f[d])),o.onerror=u}function p(e){e=e.target.result,s.forEach(function(e,t){return null!=e.error&&(c[t]=e.error)}),t({numFailures:l,failures:c,results:\"delete\"===v?m:s.map(function(e){return e.result}),lastResult:e})}o.onerror=function(e){u(e),p(e)},o.onsuccess=p})},getMany:function(e){var f=e.trans,h=e.keys;return new Promise(function(t,e){t=E(t);for(var n,r=f.objectStore(w),i=h.length,o=new Array(i),a=0,u=0,s=function(e){e=e.target;o[e._pos]=e.result,++u===a&&t(o)},c=I(e),l=0;l<i;++l)null!=h[l]&&((n=r.get(h[l]))._pos=l,n.onsuccess=s,n.onerror=c,++a);0===a&&t(o)})},get:function(e){var r=e.trans,i=e.key;return new Promise(function(t,e){t=E(t);var n=r.objectStore(w).get(i);n.onsuccess=function(e){return t(e.target.result)},n.onerror=I(e)})},query:(p=a,y=u,function(d){return new Promise(function(t,e){t=E(t);var n,r,i,o,a=d.trans,u=d.values,s=d.limit,c=d.query,l=null!=(l=d.direction)?l:\"next\",f=s===1/0?void 0:s,h=c.index,c=c.range,a=a.objectStore(w),a=h.isPrimaryKey?a:a.index(h.name),h=_(c);if(0===s)return t({result:[]});y?(c={query:h,count:f,direction:l},(n=u?a.getAll(c):a.getAllKeys(c)).onsuccess=function(e){return t({result:e.target.result})},n.onerror=I(e)):p&&\"next\"===l?((n=u?a.getAll(h,f):a.getAllKeys(h,f)).onsuccess=function(e){return t({result:e.target.result})},n.onerror=I(e)):(r=0,i=!u&&\"openKeyCursor\"in a?a.openKeyCursor(h,l):a.openCursor(h,l),o=[],i.onsuccess=function(){var e=i.result;return!e||(o.push(u?e.value:e.primaryKey),++r===s)?t({result:o}):void e.continue()},i.onerror=I(e))})}),openCursor:function(e){var c=e.trans,o=e.values,a=e.query,u=e.reverse,l=e.unique;return new Promise(function(t,n){t=E(t);var e=a.index,r=a.range,i=c.objectStore(w),i=e.isPrimaryKey?i:i.index(e.name),e=u?l?\"prevunique\":\"prev\":l?\"nextunique\":\"next\",s=!o&&\"openKeyCursor\"in i?i.openKeyCursor(_(r),e):i.openCursor(_(r),e);s.onerror=I(n),s.onsuccess=E(function(e){var r,i,o,a,u=s.result;u?(u.___id=++Zt,u.done=!1,r=u.continue.bind(u),i=(i=u.continuePrimaryKey)&&i.bind(u),o=u.advance.bind(u),a=function(){throw new Error(\"Cursor not stopped\")},u.trans=c,u.stop=u.continue=u.continuePrimaryKey=u.advance=function(){throw new Error(\"Cursor not started\")},u.fail=E(n),u.next=function(){var e=this,t=1;return this.start(function(){return t--?e.continue():e.stop()}).then(function(){return e})},u.start=function(e){function t(){if(s.result)try{e()}catch(e){u.fail(e)}else u.done=!0,u.start=function(){throw new Error(\"Cursor behind last entry\")},u.stop()}var n=new Promise(function(t,e){t=E(t),s.onerror=I(e),u.fail=e,u.stop=function(e){u.stop=u.continue=u.continuePrimaryKey=u.advance=a,t(e)}});return s.onsuccess=E(function(e){s.onsuccess=t,t()}),u.continue=r,u.continuePrimaryKey=i,u.advance=o,t(),n},t(u)):t(null)},n)})},count:function(e){var t=e.query,i=e.trans,o=t.index,a=t.range;return new Promise(function(t,e){var n=i.objectStore(w),n=o.isPrimaryKey?n:n.index(o.name),r=_(a),r=r?n.count(r):n.count();r.onsuccess=E(function(e){return t(e.target.result)}),r.onerror=I(e)})}}}r=t,o=Jt((t=e).objectStoreNames),s=0<o.length?r.objectStore(o[0]):{};var r,t={schema:{name:t.name,tables:o.map(function(e){return r.objectStore(e)}).map(function(t){var e=t.keyPath,n=t.autoIncrement,r=x(e),i={},r={name:t.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:null==e,compound:r,keyPath:e,autoIncrement:n,unique:!0,extractKey:Ht(e)},indexes:Jt(t.indexNames).map(function(e){return t.index(e)}).map(function(e){var t=e.name,n=e.unique,r=e.multiEntry,e=e.keyPath,t={name:t,compound:x(e),keyPath:e,unique:n,multiEntry:r,extractKey:Ht(e)};return i[en(e)]=t}),getIndexByKeyPath:function(e){return i[en(e)]}};return i[\":id\"]=r.primaryKey,null!=e&&(i[en(e)]=r.primaryKey),r})},hasGetAll:0<o.length&&\"getAll\"in s&&!(\"undefined\"!=typeof navigator&&/Safari/.test(navigator.userAgent)&&!/(Chrome\\/|Edge\\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1]<604),hasIdb3Features:\"getAllRecords\"in s},o=t.schema,a=t.hasGetAll,u=t.hasIdb3Features,s=o.tables.map(n),c={};return s.forEach(function(e){return c[e.name]=e}),{stack:\"dbcore\",transaction:e.transaction.bind(e),table:function(e){if(c[e])return c[e];throw new Error(\"Table '\".concat(e,\"' not found\"))},MIN_KEY:-1/0,MAX_KEY:Xt(i),schema:o}}function nn(e,t,n,r){n=n.IDBKeyRange;return t=tn(t,n,r),{dbcore:e.dbcore.reduce(function(e,t){t=t.create;return _(_({},e),t(e))},t)}}function rn(n,e){var t=e.db,t=nn(n._middlewares,t,n._deps,e);n.core=t.dbcore,n.tables.forEach(function(e){var t=e.name;n.core.schema.tables.some(function(e){return e.name===t})&&(e.core=n.core.table(t),n[t]instanceof n.Table)&&(n[t].core=e.core)})}function on(i,e,t,o){t.forEach(function(n){var r=o[n];e.forEach(function(e){var t=function e(t,n){return z(t,n)||(t=F(t))&&e(t,n)}(e,n);(!t||\"value\"in t&&void 0===t.value)&&(e===i.Transaction.prototype||e instanceof i.Transaction?u(e,n,{get:function(){return this.table(n)},set:function(e){L(this,n,{value:e,writable:!0,configurable:!0,enumerable:!0})}}):e[n]=new i.Table(n,r))})})}function an(n,e){e.forEach(function(e){for(var t in e)e[t]instanceof n.Table&&delete e[t]})}function un(e,t){return e._cfg.version-t._cfg.version}function sn(n,r,i,e){var o=n._dbSchema,a=(i.objectStoreNames.contains(\"$meta\")&&!o.$meta&&(o.$meta=Gt(\"$meta\",vn(\"\")[0],[]),n._storeNames.push(\"$meta\")),n._createTransaction(\"readwrite\",n._storeNames,o)),u=(a.create(i),a._completion.catch(e),a._reject.bind(a)),s=P.transless||P;v(function(){if(P.trans=a,P.transless=s,0!==r)return rn(n,i),t=r,((e=a).storeNames.includes(\"$meta\")?e.table(\"$meta\").get(\"version\").then(function(e){return null!=e?e:t}):K.resolve(t)).then(function(e){var s=n,c=e,l=a,f=i,t=[],e=s._versions,h=s._dbSchema=pn(0,s.idbdb,f);return 0===(e=e.filter(function(e){return e._cfg.version>=c})).length?K.resolve():(e.forEach(function(u){t.push(function(){var t,n,r,i=h,e=u._cfg.dbschema,o=(yn(s,i,f),yn(s,e,f),h=s._dbSchema=e,ln(i,e)),a=(o.add.forEach(function(e){fn(f,e[0],e[1].primKey,e[1].indexes)}),o.change.forEach(function(e){if(e.recreate)throw new k.Upgrade(\"Not yet support for changing primary key\");var t=f.objectStore(e.name);e.add.forEach(function(e){return dn(t,e)}),e.change.forEach(function(e){t.deleteIndex(e.name),dn(t,e)}),e.del.forEach(function(e){return t.deleteIndex(e)})}),u._cfg.contentUpgrade);if(a&&u._cfg.version>c)return rn(s,f),l._memoizedTables={},t=G(e),o.del.forEach(function(e){t[e]=i[e]}),an(s,[s.Transaction.prototype]),on(s,[s.Transaction.prototype],O(t),t),l.schema=t,(n=ue(a))&&nt(),e=K.follow(function(){var e;(r=a(l))&&n&&(e=w.bind(null,null),r.then(e,e))}),r&&\"function\"==typeof r.then?K.resolve(r):e.then(function(){return r})}),t.push(function(e){var t,n,r=u._cfg.dbschema;t=r,n=e,[].slice.call(n.db.objectStoreNames).forEach(function(e){return null==t[e]&&n.db.deleteObjectStore(e)}),an(s,[s.Transaction.prototype]),on(s,[s.Transaction.prototype],s._storeNames,s._dbSchema),l.schema=s._dbSchema}),t.push(function(e){s.idbdb.objectStoreNames.contains(\"$meta\")&&(Math.ceil(s.idbdb.version/10)===u._cfg.version?(s.idbdb.deleteObjectStore(\"$meta\"),delete s._dbSchema.$meta,s._storeNames=s._storeNames.filter(function(e){return\"$meta\"!==e})):e.objectStore(\"$meta\").put(u._cfg.version,\"version\"))})}),function e(){return t.length?K.resolve(t.shift()(l.idbtrans)).then(e):K.resolve()}().then(function(){hn(h,f)}))}).catch(u);var e,t;O(o).forEach(function(e){fn(i,e,o[e].primKey,o[e].indexes)}),rn(n,i),K.follow(function(){return n.on.populate.fire(a)}).catch(u)})}function cn(e,r){hn(e._dbSchema,r),r.db.version%10!=0||r.objectStoreNames.contains(\"$meta\")||r.db.createObjectStore(\"$meta\").add(Math.ceil(r.db.version/10-1),\"version\");var t=pn(0,e.idbdb,r);yn(e,e._dbSchema,r);for(var n=0,i=ln(t,e._dbSchema).change;n<i.length;n++){var o=(t=>{if(t.change.length||t.recreate)return console.warn(\"Unable to patch indexes of table \".concat(t.name,\" because it has changes on the type of index or primary key.\")),{value:void 0};var n=r.objectStore(t.name);t.add.forEach(function(e){l&&console.debug(\"Dexie upgrade patch: Creating missing index \".concat(t.name,\".\").concat(e.src)),dn(n,e)})})(i[n]);if(\"object\"==typeof o)return o.value}}function ln(e,t){var n,r={del:[],add:[],change:[]};for(n in e)t[n]||r.del.push(n);for(n in t){var i=e[n],o=t[n];if(i){var a={name:n,def:o,recreate:!1,del:[],add:[],change:[]};if(\"\"+(i.primKey.keyPath||\"\")!=\"\"+(o.primKey.keyPath||\"\")||i.primKey.auto!==o.primKey.auto)a.recreate=!0,r.change.push(a);else{var u=i.idxByName,s=o.idxByName,c=void 0;for(c in u)s[c]||a.del.push(c);for(c in s){var l=u[c],f=s[c];l?l.src!==f.src&&a.change.push(f):a.add.push(f)}(0<a.del.length||0<a.add.length||0<a.change.length)&&r.change.push(a)}}else r.add.push([n,o])}return r}function fn(e,t,n,r){var i=e.db.createObjectStore(t,n.keyPath?{keyPath:n.keyPath,autoIncrement:n.auto}:{autoIncrement:n.auto});r.forEach(function(e){return dn(i,e)})}function hn(t,n){O(t).forEach(function(e){n.db.objectStoreNames.contains(e)||(l&&console.debug(\"Dexie: Creating missing table\",e),fn(n,e,t[e].primKey,t[e].indexes))})}function dn(e,t){e.createIndex(t.name,t.keyPath,{unique:t.unique,multiEntry:t.multi})}function pn(e,t,u){var s={};return W(t.objectStoreNames,0).forEach(function(e){for(var t=u.objectStore(e),n=$t(Qt(a=t.keyPath),a||\"\",!0,!1,!!t.autoIncrement,a&&\"string\"!=typeof a,!0),r=[],i=0;i<t.indexNames.length;++i){var o=t.index(t.indexNames[i]),a=o.keyPath,o=$t(o.name,a,!!o.unique,!!o.multiEntry,!1,a&&\"string\"!=typeof a,!1);r.push(o)}s[e]=Gt(e,n,r)}),s}function yn(e,t,n){for(var r=n.db.objectStoreNames,i=0;i<r.length;++i){var o=r[i],a=n.objectStore(o);e._hasGetAll=\"getAll\"in a;for(var u=0;u<a.indexNames.length;++u){var s,c=a.indexNames[u],l=a.index(c).keyPath,l=\"string\"==typeof l?l:\"[\"+W(l).join(\"+\")+\"]\";t[o]&&(s=t[o].idxByName[l])&&(s.name=c,delete t[o].idxByName[l],t[o].idxByName[c]=s)}}\"undefined\"!=typeof navigator&&/Safari/.test(navigator.userAgent)&&!/(Chrome\\/|Edge\\/)/.test(navigator.userAgent)&&f.WorkerGlobalScope&&f instanceof f.WorkerGlobalScope&&[].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1]<604&&(e._hasGetAll=!1)}function vn(e){return e.split(\",\").map(function(e,t){var n=e.split(\":\"),r=null==(r=n[1])?void 0:r.trim(),n=(e=n[0].trim()).replace(/([&*]|\\+\\+)/g,\"\"),i=/^\\[/.test(n)?n.match(/^\\[(.*)\\]$/)[1].split(\"+\"):n;return $t(n,i||null,/\\&/.test(e),/\\*/.test(e),/\\+\\+/.test(e),x(i),0===t,r)})}bn.prototype._createTableSchema=Gt,bn.prototype._parseIndexSyntax=vn,bn.prototype._parseStoresSpec=function(r,i){var o=this;O(r).forEach(function(e){if(null!==r[e]){var t=o._parseIndexSyntax(r[e]),n=t.shift();if(!n)throw new k.Schema(\"Invalid schema for table \"+e+\": \"+r[e]);if(n.unique=!0,n.multi)throw new k.Schema(\"Primary key cannot be multiEntry*\");t.forEach(function(e){if(e.auto)throw new k.Schema(\"Only primary key can be marked as autoIncrement (++)\");if(!e.keyPath)throw new k.Schema(\"Index must have a name and cannot be an empty string\")});n=o._createTableSchema(e,n,t);i[e]=n}})},bn.prototype.stores=function(e){var t=this.db,e=(this._cfg.storesSource=this._cfg.storesSource?a(this._cfg.storesSource,e):e,t._versions),n={},r={};return e.forEach(function(e){a(n,e._cfg.storesSource),r=e._cfg.dbschema={},e._parseStoresSpec(n,r)}),t._dbSchema=r,an(t,[t._allTables,t,t.Transaction.prototype]),on(t,[t._allTables,t,t.Transaction.prototype,this._cfg.tables],O(r),r),t._storeNames=O(r),this},bn.prototype.upgrade=function(e){return this._cfg.contentUpgrade=ke(this._cfg.contentUpgrade||g,e),this};var mn=bn;function bn(){}var gn=(()=>{var i,o,t;return\"undefined\"!=typeof FinalizationRegistry&&\"undefined\"!=typeof WeakRef?(i=new Set,o=new FinalizationRegistry(function(e){i.delete(e)}),{toArray:function(){return Array.from(i).map(function(e){return e.deref()}).filter(function(e){return void 0!==e})},add:function(e){var t=new WeakRef(e._novip);i.add(t),o.register(e._novip,t,t),i.size>e._options.maxConnections&&(t=i.values().next().value,i.delete(t),o.unregister(t))},remove:function(e){if(e)for(var t=i.values(),n=t.next();!n.done;){var r=n.value;if(r.deref()===e._novip)return i.delete(r),void o.unregister(r);n=t.next()}}}):(t=[],{toArray:function(){return t},add:function(e){t.push(e._novip)},remove:function(e){e&&-1!==(e=t.indexOf(e._novip))&&t.splice(e,1)}})})();function wn(e,t){var n=e._dbNamesDB;return n||(n=e._dbNamesDB=new y(ft,{addons:[],indexedDB:e,IDBKeyRange:t})).version(1).stores({dbnames:\"name\"}),n.table(\"dbnames\")}function _n(e){return e&&\"function\"==typeof e.databases}function xn(e){return v(function(){return P.letThrough=!0,e()})}function kn(e){return!(\"from\"in e)}var q=function(e,t){var n;if(!this)return n=new q,e&&\"d\"in e&&a(n,e),n;a(this,arguments.length?{d:1,from:e,to:1<arguments.length?t:e}:{d:0})};function On(e,t,n){var r=C(t,n);if(!isNaN(r)){if(0<r)throw RangeError();if(kn(e))return a(e,{from:t,to:n,d:1});var r=e.l,i=e.r;if(C(n,e.from)<0)return r?On(r,t,n):e.l={from:t,to:n,d:1,l:null,r:null},Sn(e);if(0<C(t,e.to))return i?On(i,t,n):e.r={from:t,to:n,d:1,l:null,r:null},Sn(e);C(t,e.from)<0&&(e.from=t,e.l=null,e.d=i?i.d+1:1),0<C(n,e.to)&&(e.to=n,e.r=null,e.d=e.l?e.l.d+1:1);t=!e.r;r&&!e.l&&Pn(e,r),i&&t&&Pn(e,i)}}function Pn(e,t){kn(t)||function e(t,n){var r=n.from,i=n.l,o=n.r;On(t,r,n.to),i&&e(t,i),o&&e(t,o)}(e,t)}function Kn(e,t){var n=En(t),r=n.next();if(!r.done)for(var i=r.value,o=En(e),a=o.next(i.from),u=a.value;!r.done&&!a.done;){if(C(u.from,i.to)<=0&&0<=C(u.to,i.from))return!0;C(i.from,u.from)<0?i=(r=n.next(u.from)).value:u=(a=o.next(i.from)).value}return!1}function En(e){var n=kn(e)?null:{s:0,n:e};return{next:function(e){for(var t=0<arguments.length;n;)switch(n.s){case 0:if(n.s=1,t)for(;n.n.l&&C(e,n.n.from)<0;)n={up:n,n:n.n.l,s:1};else for(;n.n.l;)n={up:n,n:n.n.l,s:1};case 1:if(n.s=2,!t||C(e,n.n.to)<=0)return{value:n.n,done:!1};case 2:if(n.n.r){n.s=3,n={up:n,n:n.n.r,s:0};continue}case 3:n=n.up}return{done:!0}}}}function Sn(e){var t,n,r,i=((null==(i=e.r)?void 0:i.d)||0)-((null==(i=e.l)?void 0:i.d)||0),i=1<i?\"r\":i<-1?\"l\":\"\";i&&(t=\"r\"==i?\"l\":\"r\",n=_({},e),r=e[i],e.from=r.from,e.to=r.to,e[i]=r[i],n[i]=r[t],(e[t]=n).d=An(n)),e.d=An(e)}function An(e){var t=e.r,e=e.l;return(t?e?Math.max(t.d,e.d):t.d:e?e.d:0)+1}function Cn(t,n){return O(n).forEach(function(e){t[e]?Pn(t[e],n[e]):t[e]=function e(t){var n,r,i={};for(n in t)m(t,n)&&(r=t[n],i[n]=!r||\"object\"!=typeof r||J.has(r.constructor)?r:e(r));return i}(n[e])}),t}function jn(t,n){return t.all||n.all||Object.keys(t).some(function(e){return n[e]&&Kn(n[e],t[e])})}M(q.prototype,((t={add:function(e){return Pn(this,e),this},addKey:function(e){return On(this,e,e),this},addKeys:function(e){var t=this;return e.forEach(function(e){return On(t,e,e)}),this},hasKey:function(e){var t=En(this).next(e).value;return t&&C(t.from,e)<=0&&0<=C(t.to,e)}})[re]=function(){return En(this)},t));var Tn={},In={},qn=!1;function Dn(e){Cn(In,e),qn||(qn=!0,setTimeout(function(){qn=!1,Bn(In,!(In={}))},0))}function Bn(e,t){void 0===t&&(t=!1);var n=new Set;if(e.all)for(var r=0,i=Object.values(Tn);r<i.length;r++)Rn(u=i[r],e,n,t);else for(var o in e){var a,u,o=/^idb\\:\\/\\/(.*)\\/(.*)\\//.exec(o);o&&(a=o[1],o=o[2],u=Tn[\"idb://\".concat(a,\"/\").concat(o)])&&Rn(u,e,n,t)}n.forEach(function(e){return e()})}function Rn(e,t,n,r){for(var i=[],o=0,a=Object.entries(e.queries.query);o<a.length;o++){for(var u=a[o],s=u[0],c=[],l=0,f=u[1];l<f.length;l++){var h=f[l];jn(t,h.obsSet)?h.subscribers.forEach(function(e){return n.add(e)}):r&&c.push(h)}r&&i.push([s,c])}if(r)for(var d=0,p=i;d<p.length;d++){var y=p[d],s=y[0],c=y[1];e.queries.query[s]=c}}function Fn(h){var d=h._state,r=h._deps.indexedDB;if(d.isBeingOpened||h.idbdb)return d.dbReadyPromise.then(function(){return d.dbOpenError?S(d.dbOpenError):h});d.isBeingOpened=!0,d.dbOpenError=null,d.openComplete=!1;var t=d.openCanceller,p=Math.round(10*h.verno),y=!1;function e(){if(d.openCanceller!==t)throw new k.DatabaseClosed(\"db.open() was cancelled\")}function v(){return new K(function(c,n){if(e(),!r)throw new k.MissingAPI;var l=h.name,f=d.autoSchema||!p?r.open(l):r.open(l,p);if(!f)throw new k.MissingAPI;f.onerror=I(n),f.onblocked=E(h._fireOnBlocked),f.onupgradeneeded=E(function(e){var t;m=f.transaction,d.autoSchema&&!h._options.allowEmptyDB?(f.onerror=Ut,m.abort(),f.result.close(),(t=r.deleteDatabase(l)).onsuccess=t.onerror=E(function(){n(new k.NoSuchDatabase(\"Database \".concat(l,\" doesnt exist\")))})):(m.onerror=I(n),t=e.oldVersion>Math.pow(2,62)?0:e.oldVersion,b=t<1,h.idbdb=f.result,y&&cn(h,m),sn(h,t/10,m,n))},n),f.onsuccess=E(function(){m=null;var e,t,n,r,i,o,a=h.idbdb=f.result,u=W(a.objectStoreNames);if(0<u.length)try{var s=a.transaction(1===(i=u).length?i[0]:i,\"readonly\");if(d.autoSchema)o=a,r=s,(n=h).verno=o.version/10,r=n._dbSchema=pn(0,o,r),n._storeNames=W(o.objectStoreNames,0),on(n,[n._allTables],O(r),r);else if(yn(h,h._dbSchema,s),t=s,((t=ln(pn(0,(e=h).idbdb,t),e._dbSchema)).add.length||t.change.some(function(e){return e.add.length||e.change.length}))&&!y)return console.warn(\"Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Dexie will add missing parts and increment native version number to workaround this.\"),a.close(),p=a.version+1,y=!0,c(v());rn(h,s)}catch(e){}gn.add(h),a.onversionchange=E(function(e){d.vcFired=!0,h.on(\"versionchange\").fire(e)}),a.onclose=E(function(){h.close({disableAutoOpen:!1})}),b&&(u=h._deps,i=l,_n(o=u.indexedDB)||i===ft||wn(o,u.IDBKeyRange).put({name:i}).catch(g)),c()},n)}).catch(function(e){switch(null==e?void 0:e.name){case\"UnknownError\":if(0<d.PR1398_maxLoop)return d.PR1398_maxLoop--,console.warn(\"Dexie: Workaround for Chrome UnknownError on open()\"),v();break;case\"VersionError\":if(0<p)return p=0,v()}return K.reject(e)})}var n,i=d.dbReadyResolve,m=null,b=!1;return K.race([t,(\"undefined\"==typeof navigator?K.resolve():!navigator.userAgentData&&/Safari\\//.test(navigator.userAgent)&&!/Chrom(e|ium)\\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(e){function t(){return indexedDB.databases().finally(e)}n=setInterval(t,100),t()}).finally(function(){return clearInterval(n)}):Promise.resolve()).then(v)]).then(function(){return e(),d.onReadyBeingFired=[],K.resolve(xn(function(){return h.on.ready.fire(h.vip)})).then(function e(){var t;if(0<d.onReadyBeingFired.length)return t=d.onReadyBeingFired.reduce(ke,g),d.onReadyBeingFired=[],K.resolve(xn(function(){return t(h.vip)})).then(e)})}).finally(function(){d.openCanceller===t&&(d.onReadyBeingFired=null,d.isBeingOpened=!1)}).catch(function(e){d.dbOpenError=e;try{m&&m.abort()}catch(e){}return t===d.openCanceller&&h._close(),S(e)}).finally(function(){d.openComplete=!0,i()}).then(function(){var n;return b&&(n={},h.tables.forEach(function(t){t.schema.indexes.forEach(function(e){e.name&&(n[\"idb://\".concat(h.name,\"/\").concat(t.name,\"/\").concat(e.name)]=new q(-1/0,[[[]]]))}),n[\"idb://\".concat(h.name,\"/\").concat(t.name,\"/\")]=n[\"idb://\".concat(h.name,\"/\").concat(t.name,\"/:dels\")]=new q(-1/0,[[[]]])}),Wt(zt).fire(n),Bn(n,!0)),h})}function Nn(t){function e(e){return t.next(e)}var r=n(e),i=n(function(e){return t.throw(e)});function n(n){return function(e){var e=n(e),t=e.value;return e.done?t:t&&\"function\"==typeof t.then?t.then(r,i):x(t)?Promise.all(t).then(r,i):r(t)}}return n(e)()}function Mn(e,t,n){for(var r=x(e)?e.slice():[e],i=0;i<n;++i)r.push(t);return r}var Ln={stack:\"dbcore\",name:\"VirtualIndexMiddleware\",level:1,create:function(l){return _(_({},l),{table:function(e){var o=l.table(e),e=o.schema,u={},s=[];function c(e,t,n){var r=en(e),i=u[r]=u[r]||[],o=null==e?0:\"string\"==typeof e?1:e.length,a=0<t,r=_(_({},n),{name:a?\"\".concat(r,\"(virtual-from:\").concat(n.name,\")\"):n.name,lowLevelIndex:n,isVirtual:a,keyTail:t,keyLength:o,extractKey:Ht(e),unique:!a&&n.unique});return i.push(r),r.isPrimaryKey||s.push(r),1<o&&c(2===o?e[0]:e.slice(0,o-1),t+1,n),i.sort(function(e,t){return e.keyTail-t.keyTail}),r}var t=c(e.primaryKey.keyPath,0,e.primaryKey);u[\":id\"]=[t];for(var n=0,r=e.indexes;n<r.length;n++){var i=r[n];c(i.keyPath,0,i)}function a(e){var t,n=e.query.index;return n.isVirtual?_(_({},e),{query:{index:n.lowLevelIndex,range:(t=e.query.range,n=n.keyTail,{type:1===t.type?2:t.type,lower:Mn(t.lower,t.lowerOpen?l.MAX_KEY:l.MIN_KEY,n),lowerOpen:!0,upper:Mn(t.upper,t.upperOpen?l.MIN_KEY:l.MAX_KEY,n),upperOpen:!0})}}):e}return _(_({},o),{schema:_(_({},e),{primaryKey:t,indexes:s,getIndexByKeyPath:function(e){return(e=u[en(e)])&&e[0]}}),count:function(e){return o.count(a(e))},query:function(e){return o.query(a(e))},openCursor:function(t){var e=t.query.index,r=e.keyTail,i=e.keyLength;return e.isVirtual?o.openCursor(a(t)).then(function(e){return e&&n(e)}):o.openCursor(t);function n(n){return Object.create(n,{continue:{value:function(e){null!=e?n.continue(Mn(e,t.reverse?l.MAX_KEY:l.MIN_KEY,r)):t.unique?n.continue(n.key.slice(0,i).concat(t.reverse?l.MIN_KEY:l.MAX_KEY,r)):n.continue()}},continuePrimaryKey:{value:function(e,t){n.continuePrimaryKey(Mn(e,l.MAX_KEY,r),t)}},primaryKey:{get:function(){return n.primaryKey}},key:{get:function(){var e=n.key;return 1===i?e[0]:e.slice(0,i)}},value:{get:function(){return n.value}}})}}})}})}};function Un(i,o,a,u){return a=a||{},u=u||\"\",O(i).forEach(function(e){var t,n,r;m(o,e)?(t=i[e],n=o[e],\"object\"==typeof t&&\"object\"==typeof n&&t&&n?(r=ne(t))!==ne(n)?a[u+e]=o[e]:\"Object\"===r?Un(t,n,a,u+e+\".\"):t!==n&&(a[u+e]=o[e]):t!==n&&(a[u+e]=o[e])):a[u+e]=void 0}),O(o).forEach(function(e){m(i,e)||(a[u+e]=o[e])}),a}function zn(e,t){return\"delete\"===t.type?t.keys:t.keys||t.values.map(e.extractKey)}var Vn={stack:\"dbcore\",name:\"HooksMiddleware\",level:2,create:function(e){return _(_({},e),{table:function(r){var y=e.table(r),v=y.schema.primaryKey;return _(_({},y),{mutate:function(e){var t=P.trans,n=t.table(r).hook,h=n.deleting,d=n.creating,p=n.updating;switch(e.type){case\"add\":if(d.fire===g)break;return t._promise(\"readwrite\",function(){return a(e)},!0);case\"put\":if(d.fire===g&&p.fire===g)break;return t._promise(\"readwrite\",function(){return a(e)},!0);case\"delete\":if(h.fire===g)break;return t._promise(\"readwrite\",function(){return a(e)},!0);case\"deleteRange\":if(h.fire===g)break;return t._promise(\"readwrite\",function(){return function n(r,i,o){return y.query({trans:r,values:!1,query:{index:v,range:i},limit:o}).then(function(e){var t=e.result;return a({type:\"delete\",keys:t,trans:r}).then(function(e){return 0<e.numFailures?Promise.reject(e.failures[0]):t.length<o?{failures:[],numFailures:0,lastResult:void 0}:n(r,_(_({},i),{lower:t[t.length-1],lowerOpen:!0}),o)})})}(e.trans,e.range,1e4)},!0)}return y.mutate(e);function a(c){var e,t,n,l=P.trans,f=c.keys||zn(v,c);if(f)return\"delete\"!==(c=\"add\"===c.type||\"put\"===c.type?_(_({},c),{keys:f}):_({},c)).type&&(c.values=R([],c.values,!0)),c.keys&&(c.keys=R([],c.keys,!0)),e=y,n=f,(\"add\"===(t=c).type?Promise.resolve([]):e.getMany({trans:t.trans,keys:n,cache:\"immutable\"})).then(function(u){var s=f.map(function(e,t){var n,r,i,o=u[t],a={onerror:null,onsuccess:null};return\"delete\"===c.type?h.fire.call(a,e,o,l):\"add\"===c.type||void 0===o?(n=d.fire.call(a,e,c.values[t],l),null==e&&null!=n&&(c.keys[t]=e=n,v.outbound||b(c.values[t],v.keyPath,e))):(n=Un(o,c.values[t]),(r=p.fire.call(a,n,e,o,l))&&(i=c.values[t],Object.keys(r).forEach(function(e){m(i,e)?i[e]=r[e]:b(i,e,r[e])}))),a});return y.mutate(c).then(function(e){for(var t=e.failures,n=e.results,r=e.numFailures,e=e.lastResult,i=0;i<f.length;++i){var o=(n||f)[i],a=s[i];null==o?a.onerror&&a.onerror(t[i]):a.onsuccess&&a.onsuccess(\"put\"===c.type&&u[i]?c.values[i]:o)}return{failures:t,results:n,numFailures:r,lastResult:e}}).catch(function(t){return s.forEach(function(e){return e.onerror&&e.onerror(t)}),Promise.reject(t)})});throw new Error(\"Keys missing\")}}})}})}};function Wn(e,t,n){try{if(!t)return null;if(t.keys.length<e.length)return null;for(var r=[],i=0,o=0;i<t.keys.length&&o<e.length;++i)0===C(t.keys[i],e[o])&&(r.push(n?ee(t.values[i]):t.values[i]),++o);return r.length===e.length?r:null}catch(e){return null}}var Yn={stack:\"dbcore\",level:-1,create:function(t){return{table:function(e){var n=t.table(e);return _(_({},n),{getMany:function(t){var e;return t.cache?(e=Wn(t.keys,t.trans._cache,\"clone\"===t.cache))?K.resolve(e):n.getMany(t).then(function(e){return t.trans._cache={keys:t.keys,values:\"clone\"===t.cache?ee(e):e},e}):n.getMany(t)},mutate:function(e){return\"add\"!==e.type&&(e.trans._cache=null),n.mutate(e)}})}}}};function $n(e,t){return\"readonly\"===e.trans.mode&&!!e.subscr&&!e.trans.explicit&&\"disabled\"!==e.trans.db._options.cache&&!t.schema.primaryKey.outbound}function Qn(e,t){switch(e){case\"query\":return t.values&&!t.unique;case\"get\":case\"getMany\":case\"count\":case\"openCursor\":return!1}}var Gn={stack:\"dbcore\",level:0,name:\"Observability\",create:function(b){var g=b.schema.name,w=new q(b.MIN_KEY,b.MAX_KEY);return _(_({},b),{transaction:function(e,t,n){if(P.subscr&&\"readonly\"!==t)throw new k.ReadOnly(\"Readwrite transaction in liveQuery context. Querier source: \".concat(P.querier));return b.transaction(e,t,n)},table:function(d){function e(e){var t,e=e.query;return[t=e.index,new q(null!=(t=(e=e.range).lower)?t:b.MIN_KEY,null!=(t=e.upper)?t:b.MAX_KEY)]}var p=b.table(d),y=p.schema,v=y.primaryKey,t=y.indexes,c=v.extractKey,l=v.outbound,m=v.autoIncrement&&t.filter(function(e){return e.compound&&e.keyPath.includes(v.keyPath)}),n=_(_({},p),{mutate:function(a){function u(e){return e=\"idb://\".concat(g,\"/\").concat(d,\"/\").concat(e),n[e]||(n[e]=new q)}var e,o,s,t=a.trans,n=a.mutatedParts||(a.mutatedParts={}),r=u(\"\"),i=u(\":dels\"),c=a.type,l=\"deleteRange\"===a.type?[a.range]:\"delete\"===a.type?[a.keys]:a.values.length<50?[zn(v,a).filter(function(e){return e}),a.values]:[],f=l[0],l=l[1],h=a.trans._cache;return x(f)?(r.addKeys(f),(c=\"delete\"===c||f.length===l.length?Wn(f,h):null)||i.addKeys(f),(c||l)&&(e=u,o=c,s=l,y.indexes.forEach(function(t){var n=e(t.name||\"\");function r(e){return null!=e?t.extractKey(e):null}function i(e){t.multiEntry&&x(e)?e.forEach(function(e){return n.addKey(e)}):n.addKey(e)}(o||s).forEach(function(e,t){var n=o&&r(o[t]),t=s&&r(s[t]);0!==C(n,t)&&(null!=n&&i(n),null!=t)&&i(t)})}))):f?(l={from:null!=(h=f.lower)?h:b.MIN_KEY,to:null!=(c=f.upper)?c:b.MAX_KEY},i.add(l),r.add(l)):(r.add(w),i.add(w),y.indexes.forEach(function(e){return u(e.name).add(w)})),p.mutate(a).then(function(o){return!f||\"add\"!==a.type&&\"put\"!==a.type||(r.addKeys(o.results),m&&m.forEach(function(t){for(var e=a.values.map(function(e){return t.extractKey(e)}),n=t.keyPath.findIndex(function(e){return e===v.keyPath}),r=0,i=o.results.length;r<i;++r)e[r][n]=o.results[r];u(t.name).addKeys(e)})),t.mutatedParts=Cn(t.mutatedParts||{},n),o})}}),f={get:function(e){return[v,new q(e.key)]},getMany:function(e){return[v,(new q).addKeys(e.keys)]},count:e,query:e,openCursor:e};return O(f).forEach(function(s){n[s]=function(i){var e=P.subscr,t=!!e,n=$n(P,p)&&Qn(s,i)?i.obsSet={}:e;if(t){var o,e=function(e){e=\"idb://\".concat(g,\"/\").concat(d,\"/\").concat(e);return n[e]||(n[e]=new q)},a=e(\"\"),u=e(\":dels\"),t=f[s](i),r=t[0],t=t[1];if((\"query\"===s&&r.isPrimaryKey&&!i.values?u:e(r.name||\"\")).add(t),!r.isPrimaryKey){if(\"count\"!==s)return o=\"query\"===s&&l&&i.values&&p.query(_(_({},i),{values:!1})),p[s].apply(this,arguments).then(function(t){if(\"query\"===s){if(l&&i.values)return o.then(function(e){e=e.result;return a.addKeys(e),t});var e=i.values?t.result.map(c):t.result;(i.values?a:u).addKeys(e)}else{var n,r;if(\"openCursor\"===s)return r=i.values,(n=t)&&Object.create(n,{key:{get:function(){return u.addKey(n.primaryKey),n.key}},primaryKey:{get:function(){var e=n.primaryKey;return u.addKey(e),e}},value:{get:function(){return r&&a.addKey(n.primaryKey),n.value}}})}return t});u.add(w)}}return p[s].apply(this,arguments)}}),n}})}};function Xn(e,t,n){var r;return 0===n.numFailures?t:\"deleteRange\"===t.type||(r=t.keys?t.keys.length:\"values\"in t&&t.values?t.values.length:1,n.numFailures===r)?null:(r=_({},t),x(r.keys)&&(r.keys=r.keys.filter(function(e,t){return!(t in n.failures)})),\"values\"in r&&x(r.values)&&(r.values=r.values.filter(function(e,t){return!(t in n.failures)})),r)}function Hn(e,t){return n=e,(void 0===(r=t).lower||(r.lowerOpen?0<C(n,r.lower):0<=C(n,r.lower)))&&(n=e,void 0===(r=t).upper||(r.upperOpen?C(n,r.upper)<0:C(n,r.upper)<=0));var n,r}function Jn(e,d,t,n,r,i){var o,p,y,v,m,a,u;return!t||0===t.length||(o=d.query.index,p=o.multiEntry,y=d.query.range,v=n.schema.primaryKey.extractKey,m=o.extractKey,a=(o.lowLevelIndex||o).extractKey,(n=t.reduce(function(e,t){var n=e,r=[];if(\"add\"===t.type||\"put\"===t.type)for(var i=new q,o=t.values.length-1;0<=o;--o){var a,u=t.values[o],s=v(u);!i.hasKey(s)&&(a=m(u),p&&x(a)?a.some(function(e){return Hn(e,y)}):Hn(a,y))&&(i.addKey(s),r.push(u))}switch(t.type){case\"add\":var c=(new q).addKeys(d.values?e.map(function(e){return v(e)}):e),n=e.concat(d.values?r.filter(function(e){e=v(e);return!c.hasKey(e)&&(c.addKey(e),!0)}):r.map(function(e){return v(e)}).filter(function(e){return!c.hasKey(e)&&(c.addKey(e),!0)}));break;case\"put\":var l=(new q).addKeys(t.values.map(function(e){return v(e)}));n=e.filter(function(e){return!l.hasKey(d.values?v(e):e)}).concat(d.values?r:r.map(function(e){return v(e)}));break;case\"delete\":var f=(new q).addKeys(t.keys);n=e.filter(function(e){return!f.hasKey(d.values?v(e):e)});break;case\"deleteRange\":var h=t.range;n=e.filter(function(e){return!Hn(v(e),h)})}return n},e))===e)?e:(u=function(e,t){return C(a(e),a(t))||C(v(e),v(t))},n.sort(\"prev\"===d.direction||\"prevunique\"===d.direction?function(e,t){return u(t,e)}:u),d.limit&&d.limit<1/0&&(n.length>d.limit?n.length=d.limit:e.length===d.limit&&n.length<d.limit&&(r.dirty=!0)),i?Object.freeze(n):n)}function Zn(e,t){return 0===C(e.lower,t.lower)&&0===C(e.upper,t.upper)&&!!e.lowerOpen==!!t.lowerOpen&&!!e.upperOpen==!!t.upperOpen}function er(e,t){return((e,t,n,r)=>{if(void 0===e)return void 0!==t?-1:0;if(void 0===t)return 1;if(0===(e=C(e,t))){if(n&&r)return 0;if(n)return 1;if(r)return-1}return e})(e.lower,t.lower,e.lowerOpen,t.lowerOpen)<=0&&0<=((e,t,n,r)=>{if(void 0===e)return void 0!==t?1:0;if(void 0===t)return-1;if(0===(e=C(e,t))){if(n&&r)return 0;if(n)return-1;if(r)return 1}return e})(e.upper,t.upper,e.upperOpen,t.upperOpen)}function tr(n,r,i,e){n.subscribers.add(i),e.addEventListener(\"abort\",function(){var e,t;n.subscribers.delete(i),0===n.subscribers.size&&(e=n,t=r,setTimeout(function(){0===e.subscribers.size&&oe(t,e)},3e3))})}var nr={stack:\"dbcore\",level:0,name:\"Cache\",create:function(k){var O=k.schema.name;return _(_({},k),{transaction:function(g,w,e){var _,t,x=k.transaction(g,w,e);return\"readwrite\"===w&&(e=(_=new AbortController).signal,x.addEventListener(\"abort\",(t=function(b){return function(){if(_.abort(),\"readwrite\"===w){for(var t=new Set,e=0,n=g;e<n.length;e++){var r=n[e],i=Tn[\"idb://\".concat(O,\"/\").concat(r)];if(i){var o=k.table(r),a=i.optimisticOps.filter(function(e){return e.trans===x});if(x._explicit&&b&&x.mutatedParts)for(var u=0,s=Object.values(i.queries.query);u<s.length;u++)for(var c=0,l=(d=s[u]).slice();c<l.length;c++)jn((p=l[c]).obsSet,x.mutatedParts)&&(oe(d,p),p.subscribers.forEach(function(e){return t.add(e)}));else if(0<a.length){i.optimisticOps=i.optimisticOps.filter(function(e){return e.trans!==x});for(var f=0,h=Object.values(i.queries.query);f<h.length;f++)for(var d,p,y,v=0,m=(d=h[f]).slice();v<m.length;v++)null!=(p=m[v]).res&&x.mutatedParts&&(b&&!p.dirty?(y=Object.isFrozen(p.res),y=Jn(p.res,p.req,a,o,p,y),p.dirty?(oe(d,p),p.subscribers.forEach(function(e){return t.add(e)})):y!==p.res&&(p.res=y,p.promise=K.resolve({result:y}))):(p.dirty&&oe(d,p),p.subscribers.forEach(function(e){return t.add(e)})))}}}t.forEach(function(e){return e()})}}})(!1),{signal:e}),x.addEventListener(\"error\",t(!1),{signal:e}),x.addEventListener(\"complete\",t(!0),{signal:e})),x},table:function(s){var c=k.table(s),i=c.schema.primaryKey;return _(_({},c),{mutate:function(t){var n,e=P.trans;return!i.outbound&&\"disabled\"!==e.db._options.cache&&!e.explicit&&\"readwrite\"===e.idbtrans.mode&&(n=Tn[\"idb://\".concat(O,\"/\").concat(s)])?(e=c.mutate(t),\"add\"!==t.type&&\"put\"!==t.type||!(50<=t.values.length||zn(i,t).some(function(e){return null==e}))?(n.optimisticOps.push(t),t.mutatedParts&&Dn(t.mutatedParts),e.then(function(e){0<e.numFailures&&(oe(n.optimisticOps,t),(e=Xn(0,t,e))&&n.optimisticOps.push(e),t.mutatedParts)&&Dn(t.mutatedParts)}),e.catch(function(){oe(n.optimisticOps,t),t.mutatedParts&&Dn(t.mutatedParts)})):e.then(function(r){var e=Xn(0,_(_({},t),{values:t.values.map(function(e,t){var n;return r.failures[t]?e:(b(n=null!=(n=i.keyPath)&&n.includes(\".\")?ee(e):_({},e),i.keyPath,r.results[t]),n)})}),r);n.optimisticOps.push(e),queueMicrotask(function(){return t.mutatedParts&&Dn(t.mutatedParts)})}),e):c.mutate(t)},query:function(t){var i,e,n,r,o,a,u;return $n(P,c)&&Qn(\"query\",t)?(i=\"immutable\"===(null==(n=P.trans)?void 0:n.db._options.cache),e=(n=P).requery,n=n.signal,a=((e,t,n,r)=>{var i=Tn[\"idb://\".concat(e,\"/\").concat(t)];if(!i)return[];if(!(e=i.queries[n]))return[null,!1,i,null];var o=e[(r.query?r.query.index.name:null)||\"\"];if(!o)return[null,!1,i,null];switch(n){case\"query\":var a=null!=(u=r.direction)?u:\"next\",u=o.find(function(e){var t;return e.req.limit===r.limit&&e.req.values===r.values&&(null!=(t=e.req.direction)?t:\"next\")===a&&Zn(e.req.query.range,r.query.range)});return u?[u,!0,i,o]:[o.find(function(e){var t;return(\"limit\"in e.req?e.req.limit:1/0)>=r.limit&&(null!=(t=e.req.direction)?t:\"next\")===a&&(!r.values||e.req.values)&&er(e.req.query.range,r.query.range)}),!1,i,o];case\"count\":u=o.find(function(e){return Zn(e.req.query.range,r.query.range)});return[u,!!u,i,o]}})(O,s,\"query\",t),u=a[0],r=a[2],o=a[3],u&&a[1]?u.obsSet=t.obsSet:(a=c.query(t).then(function(e){var t=e.result;if(u&&(u.res=t),i){for(var n=0,r=t.length;n<r;++n)Object.freeze(t[n]);Object.freeze(t)}return e}).catch(function(e){return o&&u&&oe(o,u),Promise.reject(e)}),u={obsSet:t.obsSet,promise:a,subscribers:new Set,type:\"query\",req:t,dirty:!1},o?o.push(u):(o=[u],(r=r||(Tn[\"idb://\".concat(O,\"/\").concat(s)]={queries:{query:{},count:{}},objs:new Map,optimisticOps:[],unsignaledParts:{}})).queries.query[t.query.index.name||\"\"]=o)),tr(u,o,e,n),u.promise.then(function(e){e=Jn(e.result,t,null==r?void 0:r.optimisticOps,c,u,i);return{result:i?e:ee(e)}})):c.query(t)}})}})}};function rr(e,r){return new Proxy(e,{get:function(e,t,n){return\"db\"===t?r:Reflect.get(e,t,n)}})}D.prototype.version=function(t){if(isNaN(t)||t<.1)throw new k.Type(\"Given version is not a positive number\");if(t=Math.round(10*t)/10,this.idbdb||this._state.isBeingOpened)throw new k.Schema(\"Cannot add version when database is open\");this.verno=Math.max(this.verno,t);var e=this._versions,n=e.filter(function(e){return e._cfg.version===t})[0];return n||(n=new this.Version(t),e.push(n),e.sort(un),n.stores({}),this._state.autoSchema=!1),n},D.prototype._whenReady=function(e){var n=this;return this.idbdb&&(this._state.openComplete||P.letThrough||this._vip)?e():new K(function(e,t){if(n._state.openComplete)return t(new k.DatabaseClosed(n._state.dbOpenError));if(!n._state.isBeingOpened){if(!n._state.autoOpen)return void t(new k.DatabaseClosed);n.open().catch(g)}n._state.dbReadyPromise.then(e,t)}).then(e)},D.prototype.use=function(e){var t=e.stack,n=e.create,r=e.level,e=e.name,i=(e&&this.unuse({stack:t,name:e}),this._middlewares[t]||(this._middlewares[t]=[]));return i.push({stack:t,create:n,level:null==r?10:r,name:e}),i.sort(function(e,t){return e.level-t.level}),this},D.prototype.unuse=function(e){var t=e.stack,n=e.name,r=e.create;return t&&this._middlewares[t]&&(this._middlewares[t]=this._middlewares[t].filter(function(e){return r?e.create!==r:!!n&&e.name!==n})),this},D.prototype.open=function(){var e=this;return at(s,function(){return Fn(e)})},D.prototype._close=function(){this.on.close.fire(new CustomEvent(\"close\"));var n=this._state;if(gn.remove(this),this.idbdb){try{this.idbdb.close()}catch(e){}this.idbdb=null}n.isBeingOpened||(n.dbReadyPromise=new K(function(e){n.dbReadyResolve=e}),n.openCanceller=new K(function(e,t){n.cancelOpen=t}))},D.prototype.close=function(e){var e=(void 0===e?{disableAutoOpen:!0}:e).disableAutoOpen,t=this._state;e?(t.isBeingOpened&&t.cancelOpen(new k.DatabaseClosed),this._close(),t.autoOpen=!1,t.dbOpenError=new k.DatabaseClosed):(this._close(),t.autoOpen=this._options.autoOpen||t.isBeingOpened,t.openComplete=!1,t.dbOpenError=null)},D.prototype.delete=function(n){var i=this,o=(void 0===n&&(n={disableAutoOpen:!0}),0<arguments.length&&\"object\"!=typeof arguments[0]),a=this._state;return new K(function(r,t){function e(){i.close(n);var e=i._deps.indexedDB.deleteDatabase(i.name);e.onsuccess=E(function(){var e,t,n;e=i._deps,t=i.name,_n(n=e.indexedDB)||t===ft||wn(n,e.IDBKeyRange).delete(t).catch(g),r()}),e.onerror=I(t),e.onblocked=i._fireOnBlocked}if(o)throw new k.InvalidArgument(\"Invalid closeOptions argument to db.delete()\");a.isBeingOpened?a.dbReadyPromise.then(e):e()})},D.prototype.backendDB=function(){return this.idbdb},D.prototype.isOpen=function(){return null!==this.idbdb},D.prototype.hasBeenClosed=function(){var e=this._state.dbOpenError;return e&&\"DatabaseClosed\"===e.name},D.prototype.hasFailed=function(){return null!==this._state.dbOpenError},D.prototype.dynamicallyOpened=function(){return this._state.autoSchema},Object.defineProperty(D.prototype,\"tables\",{get:function(){var t=this;return O(this._allTables).map(function(e){return t._allTables[e]})},enumerable:!1,configurable:!0}),D.prototype.transaction=function(){var e=function(e,t,n){var r=arguments.length;if(r<2)throw new k.InvalidArgument(\"Too few arguments\");for(var i=new Array(r-1);--r;)i[r-1]=arguments[r];return n=i.pop(),[e,H(i),n]}.apply(this,arguments);return this._transaction.apply(this,e)},D.prototype._transaction=function(e,t,n){var r,i,o=this,a=P.trans,u=(a&&a.db===this&&-1===e.indexOf(\"!\")||(a=null),-1!==e.indexOf(\"?\"));e=e.replace(\"!\",\"\").replace(\"?\",\"\");try{if(i=t.map(function(e){e=e instanceof o.Table?e.name:e;if(\"string\"!=typeof e)throw new TypeError(\"Invalid table argument to Dexie.transaction(). Only Table or String are allowed\");return e}),\"r\"==e||e===ht)r=ht;else{if(\"rw\"!=e&&e!=dt)throw new k.InvalidArgument(\"Invalid transaction mode: \"+e);r=dt}if(a){if(a.mode===ht&&r===dt){if(!u)throw new k.SubTransaction(\"Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY\");a=null}a&&i.forEach(function(e){if(a&&-1===a.storeNames.indexOf(e)){if(!u)throw new k.SubTransaction(\"Table \"+e+\" not included in parent transaction.\");a=null}}),u&&a&&!a.active&&(a=null)}}catch(n){return a?a._promise(null,function(e,t){t(n)}):S(n)}var s=function i(o,a,u,s,c){return K.resolve().then(function(){var e=P.transless||P,t=o._createTransaction(a,u,o._dbSchema,s),e=(t.explicit=!0,{trans:t,transless:e});if(s)t.idbtrans=s.idbtrans;else try{t.create(),t.idbtrans._explicit=!0,o._state.PR1398_maxLoop=3}catch(e){return e.name===de.InvalidState&&o.isOpen()&&0<--o._state.PR1398_maxLoop?(console.warn(\"Dexie: Need to reopen db\"),o.close({disableAutoOpen:!1}),o.open().then(function(){return i(o,a,u,null,c)})):S(e)}var n,r=ue(c),e=(r&&nt(),K.follow(function(){var e;(n=c.call(t,t))&&(r?(e=w.bind(null,null),n.then(e,e)):\"function\"==typeof n.next&&\"function\"==typeof n.throw&&(n=Nn(n)))},e));return(n&&\"function\"==typeof n.then?K.resolve(n).then(function(e){return t.active?e:S(new k.PrematureCommit(\"Transaction committed too early. See http://bit.ly/2kdckMn\"))}):e.then(function(){return n})).then(function(e){return s&&t._resolve(),t._completion.then(function(){return e})}).catch(function(e){return t._reject(e),S(e)})})}.bind(null,this,r,i,a,n);return a?a._promise(r,s,\"lock\"):P.trans?at(P.transless,function(){return o._whenReady(s)}):this._whenReady(s)},D.prototype.table=function(e){if(m(this._allTables,e))return this._allTables[e];throw new k.InvalidTable(\"Table \".concat(e,\" does not exist\"))};var y=D;function D(e,t){var o,r,a,n,i,u=this,s=(this._middlewares={},this.verno=0,D.dependencies),s=(this._options=t=_({addons:D.addons,autoOpen:!0,indexedDB:s.indexedDB,IDBKeyRange:s.IDBKeyRange,cache:\"cloned\",maxConnections:1e3},t),this._deps={indexedDB:t.indexedDB,IDBKeyRange:t.IDBKeyRange},t.addons),c=(this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this,{dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:g,dbReadyPromise:null,cancelOpen:g,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3,autoOpen:t.autoOpen}),l=(c.dbReadyPromise=new K(function(e){c.dbReadyResolve=e}),c.openCanceller=new K(function(e,t){c.cancelOpen=t}),this._state=c,this.name=e,this.on=Pt(this,\"populate\",\"blocked\",\"versionchange\",\"close\",{ready:[ke,g]}),this.once=function(n,r){var i=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];u.on(n).unsubscribe(i),r.apply(u,e)};return u.on(n,i)},this.on.ready.subscribe=Y(this.on.ready.subscribe,function(i){return function(n,r){D.vip(function(){var t,e=u._state;e.openComplete?(e.dbOpenError||K.resolve().then(n),r&&i(n)):e.onReadyBeingFired?(e.onReadyBeingFired.push(n),r&&i(n)):(i(n),t=u,r||i(function e(){t.on.ready.unsubscribe(n),t.on.ready.unsubscribe(e)}))})}}),this.Collection=(o=this,Kt(qt.prototype,function(e,t){this.db=o;var n=yt,r=null;if(t)try{n=t()}catch(e){r=e}var t=e._ctx,e=t.table,i=e.hook.reading.fire;this._ctx={table:e,index:t.index,isPrimKey:!t.index||e.schema.primKey.keyPath&&t.index===e.schema.primKey.name,range:n,keysOnly:!1,dir:\"next\",unique:\"\",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:r,or:t.or,valueMapper:i!==ve?i:null}})),this.Table=(r=this,Kt(Ot.prototype,function(e,t,n){this.db=r,this._tx=n,this.name=e,this.schema=t,this.hook=r._allTables[e]?r._allTables[e].hook:Pt(null,{creating:[ge,g],reading:[me,ve],updating:[_e,g],deleting:[we,g]})})),this.Transaction=(a=this,Kt(Yt.prototype,function(e,t,n,r,i){var o=this;\"readonly\"!==e&&t.forEach(function(e){e=null==(e=n[e])?void 0:e.yProps;e&&(t=t.concat(e.map(function(e){return e.updatesTable})))}),this.db=a,this.mode=e,this.storeNames=t,this.schema=n,this.chromeTransactionDurability=r,this.idbtrans=null,this.on=Pt(this,\"complete\",\"error\",\"abort\"),this.parent=i||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new K(function(e,t){o._resolve=e,o._reject=t}),this._completion.then(function(){o.active=!1,o.on.complete.fire()},function(e){var t=o.active;return o.active=!1,o.on.error.fire(e),o.parent?o.parent._reject(e):t&&o.idbtrans&&o.idbtrans.abort(),S(e)})})),this.Version=(n=this,Kt(mn.prototype,function(e){this.db=n,this._cfg={version:e,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})),this.WhereClause=(i=this,Kt(Lt.prototype,function(e,t,n){if(this.db=i,this._ctx={table:e,index:\":id\"===t?null:t,or:n},this._cmp=this._ascending=C,this._descending=function(e,t){return C(t,e)},this._max=function(e,t){return 0<C(e,t)?e:t},this._min=function(e,t){return C(e,t)<0?e:t},this._IDBKeyRange=i._deps.IDBKeyRange,!this._IDBKeyRange)throw new k.MissingAPI})),this.on(\"versionchange\",function(e){0<e.newVersion?console.warn(\"Another connection wants to upgrade database '\".concat(u.name,\"'. Closing db now to resume the upgrade.\")):console.warn(\"Another connection wants to delete database '\".concat(u.name,\"'. Closing db now to resume the delete request.\")),u.close({disableAutoOpen:!1})}),this.on(\"blocked\",function(e){!e.newVersion||e.newVersion<e.oldVersion?console.warn(\"Dexie.delete('\".concat(u.name,\"') was blocked\")):console.warn(\"Upgrade '\".concat(u.name,\"' blocked by other connection holding version \").concat(e.oldVersion/10))}),this._maxKey=Xt(t.IDBKeyRange),this._createTransaction=function(e,t,n,r){return new u.Transaction(e,t,n,u._options.chromeTransactionDurability,r)},this._fireOnBlocked=function(t){u.on(\"blocked\").fire(t),gn.toArray().filter(function(e){return e.name===u.name&&e!==u&&!e._state.vcFired}).map(function(e){return e.on(\"versionchange\").fire(t)})},this.use(Yn),this.use(nr),this.use(Gn),this.use(Ln),this.use(Vn),new Proxy(this,{get:function(e,t,n){var r;return\"_vip\"===t||(\"table\"===t?function(e){return rr(u.table(e),l)}:(r=Reflect.get(e,t,n))instanceof Ot?rr(r,l):\"tables\"===t?r.map(function(e){return rr(e,l)}):\"_createTransaction\"===t?function(){return rr(r.apply(this,arguments),l)}:r)}}));this.vip=l,s.forEach(function(e){return e(u)})}var ir,Se=\"undefined\"!=typeof Symbol&&\"observable\"in Symbol?Symbol.observable:\"@@observable\",or=(ar.prototype.subscribe=function(e,t,n){return this._subscribe(e&&\"function\"!=typeof e?e:{next:e,error:t,complete:n})},ar.prototype[Se]=function(){return this},ar);function ar(e){this._subscribe=e}try{ir={indexedDB:f.indexedDB||f.mozIndexedDB||f.webkitIndexedDB||f.msIndexedDB,IDBKeyRange:f.IDBKeyRange||f.webkitIDBKeyRange}}catch(e){ir={indexedDB:null,IDBKeyRange:null}}function ur(d){var p,y=!1,e=new or(function(r){var i=ue(d);var o,a=!1,u={},s={},e={get closed(){return a},unsubscribe:function(){a||(a=!0,o&&o.abort(),c&&Wt.storagemutated.unsubscribe(h))}},c=(r.start&&r.start(e),!1),l=function(){return st(t)};function f(){return jn(s,u)}var h=function(e){Cn(u,e),f()&&l()},t=function(){var t,n,e;!a&&ir.indexedDB&&(u={},t={},o&&o.abort(),o=new AbortController,e=(e=>{var t=$e();try{i&&nt();var n=v(d,e);return n=i?n.finally(w):n}finally{t&&Qe()}})(n={subscr:t,signal:o.signal,requery:l,querier:d,trans:null}),c||(Wt.storagemutated.subscribe(h),c=!0),Promise.resolve(e).then(function(e){y=!0,p=e,a||n.signal.aborted||(f()||(s=t,f())?l():(u={},st(function(){return!a&&r.next&&r.next(e)})))},function(e){y=!1,[\"DatabaseClosedError\",\"AbortError\"].includes(null==e?void 0:e.name)||a||st(function(){a||r.error&&r.error(e)})}))};return setTimeout(l,0),e});return e.hasValue=function(){return y},e.getValue=function(){return p},e}var sr=y;function cr(e){var t=fr;try{fr=!0,Wt.storagemutated.fire(e),Bn(e,!0)}finally{fr=t}}M(sr,_(_({},e),{delete:function(e){return new sr(e,{addons:[]}).delete()},exists:function(e){return new sr(e,{addons:[]}).open().then(function(e){return e.close(),!0}).catch(\"NoSuchDatabaseError\",function(){return!1})},getDatabaseNames:function(e){try{return t=sr.dependencies,n=t.indexedDB,t=t.IDBKeyRange,(_n(n)?Promise.resolve(n.databases()).then(function(e){return e.map(function(e){return e.name}).filter(function(e){return e!==ft})}):wn(n,t).toCollection().primaryKeys()).then(e)}catch(e){return S(new k.MissingAPI)}var t,n},defineClass:function(){return function(e){a(this,e)}},ignoreTransaction:function(e){return P.trans?at(P.transless||s,e):e()},vip:xn,async:function(t){return function(){try{var e=Nn(t.apply(this,arguments));return e&&\"function\"==typeof e.then?e:K.resolve(e)}catch(e){return S(e)}}},spawn:function(e,t,n){try{var r=Nn(e.apply(n,t||[]));return r&&\"function\"==typeof r.then?r:K.resolve(r)}catch(e){return S(e)}},currentTransaction:{get:function(){return P.trans||null}},waitFor:function(e,t){e=K.resolve(\"function\"==typeof e?sr.ignoreTransaction(e):e).timeout(t||6e4);return P.trans?P.trans.waitFor(e):e},Promise:K,debug:{get:function(){return l},set:function(e){Oe(e)}},derive:U,extend:a,props:M,override:Y,Events:Pt,on:Wt,liveQuery:ur,extendObservabilitySet:Cn,getByKeyPath:c,setByKeyPath:b,delByKeyPath:function(t,e){\"string\"==typeof e?b(t,e,void 0):\"length\"in e&&[].map.call(e,function(e){b(t,e,void 0)})},shallowClone:G,deepClone:ee,getObjectDiff:Un,cmp:C,asap:Q,minKey:-1/0,addons:[],connections:{get:gn.toArray},errnames:de,dependencies:ir,cache:Tn,semVer:\"4.4.4\",version:\"4.4.4\".split(\".\").map(function(e){return parseInt(e)}).reduce(function(e,t,n){return e+t/Math.pow(10,2*n)})})),sr.maxKey=Xt(sr.dependencies.IDBKeyRange),\"undefined\"!=typeof dispatchEvent&&\"undefined\"!=typeof addEventListener&&(Wt(zt,function(e){fr||(e=new CustomEvent(Vt,{detail:e}),fr=!0,dispatchEvent(e),fr=!1)}),addEventListener(Vt,function(e){e=e.detail;fr||cr(e)}));var lr,fr=!1,hr=function(){};return\"undefined\"!=typeof BroadcastChannel&&((hr=function(){(lr=new BroadcastChannel(Vt)).onmessage=function(e){return e.data&&cr(e.data)}})(),\"function\"==typeof lr.unref&&lr.unref(),Wt(zt,function(e){fr||lr.postMessage(e)})),\"undefined\"!=typeof addEventListener&&(addEventListener(\"pagehide\",function(e){if(!y.disableBfCache&&e.persisted){l&&console.debug(\"Dexie: handling persisted pagehide\"),null!=lr&&lr.close();for(var t=0,n=gn.toArray();t<n.length;t++)n[t].close({disableAutoOpen:!1})}}),addEventListener(\"pageshow\",function(e){!y.disableBfCache&&e.persisted&&(l&&console.debug(\"Dexie: handling persisted pageshow\"),hr(),cr({all:new q(-1/0,[[]])}))})),K.rejectionMapper=function(e,t){return!e||e instanceof ce||e instanceof TypeError||e instanceof SyntaxError||!e.name||!ye[e.name]?e:(t=new ye[e.name](t||e.message,e),\"stack\"in e&&u(t,\"stack\",{get:function(){return this.inner.stack}}),t)},Oe(l),_(y,Object.freeze({__proto__:null,DEFAULT_MAX_CONNECTIONS:1e3,Dexie:y,Entity:mt,PropModification:_t,RangeSet:q,add:function(e){return new _t({add:e})},cmp:C,default:y,liveQuery:ur,mergeRanges:Pn,rangesOverlap:Kn,remove:function(e){return new _t({remove:e})},replacePrefix:function(e,t){return new _t({replacePrefix:[e,t]})}}),{default:y}),y});\n//# sourceMappingURL=dexie.min.js.map","// Making the module version consumable via require - to prohibit\n// multiple occurrancies of the same module in the same app\n// (dual package hazard, https://nodejs.org/api/packages.html#dual-package-hazard)\nimport _Dexie from \"./dist/dexie.min.js\";\nconst DexieSymbol = Symbol.for(\"Dexie\");\nconst Dexie = globalThis[DexieSymbol] || (globalThis[DexieSymbol] = _Dexie);\nif (_Dexie.semVer !== Dexie.semVer) {\n throw new Error(`Two different versions of Dexie loaded in the same app: ${_Dexie.semVer} and ${Dexie.semVer}`);\n}\nconst {\n liveQuery, mergeRanges, rangesOverlap, RangeSet, cmp, Entity,\n PropModification, replacePrefix, add, remove,\n DexieYProvider } = Dexie;\nexport { liveQuery, mergeRanges, rangesOverlap, RangeSet, cmp, Dexie, Entity,\n PropModification, replacePrefix, add, remove,\n DexieYProvider};\nexport default Dexie;\n","import Dexie, { type EntityTable } from 'dexie'\n\nimport { truncate } from '../utils'\n\n// ========== Conversation Types ==========\n\n/**\n * Serializable history event stored in a conversation.\n * Mirrors the agent's HistoricalEvent shape but is self-contained\n * so the UI package stays independent of @hao-gd/page-agent-core.\n */\nexport type ConversationHistoryEvent =\n\t| ConversationStepEvent\n\t| ConversationObservationEvent\n\t| ConversationUserTakeoverEvent\n\t| ConversationRetryEvent\n\t| ConversationErrorEvent\n\nexport interface ConversationStepEvent {\n\ttype: 'step'\n\tstepIndex: number\n\treflection: {\n\t\tevaluation_previous_goal?: string\n\t\tmemory?: string\n\t\tnext_goal?: string\n\t}\n\taction: {\n\t\tname: string\n\t\tinput: unknown\n\t\toutput: string\n\t}\n\tusage?: {\n\t\tpromptTokens: number\n\t\tcompletionTokens: number\n\t\ttotalTokens: number\n\t\tcachedTokens?: number\n\t\treasoningTokens?: number\n\t}\n\trawResponse?: unknown\n\trawRequest?: unknown\n}\n\nexport interface ConversationObservationEvent {\n\ttype: 'observation'\n\tcontent: string\n}\n\nexport interface ConversationUserTakeoverEvent {\n\ttype: 'user_takeover'\n}\n\nexport interface ConversationRetryEvent {\n\ttype: 'retry'\n\tmessage: string\n\tattempt: number\n\tmaxAttempts: number\n}\n\nexport interface ConversationErrorEvent {\n\ttype: 'error'\n\tmessage: string\n}\n\n/**\n * A single conversation representing one agent task session.\n */\nexport interface Conversation {\n\t/** Unique identifier */\n\tid: string\n\t/** Display title — derived from the first task or auto-generated */\n\ttitle: string\n\t/** Unix timestamp of creation */\n\tcreatedAt: number\n\t/** Unix timestamp of last modification */\n\tupdatedAt: number\n\t/** The original task description */\n\ttask: string\n\t/** Full history of agent events */\n\thistory: ConversationHistoryEvent[]\n\t/** Result of the most recent run, or null if never completed */\n\tlastResult: {\n\t\tsuccess: boolean\n\t\tdata: string\n\t\thistory?: ConversationHistoryEvent[]\n\t} | null\n\t/** Agent status at save time */\n\tstatus: 'idle' | 'running' | 'completed' | 'error' | 'stopped'\n}\n\n// ========== IndexedDB via Dexie ==========\n\nconst DB_NAME = 'page-agent-db'\nconst DB_VERSION = 1\n\nclass ConversationsDB extends Dexie {\n\tconversations!: EntityTable<Conversation, 'id'>\n\n\tconstructor() {\n\t\tsuper(DB_NAME)\n\t\tthis.version(DB_VERSION).stores({\n\t\t\tconversations: 'id, updatedAt',\n\t\t})\n\t}\n}\n\nconst db = new ConversationsDB()\n\n// ========== Storage API ==========\n\n/** localStorage key for tracking which conversation is currently active */\nconst ACTIVE_ID_KEY = 'page-agent-active-conversation'\n\n/**\n * Static helper for persisting and retrieving conversations via IndexedDB.\n *\n * Usage:\n * await ConversationStorage.save(conv)\n * const all = await ConversationStorage.list()\n * const active = await ConversationStorage.getActiveId()\n */\nexport const ConversationStorage = {\n\t/** List all conversations ordered by updatedAt descending (newest first). */\n\tasync list(): Promise<Conversation[]> {\n\t\treturn db.conversations.orderBy('updatedAt').reverse().toArray()\n\t},\n\n\t/** Get a single conversation by id. */\n\tasync get(id: string): Promise<Conversation | undefined> {\n\t\treturn db.conversations.get(id)\n\t},\n\n\t/** Insert or update a conversation. */\n\tasync save(conv: Conversation): Promise<void> {\n\t\tawait db.conversations.put(conv)\n\t},\n\n\t/** Delete a conversation by id. */\n\tasync delete(id: string): Promise<void> {\n\t\tawait db.conversations.delete(id)\n\t},\n\n\t/** Get the currently active conversation id from localStorage. */\n\tgetActiveId(): string | null {\n\t\ttry {\n\t\t\treturn localStorage.getItem(ACTIVE_ID_KEY)\n\t\t} catch {\n\t\t\treturn null\n\t\t}\n\t},\n\n\t/** Set the currently active conversation id in localStorage. */\n\tsetActiveId(id: string): void {\n\t\ttry {\n\t\t\tlocalStorage.setItem(ACTIVE_ID_KEY, id)\n\t\t} catch {\n\t\t\t// localStorage may be unavailable\n\t\t}\n\t},\n\n\t/** Clear the active conversation marker. */\n\tclearActiveId(): void {\n\t\ttry {\n\t\t\tlocalStorage.removeItem(ACTIVE_ID_KEY)\n\t\t} catch {\n\t\t\t// localStorage may be unavailable\n\t\t}\n\t},\n}\n\n// ========== Unique ID Generator ==========\n\n/** Generate a short unique id with an optional prefix. */\nexport function generateId(prefix: string): string {\n\tif (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {\n\t\treturn crypto.randomUUID()\n\t}\n\treturn `${prefix}_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 8)}`\n}\n\n/** Generate a short unique id for a conversation. */\nexport function generateConversationId(): string {\n\treturn generateId('conv')\n}\n\n/**\n * Derive a title from a task string: first line, truncated.\n */\nexport function deriveTitle(task: string): string {\n\tif (!task) return ''\n\tconst firstLine = task.split('\\n')[0].trim()\n\tif (!firstLine) return ''\n\treturn truncate(firstLine, 57)\n}\n","import Dexie, { type EntityTable } from 'dexie'\n\n// ========== Skill Storage Types ==========\n\n/**\n * Serializable tool definition stored in IndexedDB.\n * Mirrors PageAgentTool but with serializable fields only.\n */\nexport interface StoredTool {\n\tname: string\n\tdescription: string\n\tinputSchema: Record<string, unknown> // JSON Schema (serialized from Zod)\n\texecuteCode: string // Function source code string (new Function() to rebuild)\n}\n\n/**\n * Serializable skill definition stored in IndexedDB.\n */\nexport interface StoredSkill {\n\tid: string\n\tname: string\n\tdescription: string\n\tversion: string\n\ticon?: string\n\tauthor?: string\n\tsystemPromptFragment?: string\n\ttools?: StoredTool[]\n\tconfig?: Record<string, unknown>\n\tenabled: boolean\n\tcreatedAt: number\n\tupdatedAt: number\n}\n\n// ========== IndexedDB via Dexie ==========\n\nconst DB_NAME = 'page-agent-skills-db'\nconst DB_VERSION = 1\n\nclass SkillsDB extends Dexie {\n\tskills!: EntityTable<StoredSkill, 'id'>\n\n\tconstructor() {\n\t\tsuper(DB_NAME)\n\t\tthis.version(DB_VERSION).stores({\n\t\t\tskills: 'id, updatedAt, enabled',\n\t\t})\n\t}\n}\n\nconst db = new SkillsDB()\n\n// ========== Storage API ==========\n\n/**\n * Static helper for persisting and retrieving Skills via IndexedDB.\n * Mirrors ConversationStorage from conversations.ts.\n *\n * Usage:\n * await SkillStorage.save(skill)\n * const all = await SkillStorage.list()\n * const enabled = await SkillStorage.listEnabled()\n */\nexport const SkillStorage = {\n\t/** List all skills ordered by updatedAt descending (newest first). */\n\tasync list(): Promise<StoredSkill[]> {\n\t\treturn db.skills.orderBy('updatedAt').reverse().toArray()\n\t},\n\n\t/** List all enabled skills. */\n\tasync listEnabled(): Promise<StoredSkill[]> {\n\t\treturn db.skills.where('enabled').equals(1).toArray()\n\t},\n\n\t/** Get a single skill by id. */\n\tasync get(id: string): Promise<StoredSkill | undefined> {\n\t\treturn db.skills.get(id)\n\t},\n\n\t/** Insert or update a skill. */\n\tasync save(skill: StoredSkill): Promise<void> {\n\t\tawait db.skills.put(skill)\n\t},\n\n\t/** Batch save multiple skills. */\n\tasync saveAll(skills: StoredSkill[]): Promise<void> {\n\t\tawait db.skills.bulkPut(skills)\n\t},\n\n\t/** Delete a skill by id. */\n\tasync delete(id: string): Promise<void> {\n\t\tawait db.skills.delete(id)\n\t},\n\n\t/** Toggle the enabled state of a skill. */\n\tasync toggleEnabled(id: string, enabled: boolean): Promise<void> {\n\t\tawait db.skills.update(id, { enabled, updatedAt: Date.now() })\n\t},\n\n\t/** Update config for a skill. */\n\tasync updateConfig(id: string, config: Record<string, unknown>): Promise<void> {\n\t\tawait db.skills.update(id, { config, updatedAt: Date.now() })\n\t},\n\n\t/** Clear all skills. */\n\tasync clear(): Promise<void> {\n\t\tawait db.skills.clear()\n\t},\n\n\t/** Export a skill as JSON string. */\n\tasync exportJSON(id: string): Promise<string | null> {\n\t\tconst skill = await db.skills.get(id)\n\t\tif (!skill) return null\n\t\treturn JSON.stringify(skill, null, 2)\n\t},\n\n\t/** Import a skill from JSON string. */\n\tasync importJSON(json: string): Promise<StoredSkill> {\n\t\tconst parsed = JSON.parse(json) as StoredSkill\n\t\t// Validate required fields\n\t\tif (!parsed.id || !parsed.name || !parsed.version) {\n\t\t\tthrow new Error('Invalid skill JSON: missing required fields (id, name, version)')\n\t\t}\n\t\tconst now = Date.now()\n\t\tparsed.createdAt = parsed.createdAt || now\n\t\tparsed.updatedAt = now\n\t\tparsed.enabled = parsed.enabled ?? false\n\t\tawait db.skills.put(parsed)\n\t\treturn parsed\n\t},\n\n\t/** Get the total count of stored skills. */\n\tasync count(): Promise<number> {\n\t\treturn db.skills.count()\n\t},\n}\n\n// ========== Unique ID Generator ==========\n\n/** Generate a short unique id for a custom skill. */\nexport function generateSkillId(): string {\n\tif (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {\n\t\treturn `custom/${crypto.randomUUID()}`\n\t}\n\treturn `custom/${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 8)}`\n}\n","import { I18n, type SupportedLanguage } from '../i18n'\nimport { escapeHtml, truncate } from '../utils'\nimport { ModelSwitcher } from './ModelSwitcher'\nimport { createCard, createReflectionLines } from './cards'\nimport {\n\ttype Conversation,\n\tConversationStorage,\n\tderiveTitle,\n\tgenerateConversationId,\n\tgenerateId,\n} from './conversations'\nimport { SkillStorage, type StoredSkill, generateSkillId } from './skills-db'\nimport { resolveActiveModel } from './types'\nimport type {\n\tActiveLLMConfig,\n\tAgentActivity,\n\tPageAgentSettings,\n\tPanelAgentAdapter,\n\tProviderConfig,\n} from './types'\n\nimport styles from './Panel.module.css'\n\n/**\n * Panel configuration\n */\nexport interface PanelConfig {\n\tlanguage?: SupportedLanguage\n\t/**\n\t * Whether to prompt for next task after task completion\n\t * @default true\n\t */\n\tpromptForNextTask?: boolean\n\t/** Default model config values from agent initialization (used as form defaults) */\n\tdefaults?: {\n\t\tbaseURL?: string\n\t\tmodel?: string\n\t\tapiKey?: string\n\t\ttemperature?: number\n\t\tmaxSteps?: number\n\t}\n}\n\n/**\n * Agent control panel\n *\n * Architecture:\n * - History list: renders directly from agent.history (historical events)\n * - Header bar: shows activity events (transient state) and agent status\n * - Draggable: header acts as drag handle, position saved to localStorage\n * - Resizable: top-edge resize handle\n *\n * This separation ensures data consistency - history is the single source of truth\n * for what has been done, while activity shows what is happening now.\n */\nexport class Panel {\n\t#wrapper: HTMLElement\n\t#indicator: HTMLElement\n\t#statusText: HTMLElement\n\t#historySection: HTMLElement\n\t#expandButton: HTMLElement\n\t#actionButton: HTMLElement\n\t#inputSection: HTMLElement\n\t#taskInput: HTMLTextAreaElement\n\t#inputResizeHandle: HTMLElement\n\n\t// Dragging state\n\t#isDragging = false\n\t#dragStartX = 0\n\t#dragStartY = 0\n\t#panelStartLeft = 0\n\t#panelStartBottom = 0\n\n\t// Resizing state (width)\n\t#isResizing = false\n\t#resizeStartX = 0\n\t#resizeStartWidth = 0\n\n\t// Resizing state (input height)\n\t#isResizingInput = false\n\t#inputResizeStartY = 0\n\t#inputResizeStartHeight = 0\n\n\t#agent: PanelAgentAdapter\n\t#config: PanelConfig\n\t#isExpanded = false\n\t#i18n: I18n\n\t#userAnswerResolver: ((input: string) => void) | null = null\n\t#isWaitingForUserAnswer: boolean = false\n\t#headerUpdateTimer: ReturnType<typeof setInterval> | null = null\n\t#pendingHeaderText: string | null = null\n\t#isAnimating = false\n\t// Settings panel\n\t#settingsSection: HTMLElement\n\t#settingsBtn: HTMLElement\n\t#isSettingsVisible = false\n\t#settingsTabBtns: HTMLElement[] = []\n\t#expandedProviderIds = new Set<string>()\n\tstatic #SETTINGS_STORAGE_KEY = 'page-agent-settings'\n\n\t// Model switcher (quick-switch in header)\n\t#modelSwitcher: ModelSwitcher\n\t#modelSwitcherContainer: HTMLElement\n\n\t// Conversation management\n\t#conversationDropdownContainer: HTMLElement\n\t#conversationBtn: HTMLElement\n\t#conversationSection: HTMLElement\n\t#newConvBtn: HTMLElement\n\t#isConversationDropdownOpen = false\n\t#conversations: Conversation[] = []\n\t#activeConversationId: string | null = null\n\t#isRestoring = false\n\n\t// Event handlers (bound for removal)\n\t#onStatusChange = () => this.#handleStatusChange()\n\t#onHistoryChange = () => this.#handleHistoryChange()\n\t#onActivity = (e: Event) => this.#handleActivity((e as CustomEvent<AgentActivity>).detail)\n\t#onAgentDispose = () => this.dispose()\n\t#onMouseMove = (e: MouseEvent) => this.#handleMouseMove(e)\n\t#onMouseUp = () => this.#handleMouseUp()\n\t#onResizeMouseMove = (e: MouseEvent) => this.#handleWidthResizeMove(e)\n\t#onResizeMouseUp = () => this.#handleWidthResizeUp()\n\t#onInputResizeMouseMove = (e: MouseEvent) => this.#handleInputResizeMove(e)\n\t#onInputResizeMouseUp = () => this.#handleInputResizeUp()\n\t#onDocumentClick = (e: MouseEvent) => this.#handleDocumentClick(e)\n\n\tget wrapper(): HTMLElement {\n\t\treturn this.#wrapper\n\t}\n\n\t/**\n\t * Create a Panel bound to an agent\n\t * @param agent - Agent instance that implements PanelAgentAdapter\n\t * @param config - Optional panel configuration\n\t */\n\tconstructor(agent: PanelAgentAdapter, config: PanelConfig = {}) {\n\t\tthis.#agent = agent\n\t\tthis.#config = config\n\t\tthis.#i18n = new I18n(config.language ?? 'en-US')\n\n\t\t// Set up askUser callback on agent\n\t\tthis.#agent.onAskUser = (question, options) => this.#askUser(question, options?.signal)\n\n\t\t// Create UI elements\n\t\tthis.#wrapper = this.#createWrapper()\n\t\tthis.#indicator = this.#wrapper.querySelector(`.${styles.indicator}`)!\n\t\tthis.#statusText = this.#wrapper.querySelector(`.${styles.statusText}`)!\n\t\tthis.#historySection = this.#wrapper.querySelector(`.${styles.historySection}`)!\n\t\tthis.#expandButton = this.#wrapper.querySelector(`.${styles.expandButton}`)!\n\t\tthis.#actionButton = this.#wrapper.querySelector(`.${styles.stopButton}`)!\n\t\tthis.#inputSection = this.#wrapper.querySelector(`.${styles.inputSectionWrapper}`)!\n\t\tthis.#taskInput = this.#wrapper.querySelector(`.${styles.taskInput}`)!\n\t\tthis.#inputResizeHandle = this.#wrapper.querySelector(`.${styles.inputResizeHandle}`)!\n\t\tthis.#settingsSection = this.#wrapper.querySelector(`.${styles.settingsSection}`)!\n\t\tthis.#settingsBtn = this.#wrapper.querySelector(`.${styles.settingsBtn}`)!\n\n\t\tthis.#modelSwitcherContainer = this.#wrapper.querySelector(`.${styles.modelSwitcherContainer}`)!\n\t\tthis.#modelSwitcher = new ModelSwitcher({\n\t\t\tonModelSelect: (providerId, modelName) => this.#handleModelSwitch(providerId, modelName),\n\t\t\tonConfigure: () => this.#toggleSettings(),\n\t\t\tconfigureLabel: this.#i18n.t('ui.modelSwitcher.configureProviders'),\n\t\t})\n\t\tconst settings = this.#loadSettings()\n\t\tthis.#modelSwitcher.render(settings)\n\t\tthis.#modelSwitcherContainer.appendChild(this.#modelSwitcher.element)\n\n\t\t// Conversation elements\n\t\tthis.#conversationDropdownContainer = this.#wrapper.querySelector(\n\t\t\t`.${styles.conversationDropdown}`\n\t\t)!\n\t\tthis.#conversationBtn = this.#wrapper.querySelector(`.${styles.conversationBtn}`)!\n\t\tthis.#conversationSection = this.#wrapper.querySelector(`.${styles.conversationSection}`)!\n\t\tthis.#newConvBtn = this.#wrapper.querySelector(`.${styles.newConversationBtn}`)!\n\n\t\t// Listen to agent events\n\t\tthis.#agent.addEventListener('statuschange', this.#onStatusChange)\n\t\tthis.#agent.addEventListener('historychange', this.#onHistoryChange)\n\t\tthis.#agent.addEventListener('activity', this.#onActivity)\n\t\tthis.#agent.addEventListener('dispose', this.#onAgentDispose)\n\n\t\tthis.#setupEventListeners()\n\t\tthis.#syncHistoryToggleButton()\n\t\tthis.#startHeaderUpdateLoop()\n\n\t\t// Initialize conversations\n\t\tthis.#setupConversationEvents()\n\t\tthis.#initConversations()\n\n\t\tthis.#showInputArea()\n\t\tthis.#restorePanelPosition()\n\n\t\tthis.hide() // Start hidden\n\t}\n\n\t// ========== Agent event handlers ==========\n\n\t/** Handle agent status change */\n\t#handleStatusChange(): void {\n\t\tconst status = this.#agent.status\n\n\t\t// Map agent status to UI indicator. A `completed` run whose result reports\n\t\t// failure shows as error; other statuses map to their own indicator.\n\t\tconst failed = status === 'completed' && this.#agent.lastResult?.success === false\n\t\tthis.#updateStatusIndicator(failed ? 'error' : status)\n\n\t\t// Morph action button: running = stop (■), not running = close (X)\n\t\tif (status === 'running') {\n\t\t\tthis.#actionButton.textContent = '■'\n\t\t\tthis.#actionButton.title = this.#i18n.t('ui.panel.stop')\n\t\t} else {\n\t\t\tthis.#actionButton.textContent = 'X'\n\t\t\tthis.#actionButton.title = this.#i18n.t('ui.panel.close')\n\t\t}\n\n\t\t// Show/hide based on status\n\t\tif (status === 'running') {\n\t\t\tthis.show()\n\t\t\tthis.#hideInputArea() // Hide input while running\n\t\t}\n\n\t\t// Handle completion\n\t\tif (status === 'completed' || status === 'error' || status === 'stopped') {\n\t\t\tif (!this.#isRestoring && !this.#isExpanded) {\n\t\t\t\tthis.#expand()\n\t\t\t}\n\t\t\tif (this.#shouldShowInputArea()) {\n\t\t\t\tthis.#showInputArea()\n\t\t\t}\n\t\t\tif (!this.#isRestoring) {\n\t\t\t\tvoid this.#autoSaveOnTaskEnd()\n\t\t\t}\n\t\t}\n\t}\n\n\t/** Handle agent history change - re-render history list from agent.history */\n\t#handleHistoryChange(): void {\n\t\tthis.#renderHistory()\n\t}\n\n\t/**\n\t * Handle agent activity - transient state for immediate UI feedback\n\t * Activity events are NOT persisted in history, only used for header bar updates\n\t */\n\t#handleActivity(activity: AgentActivity): void {\n\t\tswitch (activity.type) {\n\t\t\tcase 'thinking':\n\t\t\t\tthis.#pendingHeaderText = this.#i18n.t('ui.panel.thinking')\n\t\t\t\tthis.#updateStatusIndicator('thinking')\n\t\t\t\tbreak\n\n\t\t\tcase 'executing':\n\t\t\t\tthis.#pendingHeaderText = this.#getToolExecutingText(activity.tool, activity.input)\n\t\t\t\tthis.#updateStatusIndicator('executing')\n\t\t\t\tbreak\n\n\t\t\tcase 'executed':\n\t\t\t\tthis.#pendingHeaderText = truncate(activity.output, 50)\n\t\t\t\tbreak\n\n\t\t\tcase 'retrying':\n\t\t\t\tthis.#pendingHeaderText = `Retrying (${activity.attempt}/${activity.maxAttempts})`\n\t\t\t\tthis.#updateStatusIndicator('retrying')\n\t\t\t\tbreak\n\n\t\t\tcase 'error':\n\t\t\t\tthis.#pendingHeaderText = truncate(activity.message, 50)\n\t\t\t\tthis.#updateStatusIndicator('error')\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\t/**\n\t * Ask for user input (internal, called by agent via onAskUser).\n\t * Rejects when `signal` aborts (task stopped or disposed), cleaning up the\n\t * question card and pending state so the agent loop can settle.\n\t */\n\t#askUser(question: string, signal?: AbortSignal): Promise<string> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t// Set `waiting for user answer` state\n\t\t\tthis.#isWaitingForUserAnswer = true\n\t\t\tthis.#userAnswerResolver = resolve\n\n\t\t\t// Expand history panel\n\t\t\tif (!this.#isExpanded) {\n\t\t\t\tthis.#expand()\n\t\t\t}\n\n\t\t\t// Add temporary question card so user can see the full question\n\t\t\tconst tempCard = document.createElement('div')\n\t\t\ttempCard.innerHTML = createCard({\n\t\t\t\ticon: '❓',\n\t\t\t\tcontent: `Question: ${question}`,\n\t\t\t\ttype: 'question',\n\t\t\t})\n\t\t\tconst cardElement = tempCard.firstElementChild as HTMLElement\n\t\t\tcardElement.setAttribute('data-temp-card', 'true')\n\t\t\tthis.#historySection.appendChild(cardElement)\n\t\t\tthis.#scrollToBottom()\n\n\t\t\tthis.#showInputArea(this.#getUserAnswerPlaceholder())\n\n\t\t\tsignal?.addEventListener(\n\t\t\t\t'abort',\n\t\t\t\t() => {\n\t\t\t\t\tthis.#removeTempCards()\n\t\t\t\t\tthis.#isWaitingForUserAnswer = false\n\t\t\t\t\tthis.#userAnswerResolver = null\n\t\t\t\t\t// reason is a DOMException AbortError (abort() takes no args).\n\t\t\t\t\treject(signal.reason as DOMException)\n\t\t\t\t},\n\t\t\t\t{ once: true }\n\t\t\t)\n\t\t})\n\t}\n\n\t/** Remove temporary question cards (only direct children for safety) */\n\t#removeTempCards(): void {\n\t\tArray.from(this.#historySection.children).forEach((child) => {\n\t\t\tif (child.getAttribute('data-temp-card') === 'true') {\n\t\t\t\tchild.remove()\n\t\t\t}\n\t\t})\n\t}\n\n\t// ========== Public control methods ==========\n\n\tshow(): void {\n\t\tthis.wrapper.style.display = 'block'\n\t\tvoid this.wrapper.offsetHeight\n\t\tthis.wrapper.style.opacity = '1'\n\t\t// Only reset transform if no custom position has been set\n\t\tif (!this.#hasCustomPosition()) {\n\t\t\tthis.wrapper.style.transform = 'translateX(-50%) translateY(0)'\n\t\t}\n\t}\n\n\thide(): void {\n\t\tthis.wrapper.style.opacity = '0'\n\t\tthis.wrapper.style.display = 'none'\n\t}\n\n\t#hasCustomPosition(): boolean {\n\t\treturn !!this.wrapper.style.left || !!this.wrapper.style.bottom\n\t}\n\n\treset(): void {\n\t\tthis.#statusText.textContent = this.#i18n.t('ui.panel.ready')\n\t\tthis.#updateStatusIndicator('thinking')\n\t\tthis.#renderHistory()\n\t\tthis.#collapse()\n\t\t// Reset user input state\n\t\tthis.#isWaitingForUserAnswer = false\n\t\tthis.#userAnswerResolver = null\n\t\t// Show input area\n\t\tthis.#showInputArea()\n\t}\n\n\texpand(): void {\n\t\tthis.#expand()\n\t}\n\n\tcollapse(): void {\n\t\tthis.#collapse()\n\t}\n\n\t/**\n\t * Dispose panel and clean up event listeners\n\t */\n\tdispose(): void {\n\t\t// Remove agent event listeners\n\t\tthis.#agent.removeEventListener('statuschange', this.#onStatusChange)\n\t\tthis.#agent.removeEventListener('historychange', this.#onHistoryChange)\n\t\tthis.#agent.removeEventListener('activity', this.#onActivity)\n\t\tthis.#agent.removeEventListener('dispose', this.#onAgentDispose)\n\n\t\tvoid this.#saveCurrentConversation()\n\t\tdocument.removeEventListener('click', this.#onDocumentClick)\n\n\t\t// Clean up UI\n\t\tthis.#isWaitingForUserAnswer = false\n\t\tthis.#stopHeaderUpdateLoop()\n\t\tthis.#modelSwitcher.dispose()\n\t\tthis.wrapper.remove()\n\t}\n\n\t// ========== Private methods ==========\n\n\t#getToolExecutingText(toolName: string, args: unknown): string {\n\t\tconst a = args as Record<string, string | number>\n\t\tswitch (toolName) {\n\t\t\tcase 'click_element_by_index':\n\t\t\t\treturn this.#i18n.t('ui.tools.clicking', { index: a.index })\n\t\t\tcase 'input_text':\n\t\t\t\treturn this.#i18n.t('ui.tools.inputting', { index: a.index })\n\t\t\tcase 'select_dropdown_option':\n\t\t\t\treturn this.#i18n.t('ui.tools.selecting', { text: a.text })\n\t\t\tcase 'scroll':\n\t\t\t\treturn this.#i18n.t('ui.tools.scrolling')\n\t\t\tcase 'wait':\n\t\t\t\treturn this.#i18n.t('ui.tools.waiting', { seconds: a.seconds })\n\t\t\tcase 'ask_user':\n\t\t\t\treturn this.#i18n.t('ui.tools.askingUser')\n\t\t\tcase 'done':\n\t\t\t\treturn this.#i18n.t('ui.tools.done')\n\t\t\tdefault:\n\t\t\t\treturn this.#i18n.t('ui.tools.executing', { toolName })\n\t\t}\n\t}\n\n\t/**\n\t * Action button handler: stop when running, close (dispose) when idle\n\t */\n\t#handleActionButton(): void {\n\t\tif (this.#agent.status === 'running') {\n\t\t\tthis.#agent.stop()\n\t\t} else {\n\t\t\tthis.#agent.dispose()\n\t\t}\n\t}\n\n\t/**\n\t * Submit task\n\t */\n\t#submitTask() {\n\t\tconst input = this.#taskInput.value.trim()\n\t\tif (!input) return\n\n\t\t// Hide input area\n\t\tthis.#hideInputArea()\n\n\t\tif (this.#isWaitingForUserAnswer) {\n\t\t\t// Handle user input mode\n\t\t\tthis.#handleUserAnswer(input)\n\t\t} else {\n\t\t\t// Execute task via agent\n\t\t\tthis.#agent.execute(input)\n\t\t}\n\t}\n\n\t/**\n\t * Handle user answer\n\t */\n\t#handleUserAnswer(input: string): void {\n\t\tthis.#removeTempCards()\n\n\t\t// Reset state\n\t\tthis.#isWaitingForUserAnswer = false\n\n\t\t// Call resolver to return user input\n\t\tif (this.#userAnswerResolver) {\n\t\t\tthis.#userAnswerResolver(input)\n\t\t\tthis.#userAnswerResolver = null\n\t\t}\n\t}\n\n\t/**\n\t * Show input area\n\t */\n\t#showInputArea(placeholder?: string): void {\n\t\t// Clear input field\n\t\tthis.#taskInput.value = ''\n\t\tthis.#taskInput.placeholder = placeholder || this.#getTaskInputPlaceholder()\n\t\tthis.#inputSection.classList.remove(styles.hidden)\n\t\t// Focus on input field\n\t\tsetTimeout(() => {\n\t\t\tthis.#taskInput.focus()\n\t\t}, 100)\n\t}\n\n\t/**\n\t * Hide input area\n\t */\n\t#hideInputArea(): void {\n\t\tthis.#inputSection.classList.add(styles.hidden)\n\t}\n\n\t#isWindowsPlatform(): boolean {\n\t\tconst navigatorWithUserAgentData = navigator as Navigator & {\n\t\t\tuserAgentData?: { platform?: string }\n\t\t}\n\t\tconst platform =\n\t\t\tnavigatorWithUserAgentData.userAgentData?.platform ||\n\t\t\tnavigator.platform ||\n\t\t\tnavigator.userAgent\n\t\treturn /win/i.test(platform)\n\t}\n\n\t#getTaskInputPlaceholder(): string {\n\t\treturn this.#isWindowsPlatform()\n\t\t\t? this.#i18n.t('ui.panel.taskInputWindows')\n\t\t\t: this.#i18n.t('ui.panel.taskInput')\n\t}\n\n\t#getUserAnswerPlaceholder(): string {\n\t\treturn this.#isWindowsPlatform()\n\t\t\t? this.#i18n.t('ui.panel.userAnswerPromptWindows')\n\t\t\t: this.#i18n.t('ui.panel.userAnswerPrompt')\n\t}\n\n\t/**\n\t * Check if input area should be shown\n\t */\n\t#shouldShowInputArea(): boolean {\n\t\t// Always show input area if waiting for user input\n\t\tif (this.#isWaitingForUserAnswer) return true\n\n\t\tconst history = this.#agent.history\n\t\tif (history.length === 0) {\n\t\t\treturn true // Initial state\n\t\t}\n\n\t\tconst status = this.#agent.status\n\t\tconst isTaskEnded = status === 'completed' || status === 'error' || status === 'stopped'\n\n\t\t// Only show input area after task completion if configured to do so\n\t\tif (isTaskEnded) {\n\t\t\treturn this.#config.promptForNextTask ?? true\n\t\t}\n\n\t\treturn false\n\t}\n\n\t#createWrapper(): HTMLElement {\n\t\tconst wrapper = document.createElement('div')\n\t\twrapper.id = 'page-agent-runtime_agent-panel'\n\t\twrapper.className = styles.wrapper\n\t\twrapper.setAttribute('data-browser-use-ignore', 'true')\n\t\twrapper.setAttribute('data-page-agent-ignore', 'true')\n\n\t\twrapper.innerHTML = `\n\t\t\t\t<div class=\"${styles.background}\"></div>\n\t\t\t\t<div class=\"${styles.resizeHandle}\"></div>\n\t\t\t\t<div class=\"${styles.historySectionWrapper}\">\n\t\t\t\t\t<div class=\"${styles.historySection}\">\n\t\t\t\t\t\t<div class=\"${styles.historyItem}\">\n\t\t\t\t\t\t\t<div class=\"${styles.historyContent}\">\n\t\t\t\t\t\t\t\t<span class=\"${styles.statusIcon}\">🧠</span>\n\t\t\t\t\t\t\t\t<span>${this.#i18n.t('ui.panel.waitingPlaceholder')}</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"${styles.header}\">\n\t\t\t\t\t<div class=\"${styles.statusSection}\">\n\t\t\t\t\t\t<div class=\"${styles.indicator} ${styles.thinking}\"></div>\n\t\t\t\t\t\t<div class=\"${styles.statusText}\">${this.#i18n.t('ui.panel.ready')}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"${styles.headerCenter}\">\n\t\t\t\t\t\t<div class=\"${styles.modelSwitcherContainer}\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"${styles.controls}\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t<button class=\"${styles.controlButton} ${styles.settingsBtn}\" title=\"${this.#i18n.t('ui.settings.title')}\">\n\t\t\t\t\t\t\t\t⚙️\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<button class=\"${styles.controlButton} ${styles.expandButton}\" title=\"${this.#i18n.t('ui.panel.history')}\" aria-label=\"${this.#i18n.t('ui.panel.history')}\">\n\t\t\t\t\t\t\t${this.#getHistoryToggleIcon()}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<button class=\"${styles.controlButton} ${styles.stopButton}\" title=\"${this.#i18n.t('ui.panel.close')}\">\n\t\t\t\t\t\t\tX\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t\n\t\t\t\t<div class=\"${styles.settingsSection} ${styles.hidden}\">\n\t\t\t\t\t<div class=\"${styles.settingsHeader}\">\n\t\t\t\t\t\t<span class=\"${styles.settingsTitle}\">${this.#i18n.t('ui.settings.title')}</span>\n\t\t\t\t\t\t<button class=\"${styles.settingsCloseBtn}\">✕</button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"${styles.tabsBar}\">\n\t\t\t\t\t\t<button class=\"${styles.tabBtn} ${styles.tabActive}\" data-tab=\"0\">${this.#i18n.t('ui.settings.providersTab')}</button>\n\t\t\t\t\t\t<button class=\"${styles.tabBtn}\" data-tab=\"1\">${this.#i18n.t('ui.settings.generalTab')}</button>\n\t\t\t\t\t\t<button class=\"${styles.tabBtn}\" data-tab=\"2\">${this.#i18n.t('ui.skills.tab')}</button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"${styles.tabContent}\">\n\t\t\t\t\t\t<div class=\"${styles.tabPanel} ${styles.tabPanelActive}\" data-tab-panel=\"0\"></div>\n\t\t\t\t\t\t<div class=\"${styles.tabPanel}\" data-tab-panel=\"1\"></div>\n\t\t\t\t\t\t<div class=\"${styles.tabPanel}\" data-tab-panel=\"2\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\n\t\t\t\t<div class=\"${styles.inputSectionWrapper} ${styles.hidden}\">\n\t\t\t\t\t<div class=\"${styles.inputSection}\">\n\t\t\t\t\t\t<textarea\n\t\t\t\t\t\t\tclass=\"${styles.taskInput}\"\n\t\t\t\t\t\t\trows=\"3\"\n\t\t\t\t\t\t></textarea>\n\t\t\t\t\t\t<div class=\"${styles.inputResizeHandle}\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"${styles.inputFooter}\">\n\t\t\t\t\t\t<div class=\"${styles.conversationSection}\">\n\t\t\t\t\t\t\t<button class=\"${styles.conversationBtn}\" title=\"${this.#i18n.t('ui.panel.conversations')}\">\n\t\t\t\t\t\t\t\t<span class=\"${styles.conversationBtnLabel}\">${this.#i18n.t('ui.panel.noConversations')}</span>\n\t\t\t\t\t\t\t\t<span class=\"${styles.conversationBtnArrow}\">▾</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t<div class=\"${styles.conversationDropdown} ${styles.hidden}\"></div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<button class=\"${styles.newConversationBtn}\" title=\"${this.#i18n.t('ui.panel.newConversation')}\">+</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`\n\n\t\tdocument.body.appendChild(wrapper)\n\t\treturn wrapper\n\t}\n\n\t#setupEventListeners(): void {\n\t\t// === Header drag handling ===\n\t\tconst header = this.wrapper.querySelector(`.${styles.header}`)!\n\t\theader.addEventListener('mousedown', (e) => this.#handleDragStart(e as MouseEvent))\n\n\t\t// === Resize handle ===\n\t\tconst resizeHandle = this.wrapper.querySelector(`.${styles.resizeHandle}`)!\n\t\tresizeHandle.addEventListener('mousedown', (e) => this.#handleResizeStart(e as MouseEvent))\n\n\t\t// === Input resize handle ===\n\t\tthis.#inputResizeHandle.addEventListener('mousedown', (e) =>\n\t\t\tthis.#handleInputResizeStart(e as MouseEvent)\n\t\t)\n\n\t\t// Expand button\n\t\tthis.#expandButton.addEventListener('click', (e) => {\n\t\t\te.stopPropagation()\n\t\t\tthis.#toggle()\n\t\t})\n\n\t\t// Action button (stop / close)\n\t\tthis.#actionButton.addEventListener('click', (e) => {\n\t\t\te.stopPropagation()\n\t\t\tthis.#handleActionButton()\n\t\t})\n\n\t\t// Settings toggle\n\t\tthis.#settingsBtn.addEventListener('click', (e) => {\n\t\t\te.stopPropagation()\n\t\t\tthis.#toggleSettings()\n\t\t})\n\n\t\t// Windows: Enter submits and Shift+Enter inserts a new line.\n\t\t// Other platforms: Ctrl/Cmd+Enter submits and plain Enter inserts a new line.\n\t\tthis.#taskInput.addEventListener('keydown', (e) => {\n\t\t\tif (e.isComposing) return // Ignore IME composition keys\n\t\t\tif (e.key !== 'Enter') return\n\n\t\t\tif (this.#isWindowsPlatform()) {\n\t\t\t\tif (e.shiftKey) return\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.#submitTask()\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (e.ctrlKey || e.metaKey) {\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.#submitTask()\n\t\t\t}\n\t\t})\n\n\t\t// Prevent input area click event bubbling\n\t\tthis.#inputSection.addEventListener('click', (e) => {\n\t\t\te.stopPropagation()\n\t\t})\n\t}\n\n\t// ========== Drag to reposition ==========\n\n\t#handleDragStart(e: MouseEvent): void {\n\t\t// Only start drag when clicking the header background, not buttons\n\t\tif ((e.target as HTMLElement).closest(`.${styles.controlButton}`)) return\n\t\tif ((e.target as HTMLElement).closest(`.${styles.modelSwitcher}`)) return\n\n\t\tthis.#isDragging = true\n\t\tthis.#dragStartX = e.clientX\n\t\tthis.#dragStartY = e.clientY\n\n\t\tconst rect = this.#wrapper.getBoundingClientRect()\n\t\tthis.#panelStartLeft = rect.left\n\t\tthis.#panelStartBottom = window.innerHeight - rect.bottom\n\n\t\tdocument.addEventListener('mousemove', this.#onMouseMove)\n\t\tdocument.addEventListener('mouseup', this.#onMouseUp)\n\n\t\tthis.#wrapper.style.transition = 'none'\n\t\tthis.#wrapper.style.cursor = 'grabbing'\n\t}\n\n\t#handleMouseMove(e: MouseEvent): void {\n\t\tif (!this.#isDragging) return\n\n\t\tconst dx = e.clientX - this.#dragStartX\n\t\tconst dy = this.#dragStartY - e.clientY // Inverted for bottom-based positioning\n\n\t\tlet newLeft = this.#panelStartLeft + dx\n\t\tlet newBottom = this.#panelStartBottom + dy\n\n\t\t// Clamp to viewport\n\t\tconst wrapperWidth = this.#wrapper.offsetWidth\n\t\tconst minLeft = 0\n\t\tconst maxLeft = window.innerWidth - wrapperWidth\n\t\tnewLeft = Math.max(minLeft, Math.min(maxLeft, newLeft))\n\t\tnewBottom = Math.max(20, Math.min(window.innerHeight - 60, newBottom))\n\n\t\tthis.#wrapper.style.left = `${newLeft}px`\n\t\tthis.#wrapper.style.bottom = `${newBottom}px`\n\t\tthis.#wrapper.style.transform = 'translateX(0) translateY(0)'\n\t}\n\n\t#handleMouseUp(): void {\n\t\tif (!this.#isDragging) return\n\t\tthis.#isDragging = false\n\n\t\tdocument.removeEventListener('mousemove', this.#onMouseMove)\n\t\tdocument.removeEventListener('mouseup', this.#onMouseUp)\n\n\t\tthis.#wrapper.style.transition = ''\n\t\tthis.#wrapper.style.cursor = ''\n\n\t\tthis.#savePanelPosition()\n\t}\n\n\t// ========== Resize (width only) ==========\n\n\t#handleResizeStart(e: MouseEvent): void {\n\t\te.preventDefault()\n\t\te.stopPropagation()\n\n\t\tthis.#isResizing = true\n\t\tthis.#resizeStartX = e.clientX\n\t\tthis.#resizeStartWidth = this.#wrapper.offsetWidth\n\n\t\tdocument.addEventListener('mousemove', this.#onResizeMouseMove)\n\t\tdocument.addEventListener('mouseup', this.#onResizeMouseUp)\n\n\t\tthis.#wrapper.style.transition = 'none'\n\t\tthis.#wrapper.style.userSelect = 'none'\n\t}\n\n\t#handleWidthResizeMove(e: MouseEvent): void {\n\t\tif (!this.#isResizing) return\n\n\t\t// Dragging left on the right-edge handle decreases width\n\t\tconst dx = e.clientX - this.#resizeStartX\n\t\tlet newWidth = this.#resizeStartWidth + dx\n\n\t\t// Clamp: min 400px on regular screens, but still fit narrow viewports.\n\t\tconst minWidth = Math.min(400, window.innerWidth - 40)\n\t\tnewWidth = Math.max(minWidth, Math.min(Math.min(800, window.innerWidth * 0.9), newWidth))\n\n\t\tthis.#wrapper.style.width = `${newWidth}px`\n\t\t// Update CSS variable so child elements recalculate\n\t\tthis.#wrapper.style.setProperty('--width', `${newWidth}px`)\n\t}\n\n\t#handleWidthResizeUp(): void {\n\t\tif (!this.#isResizing) return\n\t\tthis.#isResizing = false\n\n\t\tdocument.removeEventListener('mousemove', this.#onResizeMouseMove)\n\t\tdocument.removeEventListener('mouseup', this.#onResizeMouseUp)\n\n\t\tthis.#wrapper.style.transition = ''\n\t\tthis.#wrapper.style.userSelect = ''\n\n\t\tthis.#savePanelPosition()\n\t}\n\n\t// ========== Resize (input height) ==========\n\n\t#handleInputResizeStart(e: MouseEvent): void {\n\t\te.preventDefault()\n\t\te.stopPropagation()\n\n\t\tthis.#isResizingInput = true\n\t\tthis.#inputResizeStartY = e.clientY\n\t\tthis.#inputResizeStartHeight = this.#taskInput.offsetHeight\n\n\t\tdocument.addEventListener('mousemove', this.#onInputResizeMouseMove)\n\t\tdocument.addEventListener('mouseup', this.#onInputResizeMouseUp)\n\n\t\tthis.#taskInput.style.transition = 'none'\n\t\tthis.#wrapper.style.userSelect = 'none'\n\t}\n\n\t#handleInputResizeMove(e: MouseEvent): void {\n\t\tif (!this.#isResizingInput) return\n\n\t\t// Dragging down increases height\n\t\tconst dy = e.clientY - this.#inputResizeStartY\n\t\tlet newHeight = this.#inputResizeStartHeight + dy\n\n\t\t// Clamp: min 68px, max 400px\n\t\tnewHeight = Math.max(68, Math.min(400, newHeight))\n\n\t\tthis.#taskInput.style.minHeight = `${newHeight}px`\n\t\tthis.#taskInput.style.maxHeight = `${newHeight}px`\n\t}\n\n\t#handleInputResizeUp(): void {\n\t\tif (!this.#isResizingInput) return\n\t\tthis.#isResizingInput = false\n\n\t\tdocument.removeEventListener('mousemove', this.#onInputResizeMouseMove)\n\t\tdocument.removeEventListener('mouseup', this.#onInputResizeMouseUp)\n\n\t\tthis.#taskInput.style.transition = ''\n\t\tthis.#wrapper.style.userSelect = ''\n\t}\n\n\t// ========== Position persistence ==========\n\n\tstatic #STORAGE_KEY = 'page-agent-panel-position'\n\n\t#savePanelPosition(): void {\n\t\ttry {\n\t\t\tconst data = {\n\t\t\t\tleft: this.#wrapper.style.left,\n\t\t\t\tbottom: this.#wrapper.style.bottom,\n\t\t\t\twidth: this.#wrapper.style.width,\n\t\t\t}\n\t\t\tlocalStorage.setItem(Panel.#STORAGE_KEY, JSON.stringify(data))\n\t\t} catch {\n\t\t\t// localStorage may be unavailable\n\t\t}\n\t}\n\n\t#restorePanelPosition(): void {\n\t\ttry {\n\t\t\tconst raw = localStorage.getItem(Panel.#STORAGE_KEY)\n\t\t\tif (!raw) return\n\t\t\tconst data = JSON.parse(raw)\n\t\t\tif (data.left) {\n\t\t\t\tthis.#wrapper.style.left = data.left\n\t\t\t\tthis.#wrapper.style.transform = 'translateX(0) translateY(0)'\n\t\t\t}\n\t\t\tif (data.bottom) this.#wrapper.style.bottom = data.bottom\n\t\t\tif (data.width) {\n\t\t\t\tconst parsedWidth = parseFloat(String(data.width))\n\t\t\t\tconst minWidth = Math.min(400, window.innerWidth - 40)\n\t\t\t\tconst maxWidth = Math.min(800, window.innerWidth * 0.9)\n\t\t\t\tconst nextWidth =\n\t\t\t\t\tNumber.isFinite(parsedWidth) && parsedWidth > 0\n\t\t\t\t\t\t? Math.max(minWidth, Math.min(maxWidth, parsedWidth))\n\t\t\t\t\t\t: minWidth\n\t\t\t\tthis.#wrapper.style.width = `${nextWidth}px`\n\t\t\t\tthis.#wrapper.style.setProperty('--width', `${nextWidth}px`)\n\t\t\t}\n\t\t} catch {\n\t\t\t// Ignore parse errors\n\t\t}\n\t}\n\n\t// ========== Settings Panel ==========\n\n\t#handleModelSwitch(providerId: string, modelName: string): void {\n\t\tconst settings = this.#loadSettings()\n\t\tsettings.activeProviderId = providerId\n\t\tsettings.activeModelName = modelName\n\t\tthis.#saveSettingsToStorage(settings)\n\t\tthis.#modelSwitcher.render(settings)\n\n\t\t// Propagate to agent so the LLM instance is updated\n\t\tif (typeof (this.#agent as any).switchModel === 'function') {\n\t\t\t;(this.#agent as any).switchModel(providerId, modelName)\n\t\t}\n\t}\n\n\t#toggleSettings(): void {\n\t\tthis.#isSettingsVisible = !this.#isSettingsVisible\n\t\tif (this.#isSettingsVisible) {\n\t\t\tthis.#buildSettingsForm()\n\t\t\tthis.#settingsSection.classList.remove(styles.hidden)\n\t\t\tthis.#settingsBtn.style.background = 'rgba(57, 182, 255, 0.3)'\n\n\t\t\t// Wire up events on each open (DOM is rebuilt via innerHTML)\n\t\t\tconst closeBtn = this.#settingsSection.querySelector('.' + styles.settingsCloseBtn)!\n\t\t\tcloseBtn.addEventListener('click', () => this.#toggleSettings())\n\n\t\t\tconst tabBtns = this.#settingsSection.querySelectorAll('.' + styles.tabBtn)\n\t\t\tthis.#settingsTabBtns = Array.from(tabBtns) as HTMLElement[]\n\t\t\tthis.#settingsTabBtns.forEach((btn) => {\n\t\t\t\tbtn.addEventListener('click', () => {\n\t\t\t\t\tconst tabIdx = parseInt(btn.getAttribute('data-tab') || '0', 10)\n\t\t\t\t\tthis.#switchSettingsTab(tabIdx)\n\t\t\t\t})\n\t\t\t})\n\t\t} else {\n\t\t\tthis.#settingsSection.classList.add(styles.hidden)\n\t\t\tthis.#settingsBtn.style.background = ''\n\t\t}\n\t}\n\n\t#switchSettingsTab(index: number): void {\n\t\tthis.#settingsTabBtns.forEach((btn, i) => {\n\t\t\tif (i === index) {\n\t\t\t\tbtn.classList.add(styles.tabActive)\n\t\t\t} else {\n\t\t\t\tbtn.classList.remove(styles.tabActive)\n\t\t\t}\n\t\t})\n\t\tconst panels = this.#settingsSection.querySelectorAll('[data-tab-panel]')\n\t\tpanels.forEach((panel, i) => {\n\t\t\tconst el = panel as HTMLElement\n\t\t\tif (i === index) {\n\t\t\t\tel.classList.add(styles.tabPanelActive)\n\t\t\t} else {\n\t\t\t\tel.classList.remove(styles.tabPanelActive)\n\t\t\t}\n\t\t})\n\t}\n\n\t#buildSettingsForm(): void {\n\t\tconst settings = this.#loadSettings()\n\t\tthis.#buildProvidersTab(settings)\n\t\tthis.#buildGeneralTab(settings)\n\t\tthis.#buildSkillsTab()\n\t}\n\n\t// ========== Multi-Provider Settings Tabs ==========\n\n\t#buildProvidersTab(settings: PageAgentSettings, focusProviderId?: string): void {\n\t\tconst panelEl = this.#settingsSection.querySelector('[data-tab-panel=\"0\"]')!\n\t\tif (!panelEl) return\n\n\t\tconst i18n = this.#i18n\n\t\tlet html = ''\n\n\t\t// Provider cards\n\t\tif (settings.providers.length === 0) {\n\t\t\thtml +=\n\t\t\t\t'<div class=\"' + styles.providerEmpty + '\">' + i18n.t('ui.settings.noProviders') + '</div>'\n\t\t} else {\n\t\t\tfor (let i = 0; i < settings.providers.length; i++) {\n\t\t\t\tconst p = settings.providers[i]\n\t\t\t\tconst isActive = p.id === this.#getSelectedProviderId(settings)\n\t\t\t\thtml += this.#buildProviderCard(p, i, isActive, settings.activeModelName)\n\t\t\t}\n\t\t}\n\n\t\t// Add provider button\n\t\thtml +=\n\t\t\t'<button class=\"' +\n\t\t\tstyles.providerAddBtn +\n\t\t\t'\" data-action=\"add-provider\">+ ' +\n\t\t\ti18n.t('ui.settings.addProvider') +\n\t\t\t'</button>'\n\n\t\tpanelEl.innerHTML = html\n\n\t\t// Wire up events\n\t\tthis.#wireProviderEvents(panelEl, settings)\n\t\tif (focusProviderId) {\n\t\t\tconst selector =\n\t\t\t\t'[data-provider-field=\"name\"][data-provider-id=\"' + escapeHtml(focusProviderId) + '\"]'\n\t\t\tconst nameInput = panelEl.querySelector<HTMLInputElement>(selector)\n\t\t\tif (nameInput) {\n\t\t\t\tsetTimeout(() => nameInput.focus(), 0)\n\t\t\t}\n\t\t}\n\t}\n\n\t#getSelectedProviderId(settings: PageAgentSettings): string {\n\t\tconst resolved = resolveActiveModel(settings)\n\t\tif (resolved) return resolved.provider.id\n\t\treturn settings.activeProviderId || settings.providers[0]?.id || ''\n\t}\n\n\t#selectProvider(settings: PageAgentSettings, providerId: string): void {\n\t\tconst nextProvider = settings.providers.find((provider) => provider.id === providerId)\n\t\tif (!nextProvider) return\n\n\t\tsettings.providers.forEach((provider) => {\n\t\t\tprovider.enabled = provider.id === providerId\n\t\t})\n\t\tsettings.activeProviderId = providerId\n\n\t\tconst nextModel =\n\t\t\tnextProvider.models.find((model) => model.name === settings.activeModelName) ||\n\t\t\tnextProvider.models[0]\n\t\tsettings.activeModelName = nextModel?.name || ''\n\t}\n\n\t#setActiveModelByIndex(\n\t\tsettings: PageAgentSettings,\n\t\tproviderId: string,\n\t\tmodelIndex: number\n\t): void {\n\t\tconst provider = settings.providers.find((item) => item.id === providerId)\n\t\tif (!provider) return\n\t\tconst model = provider.models[modelIndex]\n\t\tif (!model) return\n\t\tsettings.activeProviderId = providerId\n\t\tsettings.activeModelName = model.name\n\t}\n\n\t#buildProviderCard(\n\t\tp: ProviderConfig,\n\t\tindex: number,\n\t\tisActive: boolean,\n\t\tactiveModelName: string\n\t): string {\n\t\tconst i18n = this.#i18n\n\t\tconst modelCount = p.models.length\n\t\tconst activeClass = isActive ? ' ' + styles.providerCardActive : ''\n\t\tconst expandedClass = this.#expandedProviderIds.has(p.id)\n\t\t\t? ' ' + styles.providerCardExpanded\n\t\t\t: ''\n\t\tconst deleteBtnClass = isActive\n\t\t\t? styles.providerCardDeleteBtn + ' ' + styles.providerCardDeleteBtnDisabled\n\t\t\t: styles.providerCardDeleteBtn\n\t\tconst selectBtnClass = isActive\n\t\t\t? styles.providerCardSelectBtn + ' ' + styles.providerCardSelectBtnActive\n\t\t\t: styles.providerCardSelectBtn\n\n\t\tlet card =\n\t\t\t'<div class=\"' +\n\t\t\tstyles.providerCard +\n\t\t\tactiveClass +\n\t\t\texpandedClass +\n\t\t\t'\" data-provider-index=\"' +\n\t\t\tindex +\n\t\t\t'\" data-provider-id=\"' +\n\t\t\tescapeHtml(p.id) +\n\t\t\t'\">'\n\n\t\t// Header\n\t\tcard += '<div class=\"' + styles.providerCardHeader + '\" data-action=\"toggle-provider\">'\n\t\tcard +=\n\t\t\t'<span class=\"' + styles.providerCardName + '\">' + escapeHtml(p.name || 'Unnamed') + '</span>'\n\t\tcard +=\n\t\t\t'<span class=\"' +\n\t\t\tstyles.providerCardBadge +\n\t\t\t'\">' +\n\t\t\tmodelCount +\n\t\t\t' ' +\n\t\t\t(modelCount === 1 ? 'model' : 'models') +\n\t\t\t'</span>'\n\t\tcard +=\n\t\t\t'<button class=\"' +\n\t\t\tselectBtnClass +\n\t\t\t'\" type=\"button\" data-action=\"select-provider\" data-provider-id=\"' +\n\t\t\tescapeHtml(p.id) +\n\t\t\t'\">' +\n\t\t\t(isActive\n\t\t\t\t? this.#i18n.t('ui.settings.enabled')\n\t\t\t\t: this.#i18n.t('ui.settings.enableProvider')) +\n\t\t\t'</button>'\n\t\tcard +=\n\t\t\t'<button class=\"' +\n\t\t\tdeleteBtnClass +\n\t\t\t'\" type=\"button\" data-action=\"delete-provider\" data-provider-id=\"' +\n\t\t\tescapeHtml(p.id) +\n\t\t\t'\" data-provider-index=\"' +\n\t\t\tindex +\n\t\t\t'\" title=\"' +\n\t\t\ti18n.t(isActive ? 'ui.settings.enabledProviderLocked' : 'ui.settings.deleteProvider') +\n\t\t\t'\"' +\n\t\t\t(isActive ? ' disabled aria-disabled=\"true\"' : '') +\n\t\t\t'>✕</button>'\n\t\tcard += '<span class=\"' + styles.providerCardChevron + '\">▼</span>'\n\t\tcard += '</div>'\n\n\t\t// Body (collapsible)\n\t\tcard += '<div class=\"' + styles.providerCardBody + '\">'\n\t\t// Provider name\n\t\tcard += '<div class=\"' + styles.formGroup + '\">'\n\t\tcard +=\n\t\t\t'<label class=\"' + styles.formLabel + '\">' + i18n.t('ui.settings.providerName') + '</label>'\n\t\tcard +=\n\t\t\t'<input class=\"' +\n\t\t\tstyles.formInput +\n\t\t\t'\" type=\"text\" data-provider-field=\"name\" data-provider-id=\"' +\n\t\t\tescapeHtml(p.id) +\n\t\t\t'\" data-provider-index=\"' +\n\t\t\tindex +\n\t\t\t'\" value=\"' +\n\t\t\tescapeHtml(p.name) +\n\t\t\t'\" placeholder=\"OpenAI\">'\n\t\tcard +=\n\t\t\t'<div class=\"' + styles.formHint + '\">' + i18n.t('ui.settings.providerNameHint') + '</div>'\n\t\tcard += '</div>'\n\n\t\t// Base URL\n\t\tcard += '<div class=\"' + styles.formGroup + '\">'\n\t\tcard += '<label class=\"' + styles.formLabel + '\">' + i18n.t('ui.settings.baseURL') + '</label>'\n\t\tcard +=\n\t\t\t'<input class=\"' +\n\t\t\tstyles.formInput +\n\t\t\t'\" type=\"text\" data-provider-field=\"baseURL\" data-provider-index=\"' +\n\t\t\tindex +\n\t\t\t'\" value=\"' +\n\t\t\tescapeHtml(p.baseURL) +\n\t\t\t'\" placeholder=\"https://api.openai.com/v1\">'\n\t\tcard += '<div class=\"' + styles.formHint + '\">' + i18n.t('ui.settings.baseURLHint') + '</div>'\n\t\tcard += '</div>'\n\n\t\t// API Format dropdown\n\t\tcard += '<div class=\"' + styles.formGroup + '\">'\n\t\tcard +=\n\t\t\t'<label class=\"' + styles.formLabel + '\">' + i18n.t('ui.settings.apiFormat') + '</label>'\n\t\tcard +=\n\t\t\t'<select class=\"' +\n\t\t\tstyles.formInput +\n\t\t\t'\" data-provider-field=\"apiFormat\" data-provider-index=\"' +\n\t\t\tindex +\n\t\t\t'\">'\n\t\tcard +=\n\t\t\t'<option value=\"openai\"' +\n\t\t\t(p.apiFormat === 'openai' ? ' selected' : '') +\n\t\t\t'>' +\n\t\t\ti18n.t('ui.settings.apiFormatOpenAI') +\n\t\t\t'</option>'\n\t\tcard +=\n\t\t\t'<option value=\"anthropic\"' +\n\t\t\t(p.apiFormat === 'anthropic' ? ' selected' : '') +\n\t\t\t'>' +\n\t\t\ti18n.t('ui.settings.apiFormatAnthropic') +\n\t\t\t'</option>'\n\t\tcard += '</select>'\n\t\tcard += '<div class=\"' + styles.formHint + '\">' + i18n.t('ui.settings.apiFormatHint') + '</div>'\n\t\tcard += '</div>'\n\n\t\t// API Key\n\t\tcard += '<div class=\"' + styles.formGroup + '\">'\n\t\tcard += '<label class=\"' + styles.formLabel + '\">' + i18n.t('ui.settings.apiKey') + '</label>'\n\t\tcard +=\n\t\t\t'<input class=\"' +\n\t\t\tstyles.formInput +\n\t\t\t' ' +\n\t\t\tstyles.formInputPassword +\n\t\t\t'\" type=\"password\" data-provider-field=\"apiKey\" data-provider-index=\"' +\n\t\t\tindex +\n\t\t\t'\" value=\"' +\n\t\t\tescapeHtml(p.apiKey || '') +\n\t\t\t'\" placeholder=\"sk-...\">'\n\t\tcard += '</div>'\n\n\t\t// Models list\n\t\tcard += '<div class=\"' + styles.formGroup + '\">'\n\t\tcard +=\n\t\t\t'<label class=\"' +\n\t\t\tstyles.formLabel +\n\t\t\t'\">' +\n\t\t\ti18n.t('ui.settings.models') +\n\t\t\t' (' +\n\t\t\tmodelCount +\n\t\t\t')</label>'\n\t\tfor (let mi = 0; mi < p.models.length; mi++) {\n\t\t\tconst m = p.models[mi]\n\t\t\tconst isCurrentModel = isActive && m.name === activeModelName\n\t\t\tconst modelSelectBtnClass = isCurrentModel\n\t\t\t\t? styles.modelSelectBtn + ' ' + styles.modelSelectBtnActive\n\t\t\t\t: styles.modelSelectBtn\n\t\t\tcard +=\n\t\t\t\t'<div class=\"' +\n\t\t\t\tstyles.modelRow +\n\t\t\t\t(isCurrentModel ? ' ' + styles.modelRowActive : '') +\n\t\t\t\t'\" data-model-index=\"' +\n\t\t\t\tmi +\n\t\t\t\t'\" data-provider-index=\"' +\n\t\t\t\tindex +\n\t\t\t\t'\">'\n\t\t\tcard +=\n\t\t\t\t'<input class=\"' +\n\t\t\t\tstyles.formInput +\n\t\t\t\t' ' +\n\t\t\t\tstyles.modelNameInput +\n\t\t\t\t'\" type=\"text\" data-provider-field=\"modelName\" data-provider-index=\"' +\n\t\t\t\tindex +\n\t\t\t\t'\" data-model-index=\"' +\n\t\t\t\tmi +\n\t\t\t\t'\" value=\"' +\n\t\t\t\tescapeHtml(m.name) +\n\t\t\t\t'\" placeholder=\"' +\n\t\t\t\ti18n.t('ui.settings.modelNameHint') +\n\t\t\t\t'\">'\n\t\t\tif (isActive) {\n\t\t\t\tcard +=\n\t\t\t\t\t'<button class=\"' +\n\t\t\t\t\tmodelSelectBtnClass +\n\t\t\t\t\t'\" type=\"button\" data-action=\"select-model\" data-provider-id=\"' +\n\t\t\t\t\tescapeHtml(p.id) +\n\t\t\t\t\t'\" data-model-index=\"' +\n\t\t\t\t\tmi +\n\t\t\t\t\t'\">' +\n\t\t\t\t\t(isCurrentModel\n\t\t\t\t\t\t? i18n.t('ui.settings.currentModel')\n\t\t\t\t\t\t: i18n.t('ui.settings.useThisModel')) +\n\t\t\t\t\t'</button>'\n\t\t\t}\n\t\t\t// Delete model button\n\t\t\tcard +=\n\t\t\t\t'<button class=\"' +\n\t\t\t\tstyles.modelDeleteBtn +\n\t\t\t\t'\" data-action=\"delete-model\" data-provider-index=\"' +\n\t\t\t\tindex +\n\t\t\t\t'\" data-model-index=\"' +\n\t\t\t\tmi +\n\t\t\t\t'\" title=\"' +\n\t\t\t\ti18n.t('ui.settings.deleteModel') +\n\t\t\t\t'\">✕</button>'\n\t\t\tcard += '</div>'\n\t\t}\n\t\t// Add model button\n\t\tcard +=\n\t\t\t'<button class=\"' +\n\t\t\tstyles.modelAddBtn +\n\t\t\t'\" data-action=\"add-model\" data-provider-index=\"' +\n\t\t\tindex +\n\t\t\t'\">+ ' +\n\t\t\ti18n.t('ui.settings.addModel') +\n\t\t\t'</button>'\n\t\tcard += '<div class=\"' + styles.providerCardActions + '\">'\n\t\tcard +=\n\t\t\t'<button class=\"' +\n\t\t\tstyles.providerCardSaveBtn +\n\t\t\t'\" type=\"button\" data-action=\"save-provider\" data-provider-index=\"' +\n\t\t\tindex +\n\t\t\t'\">' +\n\t\t\ti18n.t('ui.settings.save') +\n\t\t\t'</button>'\n\t\tcard += '</div>'\n\t\tcard += '</div>'\n\n\t\tcard += '</div>' // end body\n\t\tcard += '</div>' // end card\n\n\t\treturn card\n\t}\n\n\t#wireProviderEvents(panelEl: Element, settings: PageAgentSettings): void {\n\t\tpanelEl.querySelectorAll('[data-action=\"select-provider\"]').forEach((btn) => {\n\t\t\tbtn.addEventListener('click', (event) => {\n\t\t\t\tevent.stopPropagation()\n\t\t\t\tthis.#syncSettingsFromForm(settings)\n\t\t\t\tconst providerId = btn.getAttribute('data-provider-id') || ''\n\t\t\t\tif (!providerId) return\n\t\t\t\tthis.#selectProvider(settings, providerId)\n\t\t\t\tthis.#saveSettingsToStorage(settings)\n\t\t\t\tthis.#modelSwitcher.render(settings)\n\t\t\t\t// Propagate to agent so the LLM instance uses the new provider\n\t\t\t\tif (settings.activeModelName && typeof (this.#agent as any).switchModel === 'function') {\n\t\t\t\t\t;(this.#agent as any).switchModel(settings.activeProviderId, settings.activeModelName)\n\t\t\t\t}\n\t\t\t\tthis.#buildProvidersTab(settings, providerId)\n\t\t\t})\n\t\t})\n\n\t\t// Toggle provider body\n\t\tpanelEl.querySelectorAll('[data-action=\"toggle-provider\"]').forEach((header) => {\n\t\t\theader.addEventListener('click', () => {\n\t\t\t\tconst card = header.closest('.' + styles.providerCard)!\n\t\t\t\tconst providerId = card?.getAttribute('data-provider-id')\n\t\t\t\tif (!card || !providerId) return\n\t\t\t\tconst isExpanded = card.classList.toggle(styles.providerCardExpanded)\n\t\t\t\tif (isExpanded) {\n\t\t\t\t\tthis.#expandedProviderIds.add(providerId)\n\t\t\t\t} else {\n\t\t\t\t\tthis.#expandedProviderIds.delete(providerId)\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\n\t\t// Add provider\n\t\tconst addBtn = panelEl.querySelector('[data-action=\"add-provider\"]')!\n\t\tif (addBtn) {\n\t\t\taddBtn.addEventListener('click', () => {\n\t\t\t\tthis.#syncSettingsFromForm(settings)\n\t\t\t\tconst newId = generateId('provider')\n\t\t\t\tconst shouldSelectNewProvider =\n\t\t\t\t\tsettings.providers.length === 0 ||\n\t\t\t\t\t!settings.providers.some((provider) => provider.enabled)\n\t\t\t\tsettings.providers.push({\n\t\t\t\t\tid: newId,\n\t\t\t\t\tname: '',\n\t\t\t\t\tbaseURL: '',\n\t\t\t\t\tapiFormat: 'openai',\n\t\t\t\t\tapiKey: '',\n\t\t\t\t\tmodels: [{ name: '' }],\n\t\t\t\t\tenabled: shouldSelectNewProvider,\n\t\t\t\t})\n\t\t\t\tif (shouldSelectNewProvider) {\n\t\t\t\t\tthis.#selectProvider(settings, newId)\n\t\t\t\t}\n\t\t\t\tthis.#expandedProviderIds.add(newId)\n\t\t\t\tthis.#buildProvidersTab(settings, newId)\n\t\t\t})\n\t\t}\n\n\t\t// Delete provider\n\t\tpanelEl.querySelectorAll('[data-action=\"delete-provider\"]').forEach((btn) => {\n\t\t\tbtn.addEventListener('click', (event) => {\n\t\t\t\tevent.stopPropagation()\n\t\t\t\tthis.#syncSettingsFromForm(settings)\n\t\t\t\tconst index = parseInt(btn.getAttribute('data-provider-index') || '', 10)\n\t\t\t\tif (isNaN(index) || index >= settings.providers.length) return\n\t\t\t\tconst p = settings.providers[index]\n\t\t\t\tif (p.enabled) return\n\t\t\t\t// If API key set, confirm\n\t\t\t\tif (p.apiKey && !confirm(this.#i18n.t('ui.settings.confirmDeleteProvider'))) return\n\t\t\t\tsettings.providers.splice(index, 1)\n\t\t\t\t// If we deleted the active provider, pick a new one\n\t\t\t\tif (settings.activeProviderId === p.id) {\n\t\t\t\t\tconst next = settings.providers[0]\n\t\t\t\t\tif (next) {\n\t\t\t\t\t\tthis.#selectProvider(settings, next.id)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsettings.activeProviderId = ''\n\t\t\t\t\t\tsettings.activeModelName = ''\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.#expandedProviderIds.delete(p.id)\n\t\t\t\tthis.#saveSettingsToStorage(settings)\n\t\t\t\tthis.#modelSwitcher.render(settings)\n\t\t\t\tthis.#buildProvidersTab(settings)\n\t\t\t})\n\t\t})\n\n\t\t// Add model\n\t\tpanelEl.querySelectorAll('[data-action=\"add-model\"]').forEach((btn) => {\n\t\t\tbtn.addEventListener('click', () => {\n\t\t\t\tthis.#syncSettingsFromForm(settings)\n\t\t\t\tconst index = parseInt(btn.getAttribute('data-provider-index') || '', 10)\n\t\t\t\tif (isNaN(index) || index >= settings.providers.length) return\n\t\t\t\tsettings.providers[index].models.push({ name: '' })\n\t\t\t\tthis.#buildProvidersTab(settings)\n\t\t\t})\n\t\t})\n\n\t\t// Delete model\n\t\tpanelEl.querySelectorAll('[data-action=\"delete-model\"]').forEach((btn) => {\n\t\t\tbtn.addEventListener('click', () => {\n\t\t\t\tthis.#syncSettingsFromForm(settings)\n\t\t\t\tconst pIdx = parseInt(btn.getAttribute('data-provider-index') || '', 10)\n\t\t\t\tconst mIdx = parseInt(btn.getAttribute('data-model-index') || '', 10)\n\t\t\t\tif (isNaN(pIdx) || isNaN(mIdx)) return\n\t\t\t\tif (pIdx >= settings.providers.length) return\n\t\t\t\tconst provider = settings.providers[pIdx]\n\t\t\t\tif (mIdx >= provider.models.length) return\n\t\t\t\t// Don't allow deleting the last model\n\t\t\t\tif (provider.models.length <= 1) return\n\t\t\t\tconst deletedName = provider.models[mIdx]?.name\n\t\t\t\tprovider.models.splice(mIdx, 1)\n\t\t\t\t// If we deleted the active model, switch to first\n\t\t\t\tif (settings.activeProviderId === provider.id && settings.activeModelName === deletedName) {\n\t\t\t\t\tsettings.activeModelName = provider.models[0]?.name || ''\n\t\t\t\t}\n\t\t\t\tthis.#buildProvidersTab(settings)\n\t\t\t})\n\t\t})\n\n\t\tpanelEl.querySelectorAll('[data-action=\"select-model\"]').forEach((btn) => {\n\t\t\tbtn.addEventListener('click', (event) => {\n\t\t\t\tevent.stopPropagation()\n\t\t\t\tthis.#syncSettingsFromForm(settings)\n\t\t\t\tconst providerId = btn.getAttribute('data-provider-id') || ''\n\t\t\t\tconst modelIndex = parseInt(btn.getAttribute('data-model-index') || '', 10)\n\t\t\t\tif (!providerId || isNaN(modelIndex)) return\n\t\t\t\tthis.#setActiveModelByIndex(settings, providerId, modelIndex)\n\t\t\t\tthis.#saveSettingsToStorage(settings)\n\t\t\t\tthis.#modelSwitcher.render(settings)\n\t\t\t\t// Propagate to agent so the LLM instance uses the new model\n\t\t\t\tif (this.#agent && typeof (this.#agent as any).switchModel === 'function') {\n\t\t\t\t\t;(this.#agent as any).switchModel(settings.activeProviderId, settings.activeModelName)\n\t\t\t\t}\n\t\t\t\tthis.#expandedProviderIds.add(providerId)\n\t\t\t\tthis.#buildProvidersTab(settings, providerId)\n\t\t\t})\n\t\t})\n\n\t\tpanelEl.querySelectorAll('[data-action=\"save-provider\"]').forEach((btn) => {\n\t\t\tbtn.addEventListener('click', () => {\n\t\t\t\tthis.#syncSettingsFromForm(settings)\n\t\t\t\tthis.#persistSettings(settings, btn as HTMLElement)\n\t\t\t})\n\t\t})\n\t}\n\n\t#buildGeneralTab(settings: PageAgentSettings): void {\n\t\tconst panelEl = this.#settingsSection.querySelector('[data-tab-panel=\"1\"]')!\n\t\tif (!panelEl) return\n\n\t\tconst i18n = this.#i18n\n\t\tconst d = this.#config.defaults || {}\n\t\tconst temp = settings.temperature ?? d.temperature ?? 0.7\n\n\t\tlet html = ''\n\n\t\t// Temperature slider\n\t\thtml += '<div class=\"' + styles.formGroup + '\">'\n\t\thtml +=\n\t\t\t'<label class=\"' +\n\t\t\tstyles.formLabel +\n\t\t\t'\">' +\n\t\t\ti18n.t('ui.settings.temperature') +\n\t\t\t': <span data-setting-display=\"temperature\">' +\n\t\t\ttemp.toFixed(1) +\n\t\t\t'</span></label>'\n\t\thtml += '<div class=\"' + styles.sliderRow + '\">'\n\t\thtml +=\n\t\t\t'<input class=\"' +\n\t\t\tstyles.sliderInput +\n\t\t\t'\" type=\"range\" min=\"0\" max=\"2\" step=\"0.1\" data-general=\"temperature\" value=\"' +\n\t\t\ttemp +\n\t\t\t'\">'\n\t\thtml += '<span class=\"' + styles.sliderValue + '\">' + temp.toFixed(1) + '</span>'\n\t\thtml += '</div></div>'\n\n\t\t// Max Steps\n\t\tconst maxSteps = settings.maxSteps ?? d.maxSteps ?? 40\n\t\thtml += '<div class=\"' + styles.formGroup + '\">'\n\t\thtml += '<label class=\"' + styles.formLabel + '\">' + i18n.t('ui.settings.maxSteps') + '</label>'\n\t\thtml +=\n\t\t\t'<input class=\"' +\n\t\t\tstyles.formInput +\n\t\t\t'\" type=\"number\" min=\"5\" max=\"200\" data-general=\"maxSteps\" value=\"' +\n\t\t\tmaxSteps +\n\t\t\t'\">'\n\t\thtml += '<div class=\"' + styles.formHint + '\">' + i18n.t('ui.settings.maxStepsHint') + '</div>'\n\t\thtml += '</div>'\n\n\t\tpanelEl.innerHTML = html\n\n\t\t// Wire temperature slider\n\t\tconst tempSlider = panelEl.querySelector<HTMLInputElement>('[data-general=\"temperature\"]')!\n\t\tif (tempSlider) {\n\t\t\tconst display = panelEl.querySelector('[data-setting-display=\"temperature\"]')!\n\t\t\tconst valueSpan = panelEl.querySelector('.' + styles.sliderValue)!\n\t\t\ttempSlider.addEventListener('input', () => {\n\t\t\t\tconst val = parseFloat(tempSlider.value).toFixed(1)\n\t\t\t\tif (display) display.textContent = val\n\t\t\t\tif (valueSpan) valueSpan.textContent = val\n\t\t\t})\n\t\t\ttempSlider.addEventListener('change', () => this.#saveSettings())\n\t\t}\n\n\t\tconst maxStepsInput = panelEl.querySelector<HTMLInputElement>('[data-general=\"maxSteps\"]')!\n\t\tif (maxStepsInput) {\n\t\t\tmaxStepsInput.addEventListener('change', () => this.#saveSettings())\n\t\t}\n\t}\n\t#buildSkillsTab(): void {\n\t\tconst panelEl = this.#settingsSection.querySelector('[data-tab-panel=\"2\"]')!\n\t\tif (!panelEl) return\n\n\t\tconst i18n = this.#i18n\n\t\tlet html = ''\n\n\t\t// Header with actions\n\t\thtml += '<div class=\"' + styles.skillsHeader + '\">'\n\t\thtml += '<div class=\"' + styles.skillsHeaderActions + '\">'\n\t\thtml +=\n\t\t\t'<button class=\"' +\n\t\t\tstyles.skillActionBtn +\n\t\t\t'\" data-action=\"create-skill\">+ ' +\n\t\t\ti18n.t('ui.skills.create') +\n\t\t\t'</button>'\n\t\thtml +=\n\t\t\t'<button class=\"' +\n\t\t\tstyles.skillActionBtn +\n\t\t\t'\" data-action=\"import-skill\">' +\n\t\t\ti18n.t('ui.skills.importJSON') +\n\t\t\t'</button>'\n\t\thtml += '</div></div>'\n\n\t\t// Show header immediately so the panel has height, then load skills async\n\t\thtml += '<div class=\"' + styles.skillsEmpty + '\">Loading...</div>'\n\t\tpanelEl.innerHTML = html\n\n\t\t// Load stored skills asynchronously\n\t\tSkillStorage.list()\n\t\t\t.then((storedSkills) => {\n\t\t\t\tlet listHtml = ''\n\n\t\t\t\tif (storedSkills.length === 0) {\n\t\t\t\t\t// Also check npm skills\n\t\t\t\t\tconst availableSkills = this.#agent.getAvailableSkills?.() ?? []\n\t\t\t\t\tif (availableSkills.length === 0) {\n\t\t\t\t\t\tlistHtml +=\n\t\t\t\t\t\t\t'<div class=\"' + styles.skillsEmpty + '\">' + i18n.t('ui.skills.empty') + '</div>'\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst activeIds = this.#agent.getActiveSkillIds?.() ?? []\n\t\t\t\t\tfor (const stored of storedSkills) {\n\t\t\t\t\t\tconst isActive = activeIds.includes(stored.id) || stored.enabled\n\t\t\t\t\t\tlistHtml += this.#buildSkillCard(stored, isActive)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// List npm-provided skills (registered but not in IndexedDB)\n\t\t\t\tconst availableSkills = this.#agent.getAvailableSkills?.() ?? []\n\t\t\t\tconst storedIds = new Set(storedSkills.map((s) => s.id))\n\t\t\t\tconst npmSkills = availableSkills.filter((s) => !storedIds.has(s.id))\n\t\t\t\tif (npmSkills.length > 0) {\n\t\t\t\t\tlistHtml +=\n\t\t\t\t\t\t'<div class=\"' +\n\t\t\t\t\t\tstyles.skillsSectionLabel +\n\t\t\t\t\t\t'\">' +\n\t\t\t\t\t\ti18n.t('ui.skills.builtIn') +\n\t\t\t\t\t\t'</div>'\n\t\t\t\t\tfor (const info of npmSkills) {\n\t\t\t\t\t\tlistHtml += this.#buildSkillInfoCard(info)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tpanelEl.innerHTML = html + listHtml\n\t\t\t\tthis.#wireSkillsEvents(panelEl)\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tconsole.error('[Panel] Failed to load skills:', error)\n\t\t\t\tpanelEl.innerHTML =\n\t\t\t\t\thtml +\n\t\t\t\t\t'<div class=\"' +\n\t\t\t\t\tstyles.skillsEmpty +\n\t\t\t\t\t'\">' +\n\t\t\t\t\ti18n.t('ui.skills.loadError') +\n\t\t\t\t\t'</div>'\n\t\t\t})\n\t}\n\n\t#buildSkillCard(stored: StoredSkill, isActive: boolean): string {\n\t\tconst i18n = this.#i18n\n\t\tconst iconHtml = stored.icon\n\t\t\t? '<span class=\"' + styles.skillIcon + '\">' + escapeHtml(stored.icon) + '</span>'\n\t\t\t: ''\n\t\tconst authorHtml = stored.author\n\t\t\t? '<span class=\"' + styles.skillAuthor + '\">' + escapeHtml(stored.author) + '</span>'\n\t\t\t: ''\n\t\tconst toolsCount = stored.tools?.length ?? 0\n\n\t\treturn (\n\t\t\t'<div class=\"' +\n\t\t\tstyles.skillCard +\n\t\t\t' ' +\n\t\t\t(isActive ? styles.skillCardActive : '') +\n\t\t\t'\" data-skill-id=\"' +\n\t\t\tescapeHtml(stored.id) +\n\t\t\t'\">' +\n\t\t\t'<div class=\"' +\n\t\t\tstyles.skillCardHeader +\n\t\t\t'\">' +\n\t\t\ticonHtml +\n\t\t\t'<div class=\"' +\n\t\t\tstyles.skillCardInfo +\n\t\t\t'\">' +\n\t\t\t'<div class=\"' +\n\t\t\tstyles.skillCardName +\n\t\t\t'\">' +\n\t\t\tescapeHtml(stored.name) +\n\t\t\t'</div>' +\n\t\t\t'<div class=\"' +\n\t\t\tstyles.skillCardMeta +\n\t\t\t'\">' +\n\t\t\t'<span>v' +\n\t\t\tescapeHtml(stored.version) +\n\t\t\t'</span>' +\n\t\t\t(toolsCount > 0\n\t\t\t\t? '<span>' + toolsCount + ' tool' + (toolsCount !== 1 ? 's' : '') + '</span>'\n\t\t\t\t: '') +\n\t\t\tauthorHtml +\n\t\t\t'</div>' +\n\t\t\t'</div>' +\n\t\t\t'<label class=\"' +\n\t\t\tstyles.toggleSwitch +\n\t\t\t'\">' +\n\t\t\t'<input type=\"checkbox\" ' +\n\t\t\t(isActive ? 'checked' : '') +\n\t\t\t' data-action=\"toggle-skill\" data-skill-id=\"' +\n\t\t\tescapeHtml(stored.id) +\n\t\t\t'\">' +\n\t\t\t'<span class=\"' +\n\t\t\tstyles.toggleSlider +\n\t\t\t'\"></span>' +\n\t\t\t'</label>' +\n\t\t\t'</div>' +\n\t\t\t'<div class=\"' +\n\t\t\tstyles.skillCardDesc +\n\t\t\t'\">' +\n\t\t\tescapeHtml(stored.description) +\n\t\t\t'</div>' +\n\t\t\t'<div class=\"' +\n\t\t\tstyles.skillCardActions +\n\t\t\t'\">' +\n\t\t\t'<button class=\"' +\n\t\t\tstyles.skillSmallBtn +\n\t\t\t'\" data-action=\"export-skill\" data-skill-id=\"' +\n\t\t\tescapeHtml(stored.id) +\n\t\t\t'\">' +\n\t\t\ti18n.t('ui.skills.exportJSON') +\n\t\t\t'</button>' +\n\t\t\t'<button class=\"' +\n\t\t\tstyles.skillSmallBtn +\n\t\t\t' ' +\n\t\t\tstyles.skillDangerBtn +\n\t\t\t'\" data-action=\"delete-skill\" data-skill-id=\"' +\n\t\t\tescapeHtml(stored.id) +\n\t\t\t'\">' +\n\t\t\ti18n.t('ui.skills.delete') +\n\t\t\t'</button>' +\n\t\t\t'</div>' +\n\t\t\t'</div>'\n\t\t)\n\t}\n\n\t#buildSkillInfoCard(info: {\n\t\tid: string\n\t\tname: string\n\t\tdescription: string\n\t\tversion: string\n\t\tauthor?: string\n\t\ticon?: string\n\t\tactive: boolean\n\t}): string {\n\t\tconst iconHtml = info.icon\n\t\t\t? '<span class=\"' + styles.skillIcon + '\">' + escapeHtml(info.icon) + '</span>'\n\t\t\t: ''\n\t\tconst authorHtml = info.author\n\t\t\t? '<span class=\"' + styles.skillAuthor + '\">' + escapeHtml(info.author) + '</span>'\n\t\t\t: ''\n\n\t\treturn (\n\t\t\t'<div class=\"' +\n\t\t\tstyles.skillCard +\n\t\t\t' ' +\n\t\t\t(info.active ? styles.skillCardActive : '') +\n\t\t\t'\" data-skill-id=\"' +\n\t\t\tescapeHtml(info.id) +\n\t\t\t'\">' +\n\t\t\t'<div class=\"' +\n\t\t\tstyles.skillCardHeader +\n\t\t\t'\">' +\n\t\t\ticonHtml +\n\t\t\t'<div class=\"' +\n\t\t\tstyles.skillCardInfo +\n\t\t\t'\">' +\n\t\t\t'<div class=\"' +\n\t\t\tstyles.skillCardName +\n\t\t\t'\">' +\n\t\t\tescapeHtml(info.name) +\n\t\t\t'</div>' +\n\t\t\t'<div class=\"' +\n\t\t\tstyles.skillCardMeta +\n\t\t\t'\">' +\n\t\t\t'<span>v' +\n\t\t\tescapeHtml(info.version) +\n\t\t\t'</span>' +\n\t\t\t'<span class=\"' +\n\t\t\tstyles.skillSourceTag +\n\t\t\t'\">npm</span>' +\n\t\t\tauthorHtml +\n\t\t\t'</div>' +\n\t\t\t'</div>' +\n\t\t\t'<label class=\"' +\n\t\t\tstyles.toggleSwitch +\n\t\t\t'\">' +\n\t\t\t'<input type=\"checkbox\" ' +\n\t\t\t(info.active ? 'checked' : '') +\n\t\t\t' data-action=\"toggle-skill\" data-skill-id=\"' +\n\t\t\tescapeHtml(info.id) +\n\t\t\t'\">' +\n\t\t\t'<span class=\"' +\n\t\t\tstyles.toggleSlider +\n\t\t\t'\"></span>' +\n\t\t\t'</label>' +\n\t\t\t'</div>' +\n\t\t\t'<div class=\"' +\n\t\t\tstyles.skillCardDesc +\n\t\t\t'\">' +\n\t\t\tescapeHtml(info.description) +\n\t\t\t'</div>' +\n\t\t\t'</div>'\n\t\t)\n\t}\n\n\t#wireSkillsEvents(panelEl: Element): void {\n\t\t// Toggle skill on/off\n\t\tpanelEl.querySelectorAll('[data-action=\"toggle-skill\"]').forEach((el) => {\n\t\t\tel.addEventListener('change', async (e) => {\n\t\t\t\tconst input = e.target as HTMLInputElement\n\t\t\t\tconst skillId = input.getAttribute('data-skill-id')!\n\t\t\t\tconst enabled = input.checked\n\n\t\t\t\ttry {\n\t\t\t\t\tif (enabled) {\n\t\t\t\t\t\tconst stored = await SkillStorage.get(skillId)\n\t\t\t\t\t\tif (stored) {\n\t\t\t\t\t\t\tawait SkillStorage.toggleEnabled(skillId, true)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tawait this.#agent.loadSkill?.(skillId)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst stored = await SkillStorage.get(skillId)\n\t\t\t\t\t\tif (stored) {\n\t\t\t\t\t\t\tawait SkillStorage.toggleEnabled(skillId, false)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tawait this.#agent.unloadSkill?.(skillId)\n\t\t\t\t\t}\n\t\t\t\t\tthis.#buildSkillsTab()\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error('[Panel] Failed to toggle skill:', error)\n\t\t\t\t\tinput.checked = !enabled // Revert\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\n\t\t// Create skill button\n\t\tconst createBtn = panelEl.querySelector('[data-action=\"create-skill\"]')\n\t\tif (createBtn) {\n\t\t\tcreateBtn.addEventListener('click', () => {\n\t\t\t\tthis.#showSkillEditor()\n\t\t\t})\n\t\t}\n\n\t\t// Import skill button\n\t\tconst importBtn = panelEl.querySelector('[data-action=\"import-skill\"]')\n\t\tif (importBtn) {\n\t\t\timportBtn.addEventListener('click', () => {\n\t\t\t\tthis.#showImportForm()\n\t\t\t})\n\t\t}\n\n\t\t// Delete skill button\n\t\tpanelEl.querySelectorAll('[data-action=\"delete-skill\"]').forEach((el) => {\n\t\t\tel.addEventListener('click', async () => {\n\t\t\t\tconst skillId = el.getAttribute('data-skill-id')!\n\t\t\t\tconst confirmed = confirm(this.#i18n.t('ui.skills.confirmDelete'))\n\t\t\t\tif (!confirmed) return\n\n\t\t\t\ttry {\n\t\t\t\t\tawait this.#agent.unloadSkill?.(skillId)\n\t\t\t\t\tawait SkillStorage.delete(skillId)\n\t\t\t\t\tthis.#buildSkillsTab()\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error('[Panel] Failed to delete skill:', error)\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\n\t\t// Export skill button\n\t\tpanelEl.querySelectorAll('[data-action=\"export-skill\"]').forEach((el) => {\n\t\t\tel.addEventListener('click', async () => {\n\t\t\t\tconst skillId = el.getAttribute('data-skill-id')!\n\t\t\t\ttry {\n\t\t\t\t\tconst json = await SkillStorage.exportJSON(skillId)\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\tawait navigator.clipboard.writeText(json)\n\t\t\t\t\t\tconst btn = el as HTMLButtonElement\n\t\t\t\t\t\tconst originalText = btn.textContent!\n\t\t\t\t\t\tbtn.textContent = '✓ Copied!'\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tbtn.textContent = originalText\n\t\t\t\t\t\t}, 1500)\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error('[Panel] Failed to export skill:', error)\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n\n\t#showSkillEditor(stored?: StoredSkill): void {\n\t\tconst panelEl = this.#settingsSection.querySelector('[data-tab-panel=\"2\"]')!\n\t\tif (!panelEl) return\n\n\t\tconst i18n = this.#i18n\n\t\tconst isEdit = !!stored\n\t\tconst skill = stored ?? {\n\t\t\tid: generateSkillId(),\n\t\t\tname: '',\n\t\t\tdescription: '',\n\t\t\tversion: '1.0.0',\n\t\t\tenabled: false,\n\t\t\tcreatedAt: Date.now(),\n\t\t\tupdatedAt: Date.now(),\n\t\t}\n\n\t\tlet html = '<div class=\"' + styles.skillsEditor + '\">'\n\t\thtml += '<h4>' + (isEdit ? i18n.t('ui.skills.edit') : i18n.t('ui.skills.create')) + '</h4>'\n\n\t\t// ID\n\t\thtml += '<div class=\"' + styles.formGroup + '\">'\n\t\thtml += '<label class=\"' + styles.formLabel + '\">' + i18n.t('ui.skills.fieldId') + '</label>'\n\t\thtml +=\n\t\t\t'<input class=\"' +\n\t\t\tstyles.formInput +\n\t\t\t'\" data-skill-field=\"id\" value=\"' +\n\t\t\tescapeHtml(skill.id) +\n\t\t\t'\" ' +\n\t\t\t(isEdit ? 'readonly' : '') +\n\t\t\t'>'\n\t\thtml += '</div>'\n\n\t\t// Name\n\t\thtml += '<div class=\"' + styles.formGroup + '\">'\n\t\thtml += '<label class=\"' + styles.formLabel + '\">' + i18n.t('ui.skills.fieldName') + '</label>'\n\t\thtml +=\n\t\t\t'<input class=\"' +\n\t\t\tstyles.formInput +\n\t\t\t'\" data-skill-field=\"name\" value=\"' +\n\t\t\tescapeHtml(skill.name) +\n\t\t\t'\">'\n\t\thtml += '</div>'\n\n\t\t// Version\n\t\thtml += '<div class=\"' + styles.formGroup + '\">'\n\t\thtml +=\n\t\t\t'<label class=\"' + styles.formLabel + '\">' + i18n.t('ui.skills.fieldVersion') + '</label>'\n\t\thtml +=\n\t\t\t'<input class=\"' +\n\t\t\tstyles.formInput +\n\t\t\t'\" data-skill-field=\"version\" value=\"' +\n\t\t\tescapeHtml(skill.version) +\n\t\t\t'\">'\n\t\thtml += '</div>'\n\n\t\t// Description\n\t\thtml += '<div class=\"' + styles.formGroup + '\">'\n\t\thtml +=\n\t\t\t'<label class=\"' + styles.formLabel + '\">' + i18n.t('ui.skills.fieldDescription') + '</label>'\n\t\thtml +=\n\t\t\t'<textarea class=\"' +\n\t\t\tstyles.formTextarea +\n\t\t\t'\" data-skill-field=\"description\" rows=\"3\">' +\n\t\t\tescapeHtml(skill.description ?? '') +\n\t\t\t'</textarea>'\n\t\thtml += '</div>'\n\n\t\t// System Prompt Fragment\n\t\thtml += '<div class=\"' + styles.formGroup + '\">'\n\t\thtml +=\n\t\t\t'<label class=\"' +\n\t\t\tstyles.formLabel +\n\t\t\t'\">' +\n\t\t\ti18n.t('ui.skills.fieldPromptFragment') +\n\t\t\t'</label>'\n\t\thtml +=\n\t\t\t'<textarea class=\"' +\n\t\t\tstyles.formTextarea +\n\t\t\t' ' +\n\t\t\tstyles.skillCodeArea +\n\t\t\t'\" data-skill-field=\"systemPromptFragment\" rows=\"5\" placeholder=\"' +\n\t\t\ti18n.t('ui.skills.fieldPromptPlaceholder') +\n\t\t\t'\">' +\n\t\t\tescapeHtml(skill.systemPromptFragment ?? '') +\n\t\t\t'</textarea>'\n\t\thtml += '</div>'\n\n\t\t// Tools editor (JSON textarea)\n\t\thtml += '<div class=\"' + styles.formGroup + '\">'\n\t\thtml += '<label class=\"' + styles.formLabel + '\">' + i18n.t('ui.skills.fieldTools') + '</label>'\n\t\tconst toolsJson = skill.tools\n\t\t\t? JSON.stringify(\n\t\t\t\t\tskill.tools.map((t: any) => ({\n\t\t\t\t\t\tname: t.name,\n\t\t\t\t\t\tdescription: t.description,\n\t\t\t\t\t\tinputSchema: t.inputSchema,\n\t\t\t\t\t\texecuteCode: t.executeCode,\n\t\t\t\t\t})),\n\t\t\t\t\tnull,\n\t\t\t\t\t2\n\t\t\t\t)\n\t\t\t: '[]'\n\t\thtml +=\n\t\t\t'<textarea class=\"' +\n\t\t\tstyles.formTextarea +\n\t\t\t' ' +\n\t\t\tstyles.skillCodeArea +\n\t\t\t'\" data-skill-field=\"tools\" rows=\"8\" placeholder=\\'[{\"name\": \"my_tool\", \"description\": \"...\", \"inputSchema\": {...}, \"executeCode\": \"async function(...) {...}\"}]\\'>' +\n\t\t\tescapeHtml(toolsJson) +\n\t\t\t'</textarea>'\n\t\thtml += '<div class=\"' + styles.formHint + '\">' + i18n.t('ui.skills.fieldToolsHint') + '</div>'\n\t\thtml += '</div>'\n\n\t\t// Actions\n\t\thtml += '<div class=\"' + styles.skillsEditorActions + '\">'\n\t\thtml +=\n\t\t\t'<button class=\"' +\n\t\t\tstyles.skillActionBtn +\n\t\t\t'\" data-action=\"save-skill\">' +\n\t\t\ti18n.t('ui.settings.save') +\n\t\t\t'</button>'\n\t\thtml +=\n\t\t\t'<button class=\"' +\n\t\t\tstyles.skillActionBtn +\n\t\t\t' ' +\n\t\t\tstyles.skillCancelBtn +\n\t\t\t'\" data-action=\"cancel-editor\">' +\n\t\t\ti18n.t('ui.settings.cancel') +\n\t\t\t'</button>'\n\t\thtml += '</div>'\n\n\t\thtml += '</div>'\n\n\t\tpanelEl.innerHTML = html\n\n\t\t// Wire save\n\t\tconst saveBtn = panelEl.querySelector('[data-action=\"save-skill\"]')\n\t\tif (saveBtn) {\n\t\t\tsaveBtn.addEventListener('click', async () => {\n\t\t\t\ttry {\n\t\t\t\t\tconst getVal = (field: string) =>\n\t\t\t\t\t\tpanelEl.querySelector<HTMLInputElement | HTMLTextAreaElement>(\n\t\t\t\t\t\t\t'[data-skill-field=\"' + field + '\"]'\n\t\t\t\t\t\t)?.value ?? ''\n\t\t\t\t\tconst id = getVal('id')\n\t\t\t\t\tconst name = getVal('name')\n\t\t\t\t\tconst version = getVal('version')\n\t\t\t\t\tconst description = getVal('description')\n\t\t\t\t\tconst systemPromptFragment = getVal('systemPromptFragment')\n\t\t\t\t\tconst toolsRaw = getVal('tools')\n\n\t\t\t\t\tif (!id || !name) {\n\t\t\t\t\t\talert(i18n.t('ui.skills.fieldRequired'))\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\n\t\t\t\t\tlet tools: any[] | undefined\n\t\t\t\t\tif (toolsRaw.trim()) {\n\t\t\t\t\t\ttools = JSON.parse(toolsRaw)\n\t\t\t\t\t}\n\n\t\t\t\t\tconst updated: StoredSkill = {\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tversion,\n\t\t\t\t\t\tdescription,\n\t\t\t\t\t\tsystemPromptFragment: systemPromptFragment || undefined,\n\t\t\t\t\t\ttools,\n\t\t\t\t\t\tenabled: stored?.enabled ?? false,\n\t\t\t\t\t\tcreatedAt: stored?.createdAt ?? Date.now(),\n\t\t\t\t\t\tupdatedAt: Date.now(),\n\t\t\t\t\t}\n\n\t\t\t\t\tawait SkillStorage.save(updated)\n\t\t\t\t\tthis.#buildSkillsTab()\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error('[Panel] Failed to save skill:', error)\n\t\t\t\t\talert(i18n.t('ui.skills.saveFailed') + (error as Error).message)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\t// Wire cancel\n\t\tconst cancelBtn = panelEl.querySelector('[data-action=\"cancel-editor\"]')\n\t\tif (cancelBtn) {\n\t\t\tcancelBtn.addEventListener('click', () => {\n\t\t\t\tthis.#buildSkillsTab()\n\t\t\t})\n\t\t}\n\t}\n\n\t#showImportForm(): void {\n\t\tconst panelEl = this.#settingsSection.querySelector('[data-tab-panel=\"2\"]')!\n\t\tif (!panelEl) return\n\n\t\tconst i18n = this.#i18n\n\n\t\tlet html = '<div class=\"' + styles.skillsEditor + '\">'\n\t\thtml += '<h4>' + i18n.t('ui.skills.importJSON') + '</h4>'\n\n\t\thtml += '<div class=\"' + styles.formGroup + '\">'\n\t\thtml += '<label class=\"' + styles.formLabel + '\">' + i18n.t('ui.skills.pasteJSON') + '</label>'\n\t\thtml +=\n\t\t\t'<textarea class=\"' +\n\t\t\tstyles.formTextarea +\n\t\t\t' ' +\n\t\t\tstyles.skillCodeArea +\n\t\t\t'\" data-import-field=\"content\" rows=\"12\" placeholder=\"Paste skill JSON or markdown/text content...\"></textarea>'\n\t\thtml += '<div class=\"' + styles.formHint + '\">' + i18n.t('ui.skills.importHint') + '</div>'\n\t\thtml += '</div>'\n\n\t\thtml += '<div class=\"' + styles.skillsEditorActions + '\">'\n\t\thtml +=\n\t\t\t'<button class=\"' +\n\t\t\tstyles.skillActionBtn +\n\t\t\t'\" data-action=\"do-import\">' +\n\t\t\ti18n.t('ui.skills.importJSON') +\n\t\t\t'</button>'\n\t\thtml +=\n\t\t\t'<button class=\"' +\n\t\t\tstyles.skillActionBtn +\n\t\t\t' ' +\n\t\t\tstyles.skillCancelBtn +\n\t\t\t'\" data-action=\"cancel-editor\">' +\n\t\t\ti18n.t('ui.settings.cancel') +\n\t\t\t'</button>'\n\t\thtml += '</div>'\n\n\t\thtml += '</div>'\n\n\t\tpanelEl.innerHTML = html\n\n\t\tconst cancelBtn = panelEl.querySelector('[data-action=\"cancel-editor\"]')\n\t\tif (cancelBtn) {\n\t\t\tcancelBtn.addEventListener('click', () => this.#buildSkillsTab())\n\t\t}\n\n\t\tconst doImportBtn = panelEl.querySelector('[data-action=\"do-import\"]')\n\t\tif (doImportBtn) {\n\t\t\tdoImportBtn.addEventListener('click', async () => {\n\t\t\t\tconst textarea = panelEl.querySelector<HTMLTextAreaElement>('[data-import-field=\"content\"]')\n\t\t\t\tconst raw = textarea?.value?.trim()\n\t\t\t\tif (!raw) return\n\n\t\t\t\ttry {\n\t\t\t\t\t// Try to parse as JSON first\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait SkillStorage.importJSON(raw)\n\t\t\t\t\t\tthis.#buildSkillsTab()\n\t\t\t\t\t\treturn\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// Not valid JSON — treat as text content\n\t\t\t\t\t}\n\n\t\t\t\t\t// Create skill from text content\n\t\t\t\t\tconst result = this.#parseSkillContent(raw)\n\t\t\t\t\tconst stored: StoredSkill = {\n\t\t\t\t\t\tid: generateSkillId(),\n\t\t\t\t\t\tname: result.name,\n\t\t\t\t\t\tdescription: result.description,\n\t\t\t\t\t\tversion: '1.0.0',\n\t\t\t\t\t\tsystemPromptFragment: raw,\n\t\t\t\t\t\tenabled: false,\n\t\t\t\t\t\tcreatedAt: Date.now(),\n\t\t\t\t\t\tupdatedAt: Date.now(),\n\t\t\t\t\t}\n\n\t\t\t\t\tawait SkillStorage.save(stored)\n\t\t\t\t\tthis.#buildSkillsTab()\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error('[Panel] Failed to import skill:', error)\n\t\t\t\t\talert(i18n.t('ui.skills.importFailed') + (error as Error).message)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\t/** Extract name and description from pasted text content. */\n\t#parseSkillContent(raw: string): { name: string; description: string } {\n\t\tlet skillName = ''\n\t\tlet skillDesc = ''\n\t\tlet bodyContent = raw\n\n\t\t// Check for YAML frontmatter\n\t\tconst fmMatch = /^---\\s*\\n([\\s\\S]*?)\\n---\\s*\\n/.exec(raw)\n\t\tif (fmMatch) {\n\t\t\tconst frontmatter = fmMatch[1]\n\t\t\tbodyContent = raw.substring(fmMatch[0].length)\n\t\t\tfor (const line of frontmatter.split('\\n')) {\n\t\t\t\tconst kvMatch = /^\\s*(\\w+)\\s*:\\s*(.+)$/.exec(line)\n\t\t\t\tif (kvMatch) {\n\t\t\t\t\tconst key = kvMatch[1].toLowerCase()\n\t\t\t\t\tconst val = kvMatch[2].trim().replace(/^['\"]|['\"]$/g, '')\n\t\t\t\t\tif (key === 'name' || key === 'title') skillName = val\n\t\t\t\t\tif (key === 'description') skillDesc = val\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Fallback name\n\t\tif (!skillName) {\n\t\t\tconst lines = bodyContent.trim().split('\\n')\n\t\t\tfor (const line of lines) {\n\t\t\t\tconst cleaned = line.replace(/^#+\\s*/, '').trim()\n\t\t\t\tif (cleaned && !cleaned.startsWith('---')) {\n\t\t\t\t\tskillName = cleaned.substring(0, 60)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Fallback description\n\t\tif (!skillDesc) {\n\t\t\tskillDesc =\n\t\t\t\traw.length > 500\n\t\t\t\t\t? 'Imported document (' + raw.length + ' chars, ~' + raw.split(/\\s+/).length + ' words)'\n\t\t\t\t\t: 'Imported text (' + raw.length + ' chars)'\n\t\t}\n\n\t\treturn { name: skillName || 'Imported Skill', description: skillDesc }\n\t}\n\n\t#syncSettingsFromForm(settings: PageAgentSettings): void {\n\t\t// Collect general settings\n\t\tconst tempEl = this.#settingsSection.querySelector<HTMLInputElement>(\n\t\t\t'[data-general=\"temperature\"]'\n\t\t)!\n\t\tif (tempEl) settings.temperature = parseFloat(tempEl.value)\n\n\t\tconst maxStepsEl = this.#settingsSection.querySelector<HTMLInputElement>(\n\t\t\t'[data-general=\"maxSteps\"]'\n\t\t)!\n\t\tif (maxStepsEl) settings.maxSteps = parseInt(maxStepsEl.value, 10) || 40\n\n\t\t// Collect provider fields\n\t\tfor (let i = 0; i < settings.providers.length; i++) {\n\t\t\tconst p = settings.providers[i]\n\n\t\t\tconst nameEl = this.#settingsSection.querySelector<HTMLInputElement>(\n\t\t\t\t'[data-provider-field=\"name\"][data-provider-index=\"' + i + '\"]'\n\t\t\t)!\n\t\t\tif (nameEl) p.name = nameEl.value\n\n\t\t\tconst urlEl = this.#settingsSection.querySelector<HTMLInputElement>(\n\t\t\t\t'[data-provider-field=\"baseURL\"][data-provider-index=\"' + i + '\"]'\n\t\t\t)!\n\t\t\tif (urlEl) p.baseURL = urlEl.value\n\n\t\t\tconst keyEl = this.#settingsSection.querySelector<HTMLInputElement>(\n\t\t\t\t'[data-provider-field=\"apiKey\"][data-provider-index=\"' + i + '\"]'\n\t\t\t)!\n\t\t\tif (keyEl) p.apiKey = keyEl.value\n\n\t\t\tconst formatEl = this.#settingsSection.querySelector<HTMLSelectElement>(\n\t\t\t\t'[data-provider-field=\"apiFormat\"][data-provider-index=\"' + i + '\"]'\n\t\t\t)!\n\t\t\tif (formatEl) p.apiFormat = formatEl.value as 'openai' | 'anthropic'\n\n\t\t\t// Collect model fields\n\t\t\tfor (let mi = 0; mi < p.models.length; mi++) {\n\t\t\t\tconst modelNameEl = this.#settingsSection.querySelector<HTMLInputElement>(\n\t\t\t\t\t'[data-provider-field=\"modelName\"][data-provider-index=\"' +\n\t\t\t\t\t\ti +\n\t\t\t\t\t\t'\"][data-model-index=\"' +\n\t\t\t\t\t\tmi +\n\t\t\t\t\t\t'\"]'\n\t\t\t\t)!\n\t\t\t\tif (modelNameEl) p.models[mi].name = modelNameEl.value\n\t\t\t}\n\t\t}\n\n\t\tconst selectedProviderEl = this.#settingsSection.querySelector(\n\t\t\t'[data-action=\"select-provider\"].' + styles.providerCardSelectBtnActive\n\t\t) as HTMLElement | null\n\t\tconst selectedProviderId = selectedProviderEl?.getAttribute('data-provider-id') || ''\n\t\tif (selectedProviderId) {\n\t\t\tthis.#selectProvider(settings, selectedProviderId)\n\t\t}\n\n\t\tconst selectedModelBtn = this.#settingsSection.querySelector(\n\t\t\t'[data-action=\"select-model\"].' + styles.modelSelectBtnActive\n\t\t) as HTMLElement | null\n\t\tconst selectedModelIndex = parseInt(\n\t\t\tselectedModelBtn?.getAttribute('data-model-index') || '',\n\t\t\t10\n\t\t)\n\t\tif (selectedProviderId && !isNaN(selectedModelIndex)) {\n\t\t\tthis.#setActiveModelByIndex(settings, selectedProviderId, selectedModelIndex)\n\t\t}\n\n\t\t// Ensure active provider/model are valid\n\t\tconst resolved = resolveActiveModel(settings)\n\t\tif (resolved) {\n\t\t\tsettings.activeProviderId = resolved.provider.id\n\t\t\tsettings.activeModelName = resolved.model.name\n\t\t} else {\n\t\t\t// No valid active provider/model — pick first available\n\t\t\tconst fallback = settings.providers[0]\n\t\t\tif (fallback) {\n\t\t\t\tthis.#selectProvider(settings, fallback.id)\n\t\t\t}\n\t\t}\n\t}\n\n\t#collectSettingsFromForm(): PageAgentSettings {\n\t\tconst settings = this.#loadSettings()\n\t\tthis.#syncSettingsFromForm(settings)\n\t\treturn settings\n\t}\n\n\t#persistSettings(settings: PageAgentSettings, feedbackButton?: HTMLElement): void {\n\t\tthis.#saveSettingsToStorage(settings)\n\t\tthis.#modelSwitcher.render(settings)\n\t\t// Propagate to agent so the LLM instance picks up any config changes\n\t\tif (settings.activeModelName && typeof (this.#agent as any).switchModel === 'function') {\n\t\t\t;(this.#agent as any).switchModel(settings.activeProviderId, settings.activeModelName)\n\t\t}\n\n\t\tif (feedbackButton) {\n\t\t\tconst orig = feedbackButton.textContent\n\t\t\tfeedbackButton.textContent = '✓ ' + this.#i18n.t('ui.settings.save')\n\t\t\tfeedbackButton.style.background = '#4caf50'\n\t\t\tsetTimeout(() => {\n\t\t\t\tfeedbackButton.textContent = orig\n\t\t\t\tfeedbackButton.style.background = ''\n\t\t\t}, 2000)\n\t\t}\n\t}\n\n\t#saveSettings(): void {\n\t\tconst settings = this.#collectSettingsFromForm()\n\t\tthis.#persistSettings(settings)\n\t}\n\n\t#loadSettings(): PageAgentSettings {\n\t\tconst stored = this.#loadRawFromStorage()\n\t\tif (stored && this.#isNewFormat(stored)) {\n\t\t\t// Normalize: ensure apiFormat defaults for providers that lack it\n\t\t\tconst settings = stored as unknown as PageAgentSettings\n\t\t\tfor (const p of settings.providers) {\n\t\t\t\tif (!p.apiFormat) p.apiFormat = 'openai'\n\t\t\t}\n\t\t\treturn settings\n\t\t}\n\t\t// Migrate old flat format or return defaults\n\t\tconst migrated = this.#migrateSettings(stored)\n\t\tthis.#saveSettingsToStorage(migrated)\n\t\treturn migrated\n\t}\n\n\t#loadRawFromStorage(): Record<string, string> | null {\n\t\ttry {\n\t\t\tconst raw = localStorage.getItem(Panel.#SETTINGS_STORAGE_KEY)\n\t\t\tif (raw) return JSON.parse(raw)\n\t\t} catch {\n\t\t\t// Ignore parse errors\n\t\t}\n\t\treturn null\n\t}\n\n\t#isNewFormat(stored: Record<string, string>): boolean {\n\t\treturn 'providers' in stored && Array.isArray(stored.providers)\n\t}\n\n\t/**\n\t * Migrate old flat settings (or empty state) to the new multi-provider format.\n\t */\n\t#migrateSettings(oldSettings: Record<string, string> | null): PageAgentSettings {\n\t\tif (oldSettings && (oldSettings.baseURL || oldSettings.model)) {\n\t\t\t// Old flat format detected — wrap into a single provider\n\t\t\tconst defaultProvider: ProviderConfig = {\n\t\t\t\tid: generateId('provider'),\n\t\t\t\tname: this.#inferProviderName(oldSettings.baseURL || ''),\n\t\t\t\tbaseURL: oldSettings.baseURL || '',\n\t\t\t\tapiFormat: 'openai',\n\t\t\t\tapiKey: oldSettings.apiKey || '',\n\t\t\t\tmodels: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: oldSettings.model || '',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tenabled: true,\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tproviders: [defaultProvider],\n\t\t\t\tactiveProviderId: defaultProvider.id,\n\t\t\t\tactiveModelName: oldSettings.model || '',\n\t\t\t\tmaxSteps: oldSettings.maxSteps ? parseInt(oldSettings.maxSteps, 10) : 40,\n\t\t\t\ttemperature:\n\t\t\t\t\toldSettings.temperature != null && oldSettings.temperature !== ''\n\t\t\t\t\t\t? parseFloat(oldSettings.temperature)\n\t\t\t\t\t\t: 0.7,\n\t\t\t}\n\t\t}\n\t\t// No existing settings — return empty defaults\n\t\treturn this.#getDefaultSettings()\n\t}\n\n\t#getDefaultSettings(): PageAgentSettings {\n\t\tconst d = this.#config.defaults || {}\n\t\tconst defaultId = generateId('provider')\n\t\treturn {\n\t\t\tproviders: [\n\t\t\t\t{\n\t\t\t\t\tid: defaultId,\n\t\t\t\t\tname: this.#inferProviderName(d.baseURL || ''),\n\t\t\t\t\tbaseURL: d.baseURL || '',\n\t\t\t\t\tapiFormat: 'openai',\n\t\t\t\t\tapiKey: d.apiKey || '',\n\t\t\t\t\tmodels: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: d.model || '',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tenabled: true,\n\t\t\t\t},\n\t\t\t],\n\t\t\tactiveProviderId: defaultId,\n\t\t\tactiveModelName: d.model || '',\n\t\t\tmaxSteps: d.maxSteps ?? 40,\n\t\t\ttemperature: d.temperature ?? 0.7,\n\t\t}\n\t}\n\n\t#inferProviderName(baseURL: string): string {\n\t\tconst url = baseURL.toLowerCase()\n\t\tif (url.includes('openai')) return 'OpenAI'\n\t\tif (url.includes('anthropic')) return 'Anthropic'\n\t\tif (url.includes('deepseek')) return 'DeepSeek'\n\t\tif (url.includes('gemini') || url.includes('google')) return 'Google'\n\t\tif (url.includes('groq')) return 'Groq'\n\t\tif (url.includes('azure')) return 'Azure'\n\t\tif (url.includes('localhost') || url.includes('127.0.0.1')) return 'Local'\n\t\treturn 'Custom'\n\t}\n\n\t#saveSettingsToStorage(settings: PageAgentSettings): void {\n\t\ttry {\n\t\t\tlocalStorage.setItem(Panel.#SETTINGS_STORAGE_KEY, JSON.stringify(settings))\n\t\t} catch {\n\t\t\t// localStorage may be unavailable\n\t\t}\n\t}\n\n\t/**\n\t * Get the active LLM config derived from the currently selected provider + model.\n\t * Returns null if no active provider/model is configured.\n\t */\n\tgetActiveLLMConfig(): ActiveLLMConfig | null {\n\t\tconst settings = this.#loadSettings()\n\t\tconst resolved = resolveActiveModel(settings)\n\t\tif (!resolved) return null\n\t\tconst { provider, model } = resolved\n\t\treturn {\n\t\t\tbaseURL: provider.baseURL,\n\t\t\tmodel: model.name,\n\t\t\tapiKey: provider.apiKey,\n\t\t\tapiFormat: provider.apiFormat,\n\t\t\ttemperature: model.temperature ?? settings.temperature,\n\t\t\tmaxSteps: settings.maxSteps,\n\t\t}\n\t}\n\n\t/**\n\t * Get current settings from storage (public, for use by PageAgent during initialization).\n\t */\n\tgetSettings(): Record<string, string> {\n\t\tconst settings = this.#loadSettings()\n\t\tconst resolved = resolveActiveModel(settings)\n\t\tif (!resolved) return {}\n\t\tconst { provider, model } = resolved\n\t\treturn {\n\t\t\tbaseURL: provider.baseURL,\n\t\t\tmodel: model.name,\n\t\t\tapiKey: provider.apiKey || '',\n\t\t\ttemperature: (model.temperature ?? settings.temperature).toString(),\n\t\t\tmaxSteps: settings.maxSteps.toString(),\n\t\t}\n\t}\n\n\t// ========== Toggle / Expand / Collapse ==========\n\n\t#getHistoryToggleIcon(): string {\n\t\treturn `\n\t\t\t<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n\t\t\t\t<path d=\"M3 4v5h5\" />\n\t\t\t\t<path d=\"M3.5 9a9 9 0 1 1 2.6 6.4\" />\n\t\t\t\t<path d=\"M12 7.5v4.5l3 1.8\" />\n\t\t\t</svg>\n\t\t`\n\t}\n\n\t#syncHistoryToggleButton(): void {\n\t\tconst title = this.#i18n.t('ui.panel.history')\n\t\tthis.#expandButton.setAttribute('title', title)\n\t\tthis.#expandButton.setAttribute('aria-label', title)\n\t\tthis.#expandButton.innerHTML = this.#getHistoryToggleIcon()\n\t\tthis.#expandButton.classList.toggle(styles.expandButtonActive, this.#isExpanded)\n\t}\n\n\t#toggle(): void {\n\t\tif (this.#isExpanded) {\n\t\t\tthis.#collapse()\n\t\t} else {\n\t\t\tthis.#expand()\n\t\t}\n\t}\n\n\t#expand(): void {\n\t\tthis.#isExpanded = true\n\t\tthis.wrapper.classList.add(styles.expanded)\n\t\tthis.#syncHistoryToggleButton()\n\t}\n\n\t#collapse(): void {\n\t\tthis.#isExpanded = false\n\t\tthis.wrapper.classList.remove(styles.expanded)\n\t\tthis.#syncHistoryToggleButton()\n\t}\n\n\t/**\n\t * Start periodic header update loop\n\t */\n\t#startHeaderUpdateLoop(): void {\n\t\t// Check every 450ms (same as total animation duration)\n\t\tthis.#headerUpdateTimer = setInterval(() => {\n\t\t\tthis.#checkAndUpdateHeader()\n\t\t}, 450)\n\t}\n\n\t/**\n\t * Stop periodic header update loop\n\t */\n\t#stopHeaderUpdateLoop(): void {\n\t\tif (this.#headerUpdateTimer) {\n\t\t\tclearInterval(this.#headerUpdateTimer)\n\t\t\tthis.#headerUpdateTimer = null\n\t\t}\n\t}\n\n\t/**\n\t * Check if header needs update and trigger animation if not currently animating\n\t */\n\t#checkAndUpdateHeader(): void {\n\t\t// If no pending text or currently animating, skip\n\t\tif (!this.#pendingHeaderText || this.#isAnimating) {\n\t\t\treturn\n\t\t}\n\n\t\t// If text is already displayed, clear pending and skip\n\t\tif (this.#statusText.textContent === this.#pendingHeaderText) {\n\t\t\tthis.#pendingHeaderText = null\n\t\t\treturn\n\t\t}\n\n\t\t// Start animation\n\t\tconst textToShow = this.#pendingHeaderText\n\t\tthis.#pendingHeaderText = null\n\t\tthis.#animateTextChange(textToShow)\n\t}\n\n\t/**\n\t * Animate text change with fade out/in effect\n\t */\n\t#animateTextChange(newText: string): void {\n\t\tthis.#isAnimating = true\n\n\t\t// Fade out current text\n\t\tthis.#statusText.classList.add(styles.fadeOut)\n\n\t\tsetTimeout(() => {\n\t\t\t// Update text content\n\t\t\tthis.#statusText.textContent = newText\n\n\t\t\t// Fade in new text\n\t\t\tthis.#statusText.classList.remove(styles.fadeOut)\n\t\t\tthis.#statusText.classList.add(styles.fadeIn)\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.#statusText.classList.remove(styles.fadeIn)\n\t\t\t\tthis.#isAnimating = false\n\t\t\t}, 300)\n\t\t}, 150) // Half the duration of fade out animation\n\t}\n\n\t#updateStatusIndicator(\n\t\ttype:\n\t\t\t| 'idle'\n\t\t\t| 'running'\n\t\t\t| 'thinking'\n\t\t\t| 'executing'\n\t\t\t| 'executed'\n\t\t\t| 'retrying'\n\t\t\t| 'completed'\n\t\t\t| 'error'\n\t\t\t| 'stopped'\n\t): void {\n\t\t// `running` animates like thinking; `idle`/`stopped` use the neutral base.\n\t\tconst variant = type === 'running' ? 'thinking' : type\n\t\tthis.#indicator.className = styles.indicator\n\t\tif (variant !== 'idle' && variant !== 'stopped') {\n\t\t\tthis.#indicator.classList.add(styles[variant])\n\t\t}\n\t}\n\n\t#scrollToBottom(): void {\n\t\t// Execute in next event loop to ensure DOM update completion\n\t\tsetTimeout(() => {\n\t\t\tthis.#historySection.scrollTop = this.#historySection.scrollHeight\n\t\t}, 0)\n\t}\n\n\t/**\n\t * Render history directly from agent.history\n\t *\n\t * Renders:\n\t * 1. Task (first item, from agent.task)\n\t * 2. Reflection cards (evaluation, memory, next_goal) with timeline\n\t * 3. Tool execution with output and timeline dots\n\t * 4. Observations\n\t */\n\t#renderHistory(): void {\n\t\tconst items: string[] = []\n\n\t\t// 1. Task card (always first, no timeline dot)\n\t\tconst task = this.#agent.task\n\t\tif (task) {\n\t\t\titems.push(this.#createTaskCard(task))\n\t\t}\n\n\t\t// 2. Render each history event with timeline grouping\n\t\tconst history = this.#agent.history\n\t\tfor (const event of history) {\n\t\t\titems.push(...this.#createHistoryCards(event))\n\t\t}\n\n\t\tif (items.length === 0) {\n\t\t\titems.push(\n\t\t\t\t`<div class=\"${styles.historyItem}\">` +\n\t\t\t\t\t`<div class=\"${styles.historyContent}\">` +\n\t\t\t\t\t`<span class=\"${styles.statusIcon}\">🧠</span>` +\n\t\t\t\t\t`<span>${this.#i18n.t('ui.panel.waitingPlaceholder')}</span>` +\n\t\t\t\t\t`</div></div>`\n\t\t\t)\n\t\t}\n\n\t\tthis.#historySection.innerHTML = items.join('')\n\t\tthis.#scrollToBottom()\n\t}\n\n\t#createTaskCard(task: string): string {\n\t\treturn createCard({ icon: '🎯', content: task, type: 'input' })\n\t}\n\n\t/** Create cards for a history event with timeline grouping */\n\t#createHistoryCards(event: PanelAgentAdapter['history'][number]): string[] {\n\t\tconst cards: string[] = []\n\t\tconst stepIndex = event.type === 'step' ? event.stepIndex : undefined\n\t\tconst meta =\n\t\t\tstepIndex !== undefined\n\t\t\t\t? this.#i18n.t('ui.panel.step', {\n\t\t\t\t\t\tnumber: (stepIndex + 1).toString(),\n\t\t\t\t\t})\n\t\t\t\t: undefined\n\n\t\tif (event.type === 'step') {\n\t\t\t// Collect all cards for this step to mark first/last for timeline grouping\n\t\t\tconst stepCards: string[] = []\n\n\t\t\t// Reflection card (think phase)\n\t\t\tif (event.reflection) {\n\t\t\t\tconst lines = createReflectionLines(event.reflection)\n\t\t\t\tif (lines.length > 0) {\n\t\t\t\t\tstepCards.push(\n\t\t\t\t\t\tcreateCard({\n\t\t\t\t\t\t\ticon: '🧠',\n\t\t\t\t\t\t\tcontent: lines,\n\t\t\t\t\t\t\tmeta,\n\t\t\t\t\t\t\tstepIndex,\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Action card(s)\n\t\t\tconst action = event.action\n\t\t\tif (action) {\n\t\t\t\tstepCards.push(...this.#createActionCards(action, meta, stepIndex))\n\t\t\t}\n\n\t\t\t// Mark first and last cards in the step group for timeline connectors\n\t\t\tif (stepCards.length === 1) {\n\t\t\t\tcards.push(this.#addTimelineGrouping(stepCards[0], true, true))\n\t\t\t} else if (stepCards.length > 1) {\n\t\t\t\tcards.push(this.#addTimelineGrouping(stepCards[0], true, false))\n\t\t\t\tfor (let i = 1; i < stepCards.length - 1; i++) {\n\t\t\t\t\tcards.push(stepCards[i])\n\t\t\t\t}\n\t\t\t\tcards.push(this.#addTimelineGrouping(stepCards[stepCards.length - 1], false, true))\n\t\t\t}\n\t\t} else if (event.type === 'observation') {\n\t\t\tcards.push(\n\t\t\t\tcreateCard({ icon: '👁️', content: event.content || '', meta, type: 'observation' })\n\t\t\t)\n\t\t} else if (event.type === 'user_takeover') {\n\t\t\tcards.push(createCard({ icon: '👤', content: 'User takeover', meta, type: 'input' }))\n\t\t} else if (event.type === 'retry') {\n\t\t\tconst retryInfo = `${event.message || 'Retrying'} (${event.attempt}/${event.maxAttempts})`\n\t\t\tcards.push(createCard({ icon: '🔄', content: retryInfo, meta, type: 'observation' }))\n\t\t} else if (event.type === 'error') {\n\t\t\tcards.push(\n\t\t\t\tcreateCard({ icon: '❌', content: event.message || 'Error', meta, type: 'observation' })\n\t\t\t)\n\t\t}\n\n\t\treturn cards\n\t}\n\n\t/**\n\t * Add timeline grouping classes (timelineFirst/timelineLast) to a card HTML string.\n\t * Used to draw timeline connectors between step groups.\n\t */\n\t#addTimelineGrouping(cardHtml: string, isFirst: boolean, isLast: boolean): string {\n\t\tconst parts: string[] = []\n\t\tif (isFirst) parts.push(styles.timelineFirst)\n\t\tif (isLast) parts.push(styles.timelineLast)\n\t\tconst groupingClass = parts.join(' ')\n\t\tif (!groupingClass) return cardHtml\n\n\t\t// Insert grouping classes into the historyItem div's class attribute\n\t\treturn cardHtml.replace(\n\t\t\t`class=\"${styles.historyItem}`,\n\t\t\t`class=\"${styles.historyItem} ${groupingClass}`\n\t\t)\n\t}\n\n\t/** Create cards for an action */\n\t#createActionCards(\n\t\taction: { name: string; input: unknown; output: string },\n\t\tmeta?: string,\n\t\tstepIndex?: number\n\t): string[] {\n\t\tconst cards: string[] = []\n\n\t\tif (action.name === 'done') {\n\t\t\tconst input = action.input as { text?: string }\n\t\t\tconst text = input.text || action.output || ''\n\t\t\tif (text) {\n\t\t\t\tcards.push(\n\t\t\t\t\tcreateCard({\n\t\t\t\t\t\ticon: '🤖',\n\t\t\t\t\t\tcontent: text,\n\t\t\t\t\t\tmeta,\n\t\t\t\t\t\ttype: 'output',\n\t\t\t\t\t\tmarkdown: true,\n\t\t\t\t\t\tstepIndex,\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t}\n\t\t} else if (action.name === 'ask_user') {\n\t\t\tconst input = action.input as { question?: string }\n\t\t\tconst answer = action.output.replace(/^User answered:\\s*/i, '')\n\t\t\tcards.push(\n\t\t\t\tcreateCard({\n\t\t\t\t\ticon: '❓',\n\t\t\t\t\tcontent: `Question: ${input.question || ''}`,\n\t\t\t\t\tmeta,\n\t\t\t\t\ttype: 'question',\n\t\t\t\t\tstepIndex,\n\t\t\t\t})\n\t\t\t)\n\t\t\tcards.push(\n\t\t\t\tcreateCard({\n\t\t\t\t\ticon: '💬',\n\t\t\t\t\tcontent: `Answer: ${answer}`,\n\t\t\t\t\tmeta,\n\t\t\t\t\ttype: 'input',\n\t\t\t\t\tstepIndex,\n\t\t\t\t})\n\t\t\t)\n\t\t} else {\n\t\t\tconst toolText = this.#getToolExecutingText(action.name, action.input)\n\t\t\tcards.push(createCard({ icon: '🔨', content: toolText, meta, stepIndex }))\n\t\t\tif (action.output?.length > 0) {\n\t\t\t\tcards.push(\n\t\t\t\t\tcreateCard({\n\t\t\t\t\t\ticon: '🔨',\n\t\t\t\t\t\tcontent: action.output,\n\t\t\t\t\t\tmeta,\n\t\t\t\t\t\ttype: 'output',\n\t\t\t\t\t\tmarkdown: true,\n\t\t\t\t\t\tstepIndex,\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\n\t\treturn cards\n\t}\n\n\t// ========== Conversation Management ==========\n\n\t#setupConversationEvents(): void {\n\t\tthis.#conversationBtn.addEventListener('click', (e) => {\n\t\t\te.stopPropagation()\n\t\t\tthis.#toggleConversationDropdown()\n\t\t})\n\t\tthis.#newConvBtn.addEventListener('click', (e) => {\n\t\t\te.stopPropagation()\n\t\t\tthis.#handleNewConversation()\n\t\t})\n\t\tdocument.addEventListener('click', this.#onDocumentClick)\n\t}\n\n\t#handleDocumentClick(e: MouseEvent): void {\n\t\tif (!this.#isConversationDropdownOpen) return\n\t\tconst target = e.target as HTMLElement\n\t\tif (\n\t\t\t!target.closest(`.${styles.conversationSection}`) &&\n\t\t\t!target.closest(`.${styles.conversationDropdown}`)\n\t\t) {\n\t\t\tthis.#closeConversationDropdown()\n\t\t}\n\t}\n\n\tasync #initConversations(): Promise<void> {\n\t\ttry {\n\t\t\tthis.#conversations = await ConversationStorage.list()\n\t\t} catch (err) {\n\t\t\tconsole.error('[Panel] Failed to list conversations:', err)\n\t\t\tthis.#conversations = []\n\t\t}\n\t\tconst activeId = ConversationStorage.getActiveId()\n\t\tif (activeId) {\n\t\t\ttry {\n\t\t\t\tconst conv = await ConversationStorage.get(activeId)\n\t\t\t\tif (conv && this.#agent.restoreConversationState) {\n\t\t\t\t\tthis.#activeConversationId = conv.id\n\t\t\t\t\tthis.#isRestoring = true\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.#agent.restoreConversationState({\n\t\t\t\t\t\t\ttask: conv.task,\n\t\t\t\t\t\t\thistory: conv.history,\n\t\t\t\t\t\t\tlastResult: conv.lastResult,\n\t\t\t\t\t\t\tstatus: conv.status,\n\t\t\t\t\t\t})\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tthis.#isRestoring = false\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tConversationStorage.clearActiveId()\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error('[Panel] Failed to restore active conversation:', err)\n\t\t\t\tConversationStorage.clearActiveId()\n\t\t\t}\n\t\t}\n\t\tthis.#updateConversationButtonLabel()\n\t}\n\n\tasync #toggleConversationDropdown(): Promise<void> {\n\t\tif (this.#isConversationDropdownOpen) {\n\t\t\tthis.#closeConversationDropdown()\n\t\t\treturn\n\t\t}\n\t\t// Set flag immediately to prevent race conditions from rapid double-clicks\n\t\tthis.#isConversationDropdownOpen = true\n\t\ttry {\n\t\t\tthis.#conversations = await ConversationStorage.list()\n\t\t} catch (err) {\n\t\t\tconsole.error('[Panel] Failed to list conversations:', err)\n\t\t\tthis.#conversations = []\n\t\t}\n\t\tthis.#renderConversationDropdown()\n\t\t// Portal dropdown to wrapper to escape inputSectionWrapper stacking context\n\t\tthis.#wrapper.appendChild(this.#conversationDropdownContainer)\n\t\tconst btnRect = this.#conversationBtn.getBoundingClientRect()\n\t\tconst wrapperRect = this.#wrapper.getBoundingClientRect()\n\t\tthis.#conversationDropdownContainer.style.left = `${btnRect.left - wrapperRect.left}px`\n\t\tthis.#conversationDropdownContainer.style.bottom = `${wrapperRect.bottom - btnRect.top + 6}px`\n\t\tthis.#conversationDropdownContainer.classList.remove(styles.hidden)\n\t\tthis.#conversationBtn.classList.add(styles.conversationBtnActive)\n\t}\n\n\t#closeConversationDropdown(): void {\n\t\tthis.#conversationDropdownContainer.classList.add(styles.hidden)\n\t\tthis.#conversationSection.appendChild(this.#conversationDropdownContainer)\n\t\tthis.#conversationDropdownContainer.style.left = ''\n\t\tthis.#conversationDropdownContainer.style.bottom = ''\n\t\tthis.#isConversationDropdownOpen = false\n\t\tthis.#conversationBtn.classList.remove(styles.conversationBtnActive)\n\t}\n\n\t#renderConversationDropdown(): void {\n\t\tconst items: string[] = []\n\t\tif (this.#conversations.length === 0) {\n\t\t\titems.push(\n\t\t\t\t`<div class=\"${styles.conversationDropdownEmpty}\">` +\n\t\t\t\t\t`${this.#i18n.t('ui.panel.noConversations')}</div>`\n\t\t\t)\n\t\t} else {\n\t\t\tfor (const conv of this.#conversations) {\n\t\t\t\tconst isActive = conv.id === this.#activeConversationId\n\t\t\t\tconst timeStr = this.#formatRelativeTime(conv.updatedAt)\n\t\t\t\tconst title = conv.title || this.#i18n.t('ui.panel.conversationDefaultTitle')\n\t\t\t\titems.push(\n\t\t\t\t\t`<div class=\"${styles.conversationDropdownItem} ${isActive ? styles.conversationDropdownItemActive : ''}\" data-conv-id=\"${conv.id}\">` +\n\t\t\t\t\t\t`<div class=\"${styles.conversationDropdownItemContent}\">` +\n\t\t\t\t\t\t`<span class=\"${styles.conversationDropdownItemTitle}\">${escapeHtml(title)}</span>` +\n\t\t\t\t\t\t`<span class=\"${styles.conversationDropdownItemTime}\">${timeStr}</span>` +\n\t\t\t\t\t\t`</div>` +\n\t\t\t\t\t\t`<button class=\"${styles.conversationDropdownItemDelete}\" data-delete-conv=\"${conv.id}\" title=\"${this.#i18n.t('ui.panel.deleteConversation')}\">🗑</button>` +\n\t\t\t\t\t\t`</div>`\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\tthis.#conversationDropdownContainer.innerHTML = items.join('')\n\t\tthis.#conversationDropdownContainer.querySelectorAll('[data-conv-id]').forEach((el) => {\n\t\t\tel.addEventListener('click', (e) => {\n\t\t\t\tconst target = e.target as HTMLElement\n\t\t\t\tif (target.closest('[data-delete-conv]')) return\n\t\t\t\tconst convId = el.getAttribute('data-conv-id')\n\t\t\t\tif (convId) this.#handleConversationSelect(convId)\n\t\t\t})\n\t\t})\n\t\tthis.#conversationDropdownContainer.querySelectorAll('[data-delete-conv]').forEach((el) => {\n\t\t\tel.addEventListener('click', (e) => {\n\t\t\t\te.stopPropagation()\n\t\t\t\tconst convId = el.getAttribute('data-delete-conv')\n\t\t\t\tif (convId) this.#handleDeleteConversation(convId)\n\t\t\t})\n\t\t})\n\t}\n\n\tasync #handleConversationSelect(id: string): Promise<void> {\n\t\tawait this.#saveCurrentConversation()\n\t\ttry {\n\t\t\tconst conv = await ConversationStorage.get(id)\n\t\t\tif (conv && this.#agent.restoreConversationState) {\n\t\t\t\tthis.#isRestoring = true\n\t\t\t\ttry {\n\t\t\t\t\tthis.#agent.restoreConversationState({\n\t\t\t\t\t\ttask: conv.task,\n\t\t\t\t\t\thistory: conv.history,\n\t\t\t\t\t\tlastResult: conv.lastResult,\n\t\t\t\t\t\tstatus: conv.status,\n\t\t\t\t\t})\n\t\t\t\t} finally {\n\t\t\t\t\tthis.#isRestoring = false\n\t\t\t\t}\n\t\t\t\tthis.#activeConversationId = conv.id\n\t\t\t\tConversationStorage.setActiveId(conv.id)\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tconsole.error('[Panel] Failed to select conversation:', err)\n\t\t}\n\t\tthis.#closeConversationDropdown()\n\t\tthis.#updateConversationButtonLabel()\n\t\tthis.#renderHistory()\n\t}\n\n\tasync #handleNewConversation(): Promise<void> {\n\t\tawait this.#saveCurrentConversation()\n\t\tif (this.#agent.newConversation) {\n\t\t\tthis.#agent.newConversation()\n\t\t}\n\t\tthis.#activeConversationId = null\n\t\tConversationStorage.clearActiveId()\n\t\tthis.#closeConversationDropdown()\n\t\tthis.#updateConversationButtonLabel()\n\t\tthis.#renderHistory()\n\t\tthis.#showInputArea()\n\t}\n\n\tasync #handleDeleteConversation(id: string): Promise<void> {\n\t\ttry {\n\t\t\tawait ConversationStorage.delete(id)\n\t\t} catch (err) {\n\t\t\tconsole.error('[Panel] Failed to delete conversation:', err)\n\t\t}\n\t\tif (id === this.#activeConversationId) {\n\t\t\tthis.#activeConversationId = null\n\t\t\tConversationStorage.clearActiveId()\n\t\t\tif (this.#agent.newConversation) {\n\t\t\t\tthis.#agent.newConversation()\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tthis.#conversations = await ConversationStorage.list()\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error('[Panel] Failed to list conversations after delete:', err)\n\t\t\t\tthis.#conversations = []\n\t\t\t}\n\t\t\tif (this.#conversations.length > 0) {\n\t\t\t\tconst conv = this.#conversations[0]\n\t\t\t\tif (this.#agent.restoreConversationState) {\n\t\t\t\t\tthis.#isRestoring = true\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.#agent.restoreConversationState({\n\t\t\t\t\t\t\ttask: conv.task,\n\t\t\t\t\t\t\thistory: conv.history,\n\t\t\t\t\t\t\tlastResult: conv.lastResult,\n\t\t\t\t\t\t\tstatus: conv.status,\n\t\t\t\t\t\t})\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tthis.#isRestoring = false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.#activeConversationId = conv.id\n\t\t\t\tConversationStorage.setActiveId(conv.id)\n\t\t\t\tthis.#updateConversationButtonLabel()\n\t\t\t\tthis.#renderHistory()\n\t\t\t} else {\n\t\t\t\tif (this.#agent.newConversation) {\n\t\t\t\t\tthis.#agent.newConversation()\n\t\t\t\t}\n\t\t\t\tthis.#updateConversationButtonLabel()\n\t\t\t\tthis.#renderHistory()\n\t\t\t\tthis.#showInputArea()\n\t\t\t}\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tthis.#conversations = await ConversationStorage.list()\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error('[Panel] Failed to list conversations after non-active delete:', err)\n\t\t\t\tthis.#conversations = []\n\t\t\t}\n\t\t}\n\t\tif (this.#isConversationDropdownOpen) {\n\t\t\tthis.#renderConversationDropdown()\n\t\t}\n\t}\n\n\tasync #saveCurrentConversation(): Promise<void> {\n\t\tif (!this.#agent.getConversationState) return\n\t\tconst state = this.#agent.getConversationState()\n\t\tif (!state) return\n\t\tif (!state.task && state.history.length === 0) return\n\t\tconst id = this.#activeConversationId || generateConversationId()\n\t\tconst now = Date.now()\n\t\tlet title: string\n\t\tlet createdAt: number\n\t\tif (this.#activeConversationId) {\n\t\t\ttry {\n\t\t\t\tconst existing = await ConversationStorage.get(this.#activeConversationId)\n\t\t\t\tif (existing) {\n\t\t\t\t\ttitle = existing.title\n\t\t\t\t\tcreatedAt = existing.createdAt\n\t\t\t\t} else {\n\t\t\t\t\ttitle = state.task\n\t\t\t\t\t\t? deriveTitle(state.task)\n\t\t\t\t\t\t: this.#i18n.t('ui.panel.conversationDefaultTitle')\n\t\t\t\t\tcreatedAt = now\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error('[Panel] Failed to read existing conversation for save:', err)\n\t\t\t\ttitle = state.task\n\t\t\t\t\t? deriveTitle(state.task)\n\t\t\t\t\t: this.#i18n.t('ui.panel.conversationDefaultTitle')\n\t\t\t\tcreatedAt = now\n\t\t\t}\n\t\t} else {\n\t\t\ttitle = state.task\n\t\t\t\t? deriveTitle(state.task)\n\t\t\t\t: this.#i18n.t('ui.panel.conversationDefaultTitle')\n\t\t\tcreatedAt = now\n\t\t}\n\t\tconst conv: Conversation = {\n\t\t\tid,\n\t\t\ttitle,\n\t\t\tcreatedAt,\n\t\t\tupdatedAt: now,\n\t\t\ttask: state.task,\n\t\t\thistory: state.history as Conversation['history'],\n\t\t\tlastResult: state.lastResult,\n\t\t\t// Normalize 'running' to 'stopped' to prevent restore issues\n\t\t\tstatus: state.status === 'running' ? 'stopped' : state.status,\n\t\t}\n\t\ttry {\n\t\t\tawait ConversationStorage.save(conv)\n\t\t\tthis.#activeConversationId = id\n\t\t\tConversationStorage.setActiveId(id)\n\t\t} catch (err) {\n\t\t\tconsole.error('[Panel] Failed to save conversation — data may be lost:', err)\n\t\t}\n\t}\n\n\tasync #autoSaveOnTaskEnd(): Promise<void> {\n\t\tawait this.#saveCurrentConversation()\n\t\tthis.#updateConversationButtonLabel()\n\t\ttry {\n\t\t\tthis.#conversations = await ConversationStorage.list()\n\t\t} catch (err) {\n\t\t\tconsole.error('[Panel] Failed to list conversations after auto-save:', err)\n\t\t}\n\t}\n\n\t#updateConversationButtonLabel(): void {\n\t\tconst label = this.#conversationBtn.querySelector(`.${styles.conversationBtnLabel}`)\n\t\tif (!label) return\n\t\tif (this.#activeConversationId) {\n\t\t\tconst conv = this.#conversations.find((c) => c.id === this.#activeConversationId)\n\t\t\tif (conv) {\n\t\t\t\tlabel.textContent = conv.title || this.#i18n.t('ui.panel.conversationDefaultTitle')\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tif (this.#agent.task) {\n\t\t\tconst derived = deriveTitle(this.#agent.task)\n\t\t\tlabel.textContent = derived || this.#i18n.t('ui.panel.conversationDefaultTitle')\n\t\t} else {\n\t\t\tlabel.textContent = this.#i18n.t('ui.panel.conversationDefaultTitle')\n\t\t}\n\t}\n\n\t#formatRelativeTime(timestamp: number): string {\n\t\tconst now = Date.now()\n\t\t// Guard against future timestamps (clock skew / data anomalies)\n\t\tconst diffMs = Math.max(0, now - timestamp)\n\t\tconst diffSec = Math.floor(diffMs / 1000)\n\t\tconst diffMin = Math.floor(diffSec / 60)\n\t\tconst diffHour = Math.floor(diffMin / 60)\n\t\tconst diffDay = Math.floor(diffHour / 24)\n\t\tif (diffSec < 60) return this.#i18n.t('ui.panel.timeJustNow')\n\t\tif (diffMin < 60) return this.#i18n.t('ui.panel.timeMinutesAgo', { n: diffMin.toString() })\n\t\tif (diffHour < 24) return this.#i18n.t('ui.panel.timeHoursAgo', { n: diffHour.toString() })\n\t\tif (diffDay < 7) return this.#i18n.t('ui.panel.timeDaysAgo', { n: diffDay.toString() })\n\t\treturn new Date(timestamp).toLocaleDateString()\n\t}\n}\n"],"x_google_ignoreList":[8,9],"mappings":"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"}
|