@hao-gd/page-agent-ui 1.10.7 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/index.d.ts +380 -2
- package/dist/lib/page-agent-ui.js +3465 -440
- package/dist/lib/page-agent-ui.js.map +1 -1
- package/package.json +3 -2
|
@@ -1 +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, hide 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.hide()\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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"}
|
|
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","#handleGateKeydown","#MODE_STORAGE_KEY","#REMEMBER_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","#toastHost","#resumeBar","#modelSwitcherContainer","#modelSwitcher","#handleModelSwitch","#toggleSettings","#loadSettings","#conversationDropdownContainer","#conversationBtn","#conversationSection","#newConvBtn","#modeChip","#modePopover","#sendBtn","#interactionMode","#loadInteractionMode","#syncModeControl","#rememberApprovals","#loadRememberApprovals","#onStatusChange","#onHistoryChange","#onActivity","#onAgentDispose","#setupEventListeners","#syncHistoryToggleButton","#startHeaderUpdateLoop","#setupConversationEvents","#initConversations","#showInputArea","#restorePanelPosition","#syncResumeBar","#updateStatusIndicator","#hideInputArea","#renderActivity","#clearApproval","#lastActivity","#isRestoring","#isExpanded","#expand","#shouldShowInputArea","#autoSaveOnTaskEnd","#renderHistory","#pendingHeaderText","#getToolExecutingText","#showUndoToast","#isWaitingForUserAnswer","#userAnswerResolver","#scrollToBottom","#getUserAnswerPlaceholder","#removeTempCards","#POLICY_THRESHOLD","#RISK_ORDER","#CONFIDENCE_THRESHOLD","#normalizeMode","#renderPolicyTab","#pendingGate","#shouldGate","#finishGate","#pendingStepGate","#riskByStep","#approvedTools","#openGate","#gateResolver","#renderApprovalCard","#onGateKeydown","#removeApprovalCard","#getRiskHint","#getToolLabel","#describeGateInput","#getGateRationale","#getGateOutcome","#summarizeAction","#toastTimer","#clearToast","#showToastMessage","#getActivityText","#hasCustomPosition","#renderedTask","#renderedHistoryRef","#renderedEventCount","#userOpenedSteps","#userClosedSteps","#collapse","#saveCurrentConversation","#onDocumentClick","#stopHeaderUpdateLoop","#hideResumeBar","#handleUserAnswer","#handleExecuteError","#getTaskInputPlaceholder","#syncSendButton","#isWindowsPlatform","#getHistoryToggleIcon","#handleDragStart","#handleResizeStart","#handleInputResizeStart","#toggle","#handleActionButton","#submitTask","#resumeTask","#toggleModePopover","#closeModePopover","#settingsTabBtns","#switchSettingsTab","#approveGateForTask","#isDragging","#dragStartX","#dragStartY","#panelStartLeft","#panelStartBottom","#onMouseMove","#onMouseUp","#savePanelPosition","#isResizing","#resizeStartX","#resizeStartWidth","#onResizeMouseMove","#onResizeMouseUp","#isResizingInput","#inputResizeStartY","#inputResizeStartHeight","#onInputResizeMouseMove","#onInputResizeMouseUp","#STORAGE_KEY","#saveSettingsToStorage","#isSettingsVisible","#buildSettingsForm","#buildProvidersTab","#buildGeneralTab","#buildSkillsTab","#buildPolicyTab","#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","#createHistoryCards","#decorateCodeBlocks","#decorateStepToggles","#applyStepOpenState","#createTaskCard","#getPreviousReflection","#createActionCards","#getStepRisk","#getToolIcon","#isRepeatedGoal","#getObservationIcon","#getToolActionLabel","#getToolDetailText","#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/icons.ts","../../node_modules/.pnpm/marked@18.0.6/node_modules/marked/lib/marked.esm.js","../../src/panel/markdown.ts","../../src/panel/cards.ts","../../node_modules/.pnpm/dexie@4.4.4/node_modules/dexie/dist/dexie.min.js","../../node_modules/.pnpm/dexie@4.4.4/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\tsend: 'Send',\n\t\t\texpand: 'Expand history',\n\t\t\thistory: 'History',\n\t\t\tstep: 'Step {{number}}',\n\t\t\tyou: 'You',\n\t\t\tagent: 'Page Agent',\n\t\t\ttokens: 'tokens',\n\t\t\tthinkingPhase: 'Thinking',\n\t\t\tsameAsPrevious: 'Same as previous step',\n\t\t\tthinkingSameAsPrevious: 'Thinking unchanged from the previous step',\n\t\t\trepeatedStep: 'Repeat',\n\t\t\tcopy: 'Copy',\n\t\t\tcopied: 'Copied',\n\t\t\texpandStep: 'Expand step',\n\t\t\tcollapseStep: 'Collapse step',\n\t\t\tactivityIdle: 'Waiting for you',\n\t\t\tinteractionMode: 'Interaction mode',\n\t\t\tautopilot: 'Autopilot',\n\t\t\tcollaborative: 'Step-by-step',\n\t\t\tautopilotHint: 'Runs everything automatically, blocking only irreversible actions',\n\t\t\tcollaborativeHint: 'Pauses before each step for your approval',\n\t\t\tcopilot: 'Co-pilot',\n\t\t\tcopilotHint: 'Reads and draft edits run freely, committed changes ask first',\n\t\t\tstepMode: 'Step-by-step',\n\t\t\tstepModeHint: 'Pauses before every action with its tool, target and rationale',\n\t\t\tapprovalTitle: 'Your approval is needed',\n\t\t\twaitingApproval: 'Waiting for approval',\n\t\t\tapprovalBody:\n\t\t\t\t'The agent is ready for the next step. Review it, then continue or switch to autopilot.',\n\t\t\tapprovalContinue: 'Continue',\n\t\t\tapprovalBlock: 'Reject this action',\n\t\t\tapprovalAuto: 'Run automatically',\n\t\t\tapprovalStop: 'Stop task',\n\t\t\tapprovalStep: 'Step {{number}}',\n\t\t\tgateTitle: 'Confirm this action',\n\t\t\tgateBody: 'This action changes state outside the agent. Review the details below.',\n\t\t\tgateTarget: 'Element #{{index}}',\n\t\t\tgateValue: 'Value',\n\t\t\tgateWhy: 'Why',\n\t\t\tgateOutcome: 'Last step',\n\t\t\tapprovalBatch: 'Always allow {{action}}',\n\t\t\tapprovalShortcut: 'Enter allows · Esc rejects this action',\n\t\t\tactionRejected: 'Action rejected — the agent is re-planning',\n\t\t\trisk: {\n\t\t\t\tL0: 'Read-only',\n\t\t\t\tL1: 'Reversible',\n\t\t\t\tL2: 'Committed change',\n\t\t\t\tL3: 'Irreversible',\n\t\t\t},\n\t\t\triskHint: {\n\t\t\t\tdestructive: 'This can delete, pay or otherwise do something that cannot be undone.',\n\t\t\t\tcommit: 'This changes data outside the agent.',\n\t\t\t\tlowConfidence: 'The target element is ambiguous, so confirmation is required.',\n\t\t\t\tgeneric: 'This action changes state and needs your confirmation.',\n\t\t\t\tstepMode: 'Step-by-step mode pauses on every action so you can verify them one by one.',\n\t\t\t\tdone: 'This finishes the task and returns the result above.',\n\t\t\t},\n\t\t\tundo: 'Undo',\n\t\t\tundoHint: 'Filled automatically — you can undo this',\n\t\t\tresumeTitle: 'Task interrupted',\n\t\t\tresumeHint: 'Continue from where it stopped — the previous steps are kept',\n\t\t\tresumeAction: 'Resume',\n\t\t\ttaskAborted: 'Task stopped',\n\t\t\ttool: {\n\t\t\t\tclick_element_by_index: 'Click element',\n\t\t\t\tinput_text: 'Type into field',\n\t\t\t\tselect_dropdown_option: 'Select option',\n\t\t\t\texecute_javascript: 'Run JavaScript',\n\t\t\t\tscroll: 'Scroll page',\n\t\t\t\tread_page_content: 'Read page',\n\t\t\t\tsave_data: 'Save data',\n\t\t\t\twait: 'Wait',\n\t\t\t\tdone: 'Finish task',\n\t\t\t\task_user: 'Ask you a question',\n\t\t\t},\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\tsubtitle: 'Models, agent behaviour and skills',\n\t\t\tnavProviders: 'Models',\n\t\t\tnavAgent: 'Agent',\n\t\t\tnavSkills: 'Skills',\n\t\t\tnavSafety: 'Approval',\n\t\t\tautoSave: 'Changes are saved automatically',\n\t\t\tdone: 'Done',\n\t\t\tquickStart: 'Quick start',\n\t\t\tquickStartHint: 'Pick a provider preset, then paste your API key.',\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\tsafetyPolicy: 'Authorization policy',\n\t\t\tsafetyPolicyHint: 'Choose how far the agent may go without asking you first.',\n\t\t\tsafetyRemember: 'Remember per-action approval',\n\t\t\tsafetyRememberHint:\n\t\t\t\t'Adds an \"always allow this action type\" button to confirmation cards. Scoped to the current task.',\n\t\t\tsafetyMatrix: 'Risk tiers',\n\t\t\triskL0Desc: 'Page reads, DOM queries and waiting — never asked.',\n\t\t\triskL1Desc: 'Field fills and dropdown picks — automatic, with undo.',\n\t\t\triskL2Desc: 'Submits, saves and script execution — asked in Co-pilot mode.',\n\t\t\triskL3Desc: 'Deletes, payments and other irreversible actions — always asked.',\n\t\t\tsafetyNote:\n\t\t\t\t'Low-confidence element matches are escalated to a confirmation even for low-risk actions.',\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\tmodelsCount: '{{n}} 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\telement: 'Element',\n\t\t\tscrollPage: 'Whole page',\n\t\t\treadWholePage: 'Full page text',\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\tsend: '发送',\n\t\t\texpand: '展开历史',\n\t\t\thistory: '历史记录',\n\t\t\tstep: '步骤 {{number}}',\n\t\t\tyou: '你',\n\t\t\tagent: 'Page Agent',\n\t\t\ttokens: '字元',\n\t\t\tthinkingPhase: '思考',\n\t\t\tsameAsPrevious: '与上一步相同',\n\t\t\tthinkingSameAsPrevious: '思考内容与上一步相同',\n\t\t\trepeatedStep: '重复',\n\t\t\tcopy: '复制',\n\t\t\tcopied: '已复制',\n\t\t\texpandStep: '展开步骤',\n\t\t\tcollapseStep: '收起步骤',\n\t\t\tactivityIdle: '等待你的指令',\n\t\t\tinteractionMode: '交互模式',\n\t\t\tautopilot: '自动驾驶',\n\t\t\tcollaborative: '分步协同',\n\t\t\tautopilotHint: '全自动执行,仅在不可逆操作前阻断',\n\t\t\tcollaborativeHint: '每一步执行前暂停,等待你确认',\n\t\t\tcopilot: '协同模式',\n\t\t\tcopilotHint: '读取与草稿自动执行,关键变更前向你确认',\n\t\t\tstepMode: '单步调试',\n\t\t\tstepModeHint: '每个动作执行前暂停,显示工具、目标与理由',\n\t\t\tapprovalTitle: '等待你的确认',\n\t\t\twaitingApproval: '等待你的确认',\n\t\t\tapprovalBody: 'Agent 已准备好执行下一步。确认后再继续,或切换为自动驾驶。',\n\t\t\tapprovalContinue: '允许执行',\n\t\t\tapprovalBlock: '拒绝这一步',\n\t\t\tapprovalAuto: '转为自动驾驶',\n\t\t\tapprovalStop: '终止任务',\n\t\t\tapprovalStep: '步骤 {{number}}',\n\t\t\tgateTitle: '请确认这一步操作',\n\t\t\tgateBody: '该操作会改变外部状态,请先核对下面的细节。',\n\t\t\tgateTarget: '元素 #{{index}}',\n\t\t\tgateValue: '内容',\n\t\t\tgateWhy: '为什么要这样做',\n\t\t\tgateOutcome: '上一步',\n\t\t\tapprovalBatch: '本任务内始终允许「{{action}}」',\n\t\t\tapprovalShortcut: 'Enter 允许 · Esc 拒绝这一步',\n\t\t\tactionRejected: '已拒绝该动作,Agent 正在换个做法',\n\t\t\trisk: {\n\t\t\t\tL0: '只读',\n\t\t\t\tL1: '可撤销',\n\t\t\t\tL2: '关键变更',\n\t\t\t\tL3: '不可逆',\n\t\t\t},\n\t\t\triskHint: {\n\t\t\t\tdestructive: '该操作可能删除、付款或产生无法撤销的后果。',\n\t\t\t\tcommit: '该操作会修改 Agent 之外的数据。',\n\t\t\t\tlowConfidence: '目标元素存在歧义,因此需要你确认。',\n\t\t\t\tgeneric: '该操作会改变状态,需要你确认。',\n\t\t\t\tstepMode: '单步调试模式:每个动作都会暂停,便于你逐条核对。',\n\t\t\t\tdone: '这一步会结束任务,并返回上面的结果。',\n\t\t\t},\n\t\t\tundo: '撤销',\n\t\t\tundoHint: '已自动填入,可撤销',\n\t\t\tresumeTitle: '任务已中断',\n\t\t\tresumeHint: '可从中断处继续,保留之前的思考链路',\n\t\t\tresumeAction: '继续执行',\n\t\t\ttaskAborted: '任务已终止',\n\t\t\ttool: {\n\t\t\t\tclick_element_by_index: '点击元素',\n\t\t\t\tinput_text: '填写字段',\n\t\t\t\tselect_dropdown_option: '选择选项',\n\t\t\t\texecute_javascript: '执行脚本',\n\t\t\t\tscroll: '滚动页面',\n\t\t\t\tread_page_content: '读取页面',\n\t\t\t\tsave_data: '保存数据',\n\t\t\t\twait: '等待',\n\t\t\t\tdone: '结束任务',\n\t\t\t\task_user: '向你提问',\n\t\t\t},\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\tsubtitle: '模型、Agent 行为与技能',\n\t\t\tnavProviders: '模型',\n\t\t\tnavAgent: 'Agent',\n\t\t\tnavSkills: '技能',\n\t\t\tnavSafety: '授权',\n\t\t\tautoSave: '修改会自动保存',\n\t\t\tdone: '完成',\n\t\t\tquickStart: '快速开始',\n\t\t\tquickStartHint: '选择一个供应商预设,然后填入 API 密钥。',\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\tsafetyPolicy: '授权策略',\n\t\t\tsafetyPolicyHint: '选择 Agent 可以不经确认走多远。',\n\t\t\tsafetyRemember: '记住同类操作的授权',\n\t\t\tsafetyRememberHint: '在确认卡片上提供「本任务内始终允许此类操作」按钮,仅在当前任务生效。',\n\t\t\tsafetyMatrix: '风险分级',\n\t\t\triskL0Desc: '读取页面、查询 DOM、等待 —— 不打断你。',\n\t\t\triskL1Desc: '填写字段、选择选项 —— 自动执行,可撤销。',\n\t\t\triskL2Desc: '提交、保存、执行脚本 —— 协同模式下询问。',\n\t\t\triskL3Desc: '删除、支付等不可逆操作 —— 始终询问。',\n\t\t\tsafetyNote: '元素定位置信度较低时,即使是低风险操作也会升级为确认。',\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\tmodelsCount: '{{n}} 个模型',\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\telement: '元素',\n\t\t\tscrollPage: '整页滚动',\n\t\t\treadWholePage: '整页文本',\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 * Risk tier of a concrete agent action.\n *\n * Mirrors `RiskLevel` from `@hao-gd/page-agent-core` so the Panel stays\n * decoupled from the core package while still rendering risk-aware gates.\n */\nexport type RiskLevel = 'L0' | 'L1' | 'L2' | 'L3'\n\n/** Resolved risk metadata for an action awaiting approval. */\nexport interface ActionRisk {\n\tlevel: RiskLevel\n\tisSideEffectFree: boolean\n\treason?: string\n}\n\n/** Action descriptor handed to the Panel by the runtime gate. */\nexport interface ActionGateInfo {\n\ttool: string\n\tinput: unknown\n\tstep: number\n\trisk: ActionRisk\n\t/** 0..1 locator confidence; low values escalate the gate. */\n\tconfidence?: number\n\t/** Human readable target (element label, selector, ...). */\n\ttarget?: string\n\t/** The model's stated reasoning for this action (the \"why\"). */\n\treflection?: {\n\t\tevaluation_previous_goal?: string\n\t\tmemory?: string\n\t\tnext_goal?: string\n\t}\n}\n\n/** Outcome of a gate request. */\nexport type ActionGateDecision = 'allow' | 'block' | 'deny'\n\n/**\n * How the agent advances between steps.\n * - `autopilot`: runs autonomously; only L3 (irreversible) actions block.\n * - `copilot`: L2+ actions block, reads and draft edits flow through.\n * - `step`: debug mode — every step pauses for confirmation.\n */\nexport type InteractionMode = 'autopilot' | 'copilot' | 'step'\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 'step' type — LLM token usage for this step */\n\t\tusage?: {\n\t\t\tpromptTokens: number\n\t\t\tcompletionTokens: number\n\t\t\ttotalTokens: number\n\t\t\tcachedTokens?: number\n\t\t\treasoningTokens?: number\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/**\n\t * Execute a task.\n\t * `resume: true` continues the previous run (keeps history / reasoning chain)\n\t * instead of starting a brand-new task.\n\t */\n\texecute(task: string, options?: { resume?: boolean }): Promise<unknown>\n\n\t/** Stop the current task (agent remains reusable) */\n\tstop(): Promise<void>\n\n\t/**\n\t * Revert the most recent reversible action (field fill / option select).\n\t * Optional: enables the \"Undo\" affordance for automatically executed edits.\n\t */\n\tundoLastAction?(): Promise<{ success: boolean; message: string }>\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\tisolation: isolate;\n\n\t* {\n\t\tbox-sizing: border-box;\n\t}\n\n\tbutton {\n\t\tfont-family: inherit;\n\t\tfont-size: inherit;\n\t\tline-height: inherit;\n\t}\n\n\tbutton:focus-visible,\n\tsummary:focus-visible,\n\tinput:focus-visible,\n\ttextarea:focus-visible {\n\t\toutline: none;\n\t\tbox-shadow: 0 0 0 2px rgba(122, 162, 255, 0.45);\n\t}\n\n\t/* Design tokens: modern floating-agent surface. Colors are deliberately\n\t muted so the panel works on light and dark host pages alike. */\n\t--pa-font:\n\t\tsystem-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif;\n\t--pa-mono: 'SFMono-Regular', 'Cascadia Code', Consolas, 'Liberation Mono', monospace;\n\n\t--pa-surface: rgba(20, 22, 28, 0.86);\n\t--pa-surface-solid: #14161c;\n\t--pa-surface-2: rgba(255, 255, 255, 0.045);\n\t--pa-surface-3: rgba(255, 255, 255, 0.085);\n\t--pa-border: rgba(255, 255, 255, 0.09);\n\t--pa-border-strong: rgba(255, 255, 255, 0.17);\n\n\t--pa-text: #eef1f7;\n\t--pa-text-2: rgba(238, 241, 247, 0.72);\n\t--pa-text-3: rgba(238, 241, 247, 0.46);\n\n\t--pa-accent: #7aa2ff;\n\t--pa-accent-strong: #a7c0ff;\n\t--pa-accent-soft: rgba(122, 162, 255, 0.14);\n\t--pa-accent-2: #b98cff;\n\t--pa-success: #4ade80;\n\t--pa-warning: #fbbf24;\n\t--pa-danger: #f87171;\n\n\t--pa-radius-lg: 18px;\n\t--pa-radius: 12px;\n\t--pa-radius-sm: 8px;\n\t--pa-radius-pill: 999px;\n\n\t--pa-shadow: 0 24px 64px rgba(0, 0, 0, 0.45), 0 4px 14px rgba(0, 0, 0, 0.32);\n\n\t--width: 420px;\n\t--height: 44px;\n\t--border-radius: var(--pa-radius-lg);\n\n\t--side-space: 12px; /* 控制栏两侧的间距 */\n\t--history-width: calc(var(--width) - var(--side-space) * 2);\n\n\t--color-1: rgba(122, 162, 255, 0.55);\n\t--color-2: rgba(185, 140, 255, 0.5);\n\n\tcolor: var(--pa-text);\n\tfont-family: var(--pa-font);\n\tfont-size: 13px;\n\tfont-weight: 400;\n\tline-height: 1.5;\n\tletter-spacing: normal;\n\ttext-align: left;\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n\n\twidth: var(--width);\n\tmin-width: min(400px, calc(100vw - 40px));\n\theight: var(--height);\n\n\ttransition:\n\t\topacity 0.25s ease,\n\t\ttransform 0.25s cubic-bezier(0.32, 0.72, 0, 1);\n\n\t/* 响应式设计 */\n\t@media (max-width: 480px) {\n\t\twidth: calc(100vw - 32px);\n\t\t--width: calc(100vw - 32px);\n\t}\n\n\t.background {\n\t\tposition: absolute;\n\t\tinset: -6px -6px;\n\t\tborder-radius: calc(var(--border-radius) + 6px);\n\t\tfilter: blur(18px);\n\t\topacity: 0.55;\n\t\toverflow: hidden;\n\t\tpointer-events: 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\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 14s 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(to top right, var(--color-2), transparent, var(--color-1));\n\t\t\tanimation: mask-running 18s linear infinite reverse;\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\tgap: 6px;\n\tpadding: 0 8px 0 12px;\n\tuser-select: none;\n\n\tposition: absolute;\n\tinset: 0;\n\n\tcursor: grab;\n\tflex-shrink: 0; /* 防止 header 被压缩 */\n\toverflow: visible;\n\n\tbackground: var(--pa-surface);\n\tbackdrop-filter: blur(20px) saturate(140%);\n\t-webkit-backdrop-filter: blur(20px) saturate(140%);\n\tborder-radius: var(--border-radius);\n\tbackground-clip: padding-box;\n\tborder: 1px solid var(--pa-border-strong);\n\n\tbox-shadow:\n\t\tvar(--pa-shadow),\n\t\tinset 0 1px 0 rgba(255, 255, 255, 0.07);\n\n\t&:active {\n\t\tcursor: grabbing;\n\t}\n\n\t.statusSection {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 8px;\n\t\tflex: 1 1 auto;\n\t\tmin-width: 0;\n\t\tmin-height: 24px; /* 确保垂直居中 */\n\n\t\t.indicator {\n\t\t\twidth: 7px;\n\t\t\theight: 7px;\n\t\t\tborder-radius: 50%;\n\t\t\tbackground: var(--pa-text-3);\n\t\t\tflex-shrink: 0;\n\t\t\tbox-shadow: 0 0 0 3px rgba(255, 255, 255, 0.05);\n\t\t\tanimation: none; /* 默认无动画 */\n\n\t\t\t/* 运行状态 - 有动画 */\n\t\t\t&.thinking,\n\t\t\t&.running {\n\t\t\t\tbackground: var(--pa-accent);\n\t\t\t\tbox-shadow: 0 0 0 3px rgba(122, 162, 255, 0.16);\n\t\t\t\tanimation: glowPulse 1.8s ease-in-out infinite;\n\t\t\t}\n\n\t\t\t&.executing,\n\t\t\t&.tool_executing {\n\t\t\t\tbackground: var(--pa-accent-2);\n\t\t\t\tbox-shadow: 0 0 0 3px rgba(185, 140, 255, 0.16);\n\t\t\t\tanimation: glowPulse 1.2s ease-in-out infinite;\n\t\t\t}\n\n\t\t\t&.retrying,\n\t\t\t&.retry {\n\t\t\t\tbackground: var(--pa-warning);\n\t\t\t\tbox-shadow: 0 0 0 3px rgba(251, 191, 36, 0.16);\n\t\t\t\tanimation: glowPulse 1.2s ease-in-out infinite;\n\t\t\t}\n\n\t\t\t/* 静止状态 - 无动画 */\n\t\t\t&.completed,\n\t\t\t&.executed,\n\t\t\t&.input,\n\t\t\t&.output {\n\t\t\t\tbackground: var(--pa-success);\n\t\t\t\tanimation: none;\n\t\t\t}\n\n\t\t\t&.error {\n\t\t\t\tbackground: var(--pa-danger);\n\t\t\t\tanimation: none;\n\t\t\t}\n\n\t\t\t&.stopped {\n\t\t\t\tbackground: rgba(255, 255, 255, 0.35);\n\t\t\t\tanimation: none;\n\t\t\t}\n\t\t}\n\n\t\t.statusText {\n\t\t\tcolor: var(--pa-text-2);\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 1;\n\t\t\tfont-weight: 550;\n\t\t\tletter-spacing: -0.005em;\n\t\t\ttransition:\n\t\t\t\topacity 0.25s ease,\n\t\t\t\ttransform 0.25s ease;\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\t\t\tmin-width: 0;\n\t\t\tmax-width: 140px;\n\t\t\twhite-space: nowrap;\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\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\tflex: 0 1 auto;\n\t\tmin-width: 0;\n\t\tpointer-events: auto;\n\t}\n\n\t.controls {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 2px;\n\t\tflex-shrink: 0;\n\n\t\t.controlButton {\n\t\t\twidth: 28px;\n\t\t\theight: 28px;\n\t\t\tborder: none;\n\t\t\tborder-radius: var(--pa-radius-sm);\n\t\t\tbackground: transparent;\n\t\t\tcolor: var(--pa-text-3);\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\t\t\tpadding: 0;\n\t\t\ttransition:\n\t\t\t\tbackground 0.15s ease,\n\t\t\t\tcolor 0.15s ease,\n\t\t\t\ttransform 0.15s ease;\n\n\t\t\tsvg {\n\t\t\t\twidth: 15px;\n\t\t\t\theight: 15px;\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: var(--pa-surface-3);\n\t\t\t\tcolor: var(--pa-text);\n\t\t\t}\n\n\t\t\t&:active {\n\t\t\t\ttransform: scale(0.94);\n\t\t\t}\n\t\t}\n\n\t\t.controlButtonActive {\n\t\t\tbackground: var(--pa-accent-soft);\n\t\t\tcolor: var(--pa-accent-strong);\n\t\t}\n\n\t\t.stopButton {\n\t\t\tcolor: var(--pa-text-3);\n\n\t\t\t&:hover {\n\t\t\t\tbackground: var(--pa-surface-3);\n\t\t\t\tcolor: var(--pa-text);\n\t\t\t}\n\t\t}\n\n\t\t.actionStop {\n\t\t\tbackground: rgba(248, 113, 113, 0.16);\n\t\t\tcolor: var(--pa-danger);\n\n\t\t\t&:hover {\n\t\t\t\tbackground: rgba(248, 113, 113, 0.24);\n\t\t\t\tcolor: var(--pa-danger);\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\toverflow-x: hidden;\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.6;\n\t\t\t\t\twhite-space: normal;\n\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\tcolor: rgba(255, 255, 255, 0.82);\n\n\t\t\t\t\t/* ── Paragraphs ── */\n\t\t\t\t\t& p {\n\t\t\t\t\t\tmargin: 0 0 6px 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/* ── Headings ── */\n\t\t\t\t\t& h4,\n\t\t\t\t\t& h5,\n\t\t\t\t\t& h6 {\n\t\t\t\t\t\tmargin: 14px 0 4px 0;\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\tletter-spacing: -0.01em;\n\n\t\t\t\t\t\t&:first-child {\n\t\t\t\t\t\t\tmargin-top: 2px;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t& h4 {\n\t\t\t\t\t\t\tfont-size: 14px;\n\t\t\t\t\t\t\tpadding-bottom: 4px;\n\t\t\t\t\t\t\tborder-bottom: 1px solid rgba(255, 255, 255, 0.1);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t& h5 {\n\t\t\t\t\t\t\tfont-size: 13px;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t& h6 {\n\t\t\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\t\t\ttext-transform: uppercase;\n\t\t\t\t\t\t\tletter-spacing: 0.04em;\n\t\t\t\t\t\t\tcolor: rgba(255, 255, 255, 0.65);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t/* ── Inline code ── */\n\t\t\t\t\t& :not(pre) > code {\n\t\t\t\t\t\tbackground: rgba(255, 255, 255, 0.1);\n\t\t\t\t\t\tpadding: 2px 5px;\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\tcolor: rgb(255, 200, 120);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* ── Code blocks ── */\n\t\t\t\t\t& pre {\n\t\t\t\t\t\tbackground: rgba(0, 0, 0, 0.35);\n\t\t\t\t\t\tborder: 1px solid rgba(255, 255, 255, 0.08);\n\t\t\t\t\t\tborder-left: 3px solid rgba(88, 166, 255, 0.5);\n\t\t\t\t\t\tborder-radius: 6px;\n\t\t\t\t\t\tpadding: 10px 14px;\n\t\t\t\t\t\tmargin: 8px 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.5;\n\t\t\t\t\t\twhite-space: pre;\n\t\t\t\t\t\tcolor: rgba(255, 255, 255, 0.85);\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\tcolor: inherit;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t/* ── Blockquotes ── */\n\t\t\t\t\t& blockquote {\n\t\t\t\t\t\tmargin: 8px 0;\n\t\t\t\t\t\tpadding: 8px 14px;\n\t\t\t\t\t\tborder-left: 3px solid rgba(255, 200, 120, 0.5);\n\t\t\t\t\t\tbackground: rgba(255, 200, 120, 0.06);\n\t\t\t\t\t\tborder-radius: 0 6px 6px 0;\n\t\t\t\t\t\tcolor: rgba(255, 255, 255, 0.78);\n\n\t\t\t\t\t\t& p {\n\t\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t/* ── Horizontal rules ── */\n\t\t\t\t\t& hr {\n\t\t\t\t\t\tmargin: 12px 0;\n\t\t\t\t\t\tborder: none;\n\t\t\t\t\t\theight: 1px;\n\t\t\t\t\t\tbackground: linear-gradient(\n\t\t\t\t\t\t\t90deg,\n\t\t\t\t\t\t\trgba(255, 255, 255, 0.12),\n\t\t\t\t\t\t\trgba(255, 255, 255, 0.04),\n\t\t\t\t\t\t\ttransparent\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* ── Inline formatting ── */\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.82);\n\t\t\t\t\t}\n\n\t\t\t\t\t& del {\n\t\t\t\t\t\ttext-decoration: line-through;\n\t\t\t\t\t\topacity: 0.5;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* ── Links ── */\n\t\t\t\t\t& a {\n\t\t\t\t\t\tcolor: rgb(88, 166, 255);\n\t\t\t\t\t\ttext-decoration: none;\n\t\t\t\t\t\tborder-bottom: 1px solid rgba(88, 166, 255, 0.3);\n\t\t\t\t\t\ttransition: border-color 0.15s;\n\t\t\t\t\t\t&:hover {\n\t\t\t\t\t\t\tborder-bottom-color: rgba(88, 166, 255, 0.7);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t/* ── Images ── */\n\t\t\t\t\t& img {\n\t\t\t\t\t\tmax-width: 100%;\n\t\t\t\t\t\tborder-radius: 6px;\n\t\t\t\t\t\tmargin: 6px 0;\n\t\t\t\t\t\tborder: 1px solid rgba(255, 255, 255, 0.08);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* ── Lists ── */\n\t\t\t\t\t& ul,\n\t\t\t\t\t& ol {\n\t\t\t\t\t\tmargin: 4px 0;\n\t\t\t\t\t\tpadding-left: 18px;\n\n\t\t\t\t\t\t& li {\n\t\t\t\t\t\t\tmargin-bottom: 3px;\n\t\t\t\t\t\t\tline-height: 1.5;\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\t&::marker {\n\t\t\t\t\t\t\t\tcolor: rgba(255, 255, 255, 0.35);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t& ol {\n\t\t\t\t\t\tpadding-left: 20px;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* ── Tables (GFM) ── */\n\t\t\t\t\t& table {\n\t\t\t\t\t\twidth: 100%;\n\t\t\t\t\t\tmargin: 8px 0;\n\t\t\t\t\t\tborder-collapse: collapse;\n\t\t\t\t\t\tfont-size: 11px;\n\t\t\t\t\t}\n\n\t\t\t\t\t& thead {\n\t\t\t\t\t\tborder-bottom: 2px solid rgba(255, 255, 255, 0.15);\n\t\t\t\t\t}\n\n\t\t\t\t\t& th {\n\t\t\t\t\t\tpadding: 6px 10px;\n\t\t\t\t\t\ttext-align: left;\n\t\t\t\t\t\tfont-weight: 600;\n\t\t\t\t\t\tcolor: rgba(255, 255, 255, 0.85);\n\t\t\t\t\t\twhite-space: nowrap;\n\t\t\t\t\t}\n\n\t\t\t\t\t& td {\n\t\t\t\t\t\tpadding: 4px 10px;\n\t\t\t\t\t\tborder-bottom: 1px solid rgba(255, 255, 255, 0.06);\n\t\t\t\t\t\tcolor: rgba(255, 255, 255, 0.75);\n\t\t\t\t\t}\n\n\t\t\t\t\t& tbody tr:hover {\n\t\t\t\t\t\tbackground: rgba(255, 255, 255, 0.04);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* ── Task list checkboxes ── */\n\t\t\t\t\t& input[type='checkbox'] {\n\t\t\t\t\t\tmargin-right: 4px;\n\t\t\t\t\t\taccent-color: rgb(88, 166, 255);\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/* ================================================================\n New Design System: \"Developer's Debug Console\"\n - Step headers: compact metadata bar\n - Reflection cards: indented with left border\n - Action cards: full-width, monospace output\n - Color system: GitHub Dark-inspired\n ================================================================ */\n\n/* ── Step Header ──────────────────────────────────────────────── */\n.stepHeader {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n\tpadding: 6px 8px;\n\tmargin-bottom: 2px;\n\tmargin-top: 4px;\n\tborder-bottom: 1px solid rgba(255, 255, 255, 0.06);\n\tuser-select: none;\n}\n\n.stepHeaderIcon {\n\twidth: 14px;\n\theight: 14px;\n\tflex-shrink: 0;\n\tcolor: var(--phase-color, rgb(210, 168, 255));\n\tdisplay: flex;\n\talign-items: center;\n\n\t& svg {\n\t\twidth: 14px;\n\t\theight: 14px;\n\t}\n}\n\n.stepHeaderLabel {\n\tfont-family: 'SF Mono', 'Cascadia Code', 'Fira Code', Consolas, monospace;\n\tfont-size: 10px;\n\tfont-weight: 600;\n\tcolor: rgba(255, 255, 255, 0.9);\n\ttext-transform: uppercase;\n\tletter-spacing: 0.5px;\n}\n\n.stepHeaderIndex {\n\tfont-family: 'SF Mono', 'Cascadia Code', 'Fira Code', Consolas, monospace;\n\tfont-size: 9px;\n\tfont-weight: 500;\n\tcolor: var(--phase-color, rgba(255, 255, 255, 0.4));\n\tmargin-left: auto;\n\tpadding: 1px 5px;\n\tbackground: rgba(255, 255, 255, 0.06);\n\tborder-radius: 3px;\n}\n\n.stepHeaderMeta {\n\tfont-family: 'SF Mono', 'Cascadia Code', 'Fira Code', Consolas, monospace;\n\tfont-size: 9px;\n\tcolor: rgba(255, 255, 255, 0.55);\n}\n\n/* ── Reflection Card ─────────────────────────────────────────── */\n.reflectionCard {\n\tposition: relative;\n\tpadding: 6px 8px 6px 16px;\n\tmargin-bottom: 2px;\n\tmargin-left: 4px;\n\tborder-left: 2px solid var(--phase-color, rgb(88, 166, 255));\n\tbackground: linear-gradient(90deg, rgba(88, 166, 255, 0.06), transparent);\n\toverflow-x: hidden;\n}\n\n.reflectionRow {\n\tdisplay: flex;\n\talign-items: flex-start;\n\tgap: 5px;\n\tpadding: 2px 0;\n}\n\n.reflectionIcon {\n\twidth: 12px;\n\theight: 12px;\n\tflex-shrink: 0;\n\tcolor: var(--phase-color, rgb(88, 166, 255));\n\tdisplay: flex;\n\talign-items: center;\n\topacity: 0.7;\n\n\t& svg {\n\t\twidth: 12px;\n\t\theight: 12px;\n\t}\n}\n\n.reflectionLabel {\n\tfont-size: 9px;\n\tfont-weight: 600;\n\tletter-spacing: 0.5px;\n\tcolor: var(--phase-color, rgb(88, 166, 255));\n\tflex-shrink: 0;\n\tline-height: 1.4;\n\topacity: 0.95;\n}\n\n.reflectionText {\n\tfont-size: 11px;\n\tfont-style: italic;\n\tcolor: rgba(255, 255, 255, 0.75);\n\tline-height: 1.4;\n\tword-break: break-word;\n\toverflow-wrap: break-word;\n\tmin-width: 0;\n}\n\n/* ── Action Card ─────────────────────────────────────────────── */\n.actionCard {\n\tpadding: 6px 8px 6px 12px;\n\tmargin-bottom: 2px;\n\tmargin-left: 2px;\n\tborder-left: 2px solid var(--phase-color, rgb(210, 168, 255));\n\tbackground: linear-gradient(90deg, rgba(210, 168, 255, 0.06), transparent);\n\toverflow-x: hidden;\n}\n\n.actionCardHeader {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n\tmargin-bottom: 4px;\n\n\t.statusIcon {\n\t\twidth: 12px;\n\t\theight: 12px;\n\t\tcolor: var(--phase-color, rgb(210, 168, 255));\n\t\tdisplay: flex;\n\t\talign-items: center;\n\n\t\t& svg {\n\t\t\twidth: 12px;\n\t\t\theight: 12px;\n\t\t}\n\t}\n}\n\n.actionCardLabel {\n\tfont-size: 9.5px;\n\tfont-weight: 500;\n\tcolor: rgba(255, 255, 255, 0.5);\n\tfont-family:\n\t\tsystem-ui,\n\t\t-apple-system,\n\t\tsans-serif;\n}\n\n.actionOutput {\n\tfont-family: 'SF Mono', 'Cascadia Code', 'Fira Code', Consolas, monospace;\n\tfont-size: 10px;\n\tline-height: 1.35;\n\tcolor: rgba(255, 255, 255, 0.75);\n\twhite-space: pre-wrap;\n\tword-break: break-word;\n\toverflow-wrap: break-word;\n\tmargin: 0;\n\tpadding: 0;\n\tbackground: none;\n\tborder: none;\n\tmax-height: 180px;\n\toverflow-y: auto;\n\toverflow-x: hidden;\n\tmax-width: 100%;\n}\n\n/* ── Collapsible long output ─────────────────────────────────── */\n.actionDetails {\n\tmargin: 0;\n}\n\n.actionSummary {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 0;\n\tpadding: 0;\n\tcursor: pointer;\n\tuser-select: none;\n\tlist-style: none;\n\toutline: none;\n\n\t&::marker,\n\t&::-webkit-details-marker {\n\t\tdisplay: none;\n\t}\n}\n\n.actionSummaryText {\n\tflex: 1;\n\tmin-width: 0;\n\toverflow: hidden;\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n\tfont-family: 'SF Mono', 'Cascadia Code', 'Fira Code', Consolas, monospace;\n\tfont-size: 10px;\n\tcolor: rgba(255, 255, 255, 0.7);\n}\n\n.actionSummaryToggle {\n\tflex-shrink: 0;\n\tmargin-left: 8px;\n\tfont-size: 9px;\n\tfont-family:\n\t\tsystem-ui,\n\t\t-apple-system,\n\t\tsans-serif;\n\tcolor: rgba(255, 255, 255, 0.45);\n\tpadding: 1px 6px;\n\tbackground: rgba(255, 255, 255, 0.08);\n\tborder-radius: 3px;\n\ttransition:\n\t\tcolor 0.15s,\n\t\tbackground 0.15s;\n\n\t&::after {\n\t\tcontent: '展开 ▾';\n\t}\n}\n\n.actionSummary:hover .actionSummaryToggle {\n\tcolor: rgba(255, 255, 255, 0.8);\n\tbackground: rgba(255, 255, 255, 0.14);\n}\n\n.actionDetails[open] .actionSummaryToggle::after {\n\tcontent: '收起 ▴';\n}\n\n/* Done / success action card */\n.actionCard.output {\n\tborder-left-color: rgb(63, 185, 80);\n\tbackground: linear-gradient(90deg, rgba(63, 185, 80, 0.06), rgba(63, 185, 80, 0.02), transparent);\n\toverflow-x: hidden;\n\n\t.actionCardHeader .statusIcon {\n\t\tcolor: rgb(63, 185, 80);\n\t}\n\n\t.actionOutput,\n\t.markdownContent {\n\t\tcolor: rgba(255, 255, 255, 0.85);\n\t\toverflow-x: hidden;\n\t}\n}\n\n/* Error action card */\n.actionCard.error {\n\tborder-left-color: rgb(248, 81, 73);\n\tbackground: linear-gradient(90deg, rgba(248, 81, 73, 0.06), rgba(248, 81, 73, 0.02), transparent);\n\n\t.actionCardHeader .statusIcon {\n\t\tcolor: rgb(248, 81, 73);\n\t}\n}\n\n/* ── Step group separator ────────────────────────────────────── */\n.stepGroup {\n\tmargin-bottom: 6px;\n\toverflow-x: hidden;\n}\n\n.stepGroup:not(:last-child)::after {\n\tcontent: '';\n\tdisplay: block;\n\tmargin: 4px 8px 0;\n\theight: 1px;\n\tbackground: linear-gradient(90deg, rgba(255, 255, 255, 0.08), transparent);\n}\n\n/* ── Status icon (global) ────────────────────────────────────── */\n.statusIcon {\n\twidth: 12px;\n\theight: 12px;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-shrink: 0;\n\tline-height: 1;\n\n\t& svg {\n\t\twidth: 12px;\n\t\theight: 12px;\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/* ================================================================\n V2 visual system - floating agent surface\n Token-driven layer that supersedes the legacy neon styling.\n ================================================================ */\n\n.wrapper {\n\t/* Shell */\n\t.historySectionWrapper {\n\t\tbackground: var(--pa-surface);\n\t\tbackdrop-filter: blur(20px) saturate(140%);\n\t\t-webkit-backdrop-filter: blur(20px) saturate(140%);\n\t\tborder: 1px solid var(--pa-border-strong);\n\t\tborder-bottom: none;\n\t\tborder-radius: var(--border-radius) var(--border-radius) 0 0;\n\t\tbox-shadow: var(--pa-shadow);\n\t\ttext-shadow: none;\n\n\t\t.expanded & {\n\t\t\tpadding-top: 6px;\n\t\t}\n\t}\n\n\t.historySection {\n\t\tpadding-inline: 10px;\n\t\tscrollbar-width: thin;\n\t\tscrollbar-color: rgba(255, 255, 255, 0.14) transparent;\n\n\t\t&::-webkit-scrollbar {\n\t\t\twidth: 6px;\n\t\t}\n\n\t\t&::-webkit-scrollbar-thumb {\n\t\t\tbackground: rgba(255, 255, 255, 0.14);\n\t\t\tborder-radius: 6px;\n\t\t}\n\t}\n\n\t/* Generic history rows */\n\t.historyItem {\n\t\tpadding: 7px 9px;\n\t\tmargin-bottom: 3px;\n\t\tbackground: transparent;\n\t\tborder: none;\n\t\tborder-radius: 9px;\n\t\tbox-shadow: none;\n\t\tcolor: var(--pa-text-2);\n\t\tfont-size: 12px;\n\t\tline-height: 1.55;\n\t\toverflow: visible;\n\n\t\t&::before {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t&:hover {\n\t\t\tbackground: var(--pa-surface-2);\n\t\t\tbox-shadow: none;\n\t\t}\n\n\t\t&.observation,\n\t\t&.question,\n\t\t&.retry,\n\t\t&.error,\n\t\t&.input,\n\t\t&.output {\n\t\t\tbackground: transparent;\n\t\t\tborder: none;\n\t\t\tbox-shadow: none;\n\t\t}\n\n\t\t&.observation {\n\t\t\tcolor: var(--pa-text-3);\n\t\t\tfont-size: 11.5px;\n\t\t}\n\n\t\t&.question {\n\t\t\tbackground: rgba(251, 191, 36, 0.07);\n\t\t\tborder: 1px solid rgba(251, 191, 36, 0.22);\n\t\t\tborder-radius: 10px;\n\t\t}\n\n\t\t&.error {\n\t\t\tbackground: rgba(248, 113, 113, 0.07);\n\t\t\tborder: 1px solid rgba(248, 113, 113, 0.22);\n\t\t\tborder-radius: 10px;\n\t\t}\n\n\t\t.historyContent {\n\t\t\tgap: 7px;\n\t\t\tword-break: break-word;\n\t\t\twhite-space: pre-wrap;\n\n\t\t\t.statusIcon {\n\t\t\t\twidth: 13px;\n\t\t\t\theight: 13px;\n\t\t\t\tmargin-top: 2px;\n\t\t\t\tcolor: var(--pa-text-3);\n\t\t\t}\n\t\t}\n\n\t\t.historyMeta {\n\t\t\tcolor: var(--pa-text-3);\n\t\t\tfont-family: var(--pa-mono);\n\t\t\tfont-size: 9.5px;\n\t\t\tmargin-top: 5px;\n\t\t}\n\t}\n\n\t.emptyState {\n\t\tcolor: var(--pa-text-3);\n\t\tfont-size: 11.5px;\n\t\tpadding: 12px 9px;\n\t}\n\n\t/* Chat messages */\n\t.messageRow {\n\t\tmargin: 4px 0 10px;\n\t\tpadding: 0 2px;\n\t}\n\n\t.messageMeta {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 6px;\n\t\tmargin-bottom: 5px;\n\t\tmin-width: 0;\n\t}\n\n\t.messageAvatar {\n\t\twidth: 18px;\n\t\theight: 18px;\n\t\tborder-radius: 6px;\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tfont-size: 8.5px;\n\t\tfont-weight: 700;\n\t\tletter-spacing: 0.02em;\n\t\tbackground: var(--pa-surface-3);\n\t\tcolor: var(--pa-text-2);\n\t\tflex-shrink: 0;\n\n\t\t& svg {\n\t\t\twidth: 11px;\n\t\t\theight: 11px;\n\t\t}\n\t}\n\n\t.agentAvatar {\n\t\tbackground: linear-gradient(135deg, rgba(122, 162, 255, 0.28), rgba(185, 140, 255, 0.24));\n\t\tborder: 1px solid rgba(122, 162, 255, 0.3);\n\t\tcolor: var(--pa-accent-strong);\n\t}\n\n\t.messageAuthor {\n\t\tfont-size: 10px;\n\t\tfont-weight: 650;\n\t\tletter-spacing: 0.06em;\n\t\ttext-transform: uppercase;\n\t\tcolor: var(--pa-text-3);\n\t}\n\n\t.messageTag {\n\t\tmargin-left: auto;\n\t\tfont-family: var(--pa-mono);\n\t\tfont-size: 9px;\n\t\tcolor: var(--pa-text-3);\n\t\tbackground: var(--pa-surface-2);\n\t\tborder: 1px solid var(--pa-border);\n\t\tpadding: 1px 6px;\n\t\tborder-radius: var(--pa-radius-pill);\n\t\tmax-width: 45%;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t}\n\n\t.messageBubble {\n\t\tborder-radius: 3px 12px 12px 12px;\n\t\tpadding: 9px 11px;\n\t\tfont-size: 12.5px;\n\t\tline-height: 1.6;\n\t\tword-break: break-word;\n\t\toverflow-wrap: break-word;\n\t}\n\n\t.userMessage .messageBubble {\n\t\tbackground: var(--pa-surface-2);\n\t\tborder: 1px solid var(--pa-border);\n\t\tcolor: var(--pa-text);\n\t\twhite-space: pre-wrap;\n\t}\n\n\t.assistantMessage .messageBubble {\n\t\tbackground: linear-gradient(180deg, rgba(122, 162, 255, 0.08), rgba(255, 255, 255, 0.02));\n\t\tborder: 1px solid rgba(122, 162, 255, 0.18);\n\t\tcolor: var(--pa-text);\n\t}\n\n\t/* Steps */\n\t.stepGroup {\n\t\tmargin: 4px 0 8px;\n\t\tborder: 1px solid var(--pa-border);\n\t\tborder-radius: 11px;\n\t\tbackground: rgba(255, 255, 255, 0.018);\n\t\toverflow: hidden;\n\n\t\t&:not(:last-child)::after {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t.stepHeader {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 6px;\n\t\tpadding: 7px 9px;\n\t\tmargin: 0;\n\t\tborder-bottom: 1px solid transparent;\n\t\tcursor: pointer;\n\t\tuser-select: none;\n\t\tlist-style: none;\n\t\toutline: none;\n\n\t\t&::-webkit-details-marker,\n\t\t&::marker {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t&:hover {\n\t\t\tbackground: var(--pa-surface-2);\n\t\t}\n\t}\n\n\t.stepGroup[open] > .stepHeader {\n\t\tborder-bottom-color: var(--pa-border);\n\t\tbackground: rgba(255, 255, 255, 0.025);\n\t}\n\n\t.stepChevron {\n\t\twidth: 11px;\n\t\theight: 11px;\n\t\tdisplay: flex;\n\t\tcolor: var(--pa-text-3);\n\t\tflex-shrink: 0;\n\t\ttransition: transform 0.18s ease;\n\n\t\t& svg {\n\t\t\twidth: 11px;\n\t\t\theight: 11px;\n\t\t}\n\t}\n\n\t.stepGroup[open] .stepChevron {\n\t\ttransform: rotate(90deg);\n\t}\n\n\t.stepHeaderIcon {\n\t\twidth: 13px;\n\t\theight: 13px;\n\t\tcolor: var(--phase-color, var(--pa-accent));\n\n\t\t& svg {\n\t\t\twidth: 13px;\n\t\t\theight: 13px;\n\t\t}\n\t}\n\n\t.stepHeaderLabel {\n\t\tfont-size: 9.5px;\n\t\tfont-weight: 700;\n\t\tletter-spacing: 0.07em;\n\t\ttext-transform: uppercase;\n\t\tcolor: var(--phase-color, var(--pa-accent));\n\t\tflex-shrink: 0;\n\t}\n\n\t.stepHeaderTitle {\n\t\tflex: 1;\n\t\tmin-width: 0;\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\tfont-size: 11px;\n\t\tcolor: var(--pa-text-2);\n\t}\n\n\t.stepHeaderIndex {\n\t\tmargin-left: auto;\n\t\tfont-family: var(--pa-mono);\n\t\tfont-size: 9.5px;\n\t\tfont-weight: 600;\n\t\tcolor: var(--phase-color, var(--pa-accent));\n\t\tbackground: color-mix(in srgb, var(--phase-color, var(--pa-accent)) 13%, transparent);\n\t\tborder: 1px solid color-mix(in srgb, var(--phase-color, var(--pa-accent)) 26%, transparent);\n\t\tpadding: 1px 6px;\n\t\tborder-radius: 6px;\n\t\tflex-shrink: 0;\n\t}\n\n\t.stepHeaderMeta {\n\t\tfont-family: var(--pa-mono);\n\t\tfont-size: 9px;\n\t\tcolor: var(--pa-text-3);\n\t\tflex-shrink: 0;\n\t}\n\n\t.stepBody {\n\t\tpadding: 5px 8px 7px;\n\t}\n\n\t.reflectionCard {\n\t\tpadding: 5px 8px 5px 10px;\n\t\tmargin: 3px 0 5px;\n\t\tborder-left: 2px solid color-mix(in srgb, var(--phase-color, var(--pa-accent)) 55%, transparent);\n\t\tbackground: transparent;\n\t\tborder-radius: 0 7px 7px 0;\n\t}\n\n\t.reflectionRow {\n\t\tpadding: 2px 0;\n\t\tgap: 6px;\n\t}\n\n\t.reflectionIcon {\n\t\twidth: 11px;\n\t\theight: 11px;\n\t\tmargin-top: 3px;\n\n\t\t& svg {\n\t\t\twidth: 11px;\n\t\t\theight: 11px;\n\t\t}\n\t}\n\n\t.reflectionLabel {\n\t\tfont-size: 9px;\n\t\tfont-weight: 700;\n\t\tletter-spacing: 0.05em;\n\t\ttext-transform: uppercase;\n\t\topacity: 0.9;\n\t}\n\n\t.reflectionText {\n\t\tfont-size: 11.5px;\n\t\tfont-style: normal;\n\t\tcolor: var(--pa-text-2);\n\t\tline-height: 1.55;\n\t}\n\n\t.actionCard {\n\t\tmargin: 3px 0;\n\t\tpadding: 6px 9px;\n\t\tbackground: var(--pa-surface-2);\n\t\tborder: 1px solid var(--pa-border);\n\t\tborder-left: 2px solid color-mix(in srgb, var(--phase-color, var(--pa-accent)) 50%, transparent);\n\t\tborder-radius: 0 8px 8px 0;\n\n\t\t&.output,\n\t\t&.error {\n\t\t\tbackground: var(--pa-surface-2);\n\t\t}\n\t}\n\n\t.actionCardHeader {\n\t\tgap: 6px;\n\t\tmargin-bottom: 4px;\n\n\t\t.statusIcon {\n\t\t\twidth: 12px;\n\t\t\theight: 12px;\n\t\t}\n\t}\n\n\t.actionCardLabel {\n\t\tfont-family: var(--pa-mono);\n\t\tfont-size: 9.5px;\n\t\tcolor: var(--pa-text-3);\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t}\n\n\t.actionOutput {\n\t\tposition: relative;\n\t\tfont-family: var(--pa-mono);\n\t\tfont-size: 10.5px;\n\t\tline-height: 1.5;\n\t\tcolor: var(--pa-text-2);\n\t\tmax-height: 220px;\n\t\tmin-height: 30px;\n\t}\n\n\t.actionSummaryText {\n\t\tfont-size: 10.5px;\n\t\tcolor: var(--pa-text-2);\n\t}\n\n\t.actionSummaryToggle {\n\t\tfont-size: 9px;\n\t\tcolor: var(--pa-text-3);\n\t\tbackground: var(--pa-surface-3);\n\t\tborder-radius: 5px;\n\t\tpadding: 1px 6px;\n\t}\n}\n\n/* Markdown typography */\n.wrapper .markdownContent {\n\tcolor: var(--pa-text-2);\n\tfont-size: 12.5px;\n\tline-height: 1.65;\n\n\t& p {\n\t\tmargin: 0 0 7px;\n\t}\n\n\t& h4,\n\t& h5,\n\t& h6 {\n\t\tcolor: var(--pa-text);\n\t\tmargin: 12px 0 5px;\n\t\tletter-spacing: -0.01em;\n\t}\n\n\t& h4 {\n\t\tfont-size: 14px;\n\t}\n\n\t& h5 {\n\t\tfont-size: 13px;\n\t}\n\n\t& h6 {\n\t\tfont-size: 12px;\n\t}\n\n\t& :not(pre) > code {\n\t\tbackground: var(--pa-surface-3);\n\t\tcolor: var(--pa-accent-strong);\n\t\tborder-radius: 4px;\n\t\tpadding: 1.5px 5px;\n\t\tfont-family: var(--pa-mono);\n\t\tfont-size: 11px;\n\t\toverflow-wrap: anywhere;\n\t}\n\n\t& pre {\n\t\tposition: relative;\n\t\tbackground: rgba(0, 0, 0, 0.32);\n\t\tborder: 1px solid var(--pa-border);\n\t\tborder-left: 2px solid rgba(122, 162, 255, 0.5);\n\t\tborder-radius: 8px;\n\t\tpadding: 10px 12px;\n\t\tmargin: 8px 0;\n\t\tfont-size: 11px;\n\t\tline-height: 1.55;\n\t\tcolor: var(--pa-text-2);\n\t\tmin-height: 30px;\n\n\t\t/* Long code lines wrap inside the narrow bubble instead of being clipped. */\n\t\tmax-width: 100%;\n\t\toverflow-x: hidden;\n\t\toverflow-y: auto;\n\t\twhite-space: pre-wrap;\n\t\toverflow-wrap: anywhere;\n\t\t-webkit-overflow-scrolling: touch;\n\t\tscrollbar-width: thin;\n\t\tscrollbar-color: rgba(255, 255, 255, 0.18) transparent;\n\n\t\t& code {\n\t\t\twhite-space: pre-wrap;\n\t\t\toverflow-wrap: anywhere;\n\t\t\tword-break: normal;\n\t\t}\n\t}\n\n\t& blockquote {\n\t\tborder-left: 2px solid rgba(122, 162, 255, 0.4);\n\t\tbackground: rgba(122, 162, 255, 0.06);\n\t\tborder-radius: 0 8px 8px 0;\n\t\tpadding: 8px 12px;\n\t\tcolor: var(--pa-text-2);\n\t}\n\n\t& a {\n\t\tcolor: var(--pa-accent-strong);\n\t\tborder-bottom-color: rgba(122, 162, 255, 0.3);\n\t}\n\n\t& ul,\n\t& ol {\n\t\tpadding-left: 18px;\n\t}\n\n\t& li::marker {\n\t\tcolor: var(--pa-text-3);\n\t}\n\n\t& table {\n\t\tdisplay: block;\n\t\tmax-width: 100%;\n\t\toverflow-x: auto;\n\t\tfont-size: 11px;\n\t}\n\n\t& thead {\n\t\tborder-bottom: 1px solid var(--pa-border-strong);\n\t}\n\n\t& th {\n\t\tcolor: var(--pa-text);\n\t\tfont-weight: 600;\n\t}\n\n\t& td {\n\t\tborder-bottom: 1px solid var(--pa-border);\n\t\tcolor: var(--pa-text-2);\n\t}\n\n\t& tbody tr:hover {\n\t\tbackground: var(--pa-surface-2);\n\t}\n\n\t& hr {\n\t\tbackground: var(--pa-border);\n\t}\n}\n\n.wrapper .codeCopy {\n\tposition: absolute;\n\ttop: 6px;\n\tright: 6px;\n\twidth: 22px;\n\theight: 22px;\n\tpadding: 0;\n\tborder: 1px solid var(--pa-border-strong);\n\tborder-radius: 6px;\n\tbackground: var(--pa-surface-solid);\n\tcolor: var(--pa-text-3);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcursor: pointer;\n\topacity: 0;\n\ttransition:\n\t\topacity 0.15s ease,\n\t\tcolor 0.15s ease,\n\t\tbackground 0.15s ease;\n\n\t& svg {\n\t\twidth: 11px;\n\t\theight: 11px;\n\t}\n}\n\n.wrapper pre:hover > .codeCopy,\n.wrapper .codeCopy:focus-visible {\n\topacity: 1;\n}\n\n.wrapper .codeCopied {\n\tcolor: var(--pa-success);\n}\n\n/* Composer */\n.wrapper .inputSectionWrapper {\n\tbackground: var(--pa-surface);\n\tbackdrop-filter: blur(20px) saturate(140%);\n\t-webkit-backdrop-filter: blur(20px) saturate(140%);\n\tborder: 1px solid var(--pa-border-strong);\n\tborder-top: none;\n\tborder-radius: 0 0 var(--border-radius) var(--border-radius);\n\tbox-shadow: var(--pa-shadow);\n\tpadding: 3px 8px 8px;\n\n\t&.hidden {\n\t\tvisibility: collapse;\n\t\theight: 0;\n\t\toverflow: hidden;\n\t\tpadding: 0;\n\t\tborder-width: 0;\n\t}\n\n\t.inputSection {\n\t\tpadding: 0;\n\t\tgap: 0;\n\t\tborder-radius: 10px;\n\t\ttransition: box-shadow 0.15s ease;\n\n\t\t&:focus-within {\n\t\t\tbox-shadow: inset 0 0 0 1px rgba(122, 162, 255, 0.35);\n\t\t}\n\n\t\t.taskInput {\n\t\t\tbackground: transparent;\n\t\t\tborder: none;\n\t\t\tborder-radius: 10px;\n\t\t\tpadding: 9px 10px;\n\t\t\tcolor: var(--pa-text);\n\t\t\tfont-family: var(--pa-font);\n\t\t\tfont-size: 12.5px;\n\t\t\tline-height: 1.55;\n\t\t\tmin-height: 64px;\n\t\t\tmax-height: 160px;\n\t\t\tresize: none;\n\t\t\toutline: none;\n\n\t\t\t&::placeholder {\n\t\t\t\tcolor: var(--pa-text-3);\n\t\t\t}\n\n\t\t\t&:focus,\n\t\t\t&:focus-visible {\n\t\t\t\tbackground: transparent;\n\t\t\t\tborder: none;\n\t\t\t\tbox-shadow: none;\n\t\t\t}\n\t\t}\n\n\t\t.inputResizeHandle {\n\t\t\twidth: 32px;\n\t\t\theight: 4px;\n\t\t\tmargin: -4px auto 2px;\n\t\t\tbackground: var(--pa-surface-3);\n\t\t\tborder-radius: 4px;\n\n\t\t\t&:hover {\n\t\t\t\tbackground: rgba(122, 162, 255, 0.4);\n\t\t\t}\n\t\t}\n\t}\n\n\t.inputFooter {\n\t\tjustify-content: space-between;\n\t\tgap: 6px;\n\t\tpadding: 5px 2px 0;\n\t\tmargin-top: 3px;\n\t\tborder-top: 1px solid var(--pa-border);\n\t}\n}\n\n.wrapper .composerActions {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 5px;\n\tflex-shrink: 0;\n}\n\n.wrapper .conversationBtn {\n\tmax-width: 130px;\n\tpadding: 3px 6px;\n\tborder: 1px solid transparent;\n\tborder-radius: 7px;\n\tbackground: transparent;\n\tcolor: var(--pa-text-3);\n\tfont-size: 10.5px;\n\tfont-weight: 500;\n\tgap: 4px;\n\n\t&:hover {\n\t\tbackground: var(--pa-surface-2);\n\t\tcolor: var(--pa-text-2);\n\t}\n}\n\n.wrapper .conversationBtnArrow {\n\twidth: 10px;\n\theight: 10px;\n\tdisplay: flex;\n\topacity: 0.6;\n\n\t& svg {\n\t\twidth: 10px;\n\t\theight: 10px;\n\t}\n}\n\n.wrapper .modeControl {\n\tposition: relative;\n}\n\n.wrapper .modeChip {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 5px;\n\theight: 24px;\n\tpadding: 0 7px;\n\tborder-radius: var(--pa-radius-pill);\n\tborder: 1px solid var(--pa-border);\n\tbackground: var(--pa-surface-2);\n\tcolor: var(--pa-text-2);\n\tfont-size: 10.5px;\n\tfont-weight: 600;\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\n\t&:hover {\n\t\tbackground: var(--pa-surface-3);\n\t}\n\n\t&[data-mode='autopilot'] {\n\t\tcolor: var(--pa-accent-strong);\n\t\tborder-color: rgba(122, 162, 255, 0.3);\n\t\tbackground: rgba(122, 162, 255, 0.12);\n\t}\n}\n\n.wrapper .modeChipIcon {\n\twidth: 12px;\n\theight: 12px;\n\tdisplay: flex;\n\n\t& svg {\n\t\twidth: 12px;\n\t\theight: 12px;\n\t}\n}\n\n.wrapper .modeChipChevron {\n\twidth: 10px;\n\theight: 10px;\n\tdisplay: flex;\n\topacity: 0.55;\n\n\t& svg {\n\t\twidth: 10px;\n\t\theight: 10px;\n\t}\n}\n\n.wrapper .modePopover {\n\tposition: absolute;\n\tright: 0;\n\tbottom: calc(100% + 8px);\n\twidth: 248px;\n\tpadding: 5px;\n\tborder-radius: 12px;\n\tbackground: var(--pa-surface-solid);\n\tborder: 1px solid var(--pa-border-strong);\n\tbox-shadow: var(--pa-shadow);\n\tz-index: 20;\n\n\t&.hidden {\n\t\tdisplay: none;\n\t}\n}\n\n.wrapper .modeOption {\n\tdisplay: flex;\n\talign-items: flex-start;\n\tgap: 8px;\n\twidth: 100%;\n\tpadding: 7px 8px;\n\tborder: 1px solid transparent;\n\tborder-radius: 8px;\n\tbackground: transparent;\n\tcolor: var(--pa-text-2);\n\tcursor: pointer;\n\ttext-align: left;\n\n\t&:hover {\n\t\tbackground: var(--pa-surface-2);\n\t}\n}\n\n.wrapper .modeOptionActive {\n\tbackground: var(--pa-accent-soft);\n\tborder-color: rgba(122, 162, 255, 0.22);\n\tcolor: var(--pa-text);\n}\n\n.wrapper .modeOptionIcon {\n\twidth: 14px;\n\theight: 14px;\n\tmargin-top: 2px;\n\tcolor: var(--pa-accent-strong);\n\tflex-shrink: 0;\n\n\t& svg {\n\t\twidth: 14px;\n\t\theight: 14px;\n\t}\n}\n\n.wrapper .modeOptionText {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n\tflex: 1;\n\tmin-width: 0;\n}\n\n.wrapper .modeOptionTitle {\n\tfont-size: 11.5px;\n\tfont-weight: 650;\n\tcolor: var(--pa-text);\n}\n\n.wrapper .modeOptionDesc {\n\tfont-size: 10px;\n\tline-height: 1.45;\n\tcolor: var(--pa-text-3);\n}\n\n.wrapper .modeOptionCheck {\n\twidth: 12px;\n\theight: 12px;\n\tflex-shrink: 0;\n\tmargin-top: 2px;\n\tcolor: var(--pa-accent-strong);\n\topacity: 0;\n\ttransition: opacity 0.15s ease;\n\n\t& svg {\n\t\twidth: 12px;\n\t\theight: 12px;\n\t}\n}\n\n.wrapper .modeOptionActive .modeOptionCheck {\n\topacity: 1;\n}\n\n.wrapper .newConversationBtn {\n\twidth: 24px;\n\theight: 24px;\n\tborder-radius: 7px;\n\tborder: 1px solid transparent;\n\tbackground: transparent;\n\tcolor: var(--pa-text-3);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcursor: pointer;\n\tpadding: 0;\n\n\t& svg {\n\t\twidth: 13px;\n\t\theight: 13px;\n\t}\n\n\t&:hover {\n\t\tbackground: var(--pa-surface-3);\n\t\tcolor: var(--pa-text);\n\t}\n}\n\n.wrapper .sendBtn {\n\twidth: 28px;\n\theight: 28px;\n\tborder-radius: 50%;\n\tborder: none;\n\tbackground: var(--pa-accent);\n\tcolor: #0a0f1e;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcursor: pointer;\n\tpadding: 0;\n\ttransition:\n\t\tbackground 0.15s ease,\n\t\ttransform 0.15s ease;\n\n\t& svg {\n\t\twidth: 14px;\n\t\theight: 14px;\n\t\tstroke-width: 2.4;\n\t}\n\n\t&:hover {\n\t\tbackground: var(--pa-accent-strong);\n\t}\n\n\t&:active {\n\t\ttransform: scale(0.94);\n\t}\n}\n\n.wrapper .sendBtnDisabled {\n\tbackground: var(--pa-surface-3);\n\tcolor: var(--pa-text-3);\n\tcursor: not-allowed;\n}\n\n/* Live activity */\n.wrapper .activityRow {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tpadding: 7px 9px 10px;\n\tcolor: var(--pa-text-3);\n\tfont-size: 11.5px;\n\tline-height: 1.4;\n}\n\n.wrapper .activityDots {\n\tdisplay: inline-flex;\n\tgap: 3px;\n\tflex-shrink: 0;\n\n\t& i {\n\t\twidth: 4px;\n\t\theight: 4px;\n\t\tborder-radius: 50%;\n\t\tbackground: var(--pa-accent);\n\t\tanimation: pa-dot 1.2s ease-in-out infinite;\n\t}\n\n\t& i:nth-child(2) {\n\t\tanimation-delay: 0.15s;\n\t}\n\n\t& i:nth-child(3) {\n\t\tanimation-delay: 0.3s;\n\t}\n}\n\n.wrapper .activityText {\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n/* Approval card */\n.wrapper .approvalCard {\n\tmargin: 8px 0 10px;\n\tpadding: 10px 11px;\n\tborder-radius: 12px;\n\tborder: 1px solid rgba(122, 162, 255, 0.3);\n\tbackground: linear-gradient(180deg, rgba(122, 162, 255, 0.13), rgba(122, 162, 255, 0.04));\n\tbox-shadow: 0 8px 24px rgba(0, 0, 0, 0.28);\n}\n\n.wrapper .approvalHeader {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 7px;\n}\n\n.wrapper .approvalIcon {\n\twidth: 15px;\n\theight: 15px;\n\tcolor: var(--pa-accent-strong);\n\tdisplay: flex;\n\n\t& svg {\n\t\twidth: 15px;\n\t\theight: 15px;\n\t}\n}\n\n.wrapper .approvalTitle {\n\tfont-size: 12px;\n\tfont-weight: 650;\n\tcolor: var(--pa-text);\n}\n\n.wrapper .approvalStep {\n\tmargin-left: auto;\n\tfont-family: var(--pa-mono);\n\tfont-size: 9.5px;\n\tcolor: var(--pa-accent-strong);\n\tbackground: rgba(122, 162, 255, 0.15);\n\tborder: 1px solid rgba(122, 162, 255, 0.25);\n\tpadding: 1px 6px;\n\tborder-radius: 6px;\n}\n\n.wrapper .approvalBody {\n\tmargin: 6px 0 9px;\n\tfont-size: 11.5px;\n\tline-height: 1.55;\n\tcolor: var(--pa-text-2);\n}\n\n.wrapper .approvalActions {\n\tdisplay: grid;\n\tgrid-template-columns: 1fr 1fr;\n\tgap: 6px;\n}\n\n.wrapper .approvalBtn {\n\tmin-height: 28px;\n\tpadding: 0 10px;\n\tborder-radius: 8px;\n\tborder: 1px solid var(--pa-border-strong);\n\tbackground: var(--pa-surface-3);\n\tcolor: var(--pa-text-2);\n\tfont-size: 11.5px;\n\tfont-weight: 600;\n\tcursor: pointer;\n\ttransition:\n\t\tbackground 0.15s ease,\n\t\tborder-color 0.15s ease,\n\t\ttransform 0.15s ease;\n\n\t&:hover {\n\t\tbackground: rgba(255, 255, 255, 0.13);\n\t}\n\n\t&:active {\n\t\ttransform: scale(0.98);\n\t}\n}\n\n.wrapper .approvalPrimary {\n\tbackground: var(--pa-accent);\n\tborder-color: transparent;\n\tcolor: #0a0f1e;\n\n\t&:hover {\n\t\tbackground: var(--pa-accent-strong);\n\t}\n}\n\n.wrapper .approvalDanger {\n\tgrid-column: 1 / -1;\n\tcolor: var(--pa-danger);\n\tborder-color: rgba(248, 113, 113, 0.32);\n\tbackground: rgba(248, 113, 113, 0.08);\n\n\t&:hover {\n\t\tbackground: rgba(248, 113, 113, 0.16);\n\t}\n}\n\n@keyframes pa-dot {\n\t0%,\n\t100% {\n\t\topacity: 0.35;\n\t\ttransform: translateY(0);\n\t}\n\t50% {\n\t\topacity: 1;\n\t\ttransform: translateY(-2px);\n\t}\n}\n\n@keyframes glowPulse {\n\t0%,\n\t100% {\n\t\topacity: 1;\n\t\tbox-shadow: 0 0 0 3px rgba(122, 162, 255, 0.16);\n\t}\n\t50% {\n\t\topacity: 0.55;\n\t\tbox-shadow: 0 0 0 5px rgba(122, 162, 255, 0.08);\n\t}\n}\n\n/* Settings */\n.wrapper .settingsSection {\n\tbackground: var(--pa-surface);\n\tbackdrop-filter: blur(20px) saturate(140%);\n\t-webkit-backdrop-filter: blur(20px) saturate(140%);\n\tborder: 1px solid var(--pa-border-strong);\n\tborder-bottom: none;\n\tborder-radius: var(--border-radius) var(--border-radius) 0 0;\n\tbox-shadow: var(--pa-shadow);\n\tmax-height: min(540px, calc(100vh - 130px - var(--height)));\n\n\t&.hidden {\n\t\tvisibility: collapse;\n\t\tmax-height: 0;\n\t\tborder-width: 0;\n\t}\n}\n\n.wrapper .settingsHeader {\n\tpadding: 11px 12px 9px 14px;\n\tborder-bottom: 1px solid var(--pa-border);\n\tgap: 10px;\n}\n\n.wrapper .settingsHeading {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n\tmin-width: 0;\n}\n\n.wrapper .settingsTitle {\n\tfont-size: 13.5px;\n\tfont-weight: 650;\n\tletter-spacing: -0.01em;\n\tcolor: var(--pa-text);\n}\n\n.wrapper .settingsSubtitle {\n\tfont-size: 10.5px;\n\tcolor: var(--pa-text-3);\n}\n\n.wrapper .settingsCloseBtn {\n\twidth: 26px;\n\theight: 26px;\n\tpadding: 0;\n\tborder-radius: 8px;\n\tborder: 1px solid transparent;\n\tbackground: transparent;\n\tcolor: var(--pa-text-3);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcursor: pointer;\n\n\t& svg {\n\t\twidth: 14px;\n\t\theight: 14px;\n\t}\n\n\t&:hover {\n\t\tbackground: var(--pa-surface-3);\n\t\tcolor: var(--pa-text);\n\t}\n}\n\n.wrapper .settingsBody {\n\tdisplay: flex;\n\tflex: 1;\n\tmin-height: 0;\n\toverflow: hidden;\n}\n\n.wrapper .settingsNav {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n\twidth: 92px;\n\tflex-shrink: 0;\n\tpadding: 8px 6px;\n\tborder-right: 1px solid var(--pa-border);\n\tbackground: rgba(0, 0, 0, 0.14);\n}\n\n.wrapper .tabBtn {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 7px;\n\twidth: 100%;\n\tpadding: 7px 8px;\n\tborder: 1px solid transparent;\n\tborder-radius: 8px;\n\tbackground: transparent;\n\tcolor: var(--pa-text-3);\n\tfont-size: 11px;\n\tfont-weight: 550;\n\ttext-align: left;\n\tcursor: pointer;\n\twhite-space: nowrap;\n\tmargin: 0;\n\n\t&:hover {\n\t\tbackground: var(--pa-surface-2);\n\t\tcolor: var(--pa-text-2);\n\t}\n}\n\n.wrapper .tabActive {\n\tbackground: var(--pa-accent-soft);\n\tborder-color: rgba(122, 162, 255, 0.22);\n\tcolor: var(--pa-accent-strong);\n}\n\n.wrapper .navIcon {\n\twidth: 13px;\n\theight: 13px;\n\tdisplay: flex;\n\tflex-shrink: 0;\n\n\t& svg {\n\t\twidth: 13px;\n\t\theight: 13px;\n\t}\n}\n\n.wrapper .navLabel {\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n\n.wrapper .tabContent {\n\tflex: 1;\n\tmin-width: 0;\n\tpadding: 10px 12px 14px;\n\toverflow-y: auto;\n\tscrollbar-width: thin;\n\tscrollbar-color: rgba(255, 255, 255, 0.14) transparent;\n\n\t&::-webkit-scrollbar {\n\t\twidth: 5px;\n\t}\n\n\t&::-webkit-scrollbar-thumb {\n\t\tbackground: rgba(255, 255, 255, 0.14);\n\t\tborder-radius: 5px;\n\t}\n}\n\n.wrapper .settingsFooter {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 8px;\n\tpadding: 8px 12px;\n\tborder-top: 1px solid var(--pa-border);\n\tbackground: rgba(0, 0, 0, 0.14);\n}\n\n.wrapper .settingsFooterHint {\n\tfont-size: 10px;\n\tcolor: var(--pa-text-3);\n}\n\n.wrapper .settingsDoneBtn {\n\tpadding: 5px 14px;\n\tborder-radius: 7px;\n\tborder: none;\n\tbackground: var(--pa-accent);\n\tcolor: #0a0f1e;\n\tfont-size: 11.5px;\n\tfont-weight: 650;\n\tcursor: pointer;\n\n\t&:hover {\n\t\tbackground: var(--pa-accent-strong);\n\t}\n}\n\n/* Settings fields */\n.wrapper .formGroup {\n\tmargin-bottom: 12px;\n}\n\n.wrapper .formLabel {\n\tfont-size: 9.5px;\n\tfont-weight: 700;\n\tletter-spacing: 0.07em;\n\tcolor: var(--pa-text-3);\n\tmargin-bottom: 5px;\n\ttext-transform: uppercase;\n}\n\n.wrapper .formInput,\n.wrapper .formTextarea {\n\tbackground: var(--pa-surface-2);\n\tborder: 1px solid var(--pa-border);\n\tborder-radius: 8px;\n\tcolor: var(--pa-text);\n\tfont-family: var(--pa-font);\n\tfont-size: 12px;\n\tpadding: 8px 10px;\n\n\t&:hover {\n\t\tborder-color: var(--pa-border-strong);\n\t\tbackground: var(--pa-surface-3);\n\t}\n\n\t&:focus {\n\t\tborder-color: rgba(122, 162, 255, 0.5);\n\t\tbackground: rgba(122, 162, 255, 0.07);\n\t\tbox-shadow: 0 0 0 3px rgba(122, 162, 255, 0.12);\n\t}\n\n\t&::placeholder {\n\t\tcolor: var(--pa-text-3);\n\t}\n}\n\n.wrapper .formHint {\n\tfont-size: 10px;\n\tline-height: 1.45;\n\tcolor: var(--pa-text-3);\n}\n\n.wrapper .sliderValue {\n\tcolor: var(--pa-accent-strong);\n\tfont-family: var(--pa-mono);\n\tfont-size: 12px;\n}\n\n/* Provider presets / cards */\n.wrapper .quickStart {\n\tpadding: 10px;\n\tmargin-bottom: 10px;\n\tborder: 1px dashed rgba(122, 162, 255, 0.3);\n\tborder-radius: 10px;\n\tbackground: rgba(122, 162, 255, 0.055);\n}\n\n.wrapper .quickStartTitle {\n\tfont-size: 11px;\n\tfont-weight: 650;\n\tcolor: var(--pa-text);\n\tmargin-bottom: 2px;\n}\n\n.wrapper .quickStartHint {\n\tfont-size: 10px;\n\tline-height: 1.45;\n\tcolor: var(--pa-text-3);\n\tmargin-bottom: 8px;\n}\n\n.wrapper .presetGrid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(2, minmax(0, 1fr));\n\tgap: 5px;\n}\n\n.wrapper .presetBtn {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: flex-start;\n\tgap: 1px;\n\tpadding: 6px 8px;\n\tborder: 1px solid var(--pa-border);\n\tborder-radius: 8px;\n\tbackground: var(--pa-surface-2);\n\tcolor: var(--pa-text-2);\n\tcursor: pointer;\n\ttext-align: left;\n\tmin-width: 0;\n\n\t&:hover {\n\t\tborder-color: rgba(122, 162, 255, 0.42);\n\t\tbackground: rgba(122, 162, 255, 0.11);\n\t}\n}\n\n.wrapper .presetName {\n\tfont-size: 11px;\n\tfont-weight: 600;\n\tcolor: var(--pa-text);\n}\n\n.wrapper .presetMeta {\n\tfont-family: var(--pa-mono);\n\tfont-size: 9px;\n\tcolor: var(--pa-text-3);\n\tmax-width: 100%;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n.wrapper .providerEmpty {\n\tcolor: var(--pa-text-3);\n\tfont-size: 10.5px;\n\tpadding: 8px 2px;\n}\n\n.wrapper .providerCard {\n\tbackground: var(--pa-surface-2);\n\tborder: 1px solid var(--pa-border);\n\tborder-radius: 10px;\n}\n\n.wrapper .providerCardActive {\n\tborder-color: rgba(122, 162, 255, 0.34);\n\tbackground: rgba(122, 162, 255, 0.07);\n}\n\n.wrapper .providerAddBtn {\n\tborder: 1px dashed var(--pa-border-strong);\n\tbackground: transparent;\n\tborder-radius: 8px;\n\tcolor: var(--pa-text-3);\n\tfont-size: 11px;\n\tpadding: 7px 10px;\n\n\t&:hover {\n\t\tborder-color: rgba(122, 162, 255, 0.4);\n\t\tcolor: var(--pa-accent-strong);\n\t\tbackground: rgba(122, 162, 255, 0.07);\n\t}\n}\n\n/* Model switcher pill */\n.wrapper .modelSwitcherPill {\n\tbackground: var(--pa-surface-2);\n\tborder: 1px solid var(--pa-border);\n\tcolor: var(--pa-text-2);\n\theight: 26px;\n\tborder-radius: var(--pa-radius-pill);\n\tfont-size: 10.5px;\n\tmax-width: 100%;\n\n\t&:hover {\n\t\tbackground: var(--pa-surface-3);\n\t\tborder-color: var(--pa-border-strong);\n\t}\n}\n\n.wrapper .modelSwitcherPillName {\n\tfont-size: 10.5px;\n\tcolor: var(--pa-text-2);\n}\n\n.wrapper .modelSwitcherPillChevron {\n\twidth: 10px;\n\theight: 10px;\n\tdisplay: flex;\n\topacity: 0.6;\n\n\t& svg {\n\t\twidth: 10px;\n\t\theight: 10px;\n\t}\n}\n\n/* Model dropdown polish */\n.wrapper .modelDropdown {\n\tbackground: var(--pa-surface-solid);\n\tborder: 1px solid var(--pa-border-strong);\n\tborder-radius: 12px;\n\tbox-shadow: var(--pa-shadow);\n\tpadding: 5px;\n}\n\n.wrapper .modelDropdownGroupLabel {\n\tfont-family: var(--pa-font);\n\tfont-size: 9px;\n\tfont-weight: 700;\n\tletter-spacing: 0.07em;\n\tcolor: var(--pa-text-3);\n\tpadding: 6px 8px 3px;\n}\n\n.wrapper .modelDropdownItem {\n\tborder-radius: 8px;\n\tcolor: var(--pa-text-2);\n\tfont-family: var(--pa-font);\n\tfont-size: 11.5px;\n}\n\n.wrapper .modelDropdownItem:hover {\n\tbackground: var(--pa-surface-2);\n}\n\n.wrapper .modelDropdownItemActive {\n\tbackground: var(--pa-accent-soft);\n\tcolor: var(--pa-text);\n}\n\n.wrapper .modelDropdownFooterBtn {\n\tcolor: var(--pa-accent-strong);\n\tfont-family: var(--pa-font);\n\tfont-size: 11px;\n\tborder-radius: 8px;\n}\n\n.wrapper .modelDropdownFooterBtn:hover {\n\tbackground: var(--pa-surface-2);\n}\n\n/* Stacking: keep overlays above the header, which they cross when open. */\n.wrapper .historySectionWrapper {\n\tz-index: 1;\n}\n\n.wrapper .settingsSection {\n\tz-index: 4;\n}\n\n.wrapper .header {\n\tz-index: 2;\n}\n\n.wrapper .inputSectionWrapper {\n\tz-index: 3;\n}\n\n.wrapper.settingsOpen .historySectionWrapper {\n\tvisibility: hidden;\n}\n\n.wrapper.settingsOpen .historySection {\n\tmax-height: 0;\n}\n\n.wrapper .messageAvatar svg {\n\twidth: 11px;\n\theight: 11px;\n}\n\n/* Misc / motion */\n.wrapper .resizeHandle {\n\ttop: 10px;\n\tbottom: 10px;\n\tright: -3px;\n\twidth: 6px;\n\n\t&:hover {\n\t\tbackground: rgba(122, 162, 255, 0.28);\n\t}\n}\n\n.wrapper .newConversationBtn,\n.wrapper .modeChip,\n.wrapper .sendBtn,\n.wrapper .approvalBtn {\n\t-webkit-tap-highlight-color: transparent;\n}\n\n@media (prefers-reduced-motion: reduce) {\n\t.wrapper *,\n\t.wrapper *::before,\n\t.wrapper *::after {\n\t\tanimation-duration: 0.001ms !important;\n\t\tanimation-iteration-count: 1 !important;\n\t\ttransition-duration: 0.001ms !important;\n\t}\n}\n\n/* Normalize legacy history-row rules. The original selectors are nested three\n levels deep, so these higher-specificity rules keep observation/error rows\n visually consistent with the new surface. */\n.wrapper .historySectionWrapper .historySection .historyItem {\n\tpadding: 7px 9px;\n\tmargin-bottom: 3px;\n\tbackground: transparent;\n\tborder: none;\n\tbox-shadow: none;\n\toverflow: visible;\n\tposition: relative;\n\tcolor: var(--pa-text-2);\n\tfont-size: 12px;\n\tline-height: 1.55;\n}\n\n.wrapper .historySectionWrapper .historySection .historyItem::before {\n\tdisplay: none;\n}\n\n.wrapper .historySectionWrapper .historySection .historyItem:hover {\n\tbackground: var(--pa-surface-2);\n\tbox-shadow: none;\n}\n\n.wrapper .historySectionWrapper .historySection .historyItem.observation,\n.wrapper .historySectionWrapper .historySection .historyItem.question,\n.wrapper .historySectionWrapper .historySection .historyItem.retry,\n.wrapper .historySectionWrapper .historySection .historyItem.input,\n.wrapper .historySectionWrapper .historySection .historyItem.output {\n\tbackground: transparent;\n\tborder: none;\n\tbox-shadow: none;\n}\n\n.wrapper .historySectionWrapper .historySection .historyItem.observation {\n\tcolor: var(--pa-text-3);\n\tfont-size: 11.5px;\n}\n\n.wrapper .historySectionWrapper .historySection .historyItem.question {\n\tbackground: rgba(251, 191, 36, 0.07);\n\tborder: 1px solid rgba(251, 191, 36, 0.22);\n\tborder-radius: 10px;\n}\n\n.wrapper .historySectionWrapper .historySection .historyItem.error {\n\tbackground: rgba(248, 113, 113, 0.07);\n\tborder: 1px solid rgba(248, 113, 113, 0.22);\n\tborder-radius: 10px;\n}\n\n.wrapper .historySectionWrapper .historySection .historyItem .historyContent {\n\tgap: 7px;\n}\n\n.wrapper .historySectionWrapper .historySection .historyItem .historyContent .statusIcon {\n\twidth: 13px;\n\theight: 13px;\n\tmargin-top: 2px;\n\tcolor: var(--pa-text-3);\n}\n\n.wrapper .historySectionWrapper .historySection .historyItem .historyMeta {\n\tcolor: var(--pa-text-3);\n\tfont-family: var(--pa-mono);\n\tfont-size: 9.5px;\n\tmargin-top: 5px;\n}\n\n/* Icon + label alignment: icons sit on the first text line baseline, not\n above or below it. Containers use the same 16px line box. */\n.wrapper .reflectionRow {\n\tdisplay: flex;\n\talign-items: flex-start;\n\tgap: 7px;\n\tpadding: 2px 0;\n}\n\n.wrapper .reflectionIcon {\n\twidth: 14px;\n\theight: 16px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-top: 0;\n\tflex-shrink: 0;\n}\n\n.wrapper .reflectionIcon svg {\n\twidth: 12px;\n\theight: 12px;\n}\n\n.wrapper .reflectionLabel {\n\tfont-size: 9.5px;\n\tline-height: 16px;\n\tfont-weight: 650;\n\tletter-spacing: 0.04em;\n\tmargin: 0;\n\tcolor: var(--phase-color, var(--pa-accent));\n}\n\n.wrapper .reflectionText {\n\tfont-size: 11.5px;\n\tline-height: 16px;\n\tmargin: 0;\n\tcolor: var(--pa-text-2);\n}\n\n.wrapper .actionCardHeader {\n\talign-items: center;\n\tmin-height: 18px;\n}\n\n.wrapper .actionCardHeader .statusIcon {\n\twidth: 14px;\n\theight: 14px;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin: 0;\n}\n\n.wrapper .actionCardHeader .statusIcon svg {\n\twidth: 12px;\n\theight: 12px;\n}\n\n.wrapper .actionCardLabel {\n\tfont-size: 10px;\n\tline-height: 16px;\n}\n\n.wrapper .stepHeader {\n\tmin-height: 30px;\n}\n\n.wrapper .stepHeaderIcon {\n\twidth: 15px;\n\theight: 15px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.wrapper .stepHeaderIcon svg {\n\twidth: 13px;\n\theight: 13px;\n}\n\n.wrapper .stepHeaderLabel {\n\tline-height: 16px;\n}\n\n.wrapper .historySectionWrapper .historySection .historyItem .historyContent {\n\talign-items: flex-start;\n}\n\n.wrapper .historySectionWrapper .historySection .historyItem .historyContent .statusIcon {\n\twidth: 14px;\n\theight: 17px;\n\tmargin-top: 0;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.wrapper .historySectionWrapper .historySection .historyItem .historyContent .statusIcon svg {\n\twidth: 12px;\n\theight: 12px;\n}\n\n/* Compact reflection / loop indicators */\n.wrapper .reflectionRepeat {\n\tcolor: var(--pa-text-3);\n\tfont-size: 10.5px;\n\tfont-style: italic;\n\tline-height: 16px;\n}\n\n.wrapper .reflectionCompact {\n\tcolor: var(--pa-text-3);\n\tfont-size: 11px;\n\tline-height: 16px;\n}\n\n.wrapper .stepRepeatBadge {\n\tfont-size: 8.5px;\n\tfont-weight: 650;\n\tletter-spacing: 0.03em;\n\tcolor: var(--pa-warning);\n\tbackground: rgba(251, 191, 36, 0.12);\n\tborder: 1px solid rgba(251, 191, 36, 0.28);\n\tpadding: 1px 5px;\n\tborder-radius: 5px;\n\tflex-shrink: 0;\n}\n\n.wrapper .expandButton {\n\tcolor: var(--pa-text-3);\n}\n\n.wrapper .expandButtonActive {\n\tcolor: var(--pa-accent-strong);\n\tbackground: var(--pa-accent-soft);\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\n/* ==========================================================================\n Risk-tiered authorization UI (V3)\n ========================================================================== */\n\n/* Resume bar: continue an interrupted run without losing its history -------- */\n.wrapper .resumeBar {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tmargin: 0 0 2px;\n\tpadding: 7px 9px;\n\tborder-radius: var(--pa-radius-sm);\n\tborder: 1px solid rgba(122, 162, 255, 0.35);\n\tbackground: rgba(122, 162, 255, 0.12);\n}\n\n/* `.hidden` in this module is only defined per-container, so state it here too. */\n.wrapper .resumeBar.hidden {\n\tdisplay: none;\n}\n\n.wrapper .resumeIcon {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 16px;\n\theight: 16px;\n\tflex: 0 0 16px;\n\tcolor: var(--pa-accent-strong);\n}\n\n.wrapper .resumeIcon svg {\n\twidth: 14px;\n\theight: 14px;\n}\n\n.wrapper .resumeText {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 1px;\n\tflex: 1 1 auto;\n\tmin-width: 0;\n}\n\n.wrapper .resumeTitle {\n\tfont-size: 11.5px;\n\tfont-weight: 650;\n\tcolor: var(--pa-text);\n}\n\n.wrapper .resumeHint {\n\tfont-size: 10.5px;\n\tline-height: 1.4;\n\tcolor: var(--pa-text-3);\n}\n\n.wrapper .resumeBtn {\n\tflex: 0 0 auto;\n\theight: 26px;\n\tpadding: 0 10px;\n\tborder-radius: var(--pa-radius-pill);\n\tborder: 1px solid rgba(122, 162, 255, 0.5);\n\tbackground: var(--pa-accent);\n\tcolor: #0a0f1e;\n\tfont-size: 11px;\n\tfont-weight: 700;\n\tcursor: pointer;\n\ttransition: background 0.15s ease;\n}\n\n.wrapper .resumeBtn:hover {\n\tbackground: var(--pa-accent-strong);\n}\n\n/* Risk badges ------------------------------------------------------------- */\n.wrapper .riskBadge {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 5px;\n\tpadding: 2px 8px 2px 6px;\n\tmargin: 6px 0 0;\n\tborder-radius: var(--pa-radius-pill);\n\tborder: 1px solid var(--pa-border-strong);\n\tbackground: var(--pa-surface-2);\n\tfont-size: 10.5px;\n\tline-height: 16px;\n\tfont-weight: 600;\n\tletter-spacing: 0.01em;\n\twhite-space: nowrap;\n\talign-self: flex-start;\n}\n\n.wrapper .riskBadgeLevel {\n\tfont-family: var(--pa-mono);\n\tfont-size: 10px;\n\tfont-weight: 700;\n\tpadding: 0 4px;\n\tborder-radius: 4px;\n\tbackground: rgba(255, 255, 255, 0.08);\n\tcolor: var(--pa-text-2);\n}\n\n.wrapper .riskBadgeLabel {\n\tcolor: var(--pa-text-2);\n\tfont-weight: 550;\n}\n\n.wrapper .riskBadge[data-risk='L0'] {\n\tborder-color: rgba(148, 163, 184, 0.35);\n\tcolor: rgba(203, 213, 225, 0.9);\n}\n.wrapper .riskBadge[data-risk='L0'] .riskBadgeLevel {\n\tbackground: rgba(148, 163, 184, 0.22);\n\tcolor: #cbd5e1;\n}\n\n.wrapper .riskBadge[data-risk='L1'] {\n\tborder-color: rgba(74, 222, 128, 0.32);\n\tcolor: #86efac;\n}\n.wrapper .riskBadge[data-risk='L1'] .riskBadgeLevel {\n\tbackground: rgba(74, 222, 128, 0.16);\n\tcolor: #86efac;\n}\n\n.wrapper .riskBadge[data-risk='L2'] {\n\tborder-color: rgba(251, 191, 36, 0.34);\n\tcolor: #fcd34d;\n}\n.wrapper .riskBadge[data-risk='L2'] .riskBadgeLevel {\n\tbackground: rgba(251, 191, 36, 0.16);\n\tcolor: #fcd34d;\n}\n\n.wrapper .riskBadge[data-risk='L3'] {\n\tborder-color: rgba(248, 113, 113, 0.4);\n\tcolor: #fca5a5;\n}\n.wrapper .riskBadge[data-risk='L3'] .riskBadgeLevel {\n\tbackground: rgba(248, 113, 113, 0.18);\n\tcolor: #fca5a5;\n}\n\n/* Compact variant used inside step headers */\n.wrapper .riskBadgeInline {\n\tmargin: 0 0 0 auto;\n\tpadding: 0 6px;\n\tfont-size: 9.5px;\n\tline-height: 15px;\n\tfont-family: var(--pa-mono);\n\tfont-weight: 700;\n\tletter-spacing: 0.04em;\n}\n\n/* Approval card ---------------------------------------------------------- */\n.wrapper .approvalCardDanger {\n\tborder-color: rgba(248, 113, 113, 0.35);\n\tbackground:\n\t\tlinear-gradient(180deg, rgba(248, 113, 113, 0.09), transparent 65%), var(--pa-surface-2);\n\tbox-shadow: 0 0 0 1px rgba(248, 113, 113, 0.12) inset;\n}\n\n.wrapper .gatePreview {\n\tmargin: 8px 0 0;\n\tpadding: 8px 9px;\n\tborder-radius: var(--pa-radius-sm);\n\tborder: 1px solid var(--pa-border);\n\tbackground: rgba(0, 0, 0, 0.24);\n}\n\n.wrapper .gatePreviewHead {\n\tdisplay: flex;\n\talign-items: baseline;\n\tgap: 6px;\n\tflex-wrap: wrap;\n}\n\n.wrapper .gateActionLabel {\n\tfont-size: 11.5px;\n\tfont-weight: 650;\n\tcolor: var(--pa-text);\n}\n\n.wrapper .gateTarget {\n\tfont-family: var(--pa-mono);\n\tfont-size: 10.5px;\n\tcolor: var(--pa-accent-strong);\n\tword-break: break-word;\n}\n\n.wrapper .gateSep {\n\tcolor: var(--pa-text-3);\n\tfont-size: 11px;\n}\n\n/* Inline tool result folded into the same action card */\n.wrapper .actionResultLine {\n\tmargin-top: 4px;\n\tpadding-top: 4px;\n\tborder-top: 1px dashed var(--pa-border);\n\tfont-family: var(--pa-mono);\n\tfont-size: 10.5px;\n\tline-height: 1.5;\n\tcolor: var(--pa-text-2);\n\tword-break: break-word;\n}\n\n.wrapper .gateDetails {\n\tmargin-top: 5px;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 3px;\n\tfont-family: var(--pa-mono);\n\tfont-size: 10.5px;\n\tline-height: 1.45;\n\tcolor: var(--pa-text-2);\n\tword-break: break-word;\n\twhite-space: pre-wrap;\n\tmax-height: 108px;\n\toverflow: auto;\n}\n\n.wrapper .gateHint {\n\tmargin-top: 7px;\n\tfont-size: 11px;\n\tline-height: 1.5;\n\tcolor: var(--pa-text-2);\n}\n\n.wrapper .gateShortcut {\n\tmargin-top: 5px;\n\tfont-size: 10.5px;\n\tcolor: var(--pa-text-3);\n}\n\n/* \"Why\" block: model goal + previous step outcome */\n.wrapper .gateReason {\n\tmargin-top: 8px;\n\tpadding-left: 9px;\n\tborder-left: 2px solid rgba(122, 162, 255, 0.35);\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n}\n\n.wrapper .gateReasonRow {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 1px;\n\tmin-width: 0;\n}\n\n.wrapper .gateReasonLabel {\n\tfont-size: 9.5px;\n\tfont-weight: 700;\n\tletter-spacing: 0.06em;\n\ttext-transform: uppercase;\n\tcolor: var(--pa-text-3);\n}\n\n.wrapper .gateReasonText {\n\tfont-size: 11.5px;\n\tline-height: 1.5;\n\tcolor: var(--pa-text);\n\tword-break: break-word;\n\twhite-space: pre-wrap;\n\tmax-height: 76px;\n\toverflow: auto;\n}\n\n.wrapper .gateReasonRowMuted .gateReasonLabel {\n\ttext-transform: none;\n\tletter-spacing: 0.02em;\n\tfont-weight: 600;\n}\n\n.wrapper .gateReasonRowMuted .gateReasonText {\n\tfont-family: var(--pa-mono);\n\tfont-size: 10.5px;\n\tcolor: var(--pa-text-2);\n}\n\n/* Toast ------------------------------------------------------------------ */\n.wrapper .toastHost {\n\tposition: absolute;\n\tleft: var(--side-space);\n\tright: var(--side-space);\n\tbottom: calc(var(--height) + 10px);\n\tz-index: 3;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n\tpointer-events: none;\n}\n\n.wrapper .toast {\n\tpointer-events: auto;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tpadding: 7px 9px;\n\tborder-radius: var(--pa-radius-sm);\n\tborder: 1px solid var(--pa-border-strong);\n\tbackground: rgba(24, 27, 34, 0.94);\n\tbackdrop-filter: blur(14px) saturate(140%);\n\t-webkit-backdrop-filter: blur(14px) saturate(140%);\n\tbox-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);\n\tcolor: var(--pa-text);\n\tfont-size: 11.5px;\n\tanimation: paToastIn 0.18s ease-out;\n}\n\n@keyframes paToastIn {\n\tfrom {\n\t\topacity: 0;\n\t\ttransform: translateY(6px);\n\t}\n\tto {\n\t\topacity: 1;\n\t\ttransform: translateY(0);\n\t}\n}\n\n.wrapper .toastIcon {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 15px;\n\theight: 15px;\n\tflex: 0 0 15px;\n\tcolor: var(--pa-accent-strong);\n}\n\n.wrapper .toastIcon svg {\n\twidth: 15px;\n\theight: 15px;\n}\n\n.wrapper .toastText {\n\tflex: 1 1 auto;\n\tmin-width: 0;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n\tcolor: var(--pa-text-2);\n}\n\n.wrapper .toastAction {\n\tflex: 0 0 auto;\n\theight: 24px;\n\tpadding: 0 9px;\n\tborder-radius: var(--pa-radius-pill);\n\tborder: 1px solid rgba(122, 162, 255, 0.45);\n\tbackground: var(--pa-accent-soft);\n\tcolor: var(--pa-accent-strong);\n\tfont-size: 11px;\n\tfont-weight: 650;\n\tcursor: pointer;\n\ttransition: background 0.15s ease;\n}\n\n.wrapper .toastAction:hover {\n\tbackground: rgba(122, 162, 255, 0.24);\n}\n\n.wrapper .toastClose {\n\tflex: 0 0 auto;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 20px;\n\theight: 20px;\n\tpadding: 0;\n\tborder: none;\n\tbackground: transparent;\n\tcolor: var(--pa-text-3);\n\tcursor: pointer;\n\tborder-radius: 6px;\n}\n\n.wrapper .toastClose:hover {\n\tcolor: var(--pa-text);\n\tbackground: var(--pa-surface-3);\n}\n\n.wrapper .toastClose svg {\n\twidth: 12px;\n\theight: 12px;\n}\n\n/* Authorization policy settings tab -------------------------------------- */\n.wrapper .policyList {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n\tmargin-top: 6px;\n}\n\n.wrapper .policyOption {\n\tdisplay: flex;\n\talign-items: flex-start;\n\tgap: 9px;\n\twidth: 100%;\n\tpadding: 9px 10px;\n\tborder-radius: var(--pa-radius-sm);\n\tborder: 1px solid var(--pa-border);\n\tbackground: var(--pa-surface-2);\n\tcolor: var(--pa-text);\n\ttext-align: left;\n\tcursor: pointer;\n\ttransition:\n\t\tborder-color 0.15s ease,\n\t\tbackground 0.15s ease;\n}\n\n.wrapper .policyOption:hover {\n\tborder-color: var(--pa-border-strong);\n\tbackground: var(--pa-surface-3);\n}\n\n.wrapper .policyOptionActive {\n\tborder-color: rgba(122, 162, 255, 0.55);\n\tbackground: var(--pa-accent-soft);\n}\n\n.wrapper .policyIcon {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 18px;\n\theight: 18px;\n\tflex: 0 0 18px;\n\tcolor: var(--pa-accent-strong);\n\tmargin-top: 1px;\n}\n\n.wrapper .policyIcon svg {\n\twidth: 16px;\n\theight: 16px;\n}\n\n.wrapper .policyText {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n\tflex: 1 1 auto;\n\tmin-width: 0;\n}\n\n.wrapper .policyTitle {\n\tfont-size: 12px;\n\tfont-weight: 650;\n\tline-height: 1.35;\n}\n\n.wrapper .policyDesc {\n\tfont-size: 11px;\n\tline-height: 1.45;\n\tcolor: var(--pa-text-3);\n}\n\n.wrapper .policyCheck {\n\topacity: 0;\n\tcolor: var(--pa-accent-strong);\n\tdisplay: inline-flex;\n\talign-items: center;\n\twidth: 14px;\n\theight: 14px;\n\tflex: 0 0 14px;\n\tmargin-top: 2px;\n}\n\n.wrapper .policyCheck svg {\n\twidth: 14px;\n\theight: 14px;\n}\n\n.wrapper .policyOptionActive .policyCheck {\n\topacity: 1;\n}\n\n.wrapper .checkboxRow {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tfont-size: 12px;\n\tcolor: var(--pa-text);\n\tcursor: pointer;\n\tmargin-top: 4px;\n}\n\n.wrapper .checkboxRow input[type='checkbox'] {\n\twidth: 14px;\n\theight: 14px;\n\taccent-color: var(--pa-accent);\n\tcursor: pointer;\n}\n\n.wrapper .riskMatrix {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n\tmargin-top: 6px;\n}\n\n.wrapper .riskRow {\n\tdisplay: grid;\n\tgrid-template-columns: 96px minmax(0, 1fr);\n\talign-items: start;\n\tgap: 8px;\n}\n\n.wrapper .riskRow .riskBadge {\n\tmargin: 0;\n\tflex: 0 0 auto;\n\tmin-width: 0;\n\tjustify-content: center;\n}\n\n.wrapper .riskDesc {\n\tfont-size: 11px;\n\tline-height: 1.5;\n\tcolor: var(--pa-text-2);\n\tpadding-top: 2px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n\t.wrapper .toast {\n\t\tanimation: none;\n\t}\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 * SVG Icon Library — Lucide-inspired 24×24 stroke icons (MIT)\n *\n * Stroke width: 2px. Thicker & cleaner at small sizes vs Phosphor's 1.5px.\n * Each SVG path is hand-optimized for legibility at 12-16px render size.\n *\n * Usage: import { Brain, Play } from './icons'; element.innerHTML = Brain;\n */\n\nexport const Brain = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z\"/><path d=\"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z\"/><path d=\"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4\"/></svg>`\n\nexport const CheckCircle2 = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m9 12 2 2 4-4\"/></svg>`\n\nexport const Database = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><ellipse cx=\"12\" cy=\"5\" rx=\"9\" ry=\"3\"/><path d=\"M3 5v6c0 1.66 3.58 3 9 3s9-1.34 9-3V5\"/><path d=\"M3 11v6c0 1.66 3.58 3 9 3s9-1.34 9-3v-6\"/></svg>`\n\nexport const Crosshair = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><line x1=\"22\" x2=\"18\" y1=\"12\" y2=\"12\"/><line x1=\"6\" x2=\"2\" y1=\"12\" y2=\"12\"/><line x1=\"12\" x2=\"12\" y1=\"6\" y2=\"2\"/><line x1=\"12\" x2=\"12\" y1=\"22\" y2=\"18\"/></svg>`\n\nexport const Play = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polygon points=\"5 3 19 12 5 21 5 3\"/></svg>`\n\nexport const BadgeCheck = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\"/><path d=\"m9 12 2 2 4-4\"/></svg>`\n\nexport const Zap = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"/></svg>`\n\nexport const HelpCircle = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"/><path d=\"M12 17h.01\"/></svg>`\n\nexport const MessageSquare = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"/></svg>`\n\nexport const Eye = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z\"/><circle cx=\"12\" cy=\"12\" r=\"3\"/></svg>`\n\nexport const User = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"8\" r=\"5\"/><path d=\"M20 21a8 8 0 0 0-16 0\"/></svg>`\n\nexport const RefreshCw = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\"/><path d=\"M21 3v5h-5\"/><path d=\"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\"/><path d=\"M3 21v-5h5\"/></svg>`\n\nexport const AlertCircle = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><line x1=\"12\" x2=\"12\" y1=\"8\" y2=\"12\"/><line x1=\"12\" x2=\"12.01\" y1=\"16\" y2=\"16\"/></svg>`\n\nexport const Settings = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z\"/><circle cx=\"12\" cy=\"12\" r=\"3\"/></svg>`\n\nexport const X = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>`\n\nexport const Square = `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" stroke=\"none\" aria-hidden=\"true\"><rect x=\"6\" y=\"6\" width=\"12\" height=\"12\" rx=\"2\"/></svg>`\n\nexport const ArrowUp = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 19V5\"/><path d=\"m5 12 7-7 7 7\"/></svg>`\n\nexport const ChevronDown = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"/></svg>`\n\nexport const Copy = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"/><path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"/></svg>`\n\nexport const Check = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"/></svg>`\n\nexport const Sparkles = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m12 3-1.9 5.8a2 2 0 0 1-1.3 1.3L3 12l5.8 1.9a2 2 0 0 1 1.3 1.3L12 21l1.9-5.8a2 2 0 0 1 1.3-1.3L21 12l-5.8-1.9a2 2 0 0 1-1.3-1.3Z\"/><path d=\"M5 3v4\"/><path d=\"M19 17v4\"/><path d=\"M3 5h4\"/><path d=\"M17 19h4\"/></svg>`\n\nexport const Hand = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2\"/><path d=\"M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2\"/><path d=\"M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8\"/><path d=\"M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15\"/></svg>`\n\nexport const Pause = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"14\" y=\"4\" width=\"4\" height=\"16\" rx=\"1\"/><rect x=\"6\" y=\"4\" width=\"4\" height=\"16\" rx=\"1\"/></svg>`\n\nexport const Layers = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z\"/><path d=\"m6.08 9.5-3.5 1.6a1 1 0 0 0 0 1.81l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9a1 1 0 0 0 0-1.83l-3.5-1.59\"/><path d=\"m6.08 14.5-3.5 1.6a1 1 0 0 0 0 1.81l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9a1 1 0 0 0 0-1.83l-3.5-1.59\"/></svg>`\n\nexport const Sliders = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><line x1=\"21\" x2=\"14\" y1=\"4\" y2=\"4\"/><line x1=\"10\" x2=\"3\" y1=\"4\" y2=\"4\"/><line x1=\"21\" x2=\"12\" y1=\"12\" y2=\"12\"/><line x1=\"8\" x2=\"3\" y1=\"12\" y2=\"12\"/><line x1=\"21\" x2=\"16\" y1=\"20\" y2=\"20\"/><line x1=\"12\" x2=\"3\" y1=\"20\" y2=\"20\"/><line x1=\"14\" x2=\"14\" y1=\"2\" y2=\"6\"/><line x1=\"8\" x2=\"8\" y1=\"10\" y2=\"14\"/><line x1=\"16\" x2=\"16\" y1=\"18\" y2=\"22\"/></svg>`\n\nexport const Plus = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12h14\"/><path d=\"M12 5v14\"/></svg>`\n\nexport const Trash = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 6h18\"/><path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6\"/><path d=\"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"/><line x1=\"10\" x2=\"10\" y1=\"11\" y2=\"17\"/><line x1=\"14\" x2=\"14\" y1=\"11\" y2=\"17\"/></svg>`\n\nexport const KeyRound = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z\"/><circle cx=\"16.5\" cy=\"7.5\" r=\".5\" fill=\"currentColor\"/></svg>`\n\nexport const Server = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"20\" height=\"8\" x=\"2\" y=\"2\" rx=\"2\" ry=\"2\"/><rect width=\"20\" height=\"8\" x=\"2\" y=\"14\" rx=\"2\" ry=\"2\"/><line x1=\"6\" x2=\"6.01\" y1=\"6\" y2=\"6\"/><line x1=\"6\" x2=\"6.01\" y1=\"18\" y2=\"18\"/></svg>`\n\nexport const BookOpen = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 7v14\"/><path d=\"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z\"/></svg>`\n\nexport const Loader = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 2v4\"/><path d=\"m16.2 7.8 2.9-2.9\"/><path d=\"M18 12h4\"/><path d=\"m16.2 16.2 2.9 2.9\"/><path d=\"M12 18v4\"/><path d=\"m4.9 19.1 2.9-2.9\"/><path d=\"M2 12h4\"/><path d=\"m4.9 4.9 2.9 2.9\"/></svg>`\n\nexport const Lightbulb = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5\"/><path d=\"M9 18h6\"/><path d=\"M10 22h4\"/></svg>`\n\nexport const CircleCheckBig = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M21.801 10A10 10 0 1 1 17 3.335\"/><path d=\"m9 11 3 3L22 4\"/></svg>`\n\nexport const NotebookText = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M2 6h4\"/><path d=\"M2 10h4\"/><path d=\"M2 14h4\"/><path d=\"M2 18h4\"/><rect width=\"16\" height=\"20\" x=\"4\" y=\"2\" rx=\"2\"/><path d=\"M9.5 8h5\"/><path d=\"M9.5 12h5\"/><path d=\"M9.5 16h3\"/></svg>`\n\nexport const Milestone = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 13v8\"/><path d=\"M12 3v3\"/><path d=\"M4 6a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h13a2 2 0 0 0 1.152-.365l3.424-2.317a1 1 0 0 0 0-1.635l-3.424-2.318A2 2 0 0 0 17 6z\"/></svg>`\n\nexport const CircleArrowRight = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M8 12h8\"/><path d=\"m12 16 4-4-4-4\"/></svg>`\n\nexport const Flag = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z\"/><line x1=\"4\" x2=\"4\" y1=\"22\" y2=\"15\"/></svg>`\n\nexport const MousePointerClick = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M14 4.1 12 6\"/><path d=\"m5.1 8-2.9-.8\"/><path d=\"m6 12-1.9 2\"/><path d=\"M7.2 2.2 8 5.1\"/><path d=\"M9.037 9.69a.498.498 0 0 1 .653-.653l11 11a.5.5 0 0 1-.074.785l-4.786 2.393a.5.5 0 0 1-.637-.11l-2.28-2.28a.5.5 0 0 1-.11-.637z\"/></svg>`\n\nexport const Keyboard = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M10 8h.01\"/><path d=\"M12 12h.01\"/><path d=\"M14 8h.01\"/><path d=\"M16 12h.01\"/><path d=\"M18 8h.01\"/><path d=\"M6 8h.01\"/><path d=\"M7 16h10\"/><path d=\"M8 12h.01\"/><rect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\"/></svg>`\n\nexport const Timer = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><line x1=\"10\" x2=\"14\" y1=\"2\" y2=\"2\"/><line x1=\"12\" x2=\"15\" y1=\"14\" y2=\"11\"/><circle cx=\"12\" cy=\"14\" r=\"8\"/></svg>`\n\nexport const MessageCircleQuestion = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7.9 20A9 9 0 1 0 4 16.1L2 22Z\"/><path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"/><path d=\"M12 17h.01\"/></svg>`\n\nexport const FileText = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\"/><path d=\"M14 2v4a2 2 0 0 0 2 2h4\"/><path d=\"M10 9H8\"/><path d=\"M16 13H8\"/><path d=\"M16 17H8\"/></svg>`\n\nexport const Info = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 16v-4\"/><path d=\"M12 8h.01\"/></svg>`\n\nexport const Compass = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z\"/><circle cx=\"12\" cy=\"12\" r=\"10\"/></svg>`\n\nexport const History = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\"/><path d=\"M3 3v5h5\"/><path d=\"M12 7v5l4 2\"/></svg>`\n\nexport const Bot = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 8V4H8\"/><rect width=\"16\" height=\"12\" x=\"4\" y=\"8\" rx=\"2\"/><path d=\"M2 14h2\"/><path d=\"M20 14h2\"/><path d=\"M15 13v2\"/><path d=\"M9 13v2\"/></svg>`\n\nexport const Globe = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20\"/><path d=\"M2 12h20\"/></svg>`\n\nexport const Wrench = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\"/></svg>`\n\nexport const Save = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z\"/><path d=\"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7\"/><path d=\"M7 3v4a1 1 0 0 0 1 1h7\"/></svg>`\n\nexport const ArrowLeft = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m12 19-7-7 7-7\"/><path d=\"M19 12H5\"/></svg>`\n\nexport const ArrowRight = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12h14\"/><path d=\"m12 5 7 7-7 7\"/></svg>`\n\nexport const RotateCw = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8\"/><path d=\"M21 3v5h-5\"/></svg>`\n\nexport const MousePointer = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12.586 12.586 19 19\"/><path d=\"M3.688 3.037a.497.497 0 0 0-.651.651l6.5 15.999a.501.501 0 0 0 .947-.062l1.569-6.083a2 2 0 0 1 1.448-1.479l6.124-1.579a.5.5 0 0 0 .063-.947z\"/></svg>`\n\nexport const ArrowUpDown = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m21 16-4 4-4-4\"/><path d=\"M17 20V4\"/><path d=\"m3 8 4-4 4 4\"/><path d=\"M7 4v16\"/></svg>`\n\nexport const ListChecks = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m3 17 2 2 4-4\"/><path d=\"m3 7 2 2 4-4\"/><path d=\"M13 6h8\"/><path d=\"M13 12h8\"/><path d=\"M13 18h8\"/></svg>`\n\nexport const Undo2 = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M9 14 4 9l5-5\"/><path d=\"M4 9h10.5a5.5 5.5 0 0 1 0 11H11\"/></svg>`\n\nexport const ShieldAlert = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"/><path d=\"M12 8v4\"/><path d=\"M12 16h.01\"/></svg>`\n\nexport const ListOrdered = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M10 12h11\"/><path d=\"M10 18h11\"/><path d=\"M10 6h11\"/><path d=\"M4 10h2\"/><path d=\"M4 6h1v4\"/><path d=\"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1\"/></svg>`\n\nexport const PanelIcons = {\n\tsettings: Sliders,\n\tclose: X,\n\tstop: Square,\n\tsend: ArrowUp,\n\tchevron: ChevronDown,\n\tcopy: Copy,\n\tcheck: Check,\n\thistory: History,\n\tautopilot: Sparkles,\n\tcollaborative: Hand,\n\tstep: ListOrdered,\n\tpause: Pause,\n\tproviders: Server,\n\tagent: Bot,\n\tskills: BookOpen,\n\tsafety: ShieldAlert,\n\tundo: Undo2,\n\tresume: Play,\n\tplus: Plus,\n\ttrash: Trash,\n\tkey: KeyRound,\n\tloader: Loader,\n\tlayers: Layers,\n}\n\nexport const CardIcons: Record<string, string> = {\n\tthink: Lightbulb,\n\tevaluate: CircleCheckBig,\n\tmemory: NotebookText,\n\tgoal: CircleArrowRight,\n\ttool: Zap,\n\tdone: BadgeCheck,\n\ttask: Zap,\n\tquestion: MessageCircleQuestion,\n\tanswer: MessageSquare,\n\tobservation: Eye,\n\tinfo: Info,\n\tnavigation: Compass,\n\tuser: User,\n\tretry: RefreshCw,\n\terror: AlertCircle,\n\twait: Timer,\n\tclick: MousePointerClick,\n\tinput: Keyboard,\n\tscroll: ArrowUpDown,\n\tread: FileText,\n\tsave: Save,\n\tnavigate: Globe,\n\tback: ArrowLeft,\n\tforward: ArrowRight,\n\treload: RotateCw,\n\thover: MousePointer,\n\tselect: ListChecks,\n\tdefault: Wrench,\n}\n\nexport const ReflectionIcons: Record<string, string> = {\n\tevaluation_previous_goal: CircleCheckBig,\n\tmemory: NotebookText,\n\tnext_goal: CircleArrowRight,\n}\n","/**\n * marked v18.0.6 - a markdown parser\n * Copyright (c) 2018-2026, MarkedJS. (MIT License)\n * Copyright (c) 2011-2018, Christopher Jeffrey. (MIT License)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\nfunction M(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var T=M();function N(l){T=l}var _={exec:()=>null};function E(l){let e=[];return t=>{let n=Math.max(0,Math.min(3,t-1)),s=e[n];return s||(s=l(n),e[n]=s),s}}function d(l,e=\"\"){let t=typeof l==\"string\"?l:l.source,n={replace:(s,r)=>{let i=typeof r==\"string\"?r:r.source;return i=i.replace(m.caret,\"$1\"),t=t.replace(s,i),n},getRegex:()=>new RegExp(t,e)};return n}var Te=((l=\"\")=>{try{return!!new RegExp(\"(?<=1)(?<!1)\"+l)}catch{return!1}})(),m={codeRemoveIndent:/^(?: {1,4}| {0,3}\\t)/gm,outputLinkReplace:/\\\\([\\[\\]])/g,indentCodeCompensation:/^(\\s+)(?:```)/,beginningSpace:/^\\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\\n/g,tabCharGlobal:/\\t/g,multipleSpaceGlobal:/\\s+/g,blankLine:/^[ \\t]*$/,doubleBlankLine:/\\n[ \\t]*\\n[ \\t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \\t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\\[[ xX]\\] +\\S/,listReplaceTask:/^\\[[ xX]\\] +/,listTaskCheckbox:/\\[[ xX]\\]/,anyLine:/\\n.*\\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\\||\\| *$/g,tableRowBlankLine:/\\n[ \\t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\\s|>)/i,endPreScriptTag:/^<\\/(pre|code|kbd|script)(\\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,unicodeAlphaNumeric:/[\\p{L}\\p{N}]/u,escapeTest:/[&<>\"']/,escapeReplace:/[&<>\"']/g,escapeTestNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,escapeReplaceNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,caret:/(^|[^\\[])\\^/g,percentDecode:/%25/g,findPipe:/\\|/g,splitPipe:/ \\|/,slashPipe:/\\\\\\|/g,carriageReturn:/\\r\\n|\\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\\S*/,endingNewline:/\\n$/,listItemRegex:l=>new RegExp(`^( {0,3}${l})((?:[\t ][^\\\\n]*)?(?:\\\\n|$))`),nextBulletRegex:E(l=>new RegExp(`^ {0,${l}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \t][^\\\\n]*)?(?:\\\\n|$))`)),hrRegex:E(l=>new RegExp(`^ {0,${l}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`)),fencesBeginRegex:E(l=>new RegExp(`^ {0,${l}}(?:\\`\\`\\`|~~~)`)),headingBeginRegex:E(l=>new RegExp(`^ {0,${l}}#`)),htmlBeginRegex:E(l=>new RegExp(`^ {0,${l}}<(?:[a-z].*>|!--)`,\"i\")),blockquoteBeginRegex:E(l=>new RegExp(`^ {0,${l}}>`))},Oe=/^(?:[ \\t]*(?:\\n|$))+/,we=/^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/,ye=/^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,B=/^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/,Pe=/^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,j=/ {0,3}(?:[*+-]|\\d{1,9}[.)])/,oe=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,ae=d(oe).replace(/bull/g,j).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/\\|table/g,\"\").getRegex(),Se=d(oe).replace(/bull/g,j).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/table/g,/ {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/).getRegex(),F=/^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,$e=/^[^\\n]+/,U=/(?!\\s*\\])(?:\\\\[\\s\\S]|[^\\[\\]\\\\])+/,Le=d(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/).replace(\"label\",U).replace(\"title\",/(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/).getRegex(),_e=d(/^(bull)([ \\t][^\\n]*?)?(?:\\n|$)/).replace(/bull/g,j).getRegex(),H=\"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\",K=/<!--(?:-?>|[\\s\\S]*?(?:-->|$))/,ze=d(\"^ {0,3}(?:<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>[^\\\\n]*\\\\n+|$)|<![A-Z][\\\\s\\\\S]*?(?:>[^\\\\n]*\\\\n+|$)|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>[^\\\\n]*\\\\n+|$)|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$))\",\"i\").replace(\"comment\",K).replace(\"tag\",H).replace(\"attribute\",/ +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex(),le=l=>d(F).replace(\"hr\",B).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",l).replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",H).getRegex(),Me=le(/ {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]/),Ee=le(/ {0,3}(?:[*+-]|\\d{1,9}[.)])[ \\t]+[^ \\t\\n]/),Ie=d(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/).replace(\"paragraph\",Ee).getRegex(),W={blockquote:Ie,code:we,def:Le,fences:ye,heading:Pe,hr:B,html:ze,lheading:ae,list:_e,newline:Oe,paragraph:Me,table:_,text:$e},se=d(\"^ *([^\\\\n ].*)\\\\n {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\").replace(\"hr\",B).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"blockquote\",\" {0,3}>\").replace(\"code\",\"(?: {4}| {0,3}\t)[^\\\\n]\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",H).getRegex(),Ae={...W,lheading:Se,table:se,paragraph:d(F).replace(\"hr\",B).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"table\",se).replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]+[^ \\\\t\\\\n]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",H).getRegex()},Ce={...W,html:d(`^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\\\s[^'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))`).replace(\"comment\",K).replace(/tag/g,\"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),def:/^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,heading:/^(#{1,6})(.*)(?:\\n+|$)/,fences:_,lheading:/^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,paragraph:d(F).replace(\"hr\",B).replace(\"heading\",` *#{1,6} *[^\n]`).replace(\"lheading\",ae).replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"|fences\",\"\").replace(\"|list\",\"\").replace(\"|html\",\"\").replace(\"|tag\",\"\").getRegex()},Be=/^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,qe=/^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,ue=/^( {2,}|\\\\)\\n(?!\\s*$)/,De=/^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,I=/[\\p{P}\\p{S}]/u,Z=/[\\s\\p{P}\\p{S}]/u,X=/[^\\s\\p{P}\\p{S}]/u,ve=d(/^((?![*_])punctSpace)/,\"u\").replace(/punctSpace/g,Z).getRegex(),pe=/(?!~)[\\p{P}\\p{S}]/u,He=/(?!~)[\\s\\p{P}\\p{S}]/u,Ze=/(?:[^\\s\\p{P}\\p{S}]|~)/u,Ge=d(/link|precode-code|html/,\"g\").replace(\"link\",/\\[(?:[^\\[\\]`]|(?<a>`+)[^`]+\\k<a>(?!`))*?\\]\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)]|\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)])*\\))*\\)/).replace(\"precode-\",Te?\"(?<!`)()\":\"(^^|[^`])\").replace(\"code\",/(?<b>`+)[^`]+\\k<b>(?!`)/).replace(\"html\",/<(?! )[^<>]*?>/).getRegex(),ce=/^(?:\\*+(?:((?!\\*)punct)|([^\\s*]))?)|^_+(?:((?!_)punct)|([^\\s_]))?/,Ne=d(ce,\"u\").replace(/punct/g,I).getRegex(),Qe=d(ce,\"u\").replace(/punct/g,pe).getRegex(),he=\"^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)|notPunctSpace(\\\\*+)(?=notPunctSpace)\",je=d(he,\"gu\").replace(/notPunctSpace/g,X).replace(/punctSpace/g,Z).replace(/punct/g,I).getRegex(),Fe=d(he,\"gu\").replace(/notPunctSpace/g,Ze).replace(/punctSpace/g,He).replace(/punct/g,pe).getRegex(),Ue=d(\"^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)\",\"gu\").replace(/notPunctSpace/g,X).replace(/punctSpace/g,Z).replace(/punct/g,I).getRegex(),Ke=d(/^~~?(?:((?!~)punct)|[^\\s~])/,\"u\").replace(/punct/g,I).getRegex(),We=\"^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)\",Xe=d(We,\"gu\").replace(/notPunctSpace/g,X).replace(/punctSpace/g,Z).replace(/punct/g,I).getRegex(),Je=d(/\\\\(punct)/,\"gu\").replace(/punct/g,I).getRegex(),Ve=d(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/).replace(\"scheme\",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(\"email\",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Ye=d(K).replace(\"(?:-->|$)\",\"-->\").getRegex(),et=d(\"^comment|^</[a-zA-Z][\\\\w:-]*\\\\s*>|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\").replace(\"comment\",Ye).replace(\"attribute\",/\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/).getRegex(),v=/(?:\\[(?:\\\\[\\s\\S]|[^\\[\\]\\\\])*\\]|\\\\[\\s\\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\\])|[^\\[\\]\\\\`])*?/,tt=d(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]+(?:\\n[ \\t]*)?|\\n[ \\t]*)(title))?\\s*\\)/).replace(\"label\",v).replace(\"href\",/<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]+|(?=\\))/).replace(\"title\",/\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/).getRegex(),ke=d(/^!?\\[(label)\\]\\[(ref)\\]/).replace(\"label\",v).replace(\"ref\",U).getRegex(),de=d(/^!?\\[(ref)\\](?:\\[\\])?/).replace(\"ref\",U).getRegex(),nt=d(\"reflink|nolink(?!\\\\()\",\"g\").replace(\"reflink\",ke).replace(\"nolink\",de).getRegex(),ie=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,J={_backpedal:_,anyPunctuation:Je,autolink:Ve,blockSkip:Ge,br:ue,code:qe,del:_,delLDelim:_,delRDelim:_,emStrongLDelim:Ne,emStrongRDelimAst:je,emStrongRDelimUnd:Ue,escape:Be,link:tt,nolink:de,punctuation:ve,reflink:ke,reflinkSearch:nt,tag:et,text:De,url:_},rt={...J,link:d(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\",v).getRegex(),reflink:d(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\",v).getRegex()},Q={...J,emStrongRDelimAst:Fe,emStrongLDelim:Qe,delLDelim:Ke,delRDelim:Xe,url:d(/^((?:protocol):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/).replace(\"protocol\",ie).replace(\"email\",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,del:/^(~~?)(?=[^\\s~])((?:\\\\[\\s\\S]|[^\\\\])*?(?:\\\\[\\s\\S]|[^\\s~\\\\]))\\1(?=[^~]|$)/,text:d(/^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|protocol:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/).replace(\"protocol\",ie).getRegex()},st={...Q,br:d(ue).replace(\"{2,}\",\"*\").getRegex(),text:d(Q.text).replace(\"\\\\b_\",\"\\\\b_| {2,}\\\\n\").replace(/\\{2,\\}/g,\"*\").getRegex()},q={normal:W,gfm:Ae,pedantic:Ce},A={normal:J,gfm:Q,breaks:st,pedantic:rt};var it={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\"},ge=l=>it[l];function O(l,e){if(e){if(m.escapeTest.test(l))return l.replace(m.escapeReplace,ge)}else if(m.escapeTestNoEncode.test(l))return l.replace(m.escapeReplaceNoEncode,ge);return l}function V(l){try{l=encodeURI(l).replace(m.percentDecode,\"%\")}catch{return null}return l}function Y(l,e){let t=l.replace(m.findPipe,(r,i,o)=>{let u=!1,a=i;for(;--a>=0&&o[a]===\"\\\\\";)u=!u;return u?\"|\":\" |\"}),n=t.split(m.splitPipe),s=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length<e;)n.push(\"\");for(;s<n.length;s++)n[s]=n[s].trim().replace(m.slashPipe,\"|\");return n}function $(l,e,t){let n=l.length;if(n===0)return\"\";let s=0;for(;s<n;){let r=l.charAt(n-s-1);if(r===e&&!t)s++;else if(r!==e&&t)s++;else break}return l.slice(0,n-s)}function ee(l){let e=l.split(`\n`),t=e.length-1;for(;t>=0&&m.blankLine.test(e[t]);)t--;return e.length-t<=2?l:e.slice(0,t+1).join(`\n`)}function fe(l,e){if(l.indexOf(e[1])===-1)return-1;let t=0;for(let n=0;n<l.length;n++)if(l[n]===\"\\\\\")n++;else if(l[n]===e[0])t++;else if(l[n]===e[1]&&(t--,t<0))return n;return t>0?-2:-1}function me(l,e=0){let t=e,n=\"\";for(let s of l)if(s===\"\t\"){let r=4-t%4;n+=\" \".repeat(r),t+=r}else n+=s,t++;return n}function xe(l,e,t,n,s){let r=e.href,i=e.title||null,o=l[1].replace(s.other.outputLinkReplace,\"$1\");n.state.inLink=!0;let u={type:l[0].charAt(0)===\"!\"?\"image\":\"link\",raw:t,href:r,title:i,text:o,tokens:n.inlineTokens(o)};return n.state.inLink=!1,u}function ot(l,e,t){let n=l.match(t.other.indentCodeCompensation);if(n===null)return e;let s=n[1];return e.split(`\n`).map(r=>{let i=r.match(t.other.beginningSpace);if(i===null)return r;let[o]=i;return o.length>=s.length?r.slice(s.length):r}).join(`\n`)}var w=class{options;rules;lexer;constructor(e){this.options=e||T}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:\"space\",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=this.options.pedantic?t[0]:ee(t[0]),s=n.replace(this.rules.other.codeRemoveIndent,\"\");return{type:\"code\",raw:n,codeBlockStyle:\"indented\",text:s}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],s=ot(n,t[3]||\"\",this.rules);return{type:\"code\",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,\"$1\"):t[2],text:s}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let s=$(n,\"#\");(this.options.pedantic||!s||this.rules.other.endingSpaceChar.test(s))&&(n=s.trim())}return{type:\"heading\",raw:$(t[0],`\n`),depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:\"hr\",raw:$(t[0],`\n`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=$(t[0],`\n`).split(`\n`),s=\"\",r=\"\",i=[];for(;n.length>0;){let o=!1,u=[],a;for(a=0;a<n.length;a++)if(this.rules.other.blockquoteStart.test(n[a]))u.push(n[a]),o=!0;else if(!o)u.push(n[a]);else break;n=n.slice(a);let c=u.join(`\n`),p=c.replace(this.rules.other.blockquoteSetextReplace,`\n $1`).replace(this.rules.other.blockquoteSetextReplace2,\"\");s=s?`${s}\n${c}`:c,r=r?`${r}\n${p}`:p;let k=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(p,i,!0),this.lexer.state.top=k,n.length===0)break;let h=i.at(-1);if(h?.type===\"code\")break;if(h?.type===\"blockquote\"){let R=h,f=R.raw+`\n`+n.join(`\n`),S=this.blockquote(f);i[i.length-1]=S,s=s.substring(0,s.length-R.raw.length)+S.raw,r=r.substring(0,r.length-R.text.length)+S.text;break}else if(h?.type===\"list\"){let R=h,f=R.raw+`\n`+n.join(`\n`),S=this.list(f);i[i.length-1]=S,s=s.substring(0,s.length-h.raw.length)+S.raw,r=r.substring(0,r.length-R.raw.length)+S.raw,n=f.substring(i.at(-1).raw.length).split(`\n`);continue}}return{type:\"blockquote\",raw:s,tokens:i,text:r}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),s=n.length>1,r={type:\"list\",raw:\"\",ordered:s,start:s?+n.slice(0,-1):\"\",loose:!1,items:[]};n=s?`\\\\d{1,9}\\\\${n.slice(-1)}`:`\\\\${n}`,this.options.pedantic&&(n=s?n:\"[*+-]\");let i=this.rules.other.listItemRegex(n),o=!1;for(;e;){let a=!1,c=\"\",p=\"\";if(!(t=i.exec(e))||this.rules.block.hr.test(e))break;c=t[0],e=e.substring(c.length);let k=me(t[2].split(`\n`,1)[0],t[1].length),h=e.split(`\n`,1)[0],R=!k.trim(),f=0;if(this.options.pedantic?(f=2,p=k.trimStart()):R?f=t[1].length+1:(f=k.search(this.rules.other.nonSpaceChar),f=f>4?1:f,p=k.slice(f),f+=t[1].length),R&&this.rules.other.blankLine.test(h)&&(c+=h+`\n`,e=e.substring(h.length+1),a=!0),!a){let S=this.rules.other.nextBulletRegex(f),te=this.rules.other.hrRegex(f),ne=this.rules.other.fencesBeginRegex(f),re=this.rules.other.headingBeginRegex(f),be=this.rules.other.htmlBeginRegex(f),Re=this.rules.other.blockquoteBeginRegex(f);for(;e;){let G=e.split(`\n`,1)[0],C;if(h=G,this.options.pedantic?(h=h.replace(this.rules.other.listReplaceNesting,\" \"),C=h):C=h.replace(this.rules.other.tabCharGlobal,\" \"),ne.test(h)||re.test(h)||be.test(h)||Re.test(h)||S.test(h)||te.test(h))break;if(C.search(this.rules.other.nonSpaceChar)>=f||!h.trim())p+=`\n`+C.slice(f);else{if(R||k.replace(this.rules.other.tabCharGlobal,\" \").search(this.rules.other.nonSpaceChar)>=4||ne.test(k)||re.test(k)||te.test(k))break;p+=`\n`+h}R=!h.trim(),c+=G+`\n`,e=e.substring(G.length+1),k=C.slice(f)}}r.loose||(o?r.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(o=!0)),r.items.push({type:\"list_item\",raw:c,task:!!this.options.gfm&&this.rules.other.listIsTask.test(p),loose:!1,text:p,tokens:[]}),r.raw+=c}let u=r.items.at(-1);if(u)u.raw=u.raw.trimEnd(),u.text=u.text.trimEnd();else return;r.raw=r.raw.trimEnd();for(let a of r.items){this.lexer.state.top=!1,a.tokens=this.lexer.blockTokens(a.text,[]);let c=a.tokens[0];if(a.task&&(c?.type===\"text\"||c?.type===\"paragraph\")){a.text=a.text.replace(this.rules.other.listReplaceTask,\"\"),c.raw=c.raw.replace(this.rules.other.listReplaceTask,\"\"),c.text=c.text.replace(this.rules.other.listReplaceTask,\"\");for(let k=this.lexer.inlineQueue.length-1;k>=0;k--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[k].src)){this.lexer.inlineQueue[k].src=this.lexer.inlineQueue[k].src.replace(this.rules.other.listReplaceTask,\"\");break}let p=this.rules.other.listTaskCheckbox.exec(a.raw);if(p){let k={type:\"checkbox\",raw:p[0]+\" \",checked:p[0]!==\"[ ]\"};a.checked=k.checked,r.loose?a.tokens[0]&&[\"paragraph\",\"text\"].includes(a.tokens[0].type)&&\"tokens\"in a.tokens[0]&&a.tokens[0].tokens?(a.tokens[0].raw=k.raw+a.tokens[0].raw,a.tokens[0].text=k.raw+a.tokens[0].text,a.tokens[0].tokens.unshift(k)):a.tokens.unshift({type:\"paragraph\",raw:k.raw,text:k.raw,tokens:[k]}):a.tokens.unshift(k)}}else a.task&&(a.task=!1);if(!r.loose){let p=a.tokens.filter(h=>h.type===\"space\"),k=p.length>0&&p.some(h=>this.rules.other.anyLine.test(h.raw));r.loose=k}}if(r.loose)for(let a of r.items){a.loose=!0;for(let c of a.tokens)c.type===\"text\"&&(c.type=\"paragraph\")}return r}}html(e){let t=this.rules.block.html.exec(e);if(t){let n=ee(t[0]);return{type:\"html\",block:!0,raw:n,pre:t[1]===\"pre\"||t[1]===\"script\"||t[1]===\"style\",text:n}}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal,\" \"),s=t[2]?t[2].replace(this.rules.other.hrefBrackets,\"$1\").replace(this.rules.inline.anyPunctuation,\"$1\"):\"\",r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,\"$1\"):t[3];return{type:\"def\",tag:n,raw:$(t[0],`\n`),href:s,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=Y(t[1]),s=t[2].replace(this.rules.other.tableAlignChars,\"\").split(\"|\"),r=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,\"\").split(`\n`):[],i={type:\"table\",raw:$(t[0],`\n`),header:[],align:[],rows:[]};if(n.length===s.length){for(let o of s)this.rules.other.tableAlignRight.test(o)?i.align.push(\"right\"):this.rules.other.tableAlignCenter.test(o)?i.align.push(\"center\"):this.rules.other.tableAlignLeft.test(o)?i.align.push(\"left\"):i.align.push(null);for(let o=0;o<n.length;o++)i.header.push({text:n[o],tokens:this.lexer.inline(n[o]),header:!0,align:i.align[o]});for(let o of r)i.rows.push(Y(o,i.header.length).map((u,a)=>({text:u,tokens:this.lexer.inline(u),header:!1,align:i.align[a]})));return i}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let n=t[1].trim();return{type:\"heading\",raw:$(t[0],`\n`),depth:t[2].charAt(0)===\"=\"?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===`\n`?t[1].slice(0,-1):t[1];return{type:\"paragraph\",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:\"text\",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:\"escape\",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:\"html\",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let i=$(n.slice(0,-1),\"\\\\\");if((n.length-i.length)%2===0)return}else{let i=fe(t[2],\"()\");if(i===-2)return;if(i>-1){let u=(t[0].indexOf(\"!\")===0?5:4)+t[1].length+i;t[2]=t[2].substring(0,i),t[0]=t[0].substring(0,u).trim(),t[3]=\"\"}}let s=t[2],r=\"\";if(this.options.pedantic){let i=this.rules.other.pedanticHrefTitle.exec(s);i&&(s=i[1],r=i[3])}else r=t[3]?t[3].slice(1,-1):\"\";return s=s.trim(),this.rules.other.startAngleBracket.test(s)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?s=s.slice(1):s=s.slice(1,-1)),xe(t,{href:s&&s.replace(this.rules.inline.anyPunctuation,\"$1\"),title:r&&r.replace(this.rules.inline.anyPunctuation,\"$1\")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let s=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,\" \"),r=t[s.toLowerCase()];if(!r){let i=n[0].charAt(0);return{type:\"text\",raw:i,text:i}}return xe(n,r,n[0],this.lexer,this.rules)}}emStrong(e,t,n=\"\"){let s=this.rules.inline.emStrongLDelim.exec(e);if(!s||!s[1]&&!s[2]&&!s[3]&&!s[4]||s[4]&&n.match(this.rules.other.unicodeAlphaNumeric))return;if(!(s[1]||s[3]||\"\")||!n||this.rules.inline.punctuation.exec(n)){let i=[...s[0]].length-1,o,u,a=i,c=0,p=s[0][0]===\"*\"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(p.lastIndex=0,t=t.slice(-1*e.length+i);(s=p.exec(t))!==null;){if(o=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!o)continue;if(u=[...o].length,s[3]||s[4]){a+=u;continue}else if((s[5]||s[6])&&i%3&&!((i+u)%3)){c+=u;continue}if(a-=u,a>0)continue;u=Math.min(u,u+a+c);let k=[...s[0]][0].length,h=e.slice(0,i+s.index+k+u);if(Math.min(i,u)%2){let f=h.slice(1,-1);return{type:\"em\",raw:h,text:f,tokens:this.lexer.inlineTokens(f)}}let R=h.slice(2,-2);return{type:\"strong\",raw:h,text:R,tokens:this.lexer.inlineTokens(R)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal,\" \"),s=this.rules.other.nonSpaceChar.test(n),r=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return s&&r&&(n=n.substring(1,n.length-1)),{type:\"codespan\",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:\"br\",raw:t[0]}}del(e,t,n=\"\"){let s=this.rules.inline.delLDelim.exec(e);if(!s)return;if(!(s[1]||\"\")||!n||this.rules.inline.punctuation.exec(n)){let i=[...s[0]].length-1,o,u,a=i,c=this.rules.inline.delRDelim;for(c.lastIndex=0,t=t.slice(-1*e.length+i);(s=c.exec(t))!==null;){if(o=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!o||(u=[...o].length,u!==i))continue;if(s[3]||s[4]){a+=u;continue}if(a-=u,a>0)continue;u=Math.min(u,u+a);let p=[...s[0]][0].length,k=e.slice(0,i+s.index+p+u),h=k.slice(i,-i);return{type:\"del\",raw:k,text:h,tokens:this.lexer.inlineTokens(h)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,s;return t[2]===\"@\"?(n=t[1],s=\"mailto:\"+n):(n=t[1],s=n),{type:\"link\",raw:t[0],text:n,href:s,tokens:[{type:\"text\",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,s;if(t[2]===\"@\")n=t[0],s=\"mailto:\"+n;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??\"\";while(r!==t[0]);n=t[0],t[1]===\"www.\"?s=\"http://\"+t[0]:s=t[0]}return{type:\"link\",raw:t[0],text:n,href:s,tokens:[{type:\"text\",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:\"text\",raw:t[0],text:t[0],escaped:n}}}};var x=class l{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||T,this.options.tokenizer=this.options.tokenizer||new w,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:m,block:q.normal,inline:A.normal};this.options.pedantic?(t.block=q.pedantic,t.inline=A.pedantic):this.options.gfm&&(t.block=q.gfm,this.options.breaks?t.inline=A.breaks:t.inline=A.gfm),this.tokenizer.rules=t}static get rules(){return{block:q,inline:A}}static lex(e,t){return new l(t).lex(e)}static lexInline(e,t){return new l(t).inlineTokens(e)}lex(e){e=e.replace(m.carriageReturn,`\n`),this.blockTokens(e,this.tokens);for(let t=0;t<this.inlineQueue.length;t++){let n=this.inlineQueue[t];this.inlineTokens(n.src,n.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(m.tabCharGlobal,\" \").replace(m.spaceLine,\"\"));let s=1/0;for(;e;){if(e.length<s)s=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}let r;if(this.options.extensions?.block?.some(o=>(r=o.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.space(e)){e=e.substring(r.raw.length);let o=t.at(-1);r.raw.length===1&&o!==void 0?o.raw+=`\n`:t.push(r);continue}if(r=this.tokenizer.code(e)){e=e.substring(r.raw.length);let o=t.at(-1);o?.type===\"paragraph\"||o?.type===\"text\"?(o.raw+=(o.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,o.text+=`\n`+r.text,this.inlineQueue.at(-1).src=o.text):t.push(r);continue}if(r=this.tokenizer.fences(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.heading(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.hr(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.blockquote(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.list(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.html(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.def(e)){e=e.substring(r.raw.length);let o=t.at(-1);o?.type===\"paragraph\"||o?.type===\"text\"?(o.raw+=(o.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,o.text+=`\n`+r.raw,this.inlineQueue.at(-1).src=o.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title},t.push(r));continue}if(r=this.tokenizer.table(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.lheading(e)){e=e.substring(r.raw.length),t.push(r);continue}let i=e;if(this.options.extensions?.startBlock){let o=1/0,u=e.slice(1),a;this.options.extensions.startBlock.forEach(c=>{a=c.call({lexer:this},u),typeof a==\"number\"&&a>=0&&(o=Math.min(o,a))}),o<1/0&&o>=0&&(i=e.substring(0,o+1))}if(this.state.top&&(r=this.tokenizer.paragraph(i))){let o=t.at(-1);n&&o?.type===\"paragraph\"?(o.raw+=(o.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,o.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):t.push(r),n=i.length!==e.length,e=e.substring(r.raw.length);continue}if(r=this.tokenizer.text(e)){e=e.substring(r.raw.length);let o=t.at(-1);o?.type===\"text\"?(o.raw+=(o.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,o.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):t.push(r);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let n=e,s=null;if(this.tokens.links){let a=Object.keys(this.tokens.links);if(a.length>0)for(;(s=this.tokenizer.rules.inline.reflinkSearch.exec(n))!==null;)a.includes(s[0].slice(s[0].lastIndexOf(\"[\")+1,-1))&&(n=n.slice(0,s.index)+\"[\"+\"a\".repeat(s[0].length-2)+\"]\"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(s=this.tokenizer.rules.inline.anyPunctuation.exec(n))!==null;)n=n.slice(0,s.index)+\"++\"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let r;for(;(s=this.tokenizer.rules.inline.blockSkip.exec(n))!==null;)r=s[2]?s[2].length:0,n=n.slice(0,s.index+r)+\"[\"+\"a\".repeat(s[0].length-r-2)+\"]\"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let i=!1,o=\"\",u=1/0;for(;e;){if(e.length<u)u=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}i||(o=\"\"),i=!1;let a;if(this.options.extensions?.inline?.some(p=>(a=p.call({lexer:this},e,t))?(e=e.substring(a.raw.length),t.push(a),!0):!1))continue;if(a=this.tokenizer.escape(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.tag(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.link(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(a.raw.length);let p=t.at(-1);a.type===\"text\"&&p?.type===\"text\"?(p.raw+=a.raw,p.text+=a.text):t.push(a);continue}if(a=this.tokenizer.emStrong(e,n,o)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.codespan(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.br(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.del(e,n,o)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.autolink(e)){e=e.substring(a.raw.length),t.push(a);continue}if(!this.state.inLink&&(a=this.tokenizer.url(e))){e=e.substring(a.raw.length),t.push(a);continue}let c=e;if(this.options.extensions?.startInline){let p=1/0,k=e.slice(1),h;this.options.extensions.startInline.forEach(R=>{h=R.call({lexer:this},k),typeof h==\"number\"&&h>=0&&(p=Math.min(p,h))}),p<1/0&&p>=0&&(c=e.substring(0,p+1))}if(a=this.tokenizer.inlineText(c)){e=e.substring(a.raw.length),a.raw.slice(-1)!==\"_\"&&(o=a.raw.slice(-1)),i=!0;let p=t.at(-1);p?.type===\"text\"?(p.raw+=a.raw,p.text+=a.text):t.push(a);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t=\"Infinite loop on byte: \"+e;if(this.options.silent)console.error(t);else throw new Error(t)}};var y=class{options;parser;constructor(e){this.options=e||T}space(e){return\"\"}code({text:e,lang:t,escaped:n}){let s=(t||\"\").match(m.notSpaceStart)?.[0],r=e.replace(m.endingNewline,\"\")+`\n`;return s?'<pre><code class=\"language-'+O(s)+'\">'+(n?r:O(r,!0))+`</code></pre>\n`:\"<pre><code>\"+(n?r:O(r,!0))+`</code></pre>\n`}blockquote({tokens:e}){return`<blockquote>\n${this.parser.parse(e)}</blockquote>\n`}html({text:e}){return e}def(e){return\"\"}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>\n`}hr(e){return`<hr>\n`}list(e){let t=e.ordered,n=e.start,s=\"\";for(let o=0;o<e.items.length;o++){let u=e.items[o];s+=this.listitem(u)}let r=t?\"ol\":\"ul\",i=t&&n!==1?' start=\"'+n+'\"':\"\";return\"<\"+r+i+`>\n`+s+\"</\"+r+`>\n`}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>\n`}checkbox({checked:e}){return\"<input \"+(e?'checked=\"\" ':\"\")+'disabled=\"\" type=\"checkbox\"> '}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>\n`}table(e){let t=\"\",n=\"\";for(let r=0;r<e.header.length;r++)n+=this.tablecell(e.header[r]);t+=this.tablerow({text:n});let s=\"\";for(let r=0;r<e.rows.length;r++){let i=e.rows[r];n=\"\";for(let o=0;o<i.length;o++)n+=this.tablecell(i[o]);s+=this.tablerow({text:n})}return s&&(s=`<tbody>${s}</tbody>`),`<table>\n<thead>\n`+t+`</thead>\n`+s+`</table>\n`}tablerow({text:e}){return`<tr>\n${e}</tr>\n`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?\"th\":\"td\";return(e.align?`<${n} align=\"${e.align}\">`:`<${n}>`)+t+`</${n}>\n`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${O(e,!0)}</code>`}br(e){return\"<br>\"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let s=this.parser.parseInline(n),r=V(e);if(r===null)return s;e=r;let i='<a href=\"'+e+'\"';return t&&(i+=' title=\"'+O(t)+'\"'),i+=\">\"+s+\"</a>\",i}image({href:e,title:t,text:n,tokens:s}){s&&(n=this.parser.parseInline(s,this.parser.textRenderer));let r=V(e);if(r===null)return O(n);e=r;let i=`<img src=\"${e}\" alt=\"${O(n)}\"`;return t&&(i+=` title=\"${O(t)}\"`),i+=\">\",i}text(e){return\"tokens\"in e&&e.tokens?this.parser.parseInline(e.tokens):\"escaped\"in e&&e.escaped?e.text:O(e.text)}};var L=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return\"\"+e}image({text:e}){return\"\"+e}br(){return\"\"}checkbox({raw:e}){return e}};var b=class l{options;renderer;textRenderer;constructor(e){this.options=e||T,this.options.renderer=this.options.renderer||new y,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new L}static parse(e,t){return new l(t).parse(e)}static parseInline(e,t){return new l(t).parseInline(e)}parse(e){this.renderer.parser=this;let t=\"\";for(let n=0;n<e.length;n++){let s=e[n];if(this.options.extensions?.renderers?.[s.type]){let i=s,o=this.options.extensions.renderers[i.type].call({parser:this},i);if(o!==!1||![\"space\",\"hr\",\"heading\",\"code\",\"table\",\"blockquote\",\"list\",\"html\",\"def\",\"paragraph\",\"text\"].includes(i.type)){t+=o||\"\";continue}}let r=s;switch(r.type){case\"space\":{t+=this.renderer.space(r);break}case\"hr\":{t+=this.renderer.hr(r);break}case\"heading\":{t+=this.renderer.heading(r);break}case\"code\":{t+=this.renderer.code(r);break}case\"table\":{t+=this.renderer.table(r);break}case\"blockquote\":{t+=this.renderer.blockquote(r);break}case\"list\":{t+=this.renderer.list(r);break}case\"checkbox\":{t+=this.renderer.checkbox(r);break}case\"html\":{t+=this.renderer.html(r);break}case\"def\":{t+=this.renderer.def(r);break}case\"paragraph\":{t+=this.renderer.paragraph(r);break}case\"text\":{t+=this.renderer.text(r);break}default:{let i='Token with \"'+r.type+'\" type was not found.';if(this.options.silent)return console.error(i),\"\";throw new Error(i)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n=\"\";for(let s=0;s<e.length;s++){let r=e[s];if(this.options.extensions?.renderers?.[r.type]){let o=this.options.extensions.renderers[r.type].call({parser:this},r);if(o!==!1||![\"escape\",\"html\",\"link\",\"image\",\"strong\",\"em\",\"codespan\",\"br\",\"del\",\"text\"].includes(r.type)){n+=o||\"\";continue}}let i=r;switch(i.type){case\"escape\":{n+=t.text(i);break}case\"html\":{n+=t.html(i);break}case\"link\":{n+=t.link(i);break}case\"image\":{n+=t.image(i);break}case\"checkbox\":{n+=t.checkbox(i);break}case\"strong\":{n+=t.strong(i);break}case\"em\":{n+=t.em(i);break}case\"codespan\":{n+=t.codespan(i);break}case\"br\":{n+=t.br(i);break}case\"del\":{n+=t.del(i);break}case\"text\":{n+=t.text(i);break}default:{let o='Token with \"'+i.type+'\" type was not found.';if(this.options.silent)return console.error(o),\"\";throw new Error(o)}}}return n}};var P=class{options;block;constructor(e){this.options=e||T}static passThroughHooks=new Set([\"preprocess\",\"postprocess\",\"processAllTokens\",\"emStrongMask\"]);static passThroughHooksRespectAsync=new Set([\"preprocess\",\"postprocess\",\"processAllTokens\"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?x.lex:x.lexInline}provideParser(e=this.block){return e?b.parse:b.parseInline}};var D=class{defaults=M();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=b;Renderer=y;TextRenderer=L;Lexer=x;Tokenizer=w;Hooks=P;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let s of e)switch(n=n.concat(t.call(this,s)),s.type){case\"table\":{let r=s;for(let i of r.header)n=n.concat(this.walkTokens(i.tokens,t));for(let i of r.rows)for(let o of i)n=n.concat(this.walkTokens(o.tokens,t));break}case\"list\":{let r=s;n=n.concat(this.walkTokens(r.items,t));break}default:{let r=s;this.defaults.extensions?.childTokens?.[r.type]?this.defaults.extensions.childTokens[r.type].forEach(i=>{let o=r[i].flat(1/0);n=n.concat(this.walkTokens(o,t))}):r.tokens&&(n=n.concat(this.walkTokens(r.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let s={...n};if(s.async=this.defaults.async||s.async||!1,n.extensions&&(n.extensions.forEach(r=>{if(!r.name)throw new Error(\"extension name required\");if(\"renderer\"in r){let i=t.renderers[r.name];i?t.renderers[r.name]=function(...o){let u=r.renderer.apply(this,o);return u===!1&&(u=i.apply(this,o)),u}:t.renderers[r.name]=r.renderer}if(\"tokenizer\"in r){if(!r.level||r.level!==\"block\"&&r.level!==\"inline\")throw new Error(\"extension level must be 'block' or 'inline'\");let i=t[r.level];i?i.unshift(r.tokenizer):t[r.level]=[r.tokenizer],r.start&&(r.level===\"block\"?t.startBlock?t.startBlock.push(r.start):t.startBlock=[r.start]:r.level===\"inline\"&&(t.startInline?t.startInline.push(r.start):t.startInline=[r.start]))}\"childTokens\"in r&&r.childTokens&&(t.childTokens[r.name]=r.childTokens)}),s.extensions=t),n.renderer){let r=this.defaults.renderer||new y(this.defaults);for(let i in n.renderer){if(!(i in r))throw new Error(`renderer '${i}' does not exist`);if([\"options\",\"parser\"].includes(i))continue;let o=i,u=n.renderer[o],a=r[o];r[o]=(...c)=>{let p=u.apply(r,c);return p===!1&&(p=a.apply(r,c)),p||\"\"}}s.renderer=r}if(n.tokenizer){let r=this.defaults.tokenizer||new w(this.defaults);for(let i in n.tokenizer){if(!(i in r))throw new Error(`tokenizer '${i}' does not exist`);if([\"options\",\"rules\",\"lexer\"].includes(i))continue;let o=i,u=n.tokenizer[o],a=r[o];r[o]=(...c)=>{let p=u.apply(r,c);return p===!1&&(p=a.apply(r,c)),p}}s.tokenizer=r}if(n.hooks){let r=this.defaults.hooks||new P;for(let i in n.hooks){if(!(i in r))throw new Error(`hook '${i}' does not exist`);if([\"options\",\"block\"].includes(i))continue;let o=i,u=n.hooks[o],a=r[o];P.passThroughHooks.has(i)?r[o]=c=>{if(this.defaults.async&&P.passThroughHooksRespectAsync.has(i))return(async()=>{let k=await u.call(r,c);return a.call(r,k)})();let p=u.call(r,c);return a.call(r,p)}:r[o]=(...c)=>{if(this.defaults.async)return(async()=>{let k=await u.apply(r,c);return k===!1&&(k=await a.apply(r,c)),k})();let p=u.apply(r,c);return p===!1&&(p=a.apply(r,c)),p}}s.hooks=r}if(n.walkTokens){let r=this.defaults.walkTokens,i=n.walkTokens;s.walkTokens=function(o){let u=[];return u.push(i.call(this,o)),r&&(u=u.concat(r.call(this,o))),u}}this.defaults={...this.defaults,...s}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return x.lex(e,t??this.defaults)}parser(e,t){return b.parse(e,t??this.defaults)}parseMarkdown(e){return(n,s)=>{let r={...s},i={...this.defaults,...r},o=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return o(new Error(\"marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.\"));if(typeof n>\"u\"||n===null)return o(new Error(\"marked(): input parameter is undefined or null\"));if(typeof n!=\"string\")return o(new Error(\"marked(): input parameter is of type \"+Object.prototype.toString.call(n)+\", string expected\"));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let u=i.hooks?await i.hooks.preprocess(n):n,c=await(i.hooks?await i.hooks.provideLexer(e):e?x.lex:x.lexInline)(u,i),p=i.hooks?await i.hooks.processAllTokens(c):c;i.walkTokens&&await Promise.all(this.walkTokens(p,i.walkTokens));let h=await(i.hooks?await i.hooks.provideParser(e):e?b.parse:b.parseInline)(p,i);return i.hooks?await i.hooks.postprocess(h):h})().catch(o);try{i.hooks&&(n=i.hooks.preprocess(n));let a=(i.hooks?i.hooks.provideLexer(e):e?x.lex:x.lexInline)(n,i);i.hooks&&(a=i.hooks.processAllTokens(a)),i.walkTokens&&this.walkTokens(a,i.walkTokens);let p=(i.hooks?i.hooks.provideParser(e):e?b.parse:b.parseInline)(a,i);return i.hooks&&(p=i.hooks.postprocess(p)),p}catch(u){return o(u)}}}onError(e,t){return n=>{if(n.message+=`\nPlease report this to https://github.com/markedjs/marked.`,e){let s=\"<p>An error occurred:</p><pre>\"+O(n.message+\"\",!0)+\"</pre>\";return t?Promise.resolve(s):s}if(t)return Promise.reject(n);throw n}}};var z=new D;function g(l,e){return z.parse(l,e)}g.options=g.setOptions=function(l){return z.setOptions(l),g.defaults=z.defaults,N(g.defaults),g};g.getDefaults=M;g.defaults=T;g.use=function(...l){return z.use(...l),g.defaults=z.defaults,N(g.defaults),g};g.walkTokens=function(l,e){return z.walkTokens(l,e)};g.parseInline=z.parseInline;g.Parser=b;g.parser=b.parse;g.Renderer=y;g.TextRenderer=L;g.Lexer=x;g.lexer=x.lex;g.Tokenizer=w;g.Hooks=P;g.parse=g;var Kt=g.options,Wt=g.setOptions,Xt=g.use,Jt=g.walkTokens,Vt=g.parseInline,Yt=g,en=b.parse,tn=x.lex;export{P as Hooks,x as Lexer,D as Marked,b as Parser,y as Renderer,L as TextRenderer,w as Tokenizer,T as defaults,M as getDefaults,tn as lexer,g as marked,Kt as options,Yt as parse,Vt as parseInline,en as parser,Wt as setOptions,Xt as use,Jt as walkTokens};\n//# sourceMappingURL=marked.esm.js.map\n","/**\n * Markdown-to-HTML renderer powered by the `marked` library.\n *\n * Supports the full CommonMark + GFM spec: headings, paragraphs, bold, italic,\n * strikethrough, inline code, fenced code blocks, links, images, blockquotes,\n * horizontal rules, unordered/ordered lists, task lists, and tables.\n *\n * Heading levels are remapped (h1→h4, h2→h5, h3→h6) so they don't clash\n * with page-level headings. Dangerous HTML tags are stripped for safety.\n */\nimport { marked } from 'marked'\n\nimport { escapeHtml } from '../utils'\n\n// ── Configure marked ────────────────────────────────────────────────────────\n\nmarked.use({\n\tbreaks: true, // Single \\n → <br> (GFM behavior)\n\tgfm: true, // GitHub Flavored Markdown (tables, task lists, strikethrough)\n\trenderer: {\n\t\t// Escape raw HTML: agent output may include page-derived markup.\n\t\thtml({ text }) {\n\t\t\treturn escapeHtml(text)\n\t\t},\n\t\tlink({ href, title, tokens }) {\n\t\t\tconst text = this.parser.parseInline(tokens)\n\t\t\tconst safeHref = /^(?:javascript|data|vbscript):/i.test(href.trim()) ? '#' : href\n\t\t\tconst titleAttr = title ? ` title=\"${escapeHtml(title)}\"` : ''\n\t\t\treturn `<a href=\"${escapeHtml(safeHref)}\"${titleAttr} target=\"_blank\" rel=\"noopener noreferrer\">${text}</a>`\n\t\t},\n\t},\n})\n\n// ── Public API ──────────────────────────────────────────────────────────────\n\n/**\n * Convert markdown text to safe HTML using the `marked` library.\n */\nexport function renderMarkdown(text: string): string {\n\tif (!text) return ''\n\n\tconst raw = marked.parse(text, { async: false }) as string\n\n\t// Remap h1→h4, h2→h5, h3→h6 so they don't clash with page-level headings\n\tlet html = raw\n\t\t.replace(/<h1\\b/g, '<h4')\n\t\t.replace(/<\\/h1>/g, '</h4>')\n\t\t.replace(/<h2\\b/g, '<h5')\n\t\t.replace(/<\\/h2>/g, '</h5>')\n\t\t.replace(/<h3\\b/g, '<h6')\n\t\t.replace(/<\\/h3>/g, '</h6>')\n\n\t// Strip dangerous HTML tags (defense-in-depth: LLM output is not user-controlled)\n\thtml = html\n\t\t.replace(/<script\\b[\\s\\S]*?<\\/script>/gi, '')\n\t\t.replace(/<iframe\\b[\\s\\S]*?<\\/iframe>/gi, '')\n\t\t.replace(/<object\\b[\\s\\S]*?<\\/object>/gi, '')\n\t\t.replace(/<embed\\b[\\s\\S]*?>/gi, '')\n\n\treturn html\n}\n","/**\n * Card HTML generation utilities for Panel\n *\n * Design system: \"Developer's Debug Console\"\n * - Step headers show compact metadata (step#, duration, token usage)\n * - Reflection cards are indented with left border (internal thought)\n * - Action cards run full-width (external action)\n * - SVG icons replace emojis for professional, consistent rendering\n */\nimport { escapeHtml } from '../utils'\nimport { CardIcons, ReflectionIcons } from './icons'\nimport { renderMarkdown } from './markdown'\nimport type { RiskLevel } from './types'\n\nimport styles from './Panel.module.css'\n\n// ── Types ───────────────────────────────────────────────────────────────────\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\tmarkdown?: boolean\n\tstepIndex?: number\n\tisFirstInStep?: boolean\n\tisLastInStep?: boolean\n}\n\ninterface ReflectionLine {\n\tkey: string\n\tlabel: string\n\ticon: string\n\tcontent: string\n\t/** True when this line is essentially identical to the previous step. */\n\trepeat?: boolean\n}\n\n/** Normalize text for duplicate detection (whitespace + punctuation insensitive). */\nfunction normalizeForCompare(text: string): string {\n\treturn text\n\t\t.toLowerCase()\n\t\t.replace(/\\s+/g, '')\n\t\t.replace(/[,。;:、,.!?;:'\"“”‘’()()[\\]【】<>《》]/g, '')\n}\n\nfunction diceCoefficient(a: string, b: string): number {\n\tif (a === b) return 1\n\tif (a.length < 2 || b.length < 2) return 0\n\tconst bigrams = new Map<string, number>()\n\tfor (let i = 0; i < a.length - 1; i++) {\n\t\tconst gram = a.slice(i, i + 2)\n\t\tbigrams.set(gram, (bigrams.get(gram) || 0) + 1)\n\t}\n\tlet intersection = 0\n\tfor (let i = 0; i < b.length - 1; i++) {\n\t\tconst gram = b.slice(i, i + 2)\n\t\tconst count = bigrams.get(gram) || 0\n\t\tif (count > 0) {\n\t\t\tbigrams.set(gram, count - 1)\n\t\t\tintersection++\n\t\t}\n\t}\n\treturn (2 * intersection) / (a.length + b.length - 2)\n}\n\n/**\n * Returns true when two reflection strings convey essentially the same thing.\n * Deliberately conservative so genuine progress updates are still shown.\n */\nexport function isSimilarText(a: string, b: string): boolean {\n\tconst x = normalizeForCompare(a)\n\tconst y = normalizeForCompare(b)\n\tif (!x || !y) return false\n\tif (x === y) return true\n\tif (x.includes(y) || y.includes(x)) {\n\t\treturn Math.min(x.length, y.length) / Math.max(x.length, y.length) >= 0.7\n\t}\n\treturn diceCoefficient(x, y) >= 0.82\n}\n\n// ── Phase colors ────────────────────────────────────────────────────────────\n\nconst PHASE_COLORS: Record<string, string> = {\n\tthink: 'rgb(88, 166, 255)',\n\tact: 'rgb(210, 168, 255)',\n\tobserve: 'rgb(163, 113, 247)',\n\tdone: 'rgb(63, 185, 80)',\n\terror: 'rgb(248, 81, 73)',\n\tretry: 'rgb(212, 167, 44)',\n\task: 'rgb(219, 109, 40)',\n}\n\nfunction getPhaseLabel(type?: CardType): string {\n\tswitch (type) {\n\t\tcase 'output':\n\t\t\treturn 'act'\n\t\tcase 'input':\n\t\t\treturn 'act'\n\t\tcase 'question':\n\t\t\treturn 'ask'\n\t\tcase 'observation':\n\t\t\treturn 'observe'\n\t\tdefault:\n\t\t\treturn 'act'\n\t}\n}\n\n// ── Formatters ──────────────────────────────────────────────────────────────\n\n/** Format token count for compact display */\nexport function formatTokens(count: number): string {\n\tif (count >= 1000) return `${(count / 1000).toFixed(count >= 10000 ? 0 : 1)}k`\n\treturn count.toString()\n}\n\n/** Build usage meta string: e.g. \"234 tokens\" */\nexport function buildUsageMeta(\n\tusage?: {\n\t\tpromptTokens: number\n\t\tcompletionTokens: number\n\t\ttotalTokens: number\n\t},\n\tunit = 'tokens'\n): string {\n\tif (!usage || usage.totalTokens === 0) return ''\n\tconst parts: string[] = []\n\tif (usage.totalTokens > 0) {\n\t\tparts.push(`${formatTokens(usage.totalTokens)} ${unit}`)\n\t}\n\treturn parts.join(' · ')\n}\n\n// ── Existing card (backward-compatible) ─────────────────────────────────────\n\n/** Create a single history card (observation, error, retry, etc.) */\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\tconst timelineHtml =\n\t\tstepIndex !== undefined\n\t\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\t: ''\n\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\tconst metaHtml = meta ? escapeHtml(meta) : ''\n\n\tconst groupingClass = [\n\t\tisFirstInStep ? styles.timelineFirst : '',\n\t\tisLastInStep ? styles.timelineLast : '',\n\t]\n\t\t.filter(Boolean)\n\t\t.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// ── New design system components ────────────────────────────────────────────\n\n/**\n * Compact step header bar.\n * Shows step number, tool name phase, and metadata (tokens).\n */\nexport function createStepHeader(params: {\n\tstepIndex: number\n\tphase?: 'think' | 'act' | 'observe' | 'done'\n\ttoolName?: string\n\tusageMeta?: string\n\tsummary?: string\n}): string {\n\tconst { stepIndex, phase = 'act', toolName, usageMeta, summary } = params\n\tconst phaseColor = PHASE_COLORS[phase] || PHASE_COLORS.act\n\tconst icon = phase === 'think' ? CardIcons.think : CardIcons.tool\n\tconst label = phase === 'think' ? '思考' : toolName || '执行'\n\n\tconst metaItems: string[] = []\n\tif (usageMeta) metaItems.push(usageMeta)\n\n\treturn `\n\t\t\t<div class=\"${styles.stepHeader}\" style=\"--phase-color: ${phaseColor}\">\n\t\t\t\t<span class=\"${styles.stepHeaderIcon}\">${icon}</span>\n\t\t\t\t<span class=\"${styles.stepHeaderLabel}\">${escapeHtml(label)}</span>\n\t\t\t\t${summary ? `<span class=\"${styles.stepHeaderTitle}\">${escapeHtml(summary)}</span>` : ''}\n\t\t\t\t<span class=\"${styles.stepHeaderIndex}\">${String(stepIndex + 1).padStart(2, '0')}</span>\n\t\t\t\t${metaItems.length > 0 ? `<span class=\"${styles.stepHeaderMeta}\">${escapeHtml(metaItems.join(' · '))}</span>` : ''}\n\t\t\t</div>\n\t\t`\n}\n\n/**\n * Collapsible step group. Uses native `<details>` so open state is accessible\n * and can be preserved across history re-renders by the Panel.\n */\nexport function createStepGroup(params: {\n\tstepIndex: number\n\tphase?: 'think' | 'act' | 'observe' | 'done'\n\ttoolName?: string\n\tusageMeta?: string\n\tsummary?: string\n\tphaseLabel?: string\n\t/** Overrides the phase icon (e.g. a tool-specific glyph). */\n\ticon?: string\n\t/** Marks a step whose goal repeats recent steps. */\n\trepeat?: boolean\n\trepeatLabel?: string\n\t/** Risk tier badge for gated/committed actions. */\n\triskLevel?: RiskLevel\n\triskLabel?: string\n\tbody: string\n\topen?: boolean\n}): string {\n\tconst {\n\t\tstepIndex,\n\t\tphase = 'act',\n\t\ttoolName,\n\t\tusageMeta,\n\t\tsummary,\n\t\tphaseLabel,\n\t\ticon: iconOverride,\n\t\trepeat,\n\t\trepeatLabel,\n\t\triskLevel,\n\t\triskLabel,\n\t\tbody,\n\t\topen,\n\t} = params\n\tconst phaseColor = PHASE_COLORS[phase] || PHASE_COLORS.act\n\tconst icon = iconOverride || (phase === 'think' ? CardIcons.think : CardIcons.tool)\n\tconst label = phaseLabel || (phase === 'think' ? '思考' : toolName || '执行')\n\n\treturn `\n\t\t\t<details class=\"${styles.stepGroup}\" data-step-key=\"step-${stepIndex}\" style=\"--phase-color: ${phaseColor}\" ${open ? 'open' : ''}>\n\t\t\t\t<summary class=\"${styles.stepHeader}\">\n\t\t\t\t\t<span class=\"${styles.stepChevron}\">${chevronSvg}</span>\n\t\t\t\t\t<span class=\"${styles.stepHeaderIcon}\">${icon}</span>\n\t\t\t\t\t<span class=\"${styles.stepHeaderLabel}\">${escapeHtml(label)}</span>\n\t\t\t\t\t${summary ? `<span class=\"${styles.stepHeaderTitle}\">${escapeHtml(summary)}</span>` : ''}\n\t\t\t\t\t<span class=\"${styles.stepHeaderIndex}\">${String(stepIndex + 1).padStart(2, '0')}</span>\n\t\t\t\t\t${repeat ? `<span class=\"${styles.stepRepeatBadge}\">${escapeHtml(repeatLabel || 'Repeat')}</span>` : ''}\n\t\t\t\t\t${riskLevel ? `<span class=\"${styles.riskBadge} ${styles.riskBadgeInline}\" data-risk=\"${riskLevel}\" title=\"${escapeHtml(riskLabel || riskLevel)}\">${escapeHtml(riskLevel)}</span>` : ''}\n\t\t\t\t\t${usageMeta ? `<span class=\"${styles.stepHeaderMeta}\">${escapeHtml(usageMeta)}</span>` : ''}\n\t\t\t\t</summary>\n\t\t\t\t<div class=\"${styles.stepBody}\">${body}</div>\n\t\t\t</details>\n\t\t`\n}\n\nconst chevronSvg = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m9 18 6-6-6-6\"/></svg>`\n\n/** User task bubble */\nexport function createUserMessage(\n\tcontent: string,\n\tauthorLabel: string,\n\tavatarIcon?: string\n): string {\n\tconst avatar = avatarIcon ? avatarIcon : escapeHtml(authorLabel.slice(0, 2).toUpperCase())\n\treturn `\n\t\t\t<div class=\"${styles.messageRow} ${styles.userMessage}\">\n\t\t\t\t<div class=\"${styles.messageMeta}\">\n\t\t\t\t\t<span class=\"${styles.messageAvatar}\">${avatar}</span>\n\t\t\t\t\t<span class=\"${styles.messageAuthor}\">${escapeHtml(authorLabel)}</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"${styles.messageBubble}\">${escapeHtml(content)}</div>\n\t\t\t</div>\n\t\t`\n}\n\n/** Final assistant answer bubble */\nexport function createAssistantMessage(params: {\n\tcontent: string\n\ttitle?: string\n\ticon: string\n\tauthorLabel: string\n}): string {\n\tconst { content, title, icon, authorLabel } = params\n\treturn `\n\t\t\t<div class=\"${styles.messageRow} ${styles.assistantMessage}\">\n\t\t\t\t<div class=\"${styles.messageMeta}\">\n\t\t\t\t\t<span class=\"${styles.messageAvatar} ${styles.agentAvatar}\">${icon}</span>\n\t\t\t\t\t<span class=\"${styles.messageAuthor}\">${escapeHtml(authorLabel)}</span>\n\t\t\t\t\t${title ? `<span class=\"${styles.messageTag}\">${escapeHtml(title)}</span>` : ''}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"${styles.messageBubble}\">\n\t\t\t\t\t<div class=\"${styles.markdownContent}\">${renderMarkdown(content)}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n}\n\n/** Human-in-the-loop approval card (risk-tiered gate) */\nexport function createApprovalCard(params: {\n\t/** `action` gates a single tool call; `step` gates the planning phase. */\n\tvariant?: 'action' | 'step'\n\ttitle: string\n\tbody?: string\n\tstepLabel: string\n\triskLevel?: RiskLevel\n\triskLabel?: string\n\triskHint?: string\n\tactionLabel?: string\n\ttarget?: string\n\tdetailLines?: string[]\n\t/** Label for the \"why\" block (the model's stated goal). */\n\trationaleLabel?: string\n\trationale?: string\n\t/** Label for the previous step outcome. */\n\toutcomeLabel?: string\n\toutcome?: string\n\tcontinueLabel: string\n\t/** Reject only this action and let the agent re-plan. */\n\tblockLabel?: string\n\tbatchLabel?: string\n\tautoLabel?: string\n\tstopLabel: string\n\tshortcutLabel?: string\n}): string {\n\tconst {\n\t\tvariant = 'step',\n\t\ttitle,\n\t\tbody,\n\t\tstepLabel,\n\t\triskLevel,\n\t\triskLabel,\n\t\triskHint,\n\t\tactionLabel,\n\t\ttarget,\n\t\tdetailLines = [],\n\t\trationaleLabel,\n\t\trationale,\n\t\toutcomeLabel,\n\t\toutcome,\n\t\tcontinueLabel,\n\t\tblockLabel,\n\t\tbatchLabel,\n\t\tautoLabel,\n\t\tstopLabel,\n\t\tshortcutLabel,\n\t} = params\n\n\tconst isHighRisk = riskLevel === 'L3'\n\tconst icon = isHighRisk ? CardIcons.error : variant === 'action' ? CardIcons.tool : CardIcons.goal\n\n\tconst riskBadge =\n\t\triskLevel && riskLabel\n\t\t\t? `<span class=\"${styles.riskBadge}\" data-risk=\"${riskLevel}\">` +\n\t\t\t\t`<span class=\"${styles.riskBadgeLevel}\">${escapeHtml(riskLevel)}</span>` +\n\t\t\t\t`<span class=\"${styles.riskBadgeLabel}\">${escapeHtml(riskLabel)}</span>` +\n\t\t\t\t`</span>`\n\t\t\t: ''\n\n\tconst preview =\n\t\tvariant === 'action' && (actionLabel || target || detailLines.length > 0)\n\t\t\t? `<div class=\"${styles.gatePreview}\">` +\n\t\t\t\t(actionLabel\n\t\t\t\t\t? `<div class=\"${styles.gatePreviewHead}\">` +\n\t\t\t\t\t\t`<span class=\"${styles.gateActionLabel}\">${escapeHtml(actionLabel)}</span>` +\n\t\t\t\t\t\t(target\n\t\t\t\t\t\t\t? `<span class=\"${styles.gateSep}\" aria-hidden=\"true\">·</span>` +\n\t\t\t\t\t\t\t\t`<span class=\"${styles.gateTarget}\">${escapeHtml(target)}</span>`\n\t\t\t\t\t\t\t: '') +\n\t\t\t\t\t\t`</div>`\n\t\t\t\t\t: '') +\n\t\t\t\t(detailLines.length > 0\n\t\t\t\t\t? `<div class=\"${styles.gateDetails}\">` +\n\t\t\t\t\t\tdetailLines.map((line) => `<div>${escapeHtml(line)}</div>`).join('') +\n\t\t\t\t\t\t`</div>`\n\t\t\t\t\t: '') +\n\t\t\t\t`</div>`\n\t\t\t: ''\n\n\tconst hints =\n\t\t(riskHint ? `<div class=\"${styles.gateHint}\">${escapeHtml(riskHint)}</div>` : '') +\n\t\t(shortcutLabel ? `<div class=\"${styles.gateShortcut}\">${escapeHtml(shortcutLabel)}</div>` : '')\n\n\t// \"Why\" block: the model's own goal for this action, then how the previous\n\t// step went. This is what makes a step gate reviewable instead of a shrug.\n\tconst why =\n\t\trationale || outcome\n\t\t\t? `<div class=\"${styles.gateReason}\">` +\n\t\t\t\t(rationale\n\t\t\t\t\t? `<div class=\"${styles.gateReasonRow}\">` +\n\t\t\t\t\t\t(rationaleLabel\n\t\t\t\t\t\t\t? `<span class=\"${styles.gateReasonLabel}\">${escapeHtml(rationaleLabel)}</span>`\n\t\t\t\t\t\t\t: '') +\n\t\t\t\t\t\t`<span class=\"${styles.gateReasonText}\">${escapeHtml(rationale)}</span>` +\n\t\t\t\t\t\t`</div>`\n\t\t\t\t\t: '') +\n\t\t\t\t(outcome\n\t\t\t\t\t? `<div class=\"${styles.gateReasonRow} ${styles.gateReasonRowMuted}\">` +\n\t\t\t\t\t\t(outcomeLabel\n\t\t\t\t\t\t\t? `<span class=\"${styles.gateReasonLabel}\">${escapeHtml(outcomeLabel)}</span>`\n\t\t\t\t\t\t\t: '') +\n\t\t\t\t\t\t`<span class=\"${styles.gateReasonText}\">${escapeHtml(outcome)}</span>` +\n\t\t\t\t\t\t`</div>`\n\t\t\t\t\t: '') +\n\t\t\t\t`</div>`\n\t\t\t: ''\n\n\treturn `\n\t\t\t<div class=\"${styles.approvalCard}${isHighRisk ? ` ${styles.approvalCardDanger}` : ''}\" data-approval-card data-variant=\"${variant}\" role=\"group\" aria-label=\"${escapeHtml(title)}\">\n\t\t\t\t<div class=\"${styles.approvalHeader}\">\n\t\t\t\t\t<span class=\"${styles.approvalIcon}\">${icon}</span>\n\t\t\t\t\t<span class=\"${styles.approvalTitle}\">${escapeHtml(title)}</span>\n\t\t\t\t\t<span class=\"${styles.approvalStep}\">${escapeHtml(stepLabel)}</span>\n\t\t\t\t</div>\n\t\t\t\t${riskBadge}\n\t\t\t\t${body ? `<p class=\"${styles.approvalBody}\">${escapeHtml(body)}</p>` : ''}\n\t\t\t\t${preview}\n\t\t\t\t${why}\n\t\t\t\t${hints}\n\t\t\t\t<div class=\"${styles.approvalActions}\">\n\t\t\t\t\t<button type=\"button\" class=\"${styles.approvalBtn} ${styles.approvalPrimary}\" data-approval=\"allow\">\n\t\t\t\t\t\t${escapeHtml(continueLabel)}\n\t\t\t\t\t</button>\n\t\t\t\t\t${\n\t\t\t\t\t\tblockLabel\n\t\t\t\t\t\t\t? `<button type=\"button\" class=\"${styles.approvalBtn}\" data-approval=\"block\">${escapeHtml(blockLabel)}</button>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}\n\t\t\t\t\t${\n\t\t\t\t\t\tbatchLabel\n\t\t\t\t\t\t\t? `<button type=\"button\" class=\"${styles.approvalBtn}\" data-approval=\"batch\">${escapeHtml(batchLabel)}</button>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}\n\t\t\t\t\t${\n\t\t\t\t\t\tautoLabel\n\t\t\t\t\t\t\t? `<button type=\"button\" class=\"${styles.approvalBtn}\" data-approval=\"auto\">${escapeHtml(autoLabel)}</button>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}\n\t\t\t\t\t<button type=\"button\" class=\"${styles.approvalBtn} ${styles.approvalDanger}\" data-approval=\"deny\">\n\t\t\t\t\t\t${escapeHtml(stopLabel)}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n}\n\n/**\n * Individual reflection card.\n * Indented, with a left border that matches the phase color.\n */\nexport function createReflectionCard(params: {\n\tlines: ReflectionLine[]\n\tphaseColor: string\n\t/** Label shown instead of repeating a line verbatim. */\n\trepeatLabel?: string\n\t/** When set, replaces the whole card with one compact row. */\n\tcompactLabel?: string\n}): string {\n\tconst { lines, phaseColor, repeatLabel = 'Same as previous', compactLabel } = params\n\n\tif (compactLabel) {\n\t\treturn `\n\t\t\t<div class=\"${styles.reflectionCard}\" style=\"--phase-color: ${phaseColor}\">\n\t\t\t\t<div class=\"${styles.reflectionRow}\">\n\t\t\t\t\t<span class=\"${styles.reflectionIcon}\">${CardIcons.think}</span>\n\t\t\t\t\t<span class=\"${styles.reflectionCompact}\">${escapeHtml(compactLabel)}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n\n\tconst items = lines\n\t\t.map(\n\t\t\t(line) => `\n\t\t\t\t<div class=\"${styles.reflectionRow}\">\n\t\t\t\t\t<span class=\"${styles.reflectionIcon}\">${line.icon}</span>\n\t\t\t\t\t<span class=\"${styles.reflectionLabel}\">${escapeHtml(line.label)}</span>\n\t\t\t\t\t<span class=\"${styles.reflectionText}\">${\n\t\t\t\t\t\tline.repeat\n\t\t\t\t\t\t\t? `<span class=\"${styles.reflectionRepeat}\">${escapeHtml(repeatLabel)}</span>`\n\t\t\t\t\t\t\t: escapeHtml(line.content)\n\t\t\t\t\t}</span>\n\t\t\t\t</div>`\n\t\t)\n\t\t.join('')\n\n\treturn `\n\t\t\t<div class=\"${styles.reflectionCard}\" style=\"--phase-color: ${phaseColor}\">\n\t\t\t\t${items}\n\t\t\t</div>\n\t\t`\n}\n\n// ── Output helpers ──────────────────────────────────────────────────────────\n\nconst LONG_THRESHOLD = 300\n\n/**\n * Full-width action result card.\n * Long output (>300 chars) auto-collapses. Uses `title` as summary label.\n */\nexport function createActionResultCard(params: {\n\ticon: string\n\tcontent: string\n\ttype?: CardType\n\tmarkdown?: boolean\n\t/** Label shown on the collapsed summary line (e.g. \"read_page_content\") */\n\ttitle?: string\n\t/**\n\t * Short tool result folded into the same card (e.g. \"✅ Clicked element\").\n\t * Keeps one action = one card instead of an input card plus an output card.\n\t */\n\tresult?: string\n}): string {\n\tconst { icon, content, type, markdown, title, result } = params\n\tconst typeClass = type ? styles[type] : ''\n\tconst isLong = content.length > LONG_THRESHOLD\n\n\tconst summaryLabel = title ? escapeHtml(title) : escapeHtml(content.slice(0, 100))\n\n\tconst bodyHtml = isLong\n\t\t? `<details class=\"${styles.actionDetails}\">\n\t\t\t\t<summary class=\"${styles.actionSummary}\">\n\t\t\t\t\t<span class=\"${styles.actionSummaryText}\">${summaryLabel}</span>\n\t\t\t\t\t<span class=\"${styles.actionSummaryToggle}\"></span>\n\t\t\t\t</summary>\n\t\t\t\t${\n\t\t\t\t\tmarkdown\n\t\t\t\t\t\t? `<div class=\"${styles.markdownContent}\">${renderMarkdown(content)}</div>`\n\t\t\t\t\t\t: `<pre class=\"${styles.actionOutput}\"><code>${escapeHtml(content)}</code></pre>`\n\t\t\t\t}\n\t\t\t</details>`\n\t\t: markdown\n\t\t\t? `<div class=\"${styles.markdownContent}\">${renderMarkdown(content)}</div>`\n\t\t\t: `<pre class=\"${styles.actionOutput}\"><code>${escapeHtml(content)}</code></pre>`\n\n\treturn `\n\t\t\t<div class=\"${styles.actionCard} ${typeClass}\">\n\t\t\t\t<div class=\"${styles.actionCardHeader}\">\n\t\t\t\t\t<span class=\"${styles.statusIcon}\">${icon}</span>\n\t\t\t\t\t${title ? `<span class=\"${styles.actionCardLabel}\">${escapeHtml(title)}</span>` : ''}\n\t\t\t\t</div>\n\t\t\t\t${bodyHtml}\n\t\t\t\t${result ? `<div class=\"${styles.actionResultLine}\">${escapeHtml(result)}</div>` : ''}\n\t\t\t</div>\n\t\t`\n}\n\n// ── Reflection helpers ──────────────────────────────────────────────────────\n\n/**\n * Extract lines from a reflection object with icons and labels.\n * Returns structured data so callers control layout.\n */\nexport function createReflectionLines(reflection: {\n\tevaluation_previous_goal?: string\n\tmemory?: string\n\tnext_goal?: string\n}): ReflectionLine[] {\n\tconst lines: ReflectionLine[] = []\n\tif (reflection.evaluation_previous_goal) {\n\t\tlines.push({\n\t\t\tkey: 'evaluation_previous_goal',\n\t\t\tlabel: '评估',\n\t\t\ticon: ReflectionIcons.evaluation_previous_goal,\n\t\t\tcontent: reflection.evaluation_previous_goal,\n\t\t})\n\t}\n\tif (reflection.memory) {\n\t\tlines.push({\n\t\t\tkey: 'memory',\n\t\t\tlabel: '记忆',\n\t\t\ticon: ReflectionIcons.memory,\n\t\t\tcontent: reflection.memory,\n\t\t})\n\t}\n\tif (reflection.next_goal) {\n\t\tlines.push({\n\t\t\tkey: 'next_goal',\n\t\t\tlabel: '下一步',\n\t\t\ticon: ReflectionIcons.next_goal,\n\t\t\tcontent: reflection.next_goal,\n\t\t})\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, type TranslationKey } from '../i18n'\nimport { escapeHtml, truncate } from '../utils'\nimport { ModelSwitcher } from './ModelSwitcher'\nimport {\n\tPHASE_COLORS,\n\tbuildUsageMeta,\n\tcreateActionResultCard,\n\tcreateApprovalCard,\n\tcreateAssistantMessage,\n\tcreateCard,\n\tcreateReflectionCard,\n\tcreateReflectionLines,\n\tcreateStepGroup,\n\tcreateUserMessage,\n\tisSimilarText,\n} from './cards'\nimport {\n\ttype Conversation,\n\tConversationStorage,\n\tderiveTitle,\n\tgenerateConversationId,\n\tgenerateId,\n} from './conversations'\nimport { CardIcons, PanelIcons } from './icons'\nimport { SkillStorage, type StoredSkill, generateSkillId } from './skills-db'\nimport { resolveActiveModel } from './types'\nimport type {\n\tActionGateDecision,\n\tActionGateInfo,\n\tActiveLLMConfig,\n\tAgentActivity,\n\tInteractionMode,\n\tPageAgentSettings,\n\tPanelAgentAdapter,\n\tProviderConfig,\n\tRiskLevel,\n} from './types'\n\nimport styles from './Panel.module.css'\n\n/**\n * One-click provider presets. Reduces the setup path from \"fill 4 fields\"\n * to \"pick a provider, paste a key\".\n */\nconst PROVIDER_PRESETS: {\n\tid: string\n\tname: string\n\tbaseURL: string\n\tapiFormat: 'openai' | 'anthropic'\n\tmodels: string[]\n}[] = [\n\t{\n\t\tid: 'openai',\n\t\tname: 'OpenAI',\n\t\tbaseURL: 'https://api.openai.com/v1',\n\t\tapiFormat: 'openai',\n\t\tmodels: ['gpt-4o-mini', 'gpt-4o'],\n\t},\n\t{\n\t\tid: 'anthropic',\n\t\tname: 'Anthropic',\n\t\tbaseURL: 'https://api.anthropic.com/v1',\n\t\tapiFormat: 'anthropic',\n\t\tmodels: ['claude-sonnet-4-5', 'claude-haiku-4-5'],\n\t},\n\t{\n\t\tid: 'deepseek',\n\t\tname: 'DeepSeek',\n\t\tbaseURL: 'https://api.deepseek.com/v1',\n\t\tapiFormat: 'openai',\n\t\tmodels: ['deepseek-chat', 'deepseek-reasoner'],\n\t},\n\t{\n\t\tid: 'openrouter',\n\t\tname: 'OpenRouter',\n\t\tbaseURL: 'https://openrouter.ai/api/v1',\n\t\tapiFormat: 'openai',\n\t\tmodels: ['openai/gpt-4o-mini', 'anthropic/claude-sonnet-4.5'],\n\t},\n\t{\n\t\tid: 'ollama',\n\t\tname: 'Ollama',\n\t\tbaseURL: 'http://localhost:11434/v1',\n\t\tapiFormat: 'openai',\n\t\tmodels: ['llama3.2', 'qwen2.5'],\n\t},\n]\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/**\n\t * Authorization policy for agent actions.\n\t * - `autopilot`: autonomous, only L3 blocks (default)\n\t * - `copilot`: L2+ blocks, reads and draft edits flow through\n\t * - `step`: debug mode, every step pauses\n\t * - `collaborative`: deprecated alias for `copilot`\n\t * @default 'autopilot'\n\t */\n\tinteractionMode?: InteractionMode | 'collaborative'\n\t/** Remember \"always allow this action type\" choices for the current task. */\n\trememberApprovals?: 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// Interaction mode (risk-tiered authorization)\n\t#interactionMode: InteractionMode = 'autopilot'\n\t#modeChip: HTMLElement\n\t#modePopover: HTMLElement\n\t#sendBtn: HTMLElement\n\t#resumeBar!: HTMLElement\n\t/** Resolves the pending blocking gate (action or step). */\n\t#gateResolver: ((decision: ActionGateDecision) => void) | null = null\n\t/** Action awaiting confirmation, or null for a step-level gate. */\n\t#pendingGate: ActionGateInfo | null = null\n\t/** Step index awaiting confirmation in `step` mode. */\n\t#pendingStepGate: number | null = null\n\t/** Action types the user allowed for the rest of this task. */\n\t#approvedTools = new Set<string>()\n\t/** Risk tier per step, used for badges in the rendered history. */\n\t#riskByStep = new Map<number, RiskLevel>()\n\t#toastHost!: HTMLElement\n\t#toastTimer: ReturnType<typeof setTimeout> | null = null\n\t#rememberApprovals = true\n\t#onGateKeydown = (e: KeyboardEvent) => this.#handleGateKeydown(e)\n\t#lastActivity: AgentActivity | null = null\n\tstatic #MODE_STORAGE_KEY = 'page-agent-interaction-mode'\n\tstatic #REMEMBER_STORAGE_KEY = 'page-agent-remember-approvals'\n\n\t// Incremental render bookkeeping (avoids rebuilding large histories)\n\t#renderedTask: string | null = null\n\t#renderedHistoryRef: readonly unknown[] | null = null\n\t#renderedEventCount = 0\n\n\t// Steps the user explicitly opened/closed (survives re-renders)\n\t#userOpenedSteps = new Set<string>()\n\t#userClosedSteps = new Set<string>()\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\t\tthis.#toastHost = this.#wrapper.querySelector('[data-toast-host]')!\n\t\tthis.#resumeBar = this.#wrapper.querySelector('[data-resume-bar]')!\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// Interaction mode + composer\n\t\tthis.#modeChip = this.#wrapper.querySelector(`.${styles.modeChip}`)!\n\t\tthis.#modePopover = this.#wrapper.querySelector(`.${styles.modePopover}`)!\n\t\tthis.#sendBtn = this.#wrapper.querySelector(`.${styles.sendBtn}`)!\n\t\tthis.#interactionMode = this.#loadInteractionMode()\n\t\tthis.#syncModeControl()\n\t\tthis.#rememberApprovals = this.#loadRememberApprovals()\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\t\tthis.#syncResumeBar()\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\n\t\tif (status === 'running') {\n\t\t\tthis.#actionButton.innerHTML = PanelIcons.stop\n\t\t\tthis.#actionButton.title = this.#i18n.t('ui.panel.stop')\n\t\t\tthis.#actionButton.classList.add(styles.actionStop)\n\t\t} else {\n\t\t\tthis.#actionButton.innerHTML = PanelIcons.close\n\t\t\tthis.#actionButton.title = this.#i18n.t('ui.panel.close')\n\t\t\tthis.#actionButton.classList.remove(styles.actionStop)\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\tthis.#renderActivity()\n\t\t}\n\n\t\t// Handle completion\n\t\tif (status === 'completed' || status === 'error' || status === 'stopped') {\n\t\t\t// Never leave a step approval hanging once the run has settled.\n\t\t\tthis.#clearApproval()\n\t\t\tthis.#lastActivity = null\n\t\t\tthis.#renderActivity()\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\n\t\tthis.#syncResumeBar()\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\tthis.#syncResumeBar()\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\tthis.#lastActivity = activity\n\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\t// A user-rejected action comes back as a tool output; show the\n\t\t\t\t// localized explanation instead of the raw English hint.\n\t\t\t\tthis.#pendingHeaderText = activity.output.startsWith('❌ The user rejected')\n\t\t\t\t\t? this.#i18n.t('ui.panel.actionRejected')\n\t\t\t\t\t: truncate(activity.output, 50)\n\t\t\t\t// L1 draft edits run without asking; offer a short undo window instead.\n\t\t\t\tif (activity.tool === 'input_text' || activity.tool === 'select_dropdown_option') {\n\t\t\t\t\tthis.#showUndoToast(this.#i18n.t('ui.panel.undoHint'))\n\t\t\t\t}\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 =\n\t\t\t\t\tactivity.message === 'Task aborted'\n\t\t\t\t\t\t? this.#i18n.t('ui.panel.taskAborted')\n\t\t\t\t\t\t: truncate(activity.message, 50)\n\t\t\t\tthis.#updateStatusIndicator('error')\n\t\t\t\tbreak\n\t\t}\n\n\t\tthis.#renderActivity()\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: CardIcons.question,\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// ========== Interaction mode / risk-tiered gates ==========\n\n\t/** Lowest risk tier that blocks, per policy. Mirrors core's GATE_THRESHOLD. */\n\tstatic #POLICY_THRESHOLD: Record<InteractionMode, number> = { autopilot: 3, copilot: 2, step: 0 }\n\tstatic #RISK_ORDER: Record<RiskLevel, number> = { L0: 0, L1: 1, L2: 2, L3: 3 }\n\tstatic #CONFIDENCE_THRESHOLD = 0.85\n\n\t#normalizeMode(raw: string | null | undefined): InteractionMode | null {\n\t\t// `collaborative` is the pre-1.11 name of the balanced policy.\n\t\tif (raw === 'collaborative') return 'copilot'\n\t\tif (raw === 'autopilot' || raw === 'copilot' || raw === 'step') return raw\n\t\treturn null\n\t}\n\n\t#loadInteractionMode(): InteractionMode {\n\t\ttry {\n\t\t\tconst stored = this.#normalizeMode(localStorage.getItem(Panel.#MODE_STORAGE_KEY))\n\t\t\tif (stored) return stored\n\t\t} catch {\n\t\t\t// localStorage may be unavailable in private modes\n\t\t}\n\t\treturn this.#normalizeMode(this.#config.interactionMode) ?? 'autopilot'\n\t}\n\n\t#loadRememberApprovals(): boolean {\n\t\ttry {\n\t\t\tconst stored = localStorage.getItem(Panel.#REMEMBER_STORAGE_KEY)\n\t\t\tif (stored === 'true') return true\n\t\t\tif (stored === 'false') return false\n\t\t} catch {\n\t\t\t// ignore\n\t\t}\n\t\treturn this.#config.rememberApprovals !== false\n\t}\n\n\tgetInteractionMode(): InteractionMode {\n\t\treturn this.#interactionMode\n\t}\n\n\t/** Switch authorization policy: autopilot / copilot (balanced) / step. */\n\tsetInteractionMode(mode: InteractionMode): void {\n\t\tconst normalized = this.#normalizeMode(mode) ?? 'autopilot'\n\t\tif (normalized === this.#interactionMode) return\n\t\tthis.#interactionMode = normalized\n\t\ttry {\n\t\t\tlocalStorage.setItem(Panel.#MODE_STORAGE_KEY, normalized)\n\t\t} catch {\n\t\t\t// ignore\n\t\t}\n\t\tthis.#syncModeControl()\n\t\tthis.#renderPolicyTab()\n\t\t// Relaxing the policy should not leave the user stuck on a stale card.\n\t\tif (this.#pendingGate && !this.#shouldGate(this.#pendingGate)) {\n\t\t\tthis.#finishGate('allow')\n\t\t}\n\t\tif (this.#pendingStepGate !== null && normalized !== 'step') {\n\t\t\tthis.#finishGate('allow')\n\t\t}\n\t}\n\n\t#syncModeControl(): void {\n\t\tconst mode = this.#interactionMode\n\t\tconst labelKey: Record<InteractionMode, TranslationKey> = {\n\t\t\tautopilot: 'ui.panel.autopilot',\n\t\t\tcopilot: 'ui.panel.copilot',\n\t\t\tstep: 'ui.panel.stepMode',\n\t\t}\n\t\tconst hintKey: Record<InteractionMode, TranslationKey> = {\n\t\t\tautopilot: 'ui.panel.autopilotHint',\n\t\t\tcopilot: 'ui.panel.copilotHint',\n\t\t\tstep: 'ui.panel.stepModeHint',\n\t\t}\n\t\tconst icon: Record<InteractionMode, string> = {\n\t\t\tautopilot: PanelIcons.autopilot,\n\t\t\tcopilot: PanelIcons.collaborative,\n\t\t\tstep: PanelIcons.step,\n\t\t}\n\t\tthis.#modeChip.innerHTML =\n\t\t\t`<span class=\"${styles.modeChipIcon}\">${icon[mode]}</span>` +\n\t\t\t`<span class=\"${styles.modeChipLabel}\">${escapeHtml(this.#i18n.t(labelKey[mode]))}</span>` +\n\t\t\t`<span class=\"${styles.modeChipChevron}\">${PanelIcons.chevron}</span>`\n\t\tthis.#modeChip.dataset.mode = mode\n\t\tthis.#modeChip.title = this.#i18n.t(hintKey[mode])\n\t\tthis.#modeChip.setAttribute('aria-expanded', 'false')\n\t\tthis.#modePopover.classList.add(styles.hidden)\n\t\tthis.#modePopover.querySelectorAll('[data-mode]').forEach((option) => {\n\t\t\tconst active = option.getAttribute('data-mode') === mode\n\t\t\toption.classList.toggle(styles.modeOptionActive, active)\n\t\t\toption.setAttribute('aria-selected', String(active))\n\t\t})\n\t}\n\n\t#toggleModePopover(): void {\n\t\tconst open = this.#modePopover.classList.toggle(styles.hidden)\n\t\tthis.#modeChip.setAttribute('aria-expanded', String(!open))\n\t}\n\n\t#closeModePopover(): void {\n\t\tthis.#modePopover.classList.add(styles.hidden)\n\t\tthis.#modeChip.setAttribute('aria-expanded', 'false')\n\t}\n\n\t/**\n\t * Should this action block under the active policy?\n\t * Reads (L0) never block; low-confidence lookups escalate one level.\n\t */\n\t#shouldGate(info: ActionGateInfo): boolean {\n\t\tconst threshold = Panel.#POLICY_THRESHOLD[this.#interactionMode]\n\t\tif (threshold === 0) return true\n\t\tconst order = Panel.#RISK_ORDER[info.risk.level]\n\t\tif (order >= threshold) return true\n\t\tif (\n\t\t\ttypeof info.confidence === 'number' &&\n\t\t\tinfo.confidence < Panel.#CONFIDENCE_THRESHOLD &&\n\t\t\torder > 0\n\t\t) {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\t/**\n\t * Called by the runtime after the model picked an action.\n\t *\n\t * Risk-tiered: L0/L1 flow through silently, the policy threshold decides for\n\t * L2, and L3 always blocks. Returns `deny` to abort the task.\n\t */\n\tasync requestActionApproval(info: ActionGateInfo): Promise<ActionGateDecision> {\n\t\tthis.#riskByStep.set(info.step, info.risk.level)\n\n\t\t// Batch authorization is scoped to risk-tiered policies. Step mode is a\n\t\t// debugging tool: every action must be inspected individually.\n\t\tif (\n\t\t\tthis.#interactionMode !== 'step' &&\n\t\t\tthis.#approvedTools.has(info.tool) &&\n\t\t\tPanel.#RISK_ORDER[info.risk.level] < Panel.#RISK_ORDER.L3\n\t\t) {\n\t\t\treturn 'allow'\n\t\t}\n\n\t\tif (!this.#shouldGate(info)) return 'allow'\n\n\t\treturn this.#openGate(info)\n\t}\n\n\t/**\n\t * Legacy pre-planning gate.\n\t *\n\t * Kept for API compatibility: gating now happens in\n\t * {@link requestActionApproval} — i.e. *after* the model has planned — so the\n\t * user always sees the concrete tool, target, arguments and the model's\n\t * stated goal instead of an empty \"next step?\" prompt.\n\t */\n\twaitForStepApproval(_stepIndex: number): Promise<void> {\n\t\treturn Promise.resolve()\n\t}\n\n\t#openGate(info: ActionGateInfo | null, stepIndex?: number): Promise<ActionGateDecision> {\n\t\t// A newer request supersedes a stale one (should not happen, but be safe).\n\t\tif (this.#gateResolver) this.#finishGate('allow')\n\n\t\tthis.show()\n\t\tif (!this.#isExpanded) this.#expand()\n\n\t\tthis.#pendingGate = info\n\t\tthis.#pendingStepGate = info ? null : (stepIndex ?? 0)\n\t\tthis.#statusText.textContent = this.#i18n.t('ui.panel.waitingApproval')\n\t\tthis.#updateStatusIndicator('retrying')\n\t\ttry {\n\t\t\tthis.#renderApprovalCard()\n\t\t} catch (error) {\n\t\t\t// A rendering failure must never block the run: keep the keyboard path\n\t\t\t// (Enter/Esc) alive and log the cause.\n\t\t\tconsole.error('[Panel] Failed to render approval card:', error)\n\t\t}\n\t\tdocument.addEventListener('keydown', this.#onGateKeydown)\n\n\t\treturn new Promise<ActionGateDecision>((resolve) => {\n\t\t\tthis.#gateResolver = resolve\n\t\t})\n\t}\n\n\t/** Enter allows, Escape rejects the action (task keeps running). */\n\t#handleGateKeydown(e: KeyboardEvent): void {\n\t\tif (!this.#gateResolver) return\n\t\tif (e.isComposing) return\n\t\tconst target = e.target as HTMLElement | null\n\t\tif (\n\t\t\ttarget &&\n\t\t\t(target.tagName === 'INPUT' ||\n\t\t\t\ttarget.tagName === 'TEXTAREA' ||\n\t\t\t\ttarget.tagName === 'SELECT' ||\n\t\t\t\ttarget.isContentEditable)\n\t\t) {\n\t\t\treturn\n\t\t}\n\t\tif (e.key === 'Enter') {\n\t\t\te.preventDefault()\n\t\t\tthis.#finishGate('allow')\n\t\t} else if (e.key === 'Escape') {\n\t\t\te.preventDefault()\n\t\t\t// Rejecting one action must not discard the whole task.\n\t\t\tthis.#finishGate('block')\n\t\t}\n\t}\n\n\t#renderApprovalCard(): void {\n\t\tthis.#removeApprovalCard()\n\t\tconst info = this.#pendingGate\n\t\tif (!info && this.#pendingStepGate === null) return\n\n\t\tconst t = (key: string, vars?: Record<string, string | number>) =>\n\t\t\tthis.#i18n.t(key as Parameters<I18n['t']>[0], vars)\n\t\tconst stepNumber = String((info?.step ?? this.#pendingStepGate ?? 0) + 1).padStart(2, '0')\n\t\tconst rememberEnabled = this.#rememberApprovals && this.#interactionMode !== 'step'\n\n\t\tconst holder = document.createElement('div')\n\t\tholder.innerHTML = createApprovalCard({\n\t\t\tvariant: info ? 'action' : 'step',\n\t\t\ttitle: t(info ? 'ui.panel.gateTitle' : 'ui.panel.approvalTitle'),\n\t\t\t// Action cards already carry a risk hint + preview; a generic body\n\t\t\t// would only repeat it.\n\t\t\tbody: info ? undefined : t('ui.panel.approvalBody'),\n\t\t\tstepLabel: t('ui.panel.approvalStep', { number: stepNumber }),\n\t\t\triskLevel: info?.risk.level,\n\t\t\triskLabel: info ? t(`ui.panel.risk.${info.risk.level}`) : undefined,\n\t\t\triskHint: info ? this.#getRiskHint(info) : undefined,\n\t\t\tactionLabel: info ? this.#getToolLabel(info.tool) : undefined,\n\t\t\ttarget: info?.target,\n\t\t\tdetailLines: info ? this.#describeGateInput(info) : [],\n\t\t\trationaleLabel: t('ui.panel.gateWhy'),\n\t\t\trationale: info ? this.#getGateRationale(info) : undefined,\n\t\t\toutcomeLabel: t('ui.panel.gateOutcome'),\n\t\t\toutcome: info ? this.#getGateOutcome(info) : undefined,\n\t\t\tcontinueLabel: t('ui.panel.approvalContinue'),\n\t\t\tblockLabel: info ? t('ui.panel.approvalBlock') : undefined,\n\t\t\tbatchLabel:\n\t\t\t\tinfo && rememberEnabled && info.risk.level === 'L2'\n\t\t\t\t\t? t('ui.panel.approvalBatch', { action: this.#getToolLabel(info.tool) })\n\t\t\t\t\t: undefined,\n\t\t\tautoLabel: t('ui.panel.approvalAuto'),\n\t\t\tstopLabel: t('ui.panel.approvalStop'),\n\t\t\tshortcutLabel: t('ui.panel.approvalShortcut'),\n\t\t})\n\t\tconst card = holder.firstElementChild\n\t\tif (card) this.#historySection.appendChild(card)\n\t\tthis.#scrollToBottom()\n\t\t// Focus the primary button so keyboard users can act immediately.\n\t\tcard?.querySelector<HTMLElement>('[data-approval=\"allow\"]')?.focus()\n\t}\n\n\t/** One-line explanation of why this action needs a human. */\n\t#getRiskHint(info: ActionGateInfo): string {\n\t\tif (info.tool === 'done') return this.#i18n.t('ui.panel.riskHint.done')\n\t\tif (this.#interactionMode === 'step') {\n\t\t\treturn this.#i18n.t('ui.panel.riskHint.stepMode')\n\t\t}\n\t\tconst reason = info.risk.reason || ''\n\t\tif (reason === 'destructive' || reason === 'destructive-script') {\n\t\t\treturn this.#i18n.t('ui.panel.riskHint.destructive')\n\t\t}\n\t\tif (reason === 'submit' || reason === 'script') {\n\t\t\treturn this.#i18n.t('ui.panel.riskHint.commit')\n\t\t}\n\t\tif (typeof info.confidence === 'number' && info.confidence < Panel.#CONFIDENCE_THRESHOLD) {\n\t\t\treturn this.#i18n.t('ui.panel.riskHint.lowConfidence')\n\t\t}\n\t\treturn this.#i18n.t('ui.panel.riskHint.generic')\n\t}\n\n\t#getToolLabel(tool: string): string {\n\t\tconst key = `ui.panel.tool.${tool}`\n\t\tconst label = this.#i18n.t(key as Parameters<I18n['t']>[0])\n\t\treturn label === key ? tool : label\n\t}\n\n\t/** Human readable preview of what exactly will run. */\n\t#describeGateInput(info: ActionGateInfo): string[] {\n\t\tconst input = (info.input ?? {}) as Record<string, unknown>\n\t\tconst lines: string[] = []\n\t\tconst clip = (value: unknown, max = 120): string => {\n\t\t\tconst text = typeof value === 'string' ? value : (JSON.stringify(value) ?? '')\n\t\t\treturn truncate(text, max)\n\t\t}\n\t\tconst index = typeof input.index === 'number' ? String(input.index) : '?'\n\n\t\tswitch (info.tool) {\n\t\t\tcase 'click_element_by_index':\n\t\t\t\tlines.push(this.#i18n.t('ui.panel.gateTarget', { index }))\n\t\t\t\tbreak\n\t\t\tcase 'input_text':\n\t\t\tcase 'select_dropdown_option':\n\t\t\t\tlines.push(this.#i18n.t('ui.panel.gateTarget', { index }))\n\t\t\t\tlines.push(`${this.#i18n.t('ui.panel.gateValue')}: ${clip(input.text, 160)}`)\n\t\t\t\tbreak\n\t\t\tcase 'execute_javascript':\n\t\t\t\tlines.push(clip(input.script, 220))\n\t\t\t\tbreak\n\t\t\tcase 'done':\n\t\t\t\tlines.push(clip(input.text, 240))\n\t\t\t\tbreak\n\t\t\tcase 'ask_user':\n\t\t\t\tlines.push(clip(input.question, 300))\n\t\t\t\tbreak\n\t\t\tcase 'wait':\n\t\t\t\tlines.push(clip(input.seconds, 20))\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tfor (const [key, value] of Object.entries(input).slice(0, 3)) {\n\t\t\t\t\tlines.push(`${key}: ${clip(value)}`)\n\t\t\t\t}\n\t\t}\n\t\treturn lines.filter(Boolean)\n\t}\n\n\t/**\n\t * The model's own goal for the action about to run. This is the \"why\" the\n\t * user needs before allowing a step.\n\t */\n\t#getGateRationale(info: ActionGateInfo): string | undefined {\n\t\tconst goal =\n\t\t\ttypeof info.reflection?.next_goal === 'string' ? info.reflection.next_goal.trim() : ''\n\t\treturn goal ? truncate(goal, 220) : undefined\n\t}\n\n\t/** How the previous step went, so the user can judge the next one. */\n\t#getGateOutcome(info: ActionGateInfo): string | undefined {\n\t\tif (info.step <= 0) return undefined\n\t\tfor (const event of this.#agent.history) {\n\t\t\tif (event.type !== 'step' || event.stepIndex !== info.step - 1) continue\n\t\t\tconst action = event.action\n\t\t\tif (!action) return undefined\n\t\t\tconst label = this.#getToolLabel(action.name)\n\t\t\tconst detail = this.#summarizeAction(action.name, action.input)\n\t\t\tconst failed = action.output.includes('❌')\n\t\t\tconst text = `${failed ? '❌ ' : ''}${label}${detail ? ` ${detail}` : ''}`\n\t\t\treturn truncate(text, 90)\n\t\t}\n\t\treturn undefined\n\t}\n\n\t/** Compact one-line rendering of a tool call for the \"last step\" row. */\n\t#summarizeAction(name: string, input: unknown): string {\n\t\tconst value = (input ?? {}) as Record<string, unknown>\n\t\tconst text = (raw: unknown, max = 40) => {\n\t\t\tconst asString = typeof raw === 'string' ? raw : (JSON.stringify(raw ?? '') ?? '')\n\t\t\treturn truncate(asString.replace(/\\s+/g, ' '), max)\n\t\t}\n\t\tswitch (name) {\n\t\t\tcase 'click_element_by_index':\n\t\t\t\treturn `#${text(value.index, 6)}`\n\t\t\tcase 'input_text':\n\t\t\tcase 'select_dropdown_option':\n\t\t\t\treturn `#${text(value.index, 6)} ← ${text(value.text, 42)}`\n\t\t\tcase 'execute_javascript':\n\t\t\t\treturn text(value.script, 52)\n\t\t\tcase 'read_page_content':\n\t\t\t\treturn value.selector ? text(value.selector, 30) : ''\n\t\t\tcase 'wait':\n\t\t\t\treturn `${text(value.seconds, 6)}s`\n\t\t\tcase 'done':\n\t\t\t\treturn text(value.text, 56)\n\t\t\tcase 'ask_user':\n\t\t\t\treturn text(value.question, 48)\n\t\t\tdefault:\n\t\t\t\treturn ''\n\t\t}\n\t}\n\n\t#removeApprovalCard(): void {\n\t\tthis.#historySection.querySelector('[data-approval-card]')?.remove()\n\t}\n\n\t#finishGate(decision: ActionGateDecision): void {\n\t\tconst resolve = this.#gateResolver\n\t\tthis.#gateResolver = null\n\t\tthis.#pendingGate = null\n\t\tthis.#pendingStepGate = null\n\t\tdocument.removeEventListener('keydown', this.#onGateKeydown)\n\t\tthis.#removeApprovalCard()\n\t\tresolve?.(decision)\n\n\t\tif (decision === 'deny') {\n\t\t\tvoid this.#agent.stop()\n\t\t\treturn\n\t\t}\n\t\tif (this.#agent.status === 'running') {\n\t\t\t// Both `allow` and `block` keep the loop alive.\n\t\t\tthis.#statusText.textContent =\n\t\t\t\tdecision === 'block'\n\t\t\t\t\t? this.#i18n.t('ui.panel.actionRejected')\n\t\t\t\t\t: this.#i18n.t('ui.panel.thinking')\n\t\t\tthis.#updateStatusIndicator('thinking')\n\t\t}\n\t}\n\n\t/** Batch-authorize an action type for the rest of the current task. */\n\t#approveGateForTask(): void {\n\t\tconst tool = this.#pendingGate?.tool\n\t\tif (tool) this.#approvedTools.add(tool)\n\t\tthis.#finishGate('allow')\n\t}\n\n\t#clearApproval(): void {\n\t\tif (!this.#gateResolver) return\n\t\tthis.#finishGate('allow')\n\t}\n\n\t// ========== Transient toasts (undo / auto-executed hints) ==========\n\n\t#clearToast(): void {\n\t\tif (this.#toastTimer) {\n\t\t\tclearTimeout(this.#toastTimer)\n\t\t\tthis.#toastTimer = null\n\t\t}\n\t\tthis.#toastHost?.replaceChildren()\n\t}\n\n\t/**\n\t * Non-blocking notification with an Undo action.\n\t * Preferred over a confirmation dialog for reversible (L1) actions.\n\t */\n\t#showUndoToast(message: string): void {\n\t\tif (!this.#agent.undoLastAction) return\n\t\tthis.#clearToast()\n\n\t\tconst toast = document.createElement('div')\n\t\ttoast.className = styles.toast\n\t\ttoast.setAttribute('role', 'status')\n\t\ttoast.innerHTML =\n\t\t\t`<span class=\"${styles.toastIcon}\">${PanelIcons.undo}</span>` +\n\t\t\t`<span class=\"${styles.toastText}\">${escapeHtml(message)}</span>` +\n\t\t\t`<button type=\"button\" class=\"${styles.toastAction}\">${escapeHtml(this.#i18n.t('ui.panel.undo'))}</button>` +\n\t\t\t`<button type=\"button\" class=\"${styles.toastClose}\" aria-label=\"${escapeHtml(this.#i18n.t('ui.panel.close'))}\">${PanelIcons.close}</button>`\n\t\tthis.#toastHost.appendChild(toast)\n\t\tthis.#toastTimer = setTimeout(() => this.#clearToast(), 5000)\n\n\t\ttoast.querySelector(`.${styles.toastAction}`)?.addEventListener('click', async (e) => {\n\t\t\te.stopPropagation()\n\t\t\tthis.#clearToast()\n\t\t\tconst result = await this.#agent.undoLastAction?.()\n\t\t\tif (result?.success) this.#showToastMessage(result.message)\n\t\t})\n\t\ttoast.querySelector(`.${styles.toastClose}`)?.addEventListener('click', (e) => {\n\t\t\te.stopPropagation()\n\t\t\tthis.#clearToast()\n\t\t})\n\t}\n\n\t#showToastMessage(message: string): void {\n\t\tthis.#clearToast()\n\t\tconst toast = document.createElement('div')\n\t\ttoast.className = styles.toast\n\t\ttoast.setAttribute('role', 'status')\n\t\ttoast.innerHTML =\n\t\t\t`<span class=\"${styles.toastIcon}\">${PanelIcons.check}</span>` +\n\t\t\t`<span class=\"${styles.toastText}\">${escapeHtml(message)}</span>`\n\t\tthis.#toastHost.appendChild(toast)\n\t\tthis.#toastTimer = setTimeout(() => this.#clearToast(), 3200)\n\t}\n\n\t/** Live activity row pinned to the bottom of the history list. */\n\t#renderActivity(): void {\n\t\tlet row = this.#historySection.querySelector<HTMLElement>('[data-activity-row]')\n\t\tif (this.#agent.status !== 'running') {\n\t\t\trow?.remove()\n\t\t\treturn\n\t\t}\n\n\t\tconst text = this.#getActivityText()\n\t\tif (!row) {\n\t\t\trow = document.createElement('div')\n\t\t\trow.className = styles.activityRow\n\t\t\trow.setAttribute('data-activity-row', 'true')\n\t\t\trow.innerHTML =\n\t\t\t\t`<span class=\"${styles.activityDots}\"><i></i><i></i><i></i></span>` +\n\t\t\t\t`<span class=\"${styles.activityText}\"></span>`\n\t\t\tthis.#historySection.appendChild(row)\n\t\t}\n\n\t\tconst textEl = row.querySelector<HTMLElement>(`.${styles.activityText}`)\n\t\tif (textEl && textEl.textContent !== text) textEl.textContent = text\n\n\t\tconst distanceToBottom =\n\t\t\tthis.#historySection.scrollHeight -\n\t\t\tthis.#historySection.scrollTop -\n\t\t\tthis.#historySection.clientHeight\n\t\tif (distanceToBottom < 48) this.#scrollToBottom()\n\t}\n\n\t#getActivityText(): string {\n\t\tconst activity = this.#lastActivity\n\t\tif (!activity) return this.#i18n.t('ui.panel.thinking')\n\t\tswitch (activity.type) {\n\t\t\tcase 'thinking':\n\t\t\t\treturn this.#i18n.t('ui.panel.thinking')\n\t\t\tcase 'executing':\n\t\t\t\treturn this.#getToolExecutingText(activity.tool, activity.input)\n\t\t\tcase 'executed':\n\t\t\t\treturn truncate(activity.output, 80) || this.#i18n.t('ui.panel.thinking')\n\t\t\tcase 'retrying':\n\t\t\t\treturn `Retrying (${activity.attempt}/${activity.maxAttempts})`\n\t\t\tcase 'error':\n\t\t\t\treturn truncate(activity.message, 120)\n\t\t\tdefault:\n\t\t\t\treturn this.#i18n.t('ui.panel.thinking')\n\t\t}\n\t}\n\n\t/** Add copy buttons to rendered code blocks. */\n\t#decorateCodeBlocks(): void {\n\t\tthis.#historySection.querySelectorAll('pre').forEach((pre) => {\n\t\t\tif (pre.querySelector(`.${styles.codeCopy}`)) return\n\t\t\tconst button = document.createElement('button')\n\t\t\tbutton.type = 'button'\n\t\t\tbutton.className = styles.codeCopy\n\t\t\tbutton.title = this.#i18n.t('ui.panel.copy')\n\t\t\tbutton.innerHTML = PanelIcons.copy\n\t\t\tbutton.addEventListener('click', (event) => {\n\t\t\t\tevent.stopPropagation()\n\t\t\t\tconst code = pre.querySelector('code')?.textContent ?? pre.textContent ?? ''\n\t\t\t\tconst copied = navigator.clipboard?.writeText(code)\n\t\t\t\tif (!copied) return\n\t\t\t\tvoid copied\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\tbutton.classList.add(styles.codeCopied)\n\t\t\t\t\t\tbutton.innerHTML = PanelIcons.check\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tbutton.classList.remove(styles.codeCopied)\n\t\t\t\t\t\t\tbutton.innerHTML = PanelIcons.copy\n\t\t\t\t\t\t}, 1200)\n\t\t\t\t\t})\n\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\t// Clipboard can be blocked by permissions; fail silently.\n\t\t\t\t\t})\n\t\t\t})\n\t\t\tpre.appendChild(button)\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.#clearApproval()\n\t\tthis.#lastActivity = null\n\t\tthis.#renderedTask = null\n\t\tthis.#renderedHistoryRef = null\n\t\tthis.#renderedEventCount = 0\n\t\tthis.#userOpenedSteps.clear()\n\t\tthis.#userClosedSteps.clear()\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.#clearApproval()\n\t\tthis.#clearToast()\n\t\tdocument.removeEventListener('keydown', this.#onGateKeydown)\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, hide when idle\n\t */\n\t#handleActionButton(): void {\n\t\tif (this.#agent.status === 'running') {\n\t\t\tthis.#clearApproval()\n\t\t\tvoid this.#agent.stop()\n\t\t} else {\n\t\t\tthis.hide()\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\t\tthis.#hideResumeBar()\n\n\t\tif (this.#isWaitingForUserAnswer) {\n\t\t\t// Handle user input mode\n\t\t\tthis.#handleUserAnswer(input)\n\t\t\treturn\n\t\t}\n\n\t\t// Nothing may leak from a previous run into a new one: a stale gate would\n\t\t// block the loop forever, and a stale question flag would swallow the task\n\t\t// text as an answer.\n\t\tif (this.#agent.status !== 'running') {\n\t\t\tthis.#clearApproval()\n\t\t\tthis.#isWaitingForUserAnswer = false\n\t\t\tthis.#userAnswerResolver = null\n\t\t}\n\t\t// Batch authorizations are scoped to a single task.\n\t\tthis.#approvedTools.clear()\n\t\tthis.#riskByStep.clear()\n\n\t\t// Never let a rejected execute() strand the panel: surface it and restore\n\t\t// the composer so the user can retry.\n\t\tvoid this.#agent.execute(input).catch((error: unknown) => {\n\t\t\tthis.#handleExecuteError(error)\n\t\t})\n\t}\n\n\t/** Recover the composer when a task could not be started. */\n\t#handleExecuteError(error: unknown): void {\n\t\tconst message = error instanceof Error ? error.message : String(error)\n\t\tthis.#pendingHeaderText = message\n\t\tthis.#updateStatusIndicator('error')\n\t\tthis.#showInputArea(this.#getTaskInputPlaceholder())\n\t\tthis.#showToastMessage(message)\n\t\tthis.#syncResumeBar()\n\t}\n\n\t/**\n\t * Resume the interrupted run instead of starting over.\n\t * Keeps the agent's history so the model continues the same chain.\n\t */\n\t#resumeTask(): void {\n\t\tconst task = this.#agent.task\n\t\tif (!task || this.#agent.status === 'running') return\n\n\t\tthis.#hideResumeBar()\n\t\tthis.#hideInputArea()\n\t\tthis.#clearApproval()\n\t\tthis.#isWaitingForUserAnswer = false\n\t\tthis.#userAnswerResolver = null\n\t\tthis.#approvedTools.clear()\n\n\t\tvoid this.#agent\n\t\t\t.execute(task, { resume: true })\n\t\t\t.catch((error: unknown) => this.#handleExecuteError(error))\n\t}\n\n\t#hideResumeBar(): void {\n\t\tthis.#resumeBar?.classList.add(styles.hidden)\n\t}\n\n\t/** Offer \"resume\" only when a run was interrupted with history behind it. */\n\t#syncResumeBar(): void {\n\t\tif (!this.#resumeBar) return\n\t\tconst status = this.#agent.status\n\t\tconst canResume =\n\t\t\t(status === 'stopped' || status === 'error') &&\n\t\t\tthis.#agent.history.length > 0 &&\n\t\t\t!!this.#agent.task &&\n\t\t\t!this.#isWaitingForUserAnswer\n\t\tthis.#resumeBar.classList.toggle(styles.hidden, !canResume)\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\tthis.#syncSendButton()\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#syncSendButton(): void {\n\t\tconst hasText = this.#taskInput.value.trim().length > 0\n\t\tthis.#sendBtn.classList.toggle(styles.sendBtnDisabled, !hasText)\n\t\tthis.#sendBtn.toggleAttribute('disabled', !hasText)\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} ${styles.emptyState}\">\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}\">${CardIcons.think}</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<button type=\"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 type=\"button\" class=\"${styles.controlButton} ${styles.settingsBtn}\" title=\"${this.#i18n.t('ui.settings.title')}\" aria-label=\"${this.#i18n.t('ui.settings.title')}\">\n\t\t\t\t\t\t\t${PanelIcons.settings}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<button type=\"button\" class=\"${styles.controlButton} ${styles.stopButton}\" title=\"${this.#i18n.t('ui.panel.close')}\" aria-label=\"${this.#i18n.t('ui.panel.close')}\">\n\t\t\t\t\t\t\t${PanelIcons.close}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\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<div class=\"${styles.settingsHeading}\">\n\t\t\t\t\t\t\t<span class=\"${styles.settingsTitle}\">${this.#i18n.t('ui.settings.title')}</span>\n\t\t\t\t\t\t\t<span class=\"${styles.settingsSubtitle}\">${this.#i18n.t('ui.settings.subtitle')}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<button type=\"button\" class=\"${styles.settingsCloseBtn}\" aria-label=\"${this.#i18n.t('ui.panel.close')}\">${PanelIcons.close}</button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"${styles.settingsBody}\">\n\t\t\t\t\t\t<nav class=\"${styles.settingsNav}\">\n\t\t\t\t\t\t\t<button type=\"button\" class=\"${styles.tabBtn} ${styles.tabActive}\" data-tab=\"0\">\n\t\t\t\t\t\t\t\t<span class=\"${styles.navIcon}\">${PanelIcons.providers}</span>\n\t\t\t\t\t\t\t\t<span class=\"${styles.navLabel}\">${this.#i18n.t('ui.settings.navProviders')}</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t<button type=\"button\" class=\"${styles.tabBtn}\" data-tab=\"1\">\n\t\t\t\t\t\t\t\t<span class=\"${styles.navIcon}\">${PanelIcons.agent}</span>\n\t\t\t\t\t\t\t\t<span class=\"${styles.navLabel}\">${this.#i18n.t('ui.settings.navAgent')}</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t<button type=\"button\" class=\"${styles.tabBtn}\" data-tab=\"2\">\n\t\t\t\t\t\t\t\t<span class=\"${styles.navIcon}\">${PanelIcons.skills}</span>\n\t\t\t\t\t\t\t\t<span class=\"${styles.navLabel}\">${this.#i18n.t('ui.settings.navSkills')}</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t<button type=\"button\" class=\"${styles.tabBtn}\" data-tab=\"3\">\n\t\t\t\t\t\t\t\t<span class=\"${styles.navIcon}\">${PanelIcons.safety}</span>\n\t\t\t\t\t\t\t\t<span class=\"${styles.navLabel}\">${this.#i18n.t('ui.settings.navSafety')}</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</nav>\n\t\t\t\t\t\t<div class=\"${styles.tabContent}\">\n\t\t\t\t\t\t\t<div class=\"${styles.tabPanel} ${styles.tabPanelActive}\" data-tab-panel=\"0\"></div>\n\t\t\t\t\t\t\t<div class=\"${styles.tabPanel}\" data-tab-panel=\"1\"></div>\n\t\t\t\t\t\t\t<div class=\"${styles.tabPanel}\" data-tab-panel=\"2\"></div>\n\t\t\t\t\t\t\t<div class=\"${styles.tabPanel}\" data-tab-panel=\"3\"></div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"${styles.settingsFooter}\">\n\t\t\t\t\t\t<span class=\"${styles.settingsFooterHint}\">${this.#i18n.t('ui.settings.autoSave')}</span>\n\t\t\t\t\t\t<button type=\"button\" class=\"${styles.settingsDoneBtn}\">${this.#i18n.t('ui.settings.done')}</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"${styles.toastHost}\" data-toast-host aria-live=\"polite\"></div>\n\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<div class=\"${styles.resumeBar} ${styles.hidden}\" data-resume-bar>\n\t\t\t\t\t\t\t<span class=\"${styles.resumeIcon}\">${PanelIcons.resume}</span>\n\t\t\t\t\t\t\t<span class=\"${styles.resumeText}\">\n\t\t\t\t\t\t\t\t<span class=\"${styles.resumeTitle}\">${this.#i18n.t('ui.panel.resumeTitle')}</span>\n\t\t\t\t\t\t\t\t<span class=\"${styles.resumeHint}\">${this.#i18n.t('ui.panel.resumeHint')}</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<button type=\"button\" class=\"${styles.resumeBtn}\" data-resume-task>\n\t\t\t\t\t\t\t\t${this.#i18n.t('ui.panel.resumeAction')}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\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 type=\"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}\">${PanelIcons.chevron}</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<div class=\"${styles.composerActions}\">\n\t\t\t\t\t\t\t<div class=\"${styles.modeControl}\">\n\t\t\t\t\t\t\t\t<button type=\"button\" class=\"${styles.modeChip}\" aria-haspopup=\"listbox\" aria-expanded=\"false\"></button>\n\t\t\t\t\t\t\t\t<div class=\"${styles.modePopover} ${styles.hidden}\" role=\"listbox\" aria-label=\"${this.#i18n.t('ui.panel.interactionMode')}\">\n\t\t\t\t\t\t\t\t\t<button type=\"button\" class=\"${styles.modeOption}\" data-mode=\"autopilot\" role=\"option\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"${styles.modeOptionIcon}\">${PanelIcons.autopilot}</span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"${styles.modeOptionText}\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"${styles.modeOptionTitle}\">${this.#i18n.t('ui.panel.autopilot')}</span>\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"${styles.modeOptionDesc}\">${this.#i18n.t('ui.panel.autopilotHint')}</span>\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"${styles.modeOptionCheck}\">${PanelIcons.check}</span>\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t<button type=\"button\" class=\"${styles.modeOption}\" data-mode=\"copilot\" role=\"option\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"${styles.modeOptionIcon}\">${PanelIcons.collaborative}</span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"${styles.modeOptionText}\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"${styles.modeOptionTitle}\">${this.#i18n.t('ui.panel.copilot')}</span>\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"${styles.modeOptionDesc}\">${this.#i18n.t('ui.panel.copilotHint')}</span>\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"${styles.modeOptionCheck}\">${PanelIcons.check}</span>\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t<button type=\"button\" class=\"${styles.modeOption}\" data-mode=\"step\" role=\"option\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"${styles.modeOptionIcon}\">${PanelIcons.step}</span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"${styles.modeOptionText}\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"${styles.modeOptionTitle}\">${this.#i18n.t('ui.panel.stepMode')}</span>\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"${styles.modeOptionDesc}\">${this.#i18n.t('ui.panel.stepModeHint')}</span>\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"${styles.modeOptionCheck}\">${PanelIcons.check}</span>\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<button type=\"button\" class=\"${styles.newConversationBtn}\" title=\"${this.#i18n.t('ui.panel.newConversation')}\" aria-label=\"${this.#i18n.t('ui.panel.newConversation')}\">${PanelIcons.plus}</button>\n\t\t\t\t\t\t\t<button type=\"button\" class=\"${styles.sendBtn}\" title=\"${this.#i18n.t('ui.panel.send')}\" aria-label=\"${this.#i18n.t('ui.panel.send')}\">${PanelIcons.send}</button>\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`\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// Send button in the composer\n\t\tthis.#sendBtn.addEventListener('click', (e) => {\n\t\t\te.stopPropagation()\n\t\t\tthis.#submitTask()\n\t\t})\n\t\t// Resume the interrupted run (keeps the previous reasoning chain)\n\t\tthis.#resumeBar.querySelector('[data-resume-task]')?.addEventListener('click', (e) => {\n\t\t\te.stopPropagation()\n\t\t\tthis.#resumeTask()\n\t\t})\n\t\tthis.#taskInput.addEventListener('input', () => this.#syncSendButton())\n\n\t\t// Interaction mode picker\n\t\tthis.#modeChip.addEventListener('click', (e) => {\n\t\t\te.stopPropagation()\n\t\t\tthis.#toggleModePopover()\n\t\t})\n\t\tthis.#modePopover.querySelectorAll('[data-mode]').forEach((option) => {\n\t\t\toption.addEventListener('click', (e) => {\n\t\t\t\te.stopPropagation()\n\t\t\t\tconst mode = option.getAttribute('data-mode') as InteractionMode\n\t\t\t\tthis.setInteractionMode(mode)\n\t\t\t\tthis.#closeModePopover()\n\t\t\t\tthis.#taskInput.focus()\n\t\t\t})\n\t\t})\n\n\t\t// Settings navigation + footer (static markup: wire once)\n\t\tthis.#settingsSection\n\t\t\t.querySelector('.' + styles.settingsCloseBtn)\n\t\t\t?.addEventListener('click', () => this.#toggleSettings())\n\t\tthis.#settingsSection\n\t\t\t.querySelector('.' + styles.settingsDoneBtn)\n\t\t\t?.addEventListener('click', () => this.#toggleSettings())\n\t\tthis.#settingsTabBtns = Array.from(\n\t\t\tthis.#settingsSection.querySelectorAll('.' + styles.tabBtn)\n\t\t) as HTMLElement[]\n\t\tthis.#settingsTabBtns.forEach((btn) => {\n\t\t\tbtn.addEventListener('click', () => {\n\t\t\t\tconst tabIdx = parseInt(btn.getAttribute('data-tab') || '0', 10)\n\t\t\t\tthis.#switchSettingsTab(tabIdx)\n\t\t\t})\n\t\t})\n\n\t\t// Risk-tiered approval actions (delegated: cards are re-rendered)\n\t\tthis.#historySection.addEventListener('click', (e) => {\n\t\t\tconst action = (e.target as HTMLElement)\n\t\t\t\t.closest('[data-approval]')\n\t\t\t\t?.getAttribute('data-approval')\n\t\t\tif (!action) return\n\t\t\te.preventDefault()\n\t\t\te.stopPropagation()\n\t\t\tswitch (action) {\n\t\t\t\tcase 'allow':\n\t\t\t\t\tthis.#finishGate('allow')\n\t\t\t\t\tbreak\n\t\t\t\tcase 'block':\n\t\t\t\t\tthis.#finishGate('block')\n\t\t\t\t\tbreak\n\t\t\t\tcase 'batch':\n\t\t\t\t\tthis.#approveGateForTask()\n\t\t\t\t\tbreak\n\t\t\t\tcase 'auto':\n\t\t\t\t\tthis.setInteractionMode('autopilot')\n\t\t\t\t\tthis.#finishGate('allow')\n\t\t\t\t\tbreak\n\t\t\t\tcase 'deny':\n\t\t\t\t\tthis.#finishGate('deny')\n\t\t\t\t\tbreak\n\t\t\t}\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\t// Re-sync the token with the clamped rendered width so the floating\n\t\t// bar and the history/input surfaces keep equal left/right insets.\n\t\tconst actualWidth = this.#wrapper.offsetWidth\n\t\tthis.#wrapper.style.width = `${actualWidth}px`\n\t\tthis.#wrapper.style.setProperty('--width', `${actualWidth}px`)\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.classList.add(styles.controlButtonActive)\n\t\t\tthis.wrapper.classList.add(styles.settingsOpen)\n\t\t\tthis.#closeModePopover()\n\t\t} else {\n\t\t\tthis.#settingsSection.classList.add(styles.hidden)\n\t\t\tthis.#settingsBtn.classList.remove(styles.controlButtonActive)\n\t\t\tthis.wrapper.classList.remove(styles.settingsOpen)\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\tthis.#buildPolicyTab()\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\tconst presets = PROVIDER_PRESETS.map(\n\t\t\t\t(preset) =>\n\t\t\t\t\t`<button type=\"button\" class=\"${styles.presetBtn}\" data-action=\"preset\" data-preset=\"${preset.id}\">` +\n\t\t\t\t\t`<span class=\"${styles.presetName}\">${escapeHtml(preset.name)}</span>` +\n\t\t\t\t\t`<span class=\"${styles.presetMeta}\">${escapeHtml(preset.models[0] || '')}</span>` +\n\t\t\t\t\t`</button>`\n\t\t\t).join('')\n\n\t\t\thtml +=\n\t\t\t\t`<div class=\"${styles.quickStart}\">` +\n\t\t\t\t`<div class=\"${styles.quickStartTitle}\">${i18n.t('ui.settings.quickStart')}</div>` +\n\t\t\t\t`<div class=\"${styles.quickStartHint}\">${i18n.t('ui.settings.quickStartHint')}</div>` +\n\t\t\t\t`<div class=\"${styles.presetGrid}\">${presets}</div>` +\n\t\t\t\t`</div>` +\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\ti18n.t('ui.settings.modelsCount', { n: modelCount }) +\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// Apply a one-click provider preset\n\t\tpanelEl.querySelectorAll('[data-action=\"preset\"]').forEach((btn) => {\n\t\t\tbtn.addEventListener('click', () => {\n\t\t\t\tconst preset = PROVIDER_PRESETS.find((p) => p.id === btn.getAttribute('data-preset'))\n\t\t\t\tif (!preset) return\n\t\t\t\tthis.#syncSettingsFromForm(settings)\n\t\t\t\tconst newId = generateId('provider')\n\t\t\t\tsettings.providers.push({\n\t\t\t\t\tid: newId,\n\t\t\t\t\tname: preset.name,\n\t\t\t\t\tbaseURL: preset.baseURL,\n\t\t\t\t\tapiFormat: preset.apiFormat,\n\t\t\t\t\tapiKey: '',\n\t\t\t\t\tmodels: preset.models.map((name) => ({ name })),\n\t\t\t\t\tenabled: true,\n\t\t\t\t})\n\t\t\t\tthis.#selectProvider(settings, newId)\n\t\t\t\tthis.#saveSettingsToStorage(settings)\n\t\t\t\tthis.#modelSwitcher.render(settings)\n\t\t\t\tthis.#expandedProviderIds.add(newId)\n\t\t\t\tthis.#buildProvidersTab(settings, newId)\n\t\t\t\t// Jump straight to the only remaining action: the API key.\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tconst keyInput = this.#settingsSection.querySelector<HTMLInputElement>(\n\t\t\t\t\t\t'[data-provider-field=\"apiKey\"]'\n\t\t\t\t\t)\n\t\t\t\t\tkeyInput?.focus()\n\t\t\t\t}, 0)\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// ========== Approval policy tab ==========\n\n\t/**\n\t * Authorization granularity settings: pick a risk threshold instead of\n\t * \"confirm everything\" or \"confirm nothing\".\n\t */\n\t#buildPolicyTab(): void {\n\t\tconst panelEl = this.#settingsSection.querySelector('[data-tab-panel=\"3\"]')\n\t\tif (!panelEl) return\n\n\t\tconst i18n = this.#i18n\n\t\tconst mode = this.#interactionMode\n\n\t\tconst option = (value: InteractionMode, icon: string, title: string, desc: string): string =>\n\t\t\t`<button type=\"button\" class=\"${styles.policyOption}${mode === value ? ` ${styles.policyOptionActive}` : ''}\" data-policy=\"${value}\" role=\"radio\" aria-checked=\"${mode === value}\">` +\n\t\t\t`<span class=\"${styles.policyIcon}\">${icon}</span>` +\n\t\t\t`<span class=\"${styles.policyText}\">` +\n\t\t\t`<span class=\"${styles.policyTitle}\">${escapeHtml(title)}</span>` +\n\t\t\t`<span class=\"${styles.policyDesc}\">${escapeHtml(desc)}</span>` +\n\t\t\t`</span>` +\n\t\t\t`<span class=\"${styles.policyCheck}\">${PanelIcons.check}</span>` +\n\t\t\t`</button>`\n\n\t\tconst levels: RiskLevel[] = ['L0', 'L1', 'L2', 'L3']\n\t\tconst descriptions: Record<RiskLevel, string> = {\n\t\t\tL0: i18n.t('ui.settings.riskL0Desc'),\n\t\t\tL1: i18n.t('ui.settings.riskL1Desc'),\n\t\t\tL2: i18n.t('ui.settings.riskL2Desc'),\n\t\t\tL3: i18n.t('ui.settings.riskL3Desc'),\n\t\t}\n\n\t\tlet html = ''\n\t\thtml += `<div class=\"${styles.formGroup}\">`\n\t\thtml += `<label class=\"${styles.formLabel}\">${i18n.t('ui.settings.safetyPolicy')}</label>`\n\t\thtml += `<div class=\"${styles.policyList}\" role=\"radiogroup\" aria-label=\"${i18n.t('ui.settings.safetyPolicy')}\">`\n\t\thtml += option(\n\t\t\t'autopilot',\n\t\t\tPanelIcons.autopilot,\n\t\t\ti18n.t('ui.panel.autopilot'),\n\t\t\ti18n.t('ui.panel.autopilotHint')\n\t\t)\n\t\thtml += option(\n\t\t\t'copilot',\n\t\t\tPanelIcons.collaborative,\n\t\t\ti18n.t('ui.panel.copilot'),\n\t\t\ti18n.t('ui.panel.copilotHint')\n\t\t)\n\t\thtml += option(\n\t\t\t'step',\n\t\t\tPanelIcons.step,\n\t\t\ti18n.t('ui.panel.stepMode'),\n\t\t\ti18n.t('ui.panel.stepModeHint')\n\t\t)\n\t\thtml += `</div>`\n\t\thtml += `<div class=\"${styles.formHint}\">${i18n.t('ui.settings.safetyPolicyHint')}</div>`\n\t\thtml += `</div>`\n\n\t\thtml += `<div class=\"${styles.formGroup}\">`\n\t\thtml += `<label class=\"${styles.checkboxRow}\">`\n\t\thtml += `<input type=\"checkbox\" data-policy-remember ${this.#rememberApprovals ? 'checked' : ''}>`\n\t\thtml += `<span>${i18n.t('ui.settings.safetyRemember')}</span>`\n\t\thtml += `</label>`\n\t\thtml += `<div class=\"${styles.formHint}\">${i18n.t('ui.settings.safetyRememberHint')}</div>`\n\t\thtml += `</div>`\n\n\t\thtml += `<div class=\"${styles.formGroup}\">`\n\t\thtml += `<label class=\"${styles.formLabel}\">${i18n.t('ui.settings.safetyMatrix')}</label>`\n\t\thtml += `<div class=\"${styles.riskMatrix}\">`\n\t\tfor (const level of levels) {\n\t\t\thtml +=\n\t\t\t\t`<div class=\"${styles.riskRow}\">` +\n\t\t\t\t`<span class=\"${styles.riskBadge}\" data-risk=\"${level}\">` +\n\t\t\t\t`<span class=\"${styles.riskBadgeLevel}\">${level}</span>` +\n\t\t\t\t`<span class=\"${styles.riskBadgeLabel}\">${escapeHtml(i18n.t(`ui.panel.risk.${level}` as Parameters<I18n['t']>[0]))}</span>` +\n\t\t\t\t`</span>` +\n\t\t\t\t`<span class=\"${styles.riskDesc}\">${escapeHtml(descriptions[level])}</span>` +\n\t\t\t\t`</div>`\n\t\t}\n\t\thtml += `</div>`\n\t\thtml += `<div class=\"${styles.formHint}\">${i18n.t('ui.settings.safetyNote')}</div>`\n\t\thtml += `</div>`\n\n\t\tpanelEl.innerHTML = html\n\n\t\tpanelEl.querySelectorAll<HTMLElement>('[data-policy]').forEach((btn) => {\n\t\t\tbtn.addEventListener('click', () => {\n\t\t\t\tconst value = btn.getAttribute('data-policy') as InteractionMode | null\n\t\t\t\tif (value) this.setInteractionMode(value)\n\t\t\t})\n\t\t})\n\n\t\tconst remember = panelEl.querySelector<HTMLInputElement>('[data-policy-remember]')\n\t\tremember?.addEventListener('change', () => {\n\t\t\tthis.#rememberApprovals = remember.checked\n\t\t\ttry {\n\t\t\t\tlocalStorage.setItem(Panel.#REMEMBER_STORAGE_KEY, String(this.#rememberApprovals))\n\t\t\t} catch {\n\t\t\t\t// ignore\n\t\t\t}\n\t\t})\n\t}\n\n\t/** Reflect a mode change in the policy tab without rebuilding it. */\n\t#renderPolicyTab(): void {\n\t\tconst panelEl = this.#settingsSection.querySelector('[data-tab-panel=\"3\"]')\n\t\tif (!panelEl) return\n\t\tpanelEl.querySelectorAll<HTMLElement>('[data-policy]').forEach((el) => {\n\t\t\tconst active = el.getAttribute('data-policy') === this.#interactionMode\n\t\t\tel.classList.toggle(styles.policyOptionActive, active)\n\t\t\tel.setAttribute('aria-checked', String(active))\n\t\t})\n\t}\n\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 PanelIcons.history\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 from agent.history.\n\t *\n\t * Uses an append-only fast path: agent history only grows during a run, so\n\t * rebuilding the whole list (which can grow to hundreds of KB) on every\n\t * change is both slow and visibly flickers. A full rebuild happens only\n\t * when the task or the history array identity changes.\n\t */\n\t#renderHistory(): void {\n\t\tconst task = this.#agent.task\n\t\tconst history = this.#agent.history\n\t\tconst scrollTop = this.#historySection.scrollTop\n\t\tconst distanceToBottom =\n\t\t\tthis.#historySection.scrollHeight - scrollTop - this.#historySection.clientHeight\n\t\tconst stickToBottom = distanceToBottom < 48\n\n\t\tconst sameRun = this.#renderedTask === task && this.#renderedHistoryRef === history\n\t\tconst isPrefixOnly = sameRun && history.length >= this.#renderedEventCount\n\n\t\t// Nothing new: only refresh transient rows.\n\t\tif (isPrefixOnly && history.length === this.#renderedEventCount) {\n\t\t\tthis.#renderActivity()\n\t\t\tif (this.#gateResolver) this.#renderApprovalCard()\n\t\t\treturn\n\t\t}\n\n\t\tif (isPrefixOnly) {\n\t\t\t// Append only the new events, keeping existing DOM (and scroll) intact.\n\t\t\tthis.#historySection.querySelector('[data-activity-row]')?.remove()\n\t\t\tthis.#removeApprovalCard()\n\n\t\t\tconst appended = history\n\t\t\t\t.slice(this.#renderedEventCount)\n\t\t\t\t.map((event) => this.#createHistoryCards(event).join(''))\n\t\t\t\t.join('')\n\t\t\tif (appended) this.#historySection.insertAdjacentHTML('beforeend', appended)\n\n\t\t\tthis.#renderedEventCount = history.length\n\t\t\tthis.#decorateCodeBlocks()\n\t\t\tthis.#decorateStepToggles()\n\t\t\tthis.#applyStepOpenState()\n\t\t\tthis.#renderActivity()\n\t\t\tif (this.#gateResolver) this.#renderApprovalCard()\n\t\t\tif (stickToBottom) this.#scrollToBottom()\n\t\t\treturn\n\t\t}\n\n\t\t// Full render path.\n\t\t// Preserve steps the user collapsed manually across re-renders.\n\t\tconst collapsedSteps = new Set(\n\t\t\tArray.from(\n\t\t\t\tthis.#historySection.querySelectorAll<HTMLDetailsElement>(\n\t\t\t\t\t'details[data-step-key]:not([open])'\n\t\t\t\t)\n\t\t\t).map((el) => el.getAttribute('data-step-key') || '')\n\t\t)\n\n\t\tconst items: string[] = []\n\n\t\t// 1. Task card (user message)\n\t\tif (task) {\n\t\t\titems.push(this.#createTaskCard(task))\n\t\t}\n\n\t\t// 2. Render each history event\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} ${styles.emptyState}\">` +\n\t\t\t\t\t`<div class=\"${styles.historyContent}\">` +\n\t\t\t\t\t`<span class=\"${styles.statusIcon}\">${CardIcons.think}</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\n\t\tthis.#historySection\n\t\t\t.querySelectorAll<HTMLDetailsElement>('details[data-step-key]')\n\t\t\t.forEach((el) => {\n\t\t\t\tif (collapsedSteps.has(el.getAttribute('data-step-key') || '')) el.open = false\n\t\t\t})\n\n\t\tthis.#renderedTask = task\n\t\tthis.#renderedHistoryRef = history\n\t\tthis.#renderedEventCount = history.length\n\n\t\tthis.#decorateCodeBlocks()\n\t\tthis.#decorateStepToggles()\n\t\tthis.#applyStepOpenState()\n\t\tthis.#renderActivity()\n\t\tif (this.#gateResolver) this.#renderApprovalCard()\n\n\t\tif (stickToBottom) {\n\t\t\tthis.#scrollToBottom()\n\t\t} else {\n\t\t\tthis.#historySection.scrollTop = scrollTop\n\t\t}\n\t}\n\n\t/** Track user-toggled steps so auto-collapse never fights the user. */\n\t#decorateStepToggles(): void {\n\t\tthis.#historySection.querySelectorAll('details[data-step-key] > summary').forEach((summary) => {\n\t\t\tif (summary.hasAttribute('data-toggle-wired')) return\n\t\t\tsummary.setAttribute('data-toggle-wired', 'true')\n\t\t\tsummary.addEventListener('click', () => {\n\t\t\t\tconst details = summary.parentElement as HTMLDetailsElement\n\t\t\t\tqueueMicrotask(() => {\n\t\t\t\t\tconst key = details.getAttribute('data-step-key') || ''\n\t\t\t\t\tif (!key) return\n\t\t\t\t\tif (details.open) {\n\t\t\t\t\t\tthis.#userClosedSteps.delete(key)\n\t\t\t\t\t\tthis.#userOpenedSteps.add(key)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.#userOpenedSteps.delete(key)\n\t\t\t\t\t\tthis.#userClosedSteps.add(key)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t}\n\n\t/**\n\t * Keep the chain compact: only the two newest steps stay expanded by\n\t * default. Older steps collapse unless the user opened them explicitly.\n\t */\n\t#applyStepOpenState(): void {\n\t\tconst groups = Array.from(\n\t\t\tthis.#historySection.querySelectorAll<HTMLDetailsElement>('details[data-step-key]')\n\t\t)\n\t\tif (groups.length === 0) return\n\n\t\tconst recent = new Set(\n\t\t\tgroups.slice(-2).map((group) => group.getAttribute('data-step-key') || '')\n\t\t)\n\n\t\tgroups.forEach((group) => {\n\t\t\tconst key = group.getAttribute('data-step-key') || ''\n\t\t\tif (this.#userOpenedSteps.has(key)) group.open = true\n\t\t\telse if (this.#userClosedSteps.has(key)) group.open = false\n\t\t\telse group.open = recent.has(key)\n\t\t})\n\t}\n\n\t#createTaskCard(task: string): string {\n\t\treturn createUserMessage(task, this.#i18n.t('ui.panel.you'), CardIcons.user)\n\t}\n\n\t/** Reflection of the immediately preceding step, if any. */\n\t#getPreviousReflection(\n\t\tstepIndex: number\n\t): { evaluation_previous_goal?: string; memory?: string; next_goal?: string } | undefined {\n\t\tfor (const event of this.#agent.history) {\n\t\t\tif (event.type === 'step' && event.stepIndex === stepIndex - 1) return event.reflection\n\t\t}\n\t\treturn undefined\n\t}\n\n\t/** Risk badge metadata for a step, only for committed/irreversible tiers. */\n\t#getStepRisk(stepIndex: number): { level: RiskLevel; label: string } | undefined {\n\t\tconst level = this.#riskByStep.get(stepIndex)\n\t\tif (!level || level === 'L0' || level === 'L1') return undefined\n\t\treturn {\n\t\t\tlevel,\n\t\t\tlabel: this.#i18n.t(`ui.panel.risk.${level}` as Parameters<I18n['t']>[0]),\n\t\t}\n\t}\n\n\t/** True when the goal is similar to at least two earlier steps (possible loop). */\n\t#isRepeatedGoal(stepIndex: number, goal: string): boolean {\n\t\tlet matches = 0\n\t\tfor (const event of this.#agent.history) {\n\t\t\tif (event.type !== 'step' || event.stepIndex === undefined) continue\n\t\t\tif (event.stepIndex >= stepIndex) continue\n\t\t\tconst previousGoal = event.reflection?.next_goal\n\t\t\tif (previousGoal && isSimilarText(previousGoal, goal)) matches++\n\t\t}\n\t\treturn matches >= 2\n\t}\n\n\t/** Create cards for a history event */\n\t#createHistoryCards(event: PanelAgentAdapter['history'][number]): string[] {\n\t\tconst cards: string[] = []\n\t\tconst stepIndex = event.type === 'step' ? event.stepIndex : undefined\n\n\t\tif (event.type === 'step') {\n\t\t\tconst stepCards: string[] = []\n\t\t\tconst usage = 'usage' in event ? event.usage : undefined\n\t\t\tconst usageMeta = buildUsageMeta(\n\t\t\t\tusage as\n\t\t\t\t\t| { promptTokens: number; completionTokens: number; totalTokens: number }\n\t\t\t\t\t| undefined,\n\t\t\t\tthis.#i18n.t('ui.panel.tokens')\n\t\t\t)\n\n\t\t\t// Reflection cards (indented). Lines that repeat the previous step are\n\t\t\t// collapsed to a short label instead of dumping the same long text.\n\t\t\tif (event.reflection) {\n\t\t\t\tconst previous = this.#getPreviousReflection(event.stepIndex ?? 0)\n\t\t\t\tconst lines = createReflectionLines(event.reflection).map((line) => {\n\t\t\t\t\tconst previousText = previous?.[line.key as keyof typeof previous]\n\t\t\t\t\tconst repeat =\n\t\t\t\t\t\ttypeof previousText === 'string' && isSimilarText(previousText, line.content)\n\t\t\t\t\treturn { ...line, repeat }\n\t\t\t\t})\n\t\t\t\tif (lines.length > 0) {\n\t\t\t\t\tconst allRepeat = lines.every((line) => line.repeat)\n\t\t\t\t\tstepCards.push(\n\t\t\t\t\t\tcreateReflectionCard({\n\t\t\t\t\t\t\tlines,\n\t\t\t\t\t\t\tphaseColor: PHASE_COLORS.think,\n\t\t\t\t\t\t\trepeatLabel: this.#i18n.t('ui.panel.sameAsPrevious'),\n\t\t\t\t\t\t\tcompactLabel: allRepeat ? this.#i18n.t('ui.panel.thinkingSameAsPrevious') : undefined,\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 result cards (full-width)\n\t\t\tif (event.action) {\n\t\t\t\tstepCards.push(...this.#createActionCards(event.action, stepIndex))\n\t\t\t}\n\n\t\t\t// Collapsible step group with a readable summary from next_goal\n\t\t\tconst risk = this.#getStepRisk(event.stepIndex ?? 0)\n\t\t\tcards.push(\n\t\t\t\tcreateStepGroup({\n\t\t\t\t\tstepIndex: event.stepIndex ?? 0,\n\t\t\t\t\tphase: event.reflection ? 'think' : 'act',\n\t\t\t\t\ttoolName: event.action?.name,\n\t\t\t\t\tusageMeta,\n\t\t\t\t\tsummary: event.reflection?.next_goal,\n\t\t\t\t\tphaseLabel: event.reflection ? this.#i18n.t('ui.panel.thinkingPhase') : undefined,\n\t\t\t\t\ticon: event.reflection ? CardIcons.think : this.#getToolIcon(event.action?.name),\n\t\t\t\t\trepeat:\n\t\t\t\t\t\tevent.reflection?.next_goal !== undefined &&\n\t\t\t\t\t\tthis.#isRepeatedGoal(event.stepIndex ?? 0, event.reflection.next_goal),\n\t\t\t\t\trepeatLabel: this.#i18n.t('ui.panel.repeatedStep'),\n\t\t\t\t\triskLevel: risk?.level,\n\t\t\t\t\triskLabel: risk?.label,\n\t\t\t\t\tbody: stepCards.join(''),\n\t\t\t\t\topen: true,\n\t\t\t\t})\n\t\t\t)\n\t\t} else if (event.type === 'observation') {\n\t\t\tcards.push(\n\t\t\t\tcreateCard({\n\t\t\t\t\ticon: this.#getObservationIcon(event.content || ''),\n\t\t\t\t\tcontent: event.content || '',\n\t\t\t\t\ttype: 'observation',\n\t\t\t\t})\n\t\t\t)\n\t\t} else if (event.type === 'user_takeover') {\n\t\t\tcards.push(createCard({ icon: CardIcons.user, content: 'User takeover', 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: CardIcons.retry, content: retryInfo, type: 'observation' }))\n\t\t} else if (event.type === 'error') {\n\t\t\tcards.push(\n\t\t\t\tcreateCard({\n\t\t\t\t\ticon: CardIcons.error,\n\t\t\t\t\tcontent:\n\t\t\t\t\t\tevent.message === 'Task aborted'\n\t\t\t\t\t\t\t? this.#i18n.t('ui.panel.taskAborted')\n\t\t\t\t\t\t\t: event.message || 'Error',\n\t\t\t\t\ttype: 'observation',\n\t\t\t\t})\n\t\t\t)\n\t\t}\n\n\t\treturn cards\n\t}\n\n\t/** Create cards for an action */\n\t#createActionCards(\n\t\taction: { name: string; input: unknown; output: string },\n\t\tstepIndex?: number\n\t): string[] {\n\t\tconst cards: string[] = []\n\t\tconst toolLabel = this.#getToolActionLabel(action.name)\n\n\t\tif (action.name === 'done') {\n\t\t\tconst input = action.input as { text?: string; success?: boolean }\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\tcreateAssistantMessage({\n\t\t\t\t\t\tcontent: text,\n\t\t\t\t\t\ttitle: toolLabel,\n\t\t\t\t\t\ticon: input.success === false ? CardIcons.error : CardIcons.done,\n\t\t\t\t\t\tauthorLabel: this.#i18n.t('ui.panel.agent'),\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\tcreateActionResultCard({\n\t\t\t\t\ticon: CardIcons.question,\n\t\t\t\t\tcontent: `Question: ${input.question || ''}`,\n\t\t\t\t\ttype: 'question',\n\t\t\t\t\ttitle: toolLabel,\n\t\t\t\t})\n\t\t\t)\n\t\t\tcards.push(\n\t\t\t\tcreateActionResultCard({\n\t\t\t\t\ticon: CardIcons.answer,\n\t\t\t\t\tcontent: `Answer: ${answer}`,\n\t\t\t\t\ttype: 'input',\n\t\t\t\t})\n\t\t\t)\n\t\t} else {\n\t\t\tconst toolText = this.#getToolDetailText(action.name, action.input)\n\t\t\tconst icon = this.#getToolIcon(action.name)\n\t\t\tconst output = action.output ?? ''\n\t\t\t// Keep one action = one card: fold short confirmations into the same\n\t\t\t// card. Long payloads (page dumps, script results) stay a second card.\n\t\t\tconst foldResult = output.length > 0 && output.length <= 200 && !output.includes('\\n')\n\n\t\t\tcards.push(\n\t\t\t\tcreateActionResultCard({\n\t\t\t\t\ticon,\n\t\t\t\t\tcontent: toolText,\n\t\t\t\t\ttitle: toolLabel,\n\t\t\t\t\tresult: foldResult ? output : undefined,\n\t\t\t\t})\n\t\t\t)\n\t\t\tif (output.length > 0 && !foldResult) {\n\t\t\t\tcards.push(\n\t\t\t\t\tcreateActionResultCard({\n\t\t\t\t\t\ticon,\n\t\t\t\t\t\tcontent: output,\n\t\t\t\t\t\ttype: 'output',\n\t\t\t\t\t\tmarkdown: false,\n\t\t\t\t\t\ttitle: toolLabel,\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/** Concise, past-tense argument summary for a completed action card. */\n\t#getToolDetailText(toolName: string, args: unknown): string {\n\t\tconst a = (args ?? {}) as Record<string, unknown>\n\t\tconst t = (key: string) => this.#i18n.t(key as Parameters<I18n['t']>[0])\n\t\tconst at = (index: unknown) => (typeof index === 'number' ? `[${index}]` : '')\n\t\tconst text = (value: unknown, max = 40) =>\n\t\t\ttruncate(typeof value === 'string' ? value : JSON.stringify(value ?? ''), max)\n\n\t\tswitch (toolName) {\n\t\t\tcase 'click_element_by_index':\n\t\t\t\treturn `${t('ui.tools.element')} ${at(a.index)}`.trim()\n\t\t\tcase 'input_text':\n\t\t\tcase 'select_dropdown_option':\n\t\t\t\treturn `${t('ui.tools.element')} ${at(a.index)} ← ${text(a.text)}`.trim()\n\t\t\tcase 'wait':\n\t\t\t\treturn `${text(a.seconds, 6)} s`\n\t\t\tcase 'scroll':\n\t\t\tcase 'scroll_horizontally':\n\t\t\t\treturn a.index !== undefined\n\t\t\t\t\t? `${t('ui.tools.element')} ${at(a.index)}`\n\t\t\t\t\t: t('ui.tools.scrollPage')\n\t\t\tcase 'read_page_content':\n\t\t\t\treturn a.selector ? text(a.selector, 40) : t('ui.tools.readWholePage')\n\t\t\tcase 'save_data':\n\t\t\t\treturn text(a.key, 40)\n\t\t\tcase 'execute_javascript':\n\t\t\t\treturn truncate((typeof a.script === 'string' ? a.script : '').split('\\n')[0], 60)\n\t\t\tdefault:\n\t\t\t\treturn ''\n\t\t}\n\t}\n\n\t/** Pick a glyph that matches what the observation actually says. */ #getObservationIcon(\n\t\tcontent: string\n\t): string {\n\t\tconst text = content.toLowerCase()\n\t\tif (/(navigated|navigation|url|https?:\\/\\/)/.test(text)) return CardIcons.navigation\n\t\tif (/(wait|waited|seconds|timeout)/.test(text)) return CardIcons.wait\n\t\tif (/(scroll)/.test(text)) return CardIcons.scroll\n\t\tif (/(saved|save_data)/.test(text)) return CardIcons.save\n\t\tif (/(read|content|text|markdown)/.test(text)) return CardIcons.read\n\t\tif (/(error|failed|fail)/.test(text)) return CardIcons.error\n\t\treturn CardIcons.info\n\t}\n\n\t/** Map a tool name to a clear, consistent glyph. */\n\t#getToolIcon(toolName?: string): string {\n\t\tswitch (toolName) {\n\t\t\tcase 'click_element_by_index':\n\t\t\t\treturn CardIcons.click\n\t\t\tcase 'input_text':\n\t\t\t\treturn CardIcons.input\n\t\t\tcase 'scroll':\n\t\t\t\treturn CardIcons.scroll\n\t\t\tcase 'wait':\n\t\t\t\treturn CardIcons.wait\n\t\t\tcase 'ask_user':\n\t\t\t\treturn CardIcons.question\n\t\t\tcase 'done':\n\t\t\t\treturn CardIcons.done\n\t\t\tcase 'read_page_content':\n\t\t\t\treturn CardIcons.read\n\t\t\tcase 'save_data':\n\t\t\t\treturn CardIcons.save\n\t\t\tcase 'navigate_page':\n\t\t\tcase 'open_page':\n\t\t\t\treturn CardIcons.navigate\n\t\t\tcase 'go_back':\n\t\t\t\treturn CardIcons.back\n\t\t\tcase 'go_forward':\n\t\t\t\treturn CardIcons.forward\n\t\t\tcase 'reload_page':\n\t\t\t\treturn CardIcons.reload\n\t\t\tcase 'hover_element':\n\t\t\t\treturn CardIcons.hover\n\t\t\tcase 'select_option':\n\t\t\tcase 'select_dropdown_option':\n\t\t\t\treturn CardIcons.select\n\t\t\tdefault:\n\t\t\t\treturn CardIcons.default\n\t\t}\n\t}\n\n\t/** Create a human-readable label for a tool/action name */\n\t#getToolActionLabel(toolName: string): string {\n\t\tconst labels: Record<string, string> = {\n\t\t\tread_page_content: '读取页面内容',\n\t\t\tclick_element_by_index: '点击元素',\n\t\t\tinput_text: '输入文本',\n\t\t\tscroll: '滚动页面',\n\t\t\twait: '等待',\n\t\t\tdone: '任务完成',\n\t\t\task_user: '询问用户',\n\t\t\tsave_data: '保存数据',\n\t\t\tnavigate_page: '页面导航',\n\t\t\topen_page: '打开页面',\n\t\t\thover_element: '悬停元素',\n\t\t\tselect_option: '选择选项',\n\t\t\tgo_back: '返回上页',\n\t\t\tgo_forward: '前进下页',\n\t\t\treload_page: '刷新页面',\n\t\t}\n\t\treturn labels[toolName] || toolName\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\tconst target = e.target as HTMLElement\n\t\tif (!target.closest(`.${styles.modeControl}`)) {\n\t\t\tthis.#closeModePopover()\n\t\t}\n\t\tif (!this.#isConversationDropdownOpen) return\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\t// Batch authorizations never outlive the task they were granted for.\n\t\tthis.#approvedTools.clear()\n\t\tthis.#riskByStep.clear()\n\t\tthis.#hideResumeBar()\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":[7,10,11],"mappings":"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"}
|