From bf79586d86383ea6686be44f57c717e23d769ae0 Mon Sep 17 00:00:00 2001 From: Tyson Thomas Date: Thu, 27 Nov 2025 08:19:24 -0800 Subject: [PATCH 1/7] wip: shadow dom fix --- .../ai_chat/ui/AgentSessionHeaderComponent.ts | 6 +- front_end/panels/ai_chat/ui/ChatView.ts | 13 ++-- .../ai_chat/ui/ConversationHistoryList.ts | 6 +- .../panels/ai_chat/ui/FileListDisplay.ts | 6 +- .../ai_chat/ui/LiveAgentSessionComponent.ts | 7 +- .../panels/ai_chat/ui/PromptEditDialog.ts | 53 +++++++++++--- .../panels/ai_chat/ui/TodoListDisplay.ts | 6 +- .../panels/ai_chat/ui/message/MessageList.ts | 69 ++++++++++--------- .../ai_chat/ui/version/VersionBanner.ts | 6 +- front_end/ui/legacy/GlassPane.ts | 2 +- 10 files changed, 116 insertions(+), 58 deletions(-) diff --git a/front_end/panels/ai_chat/ui/AgentSessionHeaderComponent.ts b/front_end/panels/ai_chat/ui/AgentSessionHeaderComponent.ts index a07150ddbb..f3cdd4b83a 100644 --- a/front_end/panels/ai_chat/ui/AgentSessionHeaderComponent.ts +++ b/front_end/panels/ai_chat/ui/AgentSessionHeaderComponent.ts @@ -14,7 +14,9 @@ export type SessionStatus = 'running' | 'completed' | 'error'; @customElement('agent-session-header') export class AgentSessionHeaderComponent extends HTMLElement { static readonly litTagName = Lit.StaticHtml.literal`agent-session-header`; - private readonly shadow = this.attachShadow({mode: 'open'}); + // Use Light DOM + // private readonly shadow = this.attachShadow({mode: 'open'}); + private readonly shadow = this; private session: AgentSession | null = null; private isExpanded = true; @@ -80,7 +82,7 @@ export class AgentSessionHeaderComponent extends HTMLElement { Lit.render(html` `; + // Build a set of nested child session IDs present in the current message set. // Include both nestedSessions[].sessionId and any handoff anchors in messages that // have a concrete nestedSessionId (ignore pending-* placeholders). Also build @@ -865,6 +866,7 @@ export class ChatView extends HTMLElement { const suggestions = this.#renderExampleSuggestions(); Lit.render(html` + ${stylesTemplate}
${this.#renderVersionBanner()}
@@ -886,6 +888,7 @@ export class ChatView extends HTMLElement { } else { // Render normal expanded view for conversation Lit.render(html` + ${stylesTemplate}
${this.#renderVersionBanner()} diff --git a/front_end/panels/ai_chat/ui/ConversationHistoryList.ts b/front_end/panels/ai_chat/ui/ConversationHistoryList.ts index e50098ab0b..962c0b9d49 100644 --- a/front_end/panels/ai_chat/ui/ConversationHistoryList.ts +++ b/front_end/panels/ai_chat/ui/ConversationHistoryList.ts @@ -18,7 +18,9 @@ const {unsafeHTML} = Directives; */ export class ConversationHistoryList extends HTMLElement { static readonly litTagName = Lit.StaticHtml.literal`ai-conversation-history-list`; - readonly #shadow = this.attachShadow({mode: 'open'}); + // Use Light DOM + // readonly #shadow = this.attachShadow({mode: 'open'}); + readonly #shadow = this; readonly #boundRender = this.#render.bind(this); #conversations: ConversationMetadata[] = []; @@ -119,7 +121,7 @@ export class ConversationHistoryList extends HTMLElement { Lit.render( html`
diff --git a/front_end/panels/ai_chat/ui/FileListDisplay.ts b/front_end/panels/ai_chat/ui/FileListDisplay.ts index 84701931d0..21cbdd5aaf 100644 --- a/front_end/panels/ai_chat/ui/FileListDisplay.ts +++ b/front_end/panels/ai_chat/ui/FileListDisplay.ts @@ -17,7 +17,9 @@ const {html, nothing} = Lit; */ export class FileListDisplay extends HTMLElement { static readonly litTagName = Lit.StaticHtml.literal`ai-file-list-display`; - readonly #shadow = this.attachShadow({mode: 'open'}); + // Use Light DOM + // readonly #shadow = this.attachShadow({mode: 'open'}); + readonly #shadow = this; readonly #boundRender = this.#render.bind(this); #files: FileSummary[] = []; @@ -212,7 +214,7 @@ export class FileListDisplay extends HTMLElement { Lit.render(html` -
- -
- `, this.#shadow, {host: this}); + ai-message-list::-webkit-scrollbar { width: 4px; } + ai-message-list::-webkit-scrollbar-track { background: transparent; } + ai-message-list::-webkit-scrollbar-thumb { background-color: var(--color-scrollbar); border-radius: 4px; } + `; + this.prepend(style); + } } } diff --git a/front_end/panels/ai_chat/ui/version/VersionBanner.ts b/front_end/panels/ai_chat/ui/version/VersionBanner.ts index 52bf18a2d1..e025f989dd 100644 --- a/front_end/panels/ai_chat/ui/version/VersionBanner.ts +++ b/front_end/panels/ai_chat/ui/version/VersionBanner.ts @@ -12,7 +12,9 @@ export interface VersionInfo { latestVersion: string; releaseUrl: string; isUpda @customElement('ai-version-banner') export class VersionBanner extends HTMLElement { static readonly litTagName = Lit.StaticHtml.literal`ai-version-banner`; - readonly #shadow = this.attachShadow({mode: 'open'}); + // Use Light DOM + // readonly #shadow = this.attachShadow({mode: 'open'}); + readonly #shadow = this; // Manual properties #info: VersionInfo | null = null; @@ -32,7 +34,7 @@ export class VersionBanner extends HTMLElement { const info = this.#info; Lit.render(html` + + + `, this, {host: this}); + } +} + +declare global { + interface HTMLElementTagNameMap { 'ai-agent-dropdown': AgentDropdown; } +} diff --git a/front_end/panels/ai_chat/ui/ChatView.ts b/front_end/panels/ai_chat/ui/ChatView.ts index d1b3b8ab36..f66535f15d 100644 --- a/front_end/panels/ai_chat/ui/ChatView.ts +++ b/front_end/panels/ai_chat/ui/ChatView.ts @@ -29,6 +29,7 @@ import './model_selector/ModelSelector.js'; import { combineMessages } from './message/MessageCombiner.js'; import './TodoListDisplay.js'; import './FileListDisplay.js'; +import './SidebarNav.js'; // Shared chat types import type { ChatMessage, ModelChatMessage, ToolResultMessage, AgentSessionMessage, ImageInputData } from '../models/ChatTypes.js'; @@ -120,7 +121,7 @@ export const EXAMPLE_PROMPTS = { } }, SUMMARIZE_NEWS: { - displayText: '📰 Summarize today\'s news', + displayText: 'Summarize today\'s news', promptText: 'Summarize today\'s top news stories across different categories', agentType: BaseOrchestratorAgent.BaseOrchestratorAgentType.DEEP_RESEARCH, modelPreferences: { @@ -131,6 +132,22 @@ export const EXAMPLE_PROMPTS = { } } }, + FIND_AND_COMPARE_PRICES: { + displayText: 'Find and compare prices', + promptText: 'Find and compare prices for the products I am looking at. Provide a concise comparison.' + }, + TRENDING_TOPICS: { + displayText: 'Trending topics', + promptText: 'What are the trending topics right now? Provide a short list with a one-line summary each.' + }, + RESEARCH_SUMMARY: { + displayText: 'Research and create a summary', + promptText: 'Research this topic and create a concise summary with key takeaways.' + }, + FIND_BEST_DEALS: { + displayText: 'Find the best deals', + promptText: 'Find the best deals available for this request and provide links.' + }, SUMMARIZE_PAGE: { displayText: 'Summarize this page' // No agentType - uses default, no model preferences @@ -228,6 +245,8 @@ export class ChatView extends HTMLElement { // Add version info state #versionInfo: VersionInfo | null = null; #isVersionBannerDismissed = false; + #showConnectorsDropdown = false; + #connectorsDropdownPosition?: {left: string; bottom: string}; connectedCallback(): void { // Initialize the prompt button click handler @@ -238,6 +257,9 @@ export class ChatView extends HTMLElement { // Attach URL listener only when in new-chat state this.#updateUrlListener(); + + // Listen for connectors dropdown toggle events + this.addEventListener('toggle-connectors-dropdown', this.#handleToggleConnectorsDropdown.bind(this)); void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender); } @@ -823,26 +845,45 @@ export class ChatView extends HTMLElement { // Determine which view to render based on the first message state if (this.#isFirstMessageView) { // Render centered first message view - const welcomeMessage = this.#messages.length > 0 ? this.#messages[0] : null; - const suggestions = this.#renderExampleSuggestions(); Lit.render(html` ${stylesTemplate}
- ${this.#renderVersionBanner()} -
- ${welcomeMessage ? this.#renderMessage(welcomeMessage, 0) : Lit.nothing} - - ${suggestions} - - ${this.#showOAuthLogin ? html` - - ` : this.#renderInputBar(true)} + +
+ ${this.#renderVersionBanner()} +
+
+
+ + +
+
+ +
+
How can I help you today?
+
+ + ${this.#showOAuthLogin ? html` + + ` : this.#renderInputBar(true)} + + ${suggestions} +
`, this.#shadow, {host: this}); @@ -851,48 +892,50 @@ export class ChatView extends HTMLElement { Lit.render(html` ${stylesTemplate}
- ${this.#renderVersionBanner()} - - ${Lit.Directives.repeat( - combinedMessages || [], - (m, i) => this.#messageKey(m, i), - (m, i) => this.#renderMessage(m, i) - )} - - ${showGeneralLoading ? html` -
-
-
- - - - - + +
+ ${this.#renderVersionBanner()} + + ${Lit.Directives.repeat( + combinedMessages || [], + (m, i) => this.#messageKey(m, i), + (m, i) => this.#renderMessage(m, i) + )} + + ${showGeneralLoading ? html` +
+
+
+ + + + + +
-
- ` : Lit.nothing} - - - ${showActionsRow ? renderGlobalActionsRow({ - textToCopy: lastModelAnswer || '', - onCopy: () => this.#copyToClipboard(lastModelAnswer || ''), - onThumbsUp: () => this.dispatchEvent(new CustomEvent('feedback', { bubbles: true, detail: { value: 'up' } })), - onThumbsDown: () => this.dispatchEvent(new CustomEvent('feedback', { bubbles: true, detail: { value: 'down' } })), - onRetry: () => this.dispatchEvent(new CustomEvent('retry', { bubbles: true })) - }) : Lit.nothing} - - - - ${this.#renderInputBar(false)} - + ` : Lit.nothing} + + + ${showActionsRow ? renderGlobalActionsRow({ + textToCopy: lastModelAnswer || '', + onCopy: () => this.#copyToClipboard(lastModelAnswer || ''), + onThumbsUp: () => this.dispatchEvent(new CustomEvent('feedback', { bubbles: true, detail: { value: 'up' } })), + onThumbsDown: () => this.dispatchEvent(new CustomEvent('feedback', { bubbles: true, detail: { value: 'down' } })), + onRetry: () => this.dispatchEvent(new CustomEvent('retry', { bubbles: true })) + }) : Lit.nothing} + + + + ${this.#renderInputBar(false)} +
`, this.#shadow, {host: this}); } @@ -912,13 +955,12 @@ export class ChatView extends HTMLElement { } return html` -
-
Try one of these
-
+
+
${examples.map(ex => { const tooltipText = ex.promptText || ex.displayText; return html` - + `; })}
@@ -993,6 +1035,18 @@ export class ChatView extends HTMLElement { void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender); } + #dismissWelcome(): void { + this.#isFirstMessageView = false; + void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender); + } + + #handleToggleConnectorsDropdown(event: Event): void { + const customEvent = event as CustomEvent; + this.#showConnectorsDropdown = customEvent.detail.show; + this.#connectorsDropdownPosition = customEvent.detail.position; + void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender); + } + // Get current inspected page URL (if available) #getCurrentPageURL(): string | null { try { @@ -1010,55 +1064,13 @@ export class ChatView extends HTMLElement { // Build example suggestions (generic + page-specific if URL is present) #getExampleSuggestions(): ExamplePromptConfig[] { - const generic: ExamplePromptConfig[] = [ - EXAMPLE_PROMPTS.SUMMARIZE_PAGE, - EXAMPLE_PROMPTS.EXTRACT_LINKS, - ]; - - const url = this.#getCurrentPageURL(); - if (!url) { - // Show a smaller set to avoid overcrowding - return generic.slice(0, 4); - } - - let hostname = ''; - try { hostname = new URL(url).hostname; } catch {} - - // Detect all Chrome internal pages - const isChromeInternalPage = url.startsWith('chrome://'); - - if (isChromeInternalPage) { - // Provide mixed examples for all Chrome internal pages - return [ - EXAMPLE_PROMPTS.DEEP_RESEARCH_AI_AGENTS, - EXAMPLE_PROMPTS.FIND_CONTENT_WRITERS, - EXAMPLE_PROMPTS.APPLE_STOCKS_ANALYSIS, - EXAMPLE_PROMPTS.SUMMARIZE_NEWS, - EXAMPLE_PROMPTS.STAR_BROWSER_OPERATOR_REPO, - ]; - } - - // Detect common search engines - const isSearchSite = /(^|\.)((google|bing|duckduckgo|yahoo|yandex|baidu)\.(com|co\.[a-z]+|[a-z]+))$/i.test(hostname); - - if (isSearchSite) { - // Provide deep-research oriented examples and pre-select the deep research agent on click - return [ - EXAMPLE_PROMPTS.DEEP_RESEARCH_AI_AGENTS, - EXAMPLE_PROMPTS.IPHONE_REVIEWS, - EXAMPLE_PROMPTS.APPLE_STOCKS_ANALYSIS, - EXAMPLE_PROMPTS.SUMMARIZE_NEWS, - ]; - } - - const specific: ExamplePromptConfig[] = [ - { displayText: `What do you think about ${hostname ? hostname + ' ' : ''}page?` }, + return [ + EXAMPLE_PROMPTS.SUMMARIZE_NEWS, + EXAMPLE_PROMPTS.FIND_AND_COMPARE_PRICES, + EXAMPLE_PROMPTS.TRENDING_TOPICS, + EXAMPLE_PROMPTS.RESEARCH_SUMMARY, + EXAMPLE_PROMPTS.FIND_BEST_DEALS, ]; - - // Merge, de-duplicate by displayText, cap to concise set - const map = new Map(); - [...specific, ...generic].forEach(item => { if (!map.has(item.displayText)) map.set(item.displayText, item); }); - return Array.from(map.values()).slice(0, 6); } // Helper method to format JSON with syntax highlighting diff --git a/front_end/panels/ai_chat/ui/ConnectorsDropdown.ts b/front_end/panels/ai_chat/ui/ConnectorsDropdown.ts new file mode 100644 index 0000000000..ee302acef1 --- /dev/null +++ b/front_end/panels/ai_chat/ui/ConnectorsDropdown.ts @@ -0,0 +1,369 @@ +// Copyright 2025 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import * as Lit from '../../../ui/lit/lit.js'; + +const {html, Decorators} = Lit; +const {customElement} = Decorators as any; + +export interface Connector { + id: string; + name: string; + enabled: boolean; + icon: string; +} + +export interface ConnectorsDropdownProps { + visible: boolean; + connectors: Connector[]; + onToggle: (id: string, enabled: boolean) => void; + onManage: () => void; + onClose: () => void; + position?: {left: number; top: number}; +} + +@customElement('ai-connectors-dropdown') +export class ConnectorsDropdown extends HTMLElement { + static readonly litTagName = Lit.StaticHtml.literal`ai-connectors-dropdown`; + + #visible = false; + #connectors: Connector[] = [ + { id: 'web-search', name: 'Web Search', enabled: true, icon: '🔍' }, + { id: 'notion', name: 'Notion', enabled: false, icon: '📝' }, + { id: 'gmail', name: 'Gmail', enabled: false, icon: '📧' }, + { id: 'gdrive', name: 'Google Drive', enabled: false, icon: '📁' }, + ]; + #onToggle?: (id: string, enabled: boolean) => void; + #onManage?: () => void; + #onClose?: () => void; + #searchQuery = ''; + #position?: {left: number; top: number}; + + set visible(v: boolean) { this.#visible = v; this.#render(); } + set connectors(v: Connector[]) { this.#connectors = v; this.#render(); } + set onToggle(fn: (id: string, enabled: boolean) => void) { this.#onToggle = fn; } + set onManage(fn: () => void) { this.#onManage = fn; } + set onClose(fn: () => void) { this.#onClose = fn; } + set position(v: {left: number; top: number} | undefined) { this.#position = v; this.#render(); } + + connectedCallback(): void { + this.#render(); + } + + #handleToggle(id: string, enabled: boolean): void { + if (this.#onToggle) { + this.#onToggle(id, enabled); + } + // Update local state optimistically + const connector = this.#connectors.find(c => c.id === id); + if (connector) { + connector.enabled = enabled; + this.#render(); + } + } + + #handleSearchInput(e: Event): void { + const input = e.target as HTMLInputElement; + this.#searchQuery = input.value.toLowerCase(); + this.#render(); + } + + #handleManage(): void { + if (this.#onManage) { + this.#onManage(); + } + if (this.#onClose) { + this.#onClose(); + } + } + + #render(): void { + // Keep host footprint zero to avoid affecting layout; we render the surface in a fixed + // positioned div so it overlays the input instead of expanding it. + this.style.display = this.#visible ? 'block' : 'none'; + this.style.position = 'relative'; + this.style.width = '0'; + this.style.height = '0'; + this.style.overflow = 'visible'; + + const filteredConnectors = this.#connectors.filter(c => + c.name.toLowerCase().includes(this.#searchQuery) + ); + + const fallbackPosition = (() => { + const root = this.getRootNode() as Document | ShadowRoot; + const trigger = root.querySelector?.('#connectors-button') as HTMLElement | null; + if (!trigger) { + return undefined; + } + const rect = trigger.getBoundingClientRect(); + return { + left: rect.left + rect.width / 2 + window.scrollX, + top: rect.top + window.scrollY, + }; + })(); + + const effectivePosition = this.#position ?? fallbackPosition; + + const surfaceStyle = effectivePosition ? + `left:${effectivePosition.left}px; top:${effectivePosition.top}px;` : ''; + + Lit.render(html` + + + + `, this, {host: this}); + } +} + +declare global { + interface HTMLElementTagNameMap { 'ai-connectors-dropdown': ConnectorsDropdown; } +} diff --git a/front_end/panels/ai_chat/ui/SidebarNav.ts b/front_end/panels/ai_chat/ui/SidebarNav.ts new file mode 100644 index 0000000000..4e481acfbc --- /dev/null +++ b/front_end/panels/ai_chat/ui/SidebarNav.ts @@ -0,0 +1,180 @@ +// Copyright 2025 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import * as Lit from '../../../ui/lit/lit.js'; + +const {html, Decorators} = Lit; +const {customElement} = Decorators as any; + +export type SidebarNavItem = 'chat' | 'agents' | 'connectors' | 'settings' | 'workflows'; + +export interface SidebarNavProps { + activeItem?: SidebarNavItem; + onItemClick?: (item: SidebarNavItem) => void; +} + +@customElement('ai-sidebar-nav') +export class SidebarNav extends HTMLElement { + static readonly litTagName = Lit.StaticHtml.literal`ai-sidebar-nav`; + + #activeItem: SidebarNavItem = 'chat'; + #onItemClick?: (item: SidebarNavItem) => void; + + set activeItem(v: SidebarNavItem) { this.#activeItem = v; this.#render(); } + set onItemClick(fn: (item: SidebarNavItem) => void | undefined) { this.#onItemClick = fn; this.#render(); } + + connectedCallback(): void { this.#render(); } + + #handleClick(item: SidebarNavItem): void { + if (this.#onItemClick) { + this.#onItemClick(item); + } + this.#activeItem = item; + this.#render(); + } + + #render(): void { + const navItems = [ + { id: 'chat' as const, icon: this.#getChatIcon(), label: 'Chat' }, + { id: 'agents' as const, icon: this.#getAgentsIcon(), label: 'Agents' }, + { id: 'connectors' as const, icon: this.#getConnectorsIcon(), label: 'Connectors' }, + { id: 'workflows' as const, icon: this.#getWorkflowsIcon(), label: 'Workflows' }, + { id: 'settings' as const, icon: this.#getSettingsIcon(), label: 'Settings' }, + ]; + + Lit.render(html` + + + ${navItems.map(item => html` + + `)} + `, this, {host: this}); + } + + #getChatIcon() { + return html` + + + + `; + } + + #getAgentsIcon() { + return html` + + + + + `; + } + + #getConnectorsIcon() { + return html` + + + + `; + } + + #getWorkflowsIcon() { + return html` + + + + + + + `; + } + + #getSettingsIcon() { + return html` + + + + `; + } +} + +declare global { + interface HTMLElementTagNameMap { 'ai-sidebar-nav': SidebarNav; } +} diff --git a/front_end/panels/ai_chat/ui/TabSelector.ts b/front_end/panels/ai_chat/ui/TabSelector.ts new file mode 100644 index 0000000000..ec6e6b4120 --- /dev/null +++ b/front_end/panels/ai_chat/ui/TabSelector.ts @@ -0,0 +1,643 @@ +// Copyright 2025 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import * as Host from '../../../core/host/host.js'; +import * as i18n from '../../../core/i18n/i18n.js'; +import * as SDK from '../../../core/sdk/sdk.js'; +import type * as Protocol from '../../../generated/protocol.js'; +import * as UI from '../../../ui/legacy/legacy.js'; +import { createLogger } from '../core/Logger.js'; + +const logger = createLogger('TabSelector'); + +const UIStrings = { + /** + * @description Tooltip for the tab selector button + */ + selectTab: 'Select Browser Tab', + /** + * @description Text shown when no tabs are available + */ + noTabsAvailable: 'No browser tabs available', + /** + * @description Format for tab menu item showing URL + * @example {https://example.com} PH1 + */ + tabItem: '{PH1}', +} as const; + +const str_ = i18n.i18n.registerUIStrings('panels/ai_chat/ui/TabSelector.ts', UIStrings); +const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_); + +/** + * TabSelector provides a UI component to select different browser tabs (page targets) + * and interact with them. Currently used for testing multi-tab functionality. + */ +export class TabSelector implements SDK.TargetManager.Observer { + readonly #menuButton: UI.Toolbar.ToolbarMenuButton; + readonly #availableTargets: Map = new Map(); + readonly #discoveredTargetInfos: Map = new Map(); + readonly #webSocketUrls: Map = new Map(); // targetId -> webSocketDebuggerUrl + #hasBrowserTarget: boolean = false; + #cdpPort: number | null = null; + static readonly CDP_PORTS = [9222, 9223, 9224, 9229]; // Common CDP ports + static readonly CDP_PORT_STORAGE_KEY = 'ai_chat_cdp_port'; + + constructor() { + // Create menu button with tab icon + this.#menuButton = new UI.Toolbar.ToolbarMenuButton( + this.#populateMenu.bind(this), + /* isIconDropdown */ true, // Must be true for icon buttons with tooltips + /* useSoftMenu */ true, + /* jslogContext */ 'ai-chat.tab-selector', + /* iconName */ 'select-element' + ); + this.#menuButton.setTitle(i18nString(UIStrings.selectTab)); + + // Observe targets to keep the list updated + SDK.TargetManager.TargetManager.instance().observeTargets(this); + + // Initial population of targets (async) + void this.#updateAvailableTargets(); + } + + /** + * Get the toolbar item for this selector + */ + item(): UI.Toolbar.ToolbarItem { + return this.#menuButton; + } + + /** + * Try to enumerate tabs via CDP HTTP endpoint (http://localhost:PORT/json/list) + * This works even without browserTarget if browser was launched with --remote-debugging-port + */ + async #tryEnumerateViaHTTP(): Promise { + logger.info('HTTP enumeration', 'Attempting to enumerate tabs via CDP HTTP endpoint...'); + + // Try saved port first + const savedPort = localStorage.getItem(TabSelector.CDP_PORT_STORAGE_KEY); + if (savedPort) { + const port = parseInt(savedPort, 10); + logger.info('Saved port', `Trying saved CDP port: ${port}`); + if (await this.#fetchTabsFromCDPPort(port)) { + this.#cdpPort = port; // Set instance variable for later use (e.g., opening DevTools) + logger.info('Port confirmed', `Using saved CDP port ${port}`); + return true; + } + } + + // Try common CDP ports + for (const port of TabSelector.CDP_PORTS) { + logger.info('Port scan', `Trying CDP port: ${port}`); + if (await this.#fetchTabsFromCDPPort(port)) { + // Save working port + this.#cdpPort = port; + localStorage.setItem(TabSelector.CDP_PORT_STORAGE_KEY, port.toString()); + logger.info('Port found', `CDP port ${port} works - saved for future use`); + return true; + } + } + + logger.info('HTTP failed', 'Could not connect to any CDP HTTP endpoint'); + return false; + } + + /** + * Fetch tabs from a specific CDP port + */ + async #fetchTabsFromCDPPort(port: number): Promise { + try { + const url = `http://localhost:${port}/json/list`; + logger.debug('Fetching', url); + + const response = await fetch(url, { + method: 'GET', + mode: 'cors', + }); + + if (!response.ok) { + logger.debug('HTTP error', `${response.status} ${response.statusText}`); + return false; + } + + const targets = await response.json(); + logger.info('HTTP response', `Received ${targets.length} targets from CDP`); + + // Log all target types for debugging + const typeCount = targets.reduce((acc: any, t: any) => { + acc[t.type] = (acc[t.type] || 0) + 1; + return acc; + }, {}); + logger.info('Target types', JSON.stringify(typeCount)); + + // Filter for page targets + const pageTabs = targets.filter((t: any) => t.type === 'page'); + logger.info('Page tabs', `Found ${pageTabs.length} page targets out of ${targets.length} total`); + + // Convert to Protocol.Target.TargetInfo format + for (const tab of pageTabs) { + const targetInfo: Protocol.Target.TargetInfo = { + targetId: tab.id as Protocol.Target.TargetID, + type: tab.type, + title: tab.title, + url: tab.url, + attached: false, // HTTP endpoint shows unattached targets + canAccessOpener: false, + }; + + this.#discoveredTargetInfos.set(tab.id, targetInfo); + + // Store WebSocket URL for direct CDP access + if (tab.webSocketDebuggerUrl) { + this.#webSocketUrls.set(tab.id, tab.webSocketDebuggerUrl); + logger.debug('Added to discovered', `[${tab.id}] ${tab.title} - ${tab.url} (wsUrl: ${tab.webSocketDebuggerUrl})`); + } else { + logger.debug('Added to discovered', `[${tab.id}] ${tab.title} - ${tab.url} (no wsUrl)`); + } + + // Try to find matching Target object in TargetManager + const targetManager = SDK.TargetManager.TargetManager.instance(); + const target = targetManager.targetById(tab.id); + if (target) { + this.#availableTargets.set(tab.id, target); + logger.debug('Matched target', `${tab.title} (${tab.url})`); + } else { + logger.debug('HTTP-only target', `${tab.title} (${tab.url}) - no Target object`); + } + } + + logger.info('HTTP enumeration complete', `Added ${this.#discoveredTargetInfos.size} targets to discovered map`); + + return pageTabs.length > 0; + + } catch (error) { + logger.debug('Fetch failed', `Port ${port}: ${error}`); + return false; + } + } + + /** + * Update the list of available targets using hybrid approach: + * 1. Try Target.getTargets if browserTarget available (browser-level CDP access) + * 2. Try CDP HTTP endpoint (/json/list) if no browserTarget (requires --remote-debugging-port) + * 3. Fall back to TargetManager.targets() (local DevTools session only) + */ + async #updateAvailableTargets(): Promise { + this.#availableTargets.clear(); + this.#discoveredTargetInfos.clear(); + + const targetManager = SDK.TargetManager.TargetManager.instance(); + const browserTarget = targetManager.browserTarget(); + + logger.info('Tab enumeration', 'Starting tab enumeration...'); + + // APPROACH 1: Use browser-level Target.getTargets (best - via CDP protocol) + if (browserTarget) { + this.#hasBrowserTarget = true; + logger.info('Browser target', 'Browser target available - using Target.getTargets for all tabs'); + + try { + // Get all targets from the browser via CDP + const response = await browserTarget.targetAgent().invoke_getTargets({ + filter: [{ type: 'page' }] // Filter for page targets only + }); + + logger.info('CDP response', `Target.getTargets returned ${response.targetInfos.length} page targets`); + + // Store discovered target infos + for (const targetInfo of response.targetInfos) { + this.#discoveredTargetInfos.set(targetInfo.targetId, targetInfo); + + // Try to find existing Target object in TargetManager + const target = targetManager.targetById(targetInfo.targetId); + if (target && target.type() === SDK.Target.Type.FRAME) { + this.#availableTargets.set(targetInfo.targetId, target); + logger.debug('Matched target', `${targetInfo.title} (${targetInfo.url})`); + } else { + logger.debug('Unattached target', `${targetInfo.title} (${targetInfo.url}) - no Target object`); + } + } + + logger.info('Enumeration result', `Found ${this.#availableTargets.size} attached tabs, ${this.#discoveredTargetInfos.size} total tabs`); + + } catch (error) { + logger.error('CDP enumeration failed', error); + logger.info('Fallback', 'Falling back to HTTP endpoint'); + + // Try HTTP fallback + const httpSuccess = await this.#tryEnumerateViaHTTP(); + if (!httpSuccess) { + logger.info('Final fallback', 'Falling back to TargetManager.targets()'); + this.#fallbackToLocalTargets(); + } + } + } else { + // APPROACH 2: Try CDP HTTP endpoint (good - via HTTP) + this.#hasBrowserTarget = false; + logger.info('No browser target', 'DevTools not in browserConnection mode - trying CDP HTTP endpoint'); + + const httpSuccess = await this.#tryEnumerateViaHTTP(); + + if (!httpSuccess) { + // APPROACH 3: Fall back to local targets (limited - only inspected tab) + logger.info('HTTP failed', 'Falling back to local targets only'); + this.#fallbackToLocalTargets(); + } + } + + logger.info('Final count', `Total available targets: ${this.#availableTargets.size}, discovered: ${this.#discoveredTargetInfos.size}`); + } + + /** + * Fallback to showing only targets in the current DevTools session + * (inspected tab and its children like iframes) + */ + #fallbackToLocalTargets(): void { + const allTargets = SDK.TargetManager.TargetManager.instance().targets(); + + // Filter for outermost FRAME targets + for (const target of allTargets) { + if (target.type() === SDK.Target.Type.FRAME && target.outermostTarget() === target) { + this.#availableTargets.set(target.id(), target); + + const targetInfo = target.targetInfo(); + if (targetInfo) { + this.#discoveredTargetInfos.set(targetInfo.targetId, targetInfo); + } + } + } + + logger.info('Local targets', `Found ${this.#availableTargets.size} local targets`); + } + + /** + * Populate the context menu with available tabs + * Note: This is synchronous, so we use cached data from the last async update + */ + #populateMenu(contextMenu: UI.ContextMenu.ContextMenu): void { + logger.info('Menu populate', `Showing menu with ${this.#discoveredTargetInfos.size} discovered targets`); + + if (this.#discoveredTargetInfos.size === 0) { + contextMenu.defaultSection().appendItem( + i18nString(UIStrings.noTabsAvailable), + () => {}, + {disabled: true} + ); + + // Show diagnostic info + if (!this.#hasBrowserTarget) { + contextMenu.defaultSection().appendItem( + 'ℹ️ No browser target - can only see inspected tab', + () => {}, + {disabled: true} + ); + } + return; + } + + // Add header showing mode + if (this.#hasBrowserTarget) { + contextMenu.defaultSection().appendItem( + `📋 All Browser Tabs (${this.#discoveredTargetInfos.size} found)`, + () => {}, + {disabled: true} + ); + } else { + contextMenu.defaultSection().appendItem( + `📋 Inspected Tab Only (no browser target)`, + () => {}, + {disabled: true} + ); + } + + contextMenu.defaultSection().appendSeparator(); + + // Add a menu item for each discovered tab + for (const [targetId, targetInfo] of this.#discoveredTargetInfos) { + const url = targetInfo.url || 'about:blank'; + const title = targetInfo.title || 'Untitled'; + + // Check if we have a Target object for this + const target = this.#availableTargets.get(targetId); + + // Check if we have WebSocket URL for this + const hasWebSocket = this.#webSocketUrls.has(targetId); + + let label: string; + let disabled = false; + + if (target) { + // Has Target object - best option + label = `${title}\n${url}\n✓ Read Page + Open DevTools`; + } else if (hasWebSocket) { + // Can read via CDP attachment + open DevTools + label = `${title}\n${url}\n⚡ Read Page + Open DevTools`; + } else { + // No way to control this tab + label = `${title}\n${url}\n✗ Not accessible`; + disabled = true; + } + + contextMenu.defaultSection().appendItem( + label, + () => { + if (target) { + void this.#onTabSelected(target); + } else if (hasWebSocket) { + void this.#onTabSelected(targetId); + } + }, + {disabled} + ); + } + } + + /** + * Open DevTools via primary page target's agent + * This uses the SDK's targetAgent to send Target.openDevTools + */ + async #openDevToolsViaExistingConnection(targetId: string): Promise { + logger.info('Existing connection', `Sending Target.openDevTools for ${targetId} via primaryPageTarget`); + + const targetManager = SDK.TargetManager.TargetManager.instance(); + const primaryTarget = targetManager.primaryPageTarget(); + + if (!primaryTarget) { + throw new Error('No primary page target available'); + } + + try { + const targetAgent = primaryTarget.targetAgent(); + logger.info('Using targetAgent', 'Calling invoke_openDevTools() on primary page target agent'); + + const result = await targetAgent.invoke_openDevTools({ + targetId: targetId as Protocol.Target.TargetID, + }); + + if (result.targetId) { + logger.info('DevTools opened', `Native window opened - DevTools target ID: ${result.targetId}`); + } else { + logger.warn('Unexpected result', `openDevTools returned but targetId is: ${result.targetId}`); + throw new Error('Target.openDevTools returned undefined targetId'); + } + } catch (error) { + logger.error('targetAgent.invoke_openDevTools failed', error); + throw error; + } + } + + /** + * Open DevTools for a target + * + * Strategy: + * 1. Try browserTarget.targetAgent().invoke_openDevTools() - for SDK-managed connections + * 2. Try browser-level WebSocket + Target.openDevTools - opens native DevTools window + * 3. Skip gracefully if neither works + */ + async #openDevToolsForTarget(targetId: string): Promise { + logger.info('Opening DevTools', `Target: ${targetId}`); + + const targetManager = SDK.TargetManager.TargetManager.instance(); + const browserTarget = targetManager.browserTarget(); + + // APPROACH 1: Use browserTarget.targetAgent() (if available) + if (browserTarget) { + try { + const targetAgent = browserTarget.targetAgent(); + logger.info('Approach 1', 'Using browserTarget.targetAgent().invoke_openDevTools()...'); + + const result = await targetAgent.invoke_openDevTools({ + targetId: targetId as Protocol.Target.TargetID, + }); + + logger.info('DevTools opened', `Via browserTarget - DevTools target ID: ${result.targetId}`); + return; + } catch (error) { + logger.error('browserTarget approach failed', error); + // Fall through to browser WebSocket approach + } + } + + // APPROACH 2: Use DevTools' existing CDP connection (works without browserTarget, avoids 403) + try { + logger.info('Approach 2', 'Using DevTools existing CDP connection...'); + await this.#openDevToolsViaExistingConnection(targetId); + return; + } catch (error) { + logger.error('Existing connection approach failed', error); + // Fall through to graceful degradation + } + + // APPROACH 3: Graceful degradation + logger.warn('DevTools not opened', + 'Unable to open DevTools. Ensure browser is running with --remote-debugging-port flag. ' + + 'Navigation still works.'); + + // Don't throw - let the caller continue with other actions + } + + /** + * Read page content from a tab via CDP Target.attachToTarget + * Attaches to the target, reads content, then detaches + */ + async #readPageViaAttachment(targetId: string): Promise { + logger.info('CDP attachment', `Attaching to target ${targetId} to read page content`); + + // Get the primary page target (the tab being inspected) + const targetManager = SDK.TargetManager.TargetManager.instance(); + const primaryTarget = targetManager.primaryPageTarget(); + + if (!primaryTarget) { + throw new Error('No primary page target available'); + } + + const targetAgent = primaryTarget.targetAgent(); + let sessionId: string | null = null; + + try { + // Attach to the target - this auto-creates a Target object in TargetManager! + logger.info('Attaching', 'Calling Target.attachToTarget...'); + const response = await targetAgent.invoke_attachToTarget({ + targetId: targetId as Protocol.Target.TargetID, + flatten: true, // Flat mode for easier session management + }); + + sessionId = response.sessionId; + logger.info('Attached', `Session ID: ${sessionId}`); + + // Wait a moment for the Target object to be registered in TargetManager + await new Promise(resolve => setTimeout(resolve, 100)); + + // Now get the auto-created Target object + const attachedTarget = targetManager.targetById(targetId); + + if (!attachedTarget) { + throw new Error('Target object not created after attachment'); + } + + logger.info('Target found', `Using auto-created Target object for ${targetId}`); + + // Read page content using Runtime.evaluate + const runtimeAgent = attachedTarget.runtimeAgent(); + + // Get page title + const titleResult = await runtimeAgent.invoke_evaluate({ + expression: 'document.title', + returnByValue: true, + }); + + // Get page URL + const urlResult = await runtimeAgent.invoke_evaluate({ + expression: 'window.location.href', + returnByValue: true, + }); + + // Get page text preview (first 500 chars) + const textResult = await runtimeAgent.invoke_evaluate({ + expression: 'document.body ? document.body.innerText.substring(0, 500) : "No body content"', + returnByValue: true, + }); + + // Log the results + logger.info('📄 Page Title', titleResult.result.value || 'No title'); + logger.info('🔗 Page URL', urlResult.result.value || 'No URL'); + logger.info('📝 Content Preview', textResult.result.value || 'No content'); + + logger.info('Read complete', 'Successfully read page content!'); + + } catch (error) { + logger.error('Attachment/reading failed', error); + throw error; + + } finally { + // Always detach when done + if (sessionId) { + try { + await targetAgent.invoke_detachFromTarget({sessionId: sessionId as Protocol.Target.SessionID}); + logger.info('Detached', 'Detached from target'); + } catch (detachError) { + logger.error('Detach failed', detachError); + } + } + } + } + + /** + * Read page content from a target that's already attached + */ + async #readPageContent(target: SDK.Target.Target): Promise { + logger.info('Reading page', `Reading content from ${target.id()}`); + + try { + const runtimeAgent = target.runtimeAgent(); + + // Get page title + const titleResult = await runtimeAgent.invoke_evaluate({ + expression: 'document.title', + returnByValue: true, + }); + + // Get page URL + const urlResult = await runtimeAgent.invoke_evaluate({ + expression: 'window.location.href', + returnByValue: true, + }); + + // Get page text preview + const textResult = await runtimeAgent.invoke_evaluate({ + expression: 'document.body ? document.body.innerText.substring(0, 500) : "No body content"', + returnByValue: true, + }); + + // Log the results + logger.info('📄 Page Title', titleResult.result.value || 'No title'); + logger.info('🔗 Page URL', urlResult.result.value || 'No URL'); + logger.info('📝 Content Preview', textResult.result.value || 'No content'); + + logger.info('Read complete', 'Successfully read page content!'); + } catch (error) { + logger.error('Reading failed', error); + throw error; + } + } + + /** + * Handle tab selection - read page content AND open DevTools + * Supports both attached targets (via Target object) and HTTP-discovered targets (via CDP attachment) + */ + async #onTabSelected(targetOrId: SDK.Target.Target | string): Promise { + let targetId: string; + let targetInfo: Protocol.Target.TargetInfo | undefined; + + // Get target ID and info + if (typeof targetOrId === 'string') { + targetId = targetOrId; + targetInfo = this.#discoveredTargetInfos.get(targetId); + } else { + const target = targetOrId; + targetId = target.id(); + targetInfo = target.targetInfo(); + } + + if (!targetInfo) { + logger.error('Action failed', 'Target info not found'); + return; + } + + logger.info('Tab selected', `${targetInfo.title} (${targetInfo.url})`); + logger.info('Actions', 'Will read page content AND open DevTools'); + + // ACTION 1: Read page content + // Try local SDK access first (fast path), fall back to CDP attachment if needed + try { + const targetManager = SDK.TargetManager.TargetManager.instance(); + const localTarget = targetManager.targetById(targetId); + + if (localTarget) { + // FAST PATH: Use local SDK access (no attachment needed) + logger.info('Reading', 'Using local Target object (fast path)...'); + await this.#readPageContent(localTarget); + } else { + // FALLBACK: Use CDP attachment (remote access) + logger.info('Reading', 'No local Target - using CDP attachment (fallback)...'); + await this.#readPageViaAttachment(targetId); + } + } catch (readError) { + logger.error('Reading failed', readError); + // Continue to try opening DevTools even if reading fails + } + + // ACTION 2: Open DevTools + try { + logger.info('DevTools action', 'Opening DevTools for tab...'); + await this.#openDevToolsForTarget(targetId); + } catch (devtoolsError) { + logger.error('DevTools opening failed', devtoolsError); + // Reading already completed, so this is not critical + } + + logger.info('Actions complete', 'Both actions attempted'); + } + + /** + * Called when a target is added to the browser + */ + targetAdded(target: SDK.Target.Target): void { + if (target.type() === SDK.Target.Type.FRAME && target.outermostTarget() === target) { + logger.debug(`Target added: ${target.name()}`); + this.#updateAvailableTargets(); + } + } + + /** + * Called when a target is removed from the browser + */ + targetRemoved(target: SDK.Target.Target): void { + if (target.type() === SDK.Target.Type.FRAME && target.outermostTarget() === target) { + logger.debug(`Target removed: ${target.name()}`); + this.#updateAvailableTargets(); + } + } +} diff --git a/front_end/panels/ai_chat/ui/chatView.css b/front_end/panels/ai_chat/ui/chatView.css index 3f1701d4e5..0cb7ff9b7d 100644 --- a/front_end/panels/ai_chat/ui/chatView.css +++ b/front_end/panels/ai_chat/ui/chatView.css @@ -10,30 +10,104 @@ height: 100%; overflow: hidden; font-family: var(--default-font-family); - background-color: var(--sys-color-cdt-base-container); + background-color: hsl(0 0% 97%); /* Reserve space for overlayed input bar within nested scrollers */ --ai-input-bar-reserved-space: 120px; --message-max-width: 80%; --message-horizontal-padding: var(--sys-size-5); - --primary-color: var(--color-primary); + + /* Design Token System (HSL-based from demo-builder.io) */ + /* Core colors */ + --background: 0 0% 100%; /* White */ + --foreground: 217.2 32.4% 27.5%; /* Slate 700 - #334155 */ + + /* Card/Surface */ + --card: 0 0% 100%; + --card-foreground: 217.2 32.4% 27.5%; + + /* Popover */ + --popover: 0 0% 100%; + --popover-foreground: 217.2 32.4% 27.5%; + + /* Primary (Blue) */ + --primary: 213.8 97.5% 49.8%; /* #1093F4 */ + --primary-foreground: 0 0% 100%; + + /* Secondary (Slate 100) */ + --secondary: 220 25% 93.7%; /* #ECEEF4 */ + --secondary-foreground: 217.2 32.4% 27.5%; + + /* Muted text */ + --muted: 220 25% 93.7%; + --muted-foreground: 213.5 16.9% 52.5%; /* #5E789A */ + + /* Accent */ + --accent: 213.8 97.5% 49.8%; + --accent-foreground: 0 0% 100%; + + /* Destructive */ + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 210 40% 98%; + + /* Borders */ + --border: 210 20.5% 84.3%; /* #D3D9E5 */ + --input: 210 20.5% 84.3%; + --ring: 213.8 97.5% 49.8%; /* Focus ring - blue */ + + /* Standard radius */ + --radius: 1.25rem; /* 20px */ + + /* Sidebar */ + --sidebar-background: 0 0% 98%; /* #F7F9FC */ + --sidebar-foreground: 240 5.3% 26.1%; + --sidebar-primary: 240 5.9% 10%; + --sidebar-primary-foreground: 0 0% 98%; + --sidebar-accent: 240 4.8% 95.9%; + --sidebar-accent-foreground: 240 5.9% 10%; + --sidebar-border: 220 13% 91%; + --sidebar-ring: 217.2 91.2% 59.8%; + + /* Legacy Figma Design Tokens (for backward compatibility) */ + --slate-100: #ECEEF4; + --slate-200: #D3D9E5; + --slate-300: #ABBCCE; + --slate-400: #94A3B8; + --slate-500: #5E789A; + --slate-700: #334155; + --slate-800: #334155; + --blue: #1093F4; + --blue-selected: #E1F2FF; + --blue-selected-border: #B9E1FF; + + /* Legacy color references */ + --primary-color: hsl(var(--primary)); --primary-color-light: var(--color-primary-container); - --primary-color-hover: var(--color-primary-1); + --primary-color-hover: var(--color-primary-1); --accent-color: var(--color-accent-2); --accent-color-light: var(--color-background-elevation-1); --gradient-primary: linear-gradient(135deg, var(--color-primary), var(--color-primary-1)); --gradient-accent: linear-gradient(135deg, var(--color-accent-1), var(--color-accent-2)); - --text-color: var(--color-text-primary); + --text-color: hsl(var(--foreground)); --text-on-primary: var(--color-text-inverted); + + /* Spacing & Layout */ --message-spacing: 10px; --bubble-radius-sender: 24px 8px 24px 24px; --bubble-radius-receiver: 8px 24px 24px 24px; + + /* Shadows */ --global-shadow: 0 4px 20px var(--color-shadow); + + /* Transitions */ --transition-fast: 0.2s cubic-bezier(0.4, 0, 0.2, 1); --transition-medium: 0.3s cubic-bezier(0.4, 0, 0.2, 1); - --color-primary-shadow: rgba(var(--color-primary-rgb), 0.2); - --color-primary-container-border: rgba(var(--color-primary-rgb), 0.2); + + /* Container colors */ + --color-primary-shadow: rgba(16, 147, 244, 0.2); + --color-primary-container-border: rgba(16, 147, 244, 0.2); --color-error-container: rgba(var(--sys-color-error-rgb), 0.1); --color-accent-green-container: rgba(var(--sys-color-accent-green-rgb), 0.1); + color-scheme: light dark; } @@ -61,15 +135,25 @@ ai-input-bar { .chat-view-container { display: flex; - flex-direction: column; + flex-direction: row; /* Changed to row to accommodate sidebar */ height: 100%; width: 100%; position: relative; overflow: hidden; /* Ensure only the message list scrolls */ - backdrop-filter: blur(10px); + background: #f7f9fc; transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); } +.main-content { + display: flex; + flex-direction: column; + flex: 1 1 auto; + min-width: 0; + height: 100%; + overflow: hidden; + background: #f7f9fc; +} + /* Legacy selector kept for backwards compatibility (unused by ai-message-list) */ .messages-container { flex: 1 1 auto; @@ -123,21 +207,126 @@ ai-input-bar { width: 100%; max-width: none; margin: 0 auto; - padding: 5px; - padding-top: 0; + padding: 24px 20px 16px; animation: fadeInScale 0.6s cubic-bezier(0.4, 0, 0.2, 1); - /* Ensure there's vertical centering space */ - flex: 0 1 auto; + flex: 1 1 auto; position: relative; - top: -40px; /* Move content slightly up for better visual centering */ + gap: 16px; + top: 0; + background: white; +} + +.welcome-hero { + display: flex; + flex-direction: column; + align-items: center; + gap: 12px; +} + +.welcome-top-row { + display: flex; + align-items: center; + gap: 12px; + width: 100%; + justify-content: center; + position: relative; +} + +.whats-new-pill { + display: inline-flex; + align-items: center; + gap: 8px; + padding: 4px 12px; + height: 22px; + border-radius: 16px; + border: 1px solid var(--blue-selected-border); + background: var(--blue-selected); + color: hsl(var(--primary)); + font-size: 12px; + font-weight: 500; + letter-spacing: -0.24px; + cursor: pointer; + transition: all var(--transition-fast); +} + +.whats-new-pill:hover { + background: #d0ebff; + border-color: #a0d5ff; +} + +.whats-new-pill .pill-icon { + width: 14px; + height: 14px; + display: flex; + align-items: center; + color: hsl(var(--primary)); +} + +.welcome-close { + border: none; + background: transparent; + color: hsl(var(--muted-foreground)); + font-size: 16px; + cursor: pointer; + padding: 6px; + line-height: 1; + position: static; + margin-left: 4px; +} + +.welcome-icon { + width: 56px; + height: 56px; + border-radius: 16px; + background: radial-gradient(circle, rgba(248, 250, 255, 0.3) 0%, rgba(223, 233, 255, 0.3) 100%); + display: grid; + place-items: center; + box-shadow: 0 8px 24px rgba(48, 99, 191, 0.15); + position: relative; +} + +.welcome-icon::before { + content: ''; + position: absolute; + inset: 0; + border-radius: 16px; + background: radial-gradient(circle, #f8faff 0%, #dfe9ff 100%); + opacity: 0.3; + z-index: -1; +} + +.icon-star { + color: #5a7cf7; + font-size: 24px; +} + +.welcome-title { + font-size: 16px; + font-weight: 500; + color: hsl(var(--foreground)); + text-align: center; + line-height: 28px; + margin: 16px 0 24px; +} + +@media (min-width: 640px) { + .welcome-title { + font-size: 20px; + } +} + +@media (min-width: 768px) { + .welcome-title { + font-size: 24px; + } } /* Example suggestions (chips) in centered view */ .examples-container { - margin: 8px 0 16px 0; + margin: 4px 0 8px 0; padding: 0 8px; width: 100%; - max-width: 720px; + max-width: 520px; } .examples-title { @@ -155,25 +344,49 @@ ai-input-bar { } .example-chip { - padding: 6px 10px; + padding: 4px 12px; + height: 22px; border-radius: 16px; - border: 1px solid var(--color-details-hairline); - background: var(--color-background-elevation-1); - color: var(--color-text-primary); + border: 1px solid hsl(var(--secondary)); + background: hsl(var(--secondary)); + color: hsl(var(--muted-foreground)); cursor: pointer; font-size: 12px; - transition: background-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast); + font-weight: 500; + letter-spacing: -0.24px; + transition: background-color 0.15s ease; + display: inline-flex; + align-items: center; + justify-content: center; + white-space: nowrap; } .example-chip:hover { - background: var(--color-background-elevation-2); - transform: translateY(-1px); - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08); - border-color: var(--color-primary-container-border); + background: hsl(var(--border)); /* #D3D9E5 */ + border-color: hsl(var(--border)); } .example-chip:active { - transform: translateY(0); + background: hsl(var(--border)); +} + +.hero-suggestions { + margin-top: 4px; +} + +.hero-chip-list { + justify-content: center; + gap: 8px; +} + +.hero-chip { + background: hsl(var(--secondary)); + border: 1px solid hsl(var(--secondary)); +} + +.hero-chip:hover { + background: hsl(var(--border)); + border-color: hsl(var(--border)); } @keyframes fadeInScale { @@ -192,15 +405,15 @@ ai-input-bar { .input-container.centered { margin: 0 auto; - /* padding: 10px; */ + width: 460px; + max-width: 460px; transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1), max-width 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); animation: slideUp 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.3s both; - /* Use the same border styling in centered view */ - border-radius: 28px; - border: 1.5px solid var(--color-background-elevation-1); + border-radius: 20px; + border: 1px solid var(--slate-300); } @keyframes slideUp { @@ -310,11 +523,11 @@ ai-input-bar { .prompt-buttons-row { display: flex; width: 100%; - padding: 8px 2px 2px 2px; + padding: 8px 4px 0 4px; justify-content: space-between; align-items: center; margin-top: 5px; - border-top: 1px solid var(--color-background-elevation-0); + border-top: 1px solid #eef3ff; } /* Adjust spacing for buttons with text in centered view */ @@ -341,61 +554,240 @@ ai-input-bar { .actions-container { display: flex; align-items: center; - margin-right: 8px; + gap: 8px; + margin-right: 0; + flex-shrink: 0; } -/* Model selector styles */ -.model-selector { +.inline-actions { display: flex; align-items: center; - margin-right: 8px; + gap: 8px; + flex-shrink: 0; } -.model-select { - background-color: var(--color-background-elevation-1); - border: 1px solid var(--color-details-hairline); - border-radius: 4px; - color: var(--color-text-primary); - font-size: 12px; - padding: 3px 6px; +.icon-chip { + width: 32px; + height: 32px; + border-radius: 16px; + border: 1px solid hsl(var(--border)); /* #D3D9E5 */ + background: hsl(var(--background)); /* white */ + color: hsl(var(--foreground)); /* #334155 */ + display: grid; + place-items: center; + font-size: 16px; cursor: pointer; transition: all var(--transition-fast); - width: 125px; + flex-shrink: 0; } -.model-select:hover { - background-color: var(--color-background-elevation-2); +.icon-chip svg { + width: 16px; + height: 16px; } -.model-select:disabled { - opacity: 0.6; - cursor: not-allowed; - background-color: var(--color-background-elevation-0); +.icon-chip:hover { + background: hsl(var(--sidebar-background)); /* #F7F9FC */ + border-color: var(--slate-300); /* #ABBCCE */ + color: hsl(var(--foreground)); + transform: none; + box-shadow: none; } -/* Searchable model selector styles */ -.model-selector.searchable { +.icon-chip:active { + background: hsl(var(--secondary)); /* #ECEEF4 */ +} + +.icon-chip.active { + border: 2px solid hsl(var(--primary)); /* #1093F4 */ + color: hsl(var(--primary)); + background: hsl(var(--background)); +} + +.relative-container { + position: relative; +} + +.connectors-wrapper { + position: relative; +} + +.agent-dropdown-wrapper { position: relative; } +/* Ensure dropdown can break out of input container */ +.input-container { + overflow: visible !important; +} + +.input-row { + overflow: visible !important; +} + +.left-actions { + overflow: visible !important; +} + +.inline-actions { + overflow: visible !important; +} + +.agent-menu-dropdown { + position: absolute; + bottom: calc(100% + 8px); + left: 0; + background: white; + border-radius: 12px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); + width: 240px; + padding: 8px 0; + z-index: 9999; + border: 1px solid #e2e8f0; +} + +.agent-search-container { + display: flex; + align-items: center; + padding: 8px 12px; + border-bottom: 1px solid #f1f5f9; + gap: 8px; +} + +.agent-search-container .search-icon { + color: #94a3b8; + width: 14px; + height: 14px; +} + +.agent-search-input { + border: none; + outline: none; + font-size: 13px; + width: 100%; + color: #334155; +} + +.agent-search-input::placeholder { + color: #94a3b8; +} + +.agent-section-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 8px 12px 4px; + font-size: 11px; + font-weight: 500; + color: #64748b; +} + +.agent-section-header .badge { + background: #f1f5f9; + border-radius: 4px; + padding: 2px 4px; + font-size: 10px; + color: #94a3b8; +} + +.agent-list { + display: flex; + flex-direction: column; +} + +.agent-item { + display: flex; + align-items: center; + padding: 8px 12px; + gap: 10px; + cursor: pointer; + transition: background-color 0.2s; + color: #334155; + font-size: 13px; +} + +.agent-item:hover { + background-color: #f8fafc; +} + +.agent-icon { + width: 16px; + height: 16px; + display: flex; + align-items: center; + justify-content: center; + color: #64748b; +} + +.agent-item.add-new { + color: #64748b; + border-top: 1px solid #f1f5f9; + margin-top: 4px; + padding-top: 12px; +} + +.agent-item.add-new .agent-icon { + border: 1px dashed #cbd5e1; + border-radius: 4px; + width: 16px; + height: 16px; + font-size: 12px; +} + +.mic-button { + color: #5e789a; +} + +.mic-button:hover { + color: #334155; +} + +/* Model selector styles */ +.model-selector { + display: flex; + align-items: center; + margin-right: 0; +} + +.model-select { + background-color: transparent; + border: none; + border-radius: 6px; + color: #334155; + font-size: 12px; + font-weight: 400; + padding: 4px 8px; + cursor: pointer; + transition: all var(--transition-fast); + width: auto; +} + +.model-select:hover { + background-color: #f8fafc; + color: #0f172a; +} + .model-select-trigger { display: flex; align-items: center; justify-content: space-between; - padding: 6px 10px; - border: 1px solid var(--color-details-hairline); + gap: 4px; + padding: 4px 8px; + border: none; border-radius: 6px; - background: var(--color-background-elevation-1); + background: transparent; cursor: pointer; - min-width: 160px; + min-width: auto; font-size: 12px; - color: var(--color-text-primary); + font-weight: 400; + color: var(--slate-700); transition: all var(--transition-fast); } .model-select-trigger:hover:not(:disabled) { - background: var(--color-background-elevation-2); - border-color: #00a4fe; + background: #f8fafc; + color: #0f172a; + border-color: transparent; } .model-select-trigger:disabled { @@ -413,9 +805,9 @@ ai-input-bar { } .dropdown-arrow { - margin-left: 8px; + margin-left: 4px; font-size: 10px; - color: var(--color-text-secondary); + color: #6b7280; transition: transform 0.2s ease; } @@ -699,25 +1091,63 @@ ai-input-bar { /* Input Area */ .input-container { - padding: 10px 16px; - background-color: var(--color-background); - backdrop-filter: blur(10px); - box-shadow: 0 -4px 16px var(--color-shadow-subtle); - border-radius: 28px; - border: 1.5px solid var(--color-background-elevation-1); - margin: 0 10px 10px 10px; + padding: 0; + background-color: hsl(var(--background)); + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); + border-radius: 20px; + border: 1px solid var(--slate-300); + margin: 0 auto 10px auto; transition: all var(--transition-medium); - width: calc(100% - 20px - 3px); + width: 100%; + max-width: 900px; box-sizing: border-box; + overflow: visible; } .input-row { display: flex; align-items: center; - gap: 12px; - padding: 6px 6px 6px 18px; + gap: 10px; + padding: 20px 12px; width: 100%; box-sizing: border-box; + background: transparent; + border: none; + border-radius: 0; +} + +.input-row.stacked { + flex-direction: column; + align-items: stretch; + padding: 20px 12px; + gap: 25px; +} + +.input-actions-toolbar { + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; + padding-top: 0; +} + +.left-actions, +.right-actions { + display: flex; + align-items: center; + gap: 8px; +} + +.inline-actions { + display: flex; + align-items: center; + gap: 8px; +} + +.actions-container { + display: flex; + align-items: center; + gap: 12px; } /* Ensure custom input element fills available width inside the row */ @@ -735,69 +1165,75 @@ ai-input-bar { } .input-container:focus-within { - border-color: var(--color-primary-container-border); - box-shadow: 0 4px 15px var(--color-shadow-subtle); - transform: translateY(-2px); + border-color: #5e789a; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); } .text-input { flex: 1; border: none; background: transparent; - padding-left: 100px; /* Make room for buttons on the second line */ - max-height: 84px; - line-height: 1.5; + padding: 0; + min-height: 24px; + max-height: 200px; + line-height: 1.43; /* 20px for 14px font */ resize: none; font-family: inherit; font-size: 14px; - color: var(--text-color); + color: hsl(var(--foreground)); outline: none; - padding: 10px 0; - letter-spacing: 0.01em; + letter-spacing: 0; } /* Allow larger autosize range in centered first-message view */ .centered-view .input-container.centered .input-row ai-chat-input .text-input { - max-height: 200px; + max-height: 300px; } .text-input::placeholder { font-weight: 400; + color: hsl(var(--muted-foreground)); } .send-button { display: flex; align-items: center; justify-content: center; - width: 28px; - height: 28px; - border-radius: 14px; - background-color: #def1fb; - border: 1px solid var(--color-primary-container-border); - color: #0767d6; + width: 32px; + height: 32px; + border-radius: 50%; /* Full circle */ + background: hsl(var(--primary)); /* #1093F4 */ + border: 1px solid hsl(var(--primary)); + color: hsl(var(--primary-foreground)); /* white */ cursor: pointer; transition: all var(--transition-fast); padding: 0; position: relative; overflow: hidden; + flex-shrink: 0; +} + +.send-button:not(.disabled) { + background: hsl(var(--primary)); + border-color: hsl(var(--primary)); + color: hsl(var(--primary-foreground)); } .send-button:hover:not(.disabled) { - background-color: var(--color-background-elevation-2); - transform: translateY(-2px); - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + background: hsl(var(--primary) / 0.9); /* 10% darker */ + border-color: hsl(var(--primary) / 0.9); } .send-button:active:not(.disabled) { - transform: translateY(0); + transform: scale(0.95); } .send-button.disabled { - /* background: var(--color-background-elevation-1); */ - color: var(--color-text-disabled); - background-color: #e2f3fb; - cursor: default; - box-shadow: none; + color: var(--slate-300); + background: hsl(var(--secondary)); + border-color: hsl(var(--border)); + cursor: not-allowed; + opacity: 0.4; } .send-button svg { diff --git a/front_end/panels/ai_chat/ui/common/Button.ts b/front_end/panels/ai_chat/ui/common/Button.ts new file mode 100644 index 0000000000..a96415a566 --- /dev/null +++ b/front_end/panels/ai_chat/ui/common/Button.ts @@ -0,0 +1,167 @@ +// Copyright 2025 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import * as Lit from '../../../../ui/lit/lit.js'; + +const {html, Decorators, nothing} = Lit; +const {customElement, property} = Decorators; + +export type ButtonVariant = 'default' | 'outline' | 'ghost' | 'destructive'; +export type ButtonSize = 'default' | 'sm' | 'lg' | 'icon'; + +@customElement('ai-button') +export class Button extends HTMLElement { + static readonly litTagName = Lit.StaticHtml.literal`ai-button`; + + @property({type: String}) variant: ButtonVariant = 'default'; + @property({type: String}) size: ButtonSize = 'default'; + @property({type: Boolean}) disabled = false; + @property({type: String}) label = ''; + + connectedCallback(): void { + this.#render(); + } + + #render(): void { + const variantClasses = { + 'default': 'btn-default', + 'outline': 'btn-outline', + 'ghost': 'btn-ghost', + 'destructive': 'btn-destructive' + }; + + const sizeClasses = { + 'default': 'btn-default-size', + 'sm': 'btn-sm', + 'lg': 'btn-lg', + 'icon': 'btn-icon' + }; + + const classes = `btn ${variantClasses[this.variant]} ${sizeClasses[this.size]} ${this.disabled ? 'btn-disabled' : ''}`; + + // clang-format off + Lit.render(html` + + + + `, this, {host: this}); + // clang-format on + } +} + +declare global { + interface HTMLElementTagNameMap { + 'ai-button': Button; + } +} diff --git a/front_end/panels/ai_chat/ui/common/SearchInput.ts b/front_end/panels/ai_chat/ui/common/SearchInput.ts new file mode 100644 index 0000000000..e13244cf3c --- /dev/null +++ b/front_end/panels/ai_chat/ui/common/SearchInput.ts @@ -0,0 +1,111 @@ +// Copyright 2025 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import * as Lit from '../../../../ui/lit/lit.js'; + +const {html, Decorators} = Lit; +const {customElement, property} = Decorators; + +@customElement('ai-search-input') +export class SearchInput extends HTMLElement { + static readonly litTagName = Lit.StaticHtml.literal`ai-search-input`; + + @property({type: String}) placeholder = 'Search...'; + @property({type: String}) value = ''; + @property({type: Boolean}) disabled = false; + + connectedCallback(): void { + this.#render(); + } + + #handleInput(e: Event): void { + const input = e.target as HTMLInputElement; + this.value = input.value; + + this.dispatchEvent(new CustomEvent('input', { + detail: { value: this.value }, + bubbles: true, + composed: true + })); + } + + #render(): void { + // clang-format off + Lit.render(html` + + +
+ + + + + +
+ `, this, {host: this}); + // clang-format on + } +} + +declare global { + interface HTMLElementTagNameMap { + 'ai-search-input': SearchInput; + } +} diff --git a/front_end/panels/ai_chat/ui/common/Switch.ts b/front_end/panels/ai_chat/ui/common/Switch.ts new file mode 100644 index 0000000000..68b07dd495 --- /dev/null +++ b/front_end/panels/ai_chat/ui/common/Switch.ts @@ -0,0 +1,129 @@ +// Copyright 2025 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import * as Lit from '../../../../ui/lit/lit.js'; + +const {html, Decorators, nothing} = Lit; +const {customElement, property} = Decorators; + +export interface SwitchChangeEvent { + checked: boolean; +} + +@customElement('ai-switch') +export class Switch extends HTMLElement { + static readonly litTagName = Lit.StaticHtml.literal`ai-switch`; + + @property({type: Boolean}) checked = false; + @property({type: Boolean}) disabled = false; + + #onChange?: (event: SwitchChangeEvent) => void; + + set onChange(fn: (event: SwitchChangeEvent) => void | undefined) { + this.#onChange = fn; + } + + connectedCallback(): void { + this.#render(); + } + + #handleClick(): void { + if (this.disabled) { + return; + } + + this.checked = !this.checked; + + if (this.#onChange) { + this.#onChange({checked: this.checked}); + } + + this.dispatchEvent(new CustomEvent('change', { + detail: {checked: this.checked}, + bubbles: true, + composed: true + })); + + this.#render(); + } + + #render(): void { + // clang-format off + Lit.render(html` + + +
{ + if (e.key === ' ' || e.key === 'Enter') { + e.preventDefault(); + this.#handleClick(); + } + }} + > + +
+ `, this, {host: this}); + // clang-format on + } +} + +declare global { + interface HTMLElementTagNameMap { + 'ai-switch': Switch; + } +} diff --git a/front_end/panels/ai_chat/ui/input/InputBar.ts b/front_end/panels/ai_chat/ui/input/InputBar.ts index aafde41f54..fcce2ec872 100644 --- a/front_end/panels/ai_chat/ui/input/InputBar.ts +++ b/front_end/panels/ai_chat/ui/input/InputBar.ts @@ -8,6 +8,8 @@ import * as BaseOrchestratorAgent from '../../core/BaseOrchestratorAgent.js'; import '../model_selector/ModelSelector.js'; import './ChatInput.js'; +import '../ConnectorsDropdown.js'; +import '../AgentDropdown.js'; const {html, Decorators} = Lit; const {customElement} = Decorators as any; @@ -28,6 +30,12 @@ export class InputBar extends HTMLElement { #selectedPromptType?: string|null; #agentButtonsHandler: (event: Event) => void = () => {}; #centered = false; + #showAgentMenu = false; + #showConnectorsDropdown = false; + #showAgentDropdown = false; + #selectedAgentId?: string; + #connectorsDropdownPosition?: {left: number; top: number}; + #agentDropdownPosition?: {left: number; top: number}; set placeholder(v: string) { this.#placeholder = v || ''; this.#render(); } set disabled(v: boolean) { this.#disabled = !!v; this.#render(); } @@ -96,6 +104,100 @@ export class InputBar extends HTMLElement { } } + #toggleAgentMenu(e: Event): void { + e.stopPropagation(); + this.#showAgentMenu = !this.#showAgentMenu; + this.#showConnectorsDropdown = false; // Close connectors when opening agents + this.#render(); + + if (this.#showAgentMenu) { + // Close menu when clicking outside + const closeMenu = () => { + this.#showAgentMenu = false; + this.#render(); + window.removeEventListener('click', closeMenu); + }; + // Delay listener attachment to avoid immediate close + setTimeout(() => window.addEventListener('click', closeMenu), 0); + } + } + + #toggleConnectorsDropdown(e: Event): void { + e.stopPropagation(); + this.#showConnectorsDropdown = !this.#showConnectorsDropdown; + this.#showAgentMenu = false; // Close agents when opening connectors + this.#showAgentDropdown = false; // Close agent dropdown + + if (this.#showConnectorsDropdown) { + const btn = this.querySelector('#connectors-button') as HTMLElement | null; + if (btn) { + const rect = btn.getBoundingClientRect(); + this.#connectorsDropdownPosition = { + left: rect.left + rect.width / 2 + window.scrollX, + top: rect.top + window.scrollY, + }; + } else { + this.#connectorsDropdownPosition = undefined; + } + } else { + this.#connectorsDropdownPosition = undefined; + } + + this.#render(); + + if (this.#showConnectorsDropdown) { + // Close dropdown when clicking outside + const closeDropdown = () => { + this.#showConnectorsDropdown = false; + this.#render(); + window.removeEventListener('click', closeDropdown); + }; + // Delay listener attachment to avoid immediate close + setTimeout(() => window.addEventListener('click', closeDropdown), 0); + } + } + + #toggleAgentDropdown(e: Event): void { + e.stopPropagation(); + this.#showAgentDropdown = !this.#showAgentDropdown; + this.#showAgentMenu = false; + this.#showConnectorsDropdown = false; + if (this.#showAgentDropdown) { + const btn = this.querySelector('#agent-dropdown-button') as HTMLElement | null; + if (btn) { + const rect = btn.getBoundingClientRect(); + this.#agentDropdownPosition = { + left: rect.left + rect.width / 2 + window.scrollX, + top: rect.top + window.scrollY, + }; + } else { + this.#agentDropdownPosition = undefined; + } + } else { + this.#agentDropdownPosition = undefined; + } + this.#render(); + + if (this.#showAgentDropdown) { + const closeDropdown = () => { + this.#showAgentDropdown = false; + this.#agentDropdownPosition = undefined; + this.#render(); + window.removeEventListener('click', closeDropdown); + }; + setTimeout(() => window.addEventListener('click', closeDropdown), 0); + } + } + + #handleAgentSelect(agent: { id: string; name: string }): void { + this.#selectedAgentId = agent.id; + this.dispatchEvent(new CustomEvent('agent-changed', { + bubbles: true, + detail: { agentId: agent.id, agentName: agent.name } + })); + this.#render(); + } + #render(): void { const imagePreview = this.#imageInput ? html`
@@ -129,40 +231,120 @@ export class InputBar extends HTMLElement { > ` : Lit.nothing; + // SVG icons matching demo-builder.io / lucide-react style + const inlineActions = html` +
+ + + +
+ + ${this.#showConnectorsDropdown ? html` + e.stopPropagation()} + > + ` : Lit.nothing} +
+ +
+ + ${this.#showAgentDropdown ? html` + this.#handleAgentSelect(agent)} + .onClose=${() => { this.#showAgentDropdown = false; this.#render(); }} + @click=${(e: Event) => e.stopPropagation()} + > + ` : Lit.nothing} +
+
+ `; + + const micButton = html` + + `; + Lit.render(html`
${imagePreview} -
+
this.#emitSendAndClear((e as CustomEvent).detail)} @inputchange=${(e: Event) => this.dispatchEvent(new CustomEvent('inputchange', { bubbles: true, detail: (e as CustomEvent).detail }))} > -
-
- ${agentButtons} -
- ${modelSelector} - + +
+
+ ${inlineActions} +
+
+
+ ${modelSelector} + ${micButton} + +
+
+ ${this.#centered ? Lit.nothing : html` +
+ ${agentButtons} +
+ `}
`, this, {host: this}); } diff --git a/front_end/panels/ai_chat/ui/settings/utils/styles.ts b/front_end/panels/ai_chat/ui/settings/utils/styles.ts index 3820374053..acabc0a342 100644 --- a/front_end/panels/ai_chat/ui/settings/utils/styles.ts +++ b/front_end/panels/ai_chat/ui/settings/utils/styles.ts @@ -8,55 +8,64 @@ export function getSettingsStyles(): string { return ` .settings-dialog { - color: var(--color-text-primary); - background-color: var(--color-background); + color: hsl(var(--foreground)); + background-color: hsl(var(--background)); } .settings-content { padding: 0; max-width: 100%; + background: hsl(220 25% 97%); /* Slate 50 - #F7F9FC equivalent */ } .settings-header { display: flex; justify-content: space-between; align-items: center; - padding: 16px 20px; - border-bottom: 1px solid var(--color-details-hairline); + padding: 16px 24px; + border-bottom: 1px solid hsl(var(--border)); + background: hsl(var(--background)); } .settings-title { - font-size: 18px; - font-weight: 500; + font-size: 24px; + font-weight: 600; margin: 0; - color: var(--color-text-primary); + color: hsl(var(--foreground)); } .settings-close-button { background: none; border: none; - font-size: 20px; + font-size: 24px; cursor: pointer; - color: var(--color-text-secondary); + color: hsl(var(--muted-foreground)); padding: 4px 8px; + line-height: 1; } .settings-close-button:hover { - color: var(--color-text-primary); + color: hsl(var(--foreground)); } .provider-selection-section { - padding: 16px 20px; - border-bottom: 1px solid var(--color-details-hairline); + padding: 24px; + margin: 16px 24px; + border-radius: 6px; + border: 1px solid hsl(var(--border)); + background: hsl(var(--background)); } .provider-select { - margin-top: 8px; + margin-top: 12px; } .provider-content { - padding: 16px 20px; - border-bottom: 1px solid var(--color-details-hairline); + padding: 24px; + margin: 0 24px 16px; + border-radius: 6px; + border: 1px solid hsl(var(--border)); + background: hsl(var(--background)); } .settings-section { @@ -67,44 +76,44 @@ export function getSettingsStyles(): string { font-size: 16px; font-weight: 500; margin: 0 0 12px 0; - color: var(--color-text-primary); + color: hsl(var(--foreground)); } .settings-label { font-size: 14px; font-weight: 500; margin-bottom: 6px; - color: var(--color-text-primary); + color: hsl(var(--foreground)); } .settings-hint { font-size: 12px; - color: var(--color-text-secondary); + color: hsl(var(--muted-foreground)); margin-bottom: 8px; } .settings-description { font-size: 14px; - color: var(--color-text-secondary); + color: hsl(var(--muted-foreground)); margin: 4px 0 12px 0; } .settings-input, .settings-select { width: 100%; padding: 8px 12px; - border-radius: 4px; - border: 1px solid var(--color-details-hairline); - background-color: var(--color-background-elevation-2); - color: var(--color-text-primary); + border-radius: 6px; + border: 1px solid hsl(var(--border)); + background-color: hsl(var(--background)); + color: hsl(var(--foreground)); font-size: 14px; box-sizing: border-box; - height: 32px; + height: 40px; } .settings-input:focus, .settings-select:focus { outline: none; - border-color: var(--color-primary); - box-shadow: 0 0 0 1px var(--color-primary-opacity-30); + border-color: hsl(var(--primary)); + box-shadow: 0 0 0 2px hsl(var(--ring) / 0.2); } .settings-status { @@ -255,8 +264,9 @@ export function getSettingsStyles(): string { justify-content: flex-end; align-items: center; gap: 12px; - padding: 16px 20px; - border-top: 1px solid var(--color-details-hairline); + padding: 16px 24px; + border-top: 1px solid hsl(var(--border)); + background: hsl(var(--background)); } .save-status { @@ -267,18 +277,22 @@ export function getSettingsStyles(): string { .settings-button { padding: 8px 16px; - border-radius: 4px; + height: 40px; + border-radius: 6px; font-size: 14px; cursor: pointer; transition: all 0.2s; font-family: inherit; - background-color: var(--color-background-elevation-1); - border: 1px solid var(--color-details-hairline); - color: var(--color-text-primary); + background-color: hsl(var(--background)); + border: 1px solid hsl(var(--border)); + color: hsl(var(--foreground)); + display: inline-flex; + align-items: center; + justify-content: center; } .settings-button:hover { - background-color: var(--color-background-elevation-2); + background-color: hsl(var(--secondary)); } .settings-button:disabled { @@ -289,13 +303,13 @@ export function getSettingsStyles(): string { /* Add button styling */ .add-button { min-width: 60px; - border-radius: 4px; - font-size: 12px; - background-color: var(--color-background-elevation-1); + border-radius: 6px; + font-size: 14px; + background-color: hsl(var(--background)); } .add-button:hover { - background-color: var(--color-background-elevation-2); + background-color: hsl(var(--secondary)); } /* Icon button styling */ @@ -333,26 +347,32 @@ export function getSettingsStyles(): string { justify-content: center; } - /* Cancel button */ + /* Cancel button - Outline variant */ .cancel-button { - background-color: var(--color-background-elevation-1); - border: 1px solid var(--color-details-hairline); - color: var(--color-text-primary); + background-color: hsl(var(--background)); + border: 1px solid hsl(var(--border)); + color: hsl(var(--foreground)); + height: 40px; + padding: 8px 16px; + border-radius: 6px; } .cancel-button:hover { - background-color: var(--color-background-elevation-2); + background-color: hsl(var(--secondary)); } - /* Save button */ + /* Save button - Primary variant */ .save-button { - background-color: var(--color-primary); - border: 1px solid var(--color-primary); - color: white; + background-color: hsl(var(--primary)); + border: 1px solid hsl(var(--primary)); + color: hsl(var(--primary-foreground)); + height: 40px; + padding: 8px 16px; + border-radius: 6px; } .save-button:hover { - background-color: var(--color-primary-variant); + background-color: hsl(var(--primary) / 0.9); } .clear-button { From bde30d5052cc3a623a0d556e2f7ca3474dc7b0f7 Mon Sep 17 00:00:00 2001 From: Tyson Thomas Date: Sun, 14 Dec 2025 11:02:43 -0800 Subject: [PATCH 3/7] wip: update UI 2 --- front_end/panels/ai_chat/BUILD.gn | 6 + front_end/panels/ai_chat/ui/AIChatPanel.ts | 66 ++++++- front_end/panels/ai_chat/ui/ChatView.ts | 36 ++-- front_end/panels/ai_chat/ui/SidebarNav.ts | 52 ++++- front_end/panels/ai_chat/ui/chatView.css | 186 +++++------------- front_end/panels/ai_chat/ui/common/Button.ts | 1 + .../panels/ai_chat/ui/common/SearchInput.ts | 1 + front_end/panels/ai_chat/ui/common/Switch.ts | 1 + front_end/panels/ai_chat/ui/input/InputBar.ts | 14 +- .../panels/ai_chat/ui/message/MessageList.ts | 3 +- 10 files changed, 194 insertions(+), 172 deletions(-) diff --git a/front_end/panels/ai_chat/BUILD.gn b/front_end/panels/ai_chat/BUILD.gn index fda012d3e9..602818036b 100644 --- a/front_end/panels/ai_chat/BUILD.gn +++ b/front_end/panels/ai_chat/BUILD.gn @@ -37,6 +37,9 @@ devtools_module("ai_chat") { "ui/SidebarNav.ts", "ui/ConnectorsDropdown.ts", "ui/AgentDropdown.ts", + "ui/common/Switch.ts", + "ui/common/Button.ts", + "ui/common/SearchInput.ts", "ui/LiveAgentSessionComponent.ts", "ui/ToolCallComponent.ts", "ui/ToolResultComponent.ts", @@ -281,6 +284,9 @@ _ai_chat_sources = [ "ui/SidebarNav.ts", "ui/ConnectorsDropdown.ts", "ui/AgentDropdown.ts", + "ui/common/Switch.ts", + "ui/common/Button.ts", + "ui/common/SearchInput.ts", "ui/LiveAgentSessionComponent.ts", "ui/ToolCallComponent.ts", "ui/ToolResultComponent.ts", diff --git a/front_end/panels/ai_chat/ui/AIChatPanel.ts b/front_end/panels/ai_chat/ui/AIChatPanel.ts index 137f8c15cc..9c0c306067 100644 --- a/front_end/panels/ai_chat/ui/AIChatPanel.ts +++ b/front_end/panels/ai_chat/ui/AIChatPanel.ts @@ -84,6 +84,7 @@ localStorage.removeItem = (key: string) => { import chatViewStyles from './chatView.css.js'; import { ChatView } from './ChatView.js'; +import type { SidebarNavItem } from './SidebarNav.js'; import { type ChatMessage, ChatMessageEntity, type ImageInputData, type ModelChatMessage, State as ChatViewState } from '../models/ChatTypes.js'; import { HelpDialog } from './HelpDialog.js'; import { SettingsDialog } from './SettingsDialog.js'; @@ -509,7 +510,7 @@ export class AIChatPanel extends UI.Panel.Panel { this.#toolbarContainer = document.createElement('div'); this.#toolbarContainer.classList.add('toolbar-container'); this.#toolbarContainer.setAttribute('role', 'toolbar'); - this.#toolbarContainer.style.cssText = 'display: flex; justify-content: space-between; width: 100%; padding: 0 4px; box-sizing: border-box; margin: 0 0 10px 0;'; + this.#toolbarContainer.style.cssText = 'display: flex; justify-content: space-between; width: calc(100% - 36px); margin-left: 36px; padding: 0 4px; box-sizing: border-box; margin-top: 0; margin-bottom: 0; background: white;'; this.contentElement.appendChild(this.#toolbarContainer); // Create left toolbar using DOM method (not constructor) @@ -519,6 +520,27 @@ export class AIChatPanel extends UI.Panel.Panel { this.#rightToolbar = this.#toolbarContainer.createChild('devtools-toolbar', 'ai-chat-right-toolbar') as UI.Toolbar.Toolbar; this.#rightToolbar.style.cssText = 'overflow: visible;'; + // Add "What's new" pill to toolbar (reuse existing styles from chatView.css) + const whatsNewPill = document.createElement('button'); + whatsNewPill.className = 'whats-new-pill'; + whatsNewPill.setAttribute('aria-label', "What's new in v1.01"); + // Float at the top, centered, above all content; enforce blue background and border + whatsNewPill.style.cssText = 'position: fixed; top: 12px; left: 50%; transform: translateX(-50%); z-index: 1000; background: hsl(var(--primary)); border: 1px solid hsl(var(--primary));'; + whatsNewPill.innerHTML = ` + + + + + + What's new in v1.01 + `; + // Place the pill between the left (new chat) and right (settings/close) toolbars + if (this.#rightToolbar && this.#toolbarContainer.contains(this.#rightToolbar)) { + this.#toolbarContainer.insertBefore(whatsNewPill, this.#rightToolbar); + } else { + this.#toolbarContainer.appendChild(whatsNewPill); + } + // Create toolbar buttons ONCE this.#newChatButton = new UI.Toolbar.ToolbarButton( i18nString(UIStrings.newChat), @@ -544,8 +566,6 @@ export class AIChatPanel extends UI.Panel.Panel { this ); - this.#settingsMenuButton = this.#createSettingsMenuButton(); - this.#closeButton = new UI.Toolbar.ToolbarButton( 'Close Chat Window', 'cross', @@ -560,7 +580,6 @@ export class AIChatPanel extends UI.Panel.Panel { // Add buttons to toolbars ONCE (order matters for right toolbar) this.#leftToolbar.appendToolbarItem(this.#newChatButton); - this.#rightToolbar.appendToolbarItem(this.#settingsMenuButton); this.#rightToolbar.appendToolbarItem(this.#closeButton); // Create container for the chat view @@ -577,6 +596,8 @@ export class AIChatPanel extends UI.Panel.Panel { // Add event listener for manual setup requests from ChatView this.#chatView.addEventListener('manual-setup-requested', this.#handleManualSetupRequest.bind(this)); + // Wire sidebar navigation actions + this.#chatView.addEventListener('sidebar-nav', this.#handleSidebarNavEvent.bind(this)); } /** @@ -1210,6 +1231,43 @@ export class AIChatPanel extends UI.Panel.Panel { this.#onSettingsClick(); } + #handleSidebarNavEvent(event: Event): void { + const detail = (event as CustomEvent<{item: SidebarNavItem}>).detail; + if (!detail?.item) { + return; + } + this.#handleSidebarNavigation(detail.item); + } + + #handleSidebarNavigation(item: SidebarNavItem): void { + switch (item) { + case 'settings': + this.#onSettingsClick(); + break; + case 'history': + void this.#onHistoryClick(); + break; + case 'help': + this.#onHelpClick(); + break; + case 'evaluations': + this.#onEvaluationTestClick(); + break; + case 'connectors': + this.#onMCPConnectorsClick(); + break; + case 'agents': + this.#onAgentStudioClick(); + break; + case 'workflows': + this.#onAgentStudioClick(); + break; + case 'chat': + default: + break; + } + } + /** * Update the settings button highlight based on credentials state */ diff --git a/front_end/panels/ai_chat/ui/ChatView.ts b/front_end/panels/ai_chat/ui/ChatView.ts index f66535f15d..294173e02b 100644 --- a/front_end/panels/ai_chat/ui/ChatView.ts +++ b/front_end/panels/ai_chat/ui/ChatView.ts @@ -34,6 +34,7 @@ import './SidebarNav.js'; // Shared chat types import type { ChatMessage, ModelChatMessage, ToolResultMessage, AgentSessionMessage, ImageInputData } from '../models/ChatTypes.js'; import { ChatMessageEntity, State } from '../models/ChatTypes.js'; +import type { SidebarNavItem } from './SidebarNav.js'; const logger = createLogger('ChatView'); @@ -247,6 +248,7 @@ export class ChatView extends HTMLElement { #isVersionBannerDismissed = false; #showConnectorsDropdown = false; #connectorsDropdownPosition?: {left: string; bottom: string}; + #activeSidebarItem: SidebarNavItem = 'chat'; connectedCallback(): void { // Initialize the prompt button click handler @@ -744,6 +746,15 @@ export class ChatView extends HTMLElement { } } + #handleSidebarNavClick(item: SidebarNavItem): void { + this.#activeSidebarItem = item; + this.dispatchEvent(new CustomEvent('sidebar-nav', { + bubbles: true, + detail: {item}, + })); + this.#render(); + } + #render(): void { // clang-format off // Check if the last message is a MODEL message indicating a tool is running @@ -849,26 +860,16 @@ export class ChatView extends HTMLElement { Lit.render(html` ${stylesTemplate}
- + +
${this.#renderVersionBanner()}
-
- - -
- + Browser Operator logo
How can I help you today?
@@ -892,7 +893,10 @@ export class ChatView extends HTMLElement { Lit.render(html` ${stylesTemplate}
- + +
${this.#renderVersionBanner()} diff --git a/front_end/panels/ai_chat/ui/SidebarNav.ts b/front_end/panels/ai_chat/ui/SidebarNav.ts index 4e481acfbc..be5891885e 100644 --- a/front_end/panels/ai_chat/ui/SidebarNav.ts +++ b/front_end/panels/ai_chat/ui/SidebarNav.ts @@ -7,7 +7,7 @@ import * as Lit from '../../../ui/lit/lit.js'; const {html, Decorators} = Lit; const {customElement} = Decorators as any; -export type SidebarNavItem = 'chat' | 'agents' | 'connectors' | 'settings' | 'workflows'; +export type SidebarNavItem = 'chat' | 'agents' | 'connectors' | 'settings' | 'workflows' | 'history' | 'help' | 'evaluations'; export interface SidebarNavProps { activeItem?: SidebarNavItem; @@ -41,6 +41,9 @@ export class SidebarNav extends HTMLElement { { id: 'connectors' as const, icon: this.#getConnectorsIcon(), label: 'Connectors' }, { id: 'workflows' as const, icon: this.#getWorkflowsIcon(), label: 'Workflows' }, { id: 'settings' as const, icon: this.#getSettingsIcon(), label: 'Settings' }, + { id: 'history' as const, icon: this.#getHistoryIcon(), label: 'History' }, + { id: 'help' as const, icon: this.#getHelpIcon(), label: 'Help' }, + { id: 'evaluations' as const, icon: this.#getEvaluationsIcon(), label: 'Evaluations' }, ]; Lit.render(html` @@ -48,13 +51,15 @@ export class SidebarNav extends HTMLElement { :host { display: flex; flex-direction: column; - width: 40px; + width: 36px; background: hsl(var(--sidebar-background, 0 0% 98%)); border-right: 1px solid #e9e9e9; - padding: 8px 0; + padding: 14px 0 18px; gap: 16px; align-items: center; flex-shrink: 0; + justify-content: flex-start; + position: static; } .nav-item { @@ -74,6 +79,10 @@ export class SidebarNav extends HTMLElement { background: rgba(16, 147, 244, 0.05); } + .nav-item:hover svg { + fill: hsl(var(--foreground, 217.2 32.4% 27.5%)); + } + .nav-item.active { background: rgba(16, 147, 244, 0.1); } @@ -81,8 +90,8 @@ export class SidebarNav extends HTMLElement { .nav-item svg { width: 20px; height: 20px; - fill: hsl(var(--foreground, 217.2 32.4% 27.5%)); - transition: fill 0.2s ease; + fill: hsl(var(--muted-foreground, 213.5 16.9% 52.5%)); + transition: fill 0.2s ease, background-color 0.2s ease; } .nav-item.active svg { @@ -173,6 +182,39 @@ export class SidebarNav extends HTMLElement { `; } + + #getHistoryIcon() { + return html` + + + + + + `; + } + + #getHelpIcon() { + return html` + + + + + + `; + } + + #getEvaluationsIcon() { + return html` + + + + + + + + + `; + } } declare global { diff --git a/front_end/panels/ai_chat/ui/chatView.css b/front_end/panels/ai_chat/ui/chatView.css index 0cb7ff9b7d..800cd2738d 100644 --- a/front_end/panels/ai_chat/ui/chatView.css +++ b/front_end/panels/ai_chat/ui/chatView.css @@ -111,6 +111,12 @@ color-scheme: light dark; } +:host { + flex: 1 1 auto; + min-height: 0; /* allow host to shrink within parent flex layout */ + height: 100%; +} + /* Flexbox layout for proper space allocation */ ai-message-list { flex: 1 1 auto; @@ -137,11 +143,28 @@ ai-input-bar { display: flex; flex-direction: row; /* Changed to row to accommodate sidebar */ height: 100%; + min-height: 0; /* Allow container to shrink to parent height */ + max-height: 100%; /* Prevent overflow beyond parent tab */ width: 100%; position: relative; overflow: hidden; /* Ensure only the message list scrolls */ - background: #f7f9fc; + background: hsl(var(--background, 0 0% 100%)); transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); + align-items: flex-start; +} + +/* Toolbar strip above chat content */ +.toolbar-container { + background: hsl(var(--background, 0 0% 100%)); +} + +/* Ensure sidebar stays pinned to the top/left and main content offsets for it */ +ai-sidebar-nav { + position: fixed; + top: 0; + left: 0; + z-index: 10; + height: 100vh; } .main-content { @@ -149,9 +172,12 @@ ai-input-bar { flex-direction: column; flex: 1 1 auto; min-width: 0; - height: 100%; + height: 655px; + max-height: 655px; + min-height: 0; /* allow internal flex children to shrink */ overflow: hidden; - background: #f7f9fc; + background: hsl(var(--background, 0 0% 100%)); + margin-left: 36px; /* match the sidebar width to remove extra gutter */ } /* Legacy selector kept for backwards compatibility (unused by ai-message-list) */ @@ -239,9 +265,9 @@ ai-input-bar { padding: 4px 12px; height: 22px; border-radius: 16px; - border: 1px solid var(--blue-selected-border); - background: var(--blue-selected); - color: hsl(var(--primary)); + border: 1px solid hsl(var(--primary)); + background: hsl(var(--primary)); + color: hsl(var(--foreground, 217.2 32.4% 27.5%)); font-size: 12px; font-weight: 500; letter-spacing: -0.24px; @@ -250,8 +276,8 @@ ai-input-bar { } .whats-new-pill:hover { - background: #d0ebff; - border-color: #a0d5ff; + background: hsl(var(--primary) / 0.9); + border-color: hsl(var(--primary) / 0.9); } .whats-new-pill .pill-icon { @@ -259,7 +285,7 @@ ai-input-bar { height: 14px; display: flex; align-items: center; - color: hsl(var(--primary)); + color: hsl(var(--foreground, 217.2 32.4% 27.5%)); } .welcome-close { @@ -278,28 +304,31 @@ ai-input-bar { width: 56px; height: 56px; border-radius: 16px; - background: radial-gradient(circle, rgba(248, 250, 255, 0.3) 0%, rgba(223, 233, 255, 0.3) 100%); + background: radial-gradient(circle, rgba(248, 250, 255, 0.45) 0%, rgba(223, 233, 255, 0.55) 100%); display: grid; place-items: center; - box-shadow: 0 8px 24px rgba(48, 99, 191, 0.15); + box-shadow: 0 10px 30px rgba(16, 147, 244, 0.14); position: relative; } +.welcome-icon img { + width: 48px; + height: 48px; + border-radius: 12px; + object-fit: cover; + box-shadow: 0 8px 24px rgba(0, 164, 254, 0.22); +} + .welcome-icon::before { content: ''; position: absolute; inset: 0; border-radius: 16px; background: radial-gradient(circle, #f8faff 0%, #dfe9ff 100%); - opacity: 0.3; + opacity: 0.22; z-index: -1; } -.icon-star { - color: #5a7cf7; - font-size: 24px; -} - .welcome-title { font-size: 16px; font-weight: 500; @@ -364,6 +393,7 @@ ai-input-bar { .example-chip:hover { background: hsl(var(--border)); /* #D3D9E5 */ border-color: hsl(var(--border)); + color: hsl(var(--foreground)); } .example-chip:active { @@ -387,6 +417,7 @@ ai-input-bar { .hero-chip:hover { background: hsl(var(--border)); border-color: hsl(var(--border)); + color: hsl(var(--foreground)); } @keyframes fadeInScale { @@ -413,7 +444,7 @@ ai-input-bar { transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); animation: slideUp 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.3s both; border-radius: 20px; - border: 1px solid var(--slate-300); + border: 1px solid hsl(var(--border)); } @keyframes slideUp { @@ -434,123 +465,6 @@ ai-input-bar { border-radius: 4px; } -/* Prompt buttons styling */ -.prompt-buttons-container { - display: flex; - gap: 8px; - align-items: center; - margin-right: 6px; - justify-content: flex-start; /* Ensure left alignment */ -} - -.prompt-buttons-container.second-line { - top: 35px; /* Position on the second line of the textarea */ -} - -.prompt-button { - width: 28px; - height: 28px; - border-radius: 14px; - background-color: var(--color-background-elevation-1); - border: 1px solid var(--color-primary-container-border); - cursor: pointer; - transition: all var(--transition-fast); - display: flex; - align-items: center; - justify-content: center; - position: relative; - overflow: hidden; - padding: 0; - font-size: 14px; -} - -/* Hide labels by default */ -.prompt-label { - display: none; - font-size: 12px; - margin-left: 4px; - font-weight: normal; -} - -.prompt-label.selected { - color: #0767d6; -} - -/* Show labels in centered view when width is sufficient */ -@media (min-width: 300px) { - .centered-view .prompt-button { - width: auto; - padding: 0 12px; - } - - .centered-view .prompt-label { - display: inline; - } -} - -.prompt-button:hover { - background-color: var(--color-background-elevation-2); - transform: translateY(-2px); - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); -} - -.prompt-button:active { - transform: translateY(0); -} - -.prompt-button.selected { - background-color: #def1fb; - border: 2px solid var(--color-primary-container-border); - box-shadow: 0 0 0 1px var(--color-primary-container-border); - transform: translateY(-1px); -} - -.prompt-button.customized { - position: relative; -} - -.prompt-custom-indicator { - position: absolute; - top: 2px; - right: 2px; - font-size: 8px; - color: var(--color-accent-blue); - font-weight: bold; -} - - - -.prompt-buttons-row { - display: flex; - width: 100%; - padding: 8px 4px 0 4px; - justify-content: space-between; - align-items: center; - margin-top: 5px; - border-top: 1px solid #eef3ff; -} - -/* Adjust spacing for buttons with text in centered view */ -@media (min-width: 300px) { - .centered-view .prompt-buttons-row { - padding: 10px 2px 2px 2px; - justify-content: space-between; - } - - .centered-view .prompt-buttons-container { - gap: 12px; - margin-right: 0; - justify-content: flex-start; /* Always left-aligned */ - margin-left: 12px; /* Add left margin for spacing */ - } - - .centered-view .actions-container { - margin-right: 12px; - } -} - - - .actions-container { display: flex; align-items: center; @@ -1095,7 +1009,7 @@ ai-input-bar { background-color: hsl(var(--background)); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); border-radius: 20px; - border: 1px solid var(--slate-300); + border: 1px solid hsl(var(--border)); margin: 0 auto 10px auto; transition: all var(--transition-medium); width: 100%; diff --git a/front_end/panels/ai_chat/ui/common/Button.ts b/front_end/panels/ai_chat/ui/common/Button.ts index a96415a566..b2f18f265f 100644 --- a/front_end/panels/ai_chat/ui/common/Button.ts +++ b/front_end/panels/ai_chat/ui/common/Button.ts @@ -165,3 +165,4 @@ declare global { 'ai-button': Button; } } + diff --git a/front_end/panels/ai_chat/ui/common/SearchInput.ts b/front_end/panels/ai_chat/ui/common/SearchInput.ts index e13244cf3c..bdf1aaa2d8 100644 --- a/front_end/panels/ai_chat/ui/common/SearchInput.ts +++ b/front_end/panels/ai_chat/ui/common/SearchInput.ts @@ -109,3 +109,4 @@ declare global { 'ai-search-input': SearchInput; } } + diff --git a/front_end/panels/ai_chat/ui/common/Switch.ts b/front_end/panels/ai_chat/ui/common/Switch.ts index 68b07dd495..893ee888e1 100644 --- a/front_end/panels/ai_chat/ui/common/Switch.ts +++ b/front_end/panels/ai_chat/ui/common/Switch.ts @@ -127,3 +127,4 @@ declare global { 'ai-switch': Switch; } } + diff --git a/front_end/panels/ai_chat/ui/input/InputBar.ts b/front_end/panels/ai_chat/ui/input/InputBar.ts index fcce2ec872..fda59c1b4a 100644 --- a/front_end/panels/ai_chat/ui/input/InputBar.ts +++ b/front_end/panels/ai_chat/ui/input/InputBar.ts @@ -4,8 +4,6 @@ import * as Lit from '../../../../ui/lit/lit.js'; import type { ImageInputData } from '../../models/ChatTypes.js'; -import * as BaseOrchestratorAgent from '../../core/BaseOrchestratorAgent.js'; - import '../model_selector/ModelSelector.js'; import './ChatInput.js'; import '../ConnectorsDropdown.js'; @@ -208,8 +206,6 @@ export class InputBar extends HTMLElement {
` : Lit.nothing; - const agentButtons = BaseOrchestratorAgent.renderAgentTypeButtons(this.#selectedPromptType ?? null, this.#agentButtonsHandler, this.#centered); - const modelSelector = ( this.#currentProvider !== 'browseroperator' && this.#modelOptions && @@ -301,7 +297,10 @@ export class InputBar extends HTMLElement { `; Lit.render(html` -
+
${imagePreview}
- ${this.#centered ? Lit.nothing : html` -
- ${agentButtons} -
- `}
`, this, {host: this}); } diff --git a/front_end/panels/ai_chat/ui/message/MessageList.ts b/front_end/panels/ai_chat/ui/message/MessageList.ts index 396d3f8c34..d722b5ecd8 100644 --- a/front_end/panels/ai_chat/ui/message/MessageList.ts +++ b/front_end/panels/ai_chat/ui/message/MessageList.ts @@ -64,7 +64,8 @@ export class MessageList extends HTMLElement { style.textContent = ` ai-message-list { display: block; - height: 100%; + height: 562px; + max-height: 562px; flex: 1 1 auto; position: relative; z-index: 0; From 2495eda6cd1b567017f9d42c3185470dbcab96ad Mon Sep 17 00:00:00 2001 From: Tyson Thomas Date: Sun, 18 Jan 2026 20:14:03 -0800 Subject: [PATCH 4/7] wip: updated design --- config/gni/devtools_grd_files.gni | 7 +- config/gni/devtools_image_files.gni | 2 +- .../Images/src/browser-operator-logo.svg | 4 + front_end/panels/ai_chat/BUILD.gn | 8 + front_end/panels/ai_chat/core/Version.ts | 1 + front_end/panels/ai_chat/ui/AIChatPanel.ts | 91 ++- front_end/panels/ai_chat/ui/AgentDropdown.ts | 66 +- front_end/panels/ai_chat/ui/ChatView.ts | 181 +++-- .../panels/ai_chat/ui/ConnectorsDropdown.ts | 68 +- front_end/panels/ai_chat/ui/ConnectorsView.ts | 518 +++++++++++++ .../panels/ai_chat/ui/EvaluationsView.ts | 707 ++++++++++++++++++ front_end/panels/ai_chat/ui/HistoryView.ts | 585 +++++++++++++++ .../panels/ai_chat/ui/OnboardingDialog.ts | 7 +- front_end/panels/ai_chat/ui/SettingsView.ts | 459 ++++++++++++ front_end/panels/ai_chat/ui/SidebarNav.ts | 63 +- front_end/panels/ai_chat/ui/chatView.css | 261 +++++-- .../panels/ai_chat/ui/input/ChatInput.ts | 7 +- .../ui/mcp/MCPConnectorsCatalogDialog.ts | 26 +- 18 files changed, 2748 insertions(+), 313 deletions(-) create mode 100644 front_end/Images/src/browser-operator-logo.svg create mode 100644 front_end/panels/ai_chat/ui/ConnectorsView.ts create mode 100644 front_end/panels/ai_chat/ui/EvaluationsView.ts create mode 100644 front_end/panels/ai_chat/ui/HistoryView.ts create mode 100644 front_end/panels/ai_chat/ui/SettingsView.ts diff --git a/config/gni/devtools_grd_files.gni b/config/gni/devtools_grd_files.gni index 6d90ed50b2..f9b4ba898c 100644 --- a/config/gni/devtools_grd_files.gni +++ b/config/gni/devtools_grd_files.gni @@ -64,7 +64,7 @@ grd_files_bundled_sources = [ "front_end/Images/breakpoint-circle.svg", "front_end/Images/breakpoint-crossed-filled.svg", "front_end/Images/breakpoint-crossed.svg", - "front_end/Images/browser-operator-logo.png", + "front_end/Images/browser-operator-logo.svg", "front_end/Images/brush-2.svg", "front_end/Images/brush-filled.svg", "front_end/Images/brush.svg", @@ -646,6 +646,8 @@ grd_files_bundled_sources = [ "front_end/panels/ai_assistance/ai_assistance.js", "front_end/panels/ai_chat/ui/AIChatPanel.js", "front_end/panels/ai_chat/ui/ChatView.js", + "front_end/panels/ai_chat/ui/ConnectorsView.js", + "front_end/panels/ai_chat/ui/SettingsView.js", "front_end/panels/ai_chat/ui/LiveAgentSessionComponent.js", "front_end/panels/ai_chat/ui/ToolCallComponent.js", "front_end/panels/ai_chat/ui/ToolResultComponent.js", @@ -867,7 +869,8 @@ grd_files_bundled_sources = [ "front_end/panels/ai_chat/agent_framework/implementation/agents/ScrollActionAgent.js", "front_end/panels/ai_chat/agent_framework/implementation/agents/WebTaskAgent.js", "front_end/panels/ai_chat/agent_framework/implementation/agents/SearchAgent.js", - "front_end/panels/ai_chat/agent_framework/implementation/agents/ActionAgentV0.js", + "front_end/panels/ai_chat/agent_framework/implementation/agents/ActionAgent.js", + "front_end/panels/ai_chat/agent_framework/implementation/agents/ActionAgentV1.js", "front_end/panels/ai_chat/agent_framework/implementation/agents/ActionAgentV2.js", "front_end/panels/ai_chat/common/MarkdownViewerUtil.js", "front_end/panels/ai_chat/evaluation/runner/VisionAgentEvaluationRunner.js", diff --git a/config/gni/devtools_image_files.gni b/config/gni/devtools_image_files.gni index 3b6d896ee6..3555304c8a 100644 --- a/config/gni/devtools_image_files.gni +++ b/config/gni/devtools_image_files.gni @@ -20,12 +20,12 @@ devtools_image_files = [ "touchCursor.png", "gdp-logo-light.png", "gdp-logo-dark.png", - "browser-operator-logo.png", "demo.gif", ] devtools_svg_sources = [ "3d-center.svg", + "browser-operator-logo.svg", "3d-pan.svg", "3d-rotate.svg", "accelerometer-back.svg", diff --git a/front_end/Images/src/browser-operator-logo.svg b/front_end/Images/src/browser-operator-logo.svg new file mode 100644 index 0000000000..4e4f47deb9 --- /dev/null +++ b/front_end/Images/src/browser-operator-logo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/front_end/panels/ai_chat/BUILD.gn b/front_end/panels/ai_chat/BUILD.gn index 288a6bcb99..aa9151492c 100644 --- a/front_end/panels/ai_chat/BUILD.gn +++ b/front_end/panels/ai_chat/BUILD.gn @@ -22,6 +22,10 @@ devtools_module("ai_chat") { "core/AgentTestRunner.ts", "ui/AIChatPanel.ts", "ui/ChatView.ts", + "ui/ConnectorsView.ts", + "ui/SettingsView.ts", + "ui/HistoryView.ts", + "ui/EvaluationsView.ts", "ui/message/MessageList.ts", "ui/message/UserMessage.ts", "ui/message/ModelMessage.ts", @@ -312,6 +316,10 @@ _ai_chat_sources = [ "core/AgentTestRunner.ts", "ui/AIChatPanel.ts", "ui/ChatView.ts", + "ui/ConnectorsView.ts", + "ui/SettingsView.ts", + "ui/HistoryView.ts", + "ui/EvaluationsView.ts", "ui/message/MessageList.ts", "ui/message/UserMessage.ts", "ui/message/ModelMessage.ts", diff --git a/front_end/panels/ai_chat/core/Version.ts b/front_end/panels/ai_chat/core/Version.ts index 90df2138ad..b53777d346 100644 --- a/front_end/panels/ai_chat/core/Version.ts +++ b/front_end/panels/ai_chat/core/Version.ts @@ -9,3 +9,4 @@ export const VERSION_INFO = { } as const; export const CURRENT_VERSION = VERSION_INFO.version; +export const RELEASE_URL = `https://github.com/tysonthomas9/browser-operator-devtools-frontend/releases/tag/v${CURRENT_VERSION}`; diff --git a/front_end/panels/ai_chat/ui/AIChatPanel.ts b/front_end/panels/ai_chat/ui/AIChatPanel.ts index 9c0c306067..a3f3ef4287 100644 --- a/front_end/panels/ai_chat/ui/AIChatPanel.ts +++ b/front_end/panels/ai_chat/ui/AIChatPanel.ts @@ -25,6 +25,7 @@ import { isEvaluationEnabled, getEvaluationConfig } from '../common/EvaluationCo import { EvaluationAgent } from '../evaluation/remote/EvaluationAgent.js'; import { BUILD_CONFIG } from '../core/BuildConfig.js'; import { OnboardingDialog, createSetupRequiredBanner } from './OnboardingDialog.js'; +import { HistoryViewEvents } from './HistoryView.js'; // Import of LiveAgentSessionComponent is not required here; the element is // registered by ChatView where it is used. @@ -520,26 +521,8 @@ export class AIChatPanel extends UI.Panel.Panel { this.#rightToolbar = this.#toolbarContainer.createChild('devtools-toolbar', 'ai-chat-right-toolbar') as UI.Toolbar.Toolbar; this.#rightToolbar.style.cssText = 'overflow: visible;'; - // Add "What's new" pill to toolbar (reuse existing styles from chatView.css) - const whatsNewPill = document.createElement('button'); - whatsNewPill.className = 'whats-new-pill'; - whatsNewPill.setAttribute('aria-label', "What's new in v1.01"); - // Float at the top, centered, above all content; enforce blue background and border - whatsNewPill.style.cssText = 'position: fixed; top: 12px; left: 50%; transform: translateX(-50%); z-index: 1000; background: hsl(var(--primary)); border: 1px solid hsl(var(--primary));'; - whatsNewPill.innerHTML = ` - - - - - - What's new in v1.01 - `; - // Place the pill between the left (new chat) and right (settings/close) toolbars - if (this.#rightToolbar && this.#toolbarContainer.contains(this.#rightToolbar)) { - this.#toolbarContainer.insertBefore(whatsNewPill, this.#rightToolbar); - } else { - this.#toolbarContainer.appendChild(whatsNewPill); - } + // Note: "What's new" pill is now rendered inside ChatView's centered content (per Figma design) + // Removed duplicate toolbar pill to match Figma specifications // Create toolbar buttons ONCE this.#newChatButton = new UI.Toolbar.ToolbarButton( @@ -598,6 +581,11 @@ export class AIChatPanel extends UI.Panel.Panel { this.#chatView.addEventListener('manual-setup-requested', this.#handleManualSetupRequest.bind(this)); // Wire sidebar navigation actions this.#chatView.addEventListener('sidebar-nav', this.#handleSidebarNavEvent.bind(this)); + + // Wire HistoryView events + this.#chatView.addEventListener(HistoryViewEvents.REQUEST_DATA, this.#handleHistoryRequestData.bind(this)); + this.#chatView.addEventListener(HistoryViewEvents.LOAD_CONVERSATION, this.#handleHistoryLoadConversation.bind(this)); + this.#chatView.addEventListener(HistoryViewEvents.DELETE_CONVERSATION, this.#handleHistoryDeleteConversation.bind(this)); } /** @@ -1240,30 +1228,24 @@ export class AIChatPanel extends UI.Panel.Panel { } #handleSidebarNavigation(item: SidebarNavItem): void { + // Only show new chat button in chat mode + const showNewChatButton = item === 'chat'; + this.#newChatButton.setVisible(showNewChatButton); + switch (item) { - case 'settings': - this.#onSettingsClick(); - break; - case 'history': - void this.#onHistoryClick(); - break; case 'help': this.#onHelpClick(); break; - case 'evaluations': - this.#onEvaluationTestClick(); - break; - case 'connectors': - this.#onMCPConnectorsClick(); - break; case 'agents': this.#onAgentStudioClick(); break; - case 'workflows': - this.#onAgentStudioClick(); - break; case 'chat': + case 'connectors': // Let ChatView handle routing to ConnectorsView + case 'settings': // Let ChatView handle routing to SettingsView + case 'history': // Let ChatView handle routing to HistoryView + case 'evaluations': // Let ChatView handle routing to EvaluationsView default: + // ChatView will handle these via its internal routing break; } } @@ -1999,6 +1981,45 @@ export class AIChatPanel extends UI.Panel.Panel { logger.info('Conversation history dialog opened'); } + /** + * Handle request for history data from HistoryView + */ + async #handleHistoryRequestData(): Promise { + const conversations = await this.#agentService.listConversations(); + const currentId = this.#agentService.getCurrentConversationId(); + + // Find the history view and set its data + const historyView = this.#chatView.querySelector('ai-history-view') as any; + if (historyView) { + historyView.conversations = conversations; + historyView.currentConversationId = currentId; + } + } + + /** + * Handle loading a conversation from HistoryView + */ + #handleHistoryLoadConversation(event: Event): void { + const customEvent = event as CustomEvent<{conversationId: string}>; + const conversationId = customEvent.detail?.conversationId; + if (conversationId) { + this.#loadConversation(conversationId); + } + } + + /** + * Handle deleting a conversation from HistoryView + */ + #handleHistoryDeleteConversation(event: Event): void { + const customEvent = event as CustomEvent<{conversationId: string}>; + const conversationId = customEvent.detail?.conversationId; + if (conversationId) { + this.#deleteConversation(conversationId); + // Refresh the history view data after deletion + void this.#handleHistoryRequestData(); + } + } + #onHelpClick(): void { // Open external getting started docs in a new tab UI.UIUtils.openInNewTab('https://browseroperator.io/docs/getting-started/'); diff --git a/front_end/panels/ai_chat/ui/AgentDropdown.ts b/front_end/panels/ai_chat/ui/AgentDropdown.ts index deb6b0d979..58e8d3b42c 100644 --- a/front_end/panels/ai_chat/ui/AgentDropdown.ts +++ b/front_end/panels/ai_chat/ui/AgentDropdown.ts @@ -88,12 +88,12 @@ export class AgentDropdown extends HTMLElement { } #renderIcon(iconType: string): Lit.TemplateResult { - // Icons matching lucide-react style from demo-builder.io + // Icons matching lucide-react style (10px for compact dropdown) switch (iconType) { case 'arrow-right': // Lucide ArrowRight icon return html` - + @@ -101,7 +101,7 @@ export class AgentDropdown extends HTMLElement { case 'network': // Lucide Network icon return html` - + @@ -112,7 +112,7 @@ export class AgentDropdown extends HTMLElement { case 'check-square': // Lucide CheckSquare icon return html` - + @@ -120,7 +120,7 @@ export class AgentDropdown extends HTMLElement { case 'smile': // Lucide Smile icon return html` - + @@ -130,7 +130,7 @@ export class AgentDropdown extends HTMLElement { case 'plus': // Lucide Plus icon return html` - + @@ -184,17 +184,17 @@ export class AgentDropdown extends HTMLElement { position: fixed; transform: translate(-50%, calc(-100% - 8px)); background: hsl(var(--background)); - border-radius: 8px; + border-radius: 6px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); border: 1px solid hsl(var(--border)); - width: 224px; + width: 200px; z-index: 10000; overflow: hidden; animation: dropdownFadeIn 0.15s ease-out; } .search-box { - padding: 12px; + padding: 8px; border-bottom: 1px solid hsl(var(--border)); } @@ -204,21 +204,21 @@ export class AgentDropdown extends HTMLElement { .search-icon { position: absolute; - left: 12px; + left: 10px; top: 50%; transform: translateY(-50%); - width: 16px; - height: 16px; + width: 12px; + height: 12px; color: hsl(var(--muted-foreground)); } .search-input { width: 100%; - padding: 8px 12px 8px 36px; + padding: 6px 10px 6px 28px; border: 1px solid hsl(var(--border)); - border-radius: 6px; + border-radius: 4px; background: hsl(var(--background)); - font-size: 14px; + font-size: 12px; color: hsl(var(--foreground)); outline: none; } @@ -236,35 +236,35 @@ export class AgentDropdown extends HTMLElement { display: flex; align-items: center; justify-content: space-between; - padding: 12px 16px; + padding: 8px 12px; border-bottom: 1px solid hsl(var(--border)); } .header-title { - font-size: 12px; + font-size: 10px; font-weight: 500; - color: hsl(var(--foreground)); + color: var(--slate-500); text-transform: uppercase; letter-spacing: 0.05em; } .header-hint { - font-size: 12px; + font-size: 10px; color: hsl(var(--muted-foreground)); font-weight: 500; } .agent-list { - padding: 8px 0; - max-height: 256px; + padding: 4px 0; + max-height: 200px; overflow-y: auto; } .agent-item { display: flex; align-items: center; - gap: 12px; - padding: 10px 16px; + gap: 8px; + padding: 6px 12px; cursor: pointer; transition: background-color 0.15s ease; width: 100%; @@ -275,7 +275,7 @@ export class AgentDropdown extends HTMLElement { } .agent-item:hover { - background: hsl(var(--sidebar-background)); + background: var(--slate-100); } .agent-item.selected { @@ -283,8 +283,8 @@ export class AgentDropdown extends HTMLElement { } .agent-icon { - width: 16px; - height: 16px; + width: 10px; + height: 10px; flex-shrink: 0; display: flex; align-items: center; @@ -293,12 +293,12 @@ export class AgentDropdown extends HTMLElement { } .icon-emoji { - font-size: 14px; + font-size: 11px; } .agent-name { flex: 1; - font-size: 14px; + font-size: 12px; font-weight: 400; color: hsl(var(--foreground)); } @@ -312,8 +312,8 @@ export class AgentDropdown extends HTMLElement { .add-agent-item { display: flex; align-items: center; - gap: 12px; - padding: 10px 16px; + gap: 8px; + padding: 6px 12px; cursor: pointer; transition: background-color 0.15s ease; width: 100%; @@ -328,8 +328,8 @@ export class AgentDropdown extends HTMLElement { } .add-agent-icon { - width: 16px; - height: 16px; + width: 12px; + height: 12px; flex-shrink: 0; display: flex; align-items: center; @@ -338,7 +338,7 @@ export class AgentDropdown extends HTMLElement { } .add-agent-text { - font-size: 14px; + font-size: 12px; font-weight: 400; color: hsl(var(--foreground)); } diff --git a/front_end/panels/ai_chat/ui/ChatView.ts b/front_end/panels/ai_chat/ui/ChatView.ts index 947ff91ab8..1fcfc43587 100644 --- a/front_end/panels/ai_chat/ui/ChatView.ts +++ b/front_end/panels/ai_chat/ui/ChatView.ts @@ -13,6 +13,7 @@ import { createLogger } from '../core/Logger.js'; import type { AgentSession, ToolCallMessage as AgentToolCallMessage, ToolResultMessage as AgentToolResultMessage } from '../agent_framework/AgentSessionTypes.js'; import { getAgentUIConfig } from '../agent_framework/AgentSessionTypes.js'; import { VersionChecker, type VersionInfo } from '../core/VersionChecker.js'; +import { CURRENT_VERSION, RELEASE_URL } from '../core/Version.js'; import { LiveAgentSessionComponent } from './LiveAgentSessionComponent.js'; import { MarkdownRenderer, renderMarkdown } from './markdown/MarkdownRenderers.js'; import { ToolDescriptionFormatter } from './ToolDescriptionFormatter.js'; @@ -30,6 +31,10 @@ import { combineMessages } from './message/MessageCombiner.js'; import './TodoListDisplay.js'; import './FileListDisplay.js'; import './SidebarNav.js'; +import './ConnectorsView.js'; +import './SettingsView.js'; +import './HistoryView.js'; +import './EvaluationsView.js'; // Shared chat types import type { ChatMessage, ModelChatMessage, ToolResultMessage, AgentSessionMessage, ImageInputData } from '../models/ChatTypes.js'; @@ -40,6 +45,8 @@ const logger = createLogger('ChatView'); import chatViewStyles from './chatView.css.js'; +const browserOperatorLogoUrl = new URL('../../../Images/browser-operator-logo.svg', import.meta.url).toString(); + const {html, Decorators} = Lit; const {customElement} = Decorators; @@ -410,7 +417,9 @@ export class ChatView extends HTMLElement { // Store input disabled state and placeholder this.#isInputDisabled = data.isInputDisabled || false; - this.#inputPlaceholder = data.inputPlaceholder || 'Ask AI Assistant...'; + // Update placeholder based on conversation state + const hasMessages = data.messages && data.messages.length > 0; + this.#inputPlaceholder = data.inputPlaceholder || (hasMessages ? 'Ask another question...' : 'Ask AI Assistant...'); // Store OAuth login state this.#showOAuthLogin = data.showOAuthLogin || false; @@ -866,8 +875,51 @@ export class ChatView extends HTMLElement { // Determine which view to render based on the first message state if (this.#isFirstMessageView) { - // Render centered first message view - const suggestions = this.#renderExampleSuggestions(); + // Render first message view with routing support + const renderFirstMessageContent = () => { + switch (this.#activeSidebarItem) { + case 'connectors': + return html``; + case 'settings': + return html``; + case 'history': + return html``; + case 'evaluations': + return html``; + case 'chat': + default: + // Render centered welcome UI + const suggestions = this.#renderExampleSuggestions(); + return html` + ${this.#renderVersionBanner()} + + + + What's new in v${CURRENT_VERSION} + +
+
+
+ Browser Operator logo +
+
How can I help you today?
+
+ + ${this.#showOAuthLogin ? html` + + ` : this.#renderInputBar(true)} + + ${suggestions} +
+ `; + } + }; + Lit.render(html` ${stylesTemplate}
@@ -876,31 +928,72 @@ export class ChatView extends HTMLElement { .onItemClick=${this.#handleSidebarNavClick.bind(this)}>
- ${this.#renderVersionBanner()} -
-
-
- Browser Operator logo -
-
How can I help you today?
-
- - ${this.#showOAuthLogin ? html` - - ` : this.#renderInputBar(true)} - - ${suggestions} -
+ ${renderFirstMessageContent()}
`, this.#shadow, {host: this}); } else { // Render normal expanded view for conversation + const renderMainContent = () => { + // Render different views based on active sidebar item + switch (this.#activeSidebarItem) { + case 'connectors': + return html``; + case 'settings': + return html``; + case 'history': + return html``; + case 'evaluations': + return html``; + case 'chat': + default: + // Render chat view + return html` + ${this.#renderVersionBanner()} + + ${Lit.Directives.repeat( + combinedMessages || [], + (m, i) => this.#messageKey(m, i), + (m, i) => this.#renderMessage(m, i) + )} + + ${showGeneralLoading ? html` +
+
+
+ + + + + +
+
+
+ ` : Lit.nothing} + + + ${showActionsRow ? renderGlobalActionsRow({ + textToCopy: lastModelAnswer || '', + onCopy: () => this.#copyToClipboard(lastModelAnswer || ''), + onThumbsUp: () => this.dispatchEvent(new CustomEvent('feedback', { bubbles: true, detail: { value: 'up' } })), + onThumbsDown: () => this.dispatchEvent(new CustomEvent('feedback', { bubbles: true, detail: { value: 'down' } })), + onRetry: () => this.dispatchEvent(new CustomEvent('retry', { bubbles: true })) + }) : Lit.nothing} +
+ + + ${this.#renderInputBar(false)} + `; + } + }; + Lit.render(html` ${stylesTemplate}
@@ -909,47 +1002,7 @@ export class ChatView extends HTMLElement { .onItemClick=${this.#handleSidebarNavClick.bind(this)}>
- ${this.#renderVersionBanner()} - - ${Lit.Directives.repeat( - combinedMessages || [], - (m, i) => this.#messageKey(m, i), - (m, i) => this.#renderMessage(m, i) - )} - - ${showGeneralLoading ? html` -
-
-
- - - - - -
-
-
- ` : Lit.nothing} - - - ${showActionsRow ? renderGlobalActionsRow({ - textToCopy: lastModelAnswer || '', - onCopy: () => this.#copyToClipboard(lastModelAnswer || ''), - onThumbsUp: () => this.dispatchEvent(new CustomEvent('feedback', { bubbles: true, detail: { value: 'up' } })), - onThumbsDown: () => this.dispatchEvent(new CustomEvent('feedback', { bubbles: true, detail: { value: 'down' } })), - onRetry: () => this.dispatchEvent(new CustomEvent('retry', { bubbles: true })) - }) : Lit.nothing} -
- - - ${this.#renderInputBar(false)} + ${renderMainContent()}
`, this.#shadow, {host: this}); diff --git a/front_end/panels/ai_chat/ui/ConnectorsDropdown.ts b/front_end/panels/ai_chat/ui/ConnectorsDropdown.ts index ee302acef1..5845375e59 100644 --- a/front_end/panels/ai_chat/ui/ConnectorsDropdown.ts +++ b/front_end/panels/ai_chat/ui/ConnectorsDropdown.ts @@ -128,10 +128,10 @@ export class ConnectorsDropdown extends HTMLElement { position: fixed; transform: translate(-50%, calc(-100% - 8px)); background: hsl(var(--background)); - border-radius: 8px; + border-radius: 6px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); border: 1px solid hsl(var(--border)); - width: 224px; + width: 200px; z-index: 10000; overflow: hidden; animation: dropdownFadeIn 0.15s ease-out; @@ -140,23 +140,23 @@ export class ConnectorsDropdown extends HTMLElement { .search-container { display: flex; align-items: center; - gap: 8px; - padding: 12px 16px; + gap: 6px; + padding: 8px 12px; border-bottom: 1px solid hsl(var(--border)); background: hsl(var(--background)); } .search-icon { color: hsl(var(--muted-foreground)); - width: 16px; - height: 16px; + width: 12px; + height: 12px; flex-shrink: 0; } .search-input { border: none; outline: none; - font-size: 14px; + font-size: 12px; color: hsl(var(--foreground)); flex: 1; background: transparent; @@ -170,8 +170,8 @@ export class ConnectorsDropdown extends HTMLElement { display: flex; align-items: center; justify-content: space-between; - padding: 12px 16px 8px; - font-size: 12px; + padding: 8px 12px 6px; + font-size: 10px; font-weight: 500; color: hsl(var(--foreground)); text-transform: uppercase; @@ -180,26 +180,26 @@ export class ConnectorsDropdown extends HTMLElement { } .section-header-hint { - font-size: 12px; + font-size: 10px; color: hsl(var(--muted-foreground)); font-weight: 500; } .connector-list { - padding: 4px 8px 8px; + padding: 2px 6px 6px; background: hsl(var(--background)); - max-height: 256px; + max-height: 200px; overflow-y: auto; } .connector-item { display: flex; align-items: center; - gap: 12px; - padding: 10px 8px; + gap: 8px; + padding: 6px 6px; cursor: pointer; transition: background-color 0.15s ease; - border-radius: 6px; + border-radius: 4px; } .connector-item:hover { @@ -211,36 +211,36 @@ export class ConnectorsDropdown extends HTMLElement { } .connector-icon { - width: 16px; - height: 16px; + width: 12px; + height: 12px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; - font-size: 14px; + font-size: 11px; color: hsl(var(--foreground)); } .connector-name { flex: 1; - font-size: 14px; + font-size: 12px; font-weight: 400; color: hsl(var(--foreground)); } - /* Switch matching demo-builder.io (h-6 w-11 = 24px x 44px) */ + /* Smaller toggle switch */ .toggle-switch { display: inline-flex; align-items: center; - width: 44px; - height: 24px; - border-radius: 12px; + width: 32px; + height: 18px; + border-radius: 9px; background: hsl(var(--input)); position: relative; transition: background-color 0.2s ease; cursor: pointer; flex-shrink: 0; - border: 2px solid transparent; + border: 1.5px solid transparent; } .toggle-switch:focus-visible { @@ -252,20 +252,20 @@ export class ConnectorsDropdown extends HTMLElement { background: hsl(var(--primary)); } - /* Thumb matching demo-builder.io (h-5 w-5 = 20px) */ + /* Smaller toggle knob */ .toggle-knob { - width: 20px; - height: 20px; + width: 14px; + height: 14px; border-radius: 50%; background: hsl(var(--background)); position: absolute; left: 2px; transition: transform 0.2s ease; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); } .toggle-switch.enabled .toggle-knob { - transform: translateX(20px); + transform: translateX(14px); } .divider { @@ -277,8 +277,8 @@ export class ConnectorsDropdown extends HTMLElement { .manage-item { display: flex; align-items: center; - gap: 12px; - padding: 10px 16px; + gap: 8px; + padding: 6px 12px; cursor: pointer; transition: background-color 0.15s ease; background: hsl(var(--background)); @@ -289,14 +289,14 @@ export class ConnectorsDropdown extends HTMLElement { } .manage-icon { - width: 16px; - height: 16px; + width: 12px; + height: 12px; color: hsl(var(--foreground)); flex-shrink: 0; } .manage-text { - font-size: 14px; + font-size: 12px; font-weight: 400; color: hsl(var(--foreground)); } diff --git a/front_end/panels/ai_chat/ui/ConnectorsView.ts b/front_end/panels/ai_chat/ui/ConnectorsView.ts new file mode 100644 index 0000000000..873649f78d --- /dev/null +++ b/front_end/panels/ai_chat/ui/ConnectorsView.ts @@ -0,0 +1,518 @@ +// Copyright 2025 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import * as Lit from '../../../ui/lit/lit.js'; + +const {html, Decorators} = Lit; +const {customElement} = Decorators as any; + +export interface Connector { + id: string; + name: string; + category: string; + description: string; + icon: string; + enabled: boolean; +} + +export interface ConnectorsViewProps { + connectors?: Connector[]; + onToggle?: (id: string, enabled: boolean) => void; + onManageConnections?: () => void; +} + +@customElement('ai-connectors-view') +export class ConnectorsView extends HTMLElement { + static readonly litTagName = Lit.StaticHtml.literal`ai-connectors-view`; + + #connectors: Connector[] = [ + // Media + { id: 'invideo', name: 'invideo', category: 'Media', description: 'Build video creation capabilities into your applications', icon: '🎬', enabled: false }, + + // Development + { id: 'sentry', name: 'Sentry', category: 'Development', description: 'Error monitoring & debugging production issues', icon: '🐛', enabled: false }, + + // Project Management + { id: 'linear', name: 'Linear', category: 'Project Management', description: 'Issue tracking & project management', icon: '📈', enabled: false }, + + // Documentation + { id: 'notion', name: 'Notion', category: 'Documentation', description: 'Document & knowledge management', icon: '📝', enabled: false }, + + // Communication + { id: 'intercom', name: 'Intercom', category: 'Communication', description: 'Customer support & conversations', icon: '💬', enabled: false }, + + // AI / ML + { id: 'huggingface', name: 'Hugging Face', category: 'AI / ML', description: 'AI models & machine learning hub', icon: '🤗', enabled: false }, + + // Design + { id: 'canva', name: 'Canva', category: 'Design', description: 'Browse, summarize, autofill, and even generate new Canva designs', icon: '🎨', enabled: false }, + + // Debugging + { id: 'jam', name: 'Jam', category: 'Debugging', description: 'Debug faster with AI agents that can access Jam recordings', icon: '🔧', enabled: false }, + ]; + + #searchQuery = ''; + #expandedCategories = new Set(); // Start collapsed per Figma design + #onToggle?: (id: string, enabled: boolean) => void; + #onManageConnections?: () => void; + + set connectors(v: Connector[]) { this.#connectors = v; this.#render(); } + set onToggle(fn: (id: string, enabled: boolean) => void) { this.#onToggle = fn; } + set onManageConnections(fn: () => void) { this.#onManageConnections = fn; } + + connectedCallback(): void { this.#render(); } + + #handleToggle(id: string, enabled: boolean): void { + if (this.#onToggle) { + this.#onToggle(id, enabled); + } + const connector = this.#connectors.find(c => c.id === id); + if (connector) { + connector.enabled = enabled; + this.#render(); + } + } + + #handleSearchInput(e: Event): void { + const input = e.target as HTMLInputElement; + this.#searchQuery = input.value.toLowerCase(); + this.#render(); + } + + #toggleCategory(category: string): void { + if (this.#expandedCategories.has(category)) { + this.#expandedCategories.delete(category); + } else { + this.#expandedCategories.add(category); + } + this.#render(); + } + + #getConnectedCount(): number { + return this.#connectors.filter(c => c.enabled).length; + } + + #getTotalCount(): number { + return this.#connectors.length; + } + + #groupByCategory(): Map { + const groups = new Map(); + const filtered = this.#connectors.filter(c => + c.name.toLowerCase().includes(this.#searchQuery) || + c.description.toLowerCase().includes(this.#searchQuery) || + c.category.toLowerCase().includes(this.#searchQuery) + ); + + filtered.forEach(connector => { + const category = connector.category; + if (!groups.has(category)) { + groups.set(category, []); + } + groups.get(category)!.push(connector); + }); + + return groups; + } + + #render(): void { + const groupedConnectors = this.#groupByCategory(); + const connectedCount = this.#getConnectedCount(); + const totalCount = this.#getTotalCount(); + + Lit.render(html` + + +
+
+

MCP Connectors

+ +
+ + + + + +
+ +
+ +
+ + + ${connectedCount} of ${totalCount} Connected + + this.#onManageConnections?.()}> + Manage Connections + +
+ +
+
+ ${Array.from(groupedConnectors.entries()).map(([category, connectors]) => { + const isExpanded = this.#expandedCategories.has(category); + const enabledCount = connectors.filter(c => c.enabled).length; + const hasEnabled = enabledCount > 0; + return html` +
+
this.#toggleCategory(category)}> + ${category} +
+ ${hasEnabled ? enabledCount : connectors.length} + + + +
+
+ +
+ ${connectors.map(connector => html` +
+
${connector.icon}
+
+
${connector.name}
+
${connector.description}
+
+
{ + e.stopPropagation(); + this.#handleToggle(connector.id, !connector.enabled); + }} + @keydown=${(e: KeyboardEvent) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + this.#handleToggle(connector.id, !connector.enabled); + } + }} + > +
+
+
+ `)} +
+
+ `; + })} +
+
+
+ `, this, {host: this}); + } +} + +declare global { + interface HTMLElementTagNameMap { 'ai-connectors-view': ConnectorsView; } +} diff --git a/front_end/panels/ai_chat/ui/EvaluationsView.ts b/front_end/panels/ai_chat/ui/EvaluationsView.ts new file mode 100644 index 0000000000..7995cb2a04 --- /dev/null +++ b/front_end/panels/ai_chat/ui/EvaluationsView.ts @@ -0,0 +1,707 @@ +// Copyright 2025 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import * as Lit from '../../../ui/lit/lit.js'; +import { EvaluationRunner } from '../evaluation/runner/EvaluationRunner.js'; +import { VisionAgentEvaluationRunner } from '../evaluation/runner/VisionAgentEvaluationRunner.js'; +import { schemaExtractorTests } from '../evaluation/test-cases/schema-extractor-tests.js'; +import { streamlinedSchemaExtractorTests } from '../evaluation/test-cases/streamlined-schema-extractor-tests.js'; +import { htmlToMarkdownTests } from '../evaluation/test-cases/html-to-markdown-tests.js'; +import { researchAgentTests } from '../evaluation/test-cases/research-agent-tests.js'; +import { actionAgentTests } from '../evaluation/test-cases/action-agent-tests.js'; +import { webTaskAgentTests } from '../evaluation/test-cases/web-task-agent-tests.js'; +import type { TestResult } from '../evaluation/framework/types.js'; +import { createLogger } from '../core/Logger.js'; +import { AIChatPanel } from './AIChatPanel.js'; + +const logger = createLogger('EvaluationsView'); + +const {html, Decorators} = Lit; +const {customElement} = Decorators as any; + +const JUDGE_MODEL_STORAGE_KEY = 'ai_chat_judge_model'; + +const TOOL_TEST_MAPPING: Record = { + 'extract_schema': { tests: schemaExtractorTests, displayName: 'Original Schema Extractor' }, + 'extract_schema_streamlined': { tests: streamlinedSchemaExtractorTests, displayName: 'Streamlined Schema Extractor' }, + 'html_to_markdown': { tests: htmlToMarkdownTests, displayName: 'HTML to Markdown' }, +}; + +const AGENT_TEST_MAPPING: Record = { + 'research_agent': { tests: researchAgentTests, displayName: 'Research Agent' }, + 'action_agent': { tests: actionAgentTests, displayName: 'Action Agent' }, + 'web_task_agent': { tests: webTaskAgentTests, displayName: 'Web Task Agent' }, +}; + +interface EvaluationsViewState { + isRunning: boolean; + testResults: Map; + currentRunningTest?: string; + totalTests: number; + completedTests: number; + startTime?: number; + activeTab: 'tool-tests' | 'agents'; + agentType: string; + visionEnabled?: boolean; + selectedTests: Set; + bottomPanelView: 'summary' | 'logs'; + testLogs: string[]; + toolType: string; + judgeModel: string; +} + +/** + * Inline view for evaluation tests + * Design matches ConnectorsView patterns + */ +@customElement('ai-evaluations-view') +export class EvaluationsView extends HTMLElement { + static readonly litTagName = Lit.StaticHtml.literal`ai-evaluations-view`; + + #state: EvaluationsViewState = { + isRunning: false, + testResults: new Map(), + totalTests: 0, + completedTests: 0, + activeTab: 'tool-tests', + agentType: 'research_agent', + visionEnabled: false, + selectedTests: new Set(), + bottomPanelView: 'summary', + testLogs: [], + toolType: 'extract_schema', + judgeModel: 'gpt-4.1-mini', + }; + + #evaluationRunner?: EvaluationRunner; + #agentEvaluationRunner?: VisionAgentEvaluationRunner; + + connectedCallback(): void { + this.#initializeJudgeModel(); + this.#initializeRunners(); + this.#render(); + } + + #initializeJudgeModel(): void { + try { + const currentProvider = AIChatPanel.getCurrentProvider(); + const providerModels = AIChatPanel.getModelOptions(currentProvider); + + const savedJudgeModel = localStorage.getItem(JUDGE_MODEL_STORAGE_KEY); + if (savedJudgeModel && providerModels.find(m => m.value === savedJudgeModel)) { + this.#state.judgeModel = savedJudgeModel; + return; + } + + const modelPatterns = [ + { pattern: /^(.*\/)?gpt-4\.1-mini(-.*)?$/i }, + { pattern: /^(.*\/)?gpt-4\.1(-.*)?$/i }, + { pattern: /^(.*\/)?gpt-4(-.*)?$/i } + ]; + + for (const { pattern } of modelPatterns) { + const foundModel = providerModels.find(model => pattern.test(model.value)); + if (foundModel) { + this.#state.judgeModel = foundModel.value; + localStorage.setItem(JUDGE_MODEL_STORAGE_KEY, this.#state.judgeModel); + return; + } + } + + if (providerModels.length > 0) { + this.#state.judgeModel = providerModels[0].value; + localStorage.setItem(JUDGE_MODEL_STORAGE_KEY, this.#state.judgeModel); + } + } catch (error) { + logger.error('Failed to initialize judge model:', error); + } + } + + #initializeRunners(): void { + try { + this.#evaluationRunner = new EvaluationRunner({ + judgeModel: this.#state.judgeModel, + mainModel: AIChatPanel.instance().getSelectedModel(), + miniModel: AIChatPanel.getMiniModel(), + nanoModel: AIChatPanel.getNanoModel(), + }); + } catch (error) { + logger.error('Failed to initialize evaluation runner:', error); + } + + try { + this.#agentEvaluationRunner = new VisionAgentEvaluationRunner({ + visionEnabled: this.#state.visionEnabled, + judgeModel: this.#state.judgeModel, + mainModel: AIChatPanel.instance().getSelectedModel(), + miniModel: AIChatPanel.getMiniModel(), + nanoModel: AIChatPanel.getNanoModel(), + }); + } catch (error) { + logger.error('Failed to initialize agent evaluation runner:', error); + } + } + + #addLog(message: string, type: 'info' | 'success' | 'warning' | 'error' = 'info'): void { + const timestamp = new Date().toLocaleTimeString(); + this.#state.testLogs.push(`[${timestamp}] [${type.toUpperCase()}] ${message}`); + this.#render(); + } + + #getTests(): any[] { + if (this.#state.activeTab === 'tool-tests') { + const toolMapping = TOOL_TEST_MAPPING[this.#state.toolType]; + return toolMapping ? toolMapping.tests : []; + } else { + const agentMapping = AGENT_TEST_MAPPING[this.#state.agentType]; + return agentMapping ? agentMapping.tests : []; + } + } + + async #runSelectedTests(): Promise { + if (this.#state.selectedTests.size === 0) return; + const testCases = this.#getTests(); + const selectedTestCases = testCases.filter((tc: any) => this.#state.selectedTests.has(tc.id)); + await this.#runTests(selectedTestCases); + } + + async #runAllTests(): Promise { + const testCases = this.#getTests(); + await this.#runTests(testCases); + } + + async #runTests(testCases: any[]): Promise { + if (this.#state.isRunning) return; + + this.#state.isRunning = true; + this.#state.testResults.clear(); + this.#state.totalTests = testCases.length; + this.#state.completedTests = 0; + this.#state.startTime = Date.now(); + this.#state.testLogs = []; + this.#render(); + + this.#addLog(`Starting ${testCases.length} tests...`); + + for (const testCase of testCases) { + this.#state.currentRunningTest = testCase.id; + this.#render(); + + this.#addLog(`Running: ${testCase.name}`); + + try { + let result: TestResult; + if (this.#state.activeTab === 'agents' && this.#agentEvaluationRunner) { + result = await this.#agentEvaluationRunner.runSingleTest(testCase); + } else if (this.#evaluationRunner) { + result = await this.#evaluationRunner.runSingleTest(testCase); + } else { + throw new Error('No evaluation runner available'); + } + + this.#state.testResults.set(testCase.id, result); + this.#addLog( + `${testCase.name}: ${result.status.toUpperCase()}`, + result.status === 'passed' ? 'success' : result.status === 'failed' ? 'warning' : 'error' + ); + } catch (error) { + const errorResult: TestResult = { + testId: testCase.id, + status: 'error', + error: error instanceof Error ? error.message : String(error), + duration: 0, + timestamp: Date.now(), + }; + this.#state.testResults.set(testCase.id, errorResult); + this.#addLog(`${testCase.name}: ERROR - ${errorResult.error}`, 'error'); + } + + this.#state.completedTests++; + this.#render(); + } + + this.#state.isRunning = false; + this.#state.currentRunningTest = undefined; + + const results = Array.from(this.#state.testResults.values()); + const passed = results.filter(r => r.status === 'passed').length; + const failed = results.filter(r => r.status === 'failed').length; + const errors = results.filter(r => r.status === 'error').length; + + this.#addLog(`Tests completed: ${passed} passed, ${failed} failed, ${errors} errors`, 'info'); + this.#render(); + } + + #clearResults(): void { + this.#state.testResults.clear(); + this.#state.testLogs = []; + this.#state.completedTests = 0; + this.#state.totalTests = 0; + this.#render(); + } + + #toggleTestSelection(testId: string): void { + if (this.#state.selectedTests.has(testId)) { + this.#state.selectedTests.delete(testId); + } else { + this.#state.selectedTests.add(testId); + } + this.#render(); + } + + #render(): void { + const testCases = this.#getTests(); + const results = Array.from(this.#state.testResults.values()); + const passed = results.filter(r => r.status === 'passed').length; + const failed = results.filter(r => r.status === 'failed').length; + const errors = results.filter(r => r.status === 'error').length; + + const progress = this.#state.totalTests > 0 + ? (this.#state.completedTests / this.#state.totalTests) * 100 + : 0; + + Lit.render(html` + + +
+
+
+

Evaluation Tests

+
+ ${this.#state.isRunning ? html` + ${this.#state.completedTests}/${this.#state.totalTests} tests +
+
+
+ ` : results.length > 0 ? html` + ✓ ${passed} + ⚠ ${failed} + ✗ ${errors} + ` : ''} +
+
+
+ +
+ + +
+ +
+
+ ${this.#state.activeTab === 'tool-tests' ? html` + + + ` : html` + + + `} +
+ + ${this.#state.selectedTests.size > 0 + ? `${this.#state.selectedTests.size} tests selected` + : 'Click tests to select'} + +
+ +
+ ${testCases.map((tc: any) => { + const result = this.#state.testResults.get(tc.id); + const isRunning = this.#state.currentRunningTest === tc.id; + const isSelected = this.#state.selectedTests.has(tc.id); + let statusClass = ''; + if (isRunning) statusClass = 'running'; + else if (result?.status === 'passed') statusClass = 'passed'; + else if (result?.status === 'failed') statusClass = 'failed'; + else if (result?.status === 'error') statusClass = 'error'; + + return html` +
this.#toggleTestSelection(tc.id)}> +
+
${tc.name}
+
${tc.description}
+
+ ${result || isRunning ? html` + + ${isRunning ? 'Running' : result?.status} + + ` : ''} +
+ `; + })} +
+ +
+
+ + +
+
+ ${this.#state.bottomPanelView === 'summary' ? html` +
Total: ${testCases.length} | Passed: ${passed} | Failed: ${failed} | Errors: ${errors}
+ ${results.length > 0 ? html` +
Pass Rate: ${((passed / results.length) * 100).toFixed(1)}%
+ ` : ''} + ` : html` + ${this.#state.testLogs.length === 0 + ? 'No logs yet. Run tests to see logs.' + : this.#state.testLogs.join('\n')} + `} +
+
+ +
+ + ${this.#state.selectedTests.size > 0 ? html` + + + ` : html` + + `} +
+
+ `, this, {host: this}); + } +} + +declare global { + interface HTMLElementTagNameMap { 'ai-evaluations-view': EvaluationsView; } +} diff --git a/front_end/panels/ai_chat/ui/HistoryView.ts b/front_end/panels/ai_chat/ui/HistoryView.ts new file mode 100644 index 0000000000..61eacfaa3a --- /dev/null +++ b/front_end/panels/ai_chat/ui/HistoryView.ts @@ -0,0 +1,585 @@ +// Copyright 2025 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import * as ComponentHelpers from '../../../ui/components/helpers/helpers.js'; +import * as Lit from '../../../ui/lit/lit.js'; +import {createLogger} from '../core/Logger.js'; +import type {ConversationMetadata} from '../persistence/ConversationTypes.js'; + +const logger = createLogger('HistoryView'); + +const {html} = Lit; + +/** + * Events dispatched by HistoryView + */ +export const HistoryViewEvents = { + LOAD_CONVERSATION: 'history-load-conversation', + DELETE_CONVERSATION: 'history-delete-conversation', + REQUEST_DATA: 'history-request-data', +} as const; + +export interface HistoryViewEventDetail { + conversationId?: string; +} + +type DateGroup = 'today' | 'yesterday' | 'thisWeek' | 'thisMonth' | 'earlier'; + +interface GroupedConversations { + today: ConversationMetadata[]; + yesterday: ConversationMetadata[]; + thisWeek: ConversationMetadata[]; + thisMonth: ConversationMetadata[]; + earlier: ConversationMetadata[]; +} + +/** + * Inline view for displaying conversation history + * Design matches ConnectorsView patterns + */ +export class HistoryView extends HTMLElement { + static readonly litTagName = Lit.StaticHtml.literal`ai-history-view`; + readonly #boundRender = this.#render.bind(this); + + #conversations: ConversationMetadata[] = []; + #currentConversationId: string | null = null; + #searchQuery = ''; + + get conversations(): ConversationMetadata[] { + return this.#conversations; + } + + set conversations(value: ConversationMetadata[]) { + this.#conversations = value; + void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender); + } + + get currentConversationId(): string | null { + return this.#currentConversationId; + } + + set currentConversationId(value: string | null) { + this.#currentConversationId = value; + void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender); + } + + connectedCallback(): void { + this.dispatchEvent(new CustomEvent(HistoryViewEvents.REQUEST_DATA, { + bubbles: true, + composed: true, + })); + void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender); + } + + #handleSearchInput(e: Event): void { + const input = e.target as HTMLInputElement; + this.#searchQuery = input.value.toLowerCase(); + void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender); + } + + #handleConversationSelected(id: string): void { + if (id !== this.#currentConversationId) { + this.dispatchEvent(new CustomEvent(HistoryViewEvents.LOAD_CONVERSATION, { + bubbles: true, + composed: true, + detail: {conversationId: id}, + })); + } + } + + #handleDeleteConversation(event: Event, conversation: ConversationMetadata): void { + event.stopPropagation(); + logger.info('Delete button clicked', {conversationId: conversation.id, title: conversation.title}); + this.dispatchEvent(new CustomEvent(HistoryViewEvents.DELETE_CONVERSATION, { + bubbles: true, + composed: true, + detail: {conversationId: conversation.id}, + })); + } + + #getFilteredConversations(): ConversationMetadata[] { + if (!this.#searchQuery) { + return this.#conversations; + } + return this.#conversations.filter(c => + c.title.toLowerCase().includes(this.#searchQuery) + ); + } + + #getDateGroup(timestamp: number): DateGroup { + const date = new Date(timestamp); + const now = new Date(); + const today = new Date(now.getFullYear(), now.getMonth(), now.getDate()); + const yesterday = new Date(today); + yesterday.setDate(yesterday.getDate() - 1); + const weekAgo = new Date(today); + weekAgo.setDate(weekAgo.getDate() - 7); + const monthAgo = new Date(today); + monthAgo.setMonth(monthAgo.getMonth() - 1); + + if (date >= today) { + return 'today'; + } else if (date >= yesterday) { + return 'yesterday'; + } else if (date >= weekAgo) { + return 'thisWeek'; + } else if (date >= monthAgo) { + return 'thisMonth'; + } + return 'earlier'; + } + + #groupConversations(conversations: ConversationMetadata[]): GroupedConversations { + const groups: GroupedConversations = { + today: [], + yesterday: [], + thisWeek: [], + thisMonth: [], + earlier: [], + }; + + for (const conversation of conversations) { + const group = this.#getDateGroup(conversation.updatedAt); + groups[group].push(conversation); + } + + return groups; + } + + #getGroupLabel(group: DateGroup): string { + switch (group) { + case 'today': + return 'Today'; + case 'yesterday': + return 'Yesterday'; + case 'thisWeek': + return 'This Week'; + case 'thisMonth': + return 'This Month'; + case 'earlier': + return 'Earlier'; + } + } + + #formatDate(timestamp: number): string { + const date = new Date(timestamp); + const now = new Date(); + const diffMs = now.getTime() - date.getTime(); + const diffMins = Math.floor(diffMs / 60000); + const diffHours = Math.floor(diffMs / 3600000); + const diffDays = Math.floor(diffMs / 86400000); + + if (diffMins < 1) { + return 'Just now'; + } else if (diffMins < 60) { + return `${diffMins}m ago`; + } else if (diffHours < 24) { + return `${diffHours}h ago`; + } else if (diffDays < 7) { + return `${diffDays}d ago`; + } else { + return date.toLocaleDateString(); + } + } + + #renderConversationItem(conversation: ConversationMetadata): Lit.TemplateResult { + const isActive = conversation.id === this.#currentConversationId; + return html` +
this.#handleConversationSelected(conversation.id)} + > +
+ + + +
+
+
${conversation.title}
+
+ ${this.#formatDate(conversation.updatedAt)} + + ${conversation.messageCount} messages +
+
+ +
+ `; + } + + #renderDateGroup(group: DateGroup, conversations: ConversationMetadata[]): Lit.TemplateResult { + if (conversations.length === 0) { + return html``; + } + + return html` +
+
+ ${this.#getGroupLabel(group)} + ${conversations.length} +
+ ${conversations.map(conv => this.#renderConversationItem(conv))} +
+ `; + } + + #render(): void { + const filtered = this.#getFilteredConversations(); + const grouped = this.#groupConversations(filtered); + const hasConversations = filtered.length > 0; + const totalCount = this.#conversations.length; + + Lit.render( + html` + + +
+
+

Chat History

+ +
+ + + + + +
+
+ +
+ + + ${totalCount} Conversations + +
+ +
+ ${!hasConversations + ? html` +
+ + + + +

${this.#searchQuery ? 'No matching conversations' : 'No conversations yet'}

+

${this.#searchQuery ? 'Try a different search term' : 'Start a new chat to begin'}

+
+ ` + : html` + ${this.#renderDateGroup('today', grouped.today)} + ${this.#renderDateGroup('yesterday', grouped.yesterday)} + ${this.#renderDateGroup('thisWeek', grouped.thisWeek)} + ${this.#renderDateGroup('thisMonth', grouped.thisMonth)} + ${this.#renderDateGroup('earlier', grouped.earlier)} + `} +
+
+ `, + this, + {host: this}, + ); + } +} + +customElements.define('ai-history-view', HistoryView); + +declare global { + interface HTMLElementTagNameMap { + 'ai-history-view': HistoryView; + } +} diff --git a/front_end/panels/ai_chat/ui/OnboardingDialog.ts b/front_end/panels/ai_chat/ui/OnboardingDialog.ts index 46a46e7dee..f7e0b4eadb 100644 --- a/front_end/panels/ai_chat/ui/OnboardingDialog.ts +++ b/front_end/panels/ai_chat/ui/OnboardingDialog.ts @@ -11,6 +11,9 @@ import { createLogger } from '../core/Logger.js'; const logger = createLogger('OnboardingDialog'); +const browserOperatorLogoUrl = new URL('../../../Images/browser-operator-logo.svg', import.meta.url).toString(); +const demoGifUrl = new URL('../../../Images/demo.gif', import.meta.url).toString(); + const ONBOARDING_COMPLETE_KEY = 'ai_chat_onboarding_complete'; const SETUP_SKIPPED_KEY = 'ai_chat_setup_skipped'; @@ -324,7 +327,7 @@ export class OnboardingDialog { const logoContainer = document.createElement('div'); logoContainer.className = 'welcome-icon'; const logo = document.createElement('img'); - logo.src = '/bundled/Images/browser-operator-logo.png'; + logo.src = browserOperatorLogoUrl; logo.alt = 'Browser Operator'; logo.style.cssText = 'width: 64px; height: 64px; border-radius: 12px;'; logoContainer.appendChild(logo); @@ -352,7 +355,7 @@ export class OnboardingDialog { gifLink.className = 'demo-gif-link'; const demoGif = document.createElement('img'); - demoGif.src = '/bundled/Images/demo.gif'; + demoGif.src = demoGifUrl; demoGif.alt = 'Browser Operator Demo - Click to view getting started guide'; demoGif.className = 'demo-gif'; gifLink.appendChild(demoGif); diff --git a/front_end/panels/ai_chat/ui/SettingsView.ts b/front_end/panels/ai_chat/ui/SettingsView.ts new file mode 100644 index 0000000000..4e9b3da6ab --- /dev/null +++ b/front_end/panels/ai_chat/ui/SettingsView.ts @@ -0,0 +1,459 @@ +// Copyright 2025 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import * as Lit from '../../../ui/lit/lit.js'; + +const {html, Decorators} = Lit; +const {customElement} = Decorators as any; + +export interface ModelConfig { + tier: 'main' | 'mini' | 'nano'; + label: string; + description: string; + selectedModel?: string; + apiKey?: string; + modelOptions: Array<{value: string, label: string}>; +} + +export interface SettingsViewProps { + modelConfigs?: ModelConfig[]; + onModelChange?: (tier: string, model: string) => void; + onApiKeyChange?: (tier: string, apiKey: string) => void; + onSave?: () => void; + onCancel?: () => void; + showAdvancedSettings?: boolean; + onToggleAdvancedSettings?: (enabled: boolean) => void; +} + +@customElement('ai-settings-view') +export class SettingsView extends HTMLElement { + static readonly litTagName = Lit.StaticHtml.literal`ai-settings-view`; + + #modelConfigs: ModelConfig[] = [ + { + tier: 'main', + label: 'Main Model', + description: 'Primary model for complex tasks', + selectedModel: 'gpt-4', + apiKey: '', + modelOptions: [ + { value: 'gpt-4', label: 'GPT-4' }, + { value: 'gpt-4-turbo', label: 'GPT-4 Turbo' }, + { value: 'claude-3-opus', label: 'Claude 3 Opus' }, + ], + }, + { + tier: 'mini', + label: 'Mini Model', + description: 'Fast model for simple tasks', + selectedModel: 'gpt-3.5-turbo', + apiKey: '', + modelOptions: [ + { value: 'gpt-3.5-turbo', label: 'GPT-3.5 Turbo' }, + { value: 'claude-3-sonnet', label: 'Claude 3 Sonnet' }, + ], + }, + { + tier: 'nano', + label: 'Nano Model', + description: 'Lightweight model for quick responses', + selectedModel: 'gemini-flash', + apiKey: '', + modelOptions: [ + { value: 'gemini-flash', label: 'Gemini Flash' }, + { value: 'gpt-3.5-turbo', label: 'GPT-3.5 Turbo' }, + ], + }, + ]; + + #showAdvancedSettings = false; + #openDropdownTier: string | null = null; + #onModelChange?: (tier: string, model: string) => void; + #onApiKeyChange?: (tier: string, apiKey: string) => void; + #onSave?: () => void; + #onCancel?: () => void; + #onToggleAdvancedSettings?: (enabled: boolean) => void; + + set modelConfigs(v: ModelConfig[]) { this.#modelConfigs = v; this.#render(); } + set showAdvancedSettings(v: boolean) { this.#showAdvancedSettings = v; this.#render(); } + set onModelChange(fn: (tier: string, model: string) => void) { this.#onModelChange = fn; } + set onApiKeyChange(fn: (tier: string, apiKey: string) => void) { this.#onApiKeyChange = fn; } + set onSave(fn: () => void) { this.#onSave = fn; } + set onCancel(fn: () => void) { this.#onCancel = fn; } + set onToggleAdvancedSettings(fn: (enabled: boolean) => void) { this.#onToggleAdvancedSettings = fn; } + + connectedCallback(): void { this.#render(); } + + #handleModelSelect(tier: string, model: string): void { + if (this.#onModelChange) { + this.#onModelChange(tier, model); + } + const config = this.#modelConfigs.find(c => c.tier === tier); + if (config) { + config.selectedModel = model; + this.#openDropdownTier = null; + this.#render(); + } + } + + #handleApiKeyChange(tier: string, value: string): void { + if (this.#onApiKeyChange) { + this.#onApiKeyChange(tier, value); + } + const config = this.#modelConfigs.find(c => c.tier === tier); + if (config) { + config.apiKey = value; + this.#render(); + } + } + + #toggleDropdown(tier: string): void { + this.#openDropdownTier = this.#openDropdownTier === tier ? null : tier; + this.#render(); + } + + #toggleAdvancedSettings(): void { + this.#showAdvancedSettings = !this.#showAdvancedSettings; + if (this.#onToggleAdvancedSettings) { + this.#onToggleAdvancedSettings(this.#showAdvancedSettings); + } + this.#render(); + } + + #render(): void { + Lit.render(html` + + +
+

Settings

+ +
+ ${this.#modelConfigs.map(config => { + const isDropdownOpen = this.#openDropdownTier === config.tier; + const selectedOption = config.modelOptions.find(opt => opt.value === config.selectedModel); + + return html` +
+
+
${config.label}
+
${config.description}
+
+ + + + this.#handleApiKeyChange(config.tier, (e.target as HTMLInputElement).value)} + /> +
+ `; + })} +
+ +
+
+
Advanced Settings
+
Show additional configuration options
+
+
this.#toggleAdvancedSettings()} + @keydown=${(e: KeyboardEvent) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + this.#toggleAdvancedSettings(); + } + }} + > +
+
+
+ +
+ + +
+
+ `, this, {host: this}); + } +} + +declare global { + interface HTMLElementTagNameMap { 'ai-settings-view': SettingsView; } +} diff --git a/front_end/panels/ai_chat/ui/SidebarNav.ts b/front_end/panels/ai_chat/ui/SidebarNav.ts index be5891885e..297261e552 100644 --- a/front_end/panels/ai_chat/ui/SidebarNav.ts +++ b/front_end/panels/ai_chat/ui/SidebarNav.ts @@ -7,7 +7,7 @@ import * as Lit from '../../../ui/lit/lit.js'; const {html, Decorators} = Lit; const {customElement} = Decorators as any; -export type SidebarNavItem = 'chat' | 'agents' | 'connectors' | 'settings' | 'workflows' | 'history' | 'help' | 'evaluations'; +export type SidebarNavItem = 'chat' | 'agents' | 'connectors' | 'settings' | 'history' | 'help' | 'evaluations'; export interface SidebarNavProps { activeItem?: SidebarNavItem; @@ -39,7 +39,6 @@ export class SidebarNav extends HTMLElement { { id: 'chat' as const, icon: this.#getChatIcon(), label: 'Chat' }, { id: 'agents' as const, icon: this.#getAgentsIcon(), label: 'Agents' }, { id: 'connectors' as const, icon: this.#getConnectorsIcon(), label: 'Connectors' }, - { id: 'workflows' as const, icon: this.#getWorkflowsIcon(), label: 'Workflows' }, { id: 'settings' as const, icon: this.#getSettingsIcon(), label: 'Settings' }, { id: 'history' as const, icon: this.#getHistoryIcon(), label: 'History' }, { id: 'help' as const, icon: this.#getHelpIcon(), label: 'Help' }, @@ -52,17 +51,18 @@ export class SidebarNav extends HTMLElement { display: flex; flex-direction: column; width: 36px; - background: hsl(var(--sidebar-background, 0 0% 98%)); - border-right: 1px solid #e9e9e9; + background: #fafafa; padding: 14px 0 18px; gap: 16px; align-items: center; flex-shrink: 0; - justify-content: flex-start; + justify-content: center; position: static; } .nav-item { + --fill-0: #ABBCCE; + --stroke-0: #ABBCCE; width: 32px; height: 32px; cursor: pointer; @@ -76,26 +76,19 @@ export class SidebarNav extends HTMLElement { } .nav-item:hover { - background: rgba(16, 147, 244, 0.05); - } - - .nav-item:hover svg { - fill: hsl(var(--foreground, 217.2 32.4% 27.5%)); + --fill-0: #8BA3B8; + --stroke-0: #8BA3B8; } .nav-item.active { - background: rgba(16, 147, 244, 0.1); + --fill-0: #1093F4; + --stroke-0: #1093F4; } .nav-item svg { width: 20px; height: 20px; - fill: hsl(var(--muted-foreground, 213.5 16.9% 52.5%)); - transition: fill 0.2s ease, background-color 0.2s ease; - } - - .nav-item.active svg { - fill: hsl(var(--primary, 213.8 97.5% 49.8%)); + transition: all 0.2s ease; } /* Tooltip */ @@ -142,7 +135,7 @@ export class SidebarNav extends HTMLElement { #getChatIcon() { return html` - + `; } @@ -150,8 +143,8 @@ export class SidebarNav extends HTMLElement { #getAgentsIcon() { return html` - - + + `; } @@ -159,18 +152,7 @@ export class SidebarNav extends HTMLElement { #getConnectorsIcon() { return html` - - - `; - } - - #getWorkflowsIcon() { - return html` - - - - - + `; } @@ -178,7 +160,7 @@ export class SidebarNav extends HTMLElement { #getSettingsIcon() { return html` - + `; } @@ -186,9 +168,7 @@ export class SidebarNav extends HTMLElement { #getHistoryIcon() { return html` - - - + `; } @@ -196,9 +176,7 @@ export class SidebarNav extends HTMLElement { #getHelpIcon() { return html` - - - + `; } @@ -206,12 +184,7 @@ export class SidebarNav extends HTMLElement { #getEvaluationsIcon() { return html` - - - - - - + `; } diff --git a/front_end/panels/ai_chat/ui/chatView.css b/front_end/panels/ai_chat/ui/chatView.css index 800cd2738d..6f642c5d36 100644 --- a/front_end/panels/ai_chat/ui/chatView.css +++ b/front_end/panels/ai_chat/ui/chatView.css @@ -19,7 +19,7 @@ /* Design Token System (HSL-based from demo-builder.io) */ /* Core colors */ --background: 0 0% 100%; /* White */ - --foreground: 217.2 32.4% 27.5%; /* Slate 700 - #334155 */ + --foreground: 217.2 32.4% 27.5%; /* Slate 800 - #334155 */ /* Card/Surface */ --card: 0 0% 100%; @@ -39,7 +39,7 @@ /* Muted text */ --muted: 220 25% 93.7%; - --muted-foreground: 213.5 16.9% 52.5%; /* #5E789A */ + --muted-foreground: 213.5 16.9% 52.5%; /* Slate 500 - #5E789A */ /* Accent */ --accent: 213.8 97.5% 49.8%; @@ -50,7 +50,7 @@ --destructive-foreground: 210 40% 98%; /* Borders */ - --border: 210 20.5% 84.3%; /* #D3D9E5 */ + --border: 210 20.5% 84.3%; /* Slate 200 - #D3D9E5 */ --input: 210 20.5% 84.3%; --ring: 213.8 97.5% 49.8%; /* Focus ring - blue */ @@ -67,7 +67,7 @@ --sidebar-border: 220 13% 91%; --sidebar-ring: 217.2 91.2% 59.8%; - /* Legacy Figma Design Tokens (for backward compatibility) */ + /* Figma Design Tokens (exact color values) */ --slate-100: #ECEEF4; --slate-200: #D3D9E5; --slate-300: #ABBCCE; @@ -131,6 +131,7 @@ ai-todo-list { } ai-input-bar { + display: block; flex-shrink: 0; flex-grow: 0; width: 100%; @@ -165,6 +166,8 @@ ai-sidebar-nav { left: 0; z-index: 10; height: 100vh; + background: #ffffff; + border-right: 1px solid #e9e9e9; } .main-content { @@ -172,12 +175,13 @@ ai-sidebar-nav { flex-direction: column; flex: 1 1 auto; min-width: 0; - height: 655px; - max-height: 655px; + height: 100%; min-height: 0; /* allow internal flex children to shrink */ - overflow: hidden; + overflow-y: auto; + overflow-x: hidden; + scrollbar-gutter: stable; background: hsl(var(--background, 0 0% 100%)); - margin-left: 36px; /* match the sidebar width to remove extra gutter */ + margin-left: 32px; /* Account for fixed sidebar width */ } /* Legacy selector kept for backwards compatibility (unused by ai-message-list) */ @@ -195,18 +199,48 @@ ai-sidebar-nav { /* Centered first message view styles */ .centered-view { - justify-content: flex-start; /* Changed from center to flex-start */ + justify-content: flex-start; align-items: center; height: 100%; + background: #fafafa; /* Match Figma panel background */ +} + +/* White inner card for centered view content */ +.centered-view .main-content { + background: white; + width: 100%; + max-width: 100%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + flex: 1; +} + +/* Make connectors, settings, history, and evaluations views stretch to full width and height */ +.centered-view .main-content > ai-connectors-view, +.centered-view .main-content > ai-settings-view, +.centered-view .main-content > ai-history-view, +.centered-view .main-content > ai-evaluations-view { + align-self: stretch; + width: 100%; + flex: 1; + display: flex; + flex-direction: column; + min-height: 0; } /* Ensure version banner doesn't interfere with centering */ .centered-view .centered-content { - flex: 1; /* Take remaining space after banner */ + flex: 1; display: flex; flex-direction: column; - justify-content: center; /* Center content within remaining space */ + justify-content: center; align-items: center; + width: 100%; + padding: 0 24px; + box-sizing: border-box; + gap: 24px; /* Increased spacing between elements */ } .expanded-view { @@ -217,7 +251,25 @@ ai-sidebar-nav { /* In expanded (conversation) view, reserve bottom space so the floating input bar does not overlap the last messages. */ .chat-view-container.expanded-view { - padding-bottom: 0; /* tune if input height changes */ + padding-bottom: 0; +} + +.expanded-view .main-content { + display: flex; + flex-direction: column; + justify-content: space-between; + position: relative; +} + +.expanded-view ai-input-bar { + margin: 20px; + width: calc(100% - 40px); + max-width: 100%; +} + +.expanded-view ai-input-bar .input-container { + max-width: 100%; + width: 100%; } @keyframes expandToFull { @@ -231,22 +283,23 @@ ai-sidebar-nav { align-items: center; justify-content: center; width: 100%; - max-width: none; + max-width: 100%; margin: 0 auto; padding: 24px 20px 16px; animation: fadeInScale 0.6s cubic-bezier(0.4, 0, 0.2, 1); flex: 1 1 auto; position: relative; - gap: 16px; + gap: 20px; /* Consistent spacing */ top: 0; - background: white; + background: transparent; /* Allow parent background to show through */ } .welcome-hero { display: flex; flex-direction: column; align-items: center; - gap: 12px; + gap: 16px; /* Increased gap for better spacing */ + margin-bottom: 8px; } .welcome-top-row { @@ -258,6 +311,10 @@ ai-sidebar-nav { position: relative; } +a.whats-new-pill, +a.whats-new-pill:hover, +a.whats-new-pill:visited, +a.whats-new-pill:active, .whats-new-pill { display: inline-flex; align-items: center; @@ -265,19 +322,20 @@ ai-sidebar-nav { padding: 4px 12px; height: 22px; border-radius: 16px; - border: 1px solid hsl(var(--primary)); - background: hsl(var(--primary)); - color: hsl(var(--foreground, 217.2 32.4% 27.5%)); + border: 1px solid var(--blue-selected-border); /* #B9E1FF */ + background: var(--blue-selected); /* #E1F2FF */ + color: var(--slate-800); /* #334155 */ font-size: 12px; font-weight: 500; letter-spacing: -0.24px; cursor: pointer; transition: all var(--transition-fast); + text-decoration: none !important; } .whats-new-pill:hover { - background: hsl(var(--primary) / 0.9); - border-color: hsl(var(--primary) / 0.9); + background: var(--blue-selected); + border-color: var(--blue); } .whats-new-pill .pill-icon { @@ -285,7 +343,7 @@ ai-sidebar-nav { height: 14px; display: flex; align-items: center; - color: hsl(var(--foreground, 217.2 32.4% 27.5%)); + color: var(--slate-800); } .welcome-close { @@ -332,30 +390,19 @@ ai-sidebar-nav { .welcome-title { font-size: 16px; font-weight: 500; - color: hsl(var(--foreground)); + color: var(--slate-800); /* #334155 */ text-align: center; line-height: 28px; - margin: 16px 0 24px; -} - -@media (min-width: 640px) { - .welcome-title { - font-size: 20px; - } -} - -@media (min-width: 768px) { - .welcome-title { - font-size: 24px; - } + margin: 0; + letter-spacing: -0.01em; } /* Example suggestions (chips) in centered view */ .examples-container { - margin: 4px 0 8px 0; - padding: 0 8px; + margin: 8px 0 0 0; + padding: 0; width: 100%; - max-width: 520px; + max-width: 460px; } .examples-title { @@ -370,30 +417,32 @@ ai-sidebar-nav { flex-wrap: wrap; gap: 8px; justify-content: center; + width: 100%; } .example-chip { padding: 4px 12px; height: 22px; border-radius: 16px; - border: 1px solid hsl(var(--secondary)); - background: hsl(var(--secondary)); - color: hsl(var(--muted-foreground)); + border: 1px solid var(--slate-100); /* #ECEEF4 */ + background: var(--slate-100); + color: var(--slate-500); /* #5E789A */ cursor: pointer; font-size: 12px; font-weight: 500; letter-spacing: -0.24px; - transition: background-color 0.15s ease; + transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease; display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; + line-height: 1; } .example-chip:hover { - background: hsl(var(--border)); /* #D3D9E5 */ - border-color: hsl(var(--border)); - color: hsl(var(--foreground)); + background: var(--slate-200); /* #D3D9E5 */ + border-color: var(--slate-200); + color: var(--slate-800); /* #334155 */ } .example-chip:active { @@ -401,23 +450,28 @@ ai-sidebar-nav { } .hero-suggestions { - margin-top: 4px; + margin-top: 0; + width: 100%; } .hero-chip-list { justify-content: center; gap: 8px; + display: flex; + flex-wrap: wrap; + width: 100%; } .hero-chip { - background: hsl(var(--secondary)); - border: 1px solid hsl(var(--secondary)); + background: var(--slate-100); + border: 1px solid var(--slate-100); + color: var(--slate-500); } .hero-chip:hover { - background: hsl(var(--border)); - border-color: hsl(var(--border)); - color: hsl(var(--foreground)); + background: var(--slate-200); + border-color: var(--slate-200); + color: var(--slate-800); } @keyframes fadeInScale { @@ -436,15 +490,16 @@ ai-sidebar-nav { .input-container.centered { margin: 0 auto; - width: 460px; - max-width: 460px; + width: 100%; transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1), - max-width 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); animation: slideUp 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.3s both; border-radius: 20px; - border: 1px solid hsl(var(--border)); + border: 1px solid var(--slate-200); /* #D3D9E5 */ + background: white; + padding: 20px; + box-sizing: border-box; } @keyframes slideUp { @@ -484,9 +539,9 @@ ai-sidebar-nav { width: 32px; height: 32px; border-radius: 16px; - border: 1px solid hsl(var(--border)); /* #D3D9E5 */ - background: hsl(var(--background)); /* white */ - color: hsl(var(--foreground)); /* #334155 */ + border: 1px solid var(--slate-200); /* #D3D9E5 */ + background: white; + color: var(--slate-800); /* #334155 */ display: grid; place-items: center; font-size: 16px; @@ -501,21 +556,21 @@ ai-sidebar-nav { } .icon-chip:hover { - background: hsl(var(--sidebar-background)); /* #F7F9FC */ - border-color: var(--slate-300); /* #ABBCCE */ - color: hsl(var(--foreground)); + background: #F7F9FC; + border-color: var(--slate-300); /* #ABBCCE */ + color: var(--slate-800); transform: none; box-shadow: none; } .icon-chip:active { - background: hsl(var(--secondary)); /* #ECEEF4 */ + background: var(--slate-100); /* #ECEEF4 */ } .icon-chip.active { - border: 2px solid hsl(var(--primary)); /* #1093F4 */ - color: hsl(var(--primary)); - background: hsl(var(--background)); + border: 2px solid var(--blue); /* #1093F4 */ + color: var(--blue); + background: white; } .relative-container { @@ -657,10 +712,17 @@ ai-sidebar-nav { } /* Model selector styles */ +ai-model-selector { + display: inline-block; + width: fit-content; + flex-shrink: 0; +} + .model-selector { - display: flex; + display: inline-flex; align-items: center; margin-right: 0; + width: fit-content; } .model-select { @@ -824,8 +886,9 @@ ai-sidebar-nav { } .user-message { - --primary-color: #00a4fe; + --primary-color: var(--blue); /* #1093F4 */ align-self: flex-end; + margin-top: 16px; } .model-message { @@ -864,11 +927,14 @@ ai-sidebar-nav { /* Keep user message styling as requested */ .user-message .message-content { - background: var(--color-primary-container); - color: var(--text-color); - border: 1.5px solid var(--primary-color); - border-radius: var(--bubble-radius-sender); - backdrop-filter: blur(10px); + background: var(--blue); /* #1093F4 */ + color: white; + border: none; + border-radius: 24px 8px 24px 24px; /* Rounded pill style */ + backdrop-filter: none; + padding: 10px 16px; /* Adjusted padding for proper text display */ + box-shadow: none; + transform: none; } .model-message .message-content { @@ -882,10 +948,36 @@ ai-sidebar-nav { } .message-text { - font-size: 14px; + font-size: 14px; /* Per Figma spec */ margin: 0; - line-height: 1.6; - letter-spacing: 0.01em; + line-height: 20px; /* 1.43 ratio */ + letter-spacing: 0; +} + +/* Agent status row (appears after first message) */ +.agent-status-row { + display: flex; + align-items: center; + gap: 8px; + margin-top: 12px; + margin-left: auto; + margin-right: 0; + font-size: 14px; + color: var(--slate-500); + width: fit-content; +} + +.agent-status-row .status-icon { + width: 16px; + height: 16px; + display: flex; + align-items: center; + justify-content: center; +} + +.agent-status-row .status-text { + font-weight: 400; + line-height: 20px; } /* Time indicator */ @@ -1005,24 +1097,25 @@ ai-sidebar-nav { /* Input Area */ .input-container { - padding: 0; - background-color: hsl(var(--background)); + padding: 20px; + background-color: white; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); border-radius: 20px; - border: 1px solid hsl(var(--border)); + border: 1px solid var(--slate-200); margin: 0 auto 10px auto; transition: all var(--transition-medium); width: 100%; max-width: 900px; box-sizing: border-box; overflow: visible; + min-height: 110px; /* Match Figma spec with 20px vertical padding = 70px content + 40px padding */ } .input-row { display: flex; align-items: center; gap: 10px; - padding: 20px 12px; + padding: 0; /* Padding moved to container */ width: 100%; box-sizing: border-box; background: transparent; @@ -1033,8 +1126,8 @@ ai-sidebar-nav { .input-row.stacked { flex-direction: column; align-items: stretch; - padding: 20px 12px; - gap: 25px; + padding: 0; /* Padding moved to container */ + gap: 12px; /* Reduced gap for tighter layout */ } .input-actions-toolbar { @@ -1106,7 +1199,9 @@ ai-sidebar-nav { .text-input::placeholder { font-weight: 400; - color: hsl(var(--muted-foreground)); + color: var(--slate-300); /* #ABBCCE per Figma spec */ + font-size: 14px; + line-height: 20px; } .send-button { diff --git a/front_end/panels/ai_chat/ui/input/ChatInput.ts b/front_end/panels/ai_chat/ui/input/ChatInput.ts index b5240c1e07..4315d08290 100644 --- a/front_end/panels/ai_chat/ui/input/ChatInput.ts +++ b/front_end/panels/ai_chat/ui/input/ChatInput.ts @@ -20,7 +20,12 @@ export class ChatInput extends HTMLElement { get placeholder(): string { return this.#placeholder; } set placeholder(v: string) { this.#placeholder = v ?? ''; this.#render(); } get value(): string { return this.#value; } - set value(v: string) { this.#value = v ?? ''; this.#render(); } + set value(v: string) { + this.#value = v ?? ''; + this.#render(); + // Use requestAnimationFrame to ensure DOM is ready before syncing value and autosize + requestAnimationFrame(() => this.#syncDomValue()); + } connectedCallback(): void { this.#render(); } focusInput(): void { (this.querySelector('textarea') as HTMLTextAreaElement | null)?.focus(); } diff --git a/front_end/panels/ai_chat/ui/mcp/MCPConnectorsCatalogDialog.ts b/front_end/panels/ai_chat/ui/mcp/MCPConnectorsCatalogDialog.ts index 2fdb23b95d..c5450d2f16 100644 --- a/front_end/panels/ai_chat/ui/mcp/MCPConnectorsCatalogDialog.ts +++ b/front_end/panels/ai_chat/ui/mcp/MCPConnectorsCatalogDialog.ts @@ -11,19 +11,19 @@ import mcpConnectorsCatalogDialogStyles from './mcpConnectorsCatalogDialog.css.j const logger = createLogger('MCPConnectorsCatalogDialog'); const LOGO_URLS = { - sentry: '/bundled/Images/sentry-mcp.svg', - atlassian: '/bundled/Images/atlassian-mcp.svg', - linear: '/bundled/Images/linear-mcp.svg', - notion: '/bundled/Images/notion-mcp.svg', - slack: '/bundled/Images/slack-mcp.svg', - github: '/bundled/Images/github-mcp.svg', - asana: '/bundled/Images/asana-mcp.svg', - intercom: '/bundled/Images/intercom-mcp.svg', - 'google-drive': '/bundled/Images/google-drive-mcp.svg', - huggingface: '/bundled/Images/huggingface-mcp.svg', - 'google-sheets': '/bundled/Images/google-sheets-mcp.svg', - socket: '/bundled/Images/socket-mcp.svg', - invideo: '/bundled/Images/invideo-mcp.svg', + sentry: new URL('../../../../Images/sentry-mcp.svg', import.meta.url).toString(), + atlassian: new URL('../../../../Images/atlassian-mcp.svg', import.meta.url).toString(), + linear: new URL('../../../../Images/linear-mcp.svg', import.meta.url).toString(), + notion: new URL('../../../../Images/notion-mcp.svg', import.meta.url).toString(), + slack: new URL('../../../../Images/slack-mcp.svg', import.meta.url).toString(), + github: new URL('../../../../Images/github-mcp.svg', import.meta.url).toString(), + asana: new URL('../../../../Images/asana-mcp.svg', import.meta.url).toString(), + intercom: new URL('../../../../Images/intercom-mcp.svg', import.meta.url).toString(), + 'google-drive': new URL('../../../../Images/google-drive-mcp.svg', import.meta.url).toString(), + huggingface: new URL('../../../../Images/huggingface-mcp.svg', import.meta.url).toString(), + 'google-sheets': new URL('../../../../Images/google-sheets-mcp.svg', import.meta.url).toString(), + socket: new URL('../../../../Images/socket-mcp.svg', import.meta.url).toString(), + invideo: new URL('../../../../Images/invideo-mcp.svg', import.meta.url).toString(), } as const; type MCPConnectorLogoId = keyof typeof LOGO_URLS; From 81cf94ef83f364373b452fd42adf9a7c0855fccf Mon Sep 17 00:00:00 2001 From: Tyson Thomas Date: Sun, 18 Jan 2026 21:07:51 -0800 Subject: [PATCH 5/7] additional fixes --- config/gni/devtools_grd_files.gni | 1 + config/gni/devtools_image_files.gni | 1 + front_end/Images/browser-operator-logo.png | Bin 8155 -> 746782 bytes .../Images/src/browser-operator-logo.svg | 4 +- front_end/entrypoints/main/main-meta.ts | 2 +- front_end/panels/ai_chat/BUILD.gn | 2 + front_end/panels/ai_chat/ui/AIChatPanel.ts | 4 +- front_end/panels/ai_chat/ui/ChatView.ts | 14 +- front_end/panels/ai_chat/ui/ConnectorsView.ts | 7 +- .../panels/ai_chat/ui/EvaluationsView.ts | 44 +- .../panels/ai_chat/ui/OnboardingDialog.ts | 2 +- front_end/panels/ai_chat/ui/SettingsView.ts | 178 +++----- front_end/panels/ai_chat/ui/chatView.css | 8 +- .../panels/ai_chat/ui/common/Dropdown.ts | 387 ++++++++++++++++++ .../ui/model_selector/ModelSelector.ts | 99 ++--- front_end/ui/legacy/DockController.ts | 9 +- 16 files changed, 537 insertions(+), 225 deletions(-) create mode 100644 front_end/panels/ai_chat/ui/common/Dropdown.ts diff --git a/config/gni/devtools_grd_files.gni b/config/gni/devtools_grd_files.gni index f9b4ba898c..1f4b2a97b7 100644 --- a/config/gni/devtools_grd_files.gni +++ b/config/gni/devtools_grd_files.gni @@ -65,6 +65,7 @@ grd_files_bundled_sources = [ "front_end/Images/breakpoint-crossed-filled.svg", "front_end/Images/breakpoint-crossed.svg", "front_end/Images/browser-operator-logo.svg", + "front_end/Images/browser-operator-logo.png", "front_end/Images/brush-2.svg", "front_end/Images/brush-filled.svg", "front_end/Images/brush.svg", diff --git a/config/gni/devtools_image_files.gni b/config/gni/devtools_image_files.gni index 3555304c8a..c6ac21c8cd 100644 --- a/config/gni/devtools_image_files.gni +++ b/config/gni/devtools_image_files.gni @@ -21,6 +21,7 @@ devtools_image_files = [ "gdp-logo-light.png", "gdp-logo-dark.png", "demo.gif", + "browser-operator-logo.png", ] devtools_svg_sources = [ diff --git a/front_end/Images/browser-operator-logo.png b/front_end/Images/browser-operator-logo.png index a97b47b59742f0e32ddbb58f7aa32d5ce72f1dde..1c692214fbb202fdee30e14a721ac5d1b88a84fc 100644 GIT binary patch literal 746782 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 +%cMGms269rIsCkr* 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%0DGj4f!gro0 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

D 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%0Dej2PIYB(x6l0VHgvg$B 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

AHsrQcbj_CGa1yPGtBGoDaQzPR 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,v@Y!ag*~b5N~dT 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 z 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 literal 8155 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 diff --git a/front_end/Images/src/browser-operator-logo.svg b/front_end/Images/src/browser-operator-logo.svg index 4e4f47deb9..492895bbeb 100644 --- a/front_end/Images/src/browser-operator-logo.svg +++ b/front_end/Images/src/browser-operator-logo.svg @@ -1,4 +1,4 @@ - - + + diff --git a/front_end/entrypoints/main/main-meta.ts b/front_end/entrypoints/main/main-meta.ts index a5de738e73..33f9fc460d 100644 --- a/front_end/entrypoints/main/main-meta.ts +++ b/front_end/entrypoints/main/main-meta.ts @@ -727,7 +727,7 @@ Common.Settings.registerSettingExtension({ category: Common.Settings.SettingCategory.GLOBAL, settingName: 'currentDockState', settingType: Common.Settings.SettingType.ENUM, - defaultValue: 'right', + defaultValue: 'left', options: [ { value: 'right', diff --git a/front_end/panels/ai_chat/BUILD.gn b/front_end/panels/ai_chat/BUILD.gn index aa9151492c..8a1dda233a 100644 --- a/front_end/panels/ai_chat/BUILD.gn +++ b/front_end/panels/ai_chat/BUILD.gn @@ -44,6 +44,7 @@ devtools_module("ai_chat") { "ui/common/Switch.ts", "ui/common/Button.ts", "ui/common/SearchInput.ts", + "ui/common/Dropdown.ts", "ui/LiveAgentSessionComponent.ts", "ui/ToolCallComponent.ts", "ui/ToolResultComponent.ts", @@ -338,6 +339,7 @@ _ai_chat_sources = [ "ui/common/Switch.ts", "ui/common/Button.ts", "ui/common/SearchInput.ts", + "ui/common/Dropdown.ts", "ui/LiveAgentSessionComponent.ts", "ui/ToolCallComponent.ts", "ui/ToolResultComponent.ts", diff --git a/front_end/panels/ai_chat/ui/AIChatPanel.ts b/front_end/panels/ai_chat/ui/AIChatPanel.ts index a3f3ef4287..f76ff0877a 100644 --- a/front_end/panels/ai_chat/ui/AIChatPanel.ts +++ b/front_end/panels/ai_chat/ui/AIChatPanel.ts @@ -581,6 +581,8 @@ export class AIChatPanel extends UI.Panel.Panel { this.#chatView.addEventListener('manual-setup-requested', this.#handleManualSetupRequest.bind(this)); // Wire sidebar navigation actions this.#chatView.addEventListener('sidebar-nav', this.#handleSidebarNavEvent.bind(this)); + // Wire settings dialog opening from sidebar + this.#chatView.addEventListener('open-settings-dialog', () => this.#onSettingsClick()); // Wire HistoryView events this.#chatView.addEventListener(HistoryViewEvents.REQUEST_DATA, this.#handleHistoryRequestData.bind(this)); @@ -1241,9 +1243,9 @@ export class AIChatPanel extends UI.Panel.Panel { break; case 'chat': case 'connectors': // Let ChatView handle routing to ConnectorsView - case 'settings': // Let ChatView handle routing to SettingsView case 'history': // Let ChatView handle routing to HistoryView case 'evaluations': // Let ChatView handle routing to EvaluationsView + // Note: 'settings' is handled via 'open-settings-dialog' event, not sidebar-nav default: // ChatView will handle these via its internal routing break; diff --git a/front_end/panels/ai_chat/ui/ChatView.ts b/front_end/panels/ai_chat/ui/ChatView.ts index 1fcfc43587..0b7ed978e6 100644 --- a/front_end/panels/ai_chat/ui/ChatView.ts +++ b/front_end/panels/ai_chat/ui/ChatView.ts @@ -45,7 +45,7 @@ const logger = createLogger('ChatView'); import chatViewStyles from './chatView.css.js'; -const browserOperatorLogoUrl = new URL('../../../Images/browser-operator-logo.svg', import.meta.url).toString(); +const browserOperatorLogoUrl = new URL('../../../Images/browser-operator-logo.png', import.meta.url).toString(); const {html, Decorators} = Lit; const {customElement} = Decorators; @@ -767,6 +767,14 @@ export class ChatView extends HTMLElement { } #handleSidebarNavClick(item: SidebarNavItem): void { + if (item === 'settings') { + // Dispatch event for AIChatPanel to handle opening SettingsDialog + this.dispatchEvent(new CustomEvent('open-settings-dialog', { + bubbles: true, + composed: true, + })); + return; + } this.#activeSidebarItem = item; this.dispatchEvent(new CustomEvent('sidebar-nav', { bubbles: true, @@ -880,8 +888,6 @@ export class ChatView extends HTMLElement { switch (this.#activeSidebarItem) { case 'connectors': return html``; - case 'settings': - return html``; case 'history': return html``; case 'evaluations': @@ -939,8 +945,6 @@ export class ChatView extends HTMLElement { switch (this.#activeSidebarItem) { case 'connectors': return html``; - case 'settings': - return html``; case 'history': return html``; case 'evaluations': diff --git a/front_end/panels/ai_chat/ui/ConnectorsView.ts b/front_end/panels/ai_chat/ui/ConnectorsView.ts index 873649f78d..effb697eba 100644 --- a/front_end/panels/ai_chat/ui/ConnectorsView.ts +++ b/front_end/panels/ai_chat/ui/ConnectorsView.ts @@ -142,8 +142,7 @@ export class ConnectorsView extends HTMLElement { max-width: 100%; padding: 20px 16px; gap: 16px; - overflow-y: auto; - scrollbar-gutter: stable; + overflow: hidden; font-size: 13px; box-sizing: border-box; flex: 1; @@ -156,6 +155,7 @@ export class ConnectorsView extends HTMLElement { gap: 12px; width: 100%; box-sizing: border-box; + flex-shrink: 0; } .title { @@ -174,6 +174,7 @@ export class ConnectorsView extends HTMLElement { max-width: 100%; padding: 0; box-sizing: border-box; + flex-shrink: 0; } @@ -258,6 +259,8 @@ export class ConnectorsView extends HTMLElement { max-width: 100%; box-sizing: border-box; flex: 1; + overflow-y: auto; + min-height: 0; } .categories-list { diff --git a/front_end/panels/ai_chat/ui/EvaluationsView.ts b/front_end/panels/ai_chat/ui/EvaluationsView.ts index 7995cb2a04..24f905e3fe 100644 --- a/front_end/panels/ai_chat/ui/EvaluationsView.ts +++ b/front_end/panels/ai_chat/ui/EvaluationsView.ts @@ -14,6 +14,7 @@ import { webTaskAgentTests } from '../evaluation/test-cases/web-task-agent-tests import type { TestResult } from '../evaluation/framework/types.js'; import { createLogger } from '../core/Logger.js'; import { AIChatPanel } from './AIChatPanel.js'; +import './common/Dropdown.js'; const logger = createLogger('EvaluationsView'); @@ -269,7 +270,7 @@ export class EvaluationsView extends HTMLElement { width: 100%; height: 100%; background: white; - overflow: hidden; + overflow: visible; align-self: stretch; box-sizing: border-box; } @@ -282,10 +283,11 @@ export class EvaluationsView extends HTMLElement { max-width: 100%; padding: 20px 16px; gap: 16px; - overflow: hidden; + overflow: visible; font-size: 13px; box-sizing: border-box; flex: 1; + min-height: 0; } .header { @@ -381,22 +383,6 @@ export class EvaluationsView extends HTMLElement { color: var(--slate-500); } - .selector select { - padding: 6px 10px; - border: 1px solid var(--slate-200); - border-radius: 6px; - font-size: 12px; - color: var(--slate-800); - background: white; - cursor: pointer; - min-width: 200px; - height: 32px; - } - - .selector select:hover { - border-color: var(--slate-300); - } - .selection-info { font-size: 12px; color: var(--slate-500); @@ -606,18 +592,20 @@ export class EvaluationsView extends HTMLElement {

diff --git a/front_end/panels/ai_chat/ui/OnboardingDialog.ts b/front_end/panels/ai_chat/ui/OnboardingDialog.ts index f7e0b4eadb..864c58b9ae 100644 --- a/front_end/panels/ai_chat/ui/OnboardingDialog.ts +++ b/front_end/panels/ai_chat/ui/OnboardingDialog.ts @@ -11,7 +11,7 @@ import { createLogger } from '../core/Logger.js'; const logger = createLogger('OnboardingDialog'); -const browserOperatorLogoUrl = new URL('../../../Images/browser-operator-logo.svg', import.meta.url).toString(); +const browserOperatorLogoUrl = new URL('../../../Images/browser-operator-logo.png', import.meta.url).toString(); const demoGifUrl = new URL('../../../Images/demo.gif', import.meta.url).toString(); const ONBOARDING_COMPLETE_KEY = 'ai_chat_onboarding_complete'; diff --git a/front_end/panels/ai_chat/ui/SettingsView.ts b/front_end/panels/ai_chat/ui/SettingsView.ts index 4e9b3da6ab..d9308a30e6 100644 --- a/front_end/panels/ai_chat/ui/SettingsView.ts +++ b/front_end/panels/ai_chat/ui/SettingsView.ts @@ -3,6 +3,7 @@ // found in the LICENSE file. import * as Lit from '../../../ui/lit/lit.js'; +import './common/Dropdown.js'; const {html, Decorators} = Lit; const {customElement} = Decorators as any; @@ -35,12 +36,39 @@ export class SettingsView extends HTMLElement { tier: 'main', label: 'Main Model', description: 'Primary model for complex tasks', - selectedModel: 'gpt-4', + selectedModel: 'claude-3.5-sonnet', apiKey: '', modelOptions: [ { value: 'gpt-4', label: 'GPT-4' }, { value: 'gpt-4-turbo', label: 'GPT-4 Turbo' }, + { value: 'gpt-4o', label: 'GPT-4o' }, + { value: 'gpt-4o-mini', label: 'GPT-4o Mini' }, + { value: 'gpt-4.1', label: 'GPT-4.1' }, + { value: 'gpt-4.1-mini', label: 'GPT-4.1 Mini' }, + { value: 'gpt-4.1-nano', label: 'GPT-4.1 Nano' }, + { value: 'o1', label: 'o1' }, + { value: 'o1-mini', label: 'o1 Mini' }, + { value: 'o1-pro', label: 'o1 Pro' }, + { value: 'o3', label: 'o3' }, + { value: 'o3-mini', label: 'o3 Mini' }, { value: 'claude-3-opus', label: 'Claude 3 Opus' }, + { value: 'claude-3-sonnet', label: 'Claude 3 Sonnet' }, + { value: 'claude-3-haiku', label: 'Claude 3 Haiku' }, + { value: 'claude-3.5-sonnet', label: 'Claude 3.5 Sonnet' }, + { value: 'claude-3.5-haiku', label: 'Claude 3.5 Haiku' }, + { value: 'claude-4-opus', label: 'Claude 4 Opus' }, + { value: 'claude-4-sonnet', label: 'Claude 4 Sonnet' }, + { value: 'gemini-pro', label: 'Gemini Pro' }, + { value: 'gemini-ultra', label: 'Gemini Ultra' }, + { value: 'gemini-flash', label: 'Gemini Flash' }, + { value: 'gemini-2.0-flash', label: 'Gemini 2.0 Flash' }, + { value: 'gemini-2.5-pro', label: 'Gemini 2.5 Pro' }, + { value: 'llama-3.1-70b', label: 'Llama 3.1 70B' }, + { value: 'llama-3.1-405b', label: 'Llama 3.1 405B' }, + { value: 'llama-3.3-70b', label: 'Llama 3.3 70B' }, + { value: 'mistral-large', label: 'Mistral Large' }, + { value: 'mistral-medium', label: 'Mistral Medium' }, + { value: 'deepseek-v3', label: 'DeepSeek V3' }, ], }, { @@ -68,7 +96,6 @@ export class SettingsView extends HTMLElement { ]; #showAdvancedSettings = false; - #openDropdownTier: string | null = null; #onModelChange?: (tier: string, model: string) => void; #onApiKeyChange?: (tier: string, apiKey: string) => void; #onSave?: () => void; @@ -92,7 +119,6 @@ export class SettingsView extends HTMLElement { const config = this.#modelConfigs.find(c => c.tier === tier); if (config) { config.selectedModel = model; - this.#openDropdownTier = null; this.#render(); } } @@ -108,11 +134,6 @@ export class SettingsView extends HTMLElement { } } - #toggleDropdown(tier: string): void { - this.#openDropdownTier = this.#openDropdownTier === tier ? null : tier; - this.#render(); - } - #toggleAdvancedSettings(): void { this.#showAdvancedSettings = !this.#showAdvancedSettings; if (this.#onToggleAdvancedSettings) { @@ -140,8 +161,9 @@ export class SettingsView extends HTMLElement { max-width: 600px; margin: 0 auto; padding: 32px 24px; - gap: 32px; - overflow-y: auto; + gap: 24px; + overflow: hidden; + flex: 1; } .title { @@ -150,12 +172,17 @@ export class SettingsView extends HTMLElement { color: var(--slate-800); text-align: center; margin: 0; + flex-shrink: 0; } .model-sections { display: flex; flex-direction: column; gap: 24px; + flex: 1; + overflow-y: auto; + min-height: 0; + padding-right: 8px; } .model-section { @@ -186,71 +213,9 @@ export class SettingsView extends HTMLElement { line-height: 1.4; } - .dropdown-row { - position: relative; - display: flex; - align-items: center; - justify-content: space-between; - padding: 10px 12px; - border: 1px solid var(--slate-200); - border-radius: 6px; - background: white; - cursor: pointer; - transition: all 0.2s ease; - } - - .dropdown-row:hover { - border-color: var(--slate-300); - background: #F7F9FC; - } - - .dropdown-text { - font-size: 14px; - color: var(--slate-800); - } - - .dropdown-chevron { - width: 16px; - height: 16px; - color: var(--slate-500); - transition: transform 0.2s ease; - } - - .dropdown-chevron.open { - transform: rotate(180deg); - } - - .dropdown-menu { - position: absolute; - top: calc(100% + 4px); - left: 0; - right: 0; - background: white; - border: 1px solid var(--slate-200); - border-radius: 6px; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); - z-index: 1000; - overflow: hidden; - max-height: 200px; - overflow-y: auto; - } - - .dropdown-option { - padding: 10px 12px; - font-size: 14px; - color: var(--slate-800); - cursor: pointer; - transition: background-color 0.2s ease; - } - - .dropdown-option:hover { - background: #F7F9FC; - } - - .dropdown-option.selected { - background: var(--blue-selected); - color: var(--blue); - font-weight: 500; + ai-dropdown { + display: block; + width: 100%; } .api-key-input { @@ -279,6 +244,7 @@ export class SettingsView extends HTMLElement { gap: 12px; padding-top: 16px; border-top: 1px solid var(--slate-200); + flex-shrink: 0; } .button { @@ -376,47 +342,29 @@ export class SettingsView extends HTMLElement {

Settings

- ${this.#modelConfigs.map(config => { - const isDropdownOpen = this.#openDropdownTier === config.tier; - const selectedOption = config.modelOptions.find(opt => opt.value === config.selectedModel); - - return html` -
-
-
${config.label}
-
${config.description}
-
- - - - this.#handleApiKeyChange(config.tier, (e.target as HTMLInputElement).value)} - /> + ${this.#modelConfigs.map(config => html` +
+
+
${config.label}
+
${config.description}
- `; - })} + + this.#handleModelSelect(config.tier, value)} + > + + this.#handleApiKeyChange(config.tier, (e.target as HTMLInputElement).value)} + /> +
+ `)}
diff --git a/front_end/panels/ai_chat/ui/chatView.css b/front_end/panels/ai_chat/ui/chatView.css index 6f642c5d36..403fac0364 100644 --- a/front_end/panels/ai_chat/ui/chatView.css +++ b/front_end/panels/ai_chat/ui/chatView.css @@ -362,10 +362,10 @@ a.whats-new-pill:active, width: 56px; height: 56px; border-radius: 16px; - background: radial-gradient(circle, rgba(248, 250, 255, 0.45) 0%, rgba(223, 233, 255, 0.55) 100%); + background: radial-gradient(circle, rgba(250, 250, 250, 0.45) 0%, rgba(235, 235, 235, 0.55) 100%); display: grid; place-items: center; - box-shadow: 0 10px 30px rgba(16, 147, 244, 0.14); + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); position: relative; } @@ -374,7 +374,7 @@ a.whats-new-pill:active, height: 48px; border-radius: 12px; object-fit: cover; - box-shadow: 0 8px 24px rgba(0, 164, 254, 0.22); + box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); } .welcome-icon::before { @@ -382,7 +382,7 @@ a.whats-new-pill:active, position: absolute; inset: 0; border-radius: 16px; - background: radial-gradient(circle, #f8faff 0%, #dfe9ff 100%); + background: radial-gradient(circle, #fafafa 0%, #ebebeb 100%); opacity: 0.22; z-index: -1; } diff --git a/front_end/panels/ai_chat/ui/common/Dropdown.ts b/front_end/panels/ai_chat/ui/common/Dropdown.ts new file mode 100644 index 0000000000..834e117956 --- /dev/null +++ b/front_end/panels/ai_chat/ui/common/Dropdown.ts @@ -0,0 +1,387 @@ +// Copyright 2025 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import * as Lit from '../../../../ui/lit/lit.js'; + +const {html, Decorators} = Lit; +const {customElement} = Decorators as any; + +export interface DropdownOption { + value: string; + label: string; +} + +export interface DropdownProps { + options: DropdownOption[]; + selectedValue: string; + placeholder?: string; + onChange: (value: string) => void; +} + +@customElement('ai-dropdown') +export class Dropdown extends HTMLElement { + static readonly litTagName = Lit.StaticHtml.literal`ai-dropdown`; + + #options: DropdownOption[] = []; + #selectedValue = ''; + #placeholder = 'Select...'; + #isOpen = false; + #onChange?: (value: string) => void; + #menuPosition = { top: 0, left: 0, width: 0 }; + #menuElement: HTMLDivElement | null = null; + + // Search functionality + #searchQuery = ''; + #highlightedIndex = 0; + #searchInput: HTMLInputElement | null = null; + #optionElements: HTMLDivElement[] = []; + + set options(v: DropdownOption[]) { this.#options = v; this.#render(); } + set selectedValue(v: string) { this.#selectedValue = v; this.#render(); } + set placeholder(v: string) { this.#placeholder = v; this.#render(); } + set onChange(fn: (value: string) => void) { this.#onChange = fn; } + + connectedCallback(): void { + this.#render(); + // Close dropdown when clicking outside + document.addEventListener('click', this.#handleOutsideClick); + } + + disconnectedCallback(): void { + document.removeEventListener('click', this.#handleOutsideClick); + this.#removeMenu(); + } + + #handleOutsideClick = (e: Event): void => { + if (!this.contains(e.target as Node) && !this.#menuElement?.contains(e.target as Node)) { + this.#closeDropdown(); + } + }; + + #closeDropdown(): void { + this.#isOpen = false; + this.#searchQuery = ''; + this.#highlightedIndex = 0; + this.#removeMenu(); + this.#render(); + } + + #removeMenu(): void { + if (this.#menuElement) { + this.#menuElement.remove(); + this.#menuElement = null; + this.#searchInput = null; + this.#optionElements = []; + } + } + + #toggleDropdown(): void { + this.#isOpen = !this.#isOpen; + if (this.#isOpen) { + // Calculate position for fixed menu + const row = this.querySelector('.dropdown-row') as HTMLElement; + if (row) { + const rect = row.getBoundingClientRect(); + this.#menuPosition = { + top: rect.bottom + 4, + left: rect.left, + width: rect.width, + }; + } + this.#searchQuery = ''; + this.#highlightedIndex = 0; + this.#createMenu(); + } else { + this.#closeDropdown(); + } + this.#render(); + } + + get #isSearchable(): boolean { + return this.#options.length > 10; + } + + #filteredOptions(): DropdownOption[] { + if (!this.#searchQuery) { + return this.#options; + } + const q = this.#searchQuery.toLowerCase(); + return this.#options.filter(o => + o.label.toLowerCase().includes(q) || o.value.toLowerCase().includes(q) + ); + } + + #createMenu(): void { + this.#removeMenu(); + + this.#menuElement = document.createElement('div'); + this.#menuElement.className = 'ai-dropdown-menu-portal'; + this.#menuElement.style.cssText = ` + position: fixed; + top: ${this.#menuPosition.top}px; + left: ${this.#menuPosition.left}px; + width: ${this.#menuPosition.width}px; + background: white; + border: 1px solid var(--slate-200, #e2e8f0); + border-radius: 6px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); + z-index: 999999; + overflow: hidden; + display: flex; + flex-direction: column; + `; + + // Add search input if searchable + if (this.#isSearchable) { + this.#searchInput = document.createElement('input'); + this.#searchInput.type = 'text'; + this.#searchInput.placeholder = 'Search...'; + this.#searchInput.style.cssText = ` + padding: 10px 12px; + border: none; + border-bottom: 1px solid var(--slate-200, #e2e8f0); + font-size: 12px; + outline: none; + color: var(--slate-800, #1e293b); + background: white; + `; + this.#searchInput.addEventListener('input', this.#handleSearchInput); + this.#searchInput.addEventListener('keydown', this.#handleKeydown); + this.#menuElement.appendChild(this.#searchInput); + + // Focus the search input after appending to DOM + requestAnimationFrame(() => { + this.#searchInput?.focus(); + }); + } + + // Create options container + const optionsContainer = document.createElement('div'); + optionsContainer.className = 'ai-dropdown-options-container'; + optionsContainer.style.cssText = ` + max-height: 200px; + overflow-y: auto; + `; + this.#renderOptions(optionsContainer); + this.#menuElement.appendChild(optionsContainer); + + this.#menuElement.addEventListener('click', (e) => e.stopPropagation()); + document.body.appendChild(this.#menuElement); + + // Auto-scroll to selected option after DOM is ready + requestAnimationFrame(() => { + this.#scrollToSelected(optionsContainer); + }); + } + + #scrollToSelected(container: HTMLDivElement): void { + const selectedIndex = this.#options.findIndex(o => o.value === this.#selectedValue); + if (selectedIndex >= 0 && this.#optionElements[selectedIndex]) { + const selectedEl = this.#optionElements[selectedIndex]; + // Scroll so selected item is roughly centered in the container + const containerHeight = container.clientHeight; + const scrollTop = selectedEl.offsetTop - (containerHeight / 2) + (selectedEl.offsetHeight / 2); + container.scrollTop = Math.max(0, scrollTop); + } + } + + #renderOptions(container: HTMLDivElement): void { + container.innerHTML = ''; + this.#optionElements = []; + + const filtered = this.#filteredOptions(); + + if (filtered.length === 0) { + const noResults = document.createElement('div'); + noResults.textContent = 'No results found'; + noResults.style.cssText = ` + padding: 10px 12px; + font-size: 12px; + color: var(--slate-500, #64748b); + text-align: center; + `; + container.appendChild(noResults); + return; + } + + filtered.forEach((option, index) => { + const optionEl = document.createElement('div'); + optionEl.className = 'ai-dropdown-option'; + if (option.value === this.#selectedValue) { + optionEl.className += ' selected'; + } + if (index === this.#highlightedIndex) { + optionEl.className += ' highlighted'; + } + optionEl.textContent = option.label; + this.#applyOptionStyles(optionEl, option.value === this.#selectedValue, index === this.#highlightedIndex); + + optionEl.addEventListener('mouseenter', () => { + this.#highlightedIndex = index; + this.#updateHighlight(); + }); + optionEl.addEventListener('click', (e) => { + e.stopPropagation(); + this.#selectOption(option.value); + }); + + container.appendChild(optionEl); + this.#optionElements.push(optionEl); + }); + } + + #applyOptionStyles(el: HTMLDivElement, isSelected: boolean, isHighlighted: boolean): void { + let styles = ` + padding: 10px 12px; + font-size: 12px; + color: var(--slate-800, #1e293b); + cursor: pointer; + transition: background-color 0.1s ease; + `; + if (isSelected) { + styles += 'background: rgba(16, 147, 244, 0.08); color: var(--blue, #1093F4); font-weight: 500;'; + } else if (isHighlighted) { + styles += 'background: #F7F9FC;'; + } + el.style.cssText = styles; + } + + #updateHighlight(): void { + const filtered = this.#filteredOptions(); + this.#optionElements.forEach((el, index) => { + const option = filtered[index]; + if (option) { + this.#applyOptionStyles(el, option.value === this.#selectedValue, index === this.#highlightedIndex); + } + }); + + // Scroll highlighted option into view + const highlightedEl = this.#optionElements[this.#highlightedIndex]; + if (highlightedEl) { + highlightedEl.scrollIntoView({ block: 'nearest' }); + } + } + + #handleSearchInput = (e: Event): void => { + this.#searchQuery = (e.target as HTMLInputElement).value; + this.#highlightedIndex = 0; + + // Re-render options + const optionsContainer = this.#menuElement?.querySelector('div:last-child') as HTMLDivElement; + if (optionsContainer) { + this.#renderOptions(optionsContainer); + } + }; + + #handleKeydown = (e: KeyboardEvent): void => { + const filtered = this.#filteredOptions(); + + switch (e.key) { + case 'ArrowDown': + e.preventDefault(); + this.#highlightedIndex = Math.min(this.#highlightedIndex + 1, filtered.length - 1); + this.#updateHighlight(); + break; + case 'ArrowUp': + e.preventDefault(); + this.#highlightedIndex = Math.max(this.#highlightedIndex - 1, 0); + this.#updateHighlight(); + break; + case 'Enter': + e.preventDefault(); + const option = filtered[this.#highlightedIndex]; + if (option) { + this.#selectOption(option.value); + } + break; + case 'Escape': + e.preventDefault(); + this.#closeDropdown(); + break; + } + }; + + #selectOption(value: string): void { + this.#selectedValue = value; + this.#closeDropdown(); + if (this.#onChange) { + this.#onChange(value); + } + } + + #getSelectedLabel(): string { + const selected = this.#options.find(opt => opt.value === this.#selectedValue); + return selected?.label || this.#placeholder; + } + + #render(): void { + Lit.render(html` + + + + `, this, {host: this}); + } +} + +declare global { + interface HTMLElementTagNameMap { 'ai-dropdown': Dropdown; } +} diff --git a/front_end/panels/ai_chat/ui/model_selector/ModelSelector.ts b/front_end/panels/ai_chat/ui/model_selector/ModelSelector.ts index fdfbd73b50..9e196a03f2 100644 --- a/front_end/panels/ai_chat/ui/model_selector/ModelSelector.ts +++ b/front_end/panels/ai_chat/ui/model_selector/ModelSelector.ts @@ -3,6 +3,7 @@ // found in the LICENSE file. import * as Lit from '../../../../ui/lit/lit.js'; +import '../common/Dropdown.js'; const {html, Decorators} = Lit; const {customElement} = Decorators as any; @@ -16,11 +17,6 @@ export class ModelSelector extends HTMLElement { #options: ModelOption[] = []; #selected: string | undefined; #disabled = false; - #open = false; - #query = ''; - #highlighted = 0; - #preferAbove = false; - #forceSearchable = false; get options(): ModelOption[] { return this.#options; } set options(v: ModelOption[]) { this.#options = v || []; this.#render(); } @@ -28,10 +24,6 @@ export class ModelSelector extends HTMLElement { set selected(v: string | undefined) { this.#selected = v; this.#render(); } get disabled(): boolean { return this.#disabled; } set disabled(v: boolean) { this.#disabled = !!v; this.#render(); } - get preferAbove(): boolean { return this.#preferAbove; } - set preferAbove(v: boolean) { this.#preferAbove = !!v; this.#render(); } - get forceSearchable(): boolean { return this.#forceSearchable; } - set forceSearchable(v: boolean) { this.#forceSearchable = !!v; this.#render(); } connectedCallback(): void { this.#render(); } @@ -39,68 +31,45 @@ export class ModelSelector extends HTMLElement { this.dispatchEvent(new CustomEvent('change', { bubbles: true, detail: { value }})); } - #toggle = (e: Event) => { - e.preventDefault(); - if (this.#disabled) return; - const wasOpen = this.#open; - this.#open = !this.#open; + #handleChange = (value: string): void => { + this.#selected = value; + this.#emitChange(value); this.#render(); - if (!wasOpen && this.#open) { - // Notify host that the selector opened (used to lazily refresh models) - this.dispatchEvent(new CustomEvent('model-selector-focus', {bubbles: true})); - } }; - #onSearch = (e: Event) => { this.#query = (e.target as HTMLInputElement).value; this.#highlighted = 0; this.#render(); }; - #onKeydown = (e: KeyboardEvent) => { - const filtered = this.#filtered(); - if (e.key === 'ArrowDown') { e.preventDefault(); this.#highlighted = Math.min(this.#highlighted + 1, filtered.length - 1); this.#render(); } - if (e.key === 'ArrowUp') { e.preventDefault(); this.#highlighted = Math.max(this.#highlighted - 1, 0); this.#render(); } - if (e.key === 'Enter') { e.preventDefault(); const opt = filtered[this.#highlighted]; if (opt) { this.#selected = opt.value; this.#open = false; this.#emitChange(opt.value); this.#render(); } } - if (e.key === 'Escape') { e.preventDefault(); this.#open = false; this.#render(); } - }; - - #filtered(): ModelOption[] { - if (!this.#query) return this.#options; - const q = this.#query.toLowerCase(); - return this.#options.filter(o => o.label.toLowerCase().includes(q) || o.value.toLowerCase().includes(q)); - } - #isSearchable(): boolean { return this.#forceSearchable || (this.#options?.length || 0) >= 20; } + #handleFocus = (): void => { + // Notify host that the selector opened (used to lazily refresh models) + this.dispatchEvent(new CustomEvent('model-selector-focus', {bubbles: true})); + }; #render(): void { - const selectedLabel = this.#options.find(o => o.value === this.#selected)?.label || this.#selected || 'Select Model'; - if (!this.#isSearchable()) { - Lit.render(html` -
- -
- `, this, {host: this}); - return; - } - - const filtered = this.#filtered(); Lit.render(html` -
- - ${this.#open ? html` -
e.stopPropagation()}> - -
- ${filtered.map((o, i) => html` -
{ this.#selected = o.value; this.#open = false; this.#emitChange(o.value); this.#render(); }} - @mouseenter=${() => this.#highlighted = i} - >${o.label}
- `)} - ${filtered.length === 0 ? html`
No matching models found
` : ''} -
-
- ` : ''} + + +
+
`, this, {host: this}); } diff --git a/front_end/ui/legacy/DockController.ts b/front_end/ui/legacy/DockController.ts index eac194a812..94a4a82bc6 100644 --- a/front_end/ui/legacy/DockController.ts +++ b/front_end/ui/legacy/DockController.ts @@ -59,9 +59,16 @@ export class DockController extends Common.ObjectWrapper.ObjectWrapper Date: Sun, 18 Jan 2026 22:03:04 -0800 Subject: [PATCH 6/7] fix settings view --- config/gni/devtools_grd_files.gni | 1 - .../Images/src/browser-operator-logo.svg | 4 +- front_end/panels/ai_chat/BUILD.gn | 6 +- front_end/panels/ai_chat/ui/AIChatPanel.ts | 45 +- front_end/panels/ai_chat/ui/ChatView.ts | 64 +- .../panels/ai_chat/ui/OnboardingDialog.ts | 2 +- front_end/panels/ai_chat/ui/SettingsDialog.ts | 1569 +++++++++++------ front_end/panels/ai_chat/ui/chatView.css | 85 +- .../ui/settings/advanced/MCPSettings.ts | 12 +- 9 files changed, 1140 insertions(+), 648 deletions(-) diff --git a/config/gni/devtools_grd_files.gni b/config/gni/devtools_grd_files.gni index 1f4b2a97b7..b8ac0113bd 100644 --- a/config/gni/devtools_grd_files.gni +++ b/config/gni/devtools_grd_files.gni @@ -648,7 +648,6 @@ grd_files_bundled_sources = [ "front_end/panels/ai_chat/ui/AIChatPanel.js", "front_end/panels/ai_chat/ui/ChatView.js", "front_end/panels/ai_chat/ui/ConnectorsView.js", - "front_end/panels/ai_chat/ui/SettingsView.js", "front_end/panels/ai_chat/ui/LiveAgentSessionComponent.js", "front_end/panels/ai_chat/ui/ToolCallComponent.js", "front_end/panels/ai_chat/ui/ToolResultComponent.js", diff --git a/front_end/Images/src/browser-operator-logo.svg b/front_end/Images/src/browser-operator-logo.svg index 492895bbeb..30bfe4be3f 100644 --- a/front_end/Images/src/browser-operator-logo.svg +++ b/front_end/Images/src/browser-operator-logo.svg @@ -1,4 +1,4 @@ - - + + diff --git a/front_end/panels/ai_chat/BUILD.gn b/front_end/panels/ai_chat/BUILD.gn index 8a1dda233a..6bbc943f96 100644 --- a/front_end/panels/ai_chat/BUILD.gn +++ b/front_end/panels/ai_chat/BUILD.gn @@ -23,8 +23,7 @@ devtools_module("ai_chat") { "ui/AIChatPanel.ts", "ui/ChatView.ts", "ui/ConnectorsView.ts", - "ui/SettingsView.ts", - "ui/HistoryView.ts", + "ui/HistoryView.ts", "ui/EvaluationsView.ts", "ui/message/MessageList.ts", "ui/message/UserMessage.ts", @@ -318,8 +317,7 @@ _ai_chat_sources = [ "ui/AIChatPanel.ts", "ui/ChatView.ts", "ui/ConnectorsView.ts", - "ui/SettingsView.ts", - "ui/HistoryView.ts", + "ui/HistoryView.ts", "ui/EvaluationsView.ts", "ui/message/MessageList.ts", "ui/message/UserMessage.ts", diff --git a/front_end/panels/ai_chat/ui/AIChatPanel.ts b/front_end/panels/ai_chat/ui/AIChatPanel.ts index f76ff0877a..6392d00724 100644 --- a/front_end/panels/ai_chat/ui/AIChatPanel.ts +++ b/front_end/panels/ai_chat/ui/AIChatPanel.ts @@ -581,8 +581,6 @@ export class AIChatPanel extends UI.Panel.Panel { this.#chatView.addEventListener('manual-setup-requested', this.#handleManualSetupRequest.bind(this)); // Wire sidebar navigation actions this.#chatView.addEventListener('sidebar-nav', this.#handleSidebarNavEvent.bind(this)); - // Wire settings dialog opening from sidebar - this.#chatView.addEventListener('open-settings-dialog', () => this.#onSettingsClick()); // Wire HistoryView events this.#chatView.addEventListener(HistoryViewEvents.REQUEST_DATA, this.#handleHistoryRequestData.bind(this)); @@ -1243,9 +1241,9 @@ export class AIChatPanel extends UI.Panel.Panel { break; case 'chat': case 'connectors': // Let ChatView handle routing to ConnectorsView + case 'settings': // Let ChatView handle routing to SettingsDialog case 'history': // Let ChatView handle routing to HistoryView case 'evaluations': // Let ChatView handle routing to EvaluationsView - // Note: 'settings' is handled via 'open-settings-dialog' event, not sidebar-nav default: // ChatView will handle these via its internal routing break; @@ -1773,6 +1771,29 @@ export class AIChatPanel extends UI.Panel.Panel { onOAuthLogin: this.#handleOAuthLogin.bind(this), // Add example prompt model switching onExamplePromptModelSwitch: this.#handleExamplePromptModelSwitch.bind(this), + // Settings callbacks for inline SettingsDialog + onSettingsSaved: this.refreshCredentials.bind(this), + fetchLiteLLMModels: this.#fetchLiteLLMModels.bind(this), + updateModelOptions: (models: Array<{value: string, label: string}>, hadWildcard: boolean) => { + // Convert to ModelOption format if needed + const modelOptions: ModelOption[] = models.map(m => ({ + value: m.value, + label: m.label, + type: (localStorage.getItem(PROVIDER_SELECTION_KEY) || 'openai') as ProviderType + })); + AIChatPanel.updateModelOptions(modelOptions, hadWildcard); + this.performUpdate(); + }, + getModelOptions: () => getModelOptions(), + addCustomModelOption: (model: {value: string, label: string}) => { + const currentProvider = (localStorage.getItem(PROVIDER_SELECTION_KEY) || 'openai') as ProviderType; + AIChatPanel.addCustomModelOption(model.value, currentProvider); + this.performUpdate(); + }, + removeCustomModelOption: (modelValue: string) => { + AIChatPanel.removeCustomModelOption(modelValue); + this.performUpdate(); + }, }; } catch (error) { logger.error('Error updating ChatView state:', error); @@ -2052,22 +2073,12 @@ export class AIChatPanel extends UI.Panel.Panel { } /** - * Handles the settings button click event and shows the settings dialog + * Handles the settings button click event - navigates to settings view */ #onSettingsClick(): void { - SettingsDialog.show( - this.#selectedModel, - this.#miniModel, - this.#nanoModel, - async () => { - await this.#handleSettingsChanged(); - }, - this.#fetchLiteLLMModels.bind(this), - (providerModels, hadWildcard) => { AIChatPanel.updateModelOptions(providerModels, hadWildcard); }, - AIChatPanel.getModelOptions, - AIChatPanel.addCustomModelOption, - AIChatPanel.removeCustomModelOption - ); + // Navigate to settings view + this.#handleSidebarNavigation('settings'); + this.#chatView.setActiveSidebarItem('settings'); } /** diff --git a/front_end/panels/ai_chat/ui/ChatView.ts b/front_end/panels/ai_chat/ui/ChatView.ts index 0b7ed978e6..39962574ad 100644 --- a/front_end/panels/ai_chat/ui/ChatView.ts +++ b/front_end/panels/ai_chat/ui/ChatView.ts @@ -32,7 +32,7 @@ import './TodoListDisplay.js'; import './FileListDisplay.js'; import './SidebarNav.js'; import './ConnectorsView.js'; -import './SettingsView.js'; +import './SettingsDialog.js'; import './HistoryView.js'; import './EvaluationsView.js'; @@ -45,7 +45,7 @@ const logger = createLogger('ChatView'); import chatViewStyles from './chatView.css.js'; -const browserOperatorLogoUrl = new URL('../../../Images/browser-operator-logo.png', import.meta.url).toString(); +const browserOperatorLogoUrl = new URL('../../../Images/browser-operator-logo.svg', import.meta.url).toString(); const {html, Decorators} = Lit; const {customElement} = Decorators; @@ -194,6 +194,13 @@ export interface Props { currentProvider?: string; // Callback for switching models when specific example prompts are selected onExamplePromptModelSwitch?: (modelPreferences: { main?: string; mini?: string; nano?: string }) => void; + // Settings callbacks (for inline SettingsDialog) + onSettingsSaved?: () => void; + fetchLiteLLMModels?: (apiKey: string, endpoint: string) => Promise<{models: Array<{value: string, label: string}>, hadWildcard: boolean}>; + updateModelOptions?: (models: Array<{value: string, label: string}>, hadWildcard: boolean) => void; + getModelOptions?: () => Array<{value: string, label: string}>; + addCustomModelOption?: (model: {value: string, label: string}) => void; + removeCustomModelOption?: (modelValue: string) => void; } @customElement('devtools-chat-view') @@ -242,6 +249,14 @@ export class ChatView extends HTMLElement { #showOAuthLogin = false; #onOAuthLogin?: () => void; + // Settings callbacks for inline SettingsDialog + #onSettingsSaved?: () => void; + #fetchLiteLLMModels?: (apiKey: string, endpoint: string) => Promise<{models: Array<{value: string, label: string}>, hadWildcard: boolean}>; + #updateModelOptions?: (models: Array<{value: string, label: string}>, hadWildcard: boolean) => void; + #getModelOptions?: () => Array<{value: string, label: string}>; + #addCustomModelOption?: (model: {value: string, label: string}) => void; + #removeCustomModelOption?: (modelValue: string) => void; + // Combined messages cache for this render pass #combinedMessagesCache: CombinedMessage[] = []; // Track agent session IDs that are nested inside other sessions to avoid duplicate top-level rendering @@ -314,6 +329,14 @@ export class ChatView extends HTMLElement { void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender); } + /** + * Set the active sidebar item programmatically (for external navigation) + */ + setActiveSidebarItem(item: SidebarNavItem): void { + this.#activeSidebarItem = item; + void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender); + } + /** * Refreshes the file list display */ @@ -425,7 +448,14 @@ export class ChatView extends HTMLElement { this.#showOAuthLogin = data.showOAuthLogin || false; this.#onOAuthLogin = data.onOAuthLogin; - + // Store settings callbacks + this.#onSettingsSaved = data.onSettingsSaved; + this.#fetchLiteLLMModels = data.fetchLiteLLMModels; + this.#updateModelOptions = data.updateModelOptions; + this.#getModelOptions = data.getModelOptions; + this.#addCustomModelOption = data.addCustomModelOption; + this.#removeCustomModelOption = data.removeCustomModelOption; + // Log the input state changes if (wasInputDisabled !== this.#isInputDisabled) { logger.info(`Input disabled state changed: ${wasInputDisabled} -> ${this.#isInputDisabled}`); @@ -767,14 +797,6 @@ export class ChatView extends HTMLElement { } #handleSidebarNavClick(item: SidebarNavItem): void { - if (item === 'settings') { - // Dispatch event for AIChatPanel to handle opening SettingsDialog - this.dispatchEvent(new CustomEvent('open-settings-dialog', { - bubbles: true, - composed: true, - })); - return; - } this.#activeSidebarItem = item; this.dispatchEvent(new CustomEvent('sidebar-nav', { bubbles: true, @@ -888,6 +910,16 @@ export class ChatView extends HTMLElement { switch (this.#activeSidebarItem) { case 'connectors': return html``; + case 'settings': + return html``; case 'history': return html``; case 'evaluations': @@ -945,6 +977,16 @@ export class ChatView extends HTMLElement { switch (this.#activeSidebarItem) { case 'connectors': return html``; + case 'settings': + return html``; case 'history': return html``; case 'evaluations': diff --git a/front_end/panels/ai_chat/ui/OnboardingDialog.ts b/front_end/panels/ai_chat/ui/OnboardingDialog.ts index 864c58b9ae..f7e0b4eadb 100644 --- a/front_end/panels/ai_chat/ui/OnboardingDialog.ts +++ b/front_end/panels/ai_chat/ui/OnboardingDialog.ts @@ -11,7 +11,7 @@ import { createLogger } from '../core/Logger.js'; const logger = createLogger('OnboardingDialog'); -const browserOperatorLogoUrl = new URL('../../../Images/browser-operator-logo.png', import.meta.url).toString(); +const browserOperatorLogoUrl = new URL('../../../Images/browser-operator-logo.svg', import.meta.url).toString(); const demoGifUrl = new URL('../../../Images/demo.gif', import.meta.url).toString(); const ONBOARDING_COMPLETE_KEY = 'ai_chat_onboarding_complete'; diff --git a/front_end/panels/ai_chat/ui/SettingsDialog.ts b/front_end/panels/ai_chat/ui/SettingsDialog.ts index 6120511947..4c725a641a 100644 --- a/front_end/panels/ai_chat/ui/SettingsDialog.ts +++ b/front_end/panels/ai_chat/ui/SettingsDialog.ts @@ -3,7 +3,8 @@ // found in the LICENSE file. import * as Host from '../../../core/host/host.js'; -import * as UI from '../../../ui/legacy/legacy.js'; +import * as Lit from '../../../ui/lit/lit.js'; +import * as ComponentHelpers from '../../../ui/components/helpers/helpers.js'; import { createLogger } from '../core/Logger.js'; import { LLMClient } from '../LLM/LLMClient.js'; import { CustomProviderDialog } from './CustomProviderDialog.js'; @@ -12,7 +13,6 @@ import { CustomProviderManager } from '../core/CustomProviderManager.js'; // Import settings utilities import { i18nString, UIStrings } from './settings/i18n-strings.js'; import { PROVIDER_SELECTION_KEY, MINI_MODEL_STORAGE_KEY, NANO_MODEL_STORAGE_KEY, ADVANCED_SETTINGS_ENABLED_KEY, PANEL_FILTER_ENABLED_KEY } from './settings/constants.js'; -import { applySettingsStyles } from './settings/utils/styles.js'; import { isVectorDBEnabled } from './settings/utils/storage.js'; import type { ModelOption, ProviderType, FetchLiteLLMModelsFunction, UpdateModelOptionsFunction, GetModelOptionsFunction, AddCustomModelOptionFunction, RemoveCustomModelOptionFunction } from './settings/types.js'; @@ -36,9 +36,13 @@ import { EvaluationSettings } from './settings/advanced/EvaluationSettings.js'; import { MemorySettings } from './settings/advanced/MemorySettings.js'; import './model_selector/ModelSelector.js'; +import './common/Dropdown.js'; const logger = createLogger('SettingsDialog'); +const {html, Decorators, nothing} = Lit; +const {customElement} = Decorators as any; + // Provider configuration registry interface ProviderConfig { id: ProviderType; @@ -58,619 +62,417 @@ const PROVIDER_REGISTRY: ProviderConfig[] = [ { id: 'googleai', i18nKey: 'googleaiProvider', config: GoogleAIConfig, settingsClass: 'generic' }, ]; -export class SettingsDialog { - static async show( - selectedModel: string, - miniModel: string, - nanoModel: string, - onSettingsSaved: () => void, - fetchLiteLLMModels: FetchLiteLLMModelsFunction, - updateModelOptions: UpdateModelOptionsFunction, - getModelOptions: GetModelOptionsFunction, - addCustomModelOption: AddCustomModelOptionFunction, - removeCustomModelOption: RemoveCustomModelOptionFunction, - ): Promise { - - // Create a settings dialog - const dialog = new UI.Dialog.Dialog(); - dialog.setDimmed(true); - dialog.setOutsideClickCallback(() => dialog.hide()); - dialog.contentElement.classList.add('settings-dialog'); - - // Create settings content - const contentDiv = document.createElement('div'); - contentDiv.className = 'settings-content'; - contentDiv.style.overflowY = 'auto'; - dialog.contentElement.appendChild(contentDiv); - - // Create header - const headerDiv = document.createElement('div'); - headerDiv.className = 'settings-header'; - contentDiv.appendChild(headerDiv); - - const title = document.createElement('h2'); - title.className = 'settings-title'; - title.textContent = i18nString(UIStrings.settings); - headerDiv.appendChild(title); - - const closeButton = document.createElement('button'); - closeButton.className = 'settings-close-button'; - closeButton.setAttribute('aria-label', 'Close settings'); - closeButton.textContent = '×'; - closeButton.addEventListener('click', () => dialog.hide()); - headerDiv.appendChild(closeButton); - - // Add provider selection dropdown - const providerSection = document.createElement('div'); - providerSection.className = 'provider-selection-section'; - contentDiv.appendChild(providerSection); - - const providerLabel = document.createElement('div'); - providerLabel.className = 'settings-label'; - providerLabel.textContent = i18nString(UIStrings.providerLabel); - providerSection.appendChild(providerLabel); - - const providerHint = document.createElement('div'); - providerHint.className = 'settings-hint'; - providerHint.textContent = i18nString(UIStrings.providerHint); - providerSection.appendChild(providerHint); - - // Use the stored provider from localStorage - const currentProvider = (localStorage.getItem(PROVIDER_SELECTION_KEY) || 'openai') as ProviderType; - - // Helper function to create ProviderConfig from CustomProviderConfig - const createCustomProviderConfig = (customConfig: any): any => { - return { - id: customConfig.id, - displayName: customConfig.name, - apiKeyStorageKey: CustomProviderManager.getApiKeyStorageKey(customConfig.id), - apiKeyLabel: `${customConfig.name} API Key`, - apiKeyHint: `API key for ${customConfig.name} (optional)`, - apiKeyPlaceholder: 'Enter API key (optional)', - hasModelSelectors: true, - hasFetchButton: false, - apiKeyOptional: true - }; - }; - - // Helper function to create model options getter for custom providers - const createCustomModelOptionsGetter = (providerId: string) => { - return (_provider?: ProviderType) => { - const config = CustomProviderManager.getProvider(providerId); - if (!config) return []; - return config.models.map(modelId => ({ - value: modelId, - label: modelId, - type: providerId - })); - }; - }; - - // Helper function to initialize custom provider settings - const initializeCustomProviderSettings = ( - providerId: string, - container: HTMLElement - ): GenericProviderSettings | null => { - const customConfig = CustomProviderManager.getProvider(providerId); - if (!customConfig) return null; - - const providerConfig = createCustomProviderConfig(customConfig); - const settings = new GenericProviderSettings( - container, - providerConfig, - createCustomModelOptionsGetter(providerId), - addCustomModelOption, - removeCustomModelOption - ); - settings.render(); - return settings; - }; - - // Helper function to toggle provider content visibility - const toggleProviderVisibility = ( - selectedProvider: string, - providerContents: Map, - customContent: HTMLElement - ): void => { - const isCustom = CustomProviderManager.isCustomProvider(selectedProvider); - - // Hide all provider contents - providerContents.forEach((content, providerId) => { - content.style.display = providerId === selectedProvider ? 'block' : 'none'; - }); +// Provider auto-fetch configuration +interface ProviderAutoFetchConfig { + fetchMethod: (apiKey: string) => Promise; + storageKey: string; + hasNameField: boolean; + cacheConfig?: { + cacheKey: string; + timestampKey: string; + }; +} - // Show/hide custom provider content - customContent.style.display = isCustom ? 'block' : 'none'; - }; +const providerAutoFetchMap: Record = { + groq: { + fetchMethod: LLMClient.fetchGroqModels, + storageKey: 'ai_chat_groq_api_key', + hasNameField: false + }, + openrouter: { + fetchMethod: LLMClient.fetchOpenRouterModels, + storageKey: 'ai_chat_openrouter_api_key', + hasNameField: true, + cacheConfig: { + cacheKey: 'openrouter_models_cache', + timestampKey: 'openrouter_models_cache_timestamp' + } + }, + cerebras: { + fetchMethod: LLMClient.fetchCerebrasModels, + storageKey: 'ai_chat_cerebras_api_key', + hasNameField: false + }, + anthropic: { + fetchMethod: LLMClient.fetchAnthropicModels, + storageKey: 'ai_chat_anthropic_api_key', + hasNameField: true + }, + googleai: { + fetchMethod: LLMClient.fetchGoogleAIModels, + storageKey: 'ai_chat_googleai_api_key', + hasNameField: true + } +}; + +@customElement('ai-settings-dialog') +export class SettingsDialog extends HTMLElement { + static readonly litTagName = Lit.StaticHtml.literal`ai-settings-dialog`; + readonly #boundRender = this.#render.bind(this); + + // Props passed from parent + #selectedModel = ''; + #miniModel = ''; + #nanoModel = ''; + #onSettingsSaved?: () => void; + #fetchLiteLLMModels?: FetchLiteLLMModelsFunction; + #updateModelOptions?: UpdateModelOptionsFunction; + #getModelOptions?: GetModelOptionsFunction; + #addCustomModelOption?: AddCustomModelOptionFunction; + #removeCustomModelOption?: RemoveCustomModelOptionFunction; + + // Internal state + #currentProvider: ProviderType = 'openai'; + #showAdvancedSettings = false; + #saveStatus: 'idle' | 'saving' | 'success' | 'error' = 'idle'; + #initialized = false; + + // Provider settings instances + #providerSettings = new Map(); + #customProviderSettings: GenericProviderSettings | null = null; + + // Advanced feature settings instances + #mcpSettings?: MCPSettings; + #memorySettings?: MemorySettings; + #browsingHistorySettings?: BrowsingHistorySettings; + #vectorDBSettings?: VectorDBSettings; + #tracingSettings?: TracingSettings; + #evaluationSettings?: EvaluationSettings; + + // DOM refs for settings that need containers + #providerContainerRefs = new Map(); + #mcpContainerRef?: HTMLElement; + #memoryContainerRef?: HTMLElement; + #historyContainerRef?: HTMLElement; + #vectorDBContainerRef?: HTMLElement; + #tracingContainerRef?: HTMLElement; + #evaluationContainerRef?: HTMLElement; + #customProviderContainerRef?: HTMLElement; + + // Property setters + set selectedModel(v: string) { this.#selectedModel = v; } + set miniModel(v: string) { this.#miniModel = v; } + set nanoModel(v: string) { this.#nanoModel = v; } + set onSettingsSaved(fn: () => void) { this.#onSettingsSaved = fn; } + set fetchLiteLLMModels(fn: FetchLiteLLMModelsFunction) { this.#fetchLiteLLMModels = fn; } + set updateModelOptions(fn: UpdateModelOptionsFunction) { this.#updateModelOptions = fn; } + set getModelOptions(fn: GetModelOptionsFunction) { this.#getModelOptions = fn; } + set addCustomModelOption(fn: AddCustomModelOptionFunction) { this.#addCustomModelOption = fn; } + set removeCustomModelOption(fn: RemoveCustomModelOptionFunction) { this.#removeCustomModelOption = fn; } + + connectedCallback(): void { + this.#currentProvider = (localStorage.getItem(PROVIDER_SELECTION_KEY) || 'openai') as ProviderType; + this.#showAdvancedSettings = localStorage.getItem(ADVANCED_SETTINGS_ENABLED_KEY) === 'true'; + void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender); + } - // Create provider selection dropdown - const providerSelect = document.createElement('select'); - providerSelect.className = 'settings-select provider-select'; - providerSection.appendChild(providerSelect); + disconnectedCallback(): void { + this.#cleanup(); + } - // Add provider options from registry - PROVIDER_REGISTRY.forEach(provider => { - const option = document.createElement('option'); - option.value = provider.id; - option.textContent = i18nString(UIStrings[provider.i18nKey]); - option.selected = currentProvider === provider.id; - providerSelect.appendChild(option); + #cleanup(): void { + // Cleanup provider settings + this.#providerSettings.forEach(settings => { + if (settings?.cleanup) { + settings.cleanup(); + } }); + this.#providerSettings.clear(); - // Add custom providers to the dropdown - const customProviders = CustomProviderManager.listEnabledProviders(); - if (customProviders.length > 0) { - // Add separator - const separator = document.createElement('option'); - separator.disabled = true; - separator.textContent = '──────────'; - providerSelect.appendChild(separator); - - // Add each custom provider - customProviders.forEach(provider => { - const customOption = document.createElement('option'); - customOption.value = provider.id; - customOption.textContent = `${provider.name} (Custom)`; - customOption.selected = currentProvider === provider.id; - providerSelect.appendChild(customOption); - }); + if (this.#customProviderSettings?.cleanup) { + this.#customProviderSettings.cleanup(); } + this.#customProviderSettings = null; + + // Cleanup advanced features + this.#mcpSettings?.cleanup?.(); + this.#memorySettings?.cleanup?.(); + this.#browsingHistorySettings?.cleanup?.(); + this.#vectorDBSettings?.cleanup?.(); + this.#tracingSettings?.cleanup?.(); + this.#evaluationSettings?.cleanup?.(); + + this.#mcpSettings = undefined; + this.#memorySettings = undefined; + this.#browsingHistorySettings = undefined; + this.#vectorDBSettings = undefined; + this.#tracingSettings = undefined; + this.#evaluationSettings = undefined; + + this.#initialized = false; + } - // Ensure the select's value reflects the computed currentProvider - providerSelect.value = currentProvider; - - // Add "Manage Custom Providers" button - const manageCustomButton = document.createElement('button'); - manageCustomButton.className = 'settings-button manage-custom-providers-button'; - manageCustomButton.textContent = i18nString(UIStrings.manageCustomProvidersButton); - manageCustomButton.style.cssText = 'margin-top: 8px; padding: 6px 12px; cursor: pointer;'; - manageCustomButton.addEventListener('click', () => { - // Create and show custom provider dialog - const customProviderDialog = new CustomProviderDialog(() => { - // Refresh the settings dialog to show updated custom providers - dialog.hide(); - SettingsDialog.show( - selectedModel, - miniModel, - nanoModel, - onSettingsSaved, - fetchLiteLLMModels, - updateModelOptions, - getModelOptions, - addCustomModelOption, - removeCustomModelOption - ); - }); - customProviderDialog.show(); - }); - providerSection.appendChild(manageCustomButton); - - // Create provider-specific content containers using registry - const providerContents = new Map(); + #initializeProviderSettings(): void { + if (!this.#getModelOptions || !this.#addCustomModelOption || !this.#removeCustomModelOption) { + return; + } + // Initialize provider settings for each provider PROVIDER_REGISTRY.forEach(provider => { - const content = document.createElement('div'); - content.className = `provider-content ${provider.id}-content`; - content.style.display = currentProvider === provider.id ? 'block' : 'none'; - contentDiv.appendChild(content); - providerContents.set(provider.id, content); - }); - - // Create custom provider content container - const customProviderContent = document.createElement('div'); - customProviderContent.className = 'provider-content custom-provider-content'; - customProviderContent.style.display = CustomProviderManager.isCustomProvider(currentProvider) ? 'block' : 'none'; - contentDiv.appendChild(customProviderContent); + const container = this.#providerContainerRefs.get(provider.id); + if (!container) return; - // Variable to hold current custom provider settings instance - let customProviderSettings: GenericProviderSettings | null = null; - - // Instantiate provider settings classes using registry - const providerSettings = new Map(); - - PROVIDER_REGISTRY.forEach(provider => { - const content = providerContents.get(provider.id); - if (!content) return; + // Clear existing content + container.innerHTML = ''; let settings; if (provider.settingsClass === 'litellm') { settings = new LiteLLMSettings( - content, - getModelOptions, - addCustomModelOption, - removeCustomModelOption, - updateModelOptions, - fetchLiteLLMModels + container, + this.#getModelOptions!, + this.#addCustomModelOption!, + this.#removeCustomModelOption!, + this.#updateModelOptions!, + this.#fetchLiteLLMModels! ); } else if (provider.settingsClass === 'openrouter') { settings = new OpenRouterSettings( - content, - getModelOptions, - addCustomModelOption, - removeCustomModelOption, - updateModelOptions, - onSettingsSaved, - () => dialog.hide() + container, + this.#getModelOptions!, + this.#addCustomModelOption!, + this.#removeCustomModelOption!, + this.#updateModelOptions!, + () => this.#onSettingsSaved?.(), + () => {} // No dialog to hide in inline mode ); } else { - // Generic provider settings const hasUpdateModelOptions = ['groq', 'cerebras', 'anthropic', 'googleai'].includes(provider.id); settings = new GenericProviderSettings( - content, + container, provider.config!, - getModelOptions, - addCustomModelOption, - removeCustomModelOption, - hasUpdateModelOptions ? updateModelOptions : undefined + this.#getModelOptions!, + this.#addCustomModelOption!, + this.#removeCustomModelOption!, + hasUpdateModelOptions ? this.#updateModelOptions : undefined ); } settings.render(); - providerSettings.set(provider.id, settings); + this.#providerSettings.set(provider.id, settings); }); - // Initialize custom provider settings if current provider is custom - if (CustomProviderManager.isCustomProvider(currentProvider)) { - customProviderSettings = initializeCustomProviderSettings(currentProvider, customProviderContent); + // Initialize custom provider if needed + if (CustomProviderManager.isCustomProvider(this.#currentProvider)) { + this.#initializeCustomProviderSettings(this.#currentProvider); } + } - // Provider auto-fetch configuration for generic handling - interface ProviderAutoFetchConfig { - fetchMethod: (apiKey: string) => Promise; - storageKey: string; - hasNameField: boolean; - cacheConfig?: { - cacheKey: string; - timestampKey: string; - }; - } + #initializeCustomProviderSettings(providerId: string): void { + const container = this.#customProviderContainerRef; + if (!container || !this.#addCustomModelOption || !this.#removeCustomModelOption) return; + + const customConfig = CustomProviderManager.getProvider(providerId); + if (!customConfig) return; + + // Clear existing content + container.innerHTML = ''; + + const providerConfig = { + id: customConfig.id, + displayName: customConfig.name, + apiKeyStorageKey: CustomProviderManager.getApiKeyStorageKey(customConfig.id), + apiKeyLabel: `${customConfig.name} API Key`, + apiKeyHint: `API key for ${customConfig.name} (optional)`, + apiKeyPlaceholder: 'Enter API key (optional)', + hasModelSelectors: true, + hasFetchButton: false, + apiKeyOptional: true + }; - const providerAutoFetchMap: Record = { - groq: { - fetchMethod: LLMClient.fetchGroqModels, - storageKey: 'ai_chat_groq_api_key', - hasNameField: false - }, - openrouter: { - fetchMethod: LLMClient.fetchOpenRouterModels, - storageKey: 'ai_chat_openrouter_api_key', - hasNameField: true, - cacheConfig: { - cacheKey: 'openrouter_models_cache', - timestampKey: 'openrouter_models_cache_timestamp' - } - }, - cerebras: { - fetchMethod: LLMClient.fetchCerebrasModels, - storageKey: 'ai_chat_cerebras_api_key', - hasNameField: false - }, - anthropic: { - fetchMethod: LLMClient.fetchAnthropicModels, - storageKey: 'ai_chat_anthropic_api_key', - hasNameField: true - }, - googleai: { - fetchMethod: LLMClient.fetchGoogleAIModels, - storageKey: 'ai_chat_googleai_api_key', - hasNameField: true - } + const getModelOptions = (_provider?: ProviderType) => { + const config = CustomProviderManager.getProvider(providerId); + if (!config) return []; + return config.models.map(modelId => ({ + value: modelId, + label: modelId, + type: providerId + })); }; - // Event listener for provider change - providerSelect.addEventListener('change', async () => { - const selectedProvider = providerSelect.value as ProviderType; + this.#customProviderSettings = new GenericProviderSettings( + container, + providerConfig, + getModelOptions, + this.#addCustomModelOption!, + this.#removeCustomModelOption! + ); + this.#customProviderSettings.render(); + } + + #initializeMCPAndMemory(): void { + // MCP Settings (always visible) + if (this.#mcpContainerRef && !this.#mcpSettings) { + this.#mcpContainerRef.innerHTML = ''; + this.#mcpSettings = new MCPSettings( + this.#mcpContainerRef, + () => this.#onSettingsSaved?.(), + () => {} // No dialog to hide + ); + this.#mcpSettings.render(); + } - // Check if it's a custom provider - const isCustom = CustomProviderManager.isCustomProvider(selectedProvider); + // Memory Settings (always visible) + if (this.#memoryContainerRef && !this.#memorySettings) { + this.#memoryContainerRef.innerHTML = ''; + this.#memorySettings = new MemorySettings(this.#memoryContainerRef); + this.#memorySettings.render(); + } + } - // Toggle visibility using helper function - toggleProviderVisibility(selectedProvider, providerContents, customProviderContent); + #initializeAdvancedSettings(): void { + // Ensure MCP and Memory are initialized first + this.#initializeMCPAndMemory(); - // Handle custom provider - if (isCustom) { - // Cleanup existing custom provider settings if any - if (customProviderSettings) { - customProviderSettings.cleanup(); - } + // Browsing History Settings + if (this.#historyContainerRef && !this.#browsingHistorySettings) { + this.#historyContainerRef.innerHTML = ''; + this.#browsingHistorySettings = new BrowsingHistorySettings(this.#historyContainerRef); + this.#browsingHistorySettings.render(); + } + + // Vector DB Settings + if (this.#vectorDBContainerRef && !this.#vectorDBSettings) { + this.#vectorDBContainerRef.innerHTML = ''; + this.#vectorDBSettings = new VectorDBSettings(this.#vectorDBContainerRef); + this.#vectorDBSettings.render(); + } - // Initialize new custom provider settings - customProviderSettings = initializeCustomProviderSettings(selectedProvider, customProviderContent); + // Tracing Settings + if (this.#tracingContainerRef && !this.#tracingSettings) { + this.#tracingContainerRef.innerHTML = ''; + this.#tracingSettings = new TracingSettings(this.#tracingContainerRef); + this.#tracingSettings.render(); + } + + // Evaluation Settings + if (this.#evaluationContainerRef && !this.#evaluationSettings) { + this.#evaluationContainerRef.innerHTML = ''; + this.#evaluationSettings = new EvaluationSettings(this.#evaluationContainerRef); + this.#evaluationSettings.render(); + } + } + + async #handleProviderChange(value: string): Promise { + const selectedProvider = value as ProviderType; + this.#currentProvider = selectedProvider; + + // Re-render to show/hide provider sections + void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender); + + // Handle custom provider + const isCustom = CustomProviderManager.isCustomProvider(selectedProvider); + if (isCustom) { + if (this.#customProviderSettings) { + this.#customProviderSettings.cleanup(); } + // Will be initialized after render + setTimeout(() => this.#initializeCustomProviderSettings(selectedProvider), 0); + } - // Handle LiteLLM separately (special case with endpoint and hadWildcard) - if (selectedProvider === 'litellm') { - const endpoint = localStorage.getItem('ai_chat_litellm_endpoint'); - const liteLLMApiKey = localStorage.getItem('ai_chat_litellm_api_key') || ''; - - if (endpoint) { - try { - logger.debug('Fetching LiteLLM models after provider change...'); - const { models: litellmModels, hadWildcard } = await fetchLiteLLMModels(liteLLMApiKey, endpoint); - updateModelOptions(litellmModels, hadWildcard); - const litellmSettings = providerSettings.get('litellm'); - if (litellmSettings) { - litellmSettings.updateModelSelectors(); - } - logger.debug('Successfully refreshed LiteLLM models after provider change'); - } catch (error) { - logger.error('Failed to fetch LiteLLM models after provider change:', error); + // Handle LiteLLM + if (selectedProvider === 'litellm' && this.#fetchLiteLLMModels && this.#updateModelOptions) { + const endpoint = localStorage.getItem('ai_chat_litellm_endpoint'); + const apiKey = localStorage.getItem('ai_chat_litellm_api_key') || ''; + + if (endpoint) { + try { + logger.debug('Fetching LiteLLM models after provider change...'); + const { models, hadWildcard } = await this.#fetchLiteLLMModels(apiKey, endpoint); + this.#updateModelOptions(models, hadWildcard); + const settings = this.#providerSettings.get('litellm'); + if (settings) { + settings.updateModelSelectors(); } + } catch (error) { + logger.error('Failed to fetch LiteLLM models:', error); } } - // Generic handler for other providers - else if (providerAutoFetchMap[selectedProvider]) { - const config = providerAutoFetchMap[selectedProvider]; - const apiKey = localStorage.getItem(config.storageKey) || ''; - - if (apiKey) { - try { - logger.debug(`Fetching ${selectedProvider} models after provider change...`); - const models = await config.fetchMethod(apiKey); - const modelOptions: ModelOption[] = models.map(model => ({ - value: model.id, - label: config.hasNameField ? (model.name || model.id) : model.id, - type: selectedProvider as any - })); - updateModelOptions(modelOptions, false); - - // Handle optional caching (OpenRouter) - if (config.cacheConfig) { - localStorage.setItem(config.cacheConfig.cacheKey, JSON.stringify(modelOptions)); - localStorage.setItem(config.cacheConfig.timestampKey, Date.now().toString()); - } + } + // Generic handler for other providers + else if (providerAutoFetchMap[selectedProvider] && this.#updateModelOptions) { + const config = providerAutoFetchMap[selectedProvider]; + const apiKey = localStorage.getItem(config.storageKey) || ''; + + if (apiKey) { + try { + logger.debug(`Fetching ${selectedProvider} models after provider change...`); + const models = await config.fetchMethod(apiKey); + const modelOptions: ModelOption[] = models.map(model => ({ + value: model.id, + label: config.hasNameField ? (model.name || model.id) : model.id, + type: selectedProvider as any + })); + this.#updateModelOptions(modelOptions, false); + + if (config.cacheConfig) { + localStorage.setItem(config.cacheConfig.cacheKey, JSON.stringify(modelOptions)); + localStorage.setItem(config.cacheConfig.timestampKey, Date.now().toString()); + } - const settings = providerSettings.get(selectedProvider); - if (settings) { - settings.updateModelSelectors(); - } - logger.debug(`Successfully refreshed ${selectedProvider} models after provider change`); - } catch (error) { - logger.error(`Failed to fetch ${selectedProvider} models after provider change:`, error); + const settings = this.#providerSettings.get(selectedProvider); + if (settings) { + settings.updateModelSelectors(); } + } catch (error) { + logger.error(`Failed to fetch ${selectedProvider} models:`, error); } } - }); + } + } - // Create MCP section container - const mcpSection = document.createElement('div'); - mcpSection.className = 'settings-section mcp-section'; - mcpSection.style.display = 'block'; - contentDiv.appendChild(mcpSection); - - // Instantiate MCP settings - const mcpSettings = new MCPSettings( - mcpSection, - onSettingsSaved, - () => dialog.hide() - ); - mcpSettings.render(); - - // Create Memory section - const memorySection = document.createElement('div'); - memorySection.className = 'settings-section memory-section'; - memorySection.style.display = 'block'; - contentDiv.appendChild(memorySection); - - // Instantiate and render Memory settings - const memorySettings = new MemorySettings(memorySection); - memorySettings.render(); - - // Add Advanced Settings Toggle - const advancedToggleContainer = document.createElement('div'); - advancedToggleContainer.className = 'advanced-settings-toggle-container'; - contentDiv.appendChild(advancedToggleContainer); - - const advancedToggleCheckbox = document.createElement('input'); - advancedToggleCheckbox.type = 'checkbox'; - advancedToggleCheckbox.id = 'advanced-settings-toggle'; - advancedToggleCheckbox.className = 'advanced-settings-checkbox'; - advancedToggleCheckbox.checked = localStorage.getItem(ADVANCED_SETTINGS_ENABLED_KEY) === 'true'; - advancedToggleContainer.appendChild(advancedToggleCheckbox); - - const advancedToggleLabel = document.createElement('label'); - advancedToggleLabel.htmlFor = 'advanced-settings-toggle'; - advancedToggleLabel.className = 'advanced-settings-label'; - advancedToggleLabel.textContent = '⚙️ Advanced Settings'; - advancedToggleContainer.appendChild(advancedToggleLabel); - - // Create advanced feature sections - const historySection = document.createElement('div'); - historySection.className = 'settings-section history-section'; - contentDiv.appendChild(historySection); - - const vectorDBSection = document.createElement('div'); - vectorDBSection.className = 'settings-section vector-db-section'; - contentDiv.appendChild(vectorDBSection); - - const tracingSection = document.createElement('div'); - tracingSection.className = 'settings-section tracing-section'; - contentDiv.appendChild(tracingSection); - - const evaluationSection = document.createElement('div'); - evaluationSection.className = 'settings-section evaluation-section'; - contentDiv.appendChild(evaluationSection); - - // Create panel filter section (inside advanced settings) - const panelFilterSection = document.createElement('div'); - panelFilterSection.className = 'settings-section panel-filter-section'; - contentDiv.appendChild(panelFilterSection); - - const panelFilterTitle = document.createElement('h3'); - panelFilterTitle.className = 'settings-subtitle'; - panelFilterTitle.textContent = 'Panel Visibility'; - panelFilterSection.appendChild(panelFilterTitle); - - const panelFilterContainer = document.createElement('div'); - panelFilterContainer.className = 'settings-checkbox-container'; - panelFilterContainer.style.cssText = 'display: flex; align-items: center; gap: 8px; margin-bottom: 8px;'; - panelFilterSection.appendChild(panelFilterContainer); - - const panelFilterCheckbox = document.createElement('input'); - panelFilterCheckbox.type = 'checkbox'; - panelFilterCheckbox.id = 'panel-filter-toggle'; - panelFilterCheckbox.checked = localStorage.getItem(PANEL_FILTER_ENABLED_KEY) !== 'false'; - panelFilterContainer.appendChild(panelFilterCheckbox); - - const panelFilterLabel = document.createElement('label'); - panelFilterLabel.htmlFor = 'panel-filter-toggle'; - panelFilterLabel.textContent = 'Show only AI Chat panel'; - panelFilterContainer.appendChild(panelFilterLabel); - - const panelFilterHint = document.createElement('div'); - panelFilterHint.className = 'settings-hint'; - panelFilterHint.textContent = 'When disabled, shows all standard DevTools panels (Elements, Console, etc.). Requires DevTools reload.'; - panelFilterSection.appendChild(panelFilterHint); - - panelFilterCheckbox.addEventListener('change', () => { - localStorage.setItem(PANEL_FILTER_ENABLED_KEY, panelFilterCheckbox.checked.toString()); - // Reload DevTools to apply the panel filter change - Host.InspectorFrontendHost.InspectorFrontendHostInstance.reattach(() => window.location.reload()); + #handleManageCustomProviders(): void { + const customProviderDialog = new CustomProviderDialog(() => { + // Re-render to show updated custom providers + void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender); }); + customProviderDialog.show(); + } - // Instantiate advanced feature settings classes - const browsingHistorySettings = new BrowsingHistorySettings(historySection); - const vectorDBSettings = new VectorDBSettings(vectorDBSection); - const tracingSettings = new TracingSettings(tracingSection); - const evaluationSettings = new EvaluationSettings(evaluationSection); - - // Render advanced features - browsingHistorySettings.render(); - vectorDBSettings.render(); - tracingSettings.render(); - evaluationSettings.render(); - - // Store advanced features for cleanup - const advancedFeatures = [ - browsingHistorySettings, - vectorDBSettings, - tracingSettings, - evaluationSettings, - ]; - - // Store basic features for cleanup (MCP and Memory are not toggled) - const basicFeatures = [ - mcpSettings, - memorySettings, - ]; - - // Advanced Settings Toggle Logic - function toggleAdvancedSections(show: boolean): void { - const display = show ? 'block' : 'none'; - historySection.style.display = display; - vectorDBSection.style.display = display; - tracingSection.style.display = display; - evaluationSection.style.display = display; - panelFilterSection.style.display = display; - - // Save state to localStorage - localStorage.setItem(ADVANCED_SETTINGS_ENABLED_KEY, show.toString()); - } - - // Set initial state of advanced sections - toggleAdvancedSections(advancedToggleCheckbox.checked); + #handleAdvancedToggle(): void { + this.#showAdvancedSettings = !this.#showAdvancedSettings; + localStorage.setItem(ADVANCED_SETTINGS_ENABLED_KEY, this.#showAdvancedSettings.toString()); + void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender); + } - // Add event listener for toggle - advancedToggleCheckbox.addEventListener('change', () => { - toggleAdvancedSections(advancedToggleCheckbox.checked); - }); + #handlePanelFilterChange(event: Event): void { + const checkbox = event.target as HTMLInputElement; + localStorage.setItem(PANEL_FILTER_ENABLED_KEY, checkbox.checked.toString()); + Host.InspectorFrontendHost.InspectorFrontendHostInstance.reattach(() => window.location.reload()); + } - // Add disclaimer section - const disclaimerSection = document.createElement('div'); - disclaimerSection.classList.add('settings-section', 'disclaimer-section'); - contentDiv.appendChild(disclaimerSection); - - const disclaimerTitle = document.createElement('h3'); - disclaimerTitle.textContent = i18nString(UIStrings.importantNotice); - disclaimerTitle.classList.add('settings-subtitle'); - disclaimerSection.appendChild(disclaimerTitle); - - const disclaimerText = document.createElement('div'); - disclaimerText.classList.add('settings-disclaimer'); - disclaimerText.innerHTML = ` -

- Beta Version: This is a beta version of the Browser Operator - AI Assistant feature. -

-

- Data Sharing: When using this feature, your browser data and conversation content will be sent to the AI model for processing. -

-

- Provider Support: We currently support OpenAI, Groq and OpenRouter providers directly. And we support LiteLLM as a proxy to access 100+ other models. -

- - `; - disclaimerSection.appendChild(disclaimerText); - - // Create footer with buttons - const footer = document.createElement('div'); - footer.className = 'settings-footer'; - contentDiv.appendChild(footer); - - const buttonContainer = document.createElement('div'); - buttonContainer.className = 'settings-buttons'; - footer.appendChild(buttonContainer); - - const saveStatusMessage = document.createElement('div'); - saveStatusMessage.className = 'settings-status save-status'; - saveStatusMessage.style.display = 'none'; - buttonContainer.appendChild(saveStatusMessage); - - const cancelButton = document.createElement('button'); - cancelButton.textContent = i18nString(UIStrings.cancelButton); - cancelButton.className = 'settings-button cancel-button'; - cancelButton.setAttribute('type', 'button'); - cancelButton.addEventListener('click', () => dialog.hide()); - buttonContainer.appendChild(cancelButton); - - const saveButton = document.createElement('button'); - saveButton.textContent = i18nString(UIStrings.saveButton); - saveButton.className = 'settings-button save-button'; - saveButton.setAttribute('type', 'button'); - buttonContainer.appendChild(saveButton); - - saveButton.addEventListener('click', async () => { - // Disable save button while saving - saveButton.disabled = true; - - // Show saving status - saveStatusMessage.textContent = 'Saving settings...'; - saveStatusMessage.style.backgroundColor = 'var(--color-accent-blue-background)'; - saveStatusMessage.style.color = 'var(--color-accent-blue)'; - saveStatusMessage.style.display = 'block'; + async #handleSave(): Promise { + this.#saveStatus = 'saving'; + void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender); + try { // Save provider selection - const selectedProvider = providerSelect.value; - localStorage.setItem(PROVIDER_SELECTION_KEY, selectedProvider); + localStorage.setItem(PROVIDER_SELECTION_KEY, this.#currentProvider); // Save all provider settings - providerSettings.forEach(settings => { + this.#providerSettings.forEach(settings => { settings.save(); }); // Save custom provider settings if active - if (customProviderSettings) { - customProviderSettings.save(); + if (this.#customProviderSettings) { + this.#customProviderSettings.save(); } - // Get current provider settings (either standard or custom) - let currentProviderSettings = CustomProviderManager.isCustomProvider(selectedProvider) - ? customProviderSettings - : providerSettings.get(selectedProvider as ProviderType); + // Get current provider settings + const currentSettings = CustomProviderManager.isCustomProvider(this.#currentProvider) + ? this.#customProviderSettings + : this.#providerSettings.get(this.#currentProvider); - if (currentProviderSettings) { - const miniModelValue = currentProviderSettings.getMiniModel(); - const nanoModelValue = currentProviderSettings.getNanoModel(); + if (currentSettings) { + const miniModelValue = currentSettings.getMiniModel(); + const nanoModelValue = currentSettings.getNanoModel(); - logger.debug('Mini model value to save:', miniModelValue); if (miniModelValue) { localStorage.setItem(MINI_MODEL_STORAGE_KEY, miniModelValue); } else { localStorage.removeItem(MINI_MODEL_STORAGE_KEY); } - logger.debug('Nano model value to save:', nanoModelValue); if (nanoModelValue) { localStorage.setItem(NANO_MODEL_STORAGE_KEY, nanoModelValue); } else { @@ -678,59 +480,648 @@ export class SettingsDialog { } } - // Save all advanced feature settings - vectorDBSettings.save(); - tracingSettings.save(); - evaluationSettings.save(); - // browsingHistorySettings and mcpSettings don't have save() methods as they auto-save + // Save advanced feature settings + this.#vectorDBSettings?.save(); + this.#tracingSettings?.save(); + this.#evaluationSettings?.save(); logger.debug('Settings saved successfully'); - logger.debug('Mini Model:', localStorage.getItem(MINI_MODEL_STORAGE_KEY)); - logger.debug('Nano Model:', localStorage.getItem(NANO_MODEL_STORAGE_KEY)); - logger.debug('Provider:', selectedProvider); - - // Set success message and notify parent - saveStatusMessage.textContent = 'Settings saved successfully'; - saveStatusMessage.style.backgroundColor = 'var(--color-accent-green-background)'; - saveStatusMessage.style.color = 'var(--color-accent-green)'; - saveStatusMessage.style.display = 'block'; - onSettingsSaved(); + this.#saveStatus = 'success'; + this.#onSettingsSaved?.(); + // Reset status after delay setTimeout(() => { - dialog.hide(); - }, 1500); + this.#saveStatus = 'idle'; + void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender); + }, 2000); + + } catch (error) { + logger.error('Failed to save settings:', error); + this.#saveStatus = 'error'; + } + + void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender); + } + + #getProviderOptions(): Array<{value: string, label: string}> { + const customProviders = CustomProviderManager.listEnabledProviders(); + + const options: Array<{value: string, label: string}> = PROVIDER_REGISTRY.map(provider => ({ + value: provider.id, + label: i18nString(UIStrings[provider.i18nKey]) + })); + + // Add custom providers + customProviders.forEach(provider => { + options.push({ + value: provider.id, + label: `${provider.name} (Custom)` + }); }); - // Apply styles - applySettingsStyles(dialog.contentElement); + return options; + } + + #renderSaveStatus(): Lit.TemplateResult { + if (this.#saveStatus === 'idle') { + return html``; + } + + const statusClass = this.#saveStatus === 'success' ? 'success' : this.#saveStatus === 'error' ? 'error' : ''; + const statusText = this.#saveStatus === 'saving' ? 'Saving settings...' + : this.#saveStatus === 'success' ? 'Settings saved successfully' + : 'Failed to save settings'; + + return html`
${statusText}
`; + } - // Show the dialog - dialog.show(); + #render(): void { + const isCustomProvider = CustomProviderManager.isCustomProvider(this.#currentProvider); + const panelFilterEnabled = localStorage.getItem(PANEL_FILTER_ENABLED_KEY) !== 'false'; + + Lit.render(html` + + +
+
+

${i18nString(UIStrings.settings)}

+
+ +
+ +
+
${i18nString(UIStrings.providerLabel)}
+
${i18nString(UIStrings.providerHint)}
+ this.#handleProviderChange(value)} + > + +
+ + + ${PROVIDER_REGISTRY.map(provider => html` +
{ + if (el) { + this.#providerContainerRefs.set(provider.id, el as HTMLElement); + if (!this.#initialized) { + setTimeout(() => { + this.#initializeProviderSettings(); + this.#initialized = true; + }, 0); + } + } + })} + >
+ `)} + + +
{ + if (el) { + this.#customProviderContainerRef = el as HTMLElement; + } + })} + >
+ + +
{ + if (el) { + this.#mcpContainerRef = el as HTMLElement; + if (!this.#mcpSettings) { + setTimeout(() => this.#initializeMCPAndMemory(), 0); + } + } + })} + >
+ + +
{ + if (el) { + this.#memoryContainerRef = el as HTMLElement; + if (!this.#memorySettings) { + setTimeout(() => this.#initializeMCPAndMemory(), 0); + } + } + })} + >
+ + +
+
+ + Show Browsing History, Vector DB, Tracing, Evaluation +
+ +
+ + + ${this.#showAdvancedSettings ? html` +
{ + if (el) { + this.#historyContainerRef = el as HTMLElement; + setTimeout(() => this.#initializeAdvancedSettings(), 0); + } + })} + >
+ +
{ + if (el) { + this.#vectorDBContainerRef = el as HTMLElement; + setTimeout(() => this.#initializeAdvancedSettings(), 0); + } + })} + >
+ +
{ + if (el) { + this.#tracingContainerRef = el as HTMLElement; + setTimeout(() => this.#initializeAdvancedSettings(), 0); + } + })} + >
+ +
{ + if (el) { + this.#evaluationContainerRef = el as HTMLElement; + setTimeout(() => this.#initializeAdvancedSettings(), 0); + } + })} + >
+ + +
+

Panel Visibility

+
+ + +
+
+ When disabled, shows all standard DevTools panels (Elements, Console, etc.). Requires DevTools reload. +
+
+ ` : nothing} + + +
+

${i18nString(UIStrings.importantNotice)}

+

+ Beta Version: This is a beta version of the Browser Operator - AI Assistant feature. +

+

+ Data Sharing: When using this feature, your browser data and conversation content will be sent to the AI model for processing. +

+

+ Provider Support: We currently support OpenAI, Groq and OpenRouter providers directly. And we support LiteLLM as a proxy to access 100+ other models. +

+

+ By using this feature, you acknowledge that your data will be processed according to Model Provider's privacy policy and terms of service. +

+
+
+ + + +
+ `, this, {host: this}); } /** @@ -738,15 +1129,19 @@ export class SettingsDialog { * Called from AIChatPanel when OAuth credentials are available */ static updateOpenRouterModels(openrouterModels: Array<{id: string, name?: string}>): void { - // Convert OpenRouter models to ModelOption format const modelOptions: ModelOption[] = openrouterModels.map(model => ({ value: model.id, label: model.name || model.id, type: 'openrouter' as const })); - // Store in localStorage with timestamp localStorage.setItem('openrouter_models_cache', JSON.stringify(modelOptions)); localStorage.setItem('openrouter_models_cache_timestamp', Date.now().toString()); } } + +declare global { + interface HTMLElementTagNameMap { + 'ai-settings-dialog': SettingsDialog; + } +} diff --git a/front_end/panels/ai_chat/ui/chatView.css b/front_end/panels/ai_chat/ui/chatView.css index 403fac0364..a6805ece9d 100644 --- a/front_end/panels/ai_chat/ui/chatView.css +++ b/front_end/panels/ai_chat/ui/chatView.css @@ -219,7 +219,7 @@ ai-sidebar-nav { /* Make connectors, settings, history, and evaluations views stretch to full width and height */ .centered-view .main-content > ai-connectors-view, -.centered-view .main-content > ai-settings-view, +.centered-view .main-content > ai-settings-dialog, .centered-view .main-content > ai-history-view, .centered-view .main-content > ai-evaluations-view { align-self: stretch; @@ -228,6 +228,68 @@ ai-sidebar-nav { display: flex; flex-direction: column; min-height: 0; + overflow: hidden; +} + +/* Settings Dialog Styles - ensure proper layout */ +ai-settings-dialog .settings-container { + display: flex; + flex-direction: column; + gap: 16px; + overflow-y: auto; + flex: 1; + min-height: 0; + padding: 24px 20px; + max-width: 500px; + margin: 0 auto; + width: 100%; +} + +ai-settings-dialog .settings-section { + display: flex; + flex-direction: column; + gap: 12px; + padding: 16px 20px; + background: white; + border: 1px solid #e2e8f0; + border-radius: 12px; + flex-shrink: 0; +} + +ai-settings-dialog .settings-label { + display: block; + font-size: 14px; + font-weight: 500; + color: #1e293b; + line-height: 1.4; +} + +ai-settings-dialog .settings-hint { + display: block; + font-size: 12px; + color: #64748b; + line-height: 1.4; +} + +ai-settings-dialog .provider-content { + display: flex; + flex-direction: column; + gap: 16px; + flex-shrink: 0; + height: auto !important; +} + +ai-settings-dialog .provider-content[style*="display: none"] { + display: none !important; +} + +ai-settings-dialog ai-model-selector { + display: block; + width: 100%; +} + +ai-settings-dialog ai-model-selector .model-selector { + width: 100%; } /* Ensure version banner doesn't interfere with centering */ @@ -359,32 +421,17 @@ a.whats-new-pill:active, } .welcome-icon { - width: 56px; - height: 56px; - border-radius: 16px; - background: radial-gradient(circle, rgba(250, 250, 250, 0.45) 0%, rgba(235, 235, 235, 0.55) 100%); + width: 48px; + height: 48px; display: grid; place-items: center; - box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); - position: relative; } .welcome-icon img { width: 48px; height: 48px; border-radius: 12px; - object-fit: cover; - box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); -} - -.welcome-icon::before { - content: ''; - position: absolute; - inset: 0; - border-radius: 16px; - background: radial-gradient(circle, #fafafa 0%, #ebebeb 100%); - opacity: 0.22; - z-index: -1; + object-fit: contain; } .welcome-title { diff --git a/front_end/panels/ai_chat/ui/settings/advanced/MCPSettings.ts b/front_end/panels/ai_chat/ui/settings/advanced/MCPSettings.ts index cf59c7e913..f11b61e678 100644 --- a/front_end/panels/ai_chat/ui/settings/advanced/MCPSettings.ts +++ b/front_end/panels/ai_chat/ui/settings/advanced/MCPSettings.ts @@ -120,10 +120,10 @@ export class MCPSettings { mcpDisconnectButton.style.backgroundColor = '#fee2e2'; mcpDisconnectButton.style.border = '1px solid #fecaca'; mcpDisconnectButton.style.color = '#dc2626'; - mcpDisconnectButton.style.padding = '6px 12px'; + mcpDisconnectButton.style.padding = '8px 14px'; mcpDisconnectButton.style.borderRadius = '6px'; mcpDisconnectButton.style.cursor = 'pointer'; - mcpDisconnectButton.style.fontSize = '12px'; + mcpDisconnectButton.style.fontSize = '14px'; mcpDisconnectButton.style.fontWeight = '500'; mcpDisconnectButton.addEventListener('click', async () => { try { @@ -143,10 +143,10 @@ export class MCPSettings { mcpManageButton.style.backgroundColor = 'var(--color-background-elevation-1)'; mcpManageButton.style.border = '1px solid var(--color-details-hairline)'; mcpManageButton.style.color = 'var(--color-text-primary)'; - mcpManageButton.style.padding = '6px 12px'; + mcpManageButton.style.padding = '8px 14px'; mcpManageButton.style.borderRadius = '6px'; mcpManageButton.style.cursor = 'pointer'; - mcpManageButton.style.fontSize = '12px'; + mcpManageButton.style.fontSize = '14px'; mcpManageButton.style.fontWeight = '500'; mcpManageButton.addEventListener('click', () => { this.onDialogHide(); @@ -161,10 +161,10 @@ export class MCPSettings { mcpReconnectAllButton.style.backgroundColor = '#dbeafe'; mcpReconnectAllButton.style.border = '1px solid #bfdbfe'; mcpReconnectAllButton.style.color = '#1d4ed8'; - mcpReconnectAllButton.style.padding = '6px 12px'; + mcpReconnectAllButton.style.padding = '8px 14px'; mcpReconnectAllButton.style.borderRadius = '6px'; mcpReconnectAllButton.style.cursor = 'pointer'; - mcpReconnectAllButton.style.fontSize = '12px'; + mcpReconnectAllButton.style.fontSize = '14px'; mcpReconnectAllButton.style.fontWeight = '500'; mcpReconnectAllButton.addEventListener('click', async () => { mcpReconnectAllButton.disabled = true; From df985fc45347761b3d6b9d0d13afb3b2378bc100 Mon Sep 17 00:00:00 2001 From: Tyson Thomas Date: Tue, 20 Jan 2026 22:28:33 -0800 Subject: [PATCH 7/7] Fix settings UI --- front_end/panels/ai_chat/ui/SettingsDialog.ts | 119 +++-- .../settings/advanced/EvaluationSettings.ts | 370 ++++++++-------- .../ui/settings/advanced/MemorySettings.ts | 119 +++-- .../ui/settings/advanced/TracingSettings.ts | 313 +++++++------- .../ui/settings/advanced/VectorDBSettings.ts | 407 +++++++++--------- 5 files changed, 693 insertions(+), 635 deletions(-) diff --git a/front_end/panels/ai_chat/ui/SettingsDialog.ts b/front_end/panels/ai_chat/ui/SettingsDialog.ts index 4c725a641a..ee2f66711e 100644 --- a/front_end/panels/ai_chat/ui/SettingsDialog.ts +++ b/front_end/panels/ai_chat/ui/SettingsDialog.ts @@ -440,6 +440,13 @@ export class SettingsDialog extends HTMLElement { Host.InspectorFrontendHost.InspectorFrontendHostInstance.reattach(() => window.location.reload()); } + #handlePanelFilterToggle(): void { + const currentValue = localStorage.getItem(PANEL_FILTER_ENABLED_KEY) !== 'false'; + const newValue = !currentValue; + localStorage.setItem(PANEL_FILTER_ENABLED_KEY, newValue.toString()); + Host.InspectorFrontendHost.InspectorFrontendHostInstance.reattach(() => window.location.reload()); + } + async #handleSave(): Promise { this.#saveStatus = 'saving'; void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender); @@ -844,49 +851,81 @@ export class SettingsDialog extends HTMLElement { gap: 8px; } - /* Checkbox container styles for advanced settings */ - .tracing-enabled-container { + /* Toggle switch styles for advanced settings sections */ + .settings-toggle-container { display: flex; - align-items: center; - gap: 6px; - margin-bottom: 4px; + justify-content: space-between; + align-items: flex-start; + width: 100%; } - .tracing-checkbox { - width: 14px; - height: 14px; - margin: 0; - cursor: pointer; - flex-shrink: 0; + .settings-toggle-info { + display: flex; + flex-direction: column; + gap: 4px; + flex: 1; + max-width: 327px; } - .tracing-label { - font-size: 13px; + .settings-toggle-title { + font-size: 14px; font-weight: 500; - color: #1e293b; - cursor: pointer; + color: #334155; + line-height: 14px; } - .evaluation-enabled-container { - display: flex; - align-items: center; - gap: 6px; - margin-bottom: 4px; + .settings-toggle-description { + font-size: 12px; + font-weight: 400; + color: #5E789A; + line-height: normal; } - .evaluation-checkbox { - width: 14px; - height: 14px; - margin: 0; + .settings-toggle { + position: relative; + width: 44px; + height: 24px; + background: #CBD5E1; + border-radius: 12px; cursor: pointer; + transition: background 0.2s ease; flex-shrink: 0; } - .evaluation-label { - font-size: 13px; - font-weight: 500; - color: #1e293b; - cursor: pointer; + .settings-toggle:hover { + background: #94a3b8; + } + + .settings-toggle.active { + background: #1093F4; + } + + .settings-toggle.active:hover { + background: #0d7fd4; + } + + .settings-toggle::after { + content: ''; + position: absolute; + width: 20px; + height: 20px; + background: white; + border-radius: 50%; + top: 2px; + left: 2px; + transition: transform 0.2s ease; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + } + + .settings-toggle.active::after { + transform: translateX(20px); + } + + .settings-section-footer { + display: flex; + justify-content: flex-end; + width: 100%; + margin-top: 8px; } .settings-footer { @@ -1076,17 +1115,17 @@ export class SettingsDialog extends HTMLElement {

Panel Visibility

-
- - -
-
- When disabled, shows all standard DevTools panels (Elements, Console, etc.). Requires DevTools reload. +
+
+
Show only AI Chat panel
+
+ When disabled, shows all standard DevTools panels (Elements, Console, etc.). Requires DevTools reload. +
+
+
` : nothing} diff --git a/front_end/panels/ai_chat/ui/settings/advanced/EvaluationSettings.ts b/front_end/panels/ai_chat/ui/settings/advanced/EvaluationSettings.ts index 4be7e44ff9..231e6e585a 100644 --- a/front_end/panels/ai_chat/ui/settings/advanced/EvaluationSettings.ts +++ b/front_end/panels/ai_chat/ui/settings/advanced/EvaluationSettings.ts @@ -24,9 +24,11 @@ const logger = createLogger('EvaluationSettings'); export class EvaluationSettings { private container: HTMLElement; private statusUpdateInterval: number | null = null; - private evaluationEnabledCheckbox: HTMLInputElement | null = null; + private isEnabled: boolean = false; + private toggleElement: HTMLDivElement | null = null; private evaluationEndpointInput: HTMLInputElement | null = null; private evaluationSecretKeyInput: HTMLInputElement | null = null; + private configContainer: HTMLDivElement | null = null; constructor(container: HTMLElement) { this.container = container; @@ -37,99 +39,53 @@ export class EvaluationSettings { this.container.innerHTML = ''; this.container.className = 'settings-section evaluation-section'; - // Title - const evaluationSectionTitle = document.createElement('h3'); - evaluationSectionTitle.className = 'settings-subtitle'; - evaluationSectionTitle.textContent = i18nString(UIStrings.evaluationSection); - this.container.appendChild(evaluationSectionTitle); - // Get current evaluation configuration const currentEvaluationConfig = getEvaluationConfig(); - - // Evaluation enabled checkbox - const evaluationEnabledContainer = document.createElement('div'); - evaluationEnabledContainer.className = 'evaluation-enabled-container'; - this.container.appendChild(evaluationEnabledContainer); - - this.evaluationEnabledCheckbox = document.createElement('input'); - this.evaluationEnabledCheckbox.type = 'checkbox'; - this.evaluationEnabledCheckbox.id = 'evaluation-enabled'; - this.evaluationEnabledCheckbox.className = 'evaluation-checkbox'; - this.evaluationEnabledCheckbox.checked = isEvaluationEnabled(); - evaluationEnabledContainer.appendChild(this.evaluationEnabledCheckbox); - - const evaluationEnabledLabel = document.createElement('label'); - evaluationEnabledLabel.htmlFor = 'evaluation-enabled'; - evaluationEnabledLabel.className = 'evaluation-label'; - evaluationEnabledLabel.textContent = i18nString(UIStrings.evaluationEnabled); - evaluationEnabledContainer.appendChild(evaluationEnabledLabel); - - const evaluationEnabledHint = document.createElement('div'); - evaluationEnabledHint.className = 'settings-hint'; - evaluationEnabledHint.textContent = i18nString(UIStrings.evaluationEnabledHint); - this.container.appendChild(evaluationEnabledHint); - - // Connection status indicator - const connectionStatusContainer = document.createElement('div'); - connectionStatusContainer.className = 'connection-status-container'; - connectionStatusContainer.style.display = 'flex'; - connectionStatusContainer.style.alignItems = 'center'; - connectionStatusContainer.style.gap = '8px'; - connectionStatusContainer.style.marginTop = '8px'; - connectionStatusContainer.style.fontSize = '13px'; - this.container.appendChild(connectionStatusContainer); - - const connectionStatusDot = document.createElement('div'); - connectionStatusDot.className = 'connection-status-dot'; - connectionStatusDot.style.width = '8px'; - connectionStatusDot.style.height = '8px'; - connectionStatusDot.style.borderRadius = '50%'; - connectionStatusDot.style.flexShrink = '0'; - connectionStatusContainer.appendChild(connectionStatusDot); - - const connectionStatusText = document.createElement('span'); - connectionStatusText.className = 'connection-status-text'; - connectionStatusContainer.appendChild(connectionStatusText); - - // Function to update connection status - const updateConnectionStatus = () => { - const isConnected = isEvaluationConnected(); - - logger.debug('Updating connection status', { isConnected }); - - if (isConnected) { - connectionStatusDot.style.backgroundColor = 'var(--color-accent-green)'; - connectionStatusText.textContent = 'Connected to evaluation server'; - connectionStatusText.style.color = 'var(--color-accent-green)'; - } else { - connectionStatusDot.style.backgroundColor = 'var(--color-text-disabled)'; - connectionStatusText.textContent = 'Not connected'; - connectionStatusText.style.color = 'var(--color-text-disabled)'; - } - }; - - // Update status initially and when evaluation is enabled/disabled - updateConnectionStatus(); - - // Set up periodic status updates every 2 seconds - this.statusUpdateInterval = setInterval(updateConnectionStatus, 2000); - - // Evaluation configuration container (shown when enabled) - const evaluationConfigContainer = document.createElement('div'); - evaluationConfigContainer.className = 'evaluation-config-container'; - evaluationConfigContainer.style.display = this.evaluationEnabledCheckbox.checked ? 'block' : 'none'; - this.container.appendChild(evaluationConfigContainer); + this.isEnabled = isEvaluationEnabled(); + + // Header with toggle + const headerContainer = document.createElement('div'); + headerContainer.className = 'settings-toggle-container'; + this.container.appendChild(headerContainer); + + const infoContainer = document.createElement('div'); + infoContainer.className = 'settings-toggle-info'; + headerContainer.appendChild(infoContainer); + + const title = document.createElement('div'); + title.className = 'settings-toggle-title'; + title.textContent = i18nString(UIStrings.evaluationSection); + infoContainer.appendChild(title); + + const description = document.createElement('div'); + description.className = 'settings-toggle-description'; + description.textContent = i18nString(UIStrings.evaluationEnabledHint); + infoContainer.appendChild(description); + + // Toggle switch + this.toggleElement = document.createElement('div'); + this.toggleElement.className = 'settings-toggle'; + if (this.isEnabled) { + this.toggleElement.classList.add('active'); + } + this.toggleElement.addEventListener('click', () => this.handleToggle()); + headerContainer.appendChild(this.toggleElement); + + // Configuration container (shown when enabled) + this.configContainer = document.createElement('div'); + this.configContainer.className = 'evaluation-config-container'; + this.configContainer.style.display = this.isEnabled ? 'flex' : 'none'; + this.configContainer.style.flexDirection = 'column'; + this.configContainer.style.gap = '20px'; + this.configContainer.style.marginTop = '20px'; + this.container.appendChild(this.configContainer); // Client ID display (read-only) - const clientIdLabel = document.createElement('div'); - clientIdLabel.className = 'settings-label'; - clientIdLabel.textContent = 'Client ID'; - evaluationConfigContainer.appendChild(clientIdLabel); - - const clientIdHint = document.createElement('div'); - clientIdHint.className = 'settings-hint'; - clientIdHint.textContent = 'Unique identifier for this DevTools instance'; - evaluationConfigContainer.appendChild(clientIdHint); + const clientIdGroup = this.createFieldGroup( + 'Client ID', + 'Unique identifier for this DevTools instance' + ); + this.configContainer.appendChild(clientIdGroup.container); const clientIdInput = document.createElement('input'); clientIdInput.type = 'text'; @@ -138,143 +94,155 @@ export class EvaluationSettings { clientIdInput.readOnly = true; clientIdInput.style.backgroundColor = 'var(--color-background-elevation-1)'; clientIdInput.style.cursor = 'default'; - evaluationConfigContainer.appendChild(clientIdInput); + clientIdGroup.container.appendChild(clientIdInput); // Evaluation endpoint - const evaluationEndpointLabel = document.createElement('div'); - evaluationEndpointLabel.className = 'settings-label'; - evaluationEndpointLabel.textContent = i18nString(UIStrings.evaluationEndpoint); - evaluationConfigContainer.appendChild(evaluationEndpointLabel); - - const evaluationEndpointHint = document.createElement('div'); - evaluationEndpointHint.className = 'settings-hint'; - evaluationEndpointHint.textContent = i18nString(UIStrings.evaluationEndpointHint); - evaluationConfigContainer.appendChild(evaluationEndpointHint); + const endpointGroup = this.createFieldGroup( + i18nString(UIStrings.evaluationEndpoint), + i18nString(UIStrings.evaluationEndpointHint) + ); + this.configContainer.appendChild(endpointGroup.container); this.evaluationEndpointInput = document.createElement('input'); this.evaluationEndpointInput.type = 'text'; this.evaluationEndpointInput.className = 'settings-input'; this.evaluationEndpointInput.placeholder = 'ws://localhost:8080'; this.evaluationEndpointInput.value = currentEvaluationConfig.endpoint || 'ws://localhost:8080'; - evaluationConfigContainer.appendChild(this.evaluationEndpointInput); + endpointGroup.container.appendChild(this.evaluationEndpointInput); // Evaluation secret key - const evaluationSecretKeyLabel = document.createElement('div'); - evaluationSecretKeyLabel.className = 'settings-label'; - evaluationSecretKeyLabel.textContent = i18nString(UIStrings.evaluationSecretKey); - evaluationConfigContainer.appendChild(evaluationSecretKeyLabel); - - const evaluationSecretKeyHint = document.createElement('div'); - evaluationSecretKeyHint.className = 'settings-hint'; - evaluationSecretKeyHint.textContent = i18nString(UIStrings.evaluationSecretKeyHint); - evaluationConfigContainer.appendChild(evaluationSecretKeyHint); + const secretKeyGroup = this.createFieldGroup( + i18nString(UIStrings.evaluationSecretKey), + i18nString(UIStrings.evaluationSecretKeyHint) + ); + this.configContainer.appendChild(secretKeyGroup.container); this.evaluationSecretKeyInput = document.createElement('input'); this.evaluationSecretKeyInput.type = 'password'; this.evaluationSecretKeyInput.className = 'settings-input'; - this.evaluationSecretKeyInput.placeholder = 'Optional secret key'; + this.evaluationSecretKeyInput.placeholder = 'Evaluation secret key (optional)'; this.evaluationSecretKeyInput.value = currentEvaluationConfig.secretKey || ''; - evaluationConfigContainer.appendChild(this.evaluationSecretKeyInput); - - // Connection status message - const connectionStatusMessage = document.createElement('div'); - connectionStatusMessage.className = 'settings-status'; - connectionStatusMessage.style.display = 'none'; - evaluationConfigContainer.appendChild(connectionStatusMessage); - - // Auto-connect when evaluation is enabled/disabled - this.evaluationEnabledCheckbox.addEventListener('change', async () => { - const isEnabled = this.evaluationEnabledCheckbox!.checked; - evaluationConfigContainer.style.display = isEnabled ? 'block' : 'none'; - - // Show connection status - connectionStatusMessage.style.display = 'block'; - - if (isEnabled) { - // Auto-connect when enabled - connectionStatusMessage.textContent = 'Connecting...'; - connectionStatusMessage.style.backgroundColor = 'var(--color-background-elevation-1)'; - connectionStatusMessage.style.color = 'var(--color-text-primary)'; - - try { - const endpoint = this.evaluationEndpointInput!.value.trim() || 'ws://localhost:8080'; - const secretKey = this.evaluationSecretKeyInput!.value.trim(); - - // Update config and connect - setEvaluationConfig({ - enabled: true, - endpoint, - secretKey - }); - - await connectToEvaluationService(); - - // Update client ID display after connection - const clientId = getEvaluationClientId(); - if (clientId) { - clientIdInput.value = clientId; - } - - connectionStatusMessage.textContent = '✓ Connected successfully'; - connectionStatusMessage.style.backgroundColor = 'var(--color-accent-green-background)'; - connectionStatusMessage.style.color = 'var(--color-accent-green)'; - - // Update connection status indicator - setTimeout(updateConnectionStatus, 500); - } catch (error) { - connectionStatusMessage.textContent = `✗ ${error instanceof Error ? error.message : 'Connection failed'}`; - connectionStatusMessage.style.backgroundColor = 'var(--color-accent-red-background)'; - connectionStatusMessage.style.color = 'var(--color-accent-red)'; - - // Uncheck the checkbox if connection failed - this.evaluationEnabledCheckbox!.checked = false; - evaluationConfigContainer.style.display = 'none'; + secretKeyGroup.container.appendChild(this.evaluationSecretKeyInput); + + // Footer with Test Connection button + const footer = document.createElement('div'); + footer.className = 'settings-section-footer'; + this.configContainer.appendChild(footer); + + const testButton = document.createElement('button'); + testButton.className = 'settings-button primary'; + testButton.textContent = 'Test Connection'; + testButton.addEventListener('click', () => this.testConnection(clientIdInput)); + footer.appendChild(testButton); + } + + private createFieldGroup(label: string, hint: string): { container: HTMLDivElement } { + const container = document.createElement('div'); + container.style.display = 'flex'; + container.style.flexDirection = 'column'; + container.style.gap = '4px'; + + const labelEl = document.createElement('div'); + labelEl.className = 'settings-label'; + labelEl.textContent = label; + container.appendChild(labelEl); + + const hintEl = document.createElement('div'); + hintEl.className = 'settings-hint'; + hintEl.textContent = hint; + container.appendChild(hintEl); + + return { container }; + } + + private async handleToggle(): Promise { + this.isEnabled = !this.isEnabled; + + if (this.toggleElement) { + this.toggleElement.classList.toggle('active', this.isEnabled); + } + + if (this.configContainer) { + this.configContainer.style.display = this.isEnabled ? 'flex' : 'none'; + } + + if (this.isEnabled) { + // Auto-connect when enabled + try { + const endpoint = this.evaluationEndpointInput?.value.trim() || 'ws://localhost:8080'; + const secretKey = this.evaluationSecretKeyInput?.value.trim() || ''; + + setEvaluationConfig({ + enabled: true, + endpoint, + secretKey + }); + + await connectToEvaluationService(); + } catch (error) { + logger.error('Failed to connect to evaluation service', error); + // Revert toggle on failure + this.isEnabled = false; + if (this.toggleElement) { + this.toggleElement.classList.remove('active'); } - } else { - // Auto-disconnect when disabled - connectionStatusMessage.textContent = 'Disconnecting...'; - connectionStatusMessage.style.backgroundColor = 'var(--color-background-elevation-1)'; - connectionStatusMessage.style.color = 'var(--color-text-primary)'; - - try { - disconnectFromEvaluationService(); - - // Update config - setEvaluationConfig({ - enabled: false, - endpoint: this.evaluationEndpointInput!.value.trim() || 'ws://localhost:8080', - secretKey: this.evaluationSecretKeyInput!.value.trim() - }); - - connectionStatusMessage.textContent = '✓ Disconnected'; - connectionStatusMessage.style.backgroundColor = 'var(--color-background-elevation-1)'; - connectionStatusMessage.style.color = 'var(--color-text-primary)'; - - // Update connection status indicator - updateConnectionStatus(); - } catch (error) { - connectionStatusMessage.textContent = `✗ Disconnect error: ${error instanceof Error ? error.message : 'Unknown error'}`; - connectionStatusMessage.style.backgroundColor = 'var(--color-accent-red-background)'; - connectionStatusMessage.style.color = 'var(--color-accent-red)'; + if (this.configContainer) { + this.configContainer.style.display = 'none'; } } + } else { + // Disconnect when disabled + try { + disconnectFromEvaluationService(); + setEvaluationConfig({ + enabled: false, + endpoint: this.evaluationEndpointInput?.value.trim() || 'ws://localhost:8080', + secretKey: this.evaluationSecretKeyInput?.value.trim() || '' + }); + } catch (error) { + logger.error('Failed to disconnect from evaluation service', error); + } + } + } - // Hide status message after 3 seconds - setTimeout(() => { - connectionStatusMessage.style.display = 'none'; - }, 3000); - }); + private async testConnection(clientIdInput: HTMLInputElement): Promise { + try { + const endpoint = this.evaluationEndpointInput?.value.trim() || 'ws://localhost:8080'; + const secretKey = this.evaluationSecretKeyInput?.value.trim() || ''; + + setEvaluationConfig({ + enabled: true, + endpoint, + secretKey + }); + + await connectToEvaluationService(); + + // Update client ID display after connection + const clientId = getEvaluationClientId(); + if (clientId) { + clientIdInput.value = clientId; + } + + // Update toggle state + this.isEnabled = true; + if (this.toggleElement) { + this.toggleElement.classList.add('active'); + } + + logger.info('Test connection successful'); + } catch (error) { + logger.error('Test connection failed', error); + } } save(): void { - // Evaluation settings are auto-saved on enable/disable toggle - // Final save happens in the checkbox change handler - if (!this.evaluationEnabledCheckbox || !this.evaluationEndpointInput || !this.evaluationSecretKeyInput) { + if (!this.evaluationEndpointInput || !this.evaluationSecretKeyInput) { return; } setEvaluationConfig({ - enabled: this.evaluationEnabledCheckbox.checked, + enabled: this.isEnabled, endpoint: this.evaluationEndpointInput.value.trim() || 'ws://localhost:8080', secretKey: this.evaluationSecretKeyInput.value.trim() }); diff --git a/front_end/panels/ai_chat/ui/settings/advanced/MemorySettings.ts b/front_end/panels/ai_chat/ui/settings/advanced/MemorySettings.ts index fad66956a3..f8e20fdcb8 100644 --- a/front_end/panels/ai_chat/ui/settings/advanced/MemorySettings.ts +++ b/front_end/panels/ai_chat/ui/settings/advanced/MemorySettings.ts @@ -18,7 +18,8 @@ import type { FileSummary } from '../../../tools/FileStorageManager.js'; */ export class MemorySettings { private container: HTMLElement; - private memoryEnabledCheckbox: HTMLInputElement | null = null; + private isEnabled: boolean = false; + private toggleElement: HTMLDivElement | null = null; private blockListContainer: HTMLElement | null = null; private blockManager: MemoryBlockManager; private statusMessageElement: HTMLElement | null = null; @@ -33,42 +34,43 @@ export class MemorySettings { this.container.innerHTML = ''; this.container.className = 'settings-section memory-section'; + // Get current state - default to enabled (true) if not set + const storedValue = localStorage.getItem(MEMORY_ENABLED_KEY); + this.isEnabled = storedValue !== 'false'; + // Title const memoryTitle = document.createElement('h3'); memoryTitle.textContent = i18nString(UIStrings.memoryLabel); memoryTitle.classList.add('settings-subtitle'); this.container.appendChild(memoryTitle); - // Memory enabled checkbox - const memoryEnabledContainer = document.createElement('div'); - memoryEnabledContainer.className = 'tracing-enabled-container'; - this.container.appendChild(memoryEnabledContainer); - - this.memoryEnabledCheckbox = document.createElement('input'); - this.memoryEnabledCheckbox.type = 'checkbox'; - this.memoryEnabledCheckbox.id = 'memory-enabled'; - this.memoryEnabledCheckbox.className = 'tracing-checkbox'; - // Default to enabled (true) if not set - const storedValue = localStorage.getItem(MEMORY_ENABLED_KEY); - this.memoryEnabledCheckbox.checked = storedValue !== 'false'; - memoryEnabledContainer.appendChild(this.memoryEnabledCheckbox); - - const memoryEnabledLabel = document.createElement('label'); - memoryEnabledLabel.htmlFor = 'memory-enabled'; - memoryEnabledLabel.className = 'tracing-label'; - memoryEnabledLabel.textContent = i18nString(UIStrings.memoryEnabled); - memoryEnabledContainer.appendChild(memoryEnabledLabel); - - const memoryEnabledHint = document.createElement('div'); - memoryEnabledHint.className = 'settings-hint'; - memoryEnabledHint.textContent = i18nString(UIStrings.memoryEnabledHint); - this.container.appendChild(memoryEnabledHint); - - // Toggle memory and save to localStorage - this.memoryEnabledCheckbox.addEventListener('change', () => { - localStorage.setItem(MEMORY_ENABLED_KEY, this.memoryEnabledCheckbox!.checked.toString()); - this.updateBlockListVisibility(); - }); + // Header with toggle + const headerContainer = document.createElement('div'); + headerContainer.className = 'settings-toggle-container'; + this.container.appendChild(headerContainer); + + const infoContainer = document.createElement('div'); + infoContainer.className = 'settings-toggle-info'; + headerContainer.appendChild(infoContainer); + + const title = document.createElement('div'); + title.className = 'settings-toggle-title'; + title.textContent = i18nString(UIStrings.memoryEnabled); + infoContainer.appendChild(title); + + const description = document.createElement('div'); + description.className = 'settings-toggle-description'; + description.textContent = i18nString(UIStrings.memoryEnabledHint); + infoContainer.appendChild(description); + + // Toggle switch + this.toggleElement = document.createElement('div'); + this.toggleElement.className = 'settings-toggle'; + if (this.isEnabled) { + this.toggleElement.classList.add('active'); + } + this.toggleElement.addEventListener('click', () => this.handleToggle()); + headerContainer.appendChild(this.toggleElement); // Memory blocks list container this.blockListContainer = document.createElement('div'); @@ -80,12 +82,26 @@ export class MemorySettings { this.renderMemoryBlocks(); } + /** + * Handle toggle click + */ + private handleToggle(): void { + this.isEnabled = !this.isEnabled; + + if (this.toggleElement) { + this.toggleElement.classList.toggle('active', this.isEnabled); + } + + localStorage.setItem(MEMORY_ENABLED_KEY, this.isEnabled.toString()); + this.updateBlockListVisibility(); + } + /** * Update visibility of block list based on memory enabled state */ private updateBlockListVisibility(): void { - if (this.blockListContainer && this.memoryEnabledCheckbox) { - this.blockListContainer.style.display = this.memoryEnabledCheckbox.checked ? 'block' : 'none'; + if (this.blockListContainer) { + this.blockListContainer.style.display = this.isEnabled ? 'block' : 'none'; } } @@ -112,14 +128,39 @@ export class MemorySettings { this.blockListContainer.appendChild(this.statusMessageElement); try { - const blocks = await this.blockManager.getAllBlocks(); + let blocks = await this.blockManager.getAllBlocks(); + // Add dummy data for testing if no blocks exist if (blocks.length === 0) { - const emptyMessage = document.createElement('div'); - emptyMessage.className = 'memory-blocks-empty'; - emptyMessage.textContent = 'No memory blocks stored yet. Memory will be extracted from conversations automatically.'; - this.blockListContainer.appendChild(emptyMessage); - return; + blocks = [ + { + filename: 'memory_user.md', + type: 'user' as const, + label: 'User Preferences', + description: 'Personal preferences and settings', + content: '# User Preferences\n\n- Prefers dark mode\n- Uses TypeScript for all projects\n- Likes concise code comments', + charLimit: 10000, + updatedAt: Date.now() - 86400000, // yesterday + }, + { + filename: 'memory_facts.md', + type: 'facts' as const, + label: 'Session Facts', + description: 'Facts learned from conversations', + content: '# Session Facts\n\n- Working on Browser Operator project\n- Uses React and Lit for UI components\n- DevTools frontend codebase', + charLimit: 10000, + updatedAt: Date.now() - 3600000, // 1 hour ago + }, + { + filename: 'memory_project_browser-operator.md', + type: 'project' as const, + label: 'Browser Operator Project', + description: 'Project-specific memory', + content: '# Browser Operator\n\nAI-native browser with multi-agent framework.\n\n## Key Files\n- SettingsDialog.ts\n- MemorySettings.ts', + charLimit: 10000, + updatedAt: Date.now(), // now + }, + ]; } // Create block list diff --git a/front_end/panels/ai_chat/ui/settings/advanced/TracingSettings.ts b/front_end/panels/ai_chat/ui/settings/advanced/TracingSettings.ts index a9ffd5bd70..ff4f82affc 100644 --- a/front_end/panels/ai_chat/ui/settings/advanced/TracingSettings.ts +++ b/front_end/panels/ai_chat/ui/settings/advanced/TracingSettings.ts @@ -12,7 +12,9 @@ import { getTracingConfig, setTracingConfig, isTracingEnabled } from '../../../t */ export class TracingSettings { private container: HTMLElement; - private tracingEnabledCheckbox: HTMLInputElement | null = null; + private isEnabled: boolean = false; + private toggleElement: HTMLDivElement | null = null; + private configContainer: HTMLDivElement | null = null; private endpointInput: HTMLInputElement | null = null; private publicKeyInput: HTMLInputElement | null = null; private secretKeyInput: HTMLInputElement | null = null; @@ -26,182 +28,203 @@ export class TracingSettings { this.container.innerHTML = ''; this.container.className = 'settings-section tracing-section'; - // Title - const tracingSectionTitle = document.createElement('h3'); - tracingSectionTitle.className = 'settings-subtitle'; - tracingSectionTitle.textContent = i18nString(UIStrings.tracingSection); - this.container.appendChild(tracingSectionTitle); - // Get current tracing configuration const currentTracingConfig = getTracingConfig(); - - // Tracing enabled checkbox - const tracingEnabledContainer = document.createElement('div'); - tracingEnabledContainer.className = 'tracing-enabled-container'; - this.container.appendChild(tracingEnabledContainer); - - this.tracingEnabledCheckbox = document.createElement('input'); - this.tracingEnabledCheckbox.type = 'checkbox'; - this.tracingEnabledCheckbox.id = 'tracing-enabled'; - this.tracingEnabledCheckbox.className = 'tracing-checkbox'; - this.tracingEnabledCheckbox.checked = isTracingEnabled(); - tracingEnabledContainer.appendChild(this.tracingEnabledCheckbox); - - const tracingEnabledLabel = document.createElement('label'); - tracingEnabledLabel.htmlFor = 'tracing-enabled'; - tracingEnabledLabel.className = 'tracing-label'; - tracingEnabledLabel.textContent = i18nString(UIStrings.tracingEnabled); - tracingEnabledContainer.appendChild(tracingEnabledLabel); - - const tracingEnabledHint = document.createElement('div'); - tracingEnabledHint.className = 'settings-hint'; - tracingEnabledHint.textContent = i18nString(UIStrings.tracingEnabledHint); - this.container.appendChild(tracingEnabledHint); - - // Tracing configuration container (shown when enabled) - const tracingConfigContainer = document.createElement('div'); - tracingConfigContainer.className = 'tracing-config-container'; - tracingConfigContainer.style.display = this.tracingEnabledCheckbox.checked ? 'block' : 'none'; - this.container.appendChild(tracingConfigContainer); + this.isEnabled = isTracingEnabled(); + + // Header with toggle + const headerContainer = document.createElement('div'); + headerContainer.className = 'settings-toggle-container'; + this.container.appendChild(headerContainer); + + const infoContainer = document.createElement('div'); + infoContainer.className = 'settings-toggle-info'; + headerContainer.appendChild(infoContainer); + + const title = document.createElement('div'); + title.className = 'settings-toggle-title'; + title.textContent = i18nString(UIStrings.tracingSection); + infoContainer.appendChild(title); + + const description = document.createElement('div'); + description.className = 'settings-toggle-description'; + description.textContent = i18nString(UIStrings.tracingEnabledHint); + infoContainer.appendChild(description); + + // Toggle switch + this.toggleElement = document.createElement('div'); + this.toggleElement.className = 'settings-toggle'; + if (this.isEnabled) { + this.toggleElement.classList.add('active'); + } + this.toggleElement.addEventListener('click', () => this.handleToggle()); + headerContainer.appendChild(this.toggleElement); + + // Configuration container (shown when enabled) + this.configContainer = document.createElement('div'); + this.configContainer.className = 'tracing-config-container'; + this.configContainer.style.display = this.isEnabled ? 'flex' : 'none'; + this.configContainer.style.flexDirection = 'column'; + this.configContainer.style.gap = '20px'; + this.configContainer.style.marginTop = '20px'; + this.container.appendChild(this.configContainer); // Langfuse endpoint - const endpointLabel = document.createElement('div'); - endpointLabel.className = 'settings-label'; - endpointLabel.textContent = i18nString(UIStrings.langfuseEndpoint); - tracingConfigContainer.appendChild(endpointLabel); - - const endpointHint = document.createElement('div'); - endpointHint.className = 'settings-hint'; - endpointHint.textContent = i18nString(UIStrings.langfuseEndpointHint); - tracingConfigContainer.appendChild(endpointHint); + const endpointGroup = this.createFieldGroup( + i18nString(UIStrings.langfuseEndpoint), + i18nString(UIStrings.langfuseEndpointHint) + ); + this.configContainer.appendChild(endpointGroup.container); this.endpointInput = document.createElement('input'); this.endpointInput.className = 'settings-input'; this.endpointInput.type = 'text'; - this.endpointInput.placeholder = 'http://localhost:3000'; - this.endpointInput.value = currentTracingConfig.endpoint || 'http://localhost:3000'; - tracingConfigContainer.appendChild(this.endpointInput); + this.endpointInput.placeholder = 'Enter URL'; + this.endpointInput.value = currentTracingConfig.endpoint || ''; + endpointGroup.container.appendChild(this.endpointInput); // Langfuse public key - const publicKeyLabel = document.createElement('div'); - publicKeyLabel.className = 'settings-label'; - publicKeyLabel.textContent = i18nString(UIStrings.langfusePublicKey); - tracingConfigContainer.appendChild(publicKeyLabel); - - const publicKeyHint = document.createElement('div'); - publicKeyHint.className = 'settings-hint'; - publicKeyHint.textContent = i18nString(UIStrings.langfusePublicKeyHint); - tracingConfigContainer.appendChild(publicKeyHint); + const publicKeyGroup = this.createFieldGroup( + i18nString(UIStrings.langfusePublicKey), + i18nString(UIStrings.langfusePublicKeyHint) + ); + this.configContainer.appendChild(publicKeyGroup.container); this.publicKeyInput = document.createElement('input'); this.publicKeyInput.className = 'settings-input'; this.publicKeyInput.type = 'text'; - this.publicKeyInput.placeholder = 'pk-lf-...'; + this.publicKeyInput.placeholder = 'Enter public key'; this.publicKeyInput.value = currentTracingConfig.publicKey || ''; - tracingConfigContainer.appendChild(this.publicKeyInput); + publicKeyGroup.container.appendChild(this.publicKeyInput); // Langfuse secret key - const secretKeyLabel = document.createElement('div'); - secretKeyLabel.className = 'settings-label'; - secretKeyLabel.textContent = i18nString(UIStrings.langfuseSecretKey); - tracingConfigContainer.appendChild(secretKeyLabel); - - const secretKeyHint = document.createElement('div'); - secretKeyHint.className = 'settings-hint'; - secretKeyHint.textContent = i18nString(UIStrings.langfuseSecretKeyHint); - tracingConfigContainer.appendChild(secretKeyHint); + const secretKeyGroup = this.createFieldGroup( + i18nString(UIStrings.langfuseSecretKey), + i18nString(UIStrings.langfuseSecretKeyHint) + ); + this.configContainer.appendChild(secretKeyGroup.container); this.secretKeyInput = document.createElement('input'); this.secretKeyInput.className = 'settings-input'; this.secretKeyInput.type = 'password'; - this.secretKeyInput.placeholder = 'sk-lf-...'; + this.secretKeyInput.placeholder = 'Enter secret key'; this.secretKeyInput.value = currentTracingConfig.secretKey || ''; - tracingConfigContainer.appendChild(this.secretKeyInput); - - // Test connection button - const testTracingButton = document.createElement('button'); - testTracingButton.className = 'settings-button test-button'; - testTracingButton.textContent = i18nString(UIStrings.testTracing); - tracingConfigContainer.appendChild(testTracingButton); - - // Test status message - const testTracingStatus = document.createElement('div'); - testTracingStatus.className = 'settings-status'; - testTracingStatus.style.display = 'none'; - tracingConfigContainer.appendChild(testTracingStatus); - - // Toggle tracing config visibility - this.tracingEnabledCheckbox.addEventListener('change', () => { - tracingConfigContainer.style.display = this.tracingEnabledCheckbox!.checked ? 'block' : 'none'; - }); - - // Test tracing connection - testTracingButton.addEventListener('click', async () => { - testTracingButton.disabled = true; - testTracingStatus.style.display = 'block'; - testTracingStatus.textContent = 'Testing connection...'; - testTracingStatus.style.backgroundColor = 'var(--color-background-elevation-1)'; - testTracingStatus.style.color = 'var(--color-text-primary)'; - - try { - const endpoint = this.endpointInput!.value.trim(); - const publicKey = this.publicKeyInput!.value.trim(); - const secretKey = this.secretKeyInput!.value.trim(); - - if (!endpoint || !publicKey || !secretKey) { - throw new Error('All fields are required for testing'); - } + secretKeyGroup.container.appendChild(this.secretKeyInput); + + // Footer with Test Connection button + const footer = document.createElement('div'); + footer.className = 'settings-section-footer'; + this.configContainer.appendChild(footer); + + const testButton = document.createElement('button'); + testButton.className = 'settings-button primary'; + testButton.textContent = 'Test Connection'; + testButton.addEventListener('click', () => this.testConnection(testButton)); + footer.appendChild(testButton); + } - // Test the connection with a simple trace - const testPayload = { - batch: [{ - id: `test-${Date.now()}`, - timestamp: new Date().toISOString(), - type: 'trace-create', - body: { - id: `trace-test-${Date.now()}`, - name: 'Connection Test', - timestamp: new Date().toISOString() - } - }] - }; - - const response = await fetch(`${endpoint}/api/public/ingestion`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'Authorization': 'Basic ' + btoa(`${publicKey}:${secretKey}`) - }, - body: JSON.stringify(testPayload) - }); + private createFieldGroup(label: string, hint: string): { container: HTMLDivElement } { + const container = document.createElement('div'); + container.style.display = 'flex'; + container.style.flexDirection = 'column'; + container.style.gap = '4px'; + + const labelEl = document.createElement('div'); + labelEl.className = 'settings-label'; + labelEl.textContent = label; + container.appendChild(labelEl); + + const hintEl = document.createElement('div'); + hintEl.className = 'settings-hint'; + hintEl.textContent = hint; + container.appendChild(hintEl); + + return { container }; + } + + private handleToggle(): void { + this.isEnabled = !this.isEnabled; - if (response.ok) { - testTracingStatus.textContent = '✓ Connection successful'; - testTracingStatus.style.backgroundColor = 'var(--color-accent-green-background)'; - testTracingStatus.style.color = 'var(--color-accent-green)'; - } else { - const errorText = await response.text(); - throw new Error(`HTTP ${response.status}: ${errorText}`); + if (this.toggleElement) { + this.toggleElement.classList.toggle('active', this.isEnabled); + } + + if (this.configContainer) { + this.configContainer.style.display = this.isEnabled ? 'flex' : 'none'; + } + + // Auto-save toggle state + if (!this.isEnabled) { + setTracingConfig({ provider: 'disabled' }); + } + } + + private async testConnection(testButton: HTMLButtonElement): Promise { + testButton.disabled = true; + testButton.textContent = 'Testing...'; + + try { + const endpoint = this.endpointInput?.value.trim() || ''; + const publicKey = this.publicKeyInput?.value.trim() || ''; + const secretKey = this.secretKeyInput?.value.trim() || ''; + + if (!endpoint || !publicKey || !secretKey) { + throw new Error('All fields are required for testing'); + } + + // Test the connection with a simple trace + const testPayload = { + batch: [{ + id: `test-${Date.now()}`, + timestamp: new Date().toISOString(), + type: 'trace-create', + body: { + id: `trace-test-${Date.now()}`, + name: 'Connection Test', + timestamp: new Date().toISOString() + } + }] + }; + + const response = await fetch(`${endpoint}/api/public/ingestion`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Basic ' + btoa(`${publicKey}:${secretKey}`) + }, + body: JSON.stringify(testPayload) + }); + + if (response.ok) { + testButton.textContent = 'Connected!'; + // Enable toggle if not already + if (!this.isEnabled) { + this.isEnabled = true; + if (this.toggleElement) { + this.toggleElement.classList.add('active'); + } } - } catch (error) { - testTracingStatus.textContent = `✗ ${error instanceof Error ? error.message : 'Connection failed'}`; - testTracingStatus.style.backgroundColor = 'var(--color-accent-red-background)'; - testTracingStatus.style.color = 'var(--color-accent-red)'; - } finally { - testTracingButton.disabled = false; - setTimeout(() => { - testTracingStatus.style.display = 'none'; - }, 5000); + } else { + const errorText = await response.text(); + throw new Error(`HTTP ${response.status}: ${errorText}`); } - }); + } catch (error) { + testButton.textContent = 'Failed'; + console.error('Tracing test failed:', error); + } finally { + setTimeout(() => { + testButton.disabled = false; + testButton.textContent = 'Test Connection'; + }, 2000); + } } save(): void { - if (!this.tracingEnabledCheckbox || !this.endpointInput || !this.publicKeyInput || !this.secretKeyInput) { + if (!this.endpointInput || !this.publicKeyInput || !this.secretKeyInput) { return; } - if (this.tracingEnabledCheckbox.checked) { + if (this.isEnabled) { const endpoint = this.endpointInput.value.trim(); const publicKey = this.publicKeyInput.value.trim(); const secretKey = this.secretKeyInput.value.trim(); diff --git a/front_end/panels/ai_chat/ui/settings/advanced/VectorDBSettings.ts b/front_end/panels/ai_chat/ui/settings/advanced/VectorDBSettings.ts index 104a6c28a6..7dd9b743d1 100644 --- a/front_end/panels/ai_chat/ui/settings/advanced/VectorDBSettings.ts +++ b/front_end/panels/ai_chat/ui/settings/advanced/VectorDBSettings.ts @@ -19,7 +19,9 @@ import { */ export class VectorDBSettings { private container: HTMLElement; - private vectorDBEnabledCheckbox: HTMLInputElement | null = null; + private isEnabled: boolean = false; + private toggleElement: HTMLDivElement | null = null; + private configContainer: HTMLDivElement | null = null; private vectorDBEndpointInput: HTMLInputElement | null = null; private vectorDBApiKeyInput: HTMLInputElement | null = null; private milvusPasswordInput: HTMLInputElement | null = null; @@ -35,253 +37,238 @@ export class VectorDBSettings { this.container.innerHTML = ''; this.container.className = 'settings-section vector-db-section'; - // Title - const vectorDBTitle = document.createElement('h3'); - vectorDBTitle.textContent = i18nString(UIStrings.vectorDBLabel); - vectorDBTitle.classList.add('settings-subtitle'); - this.container.appendChild(vectorDBTitle); - - // Vector DB enabled checkbox - const vectorDBEnabledContainer = document.createElement('div'); - vectorDBEnabledContainer.className = 'tracing-enabled-container'; - this.container.appendChild(vectorDBEnabledContainer); - - this.vectorDBEnabledCheckbox = document.createElement('input'); - this.vectorDBEnabledCheckbox.type = 'checkbox'; - this.vectorDBEnabledCheckbox.id = 'vector-db-enabled'; - this.vectorDBEnabledCheckbox.className = 'tracing-checkbox'; - this.vectorDBEnabledCheckbox.checked = localStorage.getItem(VECTOR_DB_ENABLED_KEY) === 'true'; - vectorDBEnabledContainer.appendChild(this.vectorDBEnabledCheckbox); - - const vectorDBEnabledLabel = document.createElement('label'); - vectorDBEnabledLabel.htmlFor = 'vector-db-enabled'; - vectorDBEnabledLabel.className = 'tracing-label'; - vectorDBEnabledLabel.textContent = i18nString(UIStrings.vectorDBEnabled); - vectorDBEnabledContainer.appendChild(vectorDBEnabledLabel); - - const vectorDBEnabledHint = document.createElement('div'); - vectorDBEnabledHint.className = 'settings-hint'; - vectorDBEnabledHint.textContent = i18nString(UIStrings.vectorDBEnabledHint); - this.container.appendChild(vectorDBEnabledHint); - - // Vector DB configuration container (shown when enabled) - const vectorDBConfigContainer = document.createElement('div'); - vectorDBConfigContainer.className = 'tracing-config-container'; - vectorDBConfigContainer.style.display = this.vectorDBEnabledCheckbox.checked ? 'block' : 'none'; - this.container.appendChild(vectorDBConfigContainer); - - // Vector DB Endpoint - const vectorDBEndpointDiv = document.createElement('div'); - vectorDBEndpointDiv.classList.add('settings-field'); - vectorDBConfigContainer.appendChild(vectorDBEndpointDiv); - - const vectorDBEndpointLabel = document.createElement('label'); - vectorDBEndpointLabel.textContent = i18nString(UIStrings.vectorDBEndpoint); - vectorDBEndpointLabel.classList.add('settings-label'); - vectorDBEndpointDiv.appendChild(vectorDBEndpointLabel); - - const vectorDBEndpointHint = document.createElement('div'); - vectorDBEndpointHint.textContent = i18nString(UIStrings.vectorDBEndpointHint); - vectorDBEndpointHint.classList.add('settings-hint'); - vectorDBEndpointDiv.appendChild(vectorDBEndpointHint); + this.isEnabled = localStorage.getItem(VECTOR_DB_ENABLED_KEY) === 'true'; + + // Header with toggle + const headerContainer = document.createElement('div'); + headerContainer.className = 'settings-toggle-container'; + this.container.appendChild(headerContainer); + + const infoContainer = document.createElement('div'); + infoContainer.className = 'settings-toggle-info'; + headerContainer.appendChild(infoContainer); + + const title = document.createElement('div'); + title.className = 'settings-toggle-title'; + title.textContent = i18nString(UIStrings.vectorDBLabel); + infoContainer.appendChild(title); + + const description = document.createElement('div'); + description.className = 'settings-toggle-description'; + description.textContent = i18nString(UIStrings.vectorDBEnabledHint); + infoContainer.appendChild(description); + + // Toggle switch + this.toggleElement = document.createElement('div'); + this.toggleElement.className = 'settings-toggle'; + if (this.isEnabled) { + this.toggleElement.classList.add('active'); + } + this.toggleElement.addEventListener('click', () => this.handleToggle()); + headerContainer.appendChild(this.toggleElement); + + // Configuration container (shown when enabled) + this.configContainer = document.createElement('div'); + this.configContainer.className = 'vector-db-config-container'; + this.configContainer.style.display = this.isEnabled ? 'flex' : 'none'; + this.configContainer.style.flexDirection = 'column'; + this.configContainer.style.gap = '20px'; + this.configContainer.style.marginTop = '20px'; + this.container.appendChild(this.configContainer); + + // Milvus Endpoint + const endpointGroup = this.createFieldGroup( + i18nString(UIStrings.vectorDBEndpoint), + i18nString(UIStrings.vectorDBEndpointHint) + ); + this.configContainer.appendChild(endpointGroup.container); this.vectorDBEndpointInput = document.createElement('input'); this.vectorDBEndpointInput.classList.add('settings-input'); this.vectorDBEndpointInput.type = 'text'; - this.vectorDBEndpointInput.placeholder = 'http://localhost:19530'; + this.vectorDBEndpointInput.placeholder = 'Enter URL'; this.vectorDBEndpointInput.value = localStorage.getItem(MILVUS_ENDPOINT_KEY) || ''; - vectorDBEndpointDiv.appendChild(this.vectorDBEndpointInput); + this.vectorDBEndpointInput.addEventListener('input', () => this.saveSettings()); + endpointGroup.container.appendChild(this.vectorDBEndpointInput); - // Vector DB API Key (Username) - const vectorDBApiKeyDiv = document.createElement('div'); - vectorDBApiKeyDiv.classList.add('settings-field'); - vectorDBConfigContainer.appendChild(vectorDBApiKeyDiv); - - const vectorDBApiKeyLabel = document.createElement('label'); - vectorDBApiKeyLabel.textContent = i18nString(UIStrings.vectorDBApiKey); - vectorDBApiKeyLabel.classList.add('settings-label'); - vectorDBApiKeyDiv.appendChild(vectorDBApiKeyLabel); - - const vectorDBApiKeyHint = document.createElement('div'); - vectorDBApiKeyHint.textContent = i18nString(UIStrings.vectorDBApiKeyHint); - vectorDBApiKeyHint.classList.add('settings-hint'); - vectorDBApiKeyDiv.appendChild(vectorDBApiKeyHint); + // Milvus Username + const usernameGroup = this.createFieldGroup( + i18nString(UIStrings.vectorDBApiKey), + i18nString(UIStrings.vectorDBApiKeyHint) + ); + this.configContainer.appendChild(usernameGroup.container); this.vectorDBApiKeyInput = document.createElement('input'); this.vectorDBApiKeyInput.classList.add('settings-input'); this.vectorDBApiKeyInput.type = 'text'; - this.vectorDBApiKeyInput.placeholder = 'root'; + this.vectorDBApiKeyInput.placeholder = 'Enter username'; this.vectorDBApiKeyInput.value = localStorage.getItem(MILVUS_USERNAME_KEY) || 'root'; - vectorDBApiKeyDiv.appendChild(this.vectorDBApiKeyInput); - - // Milvus Password - const milvusPasswordDiv = document.createElement('div'); - milvusPasswordDiv.classList.add('settings-field'); - vectorDBConfigContainer.appendChild(milvusPasswordDiv); + this.vectorDBApiKeyInput.addEventListener('input', () => this.saveSettings()); + usernameGroup.container.appendChild(this.vectorDBApiKeyInput); - const milvusPasswordLabel = document.createElement('label'); - milvusPasswordLabel.textContent = i18nString(UIStrings.milvusPassword); - milvusPasswordLabel.classList.add('settings-label'); - milvusPasswordDiv.appendChild(milvusPasswordLabel); - - const milvusPasswordHint = document.createElement('div'); - milvusPasswordHint.textContent = i18nString(UIStrings.milvusPasswordHint); - milvusPasswordHint.classList.add('settings-hint'); - milvusPasswordDiv.appendChild(milvusPasswordHint); + // Milvus Password / API Token + const passwordGroup = this.createFieldGroup( + i18nString(UIStrings.milvusPassword), + i18nString(UIStrings.milvusPasswordHint) + ); + this.configContainer.appendChild(passwordGroup.container); this.milvusPasswordInput = document.createElement('input'); this.milvusPasswordInput.classList.add('settings-input'); this.milvusPasswordInput.type = 'password'; - this.milvusPasswordInput.placeholder = 'Milvus (self-hosted) or API token (cloud)'; - this.milvusPasswordInput.value = localStorage.getItem(MILVUS_PASSWORD_KEY) || 'Milvus'; - milvusPasswordDiv.appendChild(this.milvusPasswordInput); + this.milvusPasswordInput.placeholder = 'Enter password / api token'; + this.milvusPasswordInput.value = localStorage.getItem(MILVUS_PASSWORD_KEY) || ''; + this.milvusPasswordInput.addEventListener('input', () => this.saveSettings()); + passwordGroup.container.appendChild(this.milvusPasswordInput); // OpenAI API Key for embeddings - const milvusOpenAIDiv = document.createElement('div'); - milvusOpenAIDiv.classList.add('settings-field'); - vectorDBConfigContainer.appendChild(milvusOpenAIDiv); - - const milvusOpenAILabel = document.createElement('label'); - milvusOpenAILabel.textContent = i18nString(UIStrings.milvusOpenAIKey); - milvusOpenAILabel.classList.add('settings-label'); - milvusOpenAIDiv.appendChild(milvusOpenAILabel); - - const milvusOpenAIHint = document.createElement('div'); - milvusOpenAIHint.textContent = i18nString(UIStrings.milvusOpenAIKeyHint); - milvusOpenAIHint.classList.add('settings-hint'); - milvusOpenAIDiv.appendChild(milvusOpenAIHint); + const openaiGroup = this.createFieldGroup( + i18nString(UIStrings.milvusOpenAIKey), + i18nString(UIStrings.milvusOpenAIKeyHint) + ); + this.configContainer.appendChild(openaiGroup.container); this.milvusOpenAIInput = document.createElement('input'); this.milvusOpenAIInput.classList.add('settings-input'); this.milvusOpenAIInput.type = 'password'; - this.milvusOpenAIInput.placeholder = 'sk-...'; + this.milvusOpenAIInput.placeholder = 'Enter api key'; this.milvusOpenAIInput.value = localStorage.getItem(MILVUS_OPENAI_KEY) || ''; - milvusOpenAIDiv.appendChild(this.milvusOpenAIInput); + this.milvusOpenAIInput.addEventListener('input', () => this.saveSettings()); + openaiGroup.container.appendChild(this.milvusOpenAIInput); - // Vector DB Collection Name - const vectorDBCollectionDiv = document.createElement('div'); - vectorDBCollectionDiv.classList.add('settings-field'); - vectorDBConfigContainer.appendChild(vectorDBCollectionDiv); - - const vectorDBCollectionLabel = document.createElement('label'); - vectorDBCollectionLabel.textContent = i18nString(UIStrings.vectorDBCollection); - vectorDBCollectionLabel.classList.add('settings-label'); - vectorDBCollectionDiv.appendChild(vectorDBCollectionLabel); - - const vectorDBCollectionHint = document.createElement('div'); - vectorDBCollectionHint.textContent = i18nString(UIStrings.vectorDBCollectionHint); - vectorDBCollectionHint.classList.add('settings-hint'); - vectorDBCollectionDiv.appendChild(vectorDBCollectionHint); + // Collection Name + const collectionGroup = this.createFieldGroup( + i18nString(UIStrings.vectorDBCollection), + i18nString(UIStrings.vectorDBCollectionHint) + ); + this.configContainer.appendChild(collectionGroup.container); this.vectorDBCollectionInput = document.createElement('input'); this.vectorDBCollectionInput.classList.add('settings-input'); this.vectorDBCollectionInput.type = 'text'; - this.vectorDBCollectionInput.placeholder = 'bookmarks'; + this.vectorDBCollectionInput.placeholder = 'Enter collection name'; this.vectorDBCollectionInput.value = localStorage.getItem(MILVUS_COLLECTION_KEY) || 'bookmarks'; - vectorDBCollectionDiv.appendChild(this.vectorDBCollectionInput); - - // Test Vector DB Connection Button - const vectorDBTestDiv = document.createElement('div'); - vectorDBTestDiv.classList.add('settings-field', 'test-connection-field'); - vectorDBConfigContainer.appendChild(vectorDBTestDiv); - - const vectorDBTestButton = document.createElement('button'); - vectorDBTestButton.classList.add('settings-button', 'test-button'); - vectorDBTestButton.setAttribute('type', 'button'); - vectorDBTestButton.textContent = i18nString(UIStrings.testVectorDBConnection); - vectorDBTestDiv.appendChild(vectorDBTestButton); - - const vectorDBTestStatus = document.createElement('div'); - vectorDBTestStatus.classList.add('settings-status'); - vectorDBTestStatus.style.display = 'none'; - vectorDBTestDiv.appendChild(vectorDBTestStatus); - - // Toggle vector DB config visibility - this.vectorDBEnabledCheckbox.addEventListener('change', () => { - vectorDBConfigContainer.style.display = this.vectorDBEnabledCheckbox!.checked ? 'block' : 'none'; - localStorage.setItem(VECTOR_DB_ENABLED_KEY, this.vectorDBEnabledCheckbox!.checked.toString()); - }); - - // Save Vector DB settings on input change - const saveVectorDBSettings = () => { - if (!this.vectorDBEnabledCheckbox || !this.vectorDBEndpointInput || !this.vectorDBApiKeyInput || - !this.milvusPasswordInput || !this.vectorDBCollectionInput || !this.milvusOpenAIInput) { - return; - } + this.vectorDBCollectionInput.addEventListener('input', () => this.saveSettings()); + collectionGroup.container.appendChild(this.vectorDBCollectionInput); + + // Footer with Test Connection button + const footer = document.createElement('div'); + footer.className = 'settings-section-footer'; + this.configContainer.appendChild(footer); + + const testButton = document.createElement('button'); + testButton.className = 'settings-button primary'; + testButton.textContent = 'Test Connection'; + testButton.addEventListener('click', () => this.testConnection(testButton)); + footer.appendChild(testButton); + } - localStorage.setItem(VECTOR_DB_ENABLED_KEY, this.vectorDBEnabledCheckbox.checked.toString()); - localStorage.setItem(MILVUS_ENDPOINT_KEY, this.vectorDBEndpointInput.value); - localStorage.setItem(MILVUS_USERNAME_KEY, this.vectorDBApiKeyInput.value); - localStorage.setItem(MILVUS_PASSWORD_KEY, this.milvusPasswordInput.value); - localStorage.setItem(MILVUS_COLLECTION_KEY, this.vectorDBCollectionInput.value); - localStorage.setItem(MILVUS_OPENAI_KEY, this.milvusOpenAIInput.value); - }; - - this.vectorDBEndpointInput.addEventListener('input', saveVectorDBSettings); - this.vectorDBApiKeyInput.addEventListener('input', saveVectorDBSettings); - this.milvusPasswordInput.addEventListener('input', saveVectorDBSettings); - this.vectorDBCollectionInput.addEventListener('input', saveVectorDBSettings); - this.milvusOpenAIInput.addEventListener('input', saveVectorDBSettings); - - // Test Vector DB connection - vectorDBTestButton.addEventListener('click', async () => { - if (!this.vectorDBEndpointInput || !this.vectorDBApiKeyInput || - !this.milvusPasswordInput || !this.vectorDBCollectionInput || !this.milvusOpenAIInput) { - return; - } + private createFieldGroup(label: string, hint: string): { container: HTMLDivElement } { + const container = document.createElement('div'); + container.style.display = 'flex'; + container.style.flexDirection = 'column'; + container.style.gap = '4px'; - const endpoint = this.vectorDBEndpointInput.value.trim(); + const labelEl = document.createElement('div'); + labelEl.className = 'settings-label'; + labelEl.textContent = label; + container.appendChild(labelEl); - if (!endpoint) { - vectorDBTestStatus.textContent = 'Please enter an endpoint URL'; - vectorDBTestStatus.style.color = 'var(--color-accent-red)'; - vectorDBTestStatus.style.display = 'block'; - setTimeout(() => { - vectorDBTestStatus.style.display = 'none'; - }, 3000); - return; - } + const hintEl = document.createElement('div'); + hintEl.className = 'settings-hint'; + hintEl.textContent = hint; + container.appendChild(hintEl); + + return { container }; + } + + private handleToggle(): void { + this.isEnabled = !this.isEnabled; + + if (this.toggleElement) { + this.toggleElement.classList.toggle('active', this.isEnabled); + } + + if (this.configContainer) { + this.configContainer.style.display = this.isEnabled ? 'flex' : 'none'; + } + + localStorage.setItem(VECTOR_DB_ENABLED_KEY, this.isEnabled.toString()); + } + + private saveSettings(): void { + if (!this.vectorDBEndpointInput || !this.vectorDBApiKeyInput || + !this.milvusPasswordInput || !this.vectorDBCollectionInput || !this.milvusOpenAIInput) { + return; + } + + localStorage.setItem(VECTOR_DB_ENABLED_KEY, this.isEnabled.toString()); + localStorage.setItem(MILVUS_ENDPOINT_KEY, this.vectorDBEndpointInput.value); + localStorage.setItem(MILVUS_USERNAME_KEY, this.vectorDBApiKeyInput.value); + localStorage.setItem(MILVUS_PASSWORD_KEY, this.milvusPasswordInput.value); + localStorage.setItem(MILVUS_COLLECTION_KEY, this.vectorDBCollectionInput.value); + localStorage.setItem(MILVUS_OPENAI_KEY, this.milvusOpenAIInput.value); + } - vectorDBTestButton.disabled = true; - vectorDBTestStatus.textContent = i18nString(UIStrings.testingVectorDBConnection); - vectorDBTestStatus.style.color = 'var(--color-text-secondary)'; - vectorDBTestStatus.style.display = 'block'; - - try { - // Import and test the Vector DB client - const { VectorDBClient } = await import('../../../tools/VectorDBClient.js'); - const vectorClient = new VectorDBClient({ - endpoint, - username: this.vectorDBApiKeyInput.value || 'root', - password: this.milvusPasswordInput.value || 'Milvus', - collection: this.vectorDBCollectionInput.value || 'bookmarks', - openaiApiKey: this.milvusOpenAIInput.value || undefined - }); - - const testResult = await vectorClient.testConnection(); - - if (testResult.success) { - vectorDBTestStatus.textContent = i18nString(UIStrings.vectorDBConnectionSuccess); - vectorDBTestStatus.style.color = 'var(--color-accent-green)'; - } else { - vectorDBTestStatus.textContent = `${i18nString(UIStrings.vectorDBConnectionFailed)}: ${testResult.error}`; - vectorDBTestStatus.style.color = 'var(--color-accent-red)'; + private async testConnection(testButton: HTMLButtonElement): Promise { + if (!this.vectorDBEndpointInput || !this.vectorDBApiKeyInput || + !this.milvusPasswordInput || !this.vectorDBCollectionInput || !this.milvusOpenAIInput) { + return; + } + + const endpoint = this.vectorDBEndpointInput.value.trim(); + + if (!endpoint) { + testButton.textContent = 'Enter endpoint'; + setTimeout(() => { + testButton.textContent = 'Test Connection'; + }, 2000); + return; + } + + testButton.disabled = true; + testButton.textContent = 'Testing...'; + + try { + // Import and test the Vector DB client + const { VectorDBClient } = await import('../../../tools/VectorDBClient.js'); + const vectorClient = new VectorDBClient({ + endpoint, + username: this.vectorDBApiKeyInput.value || 'root', + password: this.milvusPasswordInput.value || 'Milvus', + collection: this.vectorDBCollectionInput.value || 'bookmarks', + openaiApiKey: this.milvusOpenAIInput.value || undefined + }); + + const testResult = await vectorClient.testConnection(); + + if (testResult.success) { + testButton.textContent = 'Connected!'; + // Enable toggle if not already + if (!this.isEnabled) { + this.isEnabled = true; + if (this.toggleElement) { + this.toggleElement.classList.add('active'); + } + localStorage.setItem(VECTOR_DB_ENABLED_KEY, 'true'); } - } catch (error: any) { - vectorDBTestStatus.textContent = `${i18nString(UIStrings.vectorDBConnectionFailed)}: ${error.message}`; - vectorDBTestStatus.style.color = 'var(--color-accent-red)'; - } finally { - vectorDBTestButton.disabled = false; - setTimeout(() => { - vectorDBTestStatus.style.display = 'none'; - }, 5000); + } else { + testButton.textContent = 'Failed'; + console.error('Vector DB test failed:', testResult.error); } - }); + } catch (error: any) { + testButton.textContent = 'Failed'; + console.error('Vector DB test error:', error.message); + } finally { + setTimeout(() => { + testButton.disabled = false; + testButton.textContent = 'Test Connection'; + }, 2000); + } } save(): void { - // Vector DB settings are auto-saved on input change - // No need to save on dialog save + this.saveSettings(); } cleanup(): void {

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 ZDsw2;`1*ge)FgzEPyfoAoiBFRXH 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