Name Description Size Coverage
AgentUI.sys.mjs @typedef {object} AgentUpdateData @property {string} messageId - Id of the chat message carrying the agent card @property {string} toolCallId - Correlation id stamped on the card's toolUIData @property {string} updateType - One of AGENT_UPDATE_TYPES @property {object} updateData - Payload from the card's action event @typedef {object} AgentHandlerContext @property {object} message - The chat message the card is attached to @property {object} updateData - The card action payload @property {object} conversation - The active ChatConversation @property {ChromeWindow} window - The browser window @typedef {object} AgentCommandContext @property {string} [text] - The user's prompt text accompanying the command @property {string} [contextPageUrl] - Current page URL to seed the agent with @property {object} conversation - The active ChatConversation @property {ChromeWindow} [window] - The browser window 20762 -
AIWindow.sys.mjs @import {SmartbarInput} from "chrome://browser/content/urlbar/SmartbarInput.mjs" 40330 -
AIWindowAccountAuth.sys.mjs 2635 -
AIWindowConstants.sys.mjs The current SQLite database schema version 790 -
AIWindowMenu.sys.mjs Adds the AI Window menuitems to the app menu 3580 -
AIWindowTabStatesManager.sys.mjs At which count the empty close prompt should be shown. If this value needs to be updated it should also be updated in the trigger string in FeatureCalloutMessages.sys.mjs 31040 -
AIWindowTelemetry.sys.mjs AIWindow telemetry calls 1225 -
AIWindowUI.sys.mjs @typedef {import("../components/ai-window/ai-window.mjs").SmartbarInputState} SmartbarInputState 23638 -
AutoTabGrouping.sys.mjs Median and mean of a list of group sizes (tabs per group), rounded to integers for the telemetry events. @param {number[]} sizes @returns {{median: number, mean: number}} 19412 -
AutoTabGroupingSuggestions.sys.mjs The suggestion engine for the Smart Window "Group my tabs" feature: the only code that talks to the on-device clustering model. Given a window it picks candidate tabs, clusters and labels them, and turns each cluster into the display data the panel shows: a name, a color, and one tile per tab. Kept free of any DOM so the pure parts stay unit-testable and every model call is guarded against throwing. 7776 -
ChatConversation.sys.mjs @typedef {import("moz-src:///browser/components/aiwindow/models/SearchBrowsingHistory.sys.mjs").HistoryRow} HistoryRow 37174 -
ChatEnums.sys.mjs @typedef ConversationStatus @property {number} ACTIVE - An active conversation @property {number} ARCHIVE - An archived conversation @property {number} DELETED - A deleted conversation 1330 -
ChatMarkdownParser.mjs Markdown parser for Smart Window chat messages. 1760 100 %
ChatMessage.sys.mjs @typedef {import("./ChatConversation.sys.mjs").PooledHistoryResult} PooledHistoryResult 11781 -
ChatMigrations.sys.mjs Please refer to sql.mjs for details on creating new migrations. - List each change here and what it's for. @param {OpenedConnection} conn - The SQLite connection to use for the migration @param {number} version - The version number of the current schema 5886 -
ChatSql.sys.mjs 17617 -
ChatStore.sys.mjs Simple interface to store and retrieve chat conversations and messages. @todo Bug 2005409 Move this documentation to Firefox source docs See: https://docs.google.com/document/d/1VlwmGbMhPIe-tmeKWinHuPh50VC9QrWEeQQ5V-UvEso/edit?tab=t.klqqibndv3zk @example let { ChatStore, ChatConversation, ChatMessage, MESSAGE_ROLE } = ChromeUtils.importESModule("resource:///modules/aiwindow/ui/modules/ChatStore.sys.mjs"); const chatStore = ChatStore; const conversation = new ChatConversation({ title: "title", description: "description", pageUrl: new URL("https://mozilla.com/"), pageMeta: { one: 1, two: 2 }, }); const msg1 = new ChatMessage({ ordinal: 0, role: MESSAGE_ROLE.USER, modelId: "test", params: { one: "one" }, usage: { two: "two", content: "some content" }, }); const msg2 = new ChatMessage({ ordinal: 1, role: MESSAGE_ROLE.ASSISTANT, modelId: "test", params: { one: "one" }, usage: { two: "two", content: "some content 2" }, }); conversation.messages = [msg1, msg2]; await chatStore.updateConversation(conversation); // Or findConversationsByDate, findConversationsByURL. const foundConversation = await chatStore.findConversationById(conversation.id); @typedef {object} ChatStore @property {*} x ? 42973 -
ChatUtils.sys.mjs @typedef {import("./ChatConversation.sys.mjs").PooledHistoryResult} PooledHistoryResult 7372 -
ClientErrorTelemetry.mjs Shared vocabulary and helpers for the smart_window.client_error event. The event is recorded in the parent process by SmartWindowTelemetry.recordClientError(), but the Smart Window UI that reports failures runs in two documents: the chrome document, which can call Glean directly, and the about:aichatcontent document, which lives in a content process and has to relay through AIChatContentChild/Parent. Keeping the key sets, the field extraction and the message normalization here means both sides describe a failure the same way, whichever route it takes. 8152 89 %
FeedbackModal.sys.mjs @param {MozBrowser} browser @param {string} type - "thumbs-up" or "thumbs-down". @param {object} metadata - Chat session data to include in telemetry. 2556 -
SmartFormFillController.sys.mjs @typedef {import("moz-src:///browser/components/aiwindow/models/Tools.sys.mjs").TabInfo} TabInfo 18453 -
SmartFormFillDocument.sys.mjs @typedef {{ action: string, autocomplete: string, ownerDocument: Document, rootElement: HTMLElement, elements: Array<HTMLElement>, }} FormLike 19993 -
SmartFormFillUtils.sys.mjs Utility methods for finding nearby text around form controls. 4487 -
SmartWindowTelemetry.sys.mjs This singleton is for telemetry events that benefit from shared state management. Simple events to be handled with inline Glean calls 6694 -
TabManagementService.sys.mjs Service for managing browser tabs from AI Window UI components. This service closes tabs using gBrowser.removeTab(), allowing Firefox's native SessionStore machinery to keep the actual closed-tab restore state. The service only stores lightweight operation metadata so the AI Window can target a specific close operation when the user clicks "Undo". 20280 -
ToolActionLog.sys.mjs A localized label shown on an action log entry @typedef {object} ActionLogLabel @property {string} l10nId - Fluent message id for the label text @property {object} [l10nArgs] - optional Fluent variables (e.g. counts) 6471 -
ToolUI.sys.mjs @typedef {object} TabSelectionData @property {string} linkedPanel - ID of the linked panel (e.g., "panel-3-1") @property {string} url - URL of the tab @property {string} title - Display title of the tab @property {string} [iconSrc] - URL for the tab's favicon (optional) @property {boolean} [checked] - Whether the tab is selected in UI (optional) 30061 -
ToolUITelemetry.sys.mjs ToolUI telemetry calls 4761 -