SYMBOL INDEX (4919 symbols across 389 files) FILE: app/chrome-extension/common/agent-models.ts type ModelDefinition (line 14) | interface ModelDefinition { type AgentCliType (line 23) | type AgentCliType = 'claude' | 'codex' | 'cursor' | 'qwen' | 'glm'; constant CLAUDE_MODELS (line 29) | const CLAUDE_MODELS: ModelDefinition[] = [ constant CLAUDE_DEFAULT_MODEL (line 50) | const CLAUDE_DEFAULT_MODEL = 'claude-sonnet-4-5-20250929'; constant CODEX_STANDARD_EFFORTS (line 57) | const CODEX_STANDARD_EFFORTS: readonly CodexReasoningEffort[] = ['low', ... constant CODEX_EXTENDED_EFFORTS (line 59) | const CODEX_EXTENDED_EFFORTS: readonly CodexReasoningEffort[] = ['low', ... constant CODEX_MODELS (line 61) | const CODEX_MODELS: ModelDefinition[] = [ constant CODEX_DEFAULT_MODEL (line 94) | const CODEX_DEFAULT_MODEL = 'gpt-5.1'; constant CODEX_ALIAS_MAP (line 97) | const CODEX_ALIAS_MAP: Record = { constant CODEX_KNOWN_IDS (line 104) | const CODEX_KNOWN_IDS = new Set(CODEX_MODELS.map((model) => model.id)); function normalizeCodexModelId (line 109) | function normalizeCodexModelId(model?: string | null): string { function getCodexReasoningEfforts (line 140) | function getCodexReasoningEfforts(modelId?: string | null): readonly Cod... function supportsXhighEffort (line 149) | function supportsXhighEffort(modelId?: string | null): boolean { constant CURSOR_MODELS (line 158) | const CURSOR_MODELS: ModelDefinition[] = [ constant CURSOR_DEFAULT_MODEL (line 177) | const CURSOR_DEFAULT_MODEL = 'auto'; constant QWEN_MODELS (line 183) | const QWEN_MODELS: ModelDefinition[] = [ constant QWEN_DEFAULT_MODEL (line 201) | const QWEN_DEFAULT_MODEL = 'qwen3-coder-plus'; constant GLM_MODELS (line 207) | const GLM_MODELS: ModelDefinition[] = [ constant GLM_DEFAULT_MODEL (line 215) | const GLM_DEFAULT_MODEL = 'glm-4.6'; constant CLI_MODEL_DEFINITIONS (line 221) | const CLI_MODEL_DEFINITIONS: Record = { constant CLI_DEFAULT_MODELS (line 229) | const CLI_DEFAULT_MODELS: Record = { function getModelsForCli (line 244) | function getModelsForCli(cli: string | null | undefined): ModelDefinitio... function getDefaultModelForCli (line 253) | function getDefaultModelForCli(cli: string | null | undefined): string { function getModelDisplayName (line 262) | function getModelDisplayName( FILE: app/chrome-extension/common/constants.ts constant NATIVE_HOST (line 7) | const NATIVE_HOST = { constant ICONS (line 13) | const ICONS = { constant TIMEOUTS (line 18) | const TIMEOUTS = { constant LIMITS (line 28) | const LIMITS = { constant ERROR_MESSAGES (line 38) | const ERROR_MESSAGES = { constant SUCCESS_MESSAGES (line 52) | const SUCCESS_MESSAGES = { constant LINKS (line 60) | const LINKS = { constant FILE_TYPES (line 65) | const FILE_TYPES = { constant NETWORK_FILTERS (line 84) | const NETWORK_FILTERS = { constant SEMANTIC_CONFIG (line 212) | const SEMANTIC_CONFIG = { constant STORAGE_KEYS (line 221) | const STORAGE_KEYS = { constant NOTIFICATIONS (line 241) | const NOTIFICATIONS = { type ExecutionWorld (line 246) | enum ExecutionWorld { FILE: app/chrome-extension/common/element-marker-types.ts type UrlMatchType (line 3) | type UrlMatchType = 'exact' | 'prefix' | 'host'; type ElementMarker (line 5) | interface ElementMarker { type UpsertMarkerRequest (line 25) | interface UpsertMarkerRequest { type MarkerValidationAction (line 37) | enum MarkerValidationAction { type MarkerValidationRequest (line 47) | interface MarkerValidationRequest { type MarkerValidationResponse (line 72) | interface MarkerValidationResponse { type MarkerQuery (line 81) | interface MarkerQuery { FILE: app/chrome-extension/common/message-types.ts type MessageTarget (line 9) | enum MessageTarget { constant BACKGROUND_MESSAGE_TYPES (line 16) | const BACKGROUND_MESSAGE_TYPES = { constant OFFSCREEN_MESSAGE_TYPES (line 94) | const OFFSCREEN_MESSAGE_TYPES = { constant CONTENT_MESSAGE_TYPES (line 106) | const CONTENT_MESSAGE_TYPES = { constant TOOL_MESSAGE_TYPES (line 121) | const TOOL_MESSAGE_TYPES = { type BackgroundMessageType (line 182) | type BackgroundMessageType = type OffscreenMessageType (line 184) | type OffscreenMessageType = type ContentMessageType (line 186) | type ContentMessageType = (typeof CONTENT_MESSAGE_TYPES)[keyof typeof CO... type ToolMessageType (line 187) | type ToolMessageType = (typeof TOOL_MESSAGE_TYPES)[keyof typeof TOOL_MES... type SendMessageType (line 190) | enum SendMessageType { type QuickPanelAIContext (line 230) | interface QuickPanelAIContext { type QuickPanelSendToAIPayload (line 245) | interface QuickPanelSendToAIPayload { type QuickPanelSendToAIResponse (line 255) | type QuickPanelSendToAIResponse = type QuickPanelSendToAIMessage (line 262) | interface QuickPanelSendToAIMessage { type QuickPanelCancelAIPayload (line 270) | interface QuickPanelCancelAIPayload { type QuickPanelCancelAIResponse (line 283) | type QuickPanelCancelAIResponse = { success: true } | { success: false; ... type QuickPanelCancelAIMessage (line 288) | interface QuickPanelCancelAIMessage { type QuickPanelAIEventMessage (line 297) | interface QuickPanelAIEventMessage { type QuickPanelTabsQueryPayload (line 311) | interface QuickPanelTabsQueryPayload { type QuickPanelTabSummary (line 322) | interface QuickPanelTabSummary { type QuickPanelTabsQueryResponse (line 339) | type QuickPanelTabsQueryResponse = type QuickPanelTabsQueryMessage (line 351) | interface QuickPanelTabsQueryMessage { type QuickPanelActivateTabPayload (line 359) | interface QuickPanelActivateTabPayload { type QuickPanelActivateTabResponse (line 367) | type QuickPanelActivateTabResponse = { success: true } | { success: fals... type QuickPanelActivateTabMessage (line 372) | interface QuickPanelActivateTabMessage { type QuickPanelCloseTabPayload (line 380) | interface QuickPanelCloseTabPayload { type QuickPanelCloseTabResponse (line 387) | type QuickPanelCloseTabResponse = { success: true } | { success: false; ... type QuickPanelCloseTabMessage (line 392) | interface QuickPanelCloseTabMessage { FILE: app/chrome-extension/common/node-types.ts constant NODE_TYPES (line 6) | const NODE_TYPES = { type NodeTypeConst (line 14) | type NodeTypeConst = (typeof NODE_TYPES)[keyof typeof NODE_TYPES]; FILE: app/chrome-extension/common/rr-v3-keepalive-protocol.ts constant RR_V3_KEEPALIVE_PORT_NAME (line 7) | const RR_V3_KEEPALIVE_PORT_NAME = 'rr_v3_keepalive' as const; type KeepaliveMessageType (line 10) | type KeepaliveMessageType = type KeepaliveMessage (line 17) | interface KeepaliveMessage { constant DEFAULT_KEEPALIVE_PING_INTERVAL_MS (line 23) | const DEFAULT_KEEPALIVE_PING_INTERVAL_MS = 20_000; constant MAX_KEEPALIVE_PING_INTERVAL_MS (line 26) | const MAX_KEEPALIVE_PING_INTERVAL_MS = 25_000; FILE: app/chrome-extension/common/step-types.ts type StepTypeConst (line 3) | type StepTypeConst = FILE: app/chrome-extension/common/tool-handler.ts type ToolResult (line 3) | interface ToolResult extends CallToolResult { type ToolExecutor (line 8) | interface ToolExecutor { FILE: app/chrome-extension/common/web-editor-types.ts type WebEditorState (line 15) | interface WebEditorState { constant WEB_EDITOR_V2_ACTIONS (line 36) | const WEB_EDITOR_V2_ACTIONS = { constant WEB_EDITOR_V1_ACTIONS (line 57) | const WEB_EDITOR_V1_ACTIONS = { type WebEditorV2Action (line 65) | type WebEditorV2Action = (typeof WEB_EDITOR_V2_ACTIONS)[keyof typeof WEB... type WebEditorV1Action (line 66) | type WebEditorV1Action = (typeof WEB_EDITOR_V1_ACTIONS)[keyof typeof WEB... type WebEditorVersion (line 69) | type WebEditorVersion = 1 | 2; type WebEditorV2PingRequest (line 72) | interface WebEditorV2PingRequest { type WebEditorV2PingResponse (line 77) | interface WebEditorV2PingResponse { type WebEditorV2ToggleRequest (line 84) | interface WebEditorV2ToggleRequest { type WebEditorV2ToggleResponse (line 89) | interface WebEditorV2ToggleResponse { type WebEditorV2StartRequest (line 94) | interface WebEditorV2StartRequest { type WebEditorV2StartResponse (line 99) | interface WebEditorV2StartResponse { type WebEditorV2StopRequest (line 104) | interface WebEditorV2StopRequest { type WebEditorV2StopResponse (line 109) | interface WebEditorV2StopResponse { type WebEditorV2Request (line 114) | type WebEditorV2Request = type WebEditorV2Response (line 120) | type WebEditorV2Response = type DebugSource (line 134) | interface DebugSource { type ElementLocator (line 153) | interface ElementLocator { type TransactionType (line 173) | type TransactionType = 'style' | 'text' | 'class' | 'move' | 'structure'; type TransactionSnapshot (line 179) | interface TransactionSnapshot { type MoveOperationData (line 196) | interface MoveOperationData { type MoveTransactionData (line 211) | interface MoveTransactionData { type StructureOperationData (line 222) | interface StructureOperationData { type Transaction (line 245) | interface Transaction { type WebEditorElementKey (line 277) | type WebEditorElementKey = string; type NetEffectPayload (line 283) | interface NetEffectPayload { type ElementChangeType (line 310) | type ElementChangeType = 'style' | 'text' | 'class' | 'mixed'; type ElementChangeSummary (line 316) | interface ElementChangeSummary { type WebEditorTxChangeAction (line 363) | type WebEditorTxChangeAction = 'push' | 'merge' | 'undo' | 'redo' | 'cle... type WebEditorTxChangedPayload (line 369) | interface WebEditorTxChangedPayload { type WebEditorApplyBatchPayload (line 389) | interface WebEditorApplyBatchPayload { type WebEditorHighlightElementPayload (line 403) | interface WebEditorHighlightElementPayload { type WebEditorRevertElementPayload (line 418) | interface WebEditorRevertElementPayload { type WebEditorRevertElementResponse (line 428) | interface WebEditorRevertElementResponse { type SelectedElementSummary (line 449) | interface SelectedElementSummary { type WebEditorSelectionChangedPayload (line 468) | interface WebEditorSelectionChangedPayload { type WebEditorCancelExecutionPayload (line 485) | interface WebEditorCancelExecutionPayload { type WebEditorCancelExecutionResponse (line 495) | interface WebEditorCancelExecutionResponse { type WebEditorV2Api (line 510) | interface WebEditorV2Api { type Window (line 536) | interface Window { FILE: app/chrome-extension/entrypoints/background/element-marker/element-marker-storage.ts constant DB_NAME (line 7) | const DB_NAME = 'element_marker_storage'; constant DB_VERSION (line 8) | const DB_VERSION = 1; constant STORE (line 9) | const STORE = 'markers'; function normalizeUrl (line 23) | function normalizeUrl(raw: string): { url: string; origin: string; host:... function now (line 32) | function now(): number { function listAllMarkers (line 36) | async function listAllMarkers(): Promise { function listMarkersForUrl (line 40) | async function listMarkersForUrl(url: string): Promise { function saveMarker (line 56) | async function saveMarker(req: UpsertMarkerRequest): Promise { function deleteMarker (line 93) | async function deleteMarker(id: string): Promise { FILE: app/chrome-extension/entrypoints/background/element-marker/index.ts constant CONTEXT_MENU_ID (line 19) | const CONTEXT_MENU_ID = 'element_marker_mark'; function extractToolError (line 24) | function extractToolError(result: any): string | undefined { function ensureContextMenu (line 47) | async function ensureContextMenu() { function isMarkerInjected (line 69) | async function isMarkerInjected(tabId: number): Promise { function injectMarkerHelper (line 84) | async function injectMarkerHelper(tabId: number) { function initElementMarkerListeners (line 108) | function initElementMarkerListeners() { FILE: app/chrome-extension/entrypoints/background/index.ts constant ENABLE_RR_V3 (line 22) | const ENABLE_RR_V3 = true; FILE: app/chrome-extension/entrypoints/background/keepalive-manager.ts constant LOG_PREFIX (line 16) | const LOG_PREFIX = '[KeepaliveManager]'; function getController (line 27) | function getController(): KeepaliveController { function acquireKeepalive (line 48) | function acquireKeepalive(tag: string): () => void { function isKeepaliveActive (line 69) | function isKeepaliveActive(): boolean { function getKeepaliveRefCount (line 81) | function getKeepaliveRefCount(): number { FILE: app/chrome-extension/entrypoints/background/native-host.ts constant LOG_PREFIX (line 8) | const LOG_PREFIX = '[NativeHost]'; constant HOST_NAME (line 11) | const HOST_NAME = NATIVE_HOST.NAME; constant RECONNECT_BASE_DELAY_MS (line 15) | const RECONNECT_BASE_DELAY_MS = 500; constant RECONNECT_MAX_DELAY_MS (line 16) | const RECONNECT_MAX_DELAY_MS = 60_000; constant RECONNECT_MAX_FAST_ATTEMPTS (line 17) | const RECONNECT_MAX_FAST_ATTEMPTS = 8; constant RECONNECT_COOLDOWN_DELAY_MS (line 18) | const RECONNECT_COOLDOWN_DELAY_MS = 5 * 60_000; type ServerStatus (line 33) | interface ServerStatus { function saveServerStatus (line 47) | async function saveServerStatus(status: ServerStatus): Promise { function loadServerStatus (line 58) | async function loadServerStatus(): Promise { function broadcastServerStatusChange (line 76) | function broadcastServerStatusChange(status: ServerStatus): void { function normalizePort (line 92) | function normalizePort(value: unknown): number | null { function withJitter (line 106) | function withJitter(ms: number): number { function getReconnectDelayMs (line 115) | function getReconnectDelayMs(attempt: number): number { function clearReconnectTimer (line 126) | function clearReconnectTimer(): void { function resetReconnectState (line 135) | function resetReconnectState(): void { function syncKeepaliveHold (line 146) | function syncKeepaliveHold(): void { function loadNativeAutoConnectEnabled (line 170) | async function loadNativeAutoConnectEnabled(): Promise { function setNativeAutoConnectEnabled (line 184) | async function setNativeAutoConnectEnabled(enabled: boolean): Promise { function scheduleReconnect (line 233) | function scheduleReconnect(reason: string): void { function markServerStopped (line 259) | async function markServerStopped(reason: string): Promise { function ensureNativeConnected (line 284) | async function ensureNativeConnected(trigger: string, portOverride?: unk... function connectNativeHost (line 338) | function connectNativeHost(port: number = NATIVE_HOST.DEFAULT_PORT): boo... FILE: app/chrome-extension/entrypoints/background/quick-panel/agent-handler.ts constant LOG_PREFIX (line 36) | const LOG_PREFIX = '[QuickPanelAgent]'; constant KEEPALIVE_TAG (line 37) | const KEEPALIVE_TAG = 'quick-panel-ai'; constant STORAGE_KEY_SELECTED_SESSION (line 40) | const STORAGE_KEY_SELECTED_SESSION = 'agent-selected-session-id'; constant SSE_CONNECT_TIMEOUT_MS (line 43) | const SSE_CONNECT_TIMEOUT_MS = 3000; constant REQUEST_TIMEOUT_MS (line 46) | const REQUEST_TIMEOUT_MS = 15 * 60 * 1000; constant SSE_CONNECTED (line 49) | const SSE_CONNECTED = Symbol('SSE_CONNECTED'); constant SSE_TIMEOUT (line 52) | const SSE_TIMEOUT = Symbol('SSE_TIMEOUT'); type ActiveRequest (line 66) | interface ActiveRequest { function normalizeString (line 94) | function normalizeString(value: unknown): string { function normalizePort (line 98) | function normalizePort(value: unknown): number | null { function createRequestId (line 110) | function createRequestId(): string { function sleep (line 121) | function sleep(ms: number): Promise { function isTerminalStatus (line 125) | function isTerminalStatus(status: string): boolean { function createErrorEvent (line 133) | function createErrorEvent(sessionId: string, requestId: string, error: s... function createCancelledStatusEvent (line 141) | function createCancelledStatusEvent( function forwardEventToQuickPanel (line 165) | function forwardEventToQuickPanel(request: ActiveRequest, event: Realtim... function cleanupRequest (line 203) | function cleanupRequest(requestId: string, reason: string): void { function validateSession (line 241) | async function validateSession(port: number, sessionId: string): Promise... function shouldForwardEvent (line 261) | function shouldForwardEvent(event: RealtimeEvent, requestId: string): bo... type SseSubscription (line 284) | interface SseSubscription { function createSseSubscription (line 307) | function createSseSubscription(request: ActiveRequest): SseSubscription { function postActRequest (line 417) | async function postActRequest(request: ActiveRequest): Promise { function cancelRequestOnServer (line 449) | async function cancelRequestOnServer( function isRequestStillActive (line 470) | function isRequestStillActive(request: ActiveRequest): boolean { function startRequest (line 488) | async function startRequest(request: ActiveRequest): Promise { function handleSendToAI (line 577) | async function handleSendToAI( function handleCancelAI (line 660) | async function handleCancelAI( function initQuickPanelAgentHandler (line 738) | function initQuickPanelAgentHandler(): void { FILE: app/chrome-extension/entrypoints/background/quick-panel/commands.ts constant COMMAND_KEY (line 13) | const COMMAND_KEY = 'toggle_quick_panel'; constant LOG_PREFIX (line 14) | const LOG_PREFIX = '[QuickPanelCommands]'; function getActiveTabId (line 23) | async function getActiveTabId(): Promise { function isValidTabUrl (line 36) | function isValidTabUrl(url?: string): boolean { function toggleQuickPanelInActiveTab (line 62) | async function toggleQuickPanelInActiveTab(): Promise { function initQuickPanelCommands (line 105) | function initQuickPanelCommands(): void { FILE: app/chrome-extension/entrypoints/background/quick-panel/tabs-handler.ts constant LOG_PREFIX (line 27) | const LOG_PREFIX = '[QuickPanelTabs]'; function isValidTabId (line 33) | function isValidTabId(value: unknown): value is number { function isValidWindowId (line 37) | function isValidWindowId(value: unknown): value is number { function normalizeBoolean (line 41) | function normalizeBoolean(value: unknown): boolean { function getLastAccessed (line 45) | function getLastAccessed(tab: chrome.tabs.Tab): number | undefined { function safeErrorMessage (line 51) | function safeErrorMessage(err: unknown): string { function toTabSummary (line 62) | function toTabSummary(tab: chrome.tabs.Tab): QuickPanelTabSummary | null { function handleTabsQuery (line 87) | async function handleTabsQuery( function handleActivateTab (line 138) | async function handleActivateTab( function handleCloseTab (line 171) | async function handleCloseTab( function initQuickPanelTabsHandler (line 203) | function initQuickPanelTabsHandler(): void { FILE: app/chrome-extension/entrypoints/background/record-replay-v3/bootstrap.ts type Logger (line 56) | type Logger = Pick; type V3Runtime (line 61) | interface V3Runtime { function errorMessage (line 81) | function errorMessage(err: unknown): string { function isFiniteNumber (line 88) | function isFiniteNumber(v: unknown): v is number { function tabExists (line 92) | async function tabExists(tabId: number): Promise { function createEphemeralTab (line 101) | async function createEphemeralTab(logger: Logger): Promise { function safeRemoveTab (line 110) | async function safeRemoveTab(tabId: number, logger: Logger): Promise { function getV3Runtime (line 460) | function getV3Runtime(): V3Runtime | null { function isV3Running (line 467) | function isV3Running(): boolean { FILE: app/chrome-extension/entrypoints/background/record-replay-v3/domain/debug.ts type Breakpoint (line 13) | interface Breakpoint { type DebuggerState (line 24) | interface DebuggerState { type DebuggerCommand (line 45) | type DebuggerCommand = type DebuggerCommandType (line 68) | type DebuggerCommandType = DebuggerCommand['type']; type DebuggerResponse (line 73) | type DebuggerResponse = function createInitialDebuggerState (line 80) | function createInitialDebuggerState(runId: RunId): DebuggerState { FILE: app/chrome-extension/entrypoints/background/record-replay-v3/domain/errors.ts constant RR_ERROR_CODES (line 9) | const RR_ERROR_CODES = { type RRErrorCode (line 58) | type RRErrorCode = (typeof RR_ERROR_CODES)[keyof typeof RR_ERROR_CODES]; type RRError (line 64) | interface RRError { function createRRError (line 80) | function createRRError( FILE: app/chrome-extension/entrypoints/background/record-replay-v3/domain/events.ts type Unsubscribe (line 12) | type Unsubscribe = () => void; type RunStatus (line 15) | type RunStatus = 'queued' | 'running' | 'paused' | 'succeeded' | 'failed... type EventBase (line 21) | interface EventBase { type PauseReason (line 34) | type PauseReason = type RecoveryReason (line 41) | type RecoveryReason = 'sw_restart' | 'lease_expired'; type RunEvent (line 47) | type RunEvent = type RunEventType (line 100) | type RunEventType = RunEvent['type']; type DistributiveOmit (line 105) | type DistributiveOmit = T extends unknown ? Omit & { constant RUN_SCHEMA_VERSION (line 117) | const RUN_SCHEMA_VERSION = 3 as const; type RunRecordV3 (line 123) | interface RunRecordV3 { function isTerminalStatus (line 176) | function isTerminalStatus(status: RunStatus): boolean { function isActiveStatus (line 183) | function isActiveStatus(status: RunStatus): boolean { FILE: app/chrome-extension/entrypoints/background/record-replay-v3/domain/flow.ts constant FLOW_SCHEMA_VERSION (line 12) | const FLOW_SCHEMA_VERSION = 3 as const; type EdgeV3 (line 18) | interface EdgeV3 { type NodeKind (line 30) | type NodeKind = string; type NodeV3 (line 36) | interface NodeV3 { type FlowBinding (line 57) | interface FlowBinding { type FlowV3 (line 66) | interface FlowV3 { function findNodeById (line 103) | function findNodeById(flow: FlowV3, nodeId: NodeId): NodeV3 | undefined { function findEdgesFrom (line 110) | function findEdgesFrom(flow: FlowV3, nodeId: NodeId): EdgeV3[] { function findEdgesTo (line 117) | function findEdgesTo(flow: FlowV3, nodeId: NodeId): EdgeV3[] { FILE: app/chrome-extension/entrypoints/background/record-replay-v3/domain/ids.ts type FlowId (line 7) | type FlowId = string; type NodeId (line 10) | type NodeId = string; type EdgeId (line 13) | type EdgeId = string; type RunId (line 16) | type RunId = string; type TriggerId (line 19) | type TriggerId = string; type EdgeLabel (line 22) | type EdgeLabel = string; constant EDGE_LABELS (line 25) | const EDGE_LABELS = { type EdgeLabelValue (line 37) | type EdgeLabelValue = (typeof EDGE_LABELS)[keyof typeof EDGE_LABELS]; FILE: app/chrome-extension/entrypoints/background/record-replay-v3/domain/json.ts type JsonPrimitive (line 7) | type JsonPrimitive = string | number | boolean | null; type JsonObject (line 10) | interface JsonObject { type JsonArray (line 15) | type JsonArray = JsonValue[]; type JsonValue (line 18) | type JsonValue = JsonPrimitive | JsonObject | JsonArray; type ISODateTimeString (line 21) | type ISODateTimeString = string; type UnixMillis (line 24) | type UnixMillis = number; FILE: app/chrome-extension/entrypoints/background/record-replay-v3/domain/policy.ts type TimeoutPolicy (line 14) | interface TimeoutPolicy { type RetryPolicy (line 25) | interface RetryPolicy { type OnErrorPolicy (line 44) | type OnErrorPolicy = type ArtifactPolicy (line 57) | interface ArtifactPolicy { type NodePolicy (line 72) | interface NodePolicy { type FlowPolicy (line 87) | interface FlowPolicy { function mergeNodePolicy (line 100) | function mergeNodePolicy( FILE: app/chrome-extension/entrypoints/background/record-replay-v3/domain/triggers.ts type TriggerKind (line 10) | type TriggerKind = type TriggerSpecBase (line 23) | interface TriggerSpecBase { type UrlMatchRule (line 39) | interface UrlMatchRule { type TriggerSpec (line 47) | type TriggerSpec = type TriggerFireContext (line 104) | interface TriggerFireContext { type TriggerSpecByKind (line 120) | type TriggerSpecByKind = Extract void { method isActive (line 154) | isActive(): boolean { method getRefCount (line 158) | getRefCount(): number { method releaseAll (line 162) | releaseAll(): void { method getRefsByTag (line 175) | getRefsByTag(): Record { method scheduleSync (line 185) | private scheduleSync(): void { method syncOnce (line 199) | private async syncOnce(): Promise { method teardown (line 229) | private async teardown(): Promise { method ensureConnectionListener (line 238) | private ensureConnectionListener(): void { method disconnectPort (line 296) | private disconnectPort(): void { method sendStartCommand (line 314) | private sendStartCommand(): void { method sendStopCommand (line 333) | private sendStopCommand(): void { method sendPong (line 352) | private sendPong(): void { method sendRuntimeControl (line 371) | private async sendRuntimeControl(command: KeepaliveControlCommand): Pr... class InMemoryKeepaliveController (line 407) | class InMemoryKeepaliveController implements KeepaliveController { method acquire (line 410) | acquire(tag: string): () => void { method isActive (line 428) | isActive(): boolean { method getRefCount (line 432) | getRefCount(): number { method releaseAll (line 440) | releaseAll(): void { method getRefsByTag (line 448) | getRefsByTag(): Record { FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/kernel/artifacts.ts type ScreenshotResult (line 13) | type ScreenshotResult = { ok: true; base64: string } | { ok: false; erro... type ArtifactService (line 19) | interface ArtifactService { function createNotImplementedArtifactService (line 52) | function createNotImplementedArtifactService(): ArtifactService { function createChromeArtifactService (line 71) | function createChromeArtifactService(): ArtifactService { type ArtifactPolicyExecutor (line 139) | interface ArtifactPolicyExecutor { function createArtifactPolicyExecutor (line 160) | function createArtifactPolicyExecutor(service: ArtifactService): Artifac... FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/kernel/breakpoints.ts class BreakpointManager (line 13) | class BreakpointManager { method constructor (line 17) | constructor(initialBreakpoints?: NodeId[]) { method add (line 28) | add(nodeId: NodeId): void { method remove (line 35) | remove(nodeId: NodeId): void { method setAll (line 42) | setAll(nodeIds: NodeId[]): void { method enable (line 52) | enable(nodeId: NodeId): void { method disable (line 62) | disable(nodeId: NodeId): void { method hasBreakpoint (line 72) | hasBreakpoint(nodeId: NodeId): boolean { method shouldPauseAt (line 81) | shouldPauseAt(nodeId: NodeId): boolean { method getAll (line 93) | getAll(): Breakpoint[] { method getEnabled (line 100) | getEnabled(): Breakpoint[] { method setStepMode (line 107) | setStepMode(mode: 'none' | 'stepOver'): void { method getStepMode (line 114) | getStepMode(): 'none' | 'stepOver' { method clear (line 121) | clear(): void { class BreakpointRegistry (line 131) | class BreakpointRegistry { method getOrCreate (line 137) | getOrCreate(runId: RunId, initialBreakpoints?: NodeId[]): BreakpointMa... method get (line 149) | get(runId: RunId): BreakpointManager | undefined { method remove (line 156) | remove(runId: RunId): void { method clear (line 163) | clear(): void { function getBreakpointRegistry (line 174) | function getBreakpointRegistry(): BreakpointRegistry { function resetBreakpointRegistry (line 185) | function resetBreakpointRegistry(): void { FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/kernel/debug-controller.ts type RunnerRegistry (line 25) | interface RunnerRegistry { function createRunnerRegistry (line 35) | function createRunnerRegistry(): RunnerRegistry { type DebugSession (line 48) | interface DebugSession { type DebugStateListener (line 59) | type DebugStateListener = (state: DebuggerState) => void; type DebugControllerConfig (line 64) | interface DebugControllerConfig { class DebugController (line 74) | class DebugController { method constructor (line 83) | constructor(config: DebugControllerConfig) { method start (line 92) | start(): void { method stop (line 102) | stop(): void { method handle (line 114) | async handle(cmd: DebuggerCommand): Promise { method subscribe (line 162) | subscribe(listener: DebugStateListener, filter?: { runId?: RunId }): U... method getState (line 182) | async getState(runId: RunId): Promise { method handleAttach (line 202) | private async handleAttach(runId: RunId): Promise { method handleDetach (line 230) | private async handleDetach(runId: RunId): Promise { method handlePause (line 241) | private async handlePause(runId: RunId): Promise { method handleResume (line 252) | private async handleResume(runId: RunId): Promise { method handleStepOver (line 263) | private async handleStepOver(runId: RunId): Promise { method handleSetBreakpoints (line 280) | private async handleSetBreakpoints(runId: RunId, nodeIds: NodeId[]): P... method handleAddBreakpoint (line 292) | private async handleAddBreakpoint(runId: RunId, nodeId: NodeId): Promi... method handleRemoveBreakpoint (line 303) | private async handleRemoveBreakpoint(runId: RunId, nodeId: NodeId): Pr... method handleGetState (line 314) | private async handleGetState(runId: RunId): Promise { method handleGetVar (line 319) | private async handleGetVar(runId: RunId, name: string): Promise { function createDeferred (line 121) | function createDeferred(): Deferred { function sleep (line 131) | function sleep(ms: number): Promise { function errorMessage (line 135) | function errorMessage(err: unknown): string { function withTimeout (line 142) | async function withTimeout( function computeRetryDelayMs (line 166) | function computeRetryDelayMs(policy: RetryPolicy, attempt: number): numb... function applyVarsPatch (line 188) | function applyVarsPatch(vars: Record, patch: VarsPatc... function toRRError (line 198) | function toRRError(err: unknown, fallback: { code: string; message: stri... class SerialQueue (line 212) | class SerialQueue { method run (line 215) | run(fn: () => Promise): Promise { function createNotImplementedRunnerFactory (line 230) | function createNotImplementedRunnerFactory(): RunRunnerFactory { function createRunRunnerFactory (line 241) | function createRunRunnerFactory(deps: RunRunnerFactoryDeps): RunRunnerFa... type RunnerEnv (line 260) | interface RunnerEnv { type OnErrorDecision (line 268) | type OnErrorDecision = type NodeRunResult (line 277) | type NodeRunResult = class StorageBackedRunRunner (line 285) | class StorageBackedRunRunner implements RunRunner { method constructor (line 299) | constructor(runId: RunId, config: RunnerConfig, env: RunnerEnv) { method onEvent (line 316) | onEvent(listener: (event: RunEvent) => void): Unsubscribe { method start (line 320) | start(): Promise { method pause (line 327) | pause(): void { method resume (line 331) | resume(): void { method cancel (line 347) | cancel(reason?: string): void { method getVar (line 359) | getVar(name: string): JsonValue | undefined { method setVar (line 363) | setVar(name: string, value: JsonValue): void { method buildInitialVars (line 380) | private buildInitialVars(): Record { method requestPause (line 390) | private requestPause(reason: PauseReason): void { method waitIfPaused (line 418) | private async waitIfPaused(): Promise { method ensureRunRecord (line 427) | private async ensureRunRecord(startNodeId: NodeId, startedAt: number):... method run (line 472) | private async run(): Promise { method runNode (line 594) | private async runNode(flow: FlowV3, node: NodeV3, nodeStartAt: number)... method resolveNodePolicy (line 708) | private resolveNodePolicy(flow: FlowV3, node: NodeV3): NodePolicy { method decideOnError (line 716) | private decideOnError( method executeNodeAttempt (line 752) | private async executeNodeAttempt(flow: FlowV3, node: NodeV3): Promise<... method finishSucceeded (line 831) | private async finishSucceeded(startedAt: number): Promise { method finishFailed (line 851) | private async finishFailed( method finishCanceled (line 876) | private async finishCanceled(startedAt: number): Promise { FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/kernel/traversal.ts type ValidateFlowDAGResult (line 14) | type ValidateFlowDAGResult = { ok: true } | { ok: false; errors: RRError... function validateFlowDAG (line 21) | function validateFlowDAG(flow: FlowV3): ValidateFlowDAGResult { function detectCycle (line 71) | function detectCycle(flow: FlowV3): NodeId[] | null { function findNextNode (line 120) | function findNextNode( function findEdgeByLabel (line 158) | function findEdgeByLabel( function getOutEdges (line 169) | function getOutEdges(flow: FlowV3, nodeId: NodeId): EdgeV3[] { function getInEdges (line 176) | function getInEdges(flow: FlowV3, nodeId: NodeId): EdgeV3[] { function buildAdjacencyMap (line 183) | function buildAdjacencyMap(flow: FlowV3): Map { function getReachableNodes (line 203) | function getReachableNodes(flow: FlowV3): Set { function isNodeReachable (line 224) | function isNodeReachable(flow: FlowV3, nodeId: NodeId): boolean { FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/plugins/register-v2-replay-nodes.ts type RegisterV2ReplayNodesOptions (line 20) | interface RegisterV2ReplayNodesOptions extends V2ActionNodeAdapterOptions { function registerV2ReplayNodesAsV3Nodes (line 49) | function registerV2ReplayNodesAsV3Nodes( function listV2ActionTypes (line 81) | function listV2ActionTypes(): string[] { constant DEFAULT_V2_EXCLUDE_LIST (line 90) | const DEFAULT_V2_EXCLUDE_LIST = ['foreach', 'while'] as const; FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/plugins/registry.ts class PluginRegistry (line 20) | class PluginRegistry implements PluginRegistrationContext { method registerNode (line 28) | registerNode(def: NodeDefinition): void { method registerTrigger (line 36) | registerTrigger(def: TriggerDefinition): void { method getNode (line 44) | getNode(kind: NodeKind): NodeDefinition | undefined { method getNodeOrThrow (line 52) | getNodeOrThrow(kind: NodeKind): NodeDefinition { method getTrigger (line 64) | getTrigger(kind: TriggerKind): TriggerDefinition | undefined { method getTriggerOrThrow (line 72) | getTriggerOrThrow(kind: TriggerKind): TriggerDefinition { method hasNode (line 86) | hasNode(kind: NodeKind): boolean { method hasTrigger (line 93) | hasTrigger(kind: TriggerKind): boolean { method listNodeKinds (line 100) | listNodeKinds(): NodeKind[] { method listTriggerKinds (line 107) | listTriggerKinds(): TriggerKind[] { method registerPlugin (line 115) | registerPlugin(plugin: RRPlugin): void { method registerPlugins (line 122) | registerPlugins(plugins: RRPlugin[]): void { method clear (line 132) | clear(): void { function getPluginRegistry (line 144) | function getPluginRegistry(): PluginRegistry { function resetPluginRegistry (line 155) | function resetPluginRegistry(): void { FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/plugins/types.ts type Schema (line 20) | type Schema = z.ZodType; type NodeExecutionContext (line 26) | interface NodeExecutionContext { type VarsPatchOp (line 77) | interface VarsPatchOp { type NodeExecutionResult (line 86) | type NodeExecutionResult = type NodeDefinition (line 102) | interface NodeDefinition< type TriggerInstallContext (line 126) | interface TriggerInstallContext< type TriggerDefinition (line 148) | interface TriggerDefinition< type PluginRegistrationContext (line 165) | interface PluginRegistrationContext { type RRPlugin (line 176) | interface RRPlugin { FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/plugins/v2-action-adapter.ts constant DEFAULT_TAB_ID_VAR (line 40) | const DEFAULT_TAB_ID_VAR = '__rr_v2__tabId'; constant DEFAULT_FRAME_ID_VAR (line 41) | const DEFAULT_FRAME_ID_VAR = '__rr_v2__frameId'; type V2ActionNodeAdapterOptions (line 43) | interface V2ActionNodeAdapterOptions { function toErrorMessage (line 68) | function toErrorMessage(e: unknown): string { function deepClone (line 75) | function deepClone(value: T): T { function safeJsonValue (line 81) | function safeJsonValue(value: unknown): JsonValue { function mapLogLevel (line 92) | function mapLogLevel(level: 'info' | 'warn' | 'error' | undefined): 'inf... function mapV2ErrorCode (line 96) | function mapV2ErrorCode(code: ActionErrorCode): RRErrorCode { function toRRErrorFromV2 (line 128) | function toRRErrorFromV2(error: ActionError): RRError { function isRecord (line 137) | function isRecord(value: unknown): value is Record { function jsonEquals (line 141) | function jsonEquals(a: JsonValue, b: JsonValue): boolean { function diffVars (line 173) | function diffVars( function readNumberVar (line 204) | function readNumberVar(vars: Record, key: string): nu... function toV2ActionPolicy (line 209) | function toV2ActionPolicy(policy: NodePolicy | undefined): ActionPolicy ... function toJsonRecord (line 263) | function toJsonRecord(value: unknown): Record { function adaptV2ActionHandlerToV3NodeDefinition (line 281) | function adaptV2ActionHandlerToV3NodeDefinition Promise; type RunSchedulerTuning (line 35) | interface RunSchedulerTuning { type RunSchedulerDeps (line 52) | interface RunSchedulerDeps { type RunSchedulerState (line 67) | interface RunSchedulerState { type RunScheduler (line 77) | interface RunScheduler { constant DEFAULT_POLL_INTERVAL_MS (line 95) | const DEFAULT_POLL_INTERVAL_MS = 500; function clampNonNegativeInt (line 99) | function clampNonNegativeInt(value: unknown, fallback: number): number { function defaultReclaimIntervalMs (line 104) | function defaultReclaimIntervalMs(leaseTtlMs: number): number { function createRunScheduler (line 123) | function createRunScheduler(deps: RunSchedulerDeps): RunScheduler { FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/recovery/recovery-coordinator.ts type RecoveryResult (line 28) | interface RecoveryResult { type RecoveryCoordinatorDeps (line 40) | interface RecoveryCoordinatorDeps { function recoverFromCrash (line 66) | async function recoverFromCrash(deps: RecoveryCoordinatorDeps): Promise<... FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/storage/storage-port.ts type FlowsStore (line 16) | interface FlowsStore { type RunsStore (line 30) | interface RunsStore { type EventsStore (line 45) | interface EventsStore { type PersistentVarsStore (line 65) | interface PersistentVarsStore { type TriggersStore (line 82) | interface TriggersStore { type StoragePort (line 97) | interface StoragePort { function createNotImplementedStore (line 116) | function createNotImplementedStore(name: string): T { function createNotImplementedStoragePort (line 135) | function createNotImplementedStoragePort(): StoragePort { FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/transport/events-bus.ts type EventsQuery (line 13) | interface EventsQuery { type EventsFilter (line 25) | interface EventsFilter { type EventsBus (line 34) | interface EventsBus { function createNotImplementedEventsBus (line 63) | function createNotImplementedEventsBus(): EventsBus { type ListenerEntry (line 81) | interface ListenerEntry { class StorageBackedEventsBus (line 92) | class StorageBackedEventsBus implements EventsBus { method constructor (line 95) | constructor(private readonly store: EventsStore) {} method subscribe (line 97) | subscribe(listener: (event: RunEvent) => void, filter?: EventsFilter):... method append (line 105) | async append(input: RunEventInput): Promise { method list (line 115) | async list(query: EventsQuery): Promise { method broadcast (line 125) | private broadcast(event: RunEvent): void { class InMemoryEventsBus (line 144) | class InMemoryEventsBus implements EventsBus { method subscribe (line 149) | subscribe(listener: (event: RunEvent) => void, filter?: EventsFilter):... method append (line 157) | async append(input: RunEventInput): Promise { method list (line 191) | async list(query: EventsQuery): Promise { method clear (line 210) | clear(): void { method getSeq (line 219) | getSeq(runId: RunId): number { FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/transport/rpc-server.ts type RpcServerConfig (line 33) | interface RpcServerConfig { type PortConnection (line 49) | interface PortConnection { function defaultGenerateRunId (line 57) | function defaultGenerateRunId(): RunId { class RpcServer (line 65) | class RpcServer { method constructor (line 77) | constructor(config: RpcServerConfig) { method start (line 91) | start(): void { method stop (line 103) | stop(): void { method broadcastEvent (line 164) | private broadcastEvent(event: RunEvent): void { method handleEnqueueRun (line 187) | private async handleEnqueueRun(params: JsonObject | undefined): Promis... method handleListQueue (line 213) | private async handleListQueue(params: JsonObject | undefined): Promise... method handleCancelQueueItem (line 243) | private async handleCancelQueueItem(params: JsonObject | undefined): P... method handleRequest (line 286) | private async handleRequest(request: RpcRequest, conn: PortConnection)... method handleSaveFlow (line 421) | private async handleSaveFlow(params: JsonObject | undefined): Promise<... method handleDeleteFlow (line 447) | private async handleDeleteFlow(params: JsonObject | undefined): Promis... method normalizeFlowSpec (line 491) | private normalizeFlowSpec(value: unknown, existingFlow: FlowV3 | null ... method normalizeNode (line 647) | private normalizeNode(value: unknown, index: number): NodeV3 { method normalizeEdge (line 710) | private normalizeEdge(value: unknown, index: number): EdgeV3 { method requireTriggerManager (line 758) | private requireTriggerManager(): TriggerManager { method handleCreateTrigger (line 765) | private async handleCreateTrigger(params: JsonObject | undefined): Pro... method handleUpdateTrigger (line 783) | private async handleUpdateTrigger(params: JsonObject | undefined): Pro... method handleDeleteTrigger (line 801) | private async handleDeleteTrigger(params: JsonObject | undefined): Pro... method handleGetTrigger (line 810) | private async handleGetTrigger(params: JsonObject | undefined): Promis... method handleListTriggers (line 817) | private async handleListTriggers(params: JsonObject | undefined): Prom... method handleEnableTrigger (line 832) | private async handleEnableTrigger(params: JsonObject | undefined): Pro... method handleDisableTrigger (line 847) | private async handleDisableTrigger(params: JsonObject | undefined): Pr... method handleFireTrigger (line 862) | private async handleFireTrigger(params: JsonObject | undefined): Promi... method normalizeTriggerSpec (line 903) | private normalizeTriggerSpec(value: unknown, opts: { requireId: boolea... method handlePauseRun (line 1067) | private async handlePauseRun(params: JsonObject | undefined): Promise<... method handleResumeRun (line 1100) | private async handleResumeRun(params: JsonObject | undefined): Promise... method handleCancelRun (line 1133) | private async handleCancelRun(params: JsonObject | undefined): Promise... function createRpcServer (line 1164) | function createRpcServer(config: RpcServerConfig): RpcServer { FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/transport/rpc.ts constant RR_V3_PORT_NAME (line 11) | const RR_V3_PORT_NAME = 'rr_v3' as const; type RpcMethod (line 16) | type RpcMethod = type RpcRequest (line 53) | interface RpcRequest { type RpcResponseOk (line 66) | interface RpcResponseOk { type RpcResponseErr (line 78) | interface RpcResponseErr { type RpcResponse (line 90) | type RpcResponse = RpcResponseOk | RpcResponseErr; type RpcEventMessage (line 95) | interface RpcEventMessage { type RpcSubscribeAck (line 104) | interface RpcSubscribeAck { type RpcMessage (line 113) | type RpcMessage = function generateRequestId (line 123) | function generateRequestId(): string { function isRpcRequest (line 130) | function isRpcRequest(msg: unknown): msg is RpcRequest { function isRpcResponse (line 137) | function isRpcResponse(msg: unknown): msg is RpcResponse { function isRpcEvent (line 144) | function isRpcEvent(msg: unknown): msg is RpcEventMessage { function createRpcRequest (line 151) | function createRpcRequest(method: RpcMethod, params?: JsonObject): RpcRe... function createRpcResponseOk (line 163) | function createRpcResponseOk(requestId: string, result: JsonValue): RpcR... function createRpcResponseErr (line 175) | function createRpcResponseErr(requestId: string, error: string): RpcResp... function createRpcEventMessage (line 187) | function createRpcEventMessage(event: RunEvent): RpcEventMessage { FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/triggers/command-trigger.ts type CommandTriggerHandlerDeps (line 21) | interface CommandTriggerHandlerDeps { type CommandTriggerSpec (line 25) | type CommandTriggerSpec = TriggerSpecByKind<'command'>; type InstalledCommandTrigger (line 27) | interface InstalledCommandTrigger { function createCommandTriggerHandlerFactory (line 36) | function createCommandTriggerHandlerFactory( function createCommandTriggerHandler (line 45) | function createCommandTriggerHandler( FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/triggers/context-menu-trigger.ts type ContextMenuTriggerHandlerDeps (line 19) | interface ContextMenuTriggerHandlerDeps { type ContextMenuTriggerSpec (line 23) | type ContextMenuTriggerSpec = TriggerSpecByKind<'contextMenu'>; type InstalledContextMenuTrigger (line 25) | interface InstalledContextMenuTrigger { constant MENU_ITEM_PREFIX (line 32) | const MENU_ITEM_PREFIX = 'rr_v3_'; constant DEFAULT_CONTEXTS (line 35) | const DEFAULT_CONTEXTS: chrome.contextMenus.ContextType[] = ['page']; function createContextMenuTriggerHandlerFactory (line 42) | function createContextMenuTriggerHandlerFactory( function createContextMenuTriggerHandler (line 51) | function createContextMenuTriggerHandler( FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/triggers/cron-trigger.ts type CronTriggerSpec (line 26) | type CronTriggerSpec = TriggerSpecByKind<'cron'>; type ComputeNextFireAtMs (line 31) | type ComputeNextFireAtMs = (input: { type CronTriggerHandlerDeps (line 37) | interface CronTriggerHandlerDeps { type InstalledCronTrigger (line 43) | interface InstalledCronTrigger { constant ALARM_PREFIX (line 51) | const ALARM_PREFIX = 'rr_v3_cron_'; function normalizeCronExpression (line 58) | function normalizeCronExpression(value: unknown): string { function normalizeTimezone (line 70) | function normalizeTimezone(value: unknown): string | undefined { function alarmNameForTrigger (line 91) | function alarmNameForTrigger(triggerId: TriggerId): string { function parseTriggerIdFromAlarmName (line 98) | function parseTriggerIdFromAlarmName(name: string): TriggerId | null { function parseSimpleCron (line 111) | function parseSimpleCron(cron: string): { type ZonedTimeParts (line 179) | interface ZonedTimeParts { function getDateTimeFormat (line 194) | function getDateTimeFormat(timezone: string): Intl.DateTimeFormat { constant WEEKDAY_MAP (line 213) | const WEEKDAY_MAP: Record = { function getZonedTimeParts (line 226) | function getZonedTimeParts(utcMs: UnixMillis, timezone: string): ZonedTi... function getTimezoneOffsetMs (line 251) | function getTimezoneOffsetMs(utcMs: UnixMillis, timezone: string): number { function zonedToUtcMs (line 261) | function zonedToUtcMs( function computeNextFireAtMsLocal (line 284) | function computeNextFireAtMsLocal( function computeNextFireAtMsZoned (line 318) | function computeNextFireAtMsZoned( function computeNextFireAtMsSimple (line 369) | function computeNextFireAtMsSimple(input: { function defaultComputeNextFireAtMs (line 387) | function defaultComputeNextFireAtMs(input: { function createCronTriggerHandlerFactory (line 400) | function createCronTriggerHandlerFactory( function createCronTriggerHandler (line 409) | function createCronTriggerHandler( FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/triggers/dom-trigger.ts type DomTriggerHandlerDeps (line 25) | interface DomTriggerHandlerDeps { type DomTriggerSpec (line 29) | type DomTriggerSpec = TriggerSpecByKind<'dom'>; type DomObserverTriggerPayload (line 34) | interface DomObserverTriggerPayload { type DomTriggerFiredMessage (line 45) | interface DomTriggerFiredMessage { constant DOM_OBSERVER_SCRIPT_FILE (line 53) | const DOM_OBSERVER_SCRIPT_FILE = 'inject-scripts/dom-observer.js'; constant DEFAULT_DEBOUNCE_MS (line 54) | const DEFAULT_DEBOUNCE_MS = 800; function normalizeDebounceMs (line 58) | function normalizeDebounceMs(value: unknown): number { function buildDomObserverPayload (line 67) | function buildDomObserverPayload( function isInjectableUrl (line 93) | function isInjectableUrl(url: string): boolean { function isDomTriggerFiredMessage (line 100) | function isDomTriggerFiredMessage(msg: unknown): msg is DomTriggerFiredM... function createDomTriggerHandlerFactory (line 113) | function createDomTriggerHandlerFactory( function createDomTriggerHandler (line 122) | function createDomTriggerHandler( FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/triggers/interval-trigger.ts type IntervalTriggerSpec (line 17) | type IntervalTriggerSpec = TriggerSpecByKind<'interval'>; type IntervalTriggerHandlerDeps (line 19) | interface IntervalTriggerHandlerDeps { type InstalledIntervalTrigger (line 23) | interface InstalledIntervalTrigger { constant ALARM_PREFIX (line 31) | const ALARM_PREFIX = 'rr_v3_interval_'; function normalizePeriodMinutes (line 38) | function normalizePeriodMinutes(value: unknown): number { function alarmNameForTrigger (line 51) | function alarmNameForTrigger(triggerId: TriggerId): string { function parseTriggerIdFromAlarmName (line 58) | function parseTriggerIdFromAlarmName(name: string): TriggerId | null { function createIntervalTriggerHandlerFactory (line 69) | function createIntervalTriggerHandlerFactory( function createIntervalTriggerHandler (line 78) | function createIntervalTriggerHandler( FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/triggers/manual-trigger.ts type ManualTriggerHandlerDeps (line 17) | interface ManualTriggerHandlerDeps { type ManualTriggerSpec (line 21) | type ManualTriggerSpec = TriggerSpecByKind<'manual'>; function createManualTriggerHandlerFactory (line 28) | function createManualTriggerHandlerFactory( function createManualTriggerHandler (line 40) | function createManualTriggerHandler( FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/triggers/once-trigger.ts type OnceTriggerSpec (line 19) | type OnceTriggerSpec = TriggerSpecByKind<'once'>; type OnceTriggerHandlerDeps (line 21) | interface OnceTriggerHandlerDeps { type InstalledOnceTrigger (line 30) | interface InstalledOnceTrigger { constant ALARM_PREFIX (line 38) | const ALARM_PREFIX = 'rr_v3_once_'; function normalizeWhenMs (line 45) | function normalizeWhenMs(value: unknown): UnixMillis { function alarmNameForTrigger (line 55) | function alarmNameForTrigger(triggerId: TriggerId): string { function parseTriggerIdFromAlarmName (line 62) | function parseTriggerIdFromAlarmName(name: string): TriggerId | null { function createOnceTriggerHandlerFactory (line 73) | function createOnceTriggerHandlerFactory( function createOnceTriggerHandler (line 82) | function createOnceTriggerHandler( FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/triggers/trigger-handler.ts type TriggerHandler (line 12) | interface TriggerHandler { type TriggerFireCallback (line 46) | interface TriggerFireCallback { type TriggerHandlerFactory (line 64) | type TriggerHandlerFactory = ( FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/triggers/trigger-manager.ts type TriggerHandlerFactories (line 29) | type TriggerHandlerFactories = Partial<{ type TriggerManagerStormControl (line 36) | interface TriggerManagerStormControl { type TriggerManagerDeps (line 55) | interface TriggerManagerDeps { type TriggerManagerState (line 77) | interface TriggerManagerState { type TriggerManager (line 87) | interface TriggerManager { function normalizeNonNegativeInt (line 113) | function normalizeNonNegativeInt(value: unknown, fallback: number, field... function normalizePositiveInt (line 124) | function normalizePositiveInt(value: unknown, fieldName: string): number { function createTriggerManager (line 140) | function createTriggerManager(deps: TriggerManagerDeps): TriggerManager { FILE: app/chrome-extension/entrypoints/background/record-replay-v3/engine/triggers/url-trigger.ts type UrlTriggerHandlerDeps (line 23) | interface UrlTriggerHandlerDeps { type UrlTriggerSpec (line 27) | type UrlTriggerSpec = TriggerSpecByKind<'url'>; type CompiledUrlRules (line 32) | interface CompiledUrlRules { type InstalledUrlTrigger (line 41) | interface InstalledUrlTrigger { function normalizeDomain (line 54) | function normalizeDomain(value: string): string | null { function normalizePathPrefix (line 64) | function normalizePathPrefix(value: string): string | null { function normalizeUrlPrefix (line 74) | function normalizeUrlPrefix(value: string): string | null { function compileUrlMatchRules (line 82) | function compileUrlMatchRules(match: UrlMatchRule[] | undefined): Compil... function hostnameMatchesDomain (line 118) | function hostnameMatchesDomain(hostname: string, domain: string): boolean { function matchesRules (line 126) | function matchesRules(compiled: CompiledUrlRules, urlString: string, par... function createUrlTriggerHandlerFactory (line 152) | function createUrlTriggerHandlerFactory( function createUrlTriggerHandler (line 161) | function createUrlTriggerHandler( FILE: app/chrome-extension/entrypoints/background/record-replay-v3/index.ts function createStoragePort (line 28) | function createStoragePort(): StoragePort { constant RR_V3_VERSION (line 42) | const RR_V3_VERSION = '3.0.0' as const; constant IS_RR_V3 (line 45) | const IS_RR_V3 = true as const; FILE: app/chrome-extension/entrypoints/background/record-replay-v3/storage/db.ts constant RR_V3_DB_NAME (line 7) | const RR_V3_DB_NAME = 'rr_v3'; constant RR_V3_DB_VERSION (line 10) | const RR_V3_DB_VERSION = 1; constant RR_V3_STORES (line 15) | const RR_V3_STORES = { type StoreConfig (line 27) | interface StoreConfig { constant RR_V3_STORE_SCHEMAS (line 41) | const RR_V3_STORE_SCHEMAS: Record = { function handleUpgrade (line 101) | function handleUpgrade(db: IDBDatabase, oldVersion: number, _newVersion:... function openRrV3Db (line 128) | async function openRrV3Db(): Promise { function closeRrV3Db (line 173) | function closeRrV3Db(): void { function deleteRrV3Db (line 185) | async function deleteRrV3Db(): Promise { function withTransaction (line 201) | async function withTransaction( FILE: app/chrome-extension/entrypoints/background/record-replay-v3/storage/events.ts function idbRequest (line 15) | function idbRequest(request: IDBRequest, context: string): Promise... function createEventsStore (line 36) | function createEventsStore(): EventsStore { FILE: app/chrome-extension/entrypoints/background/record-replay-v3/storage/flows.ts function validateFlow (line 16) | function validateFlow(flow: FlowV3): void { function createFlowsStore (line 65) | function createFlowsStore(): FlowsStore { FILE: app/chrome-extension/entrypoints/background/record-replay-v3/storage/import/v2-reader.ts type V2Reader (line 10) | interface V2Reader { function createNotImplementedV2Reader (line 24) | function createNotImplementedV2Reader(): V2Reader { FILE: app/chrome-extension/entrypoints/background/record-replay-v3/storage/import/v2-to-v3.ts type V2Node (line 16) | interface V2Node { type V2Edge (line 26) | interface V2Edge { type V2VariableDef (line 34) | interface V2VariableDef { type V2Binding (line 44) | interface V2Binding { type V2Flow (line 50) | interface V2Flow { type ConversionResult (line 72) | interface ConversionResult { function convertFlowV2ToV3 (line 86) | function convertFlowV2ToV3(v2Flow: V2Flow): ConversionResult { function convertNodeV2ToV3 (line 192) | function convertNodeV2ToV3(v2Node: V2Node): NodeV3 | null { function convertEdgeV2ToV3 (line 220) | function convertEdgeV2ToV3(v2Edge: V2Edge): EdgeV3 | null { type EntryNodeResult (line 240) | interface EntryNodeResult { function findEntryNodeId (line 256) | function findEntryNodeId(nodes: NodeV3[], edges: EdgeV3[]): EntryNodeRes... type StableSelectionResult (line 318) | interface StableSelectionResult { function selectStableRootNode (line 327) | function selectStableRootNode(nodes: NodeV3[]): StableSelectionResult { function convertVariablesV2ToV3 (line 356) | function convertVariablesV2ToV3(v2Variables: V2VariableDef[]): VariableD... function convertMetaV2ToV3 (line 384) | function convertMetaV2ToV3(v2Meta: V2Flow['meta']): FlowV3['meta'] | und... function convertFlowV3ToV2 (line 415) | function convertFlowV3ToV2(v3Flow: FlowV3): ConversionResult { type V2Trigger (line 481) | interface V2Trigger { function convertTriggerV2ToV3 (line 506) | function convertTriggerV2ToV3(v2Trigger: V2Trigger): ConversionResult = { function execCtxToActionCtx (line 84) | function execCtxToActionCtx( function stepToAction (line 124) | function stepToAction(step: Step): ExecutableAction | null { type LegacySelectorCandidate (line 167) | interface LegacySelectorCandidate { type LegacyTargetLocator (line 173) | interface LegacyTargetLocator { function parseAriaValue (line 187) | function parseAriaValue(value: string): { role?: string; name: string } { function convertSelectorCandidate (line 207) | function convertSelectorCandidate(legacy: LegacySelectorCandidate): Reco... function convertTargetLocator (line 248) | function convertTargetLocator(target: LegacyTargetLocator): Record { function actionResultToExecResult (line 351) | function actionResultToExecResult(result: ActionExecutionResult): ExecRe... type StepExecutionAttempt (line 379) | type StepExecutionAttempt = type StepExecutorOptions (line 386) | interface StepExecutorOptions { function createStepExecutor (line 418) | function createStepExecutor(registry: ActionRegistry) { function isActionSupported (line 504) | function isActionSupported(stepType: string): boolean { function getActionType (line 511) | function getActionType(stepType: string): ExecutableActionType | undefin... FILE: app/chrome-extension/entrypoints/background/record-replay/actions/handlers/assert.ts constant DEFAULT_ASSERT_TIMEOUT_MS (line 15) | const DEFAULT_ASSERT_TIMEOUT_MS = 5000; constant POLL_INTERVAL_MS (line 18) | const POLL_INTERVAL_MS = 200; constant MAX_ATTR_NAME_LENGTH (line 21) | const MAX_ATTR_NAME_LENGTH = 256; function validateAssertion (line 26) | function validateAssertion(assert: Assertion): { ok: true } | { ok: fals... function resolveAssertionParams (line 63) | function resolveAssertionParams( type ResolvedAssertion (line 137) | type ResolvedAssertion = function checkAssertionInPage (line 146) | async function checkAssertionInPage( function pollAssertion (line 253) | async function pollAssertion( function truncate (line 353) | function truncate(str: string, maxLen: number): string { FILE: app/chrome-extension/entrypoints/background/record-replay/actions/handlers/click.ts function executeClick (line 38) | async function executeClick( function validateClickTarget (line 144) | function validateClickTarget(target: { FILE: app/chrome-extension/entrypoints/background/record-replay/actions/handlers/common.ts function interpolateBraces (line 35) | function interpolateBraces(template: string, vars: VariableStore): string { function resolveString (line 45) | function resolveString( function resolveOptionalString (line 57) | function resolveOptionalString( function clampInt (line 75) | function clampInt(value: number, min: number, max: number): number { type ConvertedSelectorTarget (line 85) | interface ConvertedSelectorTarget { function toSelectorTarget (line 101) | function toSelectorTarget( type SendMessageResult (line 240) | type SendMessageResult = { ok: true; value: T } | { ok: fal... function sendMessageToTab (line 246) | async function sendMessageToTab( function ensureElementVisible (line 271) | async function ensureElementVisible( function readTabUrl (line 289) | async function readTabUrl(tabId: number): Promise { type FallbackLogEntry (line 302) | interface FallbackLogEntry { function logSelectorFallback (line 314) | function logSelectorFallback( FILE: app/chrome-extension/entrypoints/background/record-replay/actions/handlers/control-flow.ts constant DEFAULT_MAX_ITERATIONS (line 31) | const DEFAULT_MAX_ITERATIONS = 1000; function evaluateCondition (line 40) | function evaluateCondition(condition: Condition, vars: VariableStore): b... FILE: app/chrome-extension/entrypoints/background/record-replay/actions/handlers/delay.ts constant MAX_DELAY_MS (line 12) | const MAX_DELAY_MS = 2_147_483_647; FILE: app/chrome-extension/entrypoints/background/record-replay/actions/handlers/dom.ts type ResolveRefResponse (line 38) | interface ResolveRefResponse { type DomScriptResult (line 44) | interface DomScriptResult { type ResolvedTarget (line 49) | interface ResolvedTarget { function hasValidTarget (line 64) | function hasValidTarget(target: unknown): boolean { function stripCompositePrefix (line 75) | function stripCompositePrefix(selector: string): string { function resolveTargetSelector (line 94) | async function resolveTargetSelector( function maybeLogFallback (line 157) | function maybeLogFallback( FILE: app/chrome-extension/entrypoints/background/record-replay/actions/handlers/drag.ts type Coordinates (line 24) | interface Coordinates { function hasTargetSpec (line 30) | function hasTargetSpec(target: unknown): boolean { function isFiniteNumber (line 39) | function isFiniteNumber(v: unknown): v is number { function getPathEndpoints (line 44) | function getPathEndpoints( function extractToolError (line 63) | function extractToolError(result: unknown, fallback: string): string { function locateTarget (line 69) | async function locateTarget( FILE: app/chrome-extension/entrypoints/background/record-replay/actions/handlers/extract.ts constant DEFAULT_EXTRACT_ATTR (line 13) | const DEFAULT_EXTRACT_ATTR = 'textContent'; function executeExtraction (line 18) | async function executeExtraction( function resolveExtractParams (line 147) | function resolveExtractParams( type ResolvedParams (line 194) | type ResolvedParams = FILE: app/chrome-extension/entrypoints/background/record-replay/actions/handlers/http.ts constant DEFAULT_HTTP_TIMEOUT_MS (line 30) | const DEFAULT_HTTP_TIMEOUT_MS = 30000; constant MAX_URL_LENGTH (line 33) | const MAX_URL_LENGTH = 8192; function resolveHeaders (line 38) | async function resolveHeaders( function resolveFormData (line 59) | async function resolveFormData( function resolveBody (line 80) | async function resolveBody( function isStatusOk (line 128) | function isStatusOk(status: number, okStatus: HttpOkStatus | undefined):... function getValueByPath (line 148) | function getValueByPath(obj: unknown, path: string): JsonValue | undefin... function applyAssignments (line 178) | function applyAssignments( FILE: app/chrome-extension/entrypoints/background/record-replay/actions/handlers/index.ts constant ALL_HANDLERS (line 64) | const ALL_HANDLERS = [ function registerReplayHandlers (line 102) | function registerReplayHandlers(registry: ActionRegistry): void { function createReplayActionRegistry (line 146) | function createReplayActionRegistry(): ActionRegistry { function getSupportedActionTypes (line 155) | function getSupportedActionTypes(): ReadonlyArray { function isActionTypeSupported (line 162) | function isActionTypeSupported(type: string): boolean { FILE: app/chrome-extension/entrypoints/background/record-replay/actions/handlers/key.ts function extractToolError (line 25) | function extractToolError(result: unknown, fallback: string): string { function hasTargetSpec (line 31) | function hasTargetSpec(target: unknown): boolean { function stripCompositeSelector (line 40) | function stripCompositeSelector(selector: string): string { FILE: app/chrome-extension/entrypoints/background/record-replay/actions/handlers/screenshot.ts function extractToolText (line 15) | function extractToolText(result: unknown): string | undefined { FILE: app/chrome-extension/entrypoints/background/record-replay/actions/handlers/script.ts constant MAX_CODE_LENGTH (line 23) | const MAX_CODE_LENGTH = 100000; function resolveArgs (line 28) | function resolveArgs( function getValueByPath (line 49) | function getValueByPath(obj: unknown, path: string): JsonValue | undefin... function applyAssignments (line 80) | function applyAssignments(result: JsonValue, assignments: Assignments, v... function executeScript (line 92) | async function executeScript( FILE: app/chrome-extension/entrypoints/background/record-replay/actions/handlers/scroll.ts function hasTargetSpec (line 18) | function hasTargetSpec(target: unknown): boolean { function stripCompositeSelector (line 27) | function stripCompositeSelector(selector: string): string { function describeOffset (line 38) | function describeOffset(v: unknown): string { FILE: app/chrome-extension/entrypoints/background/record-replay/actions/handlers/tabs.ts constant DEFAULT_TAB_TIMEOUT_MS (line 15) | const DEFAULT_TAB_TIMEOUT_MS = 10000; constant DEFAULT_DOWNLOAD_TIMEOUT_MS (line 18) | const DEFAULT_DOWNLOAD_TIMEOUT_MS = 60000; function waitForTabComplete (line 393) | async function waitForTabComplete(tabId: number, timeoutMs: number): Pro... FILE: app/chrome-extension/entrypoints/background/record-replay/actions/registry.ts type AnyExecutableAction (line 39) | type AnyExecutableAction = { type AnyExecutableHandler (line 42) | type AnyExecutableHandler = { [T in ExecutableActionType]: ActionHandler... type BeforeExecuteArgs (line 44) | interface BeforeExecuteArgs { type BeforeExecuteHook (line 51) | type BeforeExecuteHook = ( type AfterExecuteArgs (line 55) | interface AfterExecuteArgs { type AfterExecuteHook (line 63) | type AfterExecuteHook = ( type ActionRegistryHooks (line 67) | interface ActionRegistryHooks { function isRecord (line 76) | function isRecord(value: unknown): value is Record { function toNonEmptyArray (line 80) | function toNonEmptyArray(value: string[], fallback: string): NonEmptyArr... constant ACTION_ERROR_CODES (line 84) | const ACTION_ERROR_CODES: ReadonlyArray = [ function isActionErrorCode (line 99) | function isActionErrorCode(value: unknown): value is ActionErrorCode { function toErrorMessage (line 103) | function toErrorMessage(e: unknown): string { function toActionError (line 110) | function toActionError(e: unknown, fallbackCode: ActionErrorCode = 'UNKN... function ok (line 117) | function ok(): ValidationResult { function invalid (line 121) | function invalid(...errors: string[]): ValidationResult { function failed (line 125) | function failed( function sleep (line 132) | function sleep(ms: number): Promise { function isVariablePointer (line 141) | function isVariablePointer(value: unknown): value is VariablePointer { function isVarValue (line 149) | function isVarValue( function isExprValue (line 157) | function isExprValue(value: unknown): value is { kind: 'expr'; default?:... function isStringTemplate (line 163) | function isStringTemplate(value: unknown): value is { kind: 'template'; ... function readByPath (line 169) | function readByPath( function tryResolveJson (line 192) | function tryResolveJson( function formatInserted (line 211) | function formatInserted(value: JsonValue, format?: 'text' | 'json' | 'ur... function tryResolveString (line 218) | function tryResolveString( function tryResolveNumber (line 267) | function tryResolveNumber( function shouldRetry (line 304) | function shouldRetry(policy: RetryPolicy | undefined, error: ActionError... function computeRetryDelayMs (line 313) | function computeRetryDelayMs(policy: RetryPolicy, retryIndex: number): n... function runWithTimeout (line 327) | async function runWithTimeout( class ActionRegistry (line 363) | class ActionRegistry { method register (line 371) | register( method unregister (line 388) | unregister(type: T): boolean { method get (line 397) | get(type: T): ActionHandler | undef... method has (line 404) | has(type: ExecutableActionType): boolean { method list (line 411) | list(): ReadonlyArray { method onBeforeExecute (line 421) | onBeforeExecute(hook: BeforeExecuteHook): () => void { method onAfterExecute (line 432) | onAfterExecute(hook: AfterExecuteHook): () => void { method use (line 443) | use(hooks: ActionRegistryHooks): () => void { method validate (line 455) | validate(action: ExecutableAction):... method execute (line 465) | async execute( function createActionRegistry (line 638) | function createActionRegistry(): ActionRegistry { FILE: app/chrome-extension/entrypoints/background/record-replay/actions/types.ts type Milliseconds (line 18) | type Milliseconds = number; type ISODateTimeString (line 19) | type ISODateTimeString = string; type NonEmptyArray (line 20) | type NonEmptyArray = [T, ...T[]]; type JsonPrimitive (line 23) | type JsonPrimitive = string | number | boolean | null; type JsonValue (line 24) | type JsonValue = JsonPrimitive | JsonObject | JsonArray; type JsonObject (line 25) | interface JsonObject { type JsonArray (line 28) | type JsonArray = JsonValue[]; type FlowId (line 31) | type FlowId = string; type ActionId (line 32) | type ActionId = string; type SubflowId (line 33) | type SubflowId = string; type EdgeId (line 34) | type EdgeId = string; type VariableName (line 35) | type VariableName = string; constant EDGE_LABELS (line 41) | const EDGE_LABELS = { type BuiltinEdgeLabel (line 48) | type BuiltinEdgeLabel = (typeof EDGE_LABELS)[keyof typeof EDGE_LABELS]; type EdgeLabel (line 49) | type EdgeLabel = string; type ActionErrorCode (line 55) | type ActionErrorCode = type ActionError (line 69) | interface ActionError { type TimeoutPolicy (line 79) | interface TimeoutPolicy { type BackoffKind (line 85) | type BackoffKind = 'none' | 'exp' | 'linear'; type RetryPolicy (line 87) | interface RetryPolicy { type ErrorHandlingStrategy (line 102) | type ErrorHandlingStrategy = type ArtifactCapturePolicy (line 107) | interface ArtifactCapturePolicy { type ActionPolicy (line 114) | interface ActionPolicy { type VariableDefinitionBase (line 125) | interface VariableDefinitionBase { type VariableStringRules (line 133) | interface VariableStringRules { type VariableNumberRules (line 139) | interface VariableNumberRules { type VariableDefinition (line 145) | type VariableDefinition = type VariableStore (line 175) | type VariableStore = Record; type VariableScope (line 177) | type VariableScope = 'flow' | 'run' | 'env' | 'secret'; type VariablePathSegment (line 178) | type VariablePathSegment = string | number; type VariablePointer (line 180) | interface VariablePointer { type ExpressionLanguage (line 190) | type ExpressionLanguage = 'js' | 'rr'; type Expression (line 192) | interface Expression<_T = JsonValue> { type VariableValue (line 197) | interface VariableValue { type ExpressionValue (line 203) | interface ExpressionValue { type TemplateFormat (line 209) | type TemplateFormat = 'text' | 'json' | 'urlEncoded'; type TemplatePart (line 211) | type TemplatePart = type StringTemplate (line 215) | interface StringTemplate { type Resolvable (line 220) | type Resolvable = type DataPath (line 226) | type DataPath = string; type Assignments (line 227) | type Assignments = Record; type CompareOp (line 233) | type CompareOp = type Condition (line 249) | type Condition = type SelectorCandidateSource (line 267) | type SelectorCandidateSource = 'recorded' | 'user' | 'generated'; type SelectorStability (line 269) | interface SelectorStability { type SelectorCandidateBase (line 283) | interface SelectorCandidateBase { type SelectorCandidate (line 289) | type SelectorCandidate = type FrameTarget (line 305) | type FrameTarget = type TargetHint (line 310) | interface TargetHint { type ElementTargetBase (line 317) | interface ElementTargetBase { type ElementTarget (line 322) | type ElementTarget = type BrowserWorld (line 337) | type BrowserWorld = 'MAIN' | 'ISOLATED'; type ClickParams (line 341) | interface ClickParams { type FillParams (line 348) | interface FillParams { type KeyParams (line 355) | interface KeyParams { type ScrollMode (line 360) | type ScrollMode = 'element' | 'offset' | 'container'; type ScrollOffset (line 362) | interface ScrollOffset { type ScrollParams (line 367) | interface ScrollParams { type Point (line 373) | interface Point { type DragParams (line 378) | interface DragParams { type NavigateParams (line 386) | interface NavigateParams { type WaitCondition (line 393) | type WaitCondition = type WaitParams (line 400) | interface WaitParams { type Assertion (line 404) | type Assertion = type AssertFailStrategy (line 416) | type AssertFailStrategy = 'stop' | 'warn' | 'retry'; type AssertParams (line 418) | interface AssertParams { type ExtractParams (line 425) | type ExtractParams = type ScriptTiming (line 439) | type ScriptTiming = 'before' | 'after'; type ScriptParams (line 441) | interface ScriptParams { type ScreenshotParams (line 450) | interface ScreenshotParams { type HttpMethod (line 458) | type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; type HttpHeaders (line 459) | type HttpHeaders = Record>; type HttpFormData (line 460) | type HttpFormData = Record>; type HttpBody (line 462) | type HttpBody = type HttpOkStatus (line 467) | type HttpOkStatus = type HttpParams (line 471) | interface HttpParams { type TriggerEventParams (line 484) | interface TriggerEventParams { type SetAttributeParams (line 491) | interface SetAttributeParams { type SwitchFrameParams (line 498) | interface SwitchFrameParams { type LoopElementsParams (line 502) | interface LoopElementsParams { type OpenTabParams (line 511) | interface OpenTabParams { type SwitchTabParams (line 516) | interface SwitchTabParams { type CloseTabParams (line 522) | interface CloseTabParams { type HandleDownloadParams (line 527) | interface HandleDownloadParams { type ExecuteFlowParams (line 535) | interface ExecuteFlowParams { type ForeachParams (line 541) | interface ForeachParams { type WhileParams (line 548) | interface WhileParams { type IfBranch (line 554) | interface IfBranch { type IfParams (line 560) | type IfParams = type DelayParams (line 573) | interface DelayParams { type TriggerUrlRuleKind (line 579) | type TriggerUrlRuleKind = 'url' | 'domain' | 'path'; type TriggerUrlRule (line 581) | interface TriggerUrlRule { type TriggerUrlConfig (line 586) | interface TriggerUrlConfig { type TriggerModeConfig (line 590) | interface TriggerModeConfig { type TriggerContextMenuConfig (line 599) | interface TriggerContextMenuConfig { type TriggerCommandConfig (line 604) | interface TriggerCommandConfig { type TriggerDomConfig (line 609) | interface TriggerDomConfig { type TriggerScheduleType (line 617) | type TriggerScheduleType = 'once' | 'interval' | 'daily'; type TriggerSchedule (line 619) | interface TriggerSchedule { type TriggerParams (line 626) | interface TriggerParams { type ActionParamsByType (line 645) | interface ActionParamsByType { type ActionType (line 690) | type ActionType = keyof ActionParamsByType; type ActionBase (line 692) | interface ActionBase { type Action (line 702) | type Action = ActionBase & { type AnyAction (line 706) | type AnyAction = { [T in ActionType]: Action }[ActionType]; type ExecutableActionType (line 708) | type ExecutableActionType = Exclude; type ExecutableAction (line 709) | type ExecutableAction = T extends keyof ActionOutputsB... type ValidationResult (line 752) | type ValidationResult = { ok: true } | { ok: false; errors: NonEmptyArra... type ExecutionFlags (line 758) | interface ExecutionFlags { type ActionExecutionContext (line 766) | interface ActionExecutionContext { type ControlDirective (line 787) | type ControlDirective = type ActionExecutionResult (line 802) | interface ActionExecutionResult { type ActionHandler (line 822) | interface ActionHandler { constant ACTION_TYPES (line 912) | const ACTION_TYPES: ReadonlyArray = [ constant EXECUTABLE_ACTION_TYPES (line 942) | const EXECUTABLE_ACTION_TYPES: ReadonlyArray = ACT... FILE: app/chrome-extension/entrypoints/background/record-replay/engine/constants.ts constant ENGINE_CONSTANTS (line 4) | const ENGINE_CONSTANTS = { type EdgeLabel (line 13) | type EdgeLabel = constant LOG_STEP_IDS (line 17) | const LOG_STEP_IDS = { type LogStepId (line 31) | type LogStepId = (typeof LOG_STEP_IDS)[keyof typeof LOG_STEP_IDS]; FILE: app/chrome-extension/entrypoints/background/record-replay/engine/execution-mode.ts type ExecutionMode (line 18) | type ExecutionMode = 'legacy' | 'actions' | 'hybrid'; type ExecutionModeConfig (line 23) | interface ExecutionModeConfig { constant DEFAULT_EXECUTION_MODE_CONFIG (line 71) | const DEFAULT_EXECUTION_MODE_CONFIG: ExecutionModeConfig = { constant MINIMAL_HYBRID_ACTION_TYPES (line 90) | const MINIMAL_HYBRID_ACTION_TYPES = new Set([ constant MIGRATED_ACTION_TYPES (line 113) | const MIGRATED_ACTION_TYPES = new Set([ constant NEEDS_VALIDATION_TYPES (line 136) | const NEEDS_VALIDATION_TYPES = new Set([ constant LEGACY_ONLY_TYPES (line 159) | const LEGACY_ONLY_TYPES = new Set([ function shouldUseActions (line 170) | function shouldUseActions(step: Step, config: ExecutionModeConfig): bool... function createHybridConfig (line 208) | function createHybridConfig(overrides?: Partial): E... function createActionsOnlyConfig (line 226) | function createActionsOnlyConfig( FILE: app/chrome-extension/entrypoints/background/record-replay/engine/logging/run-logger.ts class RunLogger (line 7) | class RunLogger { method constructor (line 9) | constructor(private runId: string) {} method push (line 11) | push(e: RunLogEntry) { method getLogs (line 15) | getLogs() { method overlayInit (line 19) | async overlayInit() { method overlayAppend (line 27) | async overlayAppend(text: string) { method overlayDone (line 39) | async overlayDone() { method screenshotOnFailure (line 47) | async screenshotOnFailure() { method persist (line 58) | async persist(flow: Flow, startedAt: number, success: boolean) { FILE: app/chrome-extension/entrypoints/background/record-replay/engine/plugins/breakpoint.ts function breakpointPlugin (line 4) | function breakpointPlugin(): RunPlugin { FILE: app/chrome-extension/entrypoints/background/record-replay/engine/plugins/manager.ts class PluginManager (line 13) | class PluginManager { method constructor (line 14) | constructor(private plugins: RunPlugin[]) {} method runStart (line 16) | async runStart(ctx: RunContext) { method beforeStep (line 20) | async beforeStep(ctx: StepContext): Promise { method afterStep (line 28) | async afterStep(ctx: StepAfterContext) { method onError (line 32) | async onError(ctx: StepErrorContext): Promise { method onRetry (line 40) | async onRetry(ctx: StepRetryContext) { method onChooseNextLabel (line 44) | async onChooseNextLabel(ctx: StepContext & { suggested?: string }): Pr... method subflowStart (line 52) | async subflowStart(ctx: SubflowContext) { method subflowEnd (line 56) | async subflowEnd(ctx: SubflowContext) { method runEnd (line 60) | async runEnd(ctx: RunEndContext) { function safeCall (line 65) | async function safeCall(plugin: RunPlugin, ke... FILE: app/chrome-extension/entrypoints/background/record-replay/engine/plugins/types.ts type RunContext (line 7) | interface RunContext { type StepContext (line 13) | interface StepContext extends RunContext { type StepErrorContext (line 17) | interface StepErrorContext extends StepContext { type StepRetryContext (line 21) | interface StepRetryContext extends StepErrorContext { type StepAfterContext (line 25) | interface StepAfterContext extends StepContext { type SubflowContext (line 29) | interface SubflowContext extends RunContext { type RunEndContext (line 33) | interface RunEndContext extends RunContext { type HookControl (line 38) | interface HookControl { type RunPlugin (line 43) | interface RunPlugin { FILE: app/chrome-extension/entrypoints/background/record-replay/engine/policies/retry.ts type BackoffKind (line 3) | type BackoffKind = 'none' | 'exp'; type RetryOptions (line 5) | interface RetryOptions { function withRetry (line 11) | async function withRetry( FILE: app/chrome-extension/entrypoints/background/record-replay/engine/policies/wait.ts function waitForNavigationDone (line 8) | async function waitForNavigationDone(prevUrl: string, timeoutMs?: number) { function ensureReadPageIfWeb (line 12) | async function ensureReadPageIfWeb() { function maybeQuickWaitForNav (line 22) | async function maybeQuickWaitForNav(prevUrl: string, timeoutMs?: number) { FILE: app/chrome-extension/entrypoints/background/record-replay/engine/runners/after-script-queue.ts class AfterScriptQueue (line 12) | class AfterScriptQueue { method constructor (line 15) | constructor(private logger: RunLogger) {} method enqueue (line 17) | enqueue(script: StepScript) { method size (line 21) | size() { method flush (line 25) | async flush(ctx: ExecCtx, vars: Record) { FILE: app/chrome-extension/entrypoints/background/record-replay/engine/runners/control-flow-runner.ts type ControlFlowEnv (line 6) | interface ControlFlowEnv { class ControlFlowRunner (line 14) | class ControlFlowRunner { method constructor (line 15) | constructor(private env: ControlFlowEnv) {} method run (line 17) | async run(control: any, ctx: ExecCtx): Promise<'ok' | 'paused'> { FILE: app/chrome-extension/entrypoints/background/record-replay/engine/runners/step-executor.ts type StepExecutionResult (line 29) | interface StepExecutionResult { type StepExecutionOptions (line 43) | interface StepExecutionOptions { type StepExecutorInterface (line 57) | interface StepExecutorInterface { class LegacyStepExecutor (line 76) | class LegacyStepExecutor implements StepExecutorInterface { method execute (line 77) | async execute( method supports (line 92) | supports(_stepType: string): boolean { class ActionsStepExecutor (line 108) | class ActionsStepExecutor implements StepExecutorInterface { method constructor (line 111) | constructor( method execute (line 118) | async execute( method supports (line 146) | supports(stepType: string): boolean { class HybridStepExecutor (line 161) | class HybridStepExecutor implements StepExecutorInterface { method constructor (line 164) | constructor( method execute (line 171) | async execute( method supports (line 221) | supports(stepType: string): boolean { function createExecutor (line 230) | function createExecutor( FILE: app/chrome-extension/entrypoints/background/record-replay/engine/runners/step-runner.ts type ErrorLike (line 27) | interface ErrorLike { function errorMessage (line 31) | function errorMessage(e: unknown): string { type StepRunEnv (line 41) | interface StepRunEnv { class StepRunner (line 64) | class StepRunner { method constructor (line 65) | constructor(private env: StepRunEnv) {} method getActiveTabInfo (line 67) | private async getActiveTabInfo(): Promise<{ url: string; status: strin... method run (line 73) | async run( FILE: app/chrome-extension/entrypoints/background/record-replay/engine/runners/subflow-runner.ts type SubflowEnv (line 12) | interface SubflowEnv { class SubflowRunner (line 21) | class SubflowRunner { method constructor (line 22) | constructor(private env: SubflowEnv) {} method runSubflowById (line 24) | async runSubflowById(subflowId: string, ctx: ExecCtx, pausedRef: () =>... FILE: app/chrome-extension/entrypoints/background/record-replay/engine/scheduler.ts type RunOptions (line 34) | interface RunOptions { function isExecutionMode (line 71) | function isExecutionMode(value: unknown): value is ExecutionMode { function toStringSet (line 78) | function toStringSet(value: unknown): Set { function buildExecutionModeConfig (line 98) | function buildExecutionModeConfig(options: RunOptions): ExecutionModeCon... class ExecutionOrchestrator (line 133) | class ExecutionOrchestrator { method constructor (line 160) | constructor( method ensureWithinDeadline (line 203) | private ensureWithinDeadline() { method run (line 215) | async run(): Promise { method prepareExecution (line 225) | private async prepareExecution() { method hasCycle (line 476) | private hasCycle( method traverseDag (line 500) | private async traverseDag(): Promise { method advanceToNext (line 685) | private async advanceToNext( method chooseNextLabel (line 714) | private async chooseNextLabel(step: Step, suggested: string): Promise<... method findNextNodeId (line 735) | private findNextNodeId( method evalCondition (line 747) | private evalCondition(cond: any): boolean { method cleanup (line 763) | private async cleanup() { function runFlow (line 843) | async function runFlow(flow: Flow, options: RunOptions = {}): Promise = (payload: T) => void; type RunState (line 5) | interface RunState { class StateManager (line 14) | class StateManager { method constructor (line 19) | constructor(storageKey: string) { method on (line 23) | on(name: string, listener: Listener) { method off (line 27) | off(name: string, listener: Listener) { method emit (line 34) | private emit(name: string, payload: E) { method getAll (line 42) | getAll(): Map { method get (line 46) | get(id: string): T | undefined { method add (line 50) | async add(id: string, data: T): Promise { method update (line 56) | async update(id: string, patch: Partial): Promise { method delete (line 65) | async delete(id: string): Promise { method persist (line 71) | private async persist(): Promise { method restore (line 78) | async restore(): Promise { FILE: app/chrome-extension/entrypoints/background/record-replay/engine/utils/expression.ts type Token (line 8) | type Token = { type: string; value?: any }; function tokenize (line 10) | function tokenize(input: string): Token[] { function evalExpression (line 92) | function evalExpression(expr: string, scope: { vars: Record... FILE: app/chrome-extension/entrypoints/background/record-replay/flow-store.ts constant VALID_NODE_TYPES (line 11) | const VALID_NODE_TYPES = new Set(Object.values(NODE_TYPES)); function isValidNodeType (line 12) | function isValidNodeType(type: string): boolean { function toNodeBase (line 17) | function toNodeBase(node: RRNode): NodeBase { function toEdge (line 26) | function toEdge(edge: RREdge): Edge { function filterValidEdges (line 39) | function filterValidEdges(edges: Edge[], nodeIds: Set): Edge[] { function notifyFlowsChanged (line 57) | function notifyFlowsChanged(): void { function stripStepsForSave (line 86) | function stripStepsForSave(flow: Flow): Flow { function normalizeFlowForSave (line 103) | function normalizeFlowForSave(flow: Flow): Flow { type PublishedFlowInfo (line 148) | interface PublishedFlowInfo { function needsNormalization (line 159) | function needsNormalization(flow: Flow): boolean { function lazyNormalize (line 170) | async function lazyNormalize(flow: Flow): Promise { function listFlows (line 186) | async function listFlows(): Promise { function getFlow (line 208) | async function getFlow(flowId: string): Promise { function saveFlow (line 220) | async function saveFlow(flow: Flow, options?: { notify?: boolean }): Pro... function deleteFlow (line 233) | async function deleteFlow(flowId: string): Promise { function listRuns (line 239) | async function listRuns(): Promise { function appendRun (line 244) | async function appendRun(record: RunRecord): Promise { function listPublished (line 269) | async function listPublished(): Promise { function publishFlow (line 274) | async function publishFlow(flow: Flow, slug?: string): Promise { function toSlug (line 292) | function toSlug(name: string): string { function exportFlow (line 300) | async function exportFlow(flowId: string): Promise { function exportAllFlows (line 306) | async function exportAllFlows(): Promise { function importFlowFromJson (line 322) | async function importFlowFromJson(json: string): Promise { type ScheduleType (line 397) | type ScheduleType = 'once' | 'interval' | 'daily'; type FlowSchedule (line 398) | interface FlowSchedule { function listSchedules (line 409) | async function listSchedules(): Promise { function saveSchedule (line 414) | async function saveSchedule(s: FlowSchedule): Promise { function removeSchedule (line 419) | async function removeSchedule(scheduleId: string): Promise { FILE: app/chrome-extension/entrypoints/background/record-replay/index.ts function rescheduleAlarms (line 29) | async function rescheduleAlarms() { function startRecording (line 63) | async function startRecording(meta?: Partial): Promise<{ success: ... function stopRecording (line 67) | async function stopRecording(): Promise<{ success: boolean; flow?: Flow;... function initRecordReplayListeners (line 71) | function initRecordReplayListeners() { function matchUrl (line 368) | function matchUrl( function refreshContextMenus (line 387) | async function refreshContextMenus(triggers: FlowTrigger[]) { function removeRecordReplayMenus (line 412) | async function removeRecordReplayMenus() { function refreshTriggers (line 426) | async function refreshTriggers() { function initTriggerEngine (line 459) | async function initTriggerEngine() { function ensureCoreInjected (line 464) | async function ensureCoreInjected(tabId?: number) { function pingTab (line 479) | async function pingTab(tabId: number, action: string): Promise { FILE: app/chrome-extension/entrypoints/background/record-replay/legacy-types.ts type SelectorType (line 23) | type SelectorType = 'css' | 'xpath' | 'attr' | 'aria' | 'text'; type SelectorCandidate (line 25) | interface SelectorCandidate { type TargetLocator (line 31) | interface TargetLocator { type StepType (line 40) | type StepType = (typeof STEP_TYPES)[keyof typeof STEP_TYPES]; type StepBase (line 42) | interface StepBase { type StepClick (line 50) | interface StepClick extends StepBase { type StepFill (line 57) | interface StepFill extends StepBase { type StepTriggerEvent (line 63) | interface StepTriggerEvent extends StepBase { type StepSetAttribute (line 71) | interface StepSetAttribute extends StepBase { type StepScreenshot (line 79) | interface StepScreenshot extends StepBase { type StepSwitchFrame (line 86) | interface StepSwitchFrame extends StepBase { type StepLoopElements (line 91) | interface StepLoopElements extends StepBase { type StepKey (line 99) | interface StepKey extends StepBase { type StepScroll (line 105) | interface StepScroll extends StepBase { type StepDrag (line 112) | interface StepDrag extends StepBase { type StepWait (line 119) | interface StepWait extends StepBase { type StepAssert (line 129) | interface StepAssert extends StepBase { type StepScript (line 140) | interface StepScript extends StepBase { type StepIf (line 147) | interface StepIf extends StepBase { type StepForeach (line 153) | interface StepForeach extends StepBase { type StepWhile (line 160) | interface StepWhile extends StepBase { type StepHttp (line 167) | interface StepHttp extends StepBase { type StepExtract (line 178) | interface StepExtract extends StepBase { type StepOpenTab (line 186) | interface StepOpenTab extends StepBase { type StepSwitchTab (line 192) | interface StepSwitchTab extends StepBase { type StepCloseTab (line 199) | interface StepCloseTab extends StepBase { type StepNavigate (line 205) | interface StepNavigate extends StepBase { type StepHandleDownload (line 210) | interface StepHandleDownload extends StepBase { type StepExecuteFlow (line 217) | interface StepExecuteFlow extends StepBase { type Step (line 228) | type Step = FILE: app/chrome-extension/entrypoints/background/record-replay/nodes/index.ts function executeStep (line 56) | async function executeStep(ctx: ExecCtx, step: Step): Promise { FILE: app/chrome-extension/entrypoints/background/record-replay/nodes/types.ts type ExecCtx (line 7) | interface ExecCtx { type ExecResult (line 24) | interface ExecResult { type NodeRuntime (line 33) | interface NodeRuntime { FILE: app/chrome-extension/entrypoints/background/record-replay/recording/browser-event-listener.ts function initBrowserEventListeners (line 7) | function initBrowserEventListeners(session: RecordingSessionManager): vo... FILE: app/chrome-extension/entrypoints/background/record-replay/recording/content-injection.ts type RecorderCmd (line 4) | type RecorderCmd = 'start' | 'stop' | 'pause' | 'resume'; constant REC_CMD (line 5) | const REC_CMD = { constant RECORDER_JS_SCRIPT (line 12) | const RECORDER_JS_SCRIPT = 'inject-scripts/recorder.js'; function ensureRecorderInjected (line 14) | async function ensureRecorderInjected(tabId: number): Promise { function broadcastControlToTab (line 68) | async function broadcastControlToTab( FILE: app/chrome-extension/entrypoints/background/record-replay/recording/content-message-handler.ts function initContentMessageHandler (line 13) | function initContentMessageHandler(session: RecordingSessionManager): vo... FILE: app/chrome-extension/entrypoints/background/record-replay/recording/flow-builder.ts constant WORKFLOW_VERSION (line 6) | const WORKFLOW_VERSION = 1; function createInitialFlow (line 12) | function createInitialFlow(meta?: Partial): Flow { function generateStepId (line 30) | function generateStepId(): string { function addNavigationStep (line 39) | function addNavigationStep(flow: Flow, url: string): void { function appendNodeToFlow (line 62) | function appendNodeToFlow(flow: Flow, step: Step): void { FILE: app/chrome-extension/entrypoints/background/record-replay/recording/recorder-manager.ts constant STOP_BARRIER_TOP_TIMEOUT_MS (line 10) | const STOP_BARRIER_TOP_TIMEOUT_MS = 5000; constant STOP_BARRIER_SUBFRAME_TIMEOUT_MS (line 13) | const STOP_BARRIER_SUBFRAME_TIMEOUT_MS = 1500; constant STOP_BARRIER_GRACE_MS (line 16) | const STOP_BARRIER_GRACE_MS = 150; type StopAckStats (line 19) | interface StopAckStats { type StopFrameAck (line 25) | interface StopFrameAck { type StopTabBarrierResult (line 33) | interface StopTabBarrierResult { function listFrameIds (line 45) | async function listFrameIds(tabId: number): Promise { function sendStopToFrameWithAck (line 61) | async function sendStopToFrameWithAck( function stopTabWithBarrier (line 100) | async function stopTabWithBarrier(tabId: number, sessionId: string): Pro... class RecorderManagerImpl (line 129) | class RecorderManagerImpl { method init (line 132) | async init(): Promise { method start (line 139) | async start(meta?: Partial): Promise<{ success: boolean; error?:... method stop (line 190) | async stop(): Promise<{ success: boolean; error?: string; flow?: Flow ... method pause (line 267) | async pause(): Promise<{ success: boolean; error?: string }> { method resume (line 288) | async resume(): Promise<{ success: boolean; error?: string }> { FILE: app/chrome-extension/entrypoints/background/record-replay/recording/session-manager.ts type RecordingStatus (line 13) | type RecordingStatus = 'idle' | 'recording' | 'paused' | 'stopping'; type RecordingSessionState (line 15) | interface RecordingSessionState { constant VALID_NODE_TYPES (line 27) | const VALID_NODE_TYPES = new Set(Object.values(NODE_TYPES)); class RecordingSessionManager (line 29) | class RecordingSessionManager { method getStatus (line 45) | getStatus(): RecordingStatus { method getSession (line 49) | getSession(): Readonly { method getFlow (line 53) | getFlow(): Flow | null { method getOriginTabId (line 57) | getOriginTabId(): number | null { method addActiveTab (line 61) | addActiveTab(tabId: number): void { method removeActiveTab (line 65) | removeActiveTab(tabId: number): void { method getActiveTabs (line 69) | getActiveTabs(): number[] { method startSession (line 73) | async startSession(flow: Flow, originTabId: number): Promise { method beginStopping (line 95) | beginStopping(): string { method markTabStopped (line 106) | markTabStopped(tabId: number): boolean { method isStopping (line 120) | isStopping(): boolean { method canAcceptSteps (line 127) | canAcceptSteps(): boolean { method pause (line 134) | pause(): void { method resume (line 143) | resume(): void { method stopSession (line 152) | async stopSession(): Promise { method updateFlow (line 165) | updateFlow(mutator: (f: Flow) => void): void { method appendSteps (line 188) | appendSteps(steps: Step[]): void { method toNodeType (line 281) | private toNodeType(stepType: string): NodeBase['type'] { method checkDagInvariant (line 294) | private checkDagInvariant(nodes: NodeBase[], edges: Edge[]): boolean { method rebuildCaches (line 319) | private rebuildCaches(): void { method rebuildDagFromSteps (line 340) | private rebuildDagFromSteps(): void { method rechainEdges (line 377) | private rechainEdges(): void { method appendVariables (line 404) | appendVariables(variables: VariableDef[]): void { method getTimelineSteps (line 442) | private getTimelineSteps(): Step[] { method broadcastTimelineUpdate (line 468) | broadcastTimelineUpdate(): void { FILE: app/chrome-extension/entrypoints/background/record-replay/rr-utils.ts function applyAssign (line 13) | function applyAssign( function expandTemplatesDeep (line 39) | function expandTemplatesDeep(value: T, scope: Record(store: StoreName): Promise { function getOne (line 42) | async function getOne(store: StoreName, key: string): Promise(store: StoreName, value: T): Promise { function deleteOne (line 50) | async function deleteOne(store: StoreName, key: string): Promise { function clearStore (line 54) | async function clearStore(store: StoreName): Promise { function putMany (line 58) | async function putMany(storeName: StoreName, values: T[]): Promise { method get (line 67) | async get(id: string): Promise { method save (line 70) | async save(flow: Flow): Promise { method delete (line 73) | async delete(id: string): Promise { method list (line 78) | async list(): Promise { method save (line 81) | async save(record: RunRecord): Promise { method replaceAll (line 84) | async replaceAll(records: RunRecord[]): Promise { method list (line 93) | async list(): Promise { method save (line 96) | async save(info: PublishedFlowInfo): Promise { method delete (line 99) | async delete(id: string): Promise { method list (line 104) | async list(): Promise { method save (line 107) | async save(s: FlowSchedule): Promise { method delete (line 110) | async delete(id: string): Promise { method list (line 115) | async list(): Promise { method save (line 118) | async save(t: FlowTrigger): Promise { method delete (line 121) | async delete(id: string): Promise { function ensureMigratedFromLocal (line 131) | async function ensureMigratedFromLocal(): Promise { FILE: app/chrome-extension/entrypoints/background/record-replay/trigger-store.ts type TriggerType (line 3) | type TriggerType = 'url' | 'contextMenu' | 'command' | 'dom'; type BaseTrigger (line 5) | interface BaseTrigger { type UrlTrigger (line 13) | interface UrlTrigger extends BaseTrigger { type ContextMenuTrigger (line 18) | interface ContextMenuTrigger extends BaseTrigger { type CommandTrigger (line 24) | interface CommandTrigger extends BaseTrigger { type DomTrigger (line 29) | interface DomTrigger extends BaseTrigger { type FlowTrigger (line 37) | type FlowTrigger = UrlTrigger | ContextMenuTrigger | CommandTrigger | Do... function listTriggers (line 39) | async function listTriggers(): Promise { function saveTrigger (line 44) | async function saveTrigger(t: FlowTrigger): Promise { function deleteTrigger (line 49) | async function deleteTrigger(id: string): Promise { function toId (line 54) | function toId(prefix = 'trg') { FILE: app/chrome-extension/entrypoints/background/record-replay/types.ts type VariableType (line 62) | type VariableType = 'string' | 'number' | 'boolean' | 'enum' | 'array'; type VariableDef (line 64) | interface VariableDef { type NodeType (line 78) | type NodeType = (typeof NODE_TYPES)[keyof typeof NODE_TYPES]; type NodeBase (line 80) | interface NodeBase { type Edge (line 89) | interface Edge { type Flow (line 102) | interface Flow { type RunLogEntry (line 146) | interface RunLogEntry { type RunRecord (line 160) | interface RunRecord { type RunResult (line 169) | interface RunResult { FILE: app/chrome-extension/entrypoints/background/semantic-similarity.ts type ModelConfig (line 10) | interface ModelConfig { function initializeSemanticEngineIfCached (line 22) | async function initializeSemanticEngineIfCached(): Promise { function initializeDefaultSemanticEngine (line 44) | async function initializeDefaultSemanticEngine(): Promise { function needsModelSwitch (line 113) | function needsModelSwitch( function handleModelSwitch (line 141) | async function handleModelSwitch( function handleGetModelStatus (line 215) | async function handleGetModelStatus(): Promise<{ function updateModelStatus (line 262) | async function updateModelStatus( function handleUpdateModelStatus (line 292) | async function handleUpdateModelStatus( function analyzeErrorType (line 313) | function analyzeErrorType(errorMessage: string): 'network' | 'file' | 'u... FILE: app/chrome-extension/entrypoints/background/storage-manager.ts function handleGetStorageStats (line 6) | async function handleGetStorageStats(): Promise<{ function handleClearAllData (line 55) | async function handleClearAllData(): Promise<{ success: boolean; error?:... FILE: app/chrome-extension/entrypoints/background/tools/base-browser.ts constant PING_TIMEOUT_MS (line 5) | const PING_TIMEOUT_MS = 300; method injectContentScript (line 17) | protected async injectContentScript( method sendMessageToTab (line 89) | protected async sendMessageToTab(tabId: number, message: any, frameId?: ... method tryGetTab (line 117) | protected async tryGetTab(tabId?: number): Promise { method ensureFocus (line 139) | protected async ensureFocus( method getActiveTabInWindow (line 156) | protected async getActiveTabInWindow(windowId?: number): Promise { class BookmarkAddTool (line 362) | class BookmarkAddTool extends BaseBrowserToolExecutor { method execute (line 368) | async execute(args: BookmarkAddToolParams): Promise { class BookmarkDeleteTool (line 500) | class BookmarkDeleteTool extends BaseBrowserToolExecutor { method execute (line 506) | async execute(args: BookmarkDeleteToolParams): Promise { FILE: app/chrome-extension/entrypoints/background/tools/browser/common.ts constant DEFAULT_WINDOW_WIDTH (line 7) | const DEFAULT_WINDOW_WIDTH = 1280; constant DEFAULT_WINDOW_HEIGHT (line 8) | const DEFAULT_WINDOW_HEIGHT = 720; type NavigateToolParams (line 10) | interface NavigateToolParams { class NavigateTool (line 24) | class NavigateTool extends BaseBrowserToolExecutor { method triggerAutoCapture (line 30) | private async triggerAutoCapture(tabId: number, url?: string): Promise... method execute (line 41) | async execute(args: NavigateToolParams): Promise { type CloseTabsToolParams (line 444) | interface CloseTabsToolParams { class CloseTabsTool (line 452) | class CloseTabsTool extends BaseBrowserToolExecutor { method execute (line 455) | async execute(args: CloseTabsToolParams): Promise { type SwitchTabToolParams (line 626) | interface SwitchTabToolParams { class SwitchTabTool (line 634) | class SwitchTabTool extends BaseBrowserToolExecutor { method execute (line 637) | async execute(args: SwitchTabToolParams): Promise { FILE: app/chrome-extension/entrypoints/background/tools/browser/computer.ts type MouseButton (line 18) | type MouseButton = 'left' | 'right' | 'middle'; type Coordinates (line 20) | interface Coordinates { type ZoomRegion (line 25) | interface ZoomRegion { type Modifiers (line 32) | interface Modifiers { type ComputerParams (line 39) | interface ComputerParams { class CDPHelper (line 81) | class CDPHelper { method attach (line 82) | static async attach(tabId: number): Promise { method detach (line 86) | static async detach(tabId: number): Promise { method send (line 90) | static async send(tabId: number, method: string, params?: object): Pro... method dispatchMouseEvent (line 94) | static async dispatchMouseEvent(tabId: number, opts: any) { method insertText (line 120) | static async insertText(tabId: number, text: string) { method modifierMask (line 124) | static modifierMask(mods: string[]): number { method resolveKeyDef (line 161) | private static resolveKeyDef(token: string): { key: string; code?: str... method dispatchSimpleKey (line 174) | static async dispatchSimpleKey(tabId: number, token: string) { method dispatchKeyChord (line 192) | static async dispatchKeyChord(tabId: number, chord: string) { class ComputerTool (line 222) | class ComputerTool extends BaseBrowserToolExecutor { method execute (line 225) | async execute(args: ComputerParams): Promise { method mapActionToCapture (line 275) | private mapActionToCapture(action: string): ActionType | null { method executeAction (line 295) | private async executeAction(params: ComputerParams, tab: chrome.tabs.T... method domHoverFallback (line 1298) | private async domHoverFallback( method triggerAutoCapture (line 1406) | private async triggerAutoCapture( FILE: app/chrome-extension/entrypoints/background/tools/browser/console-buffer.ts constant DEFAULT_MAX_BUFFER_MESSAGES (line 10) | const DEFAULT_MAX_BUFFER_MESSAGES = 2000; constant DEFAULT_MAX_BUFFER_EXCEPTIONS (line 11) | const DEFAULT_MAX_BUFFER_EXCEPTIONS = 500; type BufferedConsoleMessage (line 13) | interface BufferedConsoleMessage { type BufferedConsoleException (line 24) | interface BufferedConsoleException { type TabConsoleBufferState (line 33) | interface TabConsoleBufferState { type ConsoleBufferReadOptions (line 45) | interface ConsoleBufferReadOptions { type ConsoleBufferReadResult (line 52) | interface ConsoleBufferReadResult { function extractHostname (line 70) | function extractHostname(url?: string): string { function isErrorLevel (line 79) | function isErrorLevel(level?: string): boolean { function matchesPattern (line 84) | function matchesPattern(pattern: RegExp, text: string): boolean { function formatConsoleArgs (line 89) | function formatConsoleArgs(args: unknown[]): string { function extractArgPreview (line 109) | function extractArgPreview(arg: unknown): unknown { function safeTimestamp (line 127) | function safeTimestamp(value: unknown): number { function safeString (line 134) | function safeString(value: unknown): string { function safeNumber (line 138) | function safeNumber(value: unknown): number | undefined { class ConsoleBuffer (line 142) | class ConsoleBuffer { method constructor (line 147) | constructor() { method isCapturing (line 162) | isCapturing(tabId: number): boolean { method ensureStarted (line 169) | async ensureStarted(tabId: number): Promise { method clear (line 185) | clear( method read (line 212) | read(tabId: number, options: ConsoleBufferReadOptions = {}): ConsoleBu... method startCapture (line 274) | private async startCapture(tabId: number): Promise { method handleTabRemoved (line 305) | private handleTabRemoved(tabId: number): void { method handleTabUpdated (line 310) | private handleTabUpdated( method handleDebuggerDetach (line 336) | private handleDebuggerDetach(source: chrome.debugger.Debuggee, reason:... method handleDebuggerEvent (line 349) | private handleDebuggerEvent( method trimMessages (line 415) | private trimMessages(state: TabConsoleBufferState): void { method trimExceptions (line 422) | private trimExceptions(state: TabConsoleBufferState): void { method stopCapture (line 429) | private async stopCapture(tabId: number, reason: string): Promise { FILE: app/chrome-extension/entrypoints/background/tools/browser/console.ts constant DEFAULT_MAX_MESSAGES (line 7) | const DEFAULT_MAX_MESSAGES = 100; type ConsoleMode (line 9) | type ConsoleMode = 'snapshot' | 'buffer'; type ConsoleToolParams (line 11) | interface ConsoleToolParams { type ConsoleMessage (line 28) | interface ConsoleMessage { type ConsoleException (line 40) | interface ConsoleException { type ConsoleResult (line 49) | interface ConsoleResult { function normalizeLimit (line 69) | function normalizeLimit(value: unknown, fallback: number): number { function parseRegexPattern (line 74) | function parseRegexPattern(pattern?: string): RegExp | undefined { function matchesPattern (line 88) | function matchesPattern(pattern: RegExp, text: string): boolean { function isErrorLevel (line 93) | function isErrorLevel(level?: string): boolean { function applyResultFilters (line 98) | function applyResultFilters( function isDebuggerConflictError (line 126) | function isDebuggerConflictError(error: unknown): boolean { function formatDebuggerConflictMessage (line 131) | function formatDebuggerConflictMessage(tabId: number, originalMessage: s... class ConsoleTool (line 142) | class ConsoleTool extends BaseBrowserToolExecutor { method execute (line 145) | async execute(args: ConsoleToolParams): Promise { method navigateToUrl (line 311) | private async navigateToUrl( method waitForTabReady (line 338) | private async waitForTabReady(tabId: number): Promise { method formatConsoleArgs (line 357) | private formatConsoleArgs(args: any[]): string { method captureConsoleMessages (line 381) | private async captureConsoleMessages( FILE: app/chrome-extension/entrypoints/background/tools/browser/dialog.ts type HandleDialogParams (line 6) | interface HandleDialogParams { class HandleDialogTool (line 14) | class HandleDialogTool extends BaseBrowserToolExecutor { method execute (line 17) | async execute(args: HandleDialogParams): Promise { FILE: app/chrome-extension/entrypoints/background/tools/browser/download.ts type HandleDownloadParams (line 5) | interface HandleDownloadParams { class HandleDownloadTool (line 14) | class HandleDownloadTool extends BaseBrowserToolExecutor { method execute (line 17) | async execute(args: HandleDownloadParams): Promise { function waitForDownload (line 34) | async function waitForDownload(opts: { FILE: app/chrome-extension/entrypoints/background/tools/browser/element-picker.ts type NormalizedRequest (line 24) | interface NormalizedRequest { type ElementPickerToolParams (line 30) | interface ElementPickerToolParams { type PickerUiEvent (line 37) | interface PickerUiEvent { type PickerFrameEvent (line 44) | interface PickerFrameEvent { constant DEFAULT_TIMEOUT_MS (line 56) | const DEFAULT_TIMEOUT_MS = 3 * 60 * 1000; constant MAX_TIMEOUT_MS (line 57) | const MAX_TIMEOUT_MS = 10 * 60 * 1000; constant MIN_TIMEOUT_MS (line 58) | const MIN_TIMEOUT_MS = 10 * 1000; function toTrimmedString (line 64) | function toTrimmedString(value: unknown): string { function normalizeTimeoutMs (line 68) | function normalizeTimeoutMs(value: unknown): number { function normalizeRequests (line 75) | function normalizeRequests(requests: ElementPickerRequest[]): Normalized... function buildResultItems (line 100) | function buildResultItems( function listMissingRequestIds (line 111) | function listMissingRequestIds( class ElementPickerTool (line 126) | class ElementPickerTool extends BaseBrowserToolExecutor { method injectPickerScripts (line 132) | private async injectPickerScripts(tabId: number): Promise { method callPickerApi (line 144) | private async callPickerApi( method execute (line 172) | async execute(args: ElementPickerToolParams): Promise { FILE: app/chrome-extension/entrypoints/background/tools/browser/file-upload.ts type FileUploadToolParams (line 6) | interface FileUploadToolParams { class FileUploadTool (line 21) | class FileUploadTool extends BaseBrowserToolExecutor { method constructor (line 23) | constructor() { method execute (line 30) | async execute(args: FileUploadToolParams): Promise { method prepareFileFromRemote (line 169) | private async prepareFileFromRemote(options: { FILE: app/chrome-extension/entrypoints/background/tools/browser/gif-auto-capture.ts constant CDP_SESSION_KEY (line 42) | const CDP_SESSION_KEY = 'gif-auto-capture'; constant DEFAULT_CAPTURE_DELAY_MS (line 43) | const DEFAULT_CAPTURE_DELAY_MS = 150; constant DEFAULT_WIDTH (line 44) | const DEFAULT_WIDTH = 800; constant DEFAULT_HEIGHT (line 45) | const DEFAULT_HEIGHT = 600; constant DEFAULT_FRAME_DELAY_CS (line 46) | const DEFAULT_FRAME_DELAY_CS = 20; constant DEFAULT_MAX_COLORS (line 47) | const DEFAULT_MAX_COLORS = 256; type AutoCaptureConfig (line 53) | interface AutoCaptureConfig { type TabCaptureState (line 63) | interface TabCaptureState { function sleep (line 88) | function sleep(ms: number): Promise { function normalizeActionMetadata (line 92) | function normalizeActionMetadata(action: ActionMetadata, atMs: number): ... function sendToOffscreen (line 115) | async function sendToOffscreen { FILE: app/chrome-extension/entrypoints/background/tools/browser/gif-enhanced-renderer.ts type ActionType (line 16) | type ActionType = type CoordinateSpace (line 31) | type CoordinateSpace = 'viewport' | 'screenshot'; type Point (line 33) | interface Point { type ActionMetadata (line 38) | interface ActionMetadata { type GifEnhancedRenderingConfig (line 53) | interface GifEnhancedRenderingConfig { type ResolvedClickIndicatorConfig (line 101) | interface ResolvedClickIndicatorConfig { type ResolvedDragPathConfig (line 113) | interface ResolvedDragPathConfig { type ResolvedLabelsConfig (line 124) | interface ResolvedLabelsConfig { type ResolvedGifEnhancedRenderingConfig (line 140) | interface ResolvedGifEnhancedRenderingConfig { type ActionEvent (line 147) | interface ActionEvent { type CapturePlan (line 152) | interface CapturePlan { type RenderGifEnhancedOverlaysParams (line 158) | interface RenderGifEnhancedOverlaysParams { constant CLICK_ACTIONS (line 173) | const CLICK_ACTIONS: readonly ActionType[] = [ function clamp (line 184) | function clamp(value: number, min: number, max: number): number { function normalizePositiveNumber (line 188) | function normalizePositiveNumber( function normalizePositiveInt (line 198) | function normalizePositiveInt(value: unknown, fallback: number, min: num... function normalizeDash (line 203) | function normalizeDash(value: unknown, fallback: number[]): number[] { function easeOutCubic (line 209) | function easeOutCubic(t: number): number { function projectPoint (line 214) | function projectPoint( function buildRoundedRectPath (line 239) | function buildRoundedRectPath( function truncate (line 258) | function truncate(text: string, maxLength: number): string { function resolveActionLabel (line 268) | function resolveActionLabel(action: ActionMetadata, cfg: ResolvedLabelsC... function resolveAnchorPoint (line 322) | function resolveAnchorPoint(action: ActionMetadata): Point | null { function drawClickIndicator (line 333) | function drawClickIndicator( function drawArrowHead (line 380) | function drawArrowHead( function drawDragPath (line 412) | function drawDragPath( function drawLabelPill (line 456) | function drawLabelPill( type SchemaEnhancedRenderingInput (line 520) | interface SchemaEnhancedRenderingInput { function normalizeSchemaInput (line 562) | function normalizeSchemaInput(raw: unknown): GifEnhancedRenderingConfig ... function resolveGifEnhancedRenderingConfig (line 646) | function resolveGifEnhancedRenderingConfig( function resolveCapturePlanForAction (line 713) | function resolveCapturePlanForAction( function renderGifEnhancedOverlays (line 739) | function renderGifEnhancedOverlays(params: RenderGifEnhancedOverlaysPara... function pruneActionEventsInPlace (line 799) | function pruneActionEventsInPlace( FILE: app/chrome-extension/entrypoints/background/tools/browser/gif-recorder.ts constant DEFAULT_FPS (line 43) | const DEFAULT_FPS = 5; constant DEFAULT_DURATION_MS (line 44) | const DEFAULT_DURATION_MS = 5000; constant DEFAULT_MAX_FRAMES (line 45) | const DEFAULT_MAX_FRAMES = 50; constant DEFAULT_WIDTH (line 46) | const DEFAULT_WIDTH = 800; constant DEFAULT_HEIGHT (line 47) | const DEFAULT_HEIGHT = 600; constant DEFAULT_MAX_COLORS (line 48) | const DEFAULT_MAX_COLORS = 256; constant CDP_SESSION_KEY (line 49) | const CDP_SESSION_KEY = 'gif-recorder'; type GifRecorderAction (line 55) | type GifRecorderAction = type GifRecorderParams (line 64) | interface GifRecorderParams { type RecordingState (line 87) | interface RecordingState { type GifResult (line 108) | interface GifResult { type AutoCaptureMetadata (line 143) | interface AutoCaptureMetadata { type ExportableGif (line 150) | interface ExportableGif { constant EXPORT_CACHE_LIFETIME_MS (line 165) | const EXPORT_CACHE_LIFETIME_MS = 5 * 60 * 1000; type OffscreenResponseBase (line 171) | type OffscreenResponseBase = { success: boolean; error?: string }; function sendToOffscreen (line 173) | async function sendToOffscreen( function captureFrame (line 213) | async function captureFrame( function captureAndEncodeFrame (line 253) | async function captureAndEncodeFrame(state: RecordingState): Promise { function startRecording (line 315) | async function startRecording( function stopRecording (line 412) | async function stopRecording(): Promise { function getRecordingStatus (line 572) | function getRecordingStatus(): GifResult { function blobToDataUrl (line 595) | function blobToDataUrl(blob: Blob): Promise { function normalizePositiveInt (line 604) | function normalizePositiveInt(value: unknown, fallback: number, max?: nu... class GifRecorderTool (line 616) | class GifRecorderTool extends BaseBrowserToolExecutor { method execute (line 619) | async execute(args: GifRecorderParams): Promise { method isRestrictedUrl (line 1204) | private isRestrictedUrl(url?: string): boolean { method resolveTargetTab (line 1214) | private async resolveTargetTab(tabId?: number): Promise { FILE: app/chrome-extension/entrypoints/background/tools/browser/inject-script.ts type InjectScriptParam (line 6) | interface InjectScriptParam { type ScriptConfig (line 12) | interface ScriptConfig { type SendCommandToInjectScriptToolParam (line 17) | interface SendCommandToInjectScriptToolParam { class InjectScriptTool (line 24) | class InjectScriptTool extends BaseBrowserToolExecutor { method execute (line 26) | async execute(args: InjectScriptParam & ScriptConfig): Promise { type FillToolParams (line 158) | interface FillToolParams { class FillTool (line 172) | class FillTool extends BaseBrowserToolExecutor { method execute (line 178) | async execute(args: FillToolParams): Promise { FILE: app/chrome-extension/entrypoints/background/tools/browser/javascript.ts constant DEFAULT_TIMEOUT_MS (line 30) | const DEFAULT_TIMEOUT_MS = 15_000; constant CDP_SESSION_KEY (line 31) | const CDP_SESSION_KEY = 'javascript'; type ExecutionEngine (line 37) | type ExecutionEngine = 'cdp' | 'scripting'; type ErrorKind (line 39) | type ErrorKind = type JavaScriptToolParams (line 47) | interface JavaScriptToolParams { type ExecutionError (line 54) | interface ExecutionError { type ExecutionMetrics (line 64) | interface ExecutionMetrics { type JavaScriptToolResult (line 68) | interface JavaScriptToolResult { type ExecutionOptions (line 80) | interface ExecutionOptions { type ExecutionSuccess (line 86) | type ExecutionSuccess = { type ExecutionFailure (line 94) | type ExecutionFailure = { type ExecutionResult (line 100) | type ExecutionResult = ExecutionSuccess | ExecutionFailure; class TimeoutError (line 106) | class TimeoutError extends Error { method constructor (line 107) | constructor(timeoutMs: number) { function normalizePositiveInt (line 117) | function normalizePositiveInt(value: unknown, fallback: number): number { function withTimeout (line 124) | function withTimeout(promise: Promise, timeoutMs: number): Promise... function isTimeoutError (line 137) | function isTimeoutError(error: unknown): error is TimeoutError { function isDebuggerConflictError (line 141) | function isDebuggerConflictError(error: unknown): boolean { function wrapUserCode (line 151) | function wrapUserCode(code: string): string { type CDPRemoteObject (line 159) | interface CDPRemoteObject { type CDPExceptionDetails (line 167) | interface CDPExceptionDetails { type CDPEvaluateResult (line 179) | interface CDPEvaluateResult { function extractReturnValue (line 184) | function extractReturnValue(remoteObject?: CDPRemoteObject): unknown { function parseExceptionDetails (line 194) | function parseExceptionDetails(details: CDPExceptionDetails): ExecutionE... function executeViaCdp (line 221) | async function executeViaCdp( type ScriptingExecutionResult (line 294) | interface ScriptingExecutionResult { function executeViaScripting (line 304) | async function executeViaScripting( class JavaScriptTool (line 403) | class JavaScriptTool extends BaseBrowserToolExecutor { method execute (line 406) | async execute(args: JavaScriptToolParams): Promise { method resolveTargetTab (line 469) | private async resolveTargetTab(tabId?: number): Promise { FILE: app/chrome-extension/entrypoints/background/tools/browser/network-capture-debugger.ts type NetworkDebuggerStartToolParams (line 7) | interface NetworkDebuggerStartToolParams { type NetworkRequestInfo (line 15) | interface NetworkRequestInfo { constant DEBUGGER_PROTOCOL_VERSION (line 39) | const DEBUGGER_PROTOCOL_VERSION = '1.3'; constant MAX_RESPONSE_BODY_SIZE_BYTES (line 40) | const MAX_RESPONSE_BODY_SIZE_BYTES = 1 * 1024 * 1024; constant DEFAULT_MAX_CAPTURE_TIME_MS (line 41) | const DEFAULT_MAX_CAPTURE_TIME_MS = 3 * 60 * 1000; constant DEFAULT_INACTIVITY_TIMEOUT_MS (line 42) | const DEFAULT_INACTIVITY_TIMEOUT_MS = 60 * 1000; class NetworkDebuggerStartTool (line 47) | class NetworkDebuggerStartTool extends BaseBrowserToolExecutor { method constructor (line 58) | constructor() { method handleTabRemoved (line 71) | private handleTabRemoved(tabId: number) { method handleTabCreated (line 82) | private async handleTabCreated(tab: chrome.tabs.Tab) { method startCaptureForTab (line 127) | private async startCaptureForTab( method handleDebuggerEvent (line 211) | private handleDebuggerEvent(source: chrome.debugger.Debuggee, method: ... method handleDebuggerDetach (line 238) | private handleDebuggerDetach(source: chrome.debugger.Debuggee, reason:... method updateLastActivityTime (line 248) | private updateLastActivityTime(tabId: number) { method checkInactivity (line 263) | private checkInactivity(tabId: number) { method stopCaptureByInactivity (line 286) | private async stopCaptureByInactivity(tabId: number) { method shouldFilterRequestByUrl (line 300) | private shouldFilterRequestByUrl(url: string): boolean { method shouldFilterRequestByExtension (line 306) | private shouldFilterRequestByExtension(url: string, includeStatic: boo... method shouldFilterByMimeType (line 318) | private shouldFilterByMimeType(mimeType: string, includeStatic: boolea... method handleRequestWillBeSent (line 336) | private handleRequestWillBeSent(tabId: number, params: any) { method handleResponseReceived (line 390) | private handleResponseReceived(tabId: number, params: any) { method handleLoadingFinished (line 428) | private async handleLoadingFinished(tabId: number, params: any) { method shouldCaptureResponseBody (line 472) | private shouldCaptureResponseBody(requestInfo: NetworkRequestInfo): bo... method handleLoadingFailed (line 504) | private handleLoadingFailed(tabId: number, params: any) { method getResponseBody (line 524) | private async getResponseBody( method cleanupCapture (line 549) | private cleanupCapture(tabId: number) { method stopCapture (line 579) | async stopCapture(tabId: number, isAutoStop: boolean = false): Promise... method analyzeCommonHeaders (line 684) | private analyzeCommonHeaders( method filterOutCommonHeaders (line 740) | private filterOutCommonHeaders( method execute (line 767) | async execute(args: NetworkDebuggerStartToolParams): Promise { method performStop (line 943) | private async performStop( FILE: app/chrome-extension/entrypoints/background/tools/browser/network-capture-web-request.ts constant STATIC_RESOURCE_EXTENSIONS (line 7) | const STATIC_RESOURCE_EXTENSIONS = [ constant AD_ANALYTICS_DOMAINS (line 46) | const AD_ANALYTICS_DOMAINS = NETWORK_FILTERS.EXCLUDED_DOMAINS; type NetworkCaptureStartToolParams (line 48) | interface NetworkCaptureStartToolParams { type NetworkRequestInfo (line 55) | interface NetworkRequestInfo { type CaptureInfo (line 76) | interface CaptureInfo { class NetworkCaptureStartTool (line 92) | class NetworkCaptureStartTool extends BaseBrowserToolExecutor { method constructor (line 136) | constructor() { method handleTabRemoved (line 152) | private handleTabRemoved(tabId: number) { method handleTabCreated (line 163) | private async handleTabCreated(tab: chrome.tabs.Tab) { method shouldFilterRequest (line 207) | private shouldFilterRequest(url: string, includeStatic: boolean): bool... method shouldFilterByMimeType (line 235) | private shouldFilterByMimeType(mimeType: string, includeStatic: boolea... method updateLastActivityTime (line 268) | private updateLastActivityTime(tabId: number): void { method checkInactivity (line 290) | private checkInactivity(tabId: number): void { method stopCaptureByInactivity (line 316) | private async stopCaptureByInactivity(tabId: number): Promise { method cleanupCapture (line 327) | private cleanupCapture(tabId: number): void { method setupListeners (line 350) | private setupListeners(): void { method removeListeners (line 510) | private removeListeners(): void { method processRequestBody (line 548) | private processRequestBody(requestBody: chrome.webRequest.WebRequestBo... method startCaptureForTab (line 562) | private async startCaptureForTab( method stopCapture (line 638) | public async stopCapture( method analyzeCommonHeaders (line 733) | private analyzeCommonHeaders( method filterOutCommonHeaders (line 772) | private filterOutCommonHeaders( method execute (line 789) | async execute(args: NetworkCaptureStartToolParams): Promise { class NetworkCaptureStopTool (line 875) | class NetworkCaptureStopTool extends BaseBrowserToolExecutor { method constructor (line 879) | constructor() { method execute (line 887) | async execute(): Promise { FILE: app/chrome-extension/entrypoints/background/tools/browser/network-capture.ts type NetworkCaptureBackend (line 7) | type NetworkCaptureBackend = 'webRequest' | 'debugger'; type NetworkCaptureToolParams (line 9) | interface NetworkCaptureToolParams { function getFirstText (line 21) | function getFirstText(result: ToolResult): string | undefined { function decorateJsonResult (line 29) | function decorateJsonResult(result: ToolResult, extra: Record { method handleStart (line 92) | private async handleStart( method handleStop (line 119) | private async handleStop( FILE: app/chrome-extension/entrypoints/background/tools/browser/network-request.ts constant DEFAULT_NETWORK_REQUEST_TIMEOUT (line 6) | const DEFAULT_NETWORK_REQUEST_TIMEOUT = 30000; type NetworkRequestToolParams (line 8) | interface NetworkRequestToolParams { class NetworkRequestTool (line 23) | class NetworkRequestTool extends BaseBrowserToolExecutor { method execute (line 26) | async execute(args: NetworkRequestToolParams): Promise { FILE: app/chrome-extension/entrypoints/background/tools/browser/performance.ts type OwnerTag (line 6) | type OwnerTag = 'performance'; type StartTraceParams (line 8) | interface StartTraceParams { type StopTraceParams (line 14) | interface StopTraceParams { type AnalyzeInsightParams (line 19) | interface AnalyzeInsightParams { type DebuggeeEvent (line 23) | type DebuggeeEvent = (source: chrome.debugger.Debuggee, method: string, ... type TraceSessionState (line 25) | interface TraceSessionState { constant LAST_RESULTS (line 36) | const LAST_RESULTS = new Map< function tracingCategories (line 48) | function tracingCategories(): string[] { function enablePerformanceMetrics (line 70) | async function enablePerformanceMetrics(tabId: number): Promise { function getOrCreateStopPromise (line 209) | function getOrCreateStopPromise(session: TraceSessionState): Promise<{ c... class PerformanceStartTraceTool (line 220) | class PerformanceStartTraceTool extends BaseBrowserToolExecutor { method execute (line 223) | async execute(args: StartTraceParams): Promise { class PerformanceStopTraceTool (line 316) | class PerformanceStopTraceTool extends BaseBrowserToolExecutor { method execute (line 319) | async execute(args: StopTraceParams): Promise { class PerformanceAnalyzeInsightTool (line 417) | class PerformanceAnalyzeInsightTool extends BaseBrowserToolExecutor { method execute (line 420) | async execute(args: AnalyzeInsightParams & { timeoutMs?: number }): Pr... FILE: app/chrome-extension/entrypoints/background/tools/browser/read-page.ts type ReadPageStats (line 8) | interface ReadPageStats { type ReadPageParams (line 14) | interface ReadPageParams { class ReadPageTool (line 22) | class ReadPageTool extends BaseBrowserToolExecutor { method execute (line 26) | async execute(args: ReadPageParams): Promise { FILE: app/chrome-extension/entrypoints/background/tools/browser/screenshot.ts constant SCREENSHOT_CONSTANTS (line 15) | const SCREENSHOT_CONSTANTS = { type ScreenshotToolParams (line 46) | interface ScreenshotToolParams { type ScreenshotPageDetails (line 61) | interface ScreenshotPageDetails { constant PAGE_DETAILS_REQUIRED_FIELDS (line 71) | const PAGE_DETAILS_REQUIRED_FIELDS: Array = [ function assertValidPageDetails (line 84) | function assertValidPageDetails(details: unknown): ScreenshotPageDetails { class ScreenshotTool (line 108) | class ScreenshotTool extends BaseBrowserToolExecutor { method execute (line 114) | async execute(args: ScreenshotToolParams): Promise { method logInfo (line 391) | private logInfo(message: string) { method _captureElement (line 398) | async _captureElement( method _captureFullPage (line 440) | async _captureFullPage( FILE: app/chrome-extension/entrypoints/background/tools/browser/userscript.ts type UserscriptAction (line 7) | type UserscriptAction = type UserscriptArgsBase (line 18) | interface UserscriptArgsBase { type CreateArgs (line 23) | interface CreateArgs { type UpdateArgs (line 38) | type UpdateArgs = Partial> & { id: string; sc... type UserscriptRecord (line 40) | interface UserscriptRecord { type ActiveInjection (line 66) | type ActiveInjection = { kind: 'css' | 'js'; world?: 'ISOLATED' | 'MAIN' }; function loadAllRecords (line 69) | async function loadAllRecords(): Promise)... function fnv1a (line 79) | function fnv1a(str: string): string { function now (line 89) | function now(): number { function computeSHA256 (line 93) | async function computeSHA256(input: string): Promise { function probeUnsafeEvalInMain (line 100) | async function probeUnsafeEvalInMain(tabId: number): Promise { function parseUserscriptMeta (line 121) | function parseUserscriptMeta(source: string): { function pick (line 144) | function pick(arr: T[] | undefined): T | undefined { function deriveName (line 148) | function deriveName(meta: Record, fallback?: string): ... function toBoolean (line 152) | function toBoolean(val: any, d: boolean): boolean { function isLikelyCSS (line 157) | function isLikelyCSS(source: string): boolean { function normalizeMatches (line 174) | function normalizeMatches(matches?: string[], currentUrl?: string): stri... function matchUrl (line 188) | function matchUrl(patterns: string[], url?: string): boolean { function getActiveTab (line 223) | async function getActiveTab(): Promise { function insertCssToTab (line 228) | async function insertCssToTab(tabId: number, css: string, allFrames: boo... function removeCssFromTab (line 232) | async function removeCssFromTab(tabId: number, css: string, allFrames: b... function injectJsPersistent (line 240) | async function injectJsPersistent( function setActiveInjection (line 324) | function setActiveInjection(tabId: number, id: string, inj: ActiveInject... function clearActiveInjection (line 333) | function clearActiveInjection(tabId: number, id: string) { function reinjectForTab (line 338) | async function reinjectForTab(tabId: number, url?: string) { class UserscriptTool (line 422) | class UserscriptTool extends BaseBrowserToolExecutor { method execute (line 425) | async execute(params: UserscriptArgsBase): Promise { method create (line 460) | private async create(args: CreateArgs): Promise { method list (line 598) | private async list(args: any): Promise { method get (line 632) | private async get(args: any): Promise { method enable (line 644) | private async enable(args: any, enabled: boolean): Promise { method update (line 656) | private async update(args: UpdateArgs): Promise { method remove (line 679) | private async remove(args: any): Promise { method sendCommand (line 707) | private async sendCommand(args: any): Promise { method exportAll (line 749) | private async exportAll(): Promise { FILE: app/chrome-extension/entrypoints/background/tools/browser/vector-search.ts type VectorSearchResult (line 13) | interface VectorSearchResult { class VectorSearchTabsContentTool (line 26) | class VectorSearchTabsContentTool extends BaseBrowserToolExecutor { method constructor (line 31) | constructor() { method initializeIndexer (line 40) | private async initializeIndexer(): Promise { method execute (line 51) | async execute(args: { query: string }): Promise { method ensureTabsIndexed (line 145) | private async ensureTabsIndexed(tabs: chrome.tabs.Tab[]): Promise { method convertSearchResults (line 162) | private convertSearchResults(searchResults: SearchResult[]): VectorSea... method deduplicateByTab (line 177) | private deduplicateByTab(results: VectorSearchResult[]): VectorSearchR... method extractSnippet (line 195) | private extractSnippet(text: string, maxLength: number = 200): string { method getIndexStats (line 227) | public async getIndexStats() { method rebuildIndex (line 246) | public async rebuildIndex(): Promise { method indexTab (line 287) | public async indexTab(tabId: number): Promise { method removeTabIndex (line 298) | public async removeTabIndex(tabId: number): Promise { FILE: app/chrome-extension/entrypoints/background/tools/browser/web-fetcher.ts type WebFetcherToolParams (line 6) | interface WebFetcherToolParams { class WebFetcherTool (line 16) | class WebFetcherTool extends BaseBrowserToolExecutor { method execute (line 22) | async execute(args: WebFetcherToolParams): Promise { type GetInteractiveElementsToolParams (line 170) | interface GetInteractiveElementsToolParams { class GetInteractiveElementsTool (line 177) | class GetInteractiveElementsTool extends BaseBrowserToolExecutor { method execute (line 183) | async execute(args: GetInteractiveElementsToolParams): Promise { FILE: app/chrome-extension/entrypoints/background/tools/index.ts type ToolCallParam (line 12) | interface ToolCallParam { FILE: app/chrome-extension/entrypoints/background/tools/record-replay.ts class FlowRunTool (line 7) | class FlowRunTool { method execute (line 9) | async execute(args: any): Promise { class ListPublishedTool (line 44) | class ListPublishedTool { method execute (line 46) | async execute(): Promise { FILE: app/chrome-extension/entrypoints/background/utils/sidepanel.ts function openAgentChatSidepanel (line 19) | async function openAgentChatSidepanel( FILE: app/chrome-extension/entrypoints/background/web-editor/index.ts constant CONTEXT_MENU_ID (line 15) | const CONTEXT_MENU_ID = 'web_editor_toggle'; constant COMMAND_KEY (line 16) | const COMMAND_KEY = 'toggle_web_editor'; constant DEFAULT_NATIVE_SERVER_PORT (line 17) | const DEFAULT_NATIVE_SERVER_PORT = 12306; constant WEB_EDITOR_TX_CHANGED_SESSION_KEY_PREFIX (line 20) | const WEB_EDITOR_TX_CHANGED_SESSION_KEY_PREFIX = 'web-editor-v2-tx-chang... constant WEB_EDITOR_SELECTION_SESSION_KEY_PREFIX (line 21) | const WEB_EDITOR_SELECTION_SESSION_KEY_PREFIX = 'web-editor-v2-selection-'; constant WEB_EDITOR_EXCLUDED_KEYS_SESSION_KEY_PREFIX (line 24) | const WEB_EDITOR_EXCLUDED_KEYS_SESSION_KEY_PREFIX = 'web-editor-v2-exclu... constant STORAGE_KEY_SELECTED_SESSION (line 27) | const STORAGE_KEY_SELECTED_SESSION = 'agent-selected-session-id'; type ExecutionStatusEntry (line 30) | interface ExecutionStatusEntry { constant STATUS_CACHE_TTL (line 37) | const STATUS_CACHE_TTL = 5 * 60 * 1000; function cleanupExpiredStatuses (line 39) | function cleanupExpiredStatuses(): void { function setExecutionStatus (line 48) | function setExecutionStatus( function getExecutionStatus (line 66) | function getExecutionStatus(requestId: string): ExecutionStatusEntry | u... function subscribeToSessionStatus (line 76) | async function subscribeToSessionStatus( function handleSseEvent (line 153) | function handleSseEvent(requestId: string, event: unknown): void { constant USE_WEB_EDITOR_V2 (line 209) | const USE_WEB_EDITOR_V2 = true; constant V1_SCRIPT_PATH (line 212) | const V1_SCRIPT_PATH = 'inject-scripts/web-editor.js'; constant V2_SCRIPT_PATH (line 215) | const V2_SCRIPT_PATH = 'web-editor-v2.js'; constant PROPS_AGENT_SCRIPT_PATH (line 218) | const PROPS_AGENT_SCRIPT_PATH = 'inject-scripts/props-agent.js'; type WebEditorInstructionType (line 220) | type WebEditorInstructionType = 'update_text' | 'update_style'; type WebEditorFingerprint (line 222) | interface WebEditorFingerprint { type DebugSource (line 230) | interface DebugSource { type StyleOperation (line 238) | interface StyleOperation { type WebEditorApplyPayload (line 245) | interface WebEditorApplyPayload { function normalizeString (line 263) | function normalizeString(value: unknown): string { function normalizeStringArray (line 267) | function normalizeStringArray(value: unknown): string[] { function normalizeStyleMap (line 272) | function normalizeStyleMap(value: unknown): Record | und... function normalizeStyleMapAllowEmpty (line 284) | function normalizeStyleMapAllowEmpty(value: unknown): Record { function getActions (line 691) | function getActions() { function ensureEditorInjected (line 703) | async function ensureEditorInjected(tabId: number): Promise { function ensurePropsAgentInjected (line 741) | async function ensurePropsAgentInjected(tabId: number): Promise { function sendPropsAgentCleanup (line 759) | async function sendPropsAgentCleanup(tabId: number): Promise { constant PROPS_AGENT_EARLY_INJECTION_ID_PREFIX (line 790) | const PROPS_AGENT_EARLY_INJECTION_ID_PREFIX = 'mcp_we_props_early'; type EarlyInjectionResult (line 795) | interface EarlyInjectionResult { function sanitizeContentScriptId (line 806) | function sanitizeContentScriptId(input: string): string { function buildEarlyInjectionPatterns (line 818) | function buildEarlyInjectionPatterns(tabUrl: string): { host: string; ma... function registerPropsAgentEarlyInjection (line 845) | async function registerPropsAgentEarlyInjection(tabUrl: string): Promise... function toggleEditorInTab (line 877) | async function toggleEditorInTab(tabId: number): Promise<{ active?: bool... function getActiveTabId (line 904) | async function getActiveTabId(): Promise { function initWebEditorListeners (line 914) | function initWebEditorListeners(): void { FILE: app/chrome-extension/entrypoints/content.ts method main (line 3) | main() {} FILE: app/chrome-extension/entrypoints/element-picker.content.ts type UiShowMessage (line 25) | interface UiShowMessage { type UiUpdateMessage (line 33) | interface UiUpdateMessage { type UiHideMessage (line 42) | interface UiHideMessage { type UiPingMessage (line 47) | interface UiPingMessage { type PickerMessage (line 51) | type PickerMessage = UiPingMessage | UiShowMessage | UiUpdateMessage | U... method main (line 61) | main() { FILE: app/chrome-extension/entrypoints/offscreen/gif-encoder.ts type GifEncoderState (line 15) | interface GifEncoderState { type GifAddFrameMessage (line 23) | interface GifAddFrameMessage { type GifFinishMessage (line 33) | interface GifFinishMessage { type GifResetMessage (line 38) | interface GifResetMessage { type GifMessage (line 43) | type GifMessage = GifAddFrameMessage | GifFinishMessage | GifResetMessage; type GifMessageResponse (line 45) | interface GifMessageResponse { function initializeEncoder (line 69) | function initializeEncoder(width: number, height: number): void { function addFrame (line 77) | function addFrame( function finishEncoding (line 109) | function finishEncoding(): Uint8Array { function resetEncoder (line 123) | function resetEncoder(): void { function isGifMessage (line 138) | function isGifMessage(message: unknown): message is GifMessage { function handleGifMessage (line 152) | function handleGifMessage( FILE: app/chrome-extension/entrypoints/offscreen/main.ts type OffscreenMessage (line 16) | interface OffscreenMessage { type SimilarityEngineInitMessage (line 21) | interface SimilarityEngineInitMessage extends OffscreenMessage { type SimilarityEngineComputeBatchMessage (line 26) | interface SimilarityEngineComputeBatchMessage extends OffscreenMessage { type SimilarityEngineGetEmbeddingMessage (line 32) | interface SimilarityEngineGetEmbeddingMessage extends OffscreenMessage { type SimilarityEngineGetEmbeddingsBatchMessage (line 38) | interface SimilarityEngineGetEmbeddingsBatchMessage extends OffscreenMes... type SimilarityEngineStatusMessage (line 44) | interface SimilarityEngineStatusMessage extends OffscreenMessage { type MessageResponse (line 48) | type MessageResponse = { function needsReinitialization (line 161) | function needsReinitialization(newConfig: any): boolean { type ProgressCallback (line 183) | type ProgressCallback = (progress: { status: string; progress: number; m... function handleSimilarityEngineInit (line 188) | async function handleSimilarityEngineInit(config: any): Promise { function clearVectorIndexedDB (line 274) | async function clearVectorIndexedDB(): Promise { function analyzeErrorType (line 308) | function analyzeErrorType(errorMessage: string): 'network' | 'file' | 'u... function updateModelStatus (line 337) | async function updateModelStatus( function handleComputeSimilarityBatch (line 377) | async function handleComputeSimilarityBatch( function handleGetEmbedding (line 395) | async function handleGetEmbedding( function handleGetEmbeddingsBatch (line 413) | async function handleGetEmbeddingsBatch( function handleGetEngineStatus (line 431) | async function handleGetEngineStatus(): Promise<{ FILE: app/chrome-extension/entrypoints/offscreen/rr-keepalive.ts constant KEEPALIVE_CONTROL_MESSAGE_TYPE (line 23) | const KEEPALIVE_CONTROL_MESSAGE_TYPE = 'rr_v3_keepalive.control' as const; type KeepaliveControlCommand (line 25) | type KeepaliveControlCommand = 'start' | 'stop'; type KeepaliveControlMessage (line 27) | interface KeepaliveControlMessage { function isKeepaliveControlMessage (line 32) | function isKeepaliveControlMessage(value: unknown): value is KeepaliveCo... function isKeepaliveMessage (line 53) | function isKeepaliveMessage(value: unknown): value is KeepaliveMessage { function scheduleReconnect (line 76) | function scheduleReconnect(delayMs = 1000): void { function connectToBackground (line 95) | function connectToBackground(): chrome.runtime.Port | null { function sendPing (line 139) | function sendPing(): void { function startPingLoop (line 164) | function startPingLoop(): void { function stopPingLoop (line 191) | function stopPingLoop(): void { function initKeepalive (line 223) | function initKeepalive(): void { function isKeepaliveActive (line 264) | function isKeepaliveActive(): boolean { function getActivePortCount (line 272) | function getActivePortCount(): number { FILE: app/chrome-extension/entrypoints/popup/components/builder/components/nodes/node-util.ts function iconComp (line 30) | function iconComp(t?: string) { function getTypeLabel (line 88) | function getTypeLabel(type?: string) { function nodeSubtitle (line 114) | function nodeSubtitle(node?: NodeBase | null): string { FILE: app/chrome-extension/entrypoints/popup/components/builder/model/form-widget-registry.ts constant REG (line 10) | const REG = new Map(); function registerDefaultWidgets (line 12) | function registerDefaultWidgets() { function getWidget (line 22) | function getWidget(name?: string): Component | null { FILE: app/chrome-extension/entrypoints/popup/components/builder/model/toast.ts type ToastLevel (line 4) | type ToastLevel = 'info' | 'warn' | 'error'; function toast (line 6) | function toast(message: string, level: ToastLevel = 'warn') { FILE: app/chrome-extension/entrypoints/popup/components/builder/model/transforms.ts function newId (line 14) | function newId(prefix: string) { type NodeType (line 18) | type NodeType = NodeBase['type']; function defaultConfigFor (line 20) | function defaultConfigFor(t: NodeType): any { function stepsToNodes (line 54) | function stepsToNodes(steps: any[]): NodeBase[] { function topoOrder (line 63) | function topoOrder(nodes: NodeBase[], edges: EdgeV2[]): NodeBase[] { function nodesToSteps (line 68) | function nodesToSteps(nodes: NodeBase[], edges: EdgeV2[]): any[] { function autoChainEdges (line 78) | function autoChainEdges(nodes: NodeBase[]): EdgeV2[] { function summarizeNode (line 90) | function summarizeNode(n?: NodeBase | null): string { function cloneFlow (line 145) | function cloneFlow(flow: FlowV2): FlowV2 { FILE: app/chrome-extension/entrypoints/popup/components/builder/model/ui-nodes.ts type NodeCategory (line 52) | type NodeCategory = 'Flow' | 'Actions' | 'Logic' | 'Tools' | 'Tabs' | 'P... type NodeUIConfig (line 54) | interface NodeUIConfig { function specToUi (line 70) | function specToUi(spec: any): NodeUIConfig { constant NODE_UI_LIST (line 94) | const NODE_UI_LIST: NodeUIConfig[] = listNodeSpecs().map(specToUi); constant REGISTRY_MAP (line 96) | const REGISTRY_MAP: Record = Object.fromEntries( constant NODE_UI_REGISTRY (line 99) | const NODE_UI_REGISTRY = REGISTRY_MAP as Record; constant NODE_CATEGORIES (line 101) | const NODE_CATEGORIES: NodeCategory[] = [ function listByCategory (line 110) | function listByCategory(): Record { function canvasTypeKey (line 123) | function canvasTypeKey(t: NodeType): string { function defaultConfigOf (line 129) | function defaultConfigOf(t: NodeType): any { function validateNodeWithRegistry (line 139) | function validateNodeWithRegistry(n: NodeBase): string[] { function registerExtraUiNodes (line 155) | function registerExtraUiNodes(list: NodeUIConfig[]) { function getIoConstraint (line 163) | function getIoConstraint(t: NodeType): { inputs: number | 'any'; outputs... FILE: app/chrome-extension/entrypoints/popup/components/builder/model/validation.ts function validateNode (line 4) | function validateNode(n: NodeBase): string[] { function validateFlow (line 113) | function validateFlow(nodes: NodeBase[]): { FILE: app/chrome-extension/entrypoints/popup/components/builder/model/variables.ts type VariableOrigin (line 2) | type VariableOrigin = 'global' | 'node'; type VariableOption (line 4) | interface VariableOption { constant VAR_TOKEN_OPEN (line 11) | const VAR_TOKEN_OPEN = '{'; constant VAR_TOKEN_CLOSE (line 12) | const VAR_TOKEN_CLOSE = '}'; constant VAR_PLACEHOLDER (line 13) | const VAR_PLACEHOLDER = '{}'; FILE: app/chrome-extension/entrypoints/popup/components/builder/store/useBuilderStore.ts function useBuilderStore (line 18) | function useBuilderStore(initial?: FlowV2 | null) { FILE: app/chrome-extension/entrypoints/quick-panel.content.ts method main (line 22) | main() { FILE: app/chrome-extension/entrypoints/shared/composables/useRRV3Rpc.ts type RpcRequestOptions (line 34) | interface RpcRequestOptions { type UseRRV3RpcOptions (line 42) | interface UseRRV3RpcOptions { type EventListener (line 58) | type EventListener = (event: RunEvent) => void; type PendingRequest (line 61) | interface PendingRequest { type UseRRV3Rpc (line 73) | interface UseRRV3Rpc { function toErrorMessage (line 106) | function toErrorMessage(error: unknown): string { function isRunEvent (line 110) | function isRunEvent(value: unknown): value is RunEvent { function useRRV3Rpc (line 126) | function useRRV3Rpc(options: UseRRV3RpcOptions = {}): UseRRV3Rpc { FILE: app/chrome-extension/entrypoints/shared/utils/rr-flow-convert.ts type FlowConversionResult (line 20) | interface FlowConversionResult { function flowV2ToV3ForRpc (line 33) | function flowV2ToV3ForRpc(flowV2: FlowV2): FlowConversionResult { function flowV3ToV2ForBuilder (line 56) | function flowV3ToV2ForBuilder(flowV3: FlowV3): FlowConversionResult; FILE: app/chrome-extension/entrypoints/sidepanel/composables/useAgentInputPreferences.ts constant STORAGE_KEY_FAKE_CARET (line 11) | const STORAGE_KEY_FAKE_CARET = 'agent-chat-fake-caret-enabled'; type UseAgentInputPreferences (line 17) | interface UseAgentInputPreferences { function useAgentInputPreferences (line 40) | function useAgentInputPreferences(): UseAgentInputPreferences { FILE: app/chrome-extension/entrypoints/sidepanel/composables/useAgentProjects.ts constant STORAGE_KEY_SELECTED_PROJECT (line 8) | const STORAGE_KEY_SELECTED_PROJECT = 'agent-selected-project-id'; type PathValidationResult (line 10) | interface PathValidationResult { function normalizePathForComparison (line 21) | function normalizePathForComparison(path: string): string { type UseAgentProjectsOptions (line 30) | interface UseAgentProjectsOptions { function useAgentProjects (line 36) | function useAgentProjects(options: UseAgentProjectsOptions) { FILE: app/chrome-extension/entrypoints/sidepanel/composables/useAgentServer.ts type ServerStatus (line 10) | interface ServerStatus { type UseAgentServerOptions (line 16) | interface UseAgentServerOptions { function useAgentServer (line 26) | function useAgentServer(options: UseAgentServerOptions = {}) { FILE: app/chrome-extension/entrypoints/sidepanel/composables/useAgentSessions.ts constant STORAGE_KEY_SELECTED_SESSION (line 16) | const STORAGE_KEY_SELECTED_SESSION = 'agent-selected-session-id'; type UseAgentSessionsOptions (line 18) | interface UseAgentSessionsOptions { function useAgentSessions (line 25) | function useAgentSessions(options: UseAgentSessionsOptions) { FILE: app/chrome-extension/entrypoints/sidepanel/composables/useAgentTheme.ts type AgentThemeId (line 8) | type AgentThemeId = constant STORAGE_KEY_THEME (line 17) | const STORAGE_KEY_THEME = 'agentTheme'; constant DEFAULT_THEME (line 20) | const DEFAULT_THEME: AgentThemeId = 'warm-editorial'; constant VALID_THEMES (line 23) | const VALID_THEMES: AgentThemeId[] = [ constant THEME_LABELS (line 33) | const THEME_LABELS: Record = { type UseAgentTheme (line 42) | interface UseAgentTheme { function isValidTheme (line 60) | function isValidTheme(value: unknown): value is AgentThemeId { function getThemeFromDocument (line 67) | function getThemeFromDocument(): AgentThemeId { function useAgentTheme (line 75) | function useAgentTheme(): UseAgentTheme { function preloadAgentTheme (line 153) | async function preloadAgentTheme(): Promise { FILE: app/chrome-extension/entrypoints/sidepanel/composables/useAgentThreads.ts constant AGENT_SERVER_PORT_KEY (line 17) | const AGENT_SERVER_PORT_KEY: InjectionKey> = Symbol('... type AgentThreadState (line 20) | type AgentThreadState = type ToolKind (line 29) | type ToolKind = 'grep' | 'read' | 'edit' | 'run' | 'plan' | 'generic'; type ToolSeverity (line 32) | type ToolSeverity = 'info' | 'success' | 'warning' | 'error'; type DiffStats (line 35) | interface DiffStats { type ToolPresentation (line 42) | interface ToolPresentation { type TimelineItem (line 68) | type TimelineItem = type WebEditorApplyMeta (line 115) | interface WebEditorApplyMeta { type ThreadHeader (line 123) | interface ThreadHeader { type AgentThread (line 133) | interface AgentThread { type UseAgentThreadsOptions (line 147) | interface UseAgentThreadsOptions { function normalize (line 157) | function normalize(s: string | undefined): string { function firstString (line 164) | function firstString(...args: unknown[]): string | undefined { function extractAfterPrefix (line 176) | function extractAfterPrefix(content: string, prefix: string): string | u... function summarizeOneLine (line 185) | function summarizeOneLine(content: string): string { function titleCase (line 193) | function titleCase(s: string): string { function getFileName (line 200) | function getFileName(filePath: string): string { function buildDiffStats (line 207) | function buildDiffStats(meta: Record): DiffStats | unde... function presentTool (line 221) | function presentTool(msg: AgentMessage): ToolPresentation { function isAttachmentMetadata (line 449) | function isAttachmentMetadata(value: unknown): value is AttachmentMetada... function getMessageAttachments (line 484) | function getMessageAttachments(msg: AgentMessage): AttachmentMetadata[] { function mapMessageToTimelineItem (line 494) | function mapMessageToTimelineItem(msg: AgentMessage): TimelineItem | null { function buildThreads (line 559) | function buildThreads( function useAgentThreads (line 721) | function useAgentThreads(options: UseAgentThreadsOptions) { FILE: app/chrome-extension/entrypoints/sidepanel/composables/useAttachments.ts constant MAX_FILE_SIZE (line 8) | const MAX_FILE_SIZE = 10 * 1024 * 1024; constant MAX_ATTACHMENTS (line 9) | const MAX_ATTACHMENTS = 10; constant ALLOWED_IMAGE_TYPES (line 12) | const ALLOWED_IMAGE_TYPES = new Set([ type AttachmentWithPreview (line 23) | interface AttachmentWithPreview extends AgentAttachment { function useAttachments (line 28) | function useAttachments() { FILE: app/chrome-extension/entrypoints/sidepanel/composables/useFakeCaret.ts type FakeCaretTrailPoint (line 24) | interface FakeCaretTrailPoint { type UseFakeCaretOptions (line 30) | interface UseFakeCaretOptions { type UseFakeCaretReturn (line 41) | interface UseFakeCaretReturn { constant MAX_TRAIL_POINTS (line 60) | const MAX_TRAIL_POINTS = 24; constant TRAIL_DECAY (line 61) | const TRAIL_DECAY = 0.86; constant TRAIL_MIN_ALPHA (line 62) | const TRAIL_MIN_ALPHA = 0.06; constant TRAIL_MIN_DISTANCE_PX (line 63) | const TRAIL_MIN_DISTANCE_PX = 0.35; constant SMOOTHING (line 64) | const SMOOTHING = 0.35; constant SNAP_DISTANCE_PX (line 65) | const SNAP_DISTANCE_PX = 0.2; function isFiniteNumber (line 71) | function isFiniteNumber(v: unknown): v is number { function clamp (line 75) | function clamp(v: number, min: number, max: number): number { function useFakeCaret (line 83) | function useFakeCaret(options: UseFakeCaretOptions): UseFakeCaretReturn { FILE: app/chrome-extension/entrypoints/sidepanel/composables/useFloatingDrag.ts constant STORAGE_KEY (line 12) | const STORAGE_KEY = 'sidepanel_navigator_position'; type UseFloatingDragOptions (line 14) | interface UseFloatingDragOptions { type UseFloatingDragReturn (line 27) | interface UseFloatingDragReturn { function getDefaultBottomRightPosition (line 41) | function getDefaultBottomRightPosition( function loadPosition (line 54) | async function loadPosition(storageKey: string): Promise([ function isValidTabId (line 47) | function isValidTabId(value: unknown): value is number { function buildTxSessionKey (line 51) | function buildTxSessionKey(tabId: number): string { function buildExcludedKeysSessionKey (line 55) | function buildExcludedKeysSessionKey(tabId: number): string { function buildSelectionSessionKey (line 59) | function buildSelectionSessionKey(tabId: number): string { function normalizeSelectionPayload (line 67) | function normalizeSelectionPayload(raw: unknown): WebEditorSelectionChan... function normalizeTxChangedPayload (line 104) | function normalizeTxChangedPayload(raw: unknown): WebEditorTxChangedPayl... function normalizeExcludedKeys (line 148) | function normalizeExcludedKeys(raw: unknown): WebEditorElementKey[] { function persistExcludedKeys (line 168) | async function persistExcludedKeys( function getActiveTabIdDefault (line 186) | async function getActiveTabIdDefault(): Promise { function getCurrentWindowId (line 201) | async function getCurrentWindowId(): Promise { type UseWebEditorTxStateOptions (line 215) | interface UseWebEditorTxStateOptions { function useWebEditorTxState (line 227) | function useWebEditorTxState(options: UseWebEditorTxStateOptions = {}) { type WebEditorTxStateReturn (line 664) | type WebEditorTxStateReturn = ReturnType; constant WEB_EDITOR_TX_STATE_INJECTION_KEY (line 678) | const WEB_EDITOR_TX_STATE_INJECTION_KEY: InjectionKey { FILE: app/chrome-extension/entrypoints/sidepanel/utils/loading-texts.ts function getRandomLoadingText (line 58) | function getRandomLoadingText(): string { FILE: app/chrome-extension/entrypoints/web-editor-v2/constants.ts constant WEB_EDITOR_V2_VERSION (line 9) | const WEB_EDITOR_V2_VERSION = 2 as const; constant WEB_EDITOR_V2_LOG_PREFIX (line 12) | const WEB_EDITOR_V2_LOG_PREFIX = '[WebEditorV2]' as const; constant WEB_EDITOR_V2_HOST_ID (line 19) | const WEB_EDITOR_V2_HOST_ID = '__mcp_web_editor_v2_host__'; constant WEB_EDITOR_V2_OVERLAY_ID (line 22) | const WEB_EDITOR_V2_OVERLAY_ID = '__mcp_web_editor_v2_overlay__'; constant WEB_EDITOR_V2_UI_ID (line 25) | const WEB_EDITOR_V2_UI_ID = '__mcp_web_editor_v2_ui__'; constant WEB_EDITOR_V2_Z_INDEX (line 32) | const WEB_EDITOR_V2_Z_INDEX = 2147483647; constant WEB_EDITOR_V2_PANEL_WIDTH (line 35) | const WEB_EDITOR_V2_PANEL_WIDTH = 320; constant WEB_EDITOR_V2_COLORS (line 41) | const WEB_EDITOR_V2_COLORS = { constant WEB_EDITOR_V2_DRAG_THRESHOLD_PX (line 67) | const WEB_EDITOR_V2_DRAG_THRESHOLD_PX = 5; constant WEB_EDITOR_V2_DRAG_HYSTERESIS_PX (line 70) | const WEB_EDITOR_V2_DRAG_HYSTERESIS_PX = 6; constant WEB_EDITOR_V2_DRAG_MAX_HIT_ELEMENTS (line 73) | const WEB_EDITOR_V2_DRAG_MAX_HIT_ELEMENTS = 8; constant WEB_EDITOR_V2_INSERTION_LINE_WIDTH (line 76) | const WEB_EDITOR_V2_INSERTION_LINE_WIDTH = 3; constant WEB_EDITOR_V2_SNAP_THRESHOLD_PX (line 83) | const WEB_EDITOR_V2_SNAP_THRESHOLD_PX = 6; constant WEB_EDITOR_V2_SNAP_HYSTERESIS_PX (line 86) | const WEB_EDITOR_V2_SNAP_HYSTERESIS_PX = 2; constant WEB_EDITOR_V2_SNAP_MAX_ANCHOR_ELEMENTS (line 89) | const WEB_EDITOR_V2_SNAP_MAX_ANCHOR_ELEMENTS = 30; constant WEB_EDITOR_V2_SNAP_MAX_SIBLINGS_SCAN (line 92) | const WEB_EDITOR_V2_SNAP_MAX_SIBLINGS_SCAN = 300; constant WEB_EDITOR_V2_GUIDE_LINE_WIDTH (line 95) | const WEB_EDITOR_V2_GUIDE_LINE_WIDTH = 1; constant WEB_EDITOR_V2_DISTANCE_LABEL_MIN_PX (line 102) | const WEB_EDITOR_V2_DISTANCE_LABEL_MIN_PX = 1; constant WEB_EDITOR_V2_DISTANCE_LINE_WIDTH (line 105) | const WEB_EDITOR_V2_DISTANCE_LINE_WIDTH = 1; constant WEB_EDITOR_V2_DISTANCE_TICK_SIZE (line 108) | const WEB_EDITOR_V2_DISTANCE_TICK_SIZE = 4; constant WEB_EDITOR_V2_DISTANCE_LABEL_FONT (line 111) | const WEB_EDITOR_V2_DISTANCE_LABEL_FONT = constant WEB_EDITOR_V2_DISTANCE_LABEL_PADDING_X (line 115) | const WEB_EDITOR_V2_DISTANCE_LABEL_PADDING_X = 6; constant WEB_EDITOR_V2_DISTANCE_LABEL_PADDING_Y (line 118) | const WEB_EDITOR_V2_DISTANCE_LABEL_PADDING_Y = 3; constant WEB_EDITOR_V2_DISTANCE_LABEL_RADIUS (line 121) | const WEB_EDITOR_V2_DISTANCE_LABEL_RADIUS = 4; constant WEB_EDITOR_V2_DISTANCE_LABEL_OFFSET (line 124) | const WEB_EDITOR_V2_DISTANCE_LABEL_OFFSET = 8; FILE: app/chrome-extension/entrypoints/web-editor-v2/core/css-compare.ts type ComputedDiffItem (line 22) | interface ComputedDiffItem { type CompareComputedResult (line 36) | interface CompareComputedResult { type CompareComputedOptions (line 44) | interface CompareComputedOptions { constant DEFAULT_PX_EPSILON (line 61) | const DEFAULT_PX_EPSILON = 0.5; constant DEFAULT_MATRIX_EPSILON (line 62) | const DEFAULT_MATRIX_EPSILON = 1e-3; constant PX_VALUE_REGEX (line 65) | const PX_VALUE_REGEX = /(-?\d*\.?\d+(?:e[+-]?\d+)?)px/gi; constant MATRIX_NUMBER_REGEX (line 66) | const MATRIX_NUMBER_REGEX = /-?\d*\.?\d+(?:e[+-]?\d+)?/gi; function normalizeText (line 76) | function normalizeText(text: string): string { function readComputedMap (line 89) | function readComputedMap( function compareComputed (line 142) | function compareComputed( function normalizeCssValue (line 174) | function normalizeCssValue(raw: string): string { function approximatelyEqual (line 186) | function approximatelyEqual(a: number, b: number, epsilon: number): bool... function isMatrixValue (line 193) | function isMatrixValue(value: string): boolean { function extractMatrixNumbers (line 202) | function extractMatrixNumbers(value: string): number[] | null { function extractPxNumbers (line 222) | function extractPxNumbers(value: string): number[] | null { function pxValueShape (line 242) | function pxValueShape(value: string): string { function compareMatrixWithEpsilon (line 251) | function compareMatrixWithEpsilon(expected: string, actual: string, epsi... function comparePxWithEpsilon (line 274) | function comparePxWithEpsilon(expected: string, actual: string, epsilon:... function compareSingleValue (line 295) | function compareSingleValue( FILE: app/chrome-extension/entrypoints/web-editor-v2/core/cssom-styles-collector.ts type Specificity (line 24) | type Specificity = readonly [inline: number, ids: number, classes: numbe... type DeclStatus (line 26) | type DeclStatus = 'active' | 'overridden'; type CssRuleSource (line 28) | interface CssRuleSource { type CssDeclView (line 33) | interface CssDeclView { type CssRuleView (line 42) | interface CssRuleView { type CssSectionView (line 53) | interface CssSectionView { type CssPanelSnapshot (line 60) | interface CssPanelSnapshot { type DeclCandidate (line 79) | interface DeclCandidate { type FlatStyleRule (line 91) | interface FlatStyleRule { type RuleIndex (line 99) | interface RuleIndex { type CollectElementOptions (line 107) | interface CollectElementOptions { type CollectedElementRules (line 112) | interface CollectedElementRules { constant ZERO_SPEC (line 128) | const ZERO_SPEC: Specificity = [0, 0, 0, 0] as const; function compareSpecificity (line 130) | function compareSpecificity(a: Specificity, b: Specificity): number { function splitSelectorList (line 137) | function splitSelectorList(input: string): string[] { function maxSpecificity (line 183) | function maxSpecificity(list: readonly Specificity[]): Specificity { function computeSelectorSpecificity (line 189) | function computeSelectorSpecificity(selector: string): Specificity { function computeMatchedRuleSpecificity (line 329) | function computeMatchedRuleSpecificity( constant LEGACY_PSEUDO_ELEMENTS (line 353) | const LEGACY_PSEUDO_ELEMENTS = new Set([ function isIdentStart (line 363) | function isIdentStart(ch: string): boolean { function consumeIdent (line 367) | function consumeIdent(s: string, start: number): number { function consumeBracket (line 381) | function consumeBracket(s: string, openIndex: number): number { function consumeParenFunction (line 412) | function consumeParenFunction( function isCombinatorOrWhitespace (line 447) | function isCombinatorOrWhitespace(s: string, i: number): boolean { function consumeWhitespaceAndCombinators (line 452) | function consumeWhitespaceAndCombinators(s: string, i: number): number { function extractNthOfSelectorList (line 460) | function extractNthOfSelectorList(content: string): string | null { function isOfTokenAt (line 500) | function isOfTokenAt(s: string, i: number): boolean { constant INHERITED_PROPERTIES (line 513) | const INHERITED_PROPERTIES = new Set([ function isInheritableProperty (line 631) | function isInheritableProperty(property: string): boolean { constant SHORTHAND_TO_LONGHANDS (line 642) | const SHORTHAND_TO_LONGHANDS: Record = { function expandToLonghands (line 776) | function expandToLonghands(property: string): readonly string[] { function normalizePropertyName (line 784) | function normalizePropertyName(property: string): string { function compareSourceOrder (line 795) | function compareSourceOrder( function compareCascade (line 805) | function compareCascade(a: DeclCandidate, b: DeclCandidate): number { function computeOverrides (line 812) | function computeOverrides(candidates: readonly DeclCandidate[]): { constant CONTAINER_RULE (line 836) | const CONTAINER_RULE = (globalThis as unknown as { CSSRule?: { CONTAINER... constant SCOPE_RULE (line 838) | const SCOPE_RULE = (globalThis as unknown as { CSSRule?: { SCOPE_RULE?: ... function isSheetApplicable (line 841) | function isSheetApplicable(sheet: CSSStyleSheet): boolean { function describeStyleSheet (line 853) | function describeStyleSheet(sheet: CSSStyleSheet, fallbackIndex: number)... function safeReadCssRules (line 871) | function safeReadCssRules(sheet: CSSStyleSheet): CSSRuleList | null { function evalMediaRule (line 879) | function evalMediaRule(rule: CSSMediaRule, warnings: string[]): boolean { function evalSupportsRule (line 890) | function evalSupportsRule(rule: CSSSupportsRule, warnings: string[]): bo... function createRuleIndexForRoot (line 902) | function createRuleIndexForRoot(root: Document | ShadowRoot, rootId: num... function readStyleDecls (line 1080) | function readStyleDecls(style: CSSStyleDeclaration): Array<{ function canReadInlineStyle (line 1115) | function canReadInlineStyle(element: Element): element is Element & { st... function formatElementLabel (line 1124) | function formatElementLabel(element: Element, maxClasses = 2): string { function getElementRoot (line 1137) | function getElementRoot(element: Element): Document | ShadowRoot { function getParentElementOrHost (line 1146) | function getParentElementOrHost(element: Element): Element | null { function collectForElement (line 1159) | function collectForElement( function collectMatchedRules (line 1296) | function collectMatchedRules(element: Element): { function collectCssPanelSnapshot (line 1327) | function collectCssPanelSnapshot( FILE: app/chrome-extension/entrypoints/web-editor-v2/core/debug-source.ts constant MAX_DOM_DEPTH (line 20) | const MAX_DOM_DEPTH = 15; constant MAX_FIBER_DEPTH (line 23) | const MAX_FIBER_DEPTH = 40; function asRecord (line 32) | function asRecord(value: unknown): Record | null { function readString (line 42) | function readString(value: unknown): string | undefined { function readNumber (line 53) | function readNumber(value: unknown): number | undefined { function readComponentName (line 64) | function readComponentName(value: unknown): string | undefined { function extractReactDebugSource (line 87) | function extractReactDebugSource(fiber: unknown): DebugSource | null { function findReactDebugSource (line 130) | function findReactDebugSource(element: Element): DebugSource | null { function parseVInspector (line 163) | function parseVInspector(value: unknown): DebugSource | null { function findInspectorLocation (line 195) | function findInspectorLocation(element: Element): DebugSource | null { function findVueDebugSource (line 218) | function findVueDebugSource(element: Element): DebugSource | null { function findDebugSource (line 275) | function findDebugSource(element: Element): DebugSource | null { FILE: app/chrome-extension/entrypoints/web-editor-v2/core/design-tokens/design-tokens-service.ts type GetRootTokensOptions (line 52) | interface GetRootTokensOptions { type GetContextTokensOptions (line 58) | interface GetContextTokensOptions { type DesignTokensServiceOptions (line 68) | interface DesignTokensServiceOptions { type DesignTokensService (line 111) | interface DesignTokensService { type RootCacheEntry (line 184) | interface RootCacheEntry { function createDesignTokensService (line 192) | function createDesignTokensService( FILE: app/chrome-extension/entrypoints/web-editor-v2/core/design-tokens/token-detector.ts type TokenDetectorOptions (line 33) | interface TokenDetectorOptions { type TokenDetector (line 49) | interface TokenDetector { constant DEFAULT_MAX_DECLARATIONS_PER_TOKEN (line 67) | const DEFAULT_MAX_DECLARATIONS_PER_TOKEN = 50; constant DEFAULT_MAX_INLINE_DEPTH (line 68) | const DEFAULT_MAX_INLINE_DEPTH = 8; function createTokenDetector (line 77) | function createTokenDetector(options: TokenDetectorOptions = {}): TokenD... FILE: app/chrome-extension/entrypoints/web-editor-v2/core/design-tokens/token-resolver.ts type TokenResolverOptions (line 30) | interface TokenResolverOptions { type ResolveForPropertyOptions (line 39) | interface ResolveForPropertyOptions { type TokenResolver (line 47) | interface TokenResolver { function createTokenResolver (line 99) | function createTokenResolver(options: TokenResolverOptions = {}): TokenR... FILE: app/chrome-extension/entrypoints/web-editor-v2/core/design-tokens/types.ts type CssVarName (line 19) | type CssVarName = `--${string}`; type RootCacheKey (line 25) | type RootCacheKey = Document | ShadowRoot; type RootType (line 28) | type RootType = 'document' | 'shadow'; type TokenKind (line 38) | type TokenKind = type StyleSheetRef (line 51) | interface StyleSheetRef { type TokenDeclarationOrigin (line 59) | type TokenDeclarationOrigin = 'rule' | 'inline'; type TokenDeclaration (line 65) | interface TokenDeclaration { type DesignToken (line 92) | interface DesignToken { type TokenIndexStats (line 106) | interface TokenIndexStats { type TokenIndex (line 121) | interface TokenIndex { type ContextToken (line 136) | interface ContextToken { type TokenQueryResult (line 144) | interface TokenQueryResult { type CssVarReference (line 158) | interface CssVarReference { type TokenAvailability (line 166) | type TokenAvailability = 'available' | 'unset'; type TokenResolutionMethod (line 169) | type TokenResolutionMethod = type TokenResolution (line 175) | interface TokenResolution { type TokenResolvedForProperty (line 185) | interface TokenResolvedForProperty { type TokenInvalidationReason (line 203) | type TokenInvalidationReason = type TokenInvalidationEvent (line 211) | interface TokenInvalidationEvent { type Unsubscribe (line 223) | type Unsubscribe = () => void; FILE: app/chrome-extension/entrypoints/web-editor-v2/core/editor.ts type ApplySnapshot (line 66) | interface ApplySnapshot { type EditorInternalState (line 72) | interface EditorInternalState { function createWebEditorV2 (line 121) | function createWebEditorV2(): WebEditorV2Api { FILE: app/chrome-extension/entrypoints/web-editor-v2/core/element-key.ts constant LABEL_ATTR_PRIORITY (line 40) | const LABEL_ATTR_PRIORITY = [ constant MAX_LABEL_ATTR_VALUE_LENGTH (line 53) | const MAX_LABEL_ATTR_VALUE_LENGTH = 48; constant MAX_TEXT_LABEL_LENGTH (line 56) | const MAX_TEXT_LABEL_LENGTH = 64; function normalizeTagName (line 65) | function normalizeTagName(element: Element): string { function normalizeAttrValue (line 74) | function normalizeAttrValue(value: unknown): string { function normalizeText (line 81) | function normalizeText(value: string): string { function truncate (line 90) | function truncate(value: string, maxLength: number): string { function normalizeShadowHostChain (line 99) | function normalizeShadowHostChain(shadowHostChain?: readonly string[]): ... function getFrameContextPrefix (line 111) | function getFrameContextPrefix(): string { function getStableShadowHostKey (line 145) | function getStableShadowHostKey(host: Element): string { function computeShadowContextPrefix (line 165) | function computeShadowContextPrefix( function readBestLabelAttribute (line 197) | function readBestLabelAttribute(element: Element): { attr: string; value... function generateStableElementKey (line 221) | function generateStableElementKey( function generateElementLabel (line 259) | function generateElementLabel(element: Element): string { function generateFullElementLabel (line 315) | function generateFullElementLabel( function isStableIdBasedKey (line 340) | function isStableIdBasedKey(key: WebEditorElementKey): boolean { function resetElementKeyState (line 365) | function resetElementKeyState(): void { FILE: app/chrome-extension/entrypoints/web-editor-v2/core/event-controller.ts type EventControllerMode (line 27) | type EventControllerMode = 'hover' | 'selecting' | 'editing' | 'dragging'; type EventModifiers (line 30) | interface EventModifiers { type DragCancelReason (line 38) | type DragCancelReason = type DragStartEvent (line 47) | interface DragStartEvent { type DragMoveEvent (line 58) | interface DragMoveEvent { type DragEndEvent (line 65) | type DragEndEvent = DragMoveEvent; type DragCancelEvent (line 68) | interface DragCancelEvent { type EventControllerOptions (line 73) | interface EventControllerOptions { type EventController (line 118) | interface EventController { constant CAPTURE_OPTIONS (line 132) | const CAPTURE_OPTIONS: AddEventListenerOptions = { constant BLOCKED_POINTER_EVENTS (line 138) | const BLOCKED_POINTER_EVENTS = [ constant BLOCKED_MOUSE_EVENTS (line 147) | const BLOCKED_MOUSE_EVENTS = [ constant BLOCKED_KEYBOARD_EVENTS (line 159) | const BLOCKED_KEYBOARD_EVENTS = ['keyup', 'keypress'] as const; constant BLOCKED_TOUCH_EVENTS (line 161) | const BLOCKED_TOUCH_EVENTS = ['touchstart', 'touchmove', 'touchend', 'to... function createEventController (line 176) | function createEventController(options: EventControllerOptions): EventCo... FILE: app/chrome-extension/entrypoints/web-editor-v2/core/execution-tracker.ts type ExecutionStatus (line 25) | type ExecutionStatus = type ExecutionState (line 38) | interface ExecutionState { type StatusCallback (line 53) | type StatusCallback = (state: ExecutionState) => void; type ExecutionTrackerOptions (line 56) | interface ExecutionTrackerOptions { constant DEFAULT_POLL_INTERVAL (line 69) | const DEFAULT_POLL_INTERVAL = 2000; constant DEFAULT_TIMEOUT (line 70) | const DEFAULT_TIMEOUT = 120000; constant TERMINAL_STATUSES (line 74) | const TERMINAL_STATUSES: ExecutionStatus[] = [ function isTerminalStatus (line 86) | function isTerminalStatus(status: ExecutionStatus): boolean { function getStatusMessage (line 90) | function getStatusMessage(status: ExecutionStatus): string { class ExecutionTracker (line 120) | class ExecutionTracker { method constructor (line 128) | constructor(options: ExecutionTrackerOptions = {}) { method track (line 139) | track(requestId: string, sessionId: string): ExecutionState { method getState (line 159) | getState(requestId: string): ExecutionState | undefined { method cancel (line 168) | async cancel(requestId: string): Promise { method updateFromBackground (line 221) | updateFromBackground( method dispose (line 235) | dispose(): void { method startPolling (line 244) | private startPolling(requestId: string): void { method stopPolling (line 292) | private stopPolling(requestId: string): void { method stopAllPolling (line 300) | private stopAllPolling(): void { method updateState (line 307) | private updateState( method queryStatus (line 329) | private async queryStatus( function createExecutionTracker (line 366) | function createExecutionTracker(options?: ExecutionTrackerOptions): Exec... FILE: app/chrome-extension/entrypoints/web-editor-v2/core/hmr-consistency.ts type HmrConsistencyPhase (line 42) | type HmrConsistencyPhase = 'idle' | 'executing' | 'settling' | 'verifying'; type HmrConsistencyOutcome (line 45) | type HmrConsistencyOutcome = 'verified' | 'mismatch' | 'lost' | 'uncerta... type MatchConfidence (line 48) | type MatchConfidence = 'high' | 'medium' | 'low'; type ResolveSource (line 51) | type ResolveSource = 'current' | 'strict' | 'relaxed' | 'geometric'; type HmrResolvedTarget (line 54) | interface HmrResolvedTarget { type HmrTextDiff (line 62) | interface HmrTextDiff { type HmrConsistencyResult (line 69) | interface HmrConsistencyResult { type HmrConsistencySnapshot (line 92) | interface HmrConsistencySnapshot { type StartHmrConsistencyArgs (line 100) | interface StartHmrConsistencyArgs { type HmrConsistencyVerifierOptions (line 112) | interface HmrConsistencyVerifierOptions { type HmrConsistencyVerifier (line 147) | interface HmrConsistencyVerifier { constant DEFAULT_QUIET_WINDOW_MS (line 166) | const DEFAULT_QUIET_WINDOW_MS = 300; constant DEFAULT_SETTLE_DEADLINE_MS (line 167) | const DEFAULT_SETTLE_DEADLINE_MS = 8000; constant DEFAULT_NO_SIGNAL_DEADLINE_MS (line 168) | const DEFAULT_NO_SIGNAL_DEADLINE_MS = 2000; constant DEFAULT_RELAXED_LOCATE_MAX_ELEMENTS (line 169) | const DEFAULT_RELAXED_LOCATE_MAX_ELEMENTS = 200; constant DEFAULT_GEOMETRIC_MAX_CANDIDATES (line 170) | const DEFAULT_GEOMETRIC_MAX_CANDIDATES = 16; constant HEAD_MUTATION_OPTIONS (line 173) | const HEAD_MUTATION_OPTIONS: MutationObserverInit = { constant DOM_MUTATION_OPTIONS (line 181) | const DOM_MUTATION_OPTIONS: MutationObserverInit = { constant TERMINAL_EXEC_STATUSES (line 190) | const TERMINAL_EXEC_STATUSES = new Set(['completed', 'failed', 'error', ... constant RELAXED_CONFIDENCE_THRESHOLD (line 193) | const RELAXED_CONFIDENCE_THRESHOLD = 8; constant GEOMETRIC_CONFIDENCE_THRESHOLD (line 194) | const GEOMETRIC_CONFIDENCE_THRESHOLD = 6; type SessionState (line 200) | interface SessionState { function safeReadRect (line 253) | function safeReadRect(element: Element): DOMRect | null { function rectCenter (line 264) | function rectCenter(rect: DOMRect): { x: number; y: number } { function safeElementsFromPoint (line 268) | function safeElementsFromPoint(x: number, y: number): Element[] { function safeQuerySelectorAll (line 282) | function safeQuerySelectorAll(root: ParentNode, selector: string, maxCou... function isHtmlOrBody (line 294) | function isHtmlOrBody(element: Element): boolean { function isValidCandidate (line 299) | function isValidCandidate( type ParsedFingerprint (line 310) | interface ParsedFingerprint { function parseFingerprint (line 317) | function parseFingerprint(raw: string): ParsedFingerprint { function intersectCount (line 337) | function intersectCount(a: readonly string[], b: readonly string[]): num... function commonPrefixLength (line 343) | function commonPrefixLength(a: readonly number[], b: readonly number[]):... function scoreCandidate (line 351) | function scoreCandidate(params: { function relaxedLocate (line 403) | function relaxedLocate(params: { function geometricLocate (line 448) | function geometricLocate(params: { function collectStyleProperties (line 499) | function collectStyleProperties(tx: Transaction): string[] { function createHmrConsistencyVerifier (line 520) | function createHmrConsistencyVerifier( FILE: app/chrome-extension/entrypoints/web-editor-v2/core/locator.ts type SelectorGenerationOptions (line 21) | interface SelectorGenerationOptions { constant DEFAULT_MAX_CANDIDATES (line 33) | const DEFAULT_MAX_CANDIDATES = 5; constant FINGERPRINT_TEXT_MAX_LENGTH (line 36) | const FINGERPRINT_TEXT_MAX_LENGTH = 32; constant FINGERPRINT_MAX_CLASSES (line 39) | const FINGERPRINT_MAX_CLASSES = 8; constant UNIQUE_DATA_ATTRS (line 42) | const UNIQUE_DATA_ATTRS = [ constant MAX_CLASS_COMBO_DEPTH (line 55) | const MAX_CLASS_COMBO_DEPTH = 3; constant ANCHOR_DATA_ATTRS (line 58) | const ANCHOR_DATA_ATTRS = [ constant MAX_SELECTOR_CLASS_COUNT (line 67) | const MAX_SELECTOR_CLASS_COUNT = 24; constant MAX_ANCHOR_DEPTH (line 70) | const MAX_ANCHOR_DEPTH = 20; function cssEscape (line 80) | function cssEscape(value: string): string { function getQueryRoot (line 144) | function getQueryRoot(element: Element): Document | ShadowRoot { function safeQuerySelector (line 152) | function safeQuerySelector(root: ParentNode, selector: string): Element ... function isUnique (line 163) | function isUnique(root: ParentNode, selector: string): boolean { function tryIdSelector (line 178) | function tryIdSelector(element: Element, root: ParentNode): string | null { function collectDataAttrSelectors (line 190) | function collectDataAttrSelectors(element: Element, root: ParentNode, ma... function tryDataAttrSelector (line 221) | function tryDataAttrSelector(element: Element, root: ParentNode): string... function collectClassSelectors (line 229) | function collectClassSelectors(element: Element, root: ParentNode, max: ... function tryClassSelector (line 293) | function tryClassSelector(element: Element, root: ParentNode): string | ... function buildPathSelector (line 300) | function buildPathSelector(element: Element, root: Document | ShadowRoot... function buildRelativePathSelector (line 354) | function buildRelativePathSelector( function tryAnchorSelector (line 402) | function tryAnchorSelector(element: Element, root: ParentNode): string |... function buildAnchorRelPathSelector (line 427) | function buildAnchorRelPathSelector(element: Element, root: Document | S... function getShadowHostChain (line 466) | function getShadowHostChain(element: Element): string[] | undefined { function normalizeText (line 495) | function normalizeText(text: string, maxLength: number): string { function computeFingerprint (line 502) | function computeFingerprint(element: Element): string { function computeDomPath (line 537) | function computeDomPath(element: Element): number[] { function generateSelectorCandidates (line 576) | function generateSelectorCandidates( function generateCssSelector (line 628) | function generateCssSelector( function createElementLocator (line 643) | function createElementLocator(element: Element): ElementLocator { function isSelectorUnique (line 662) | function isSelectorUnique(root: ParentNode, selector: string): boolean { function verifyFingerprint (line 673) | function verifyFingerprint(element: Element, fingerprint: string): boole... function locateElement (line 695) | function locateElement( function locatorKey (line 753) | function locatorKey(locator: ElementLocator): string { FILE: app/chrome-extension/entrypoints/web-editor-v2/core/message-listener.ts type RemoveMessageListener (line 25) | type RemoveMessageListener = () => void; type WebEditorV2HighlightRequest (line 28) | interface WebEditorV2HighlightRequest { type WebEditorV2HighlightResponse (line 39) | interface WebEditorV2HighlightResponse { type WebEditorV2RevertRequest (line 45) | interface WebEditorV2RevertRequest { type WebEditorV2RevertResponse (line 51) | interface WebEditorV2RevertResponse { type WebEditorV2ClearSelectionRequest (line 62) | interface WebEditorV2ClearSelectionRequest { type WebEditorV2ClearSelectionResponse (line 67) | interface WebEditorV2ClearSelectionResponse { type WebEditorV2Response (line 72) | type WebEditorV2Response = function isV2Request (line 88) | function isV2Request(request: unknown): request is WebEditorV2Request { function isHighlightRequest (line 103) | function isHighlightRequest(request: unknown): request is WebEditorV2Hig... function isRevertRequest (line 122) | function isRevertRequest(request: unknown): request is WebEditorV2Revert... function isClearSelectionRequest (line 136) | function isClearSelectionRequest(request: unknown): request is WebEditor... function clearHighlight (line 153) | function clearHighlight(): void { function showHighlight (line 164) | function showHighlight(element: Element): void { function findElementBySelector (line 200) | function findElementBySelector(selector: string): Element | null { function installMessageListener (line 227) | function installMessageListener(api: WebEditorV2Api): RemoveMessageListe... FILE: app/chrome-extension/entrypoints/web-editor-v2/core/payload-builder.ts type ApplyInstructionType (line 23) | type ApplyInstructionType = 'update_text' | 'update_style'; type ElementFingerprint (line 26) | interface ElementFingerprint { type ApplyInstruction (line 34) | interface ApplyInstruction { type ApplyPayload (line 42) | interface ApplyPayload { type BuildPayloadOptions (line 62) | interface BuildPayloadOptions { function asRecord (line 77) | function asRecord(value: unknown): Record | null { function readString (line 87) | function readString(value: unknown): string | undefined { function readNumber (line 98) | function readNumber(value: unknown): number | undefined { function normalizeText (line 109) | function normalizeText(text: string, maxLength: number): string { function buildFingerprintFromElement (line 123) | function buildFingerprintFromElement(element: Element): ElementFingerpri... function buildFingerprintFromLocator (line 135) | function buildFingerprintFromLocator(locator: ElementLocator): ElementFi... constant TAILWIND_PATTERNS (line 162) | const TAILWIND_PATTERNS = [ function detectTailwind (line 182) | function detectTailwind(classes: string[]): boolean { type ComponentHints (line 190) | interface ComponentHints { function resolveComponentHints (line 199) | function resolveComponentHints(element: Element): ComponentHints { type StyleDiff (line 249) | interface StyleDiff { function computeStyleDiff (line 259) | function computeStyleDiff(tx: Transaction): StyleDiff | null { function buildStyleDescription (line 297) | function buildStyleDescription( function buildTextDescription (line 322) | function buildTextDescription( function buildApplyPayload (line 347) | function buildApplyPayload( function sendApplyPayload (line 437) | async function sendApplyPayload(payload: ApplyPayload): Promise { function sendTransactionToAgent (line 451) | async function sendTransactionToAgent( FILE: app/chrome-extension/entrypoints/web-editor-v2/core/perf-monitor.ts type PerfMonitorOptions (line 23) | interface PerfMonitorOptions { type PerfMonitor (line 33) | interface PerfMonitor { type PerformanceMemory (line 45) | interface PerformanceMemory { constant DEFAULT_FPS_UI_INTERVAL_MS (line 55) | const DEFAULT_FPS_UI_INTERVAL_MS = 500; constant DEFAULT_MEMORY_SAMPLE_INTERVAL_MS (line 56) | const DEFAULT_MEMORY_SAMPLE_INTERVAL_MS = 1000; function isFiniteNumber (line 62) | function isFiniteNumber(value: unknown): value is number { function bytesToMb (line 66) | function bytesToMb(bytes: number): number { function formatMb (line 70) | function formatMb(bytes: number, digits: number): string { function readPerformanceMemory (line 75) | function readPerformanceMemory(): PerformanceMemory | null { function createPerfMonitor (line 109) | function createPerfMonitor(options: PerfMonitorOptions): PerfMonitor { FILE: app/chrome-extension/entrypoints/web-editor-v2/core/position-tracker.ts type PositionTrackerOptions (line 26) | interface PositionTrackerOptions { type TrackedRects (line 32) | interface TrackedRects { type PositionTracker (line 40) | interface PositionTracker { constant PASSIVE_LISTENER (line 56) | const PASSIVE_LISTENER: AddEventListenerOptions = { passive: true }; constant RECT_EPSILON (line 59) | const RECT_EPSILON = 0.5; constant SELECTION_MUTATION_OPTIONS (line 66) | const SELECTION_MUTATION_OPTIONS: MutationObserverInit = { function toViewportRect (line 78) | function toViewportRect(domRect: DOMRectReadOnly): ViewportRect | null { function approximatelyEqual (line 102) | function approximatelyEqual(a: number, b: number): boolean { function rectApproximatelyEqual (line 109) | function rectApproximatelyEqual(a: ViewportRect | null, b: ViewportRect ... function trackedRectsEqual (line 124) | function trackedRectsEqual(a: TrackedRects, b: TrackedRects): boolean { function createPositionTracker (line 140) | function createPositionTracker(options: PositionTrackerOptions): Positio... FILE: app/chrome-extension/entrypoints/web-editor-v2/core/props-bridge.ts type HookStatus (line 24) | type HookStatus = type FrameworkType (line 33) | type FrameworkType = 'react' | 'vue' | 'unknown'; type PropsCapabilities (line 38) | interface PropsCapabilities { type PropPathSegment (line 48) | type PropPathSegment = string | number; type PropPath (line 49) | type PropPath = PropPathSegment[]; type EditablePropValue (line 54) | type EditablePropValue = string | number | boolean | null | undefined; type EncodedPropValue (line 59) | type EncodedPropValue = Exclude | { $we: '... type SerializedValueBase (line 65) | interface SerializedValueBase { type SerializedValue (line 69) | type SerializedValue = type SerializedEnumValue (line 133) | type SerializedEnumValue = string | number | boolean; type PropEntrySource (line 138) | type PropEntrySource = 'props' | 'attrs'; type SerializedPropEntry (line 143) | interface SerializedPropEntry { type SerializedProps (line 160) | interface SerializedProps { type PropsOperation (line 170) | type PropsOperation = 'probe' | 'read' | 'write' | 'reset' | 'cleanup'; type PropsRequestPayload (line 172) | interface PropsRequestPayload { type PropsRequestBase (line 177) | interface PropsRequestBase { type PropsProbeRequest (line 185) | interface PropsProbeRequest extends PropsRequestBase { type PropsReadRequest (line 189) | interface PropsReadRequest extends PropsRequestBase { type PropsWriteRequest (line 194) | interface PropsWriteRequest extends PropsRequestBase { type PropsResetRequest (line 203) | interface PropsResetRequest extends PropsRequestBase { type PropsCleanupRequest (line 208) | interface PropsCleanupRequest extends PropsRequestBase { type PropsRequest (line 212) | type PropsRequest = type PropsResponseData (line 222) | interface PropsResponseData { type PropsRawResponse (line 236) | interface PropsRawResponse { type PropsResult (line 251) | interface PropsResult { class PropsError (line 260) | class PropsError extends Error { method constructor (line 263) | constructor(message: string, data?: PropsResponseData) { type PropsBridge (line 273) | interface PropsBridge { type PropsBridgeOptions (line 318) | interface PropsBridgeOptions { constant EVENT_NAME (line 326) | const EVENT_NAME = { constant PROTOCOL_VERSION (line 332) | const PROTOCOL_VERSION = 1 as const; constant DEFAULT_TIMEOUT_MS (line 334) | const DEFAULT_TIMEOUT_MS = 2500; constant MIN_TIMEOUT_MS (line 335) | const MIN_TIMEOUT_MS = 200; function createRequestId (line 341) | function createRequestId(): string { function encodePropValue (line 352) | function encodePropValue(value: EditablePropValue): EncodedPropValue { function isObject (line 357) | function isObject(value: unknown): value is Record { function normalizeErrorMessage (line 361) | function normalizeErrorMessage(err: unknown): string { function isEditablePrimitive (line 366) | function isEditablePrimitive(value: unknown): value is EditablePropValue { constant DANGEROUS_KEYS (line 375) | const DANGEROUS_KEYS = new Set([ function hasDangerousKey (line 385) | function hasDangerousKey(path: PropPath): boolean { function createPropsBridge (line 396) | function createPropsBridge(options: PropsBridgeOptions = {}): PropsBridge { FILE: app/chrome-extension/entrypoints/web-editor-v2/core/snap-engine.ts type SnapAnchorSource (line 27) | type SnapAnchorSource = 'sibling' | 'viewport'; type SnapAnchorXType (line 30) | type SnapAnchorXType = 'left' | 'center' | 'right'; type SnapAnchorYType (line 33) | type SnapAnchorYType = 'top' | 'middle' | 'bottom'; type SnapAnchorType (line 36) | type SnapAnchorType = SnapAnchorXType | SnapAnchorYType; type SnapAnchorBase (line 39) | interface SnapAnchorBase { type SnapAnchorX (line 51) | type SnapAnchorX = SnapAnchorBase; type SnapAnchorY (line 54) | type SnapAnchorY = SnapAnchorBase; type SnapAnchors (line 57) | interface SnapAnchors { type SnapLockX (line 63) | interface SnapLockX { type SnapLockY (line 71) | interface SnapLockY { type SnapResult (line 79) | interface SnapResult { type ResizeDirection (line 91) | interface ResizeDirection { type ViewportSize (line 99) | interface ViewportSize { type ComputeResizeSnapParams (line 105) | interface ComputeResizeSnapParams { type ComputeDistanceLabelsParams (line 127) | interface ComputeDistanceLabelsParams { type FixedEdgeX (line 145) | type FixedEdgeX = 'left' | 'right' | null; type FixedEdgeY (line 146) | type FixedEdgeY = 'top' | 'bottom' | null; type SnapCandidate (line 149) | interface SnapCandidate { function isFiniteNumber (line 159) | function isFiniteNumber(value: unknown): value is number { function isValidRect (line 163) | function isValidRect(rect: ViewportRect | null): rect is ViewportRect { function readElementRect (line 175) | function readElementRect(element: Element): ViewportRect | null { function rectRight (line 191) | function rectRight(r: ViewportRect): number { function rectBottom (line 195) | function rectBottom(r: ViewportRect): number { function rectCenterX (line 199) | function rectCenterX(r: ViewportRect): number { function rectCenterY (line 203) | function rectCenterY(r: ViewportRect): number { function getRectXValue (line 208) | function getRectXValue(rect: ViewportRect, type: SnapAnchorXType): number { function getRectYValue (line 220) | function getRectYValue(rect: ViewportRect, type: SnapAnchorYType): number { function createEmptyAnchors (line 235) | function createEmptyAnchors(): SnapAnchors { function collectSiblingAnchors (line 254) | function collectSiblingAnchors(target: Element): SnapAnchors { function collectViewportAnchors (line 356) | function collectViewportAnchors(): SnapAnchors { function mergeAnchors (line 377) | function mergeAnchors(...collections: SnapAnchors[]): SnapAnchors { function applyXSnap (line 403) | function applyXSnap( function applyYSnap (line 455) | function applyYSnap( function findBestXSnap (line 510) | function findBestXSnap( function findBestYSnap (line 549) | function findBestYSnap( function buildGuideLines (line 598) | function buildGuideLines( function computeResizeSnap (line 654) | function computeResizeSnap(params: ComputeResizeSnapParams): SnapResult { function shouldShowGap (line 790) | function shouldShowGap(gap: number, minGap: number): boolean { function formatDistanceText (line 797) | function formatDistanceText(px: number): string { function clamp (line 806) | function clamp(value: number, min: number, max: number): number { function computeDistanceLabels (line 829) | function computeDistanceLabels(params: ComputeDistanceLabelsParams): Dis... FILE: app/chrome-extension/entrypoints/web-editor-v2/core/transaction-aggregator.ts constant TEXT_PREVIEW_MAX_LENGTH (line 29) | const TEXT_PREVIEW_MAX_LENGTH = 96; constant FALLBACK_LABEL_MAX_LENGTH (line 32) | const FALLBACK_LABEL_MAX_LENGTH = 64; constant APPLICABLE_TX_TYPES (line 35) | const APPLICABLE_TX_TYPES = new Set(['style', 'text', 'class']); function normalizeKey (line 44) | function normalizeKey(value: unknown): string { function normalizeStyleValue (line 51) | function normalizeStyleValue(value: unknown): string { function normalizePreviewText (line 58) | function normalizePreviewText(value: unknown): string { function truncate (line 67) | function truncate(value: unknown, maxLength: number): string { function normalizeClassList (line 76) | function normalizeClassList(input: readonly string[] | null | undefined)... function safeLocateElement (line 94) | function safeLocateElement(locator: ElementLocator): Element | null { function buildFallbackLabels (line 106) | function buildFallbackLabels( function resolveLabels (line 146) | function resolveLabels( function inferChangeType (line 162) | function inferChangeType( type StyleNetEffect (line 179) | interface StyleNetEffect { function computeStyleNetEffect (line 191) | function computeStyleNetEffect(txs: readonly Transaction[]): StyleNetEff... type TextNetEffect (line 258) | interface TextNetEffect { function computeTextNetEffect (line 268) | function computeTextNetEffect(txs: readonly Transaction[]): TextNetEffec... type ClassNetEffect (line 289) | interface ClassNetEffect { function computeClassNetEffect (line 299) | function computeClassNetEffect(txs: readonly Transaction[]): ClassNetEff... function aggregateTransactionsByElement (line 349) | function aggregateTransactionsByElement( function hasApplicableChanges (line 488) | function hasApplicableChanges(transactions: readonly Transaction[]): boo... function getChangedElementKeys (line 499) | function getChangedElementKeys( FILE: app/chrome-extension/entrypoints/web-editor-v2/core/transaction-manager.ts type TransactionChangeAction (line 31) | type TransactionChangeAction = 'push' | 'merge' | 'undo' | 'redo' | 'cle... type TransactionChangeEvent (line 34) | interface TransactionChangeEvent { type TransactionManagerOptions (line 42) | interface TransactionManagerOptions { type StyleTransactionHandle (line 60) | interface StyleTransactionHandle { type MultiStyleTransactionHandle (line 81) | interface MultiStyleTransactionHandle { type MoveTransactionHandle (line 100) | interface MoveTransactionHandle { type TransactionManager (line 114) | interface TransactionManager { constant DEFAULT_MAX_HISTORY (line 169) | const DEFAULT_MAX_HISTORY = 100; constant DEFAULT_MERGE_WINDOW_MS (line 170) | const DEFAULT_MERGE_WINDOW_MS = 800; constant KEYBIND_OPTIONS (line 172) | const KEYBIND_OPTIONS: AddEventListenerOptions = { function normalizePropertyName (line 185) | function normalizePropertyName(property: string): string { function getInlineStyle (line 202) | function getInlineStyle(element: Element): CSSStyleDeclaration | null { function readStyleValue (line 217) | function readStyleValue(style: CSSStyleDeclaration, property: string): s... function writeStyleValue (line 226) | function writeStyleValue(style: CSSStyleDeclaration, property: string, v... function applyStylesSnapshot (line 241) | function applyStylesSnapshot(element: Element, styles: Record | ... function parseSingleRootElement (line 358) | function parseSingleRootElement(html: string): Element | null { function stripIdsFromSubtree (line 380) | function stripIdsFromSubtree(root: Element): void { function insertElementAtPosition (line 396) | function insertElementAtPosition( function wrapElementWithContainer (line 432) | function wrapElementWithContainer( function unwrapSingleChildContainer (line 462) | function unwrapSingleChildContainer(wrapper: Element): Element | null { function buildInsertAfterPosition (line 483) | function buildInsertAfterPosition(target: Element): MoveOperationData | ... function generateTransactionId (line 508) | function generateTransactionId(timestamp: number): string { function createStyleTransactionFromStyles (line 524) | function createStyleTransactionFromStyles( function createStyleTransaction (line 566) | function createStyleTransaction( function createTextTransaction (line 596) | function createTextTransaction( function createClassTransaction (line 640) | function createClassTransaction( function createMoveTransaction (line 681) | function createMoveTransaction( function createStructureTransaction (line 724) | function createStructureTransaction( function isDisallowedStructureTarget (line 753) | function isDisallowedStructureTarget(element: Element): boolean { function isDisallowedStructureContainer (line 762) | function isDisallowedStructureContainer(element: Element): boolean { function isDisallowedMoveElement (line 770) | function isDisallowedMoveElement(element: Element): boolean { function buildMoveOperationData (line 778) | function buildMoveOperationData(element: Element): MoveOperationData | n... function applyMoveOperation (line 821) | function applyMoveOperation(target: Element, op: MoveOperationData): boo... function getSingleStyleProperty (line 874) | function getSingleStyleProperty(tx: Transaction): string | null { function canMerge (line 890) | function canMerge(prev: Transaction, next: Transaction, mergeWindowMs: n... function mergeInto (line 911) | function mergeInto(prev: Transaction, next: Transaction): boolean { function applyStructureTransaction (line 933) | function applyStructureTransaction(tx: Transaction, direction: 'undo' | ... function applyTransaction (line 1083) | function applyTransaction(tx: Transaction, direction: 'undo' | 'redo'): ... function createTransactionManager (line 1161) | function createTransactionManager( FILE: app/chrome-extension/entrypoints/web-editor-v2/drag/drag-reorder-controller.ts type DragReorderControllerOptions (line 40) | interface DragReorderControllerOptions { type DragReorderController (line 53) | interface DragReorderController { type InsertSide (line 66) | type InsertSide = 'before' | 'after'; type InsertPosition (line 68) | interface InsertPosition { type DragState (line 83) | interface DragState { function isDocumentOrShadowRoot (line 110) | function isDocumentOrShadowRoot(value: unknown): value is Document | Sha... function isDisallowedDragElement (line 114) | function isDisallowedDragElement(element: Element): boolean { function toViewportRect (line 119) | function toViewportRect(rect: DOMRectReadOnly): ViewportRect | null { function getHitElementsFromRoot (line 142) | function getHitElementsFromRoot( type ContainerAxis (line 170) | type ContainerAxis = { axis: 'x' | 'y'; reverse: boolean } | null; function getContainerAxis (line 178) | function getContainerAxis(parent: Element): ContainerAxis { function chooseSideWithHysteresis (line 226) | function chooseSideWithHysteresis( function isNoopMove (line 256) | function isNoopMove( function isValidDropTarget (line 278) | function isValidDropTarget( function createDragReorderController (line 305) | function createDragReorderController( FILE: app/chrome-extension/entrypoints/web-editor-v2/overlay/canvas-overlay.ts type ViewportRect (line 39) | type ViewportRect = Pick> = { function isFiniteNumber (line 176) | function isFiniteNumber(value: unknown): value is number { function isValidRect (line 180) | function isValidRect(rect: ViewportRect | null): rect is ViewportRect { function clampMin (line 192) | function clampMin(value: number, min: number): number { function parsePx (line 201) | function parsePx(value: string): number | null { function formatPx (line 219) | function formatPx(value: number): string { function getResizeMode (line 229) | function getResizeMode(position: string): ResizePositionMode { function dirHasWest (line 238) | function dirHasWest(dir: ResizeHandleDir): boolean { function dirHasEast (line 242) | function dirHasEast(dir: ResizeHandleDir): boolean { function dirHasNorth (line 246) | function dirHasNorth(dir: ResizeHandleDir): boolean { function dirHasSouth (line 250) | function dirHasSouth(dir: ResizeHandleDir): boolean { function readViewportRect (line 257) | function readViewportRect(element: Element): ViewportRect | null { function safeGetComputedStyle (line 282) | function safeGetComputedStyle(element: Element): CSSStyleDeclaration | n... function sumStylePx (line 293) | function sumStylePx(style: CSSStyleDeclaration, propA: string, propB: st... function readBoxExtras (line 302) | function readBoxExtras(style: CSSStyleDeclaration): BoxExtras { function borderBoxToCssSize (line 322) | function borderBoxToCssSize( function computeAbsoluteOrigin (line 335) | function computeAbsoluteOrigin(target: HTMLElement): AbsoluteOrigin { function stopEvent (line 360) | function stopEvent(event: Event): void { function createHandlesController (line 372) | function createHandlesController(options: HandlesControllerOptions): Han... FILE: app/chrome-extension/entrypoints/web-editor-v2/selection/selection-engine.ts type SelectionEngineOptions (line 26) | interface SelectionEngineOptions { type SelectionCandidate (line 32) | interface SelectionCandidate { type Modifiers (line 44) | interface Modifiers { type SelectionEngine (line 52) | interface SelectionEngine { constant MAX_HIT_ELEMENTS (line 77) | const MAX_HIT_ELEMENTS = 8; constant MAX_ANCESTOR_DEPTH (line 80) | const MAX_ANCESTOR_DEPTH = 6; constant MAX_CANDIDATES (line 83) | const MAX_CANDIDATES = 60; constant RECT_EPSILON (line 86) | const RECT_EPSILON = 0.5; constant INTERACTIVE_TAGS (line 89) | const INTERACTIVE_TAGS = new Set([ constant INTERACTIVE_ROLES (line 101) | const INTERACTIVE_ROLES = new Set([ constant WRAPPER_TAGS (line 115) | const WRAPPER_TAGS = new Set([ function parseNumber (line 134) | function parseNumber(value: string): number { function isTransparentColor (line 142) | function isTransparentColor(value: string): boolean { function hasDirectNonWhitespaceText (line 176) | function hasDirectNonWhitespaceText(element: Element): boolean { function getParentElementOrHost (line 188) | function getParentElementOrHost(element: Element): Element | null { function getHitElementsAtPoint (line 206) | function getHitElementsAtPoint(x: number, y: number): Element[] { function getViewportArea (line 224) | function getViewportArea(): number { function readRect (line 233) | function readRect(element: Element): DOMRectReadOnly | null { function isEffectivelyInvisible (line 247) | function isEffectivelyInvisible(style: CSSStyleDeclaration, rect: DOMRec... function getVisualBoundaryScore (line 265) | function getVisualBoundaryScore( function getInteractivityScore (line 327) | function getInteractivityScore( function getSizeScore (line 381) | function getSizeScore( function hasMeaningfulPadding (line 424) | function hasMeaningfulPadding(style: CSSStyleDeclaration): boolean { function isWrapperOnly (line 436) | function isWrapperOnly( type CandidateMeta (line 468) | interface CandidateMeta { function compareMeta (line 476) | function compareMeta(a: CandidateMeta, b: CandidateMeta): number { function createSelectionEngine (line 488) | function createSelectionEngine(options: SelectionEngineOptions): Selecti... FILE: app/chrome-extension/entrypoints/web-editor-v2/ui/breadcrumbs.ts type BreadcrumbsDock (line 22) | type BreadcrumbsDock = 'top' | 'bottom'; type BreadcrumbsOptions (line 25) | interface BreadcrumbsOptions { type Breadcrumbs (line 35) | interface Breadcrumbs { type BreadcrumbItem (line 45) | interface BreadcrumbItem { constant MAX_COMPOSED_DEPTH (line 61) | const MAX_COMPOSED_DEPTH = 64; constant MAX_LABEL_CHARS (line 64) | const MAX_LABEL_CHARS = 36; constant MAX_CLASS_PARTS (line 67) | const MAX_CLASS_PARTS = 2; constant NORMAL_SEPARATOR (line 70) | const NORMAL_SEPARATOR = '›'; constant SHADOW_SEPARATOR (line 73) | const SHADOW_SEPARATOR = '⬡'; constant ANCHOR_GAP_PX (line 76) | const ANCHOR_GAP_PX = 10; constant SAFE_PADDING_PX (line 79) | const SAFE_PADDING_PX = 8; constant PROPERTY_PANEL_WIDTH (line 82) | const PROPERTY_PANEL_WIDTH = 320; function truncateLabel (line 91) | function truncateLabel(text: string, maxChars: number): string { function formatElementLabel (line 100) | function formatElementLabel(element: Element): { label: string; fullLabe... function buildComposedBreadcrumbs (line 125) | function buildComposedBreadcrumbs(target: Element): BreadcrumbItem[] { function createBreadcrumbs (line 179) | function createBreadcrumbs(options: BreadcrumbsOptions): Breadcrumbs { FILE: app/chrome-extension/entrypoints/web-editor-v2/ui/floating-drag.ts type FloatingPosition (line 20) | interface FloatingPosition { type FloatingDragOptions (line 25) | interface FloatingDragOptions { type DragSession (line 52) | interface DragSession { constant WINDOW_CAPTURE (line 70) | const WINDOW_CAPTURE: AddEventListenerOptions = { capture: true, passive... function blockEvent (line 76) | function blockEvent(event: Event): void { function clampNumber (line 84) | function clampNumber(value: number, min: number, max: number): number { function clampPosition (line 91) | function clampPosition( function roundPosition (line 107) | function roundPosition(position: FloatingPosition): FloatingPosition { function installFloatingDrag (line 120) | function installFloatingDrag(options: FloatingDragOptions): () => void { FILE: app/chrome-extension/entrypoints/web-editor-v2/ui/icons.ts function createSvgElement (line 19) | function createSvgElement(): SVGElement { function createSvgElement24 (line 27) | function createSvgElement24(): SVGElement { function createStrokePath (line 35) | function createStrokePath(d: string): SVGPathElement { function createMinusIcon (line 52) | function createMinusIcon(): SVGElement { function createPlusIcon (line 61) | function createPlusIcon(): SVGElement { function createCloseIcon (line 70) | function createCloseIcon(): SVGElement { function createGripIcon (line 79) | function createGripIcon(): SVGElement { function createChevronIcon (line 106) | function createChevronIcon(): SVGElement { function createUndoIcon (line 117) | function createUndoIcon(): SVGElement { function createRedoIcon (line 127) | function createRedoIcon(): SVGElement { function createChevronUpIcon (line 137) | function createChevronUpIcon(): SVGElement { function createChevronDownSmallIcon (line 147) | function createChevronDownSmallIcon(): SVGElement { FILE: app/chrome-extension/entrypoints/web-editor-v2/ui/property-panel/class-editor.ts type ClassEditorOptions (line 25) | interface ClassEditorOptions { type ClassEditor (line 34) | interface ClassEditor { constant MAX_SUGGESTIONS (line 49) | const MAX_SUGGESTIONS = 8; constant MAX_SUGGESTION_CACHE (line 50) | const MAX_SUGGESTION_CACHE = 400; function normalizeClassList (line 59) | function normalizeClassList(input: readonly string[]): string[] { function isSameStringList (line 77) | function isSameStringList(a: readonly string[], b: readonly string[]): b... function splitTokens (line 88) | function splitTokens(raw: string): string[] { function readElementClasses (line 98) | function readElementClasses(element: Element): string[] { function createClassEditor (line 126) | function createClassEditor(options: ClassEditorOptions): ClassEditor { FILE: app/chrome-extension/entrypoints/web-editor-v2/ui/property-panel/components-tree.ts type ComponentsTreeOptions (line 23) | interface ComponentsTreeOptions { type ComponentsTree (line 28) | interface ComponentsTree { type TreeNode (line 34) | interface TreeNode { constant MAX_ANCESTORS (line 47) | const MAX_ANCESTORS = 10; constant MAX_CHILDREN (line 48) | const MAX_CHILDREN = 20; constant MAX_CLASSES (line 49) | const MAX_CLASSES = 2; constant MAX_TEXT_LENGTH (line 50) | const MAX_TEXT_LENGTH = 20; function formatElementLabel (line 59) | function formatElementLabel(element: Element): string { function getAncestorChain (line 95) | function getAncestorChain(element: Element): Element[] { function getDirectChildren (line 121) | function getDirectChildren(element: Element): Element[] { function buildTreeNodes (line 128) | function buildTreeNodes(target: Element | null): TreeNode[] { function createComponentsTree (line 179) | function createComponentsTree(options: ComponentsTreeOptions): Component... FILE: app/chrome-extension/entrypoints/web-editor-v2/ui/property-panel/components/alignment-grid.ts type AlignmentGridValue (line 31) | interface AlignmentGridValue { type AlignmentGridOptions (line 36) | interface AlignmentGridOptions { type AlignmentGrid (line 53) | interface AlignmentGrid { constant DEFAULT_AXIS_VALUES (line 70) | const DEFAULT_AXIS_VALUES: readonly [string, string, string] = ['flex-st... function indexOf3 (line 76) | function indexOf3(values: readonly [string, string, string], v: string):... function copyValue (line 83) | function copyValue(v: AlignmentGridValue): AlignmentGridValue { function buildMarker (line 88) | function buildMarker(): HTMLElement { function createAlignmentGrid (line 109) | function createAlignmentGrid(options: AlignmentGridOptions): AlignmentGr... FILE: app/chrome-extension/entrypoints/web-editor-v2/ui/property-panel/components/icon-button-group.ts type IconButtonGroupItem (line 27) | interface IconButtonGroupItem { type IconButtonGroupOptions (line 40) | interface IconButtonGroupOptions { type IconButtonGroup (line 57) | interface IconButtonGroup { function cloneForDom (line 74) | function cloneForDom(node: Node): Node { function findSelectedIndex (line 82) | function findSelectedIndex( function findFirstEnabledIndex (line 93) | function findFirstEnabledIndex(buttons: readonly HTMLButtonElement[]): n... function findLastEnabledIndex (line 100) | function findLastEnabledIndex(buttons: readonly HTMLButtonElement[]): nu... function createIconButtonGroup (line 111) | function createIconButtonGroup( FILE: app/chrome-extension/entrypoints/web-editor-v2/ui/property-panel/components/input-container.ts type InputAffix (line 28) | type InputAffix = string | Node; type InputContainerOptions (line 30) | interface InputContainerOptions { type InputContainer (line 53) | interface InputContainer { function isNonEmptyString (line 70) | function isNonEmptyString(value: unknown): value is string { function hasAffix (line 74) | function hasAffix(value: InputAffix | null | undefined): value is InputA... function joinClassNames (line 79) | function joinClassNames(...parts: Array = { type FieldState (line 65) | interface FieldState { function formatAriaLabel (line 76) | function formatAriaLabel(property: SpacingProperty): string { function isInputFocused (line 81) | function isInputFocused(input: HTMLInputElement): boolean { function readInlineValue (line 93) | function readInlineValue(element: Element, property: SpacingProperty): s... function readComputedValue (line 103) | function readComputedValue(element: Element, property: SpacingProperty):... function createEdgeIcon (line 111) | function createEdgeIcon(pathD: string): SVGElement { type SpacingControlOptions (line 130) | interface SpacingControlOptions { function createSpacingControl (line 135) | function createSpacingControl(options: SpacingControlOptions): DesignCon... FILE: app/chrome-extension/entrypoints/web-editor-v2/ui/property-panel/controls/token-picker.ts type TokenPickerOptions (line 28) | interface TokenPickerOptions { type TokenPicker (line 42) | interface TokenPicker { constant DEFAULT_MAX_VISIBLE (line 63) | const DEFAULT_MAX_VISIBLE = 8; constant FILTER_DEBOUNCE_MS (line 64) | const FILTER_DEBOUNCE_MS = 100; function createTokenPicker (line 73) | function createTokenPicker(options: TokenPickerOptions): TokenPicker { FILE: app/chrome-extension/entrypoints/web-editor-v2/ui/property-panel/controls/typography-control.ts constant SVG_NS (line 32) | const SVG_NS = 'http://www.w3.org/2000/svg'; constant FONT_WEIGHT_VALUES (line 34) | const FONT_WEIGHT_VALUES = ['100', '200', '300', '400', '500', '600', '7... constant TEXT_ALIGN_VALUES (line 35) | const TEXT_ALIGN_VALUES = ['left', 'center', 'right', 'justify'] as const; constant VERTICAL_ALIGN_VALUES (line 36) | const VERTICAL_ALIGN_VALUES = ['baseline', 'middle', 'top', 'bottom'] as... constant TEXT_COLOR_TYPE_VALUES (line 39) | const TEXT_COLOR_TYPE_VALUES = ['solid', 'gradient'] as const; type TextColorType (line 40) | type TextColorType = (typeof TEXT_COLOR_TYPE_VALUES)[number]; type TextAlignValue (line 42) | type TextAlignValue = (typeof TEXT_ALIGN_VALUES)[number]; type VerticalAlignValue (line 43) | type VerticalAlignValue = (typeof VERTICAL_ALIGN_VALUES)[number]; constant FONT_FAMILY_PRESET_VALUES (line 44) | const FONT_FAMILY_PRESET_VALUES = [ constant FONT_FAMILY_CUSTOM_VALUE (line 51) | const FONT_FAMILY_CUSTOM_VALUE = 'custom'; type TypographyProperty (line 53) | type TypographyProperty = type StandardFieldState (line 64) | interface StandardFieldState { type FontFamilyFieldState (line 74) | interface FontFamilyFieldState { type TextAlignFieldState (line 84) | interface TextAlignFieldState { type VerticalAlignFieldState (line 92) | interface VerticalAlignFieldState { type ColorFieldState (line 100) | interface ColorFieldState { type FieldState (line 107) | type FieldState = function createBaseIconSvg (line 118) | function createBaseIconSvg(): SVGSVGElement { function createTextAlignIcon (line 127) | function createTextAlignIcon(value: TextAlignValue): SVGElement { function createVerticalAlignIcon (line 185) | function createVerticalAlignIcon(value: VerticalAlignValue): SVGElement { function isTextAlignValue (line 241) | function isTextAlignValue(value: string): value is TextAlignValue { function isVerticalAlignValue (line 245) | function isVerticalAlignValue(value: string): value is VerticalAlignValue { function isFieldFocused (line 253) | function isFieldFocused(el: HTMLElement): boolean { function normalizeLineHeight (line 268) | function normalizeLineHeight(raw: string): string { function readInlineValue (line 275) | function readInlineValue(element: Element, property: string): string { function readComputedValue (line 284) | function readComputedValue(element: Element, property: string): string { function isGradientBackgroundValue (line 295) | function isGradientBackgroundValue(raw: string): boolean { function isTransparentTextFillColor (line 302) | function isTransparentTextFillColor(raw: string): boolean { function inferTextColorType (line 315) | function inferTextColorType(target: Element): TextColorType { type TypographyControlOptions (line 337) | interface TypographyControlOptions { function createTypographyControl (line 344) | function createTypographyControl(options: TypographyControlOptions): Des... FILE: app/chrome-extension/entrypoints/web-editor-v2/ui/property-panel/css-defaults.ts type CssDefaultsProvider (line 13) | interface CssDefaultsProvider { type ProbeRoot (line 22) | interface ProbeRoot { function normalizeTagName (line 28) | function normalizeTagName(tagName: string): string { function normalizePropertyName (line 34) | function normalizePropertyName(property: string): string { function createCssDefaultsProvider (line 38) | function createCssDefaultsProvider(): CssDefaultsProvider { FILE: app/chrome-extension/entrypoints/web-editor-v2/ui/property-panel/css-panel.ts type CssPanelOptions (line 33) | interface CssPanelOptions { type CssPanel (line 43) | interface CssPanel extends DesignControl { function formatSpecificity (line 55) | function formatSpecificity(spec: readonly [number, number, number, numbe... function readElementClasses (line 63) | function readElementClasses(element: Element): string[] { function applyClassListToElement (line 87) | function applyClassListToElement(element: Element, classes: readonly str... function unescapeCssIdentifier (line 122) | function unescapeCssIdentifier(input: string): string { function consumeClassIdent (line 169) | function consumeClassIdent(selector: string, start: number): number { function extractClassNamesFromSelector (line 230) | function extractClassNamesFromSelector(selector: string): string[] { function collectClassSuggestions (line 287) | function collectClassSuggestions(snapshot: CssPanelSnapshot): string[] { function isDesignToken (line 310) | function isDesignToken(declName: string): boolean { constant GLOBAL_SELECTORS (line 317) | const GLOBAL_SELECTORS = new Set(['*', 'html', 'body', ':root', ':where(... function isGlobalSelector (line 322) | function isGlobalSelector(selector: string): boolean { type DefaultValueFilterContext (line 338) | interface DefaultValueFilterContext { function getDeclAffectedProperties (line 347) | function getDeclAffectedProperties(decl: CssDeclView): readonly string[] { function collectBaselineProperties (line 358) | function collectBaselineProperties(snapshot: CssPanelSnapshot): string[] { function isDefaultValueDecl (line 381) | function isDefaultValueDecl(decl: CssDeclView, ctx: DefaultValueFilterCo... function shouldRenderDecl (line 410) | function shouldRenderDecl(decl: CssDeclView, ctx: DefaultValueFilterCont... function shouldFilterGlobalSelector (line 420) | function shouldFilterGlobalSelector(selector: string, tagName: string): ... function createRuleBlock (line 432) | function createRuleBlock( function createDeclaration (line 502) | function createDeclaration(decl: CssDeclView): HTMLElement { function hasRenderableRule (line 548) | function hasRenderableRule(rule: CssRuleView, ctx: DefaultValueFilterCon... function hasRenderableDecls (line 561) | function hasRenderableDecls(section: CssSectionView, ctx: DefaultValueFi... function createSection (line 569) | function createSection( function createCssPanel (line 618) | function createCssPanel(options: CssPanelOptions): CssPanel { FILE: app/chrome-extension/entrypoints/web-editor-v2/ui/property-panel/property-panel.ts constant CONTROL_GROUPS (line 44) | const CONTROL_GROUPS = [ type ControlGroupId (line 56) | type ControlGroupId = (typeof CONTROL_GROUPS)[number]['id']; function formatTargetLabel (line 67) | function formatTargetLabel(element: Element): string { function createControlGroup (line 87) | function createControlGroup( function createPropertyPanel (line 181) | function createPropertyPanel(options: PropertyPanelOptions): PropertyPan... FILE: app/chrome-extension/entrypoints/web-editor-v2/ui/property-panel/props-panel.ts type PropsPanelOptions (line 37) | interface PropsPanelOptions { type PropsPanel (line 42) | interface PropsPanel extends DesignControl { constant WRITE_DEBOUNCE_MS (line 50) | const WRITE_DEBOUNCE_MS = 250; constant DANGEROUS_PROP_KEYS (line 52) | const DANGEROUS_PROP_KEYS = new Set([ function isDangerousPropKey (line 66) | function isDangerousPropKey(key: string): boolean { function formatFramework (line 70) | function formatFramework(framework: FrameworkType | undefined, version?:... function formatHookStatus (line 83) | function formatHookStatus(hookStatus: HookStatus | undefined): string { function formatDebugSource (line 91) | function formatDebugSource(source: unknown): string { function formatSerializedValue (line 107) | function formatSerializedValue(value: SerializedValue): string { function canRenderEditableNumber (line 162) | function canRenderEditableNumber(value: Extract; type ShadowHostManager (line 41) | interface ShadowHostManager { constant SHADOW_HOST_STYLES (line 56) | const SHADOW_HOST_STYLES = /* css */ ` function setImportantStyle (line 3489) | function setImportantStyle(element: HTMLElement, property: string, value... function mountShadowHost (line 3498) | function mountShadowHost(options: ShadowHostOptions = {}): ShadowHostMan... FILE: app/chrome-extension/entrypoints/web-editor-v2/ui/toolbar.ts type ToolbarDock (line 32) | type ToolbarDock = 'top' | 'bottom'; type ToolbarStatus (line 35) | type ToolbarStatus = type ApplyResult (line 55) | interface ApplyResult { type ToolbarOptions (line 61) | interface ToolbarOptions { type Toolbar (line 102) | interface Toolbar { function isPromiseLike (line 122) | function isPromiseLike(value: unknown): value is PromiseLike { function isApplyResult (line 133) | function isApplyResult(value: unknown): value is ApplyResult { function formatStatusMessage (line 142) | function formatStatusMessage(base: string, result?: ApplyResult): string { constant STATUS_RESET_DELAY_MS (line 151) | const STATUS_RESET_DELAY_MS = 2400; constant SUCCESS_STATUSES (line 154) | const SUCCESS_STATUSES: ToolbarStatus[] = ['success', 'completed', 'veri... constant ERROR_STATUSES (line 155) | const ERROR_STATUSES: ToolbarStatus[] = [ constant PROGRESS_STATUSES (line 164) | const PROGRESS_STATUSES: ToolbarStatus[] = [ function getStatusCategory (line 172) | function getStatusCategory(status: ToolbarStatus): 'idle' | 'progress' |... function createToolbar (line 186) | function createToolbar(options: ToolbarOptions): Toolbar { FILE: app/chrome-extension/entrypoints/web-editor-v2/utils/disposables.ts type DisposeFn (line 9) | type DisposeFn = () => void; class Disposer (line 15) | class Disposer { method isDisposed (line 20) | get isDisposed(): boolean { method add (line 28) | add(dispose: DisposeFn): void { method listen (line 67) | listen( method observeResize (line 80) | observeResize( method observeMutation (line 94) | observeMutation( method requestAnimationFrame (line 109) | requestAnimationFrame(callback: FrameRequestCallback): () => void { method dispose (line 127) | dispose(): void { FILE: app/chrome-extension/env.d.ts type Props (line 4) | type Props = Record; type RawBindings (line 5) | type RawBindings = Record; FILE: app/chrome-extension/inject-scripts/accessibility-tree-helper.js function inferRole (line 25) | function inferRole(el) { function inferLabel (line 74) | function inferLabel(el) { function isVisible (line 135) | function isVisible(el) { function isInteractive (line 146) | function isInteractive(el) { function isStructural (line 203) | function isStructural(el) { function isFormishContainer (line 230) | function isFormishContainer(el) { function querySelectorDeepFirst (line 269) | function querySelectorDeepFirst(selector) { function querySelectorWithUniquenessCheck (line 310) | function querySelectorWithUniquenessCheck(selector, allowMultiple = fals... function queryXPathWithUniquenessCheck (line 411) | function queryXPathWithUniquenessCheck(selector, allowMultiple = false) { function shouldInclude (line 464) | function shouldInclude(el, cfg) { function generateSelector (line 488) | function generateSelector(el) { function traverse (line 529) | function traverse(el, depth, cfg, out, refMap, state) { function __generateAccessibilityTree (line 622) | function __generateAccessibilityTree(filter, options) { function handleHoverForRef (line 691) | async function handleHoverForRef(ref) { function resolveRef (line 701) | function resolveRef(ref) { function dispatchHoverEvents (line 707) | function dispatchHoverEvents(el) { function summarizeElement (line 726) | function summarizeElement(el) { function forwardHoverRefToChildren (line 735) | function forwardHoverRefToChildren(ref) { FILE: app/chrome-extension/inject-scripts/click-helper.js function clickElement (line 19) | async function clickElement( function simulateClick (line 218) | function simulateClick(x, y, options = {}) { function simulateDoubleClick (line 227) | function simulateDoubleClick(x, y, options = {}) { function simulateDomDoubleClick (line 236) | function simulateDomDoubleClick(element, x, y, options) { function normalizeMouseOpts (line 240) | function normalizeMouseOpts(x, y, options = {}) { function dispatchClickSequence (line 265) | function dispatchClickSequence(element, x, y, options = {}, isDouble = f... function isElementVisible (line 310) | function isElementVisible(element) { FILE: app/chrome-extension/inject-scripts/dom-observer.js function now (line 9) | function now() { function applyTriggers (line 13) | function applyTriggers(list) { function checkAll (line 21) | function checkAll() { function maybeFire (line 29) | function maybeFire(t) { function removeTrigger (line 52) | function removeTrigger(id) { FILE: app/chrome-extension/inject-scripts/element-marker.js function sleep (line 12) | function sleep(ms) { function mount (line 833) | function mount() { function unmount (line 861) | function unmount() { function getHost (line 869) | function getHost() { function getShadow (line 873) | function getShadow() { function init (line 904) | function init() { function get (line 908) | function get(key) { function set (line 912) | function set(partial) { function subscribe (line 940) | function subscribe(callback) { function notifyListeners (line 945) | function notifyListeners() { function updateValidationUI (line 955) | function updateValidationUI() { function updateListModeUI (line 964) | function updateListModeUI() { function updateTabUI (line 978) | function updateTabUI() { function updateValidationHistoryUI (line 1003) | function updateValidationHistoryUI() { function init (line 1050) | function init(handleElement) { function onDragStart (line 1055) | function onDragStart(event) { function onDragMove (line 1073) | function onDragMove(event) { function onDragEnd (line 1091) | function onDragEnd(event) { function destroy (line 1102) | function destroy() { function generateSelector (line 1116) | function generateSelector(el) { function buildPathFromAncestor (line 1221) | function buildPathFromAncestor(ancestor, target) { function buildFullPath (line 1253) | function buildFullPath(el) { function generateXPath (line 1294) | function generateXPath(el) { function generateListSelector (line 1322) | function generateListSelector(target) { function generateSelectorWithinRoot (line 1335) | function generateSelectorWithinRoot(el, root) { function getAccessibleName (line 1385) | function getAccessibleName(el) { function getAllSiblings (line 1419) | function getAllSiblings(el, selector) { function getElementList (line 1450) | function getElementList(el, maxDepth = 50, paths = []) { function computeElementList (line 1467) | function computeElementList(target) { function queryAllDeep (line 1513) | function queryAllDeep(selector) { function isDeepSelectorUnique (line 1535) | function isDeepSelectorUnique(selector, target) { function evaluateXPathAll (line 1545) | function evaluateXPathAll(xpath) { function ensureHighlighter (line 1591) | function ensureHighlighter() { function ensureRectsHost (line 1611) | function ensureRectsHost() { function moveHighlighterTo (line 1628) | function moveHighlighterTo(el) { function clearHighlighter (line 1638) | function clearHighlighter() { function clearRects (line 1646) | function clearRects() { function getOrCreateRectBox (line 1665) | function getOrCreateRectBox(host, index) { function drawRectBoxes (line 1694) | function drawRectBoxes( function drawRects (line 1737) | function drawRects(elements, color = CONFIG.COLORS.HOVER, dashed = true,... function isInsidePanel (line 1749) | function isInsidePanel(target) { function isOverlayElement (line 1761) | function isOverlayElement(node) { function filterOverlayElements (line 1782) | function filterOverlayElements(elements) { function getDeepPageTarget (line 1806) | function getDeepPageTarget(ev) { function processMouseMove (line 1841) | function processMouseMove(ev) { function onMouseMove (line 1902) | function onMouseMove(ev) { function attachPointerListeners (line 1925) | function attachPointerListeners() { function detachPointerListeners (line 1932) | function detachPointerListeners() { function attachKeyboardListener (line 1939) | function attachKeyboardListener() { function detachKeyboardListener (line 1943) | function detachKeyboardListener() { function syncInteractionMode (line 1947) | function syncInteractionMode() { function onClick (line 1966) | function onClick(ev) { function onKeyDown (line 2009) | function onKeyDown(e) { function setSelection (line 2047) | function setSelection(el) { function verifyHighlightOnly (line 2082) | async function verifyHighlightOnly() { function verifySelectorNow (line 2149) | async function verifySelectorNow() { function highlightSelectorExternal (line 2290) | async function highlightSelectorExternal({ selector, selectorType = 'css... function copySelectorNow (line 2396) | function copySelectorNow() { function save (line 2412) | async function save() { function start (line 2446) | function start() { function stop (line 2465) | function stop() { function bindControls (line 2503) | function bindControls() { function updateActionSpecificUI (line 2627) | function updateActionSpecificUI(action) { function syncUIWithState (line 2662) | function syncUIWithState() { FILE: app/chrome-extension/inject-scripts/element-picker.js function cssEscape (line 50) | function cssEscape(value) { function getUiHost (line 65) | function getUiHost() { function isOverlayElement (line 73) | function isOverlayElement(node) { function isEventFromUi (line 82) | function isEventFromUi(ev) { function getDeepPageTarget (line 100) | function getDeepPageTarget(ev) { function ensureHighlighter (line 125) | function ensureHighlighter() { function clearHighlighter (line 166) | function clearHighlighter() { function moveHighlighterTo (line 176) | function moveHighlighterTo(el) { function isInShadowDom (line 210) | function isInShadowDom(el) { function isSelectorUnique (line 223) | function isSelectorUnique(selector, target) { function buildPathFromAncestor (line 250) | function buildPathFromAncestor(ancestor, target) { function buildFullPath (line 275) | function buildFullPath(el) { function generateSelector (line 305) | function generateSelector(el) { function summarizeText (line 395) | function summarizeText(el) { function ensureRefForElement (line 421) | function ensureRefForElement(el) { function sendFrameEvent (line 460) | function sendFrameEvent(payload) { function processMouseMove (line 472) | function processMouseMove(ev) { function onMouseMove (line 495) | function onMouseMove(ev) { function onClick (line 508) | function onClick(ev) { function onKeyDown (line 557) | function onKeyDown(ev) { function attachListeners (line 577) | function attachListeners() { function detachListeners (line 585) | function detachListeners() { function startSession (line 597) | function startSession(payload) { function stopSession (line 609) | function stopSession(payload) { function setActiveRequest (line 631) | function setActiveRequest(payload) { FILE: app/chrome-extension/inject-scripts/fill-helper.js function fillElement (line 15) | async function fillElement(selector, value, ref = null) { function isElementVisible (line 301) | function isElementVisible(element) { FILE: app/chrome-extension/inject-scripts/interactive-elements-helper.js function querySelectorAllDeep (line 74) | function querySelectorAllDeep(selector, root = document) { function isElementVisible (line 96) | function isElementVisible(el) { function isElementInteractive (line 117) | function isElementInteractive(el) { function generateSelector (line 132) | function generateSelector(el) { function getAccessibleName (line 173) | function getAccessibleName(el) { function fuzzyMatch (line 202) | function fuzzyMatch(text, query) { function createElementInfo (line 221) | function createElementInfo(el, type, includeCoordinates, isInteractiveOv... function findInteractiveElements (line 254) | function findInteractiveElements(options = {}) { function findElementsByTextWithFallback (line 290) | function findElementsByTextWithFallback(options = {}) { FILE: app/chrome-extension/inject-scripts/keyboard-helper.js function parseSingleKeyCombination (line 59) | function parseSingleKeyCombination(keyString) { function dispatchKeyEvents (line 136) | function dispatchKeyEvents(parsedKeyInfo, element) { function simulateKeyboard (line 183) | async function simulateKeyboard(keysSequenceString, targetElement = null... FILE: app/chrome-extension/inject-scripts/network-helper.js function replayNetworkRequest (line 23) | async function replayNetworkRequest( FILE: app/chrome-extension/inject-scripts/props-agent.js function isObject (line 59) | function isObject(value) { function safeString (line 63) | function safeString(value) { function logWarn (line 73) | function logWarn(...args) { method dispatchResponse (line 86) | dispatchResponse(detail) { method createResponse (line 94) | createResponse(requestId, success, data, error) { method normalizeRequest (line 105) | normalizeRequest(detail) { method safeQuerySelector (line 128) | safeQuerySelector(root, selector) { method safeQuerySelectorAll (line 137) | safeQuerySelectorAll(root, selector) { method isSelectorUnique (line 146) | isSelectorUnique(root, selector) { method computeFingerprint (line 150) | computeFingerprint(element) { method verifyFingerprint (line 163) | verifyFingerprint(element, fingerprint) { method normalizeStringArray (line 183) | normalizeStringArray(value) { method locate (line 192) | locate(locator, rootDocument = document) { method getHook (line 240) | getHook() { method installMinimalHook (line 253) | installMinimalHook() { method normalizeRenderers (line 329) | normalizeRenderers(hook) { method detectStatus (line 353) | detectStatus() { method getVersion (line 404) | getVersion(hookInfo, specificRenderer) { method findFiberFromDOM (line 436) | findFiberFromDOM(node) { method isComponentTag (line 454) | isComponentTag(tag) { method findNearestComponentFiber (line 463) | findNearestComponentFiber(fiber) { method getComponentName (line 479) | getComponentName(fiber) { method getDebugSource (line 497) | getDebugSource(fiber) { method buildDebugSourceResult (line 539) | buildDebugSourceResult(file, lineNumber, columnNumber, fiberForName) { method resolveFiberWithRenderer (line 553) | resolveFiberWithRenderer(element, hookInfo) { method recordOriginal (line 579) | recordOriginal(fiber, renderer, path, existed, value) { method getOriginals (line 611) | getOriginals(fiber) { method clearOriginals (line 619) | clearOriginals(fiber) { method findInstanceFromDOM (line 637) | findInstanceFromDOM(node) { method getComponentName (line 649) | getComponentName(instance) { method isDevBuild (line 661) | isDevBuild(instance) { method parseVInspector (line 680) | parseVInspector(value) { method findInspectorLocation (line 713) | findInspectorLocation(element, maxDepth = 15) { method getDebugSource (line 740) | getDebugSource(instance, targetElement) { method getVersion (line 777) | getVersion(instance) { method getPropsContainer (line 794) | getPropsContainer(instance) { method isDeclaredProp (line 816) | isDeclaredProp(instance, key) { method getWriteContainers (line 843) | getWriteContainers(instance, kind) { method getReadRoot (line 886) | getReadRoot(instance, kind) { method getVNodeProps (line 914) | getVNodeProps(instance) { method applyNextProps (line 928) | applyNextProps(instance, nextRawProps) { method forceUpdate (line 968) | forceUpdate(instance) { method copyWithSet (line 994) | copyWithSet(root, path, value) { method recordOriginal (line 1023) | recordOriginal(instance, path, existed, value, targetKind) { method getOriginals (line 1046) | getOriginals(instance) { method clearOriginals (line 1054) | clearOriginals(instance) { method detect (line 1069) | detect(element, maxDepth = 15) { method isReactElement (line 1100) | isReactElement(value) { method reactElementDisplay (line 1124) | reactElementDisplay(value) { method isEditablePrimitive (line 1144) | isEditablePrimitive(value) { method createContext (line 1155) | createContext() { method serializeValue (line 1165) | serializeValue(value, ctx, depth = 0) { method serializeProps (line 1326) | serializeProps(props, enumValuesByKey) { method normalizeEnumValue (line 1383) | normalizeEnumValue(raw) { method normalizeEnumList (line 1410) | normalizeEnumList(list) { method extractDocgenEnumValues (line 1433) | extractDocgenEnumValues(propInfo) { method getReactEnumValues (line 1460) | getReactEnumValues(componentFiber) { method extractVuePropEnumValues (line 1482) | extractVuePropEnumValues(propOption) { method getVueEnumValues (line 1505) | getVueEnumValues(instance) { function getValueAtPath (line 1526) | function getValueAtPath(root, path) { function isDangerousKey (line 1557) | function isDangerousKey(key) { function normalizePropPath (line 1561) | function normalizePropPath(value) { function decodeIncomingValue (line 1581) | function decodeIncomingValue(raw) { function makeCapabilities (line 1591) | function makeCapabilities(init) { function buildResponseData (line 1599) | function buildResponseData(init) { method resolveTarget (line 1618) | resolveTarget(locator) { method handleProbe (line 1628) | handleProbe(req) { method handleRead (line 1697) | handleRead(req) { method handleWrite (line 1864) | handleWrite(req) { method handleReset (line 2105) | handleReset(req) { method handleCleanup (line 2273) | handleCleanup(req) { method handle (line 2284) | handle(req) { method onRequestEvent (line 2314) | onRequestEvent(event) { method onCleanupEvent (line 2338) | onCleanupEvent() { method dispose (line 2342) | dispose(reason) { method init (line 2364) | init() { FILE: app/chrome-extension/inject-scripts/recorder.js method buildTarget (line 29) | buildTarget(el) { method _choosePrimary (line 61) | _choosePrimary(el, candidates) { method _uniqueClassSelector (line 83) | _uniqueClassSelector(el) { method _generateSelector (line 123) | _generateSelector(el) { class UI (line 179) | class UI { method constructor (line 180) | constructor(recorder) { method ensure (line 189) | ensure() { method remove (line 292) | remove() { method updateStatus (line 301) | updateStatus() { method resetTimeline (line 309) | resetTimeline() { method appendStep (line 316) | appendStep(step) { method applyTimelineUpdate (line 343) | applyTimelineUpdate(steps) { method _appendStepWithIndex (line 403) | _appendStepWithIndex(step, displayIndex) { method _formatStepText (line 422) | _formatStepText(step, _idx) { class ContentRecorder (line 455) | class ContentRecorder { method constructor (line 456) | constructor() { method start (line 514) | start(flowMeta) { method stop (line 540) | async stop() { method _finalizePendingClick (line 615) | _finalizePendingClick() { method _finalizePendingInput (line 632) | _finalizePendingInput() { method _getElementValue (line 666) | _getElementValue(el, existingValue) { method _finalizePendingScroll (line 715) | _finalizePendingScroll() { method _sendVariables (line 765) | async _sendVariables() { method pause (line 775) | pause() { method resume (line 802) | resume() { method _attach (line 813) | _attach() { method _detach (line 835) | _detach() { method _updateHoverListener (line 868) | _updateHoverListener() { method _createSessionBuffer (line 877) | _createSessionBuffer() { method _reset (line 889) | _reset(meta) { method _updateInputActivity (line 912) | _updateInputActivity() { method _startForceFlushTimer (line 929) | _startForceFlushTimer() { method _clearForceFlushTimer (line 944) | _clearForceFlushTimer() { method _commitAndFlush (line 958) | _commitAndFlush(options = {}) { method _pushStep (line 984) | _pushStep(step) { method _getFlushDelayMs (line 1017) | _getFlushDelayMs() { method _scheduleFlush (line 1037) | _scheduleFlush() { method _requestTopFlush (line 1053) | _requestTopFlush() { method _syncStopBarrierToTop (line 1070) | _syncStopBarrierToTop() { method _bestEffortDrainAndFlush (line 1119) | _bestEffortDrainAndFlush() { method _onPageHide (line 1140) | _onPageHide() { method _onVisibilityChange (line 1148) | _onVisibilityChange() { method _flush (line 1160) | async _flush() { method _send (line 1180) | _send(payload) { method _addVariable (line 1199) | _addVariable(key, sensitive, defVal) { method _onClick (line 1211) | _onClick(e) { method _onInput (line 1288) | _onInput(e) { method _onDocInput (line 1309) | _onDocInput(e) { method _handleInputForElement (line 1365) | _handleInputForElement(el) { method _enqueueForUpsert (line 1429) | _enqueueForUpsert(step) { method _onChange (line 1461) | _onChange(e) { method _getElRef (line 1520) | _getElRef(el) { method _onFocusIn (line 1535) | _onFocusIn(e) { method _onFocusOut (line 1549) | _onFocusOut(e) { method _onMouseMove (line 1561) | _onMouseMove(e) { method _onScroll (line 1581) | _onScroll(e) { method _onKeyDown (line 1670) | _onKeyDown(e) { method _onKeyUp (line 1713) | _onKeyUp(e) { method _formatKeysCombo (line 1719) | _formatKeysCombo(e, mainKey) { method _onWindowMessage (line 1739) | _onWindowMessage(ev) { function getRecorder (line 1871) | function getRecorder() { FILE: app/chrome-extension/inject-scripts/screenshot-helper.js function getFixedElements (line 20) | function getFixedElements() { function hideFixedElements (line 47) | function hideFixedElements() { function showFixedElements (line 57) | function showFixedElements() { FILE: app/chrome-extension/inject-scripts/wait-helper.js function isVisible (line 14) | function isVisible(el) { function normalize (line 28) | function normalize(str) { function matchesText (line 35) | function matchesText(el, needle) { function findElementByText (line 59) | function findElementByText(text) { function ensureRefForElement (line 80) | function ensureRefForElement(el) { function centerOf (line 91) | function centerOf(el) { function waitFor (line 96) | function waitFor({ text, appear = true, timeout = 5000 }) { function waitForSelector (line 148) | function waitForSelector({ selector, visible = true, timeout = 5000 }) { FILE: app/chrome-extension/inject-scripts/web-fetcher-helper.js function Readability (line 34) | function Readability(doc, options) { method _postProcessContent (line 266) | _postProcessContent(articleContent) { method _removeNodes (line 288) | _removeNodes(nodeList, filterFn) { method _replaceNodeTags (line 311) | _replaceNodeTags(nodeList, newTagName) { method _forEachNode (line 332) | _forEachNode(nodeList, fn) { method _findNode (line 347) | _findNode(nodeList, fn) { method _someNode (line 362) | _someNode(nodeList, fn) { method _everyNode (line 377) | _everyNode(nodeList, fn) { method _getAllNodesWithTag (line 381) | _getAllNodesWithTag(node, tagNames) { method _cleanClasses (line 402) | _cleanClasses(node) { method _isUrl (line 426) | _isUrl(str) { method _fixRelativeUris (line 441) | _fixRelativeUris(articleContent) { method _simplifyNestedElements (line 516) | _simplifyNestedElements(articleContent) { method _getArticleTitle (line 551) | _getArticleTitle() { method _prepDocument (line 635) | _prepDocument() { method _nextNode (line 653) | _nextNode(node) { method _replaceBrs (line 672) | _replaceBrs(elem) { method _setNodeTag (line 728) | _setNodeTag(node, tag) { method _prepArticle (line 758) | _prepArticle(articleContent) { method _initializeNode (line 853) | _initializeNode(node) { method _removeAndGetNext (line 892) | _removeAndGetNext(node) { method _getNextNode (line 909) | _getNextNode(node, ignoreSelfAndKids) { method _textSimilarity (line 931) | _textSimilarity(textA, textB) { method _isValidByline (line 949) | _isValidByline(node, matchString) { method _getNodeAncestors (line 963) | _getNodeAncestors(node, maxDepth) { method _grabArticle (line 985) | _grabArticle(page) { method _unescapeHtmlEntities (line 1527) | _unescapeHtmlEntities(str) { method _getJSONLD (line 1554) | _getJSONLD(doc) { method _getArticleMetadata (line 1669) | _getArticleMetadata(jsonld) { method _isSingleImage (line 1782) | _isSingleImage(node) { method _unwrapNoscriptImages (line 1803) | _unwrapNoscriptImages(doc) { method _removeScripts (line 1886) | _removeScripts(doc) { method _hasSingleTagInsideElement (line 1898) | _hasSingleTagInsideElement(element, tag) { method _isElementWithoutContent (line 1910) | _isElementWithoutContent(node) { method _hasChildBlockElement (line 1925) | _hasChildBlockElement(element) { method _isPhrasingContent (line 1935) | _isPhrasingContent(node) { method _isWhitespace (line 1944) | _isWhitespace(node) { method _getInnerText (line 1959) | _getInnerText(e, normalizeSpaces) { method _getCharCount (line 1976) | _getCharCount(e, s) { method _cleanStyles (line 1988) | _cleanStyles(e) { method _getLinkDensity (line 2017) | _getLinkDensity(element) { method _getClassWeight (line 2042) | _getClassWeight(e) { method _clean (line 2082) | _clean(e, tag) { method _hasAncestorTag (line 2114) | _hasAncestorTag(node, tagName, maxDepth, filterFn) { method _getRowAndColumnCount (line 2134) | _getRowAndColumnCount(table) { method _markDataTables (line 2165) | _markDataTables(root) { method _fixLazyImages (line 2226) | _fixLazyImages(root) { method _getTextDensity (line 2304) | _getTextDensity(e, tags) { method _cleanConditionally (line 2324) | _cleanConditionally(e, tag) { method _cleanMatchedNodes (line 2498) | _cleanMatchedNodes(e, filter) { method _cleanHeaders (line 2516) | _cleanHeaders(e) { method _headerDuplicatesTitle (line 2534) | _headerDuplicatesTitle(node) { method _flagIsActive (line 2543) | _flagIsActive(flag) { method _removeFlag (line 2547) | _removeFlag(flag) { method _isProbablyVisible (line 2551) | _isProbablyVisible(node) { method parse (line 2576) | parse() { function extractPageMetadata (line 2802) | function extractPageMetadata() { function extractIframeContent (line 2856) | function extractIframeContent() { function isElementVisible (line 2887) | function isElementVisible(el) { function isSameOrigin (line 2912) | function isSameOrigin(iframe) { function cleanContent (line 2925) | function cleanContent(text) { function cleanHtmlContent (line 2938) | function cleanHtmlContent(html) { FILE: app/chrome-extension/shared/element-picker/controller.ts type ElementPickerControllerOptions (line 23) | interface ElementPickerControllerOptions { type ElementPickerController (line 38) | interface ElementPickerController { type ElementPickerUiRequest (line 51) | interface ElementPickerUiRequest { type ElementPickerUiState (line 57) | interface ElementPickerUiState { type ElementPickerUiPatch (line 66) | type ElementPickerUiPatch = Partial void; type AgentBridgeOptions (line 54) | interface AgentBridgeOptions { constant LOG_PREFIX (line 63) | const LOG_PREFIX = '[QuickPanelAgentBridge]'; constant DEFAULT_MAX_BUFFERED_EVENTS (line 64) | const DEFAULT_MAX_BUFFERED_EVENTS = 200; constant TERMINAL_CLEANUP_DELAY_MS (line 67) | const TERMINAL_CLEANUP_DELAY_MS = 30000; class QuickPanelAgentBridge (line 82) | class QuickPanelAgentBridge { method constructor (line 101) | constructor(options?: AgentBridgeOptions) { method dispose (line 113) | dispose(): void { method isDisposed (line 131) | isDisposed(): boolean { method onRequestEvent (line 147) | onRequestEvent(requestId: string, listener: RequestEventListener): () ... method sendToAI (line 201) | async sendToAI(payload: QuickPanelSendToAIPayload): Promise { method search (line 318) | async search(request: SearchEngineRequest): Promise { type ActionTone (line 166) | type ActionTone = 'default' | 'danger'; type ActionContext (line 171) | interface ActionContext { type Action (line 184) | interface Action { type SearchQuery (line 213) | interface SearchQuery { function normalizeSearchQuery (line 230) | function normalizeSearchQuery(raw: string): SearchQuery { type SearchProviderContext (line 245) | interface SearchProviderContext { type SearchProvider (line 266) | interface SearchProvider { type QuickPanelView (line 336) | type QuickPanelView = 'search' | 'chat'; type QuickPanelState (line 341) | interface QuickPanelState { FILE: app/chrome-extension/shared/quick-panel/index.ts type QuickPanelControllerOptions (line 43) | interface QuickPanelControllerOptions { type QuickPanelController (line 56) | interface QuickPanelController { constant LOG_PREFIX (line 73) | const LOG_PREFIX = '[QuickPanelController]'; function createQuickPanelController (line 105) | function createQuickPanelController( FILE: app/chrome-extension/shared/quick-panel/providers/tabs-provider.ts type TabsSearchResultData (line 25) | interface TabsSearchResultData { type TabsProviderOptions (line 35) | interface TabsProviderOptions { type TabsSnapshot (line 50) | interface TabsSnapshot { type TabsClient (line 56) | interface TabsClient { function createRuntimeTabsClient (line 62) | function createRuntimeTabsClient(): TabsClient { function normalizeText (line 130) | function normalizeText(value: unknown): string { function normalizeUrl (line 137) | function normalizeUrl(value: unknown): string { function isSubsequence (line 157) | function isSubsequence(needle: string, haystack: string): boolean { constant MIN_SUBSEQUENCE_TOKEN_LENGTH (line 168) | const MIN_SUBSEQUENCE_TOKEN_LENGTH = 3; function isBoundaryChar (line 173) | function isBoundaryChar(ch: string): boolean { function scoreToken (line 192) | function scoreToken(haystack: string, token: string): number { function computeTabScore (line 222) | function computeTabScore( function sortTabs (line 270) | function sortTabs( function createTabsProvider (line 312) | function createTabsProvider( FILE: app/chrome-extension/shared/quick-panel/ui/ai-chat-panel.ts type QuickPanelAiChatPanelOptions (line 34) | interface QuickPanelAiChatPanelOptions { type QuickPanelAiChatPanelState (line 56) | interface QuickPanelAiChatPanelState { type QuickPanelAiChatPanelManager (line 67) | interface QuickPanelAiChatPanelManager { constant LOG_PREFIX (line 79) | const LOG_PREFIX = '[QuickPanelAiChatPanel]'; constant DEFAULT_TITLE (line 81) | const DEFAULT_TITLE = 'Agent'; constant DEFAULT_SUBTITLE (line 82) | const DEFAULT_SUBTITLE = 'Quick Panel'; constant DEFAULT_PLACEHOLDER (line 83) | const DEFAULT_PLACEHOLDER = 'Ask the agent...'; constant MAX_SELECTED_TEXT_CHARS (line 86) | const MAX_SELECTED_TEXT_CHARS = 3000; constant MAX_ERROR_DISPLAY_CHARS (line 88) | const MAX_ERROR_DISPLAY_CHARS = 600; constant TEXTAREA_MIN_HEIGHT_PX (line 90) | const TEXTAREA_MIN_HEIGHT_PX = 42; constant TEXTAREA_MAX_HEIGHT_PX (line 91) | const TEXTAREA_MAX_HEIGHT_PX = 160; constant BANNER_AUTO_HIDE_MS (line 94) | const BANNER_AUTO_HIDE_MS = 2400; constant ICON_CLOSE (line 97) | const ICON_CLOSE = `)... function formatMessageTime (line 88) | function formatMessageTime(isoString: string): string { function isStreamingMessage (line 99) | function isStreamingMessage(message: AgentMessage): boolean { function getWrapperClassName (line 103) | function getWrapperClassName(role: AgentRole): string { function getBubbleClassName (line 107) | function getBubbleClassName(role: AgentRole): string { function formatRequestIdForDisplay (line 111) | function formatRequestIdForDisplay(requestId: string): { short: string; ... function getMessageTypeLabel (line 121) | function getMessageTypeLabel(message: AgentMessage): string | null { function createMetaLeftElement (line 133) | function createMetaLeftElement(): { function createMetaRightElement (line 157) | function createMetaRightElement(): { container: HTMLSpanElement; request... function createMessageEntry (line 168) | function createMessageEntry(messageId: string, message: AgentMessage): M... function updateMessageEntry (line 215) | function updateMessageEntry(entry: MessageEntry, messageId: string, mess... function createQuickPanelMessageRenderer (line 288) | function createQuickPanelMessageRenderer( FILE: app/chrome-extension/shared/quick-panel/ui/panel-shell.ts constant ICON_CLOSE (line 16) | const ICON_CLOSE = `{await e.Yb(Number(a),Number(b),Nu... function cb (line 48) | function cb(){return"undefined"!==typeof wasmOffsetConverter} class Gc (line 49) | class Gc{name="ExitStatus";constructor(a){this.message=`Program terminat... method constructor (line 49) | constructor(a){this.message=`Program terminated with exit(${a})`;this.... function Dc (line 51) | function Dc(a){if(q)return Q(0,1,a);wa=a;if(!(0{Ua++;Uc... function Na (line 51) | function Na(){Sc.forEach(a=>a())} function Uc (line 53) | function Uc(a){q?a():Promise.all(N.map(Kc)).then(a)} function Jc (line 54) | function Jc(){var a=new Worker(new URL(import.meta.url),{type:"module",w... class $c (line 54) | class $c{constructor(a){this.Jb=a-24}} method constructor (line 54) | constructor(a){this.Jb=a-24} function eb (line 54) | function eb(a,b,c){a>>>=0;var d=new $c(a);b>>>=0;c>>>=0;I()[d.Jb+16>>>2>... function cd (line 55) | function cd(a,b,c,d){return q?Q(2,1,a,b,c,d):fb(a,b,c,d)} function fb (line 55) | function fb(a,b,c,d){a>>>=0;b>>>=0;c>>>=0;d>>>=0;if("undefined"==typeof ... function gb (line 57) | function gb(a,b,c){return q?Q(3,1,a,b,c):0} function hb (line 57) | function hb(a,b){if(q)return Q(4,1,a,b)} function ib (line 59) | function ib(a,b){if(q)return Q(5,1,a,b)} function jb (line 59) | function jb(a,b,c){if(q)return Q(6,1,a,b,c)} function kb (line 59) | function kb(a,b,c){return q?Q(7,1,a,b,c):0} function lb (line 59) | function lb(a,b){if(q)return Q(8,1,a,b)} function mb (line 59) | function mb(a,b,c){if(q)return Q(9,1,a,b,c)} function nb (line 59) | function nb(a,b,c,d){if(q)return Q(10,1,a,b,c,d)} function ob (line 59) | function ob(a,b,c,d){if(q)return Q(11,1,a,b,c,d)} function pb (line 59) | function pb(a,b,c,d){if(q)return Q(12,1,a,b,c,d)} function qb (line 59) | function qb(a){if(q)return Q(13,1,a)} function rb (line 60) | function rb(a,b){if(q)return Q(14,1,a,b)} function sb (line 60) | function sb(a,b,c){if(q)return Q(15,1,a,b,c)} function md (line 60) | function md(a,b,c={}){var d=b.name;if(!a)throw new S(`type "${d}" must h... function T (line 61) | function T(a,b,c={}){return md(a,b,c)} function ub (line 62) | function ub(a,b,c){a>>>=0;c>>>=0;b=R(b>>>0);T(a,{name:b,fromWireType:d=>... function vb (line 63) | function vb(a,b,c,d){a>>>=0;b=R(b>>>0);T(a,{name:b,fromWireType:function... function Ob (line 63) | function Ob(a){a>>>=0;9>>2>>>0])} function wb (line 64) | function wb(a){return T(a>>>0,qd)} function xb (line 65) | function xb(a,b,c){a>>>=0;c>>>=0;b=R(b>>>0);T(a,{name:b,fromWireType:d=>... function yb (line 66) | function yb(a,b,c,d,f){a>>>=0;c>>>=0;b=R(b>>>0);-1===f&&(f=4294967295);f... function zb (line 67) | function zb(a,b,c){function d(g){var h=I()[g>>>2>>>0];g=I()[g+4>>>2>>>0]... function Ab (line 68) | function Ab(a,b){a>>>=0;b=R(b>>>0);T(a,{name:b,fromWireType:function(c){... function Bb (line 73) | function Bb(a,b,c){a>>>=0;b>>>=0;c>>>=0;c=R(c);if(2===b){var d=ud;var f=... function Cb (line 74) | function Cb(a,b){a>>>=0;b=R(b>>>0);T(a,{Ub:!0,name:b,Db:0,fromWireType:(... function Db (line 74) | function Db(a){Ma(a>>>0,!k,1,!ea,131072,!1);Na()} function Oa (line 75) | function Oa(a){a>>>=0;"function"===typeof Atomics.kc&&(Atomics.kc(H(),a>... function Eb (line 75) | function Eb(a,b){a>>>=0;a==b>>>0?setTimeout(Ra):q?postMessage({Hb:a,Cb:"... function Fb (line 75) | function Fb(a,b,c,d,f){b>>>=0;d/=2;Cd.length=d;c=f>>>0>>>3;for(f=0;f>>=0;q?postMessage({Cb:"cleanupThread",ic:a}):Wc(O[a])} function Ib (line 76) | function Ib(a){n&&O[a>>>0].ref()} function Jb (line 76) | function Jb(a,b,c){b>>>=0;c>>>=0;a=W(a>>>0);b=Fd(b,"emval::as");return G... function Kb (line 76) | function Kb(a,b){b>>>=0;a=W(a>>>0);b=Fd(b,"emval::as");return b.toWireTy... function Id (line 77) | function Id(){var a=K,b={};for(let [c,d]of Object.entries(a))b[c]="funct... function ia (line 77) | function ia(){return new Promise((a,b)=>{Pd={resolve:a,reject:b}})} function Rd (line 78) | function Rd(){var a=sd(65548),b=a+12;I()[a>>>2>>>0]=b;I()[a+4>>>2>>>0]=b... function Sd (line 78) | function Sd(){var a=H()[t+8>>>2>>>0];a=K[Nd[a]];--P;return a()} function Td (line 79) | function Td(a){if(!A){if(0===Z){var b=!1,c=!1;a((d=0)=>{if(!A&&(Ld=d,b=!... function Fc (line 80) | function Fc(a){return Td(b=>{a().then(b)})} function Lb (line 80) | function Lb(a){a>>>=0;return Fc(async()=>{var b=await W(a);return X(b)})} function Mb (line 80) | function Mb(a,b,c,d){c>>>=0;d>>>=0;a=Yd[a>>>0];b=W(b>>>0);return a(null,... function Nb (line 80) | function Nb(a,b,c,d,f){c>>>=0;d>>>=0;f>>>=0;a=Yd[a>>>0];b=W(b>>>0);c=$d(... function Pb (line 80) | function Pb(a,b){b>>>=0;a=W(a>>>0);b=W(b);return a==b} function Qb (line 81) | function Qb(a){a>>>=0;if(0===a)return X(ae());a=$d(a);return X(ae()[a])} function ee (line 82) | function ee(a){var b=Function;if(!(b instanceof Function))throw new Type... function Rb (line 83) | function Rb(a,b,c){b=ce(a,b>>>0);var d=b.shift();a--;var f="return funct... function Sb (line 84) | function Sb(a){a=$d(a>>>0);return X(e[a])} function Tb (line 84) | function Tb(a,b){b>>>=0;a=W(a>>>0);b=W(b);return X(a[b])} function Ub (line 84) | function Ub(a){a>>>=0;9>>0);for(var b=Array(a.length),c=0;c>>0))} function Yb (line 84) | function Yb(){return X({})} function Zb (line 85) | function Zb(a){a>>>=0;for(var b=W(a);b.length;){var c=b.pop();b.pop()(c)... function $b (line 85) | function $b(a,b,c){b>>>=0;c>>>=0;a=W(a>>>0);b=W(b);c=W(c);a[b]=c} function ac (line 85) | function ac(a,b){b>>>=0;a=Fd(a>>>0,"_emval_take_value");a=a.readValueFro... function bc (line 86) | function bc(a,b){a=-9007199254740992>a||9007199254740992a||9007199254740992>>=0;var b=new Date(H()[a+20>>>2>>>0]+1900,H()[a+16>>>2... function ec (line 91) | function ec(a,b,c,d,f,g,h){return q?Q(16,1,a,b,c,d,f,g,h):-52} function fc (line 91) | function fc(a,b,c,d,f,g){if(q)return Q(17,1,a,b,c,d,f,g)} function gc (line 92) | function gc(a,b){if(q)return Q(18,1,a,b);ie[a]&&(clearTimeout(ie[a].id),... function hc (line 93) | function hc(a,b,c,d){a>>>=0;b>>>=0;c>>>=0;d>>>=0;var f=(new Date).getFul... function ic (line 94) | function ic(a,b,c){if(!(0<=a&&3>=a))return 28;if(0===a)a=Date.now();else... function jc (line 94) | function jc(a,b,c){a>>>=0;b=me(b>>>0,c>>>0);return Ec[a](...b)} function kc (line 95) | function kc(a,b,c){a>>>=0;b=me(b>>>0,c>>>0);return Ec[a](...b)} function nc (line 95) | function nc(a,b){return x(M(a>>>0,b>>>0))} function pc (line 95) | function pc(){return 4294901760} function sc (line 95) | function sc(){L("Cannot use emscripten_pc_get_function without -sUSE_OFF... function tc (line 96) | function tc(a){a>>>=0;var b=F().length;if(a<=b||4294901760>>=0;b>>>=0;if(oe.Mb==a)var d=oe.dc;else d=Error().... function wc (line 99) | function wc(a,b){if(q)return Q(19,1,a,b);a>>>=0;b>>>=0;var c=0;se().forE... function xc (line 99) | function xc(a,b){if(q)return Q(20,1,a,b);a>>>=0;b>>>=0;var c=se();I()[a>... function zc (line 99) | function zc(a){return q?Q(21,1,a):52} function Ac (line 99) | function Ac(a,b,c,d){return q?Q(22,1,a,b,c,d):52} function Bc (line 99) | function Bc(a,b,c,d){return q?Q(23,1,a,b,c,d):70} function Cc (line 100) | function Cc(a,b,c,d){if(q)return Q(24,1,a,b,c,d);b>>>=0;c>>>=0;d>>>=0;fo... method constructor (line 100) | constructor(a){super(a);this.name="BindingError"} method constructor (line 101) | constructor(a){super(a);this.name="InternalError"} function a (line 102) | function a(d,f){K=d.exports;K=Id();K=we();Sc.push(K.jb);va=f;Wa();return K} function we (line 109) | function we(){var a=K;a=Object.assign({},a);var b=d=>f=>d(f)>>>0,c=d=>()... function xe (line 112) | function xe(){if(0{M++;Zb(... function Ba (line 23) | function Ba(){Xb.forEach(a=>a())} function Zb (line 25) | function Zb(a){m?a():Promise.all(Q.map(Rb)).then(a)} function Qb (line 26) | function Qb(){var a=new Worker(new URL(import.meta.url),{type:"module",w... class ec (line 26) | class ec{constructor(a){this.Ua=a-24}} method constructor (line 26) | constructor(a){this.Ua=a-24} function Oa (line 27) | function Oa(a,b,c){a>>>=0;var d=new ec(a);b>>>=0;c>>>=0;H()[d.Ua+16>>>2>... function hc (line 27) | function hc(a,b,c,d){return m?V(2,1,a,b,c,d):Pa(a,b,c,d)} function Pa (line 27) | function Pa(a,b,c,d){a>>>=0;b>>>=0;c>>>=0;d>>>=0;if("undefined"==typeof ... function Qa (line 29) | function Qa(a,b,c){return m?V(3,1,a,b,c):0} function Ra (line 29) | function Ra(a,b){if(m)return V(4,1,a,b)} function Sa (line 31) | function Sa(a,b){if(m)return V(5,1,a,b)} function Ta (line 31) | function Ta(a,b,c){if(m)return V(6,1,a,b,c)} function Ua (line 31) | function Ua(a,b,c){return m?V(7,1,a,b,c):0} function Va (line 31) | function Va(a,b){if(m)return V(8,1,a,b)} function Wa (line 31) | function Wa(a,b,c){if(m)return V(9,1,a,b,c)} function Xa (line 31) | function Xa(a,b,c,d){if(m)return V(10,1,a,b,c,d)} function Ya (line 31) | function Ya(a,b,c,d){if(m)return V(11,1,a,b,c,d)} function Za (line 31) | function Za(a,b,c,d){if(m)return V(12,1,a,b,c,d)} function $a (line 31) | function $a(a){if(m)return V(13,1,a)} function ab (line 31) | function ab(a,b){if(m)return V(14,1,a,b)} function bb (line 31) | function bb(a,b,c){if(m)return V(15,1,a,b,c)} function db (line 32) | function db(a){Aa(a>>>0,!k,1,!da,131072,!1);Ba()} function Ca (line 32) | function Ca(a){a>>>=0;"function"===typeof Atomics.fb&&(Atomics.fb(G(),a>... function eb (line 32) | function eb(a,b){a>>>=0;a==b>>>0?setTimeout(K):m?postMessage({Ta:a,Ra:"c... function fb (line 33) | function fb(a,b,c,d,e){b>>>=0;d/=2;mc.length=d;c=e>>>0>>>3;for(e=0;e>>=0;m?postMessage({Ra:"cleanupThread",cb:a}):ac(S[a])} function ib (line 33) | function ib(a){l&&S[a>>>0].ref()} function jb (line 34) | function jb(a,b){a=-9007199254740992>a||9007199254740992a||9007199254740992>>=0;var b=new Date(G()[a+20>>>2>>>0]+1900,G()[a+16>>>2... function mb (line 39) | function mb(a,b,c,d,e,g,h){return m?V(16,1,a,b,c,d,e,g,h):-52} function nb (line 39) | function nb(a,b,c,d,e,g){if(m)return V(17,1,a,b,c,d,e,g)} function ob (line 40) | function ob(a,b){if(m)return V(18,1,a,b);Y[a]&&(clearTimeout(Y[a].id),de... function pb (line 41) | function pb(a,b,c,d){a>>>=0;b>>>=0;c>>>=0;d>>>=0;var e=(new Date).getFul... function qb (line 42) | function qb(a,b,c){if(!(0<=a&&3>=a))return 28;if(0===a)a=Date.now();else... function rb (line 42) | function rb(a,b,c){a>>>=0;b>>>=0;c>>>=0;tc.length=0;for(var d;d=F()[b++>... function ub (line 42) | function ub(a,b){return w(Lb(a>>>0,b>>>0))} function wb (line 43) | function wb(){return 4294901760} function zb (line 43) | function zb(){O("Cannot use emscripten_pc_get_function without -sUSE_OFF... function Ab (line 44) | function Ab(a){a>>>=0;var b=F().length;if(a<=b||4294901760>>=0;b>>>=0;if(Z.Wa==a)var d=Z.$a;else d=Error().st... function Db (line 47) | function Db(a,b){if(m)return V(19,1,a,b);a>>>=0;b>>>=0;var c=0;yc().forE... function Eb (line 47) | function Eb(a,b){if(m)return V(20,1,a,b);a>>>=0;b>>>=0;var c=yc();H()[a>... function Gb (line 47) | function Gb(a){return m?V(21,1,a):52} function Hb (line 47) | function Hb(a,b,c,d){return m?V(22,1,a,b,c,d):52} function Ib (line 47) | function Ib(a,b,c,d){return m?V(23,1,a,b,c,d):70} function Jb (line 48) | function Jb(a,b,c,d){if(m)return V(24,1,a,b,c,d);b>>>=0;c>>>=0;d>>>=0;fo... function a (line 49) | function a(d,e){L=d.exports;L=Ac();Xb.push(L.Da);cc=L.Ea;ma=e;Ga();retur... function Ac (line 54) | function Ac(){var a=L;a=Object.assign({},a);var b=d=>()=>d()>>>0,c=d=>e=... function Bc (line 57) | function Bc(){if(0 { method getProjectStats (line 291) | private async getProjectStats( method cleanupAttachments (line 342) | async cleanupAttachments(input?: CleanupAttachmentsInput): Promise { type ReadConfigResult (line 203) | interface ReadConfigResult { function readCcrConfig (line 211) | async function readCcrConfig(): Promise { function parseJson5Config (line 238) | function parseJson5Config(content: string): CcrConfig | null { function checkCcrHealth (line 265) | async function checkCcrHealth(baseUrl: string): Promise { function clearCcrCache (line 291) | function clearCcrCache(): void { function validateCcrConfig (line 308) | async function validateCcrConfig(): Promise { function inferSuggestedRouterDefault (line 378) | function inferSuggestedRouterDefault( FILE: app/native-server/src/agent/chat-service.ts type AgentChatServiceOptions (line 24) | interface AgentChatServiceOptions { class AgentChatService (line 36) | class AgentChatService { method constructor (line 46) | constructor(options: AgentChatServiceOptions) { method handleAct (line 65) | async handleAct(sessionId: string, payload: AgentActRequest): Promise<... method cancelExecution (line 371) | cancelExecution(requestId: string): boolean { method cancelSessionExecutions (line 401) | cancelSessionExecutions(sessionId: string): number { method getRunningExecutions (line 428) | getRunningExecutions(): RunningExecution[] { method resolveEngineName (line 432) | private resolveEngineName(preference?: EngineName, projectPreferredCli... method runEngine (line 442) | private async runEngine( method getEngineInfos (line 517) | getEngineInfos(): Array<{ name: EngineName; supportsMcp?: boolean }> { FILE: app/native-server/src/agent/db/client.ts type DrizzleDB (line 22) | type DrizzleDB = BetterSQLite3Database; function getDatabasePath (line 39) | function getDatabasePath(): string { constant CREATE_TABLES_SQL (line 51) | const CREATE_TABLES_SQL = ` constant MIGRATION_SQL (line 116) | const MIGRATION_SQL = ` function columnExists (line 128) | function columnExists(sqlite: Database.Database, tableName: string, colu... function runMigrations (line 137) | function runMigrations(sqlite: Database.Database): void { function initializeSchema (line 159) | function initializeSchema(sqlite: Database.Database): void { function ensureDataDir (line 167) | function ensureDataDir(): void { function getDb (line 182) | function getDb(): DrizzleDB { function closeDb (line 209) | function closeDb(): void { function isDbInitialized (line 220) | function isDbInitialized(): boolean { function execRawSql (line 227) | function execRawSql(sqlStr: string): void { FILE: app/native-server/src/agent/db/schema.ts type ProjectRow (line 141) | type ProjectRow = typeof projects.$inferSelect; type ProjectInsert (line 142) | type ProjectInsert = typeof projects.$inferInsert; type SessionRow (line 143) | type SessionRow = typeof sessions.$inferSelect; type SessionInsert (line 144) | type SessionInsert = typeof sessions.$inferInsert; type MessageRow (line 145) | type MessageRow = typeof messages.$inferSelect; type MessageInsert (line 146) | type MessageInsert = typeof messages.$inferInsert; FILE: app/native-server/src/agent/directory-picker.ts type DirectoryPickerResult (line 16) | interface DirectoryPickerResult { function openDirectoryPicker (line 27) | async function openDirectoryPicker( function openMacOSPicker (line 57) | async function openMacOSPicker(title: string): Promise = { class ClaudeEngine (line 50) | class ClaudeEngine implements AgentEngine { method initializeAndRun (line 59) | async initializeAndRun(options: EngineInitOptions, ctx: EngineExecutio... method buildClaudeEnv (line 1264) | private async buildClaudeEnv(useCcr?: boolean): Promise): Recor... method extractToolResultContent (line 1526) | private extractToolResultContent(block: Record): stri... method encodeHash (line 1544) | private encodeHash(value: string): string { method writeAttachmentToTemp (line 1551) | private async writeAttachmentToTemp(attachment: { FILE: app/native-server/src/agent/engines/codex.ts type TodoListPhase (line 16) | type TodoListPhase = 'started' | 'update' | 'completed'; type TodoListItem (line 18) | interface TodoListItem { class CodexEngine (line 36) | class CodexEngine implements AgentEngine { method constructor (line 41) | constructor(toolBridge?: AgentToolBridge) { method initializeAndRun (line 50) | async initializeAndRun(options: EngineInitOptions, ctx: EngineExecutio... method resolveRepoPath (line 676) | private resolveRepoPath(projectRoot?: string): string { method appendProjectContext (line 686) | private async appendProjectContext(baseInstruction: string, repoPath: ... method buildCodexConfigArgs (line 718) | private buildCodexConfigArgs(config: CodexEngineConfig): string[] { method writeAttachmentToTemp (line 741) | private async writeAttachmentToTemp(attachment: { method buildCodexEnv (line 762) | private buildCodexEnv(): NodeJS.ProcessEnv { method pickFirstString (line 787) | private pickFirstString(value: unknown): string | undefined { method summarizeApplyPatch (line 816) | private summarizeApplyPatch(payload: { method extractTodoListItems (line 856) | private extractTodoListItems(record: Record): unknown { method normalizeTodoListItems (line 879) | private normalizeTodoListItems(input: unknown): TodoListItem[] { method buildTodoListContent (line 903) | private buildTodoListContent(items: TodoListItem[], phase: TodoListPha... method createTodoListMetadata (line 931) | private createTodoListMetadata( method encodeHash (line 954) | private encodeHash(value: string): string { FILE: app/native-server/src/agent/engines/types.ts type EngineInitOptions (line 4) | interface EngineInitOptions { type ClaudeSessionPersistCallback (line 71) | type ClaudeSessionPersistCallback = (sessionId: string) => Promise; type ClaudeManagementInfo (line 76) | interface ClaudeManagementInfo { type ManagementInfoPersistCallback (line 96) | type ManagementInfoPersistCallback = (info: ClaudeManagementInfo) => Pro... type EngineName (line 98) | type EngineName = 'claude' | 'codex' | 'cursor' | 'qwen' | 'glm'; type EngineExecutionContext (line 100) | interface EngineExecutionContext { type AgentEngine (line 117) | interface AgentEngine { type RunningExecution (line 129) | interface RunningExecution { FILE: app/native-server/src/agent/message-service.ts type CreateAgentStoredMessageInput (line 20) | interface CreateAgentStoredMessageInput { function rowToMessage (line 41) | function rowToMessage(row: MessageRow): AgentStoredMessage { function getMessagesByProjectId (line 65) | async function getMessagesByProjectId( function getMessagesCountByProjectId (line 93) | async function getMessagesCountByProjectId(projectId: string): Promise { function runFallbackSequence (line 151) | async function runFallbackSequence(errorTitle: string, attempts: LaunchA... function openInVSCode (line 177) | async function openInVSCode(absolutePath: string): Promise { function openFileInVSCode (line 227) | async function openFileInVSCode( function openInTerminal (line 384) | async function openInTerminal(absolutePath: string): Promise { function openTerminalDarwin (line 402) | async function openTerminalDarwin(absolutePath: string): Promise { function openTerminalWindows (line 416) | async function openTerminalWindows(absolutePath: string): Promise { function openTerminalLinux (line 439) | async function openTerminalLinux(absolutePath: string): Promise { function openProjectDirectory (line 487) | async function openProjectDirectory( FILE: app/native-server/src/agent/project-service.ts constant ALLOWED_BASE_DIRS (line 26) | const ALLOWED_BASE_DIRS: string[] = [ type PathValidationResult (line 39) | interface PathValidationResult { function validateRootPath (line 51) | async function validateRootPath(rootPath: string): Promise { function getProject (line 190) | async function getProject(id: string): Promise { function upsertProject (line 199) | async function upsertProject(input: CreateOrUpdateProjectInput): Promise... function deleteProject (line 251) | async function deleteProject(id: string): Promise { function touchProjectActivity (line 259) | async function touchProjectActivity(id: string): Promise { function updateProjectClaudeSessionId (line 270) | async function updateProjectClaudeSessionId( FILE: app/native-server/src/agent/project-types.ts type CreateOrUpdateProjectInput (line 9) | interface CreateOrUpdateProjectInput { FILE: app/native-server/src/agent/session-service.ts type SystemPromptConfig (line 21) | type SystemPromptConfig = type ToolsConfig (line 28) | type ToolsConfig = string[] | { type: 'preset'; preset: 'claude_code' }; type SessionOptionsConfig (line 33) | interface SessionOptionsConfig { type ManagementInfo (line 57) | interface ManagementInfo { type AgentSessionPreviewMeta (line 82) | interface AgentSessionPreviewMeta { type AgentSession (line 99) | interface AgentSession { type CreateSessionOptions (line 122) | interface CreateSessionOptions { type UpdateSessionInput (line 136) | interface UpdateSessionInput { function parseJson (line 151) | function parseJson(value: string | null): T | undefined { function stringifyJson (line 160) | function stringifyJson(value: T | null | undefined): string | null { function rowToSession (line 169) | function rowToSession(row: SessionRow): AgentSession { function createSession (line 194) | async function createSession( function getSession (line 235) | async function getSession(sessionId: string): Promise { function getSessionsByProjectAndEngine (line 349) | async function getSessionsByProjectAndEngine( function updateSession (line 365) | async function updateSession(sessionId: string, updates: UpdateSessionIn... function deleteSession (line 415) | async function deleteSession(sessionId: string): Promise { function updateEngineSessionId (line 423) | async function updateEngineSessionId( function touchSessionActivity (line 434) | async function touchSessionActivity(sessionId: string): Promise { function updateManagementInfo (line 443) | async function updateManagementInfo( function getOrCreateDefaultSession (line 456) | async function getOrCreateDefaultSession( FILE: app/native-server/src/agent/storage.ts constant DEFAULT_DATA_DIR (line 14) | const DEFAULT_DATA_DIR = path.join(os.homedir(), '.chrome-mcp-agent'); function getAgentDataDir (line 22) | function getAgentDataDir(): string { function getDatabasePath (line 36) | function getDatabasePath(): string { function getDefaultWorkspaceDir (line 52) | function getDefaultWorkspaceDir(): string { function getDefaultProjectRoot (line 59) | function getDefaultProjectRoot(projectName: string): string { FILE: app/native-server/src/agent/stream-manager.ts type WebSocketLike (line 4) | type WebSocketLike = { constant WEBSOCKET_OPEN_STATE (line 10) | const WEBSOCKET_OPEN_STATE = 1; class AgentStreamManager (line 18) | class AgentStreamManager { method addSseStream (line 23) | addSseStream(sessionId: string, res: ServerResponse): void { method removeSseStream (line 31) | removeSseStream(sessionId: string, res: ServerResponse): void { method addWebSocket (line 45) | addWebSocket(sessionId: string, socket: WebSocketLike): void { method removeWebSocket (line 53) | removeWebSocket(sessionId: string, socket: WebSocketLike): void { method publish (line 67) | publish(event: RealtimeEvent): void { method extractSessionId (line 93) | private extractSessionId(event: RealtimeEvent): string | undefined { method sendToSession (line 115) | private sendToSession(sessionId: string, ssePayload: string, wsPayload... method broadcastToAll (line 160) | private broadcastToAll(ssePayload: string, wsPayload: string): void { method isResponseDead (line 198) | private isResponseDead(res: ServerResponse): boolean { method isSocketDead (line 202) | private isSocketDead(socket: WebSocketLike): boolean { method closeAll (line 206) | closeAll(): void { method ensureHeartbeatTimer (line 232) | private ensureHeartbeatTimer(): void { method stopHeartbeatTimerIfIdle (line 254) | private stopHeartbeatTimerIfIdle(): void { method stopHeartbeatTimer (line 260) | private stopHeartbeatTimer(): void { FILE: app/native-server/src/agent/tool-bridge.ts type CliToolInvocation (line 6) | interface CliToolInvocation { type AgentToolBridgeOptions (line 22) | interface AgentToolBridgeOptions { class AgentToolBridge (line 37) | class AgentToolBridge { method constructor (line 41) | constructor(options: AgentToolBridgeOptions = {}) { method ensureConnected (line 58) | async ensureConnected(): Promise { method callTool (line 70) | async callTool(invocation: CliToolInvocation): Promise { FILE: app/native-server/src/constant/index.ts type NATIVE_MESSAGE_TYPE (line 1) | enum NATIVE_MESSAGE_TYPE { constant NATIVE_SERVER_PORT (line 11) | const NATIVE_SERVER_PORT = 12306; constant TIMEOUTS (line 14) | const TIMEOUTS = { constant SERVER_CONFIG (line 21) | const SERVER_CONFIG = { constant HTTP_STATUS (line 32) | const HTTP_STATUS = { constant ERROR_MESSAGES (line 43) | const ERROR_MESSAGES = { constant CHROME_MCP_PORT_ENV (line 63) | const CHROME_MCP_PORT_ENV = 'CHROME_MCP_PORT'; constant MCP_HTTP_PORT_ENV (line 64) | const MCP_HTTP_PORT_ENV = 'MCP_HTTP_PORT'; function getChromeMcpPort (line 70) | function getChromeMcpPort(): number { function getChromeMcpUrl (line 80) | function getChromeMcpUrl(): string { FILE: app/native-server/src/file-handler.ts class FileHandler (line 10) | class FileHandler { method constructor (line 13) | constructor() { method handleFileRequest (line 24) | async handleFileRequest(request: any): Promise { method downloadFile (line 79) | private async downloadFile(fileUrl: string, fileName?: string): Promis... method saveBase64File (line 110) | private async saveBase64File(base64Data: string, fileName?: string): P... method verifyFile (line 139) | private async verifyFile(filePath: string): Promise { method readBase64File (line 171) | private async readBase64File(filePath: string): Promise { method cleanupFile (line 200) | private async cleanupFile(filePath: string): Promise { method generateFileName (line 229) | private generateFileName(url?: string): string { method cleanupOldFiles (line 254) | cleanupOldFiles(): void { FILE: app/native-server/src/mcp/mcp-server-stdio.ts function main (line 117) | async function main() { FILE: app/native-server/src/mcp/register-tools.ts function listDynamicFlowTools (line 11) | async function listDynamicFlowTools(): Promise { FILE: app/native-server/src/native-messaging-host.ts type PendingRequest (line 8) | interface PendingRequest { class NativeMessagingHost (line 14) | class NativeMessagingHost { method setServer (line 18) | public setServer(serverInstance: Server): void { method start (line 23) | public start(): void { method setupMessageHandling (line 31) | private setupMessageHandling(): void { method handleMessage (line 95) | private async handleMessage(message: any): Promise { method handleFileOperation (line 151) | private async handleFileOperation(message: any): Promise { method sendRequestToExtensionAndWait (line 193) | public sendRequestToExtensionAndWait( method startServer (line 221) | private async startServer(port: number): Promise { method stopServer (line 249) | private async stopServer(): Promise { method sendMessage (line 276) | public sendMessage(message: any): void { method sendError (line 300) | private sendError(errorMessage: string): void { method cleanup (line 310) | private cleanup(): void { FILE: app/native-server/src/scripts/browser-config.ts type BrowserType (line 7) | enum BrowserType { type BrowserConfig (line 12) | interface BrowserConfig { function getUserManifestPathForBrowser (line 24) | function getUserManifestPathForBrowser(browser: BrowserType): string { function getSystemManifestPathForBrowser (line 99) | function getSystemManifestPathForBrowser(browser: BrowserType): string { function getRegistryKeys (line 167) | function getRegistryKeys(browser: BrowserType): { user: string; system: ... function getBrowserConfig (line 187) | function getBrowserConfig(browser: BrowserType): BrowserConfig { function detectInstalledBrowsers (line 203) | function detectInstalledBrowsers(): BrowserType[] { function getAllBrowserConfigs (line 260) | function getAllBrowserConfigs(): BrowserConfig[] { function parseBrowserType (line 267) | function parseBrowserType(browserStr: string): BrowserType | undefined { FILE: app/native-server/src/scripts/constant.ts constant COMMAND_NAME (line 1) | const COMMAND_NAME = 'mcp-chrome-bridge'; constant EXTENSION_ID (line 2) | const EXTENSION_ID = 'hbdgbgagpkpjffpklnamcljpakneikee'; constant HOST_NAME (line 3) | const HOST_NAME = 'com.chromemcp.nativehost'; constant DESCRIPTION (line 4) | const DESCRIPTION = 'Node.js Host for Browser Bridge Extension'; FILE: app/native-server/src/scripts/doctor.ts constant EXPECTED_PORT (line 29) | const EXPECTED_PORT = 12306; constant SCHEMA_VERSION (line 30) | const SCHEMA_VERSION = 1; constant MIN_NODE_MAJOR_VERSION (line 31) | const MIN_NODE_MAJOR_VERSION = 20; type DoctorOptions (line 37) | interface DoctorOptions { type DoctorStatus (line 43) | type DoctorStatus = 'ok' | 'warn' | 'error'; type DoctorFixAttempt (line 45) | interface DoctorFixAttempt { type DoctorCheckResult (line 52) | interface DoctorCheckResult { type DoctorReport (line 60) | interface DoctorReport { type NodeResolutionResult (line 96) | interface NodeResolutionResult { function readPackageJson (line 114) | function readPackageJson(): Record { function getCommandInfo (line 122) | function getCommandInfo(pkg: Record): { canonical: stri... function resolveDistDir (line 138) | function resolveDistDir(): string { function stringifyError (line 156) | function stringifyError(err: unknown): string { function canExecute (line 161) | function canExecute(filePath: string): boolean { function normalizeComparablePath (line 170) | function normalizeComparablePath(filePath: string): string { function stripOuterQuotes (line 177) | function stripOuterQuotes(input: string): string { function expandTilde (line 188) | function expandTilde(inputPath: string): string { function expandWindowsEnvVars (line 196) | function expandWindowsEnvVars(input: string): string { function parseVersionFromDirName (line 206) | function parseVersionFromDirName(dirName: string): number[] | null { function parseNodeMajorVersion (line 217) | function parseNodeMajorVersion(versionString: string): number | null { function compareVersions (line 228) | function compareVersions(a: number[], b: number[]): number { function pickLatestVersionDir (line 238) | function pickLatestVersionDir(parentDir: string): string | null { function resolveNodeCandidate (line 259) | function resolveNodeCandidate(distDir: string): NodeResolutionResult { function resolveTargetBrowsers (line 411) | function resolveTargetBrowsers(browserArg: string | undefined): BrowserT... function resolveBrowsersToCheck (line 423) | function resolveBrowsersToCheck(requested: BrowserType[] | undefined): B... type RegistryValueType (line 434) | type RegistryValueType = 'REG_SZ' | 'REG_EXPAND_SZ'; function queryWindowsRegistryDefaultValue (line 436) | function queryWindowsRegistryDefaultValue(registryKey: string): { function attemptFixes (line 469) | async function attemptFixes( function readJsonFile (line 538) | function readJsonFile( type FetchFn (line 553) | type FetchFn = typeof globalThis.fetch; function resolveFetch (line 555) | function resolveFetch(): FetchFn | null { function checkConnectivity (line 567) | async function checkConnectivity( function computeSummary (line 602) | function computeSummary(checks: DoctorCheckResult[]): { ok: number; warn... function statusBadge (line 614) | function statusBadge(status: DoctorStatus): string { function collectDoctorReport (line 628) | async function collectDoctorReport(options: DoctorOptions): Promise { FILE: app/native-server/src/scripts/postinstall.ts function detectGlobalInstall (line 13) | function detectGlobalInstall(): boolean { function isRunningElevated (line 65) | function isRunningElevated(): boolean { function ensureExecutionPermissions (line 79) | async function ensureExecutionPermissions(): Promise { function ensureWindowsFilePermissions (line 117) | async function ensureWindowsFilePermissions(): Promise { function tryRegisterNativeHost (line 157) | async function tryRegisterNativeHost(): Promise { function printManualInstructions (line 227) | function printManualInstructions(): void { function main (line 282) | async function main(): Promise { FILE: app/native-server/src/scripts/register.ts function main (line 9) | async function main(): Promise { FILE: app/native-server/src/scripts/report.ts constant REPORT_SCHEMA_VERSION (line 24) | const REPORT_SCHEMA_VERSION = 1; constant DEFAULT_LOG_LINES (line 25) | const DEFAULT_LOG_LINES = 200; constant DEFAULT_TAIL_BYTES (line 26) | const DEFAULT_TAIL_BYTES = 256 * 1024; constant MAX_LOG_FILES (line 27) | const MAX_LOG_FILES = 6; constant MAX_FULL_LOG_BYTES (line 28) | const MAX_FULL_LOG_BYTES = 1024 * 1024; type IncludeLogsMode (line 30) | type IncludeLogsMode = 'none' | 'tail' | 'full'; type ReportOptions (line 32) | interface ReportOptions { type VersionResult (line 42) | interface VersionResult { type ManifestSnapshot (line 47) | interface ManifestSnapshot { type LogFileSnapshot (line 57) | interface LogFileSnapshot { type WrapperLogsSnapshot (line 68) | interface WrapperLogsSnapshot { type WindowsRegistryEntrySnapshot (line 75) | interface WindowsRegistryEntrySnapshot { type WindowsRegistrySnapshot (line 85) | interface WindowsRegistrySnapshot { type DiagnosticReport (line 89) | interface DiagnosticReport { function stringifyError (line 125) | function stringifyError(err: unknown): string { function readPackageJson (line 130) | function readPackageJson(): Record { function getToolVersion (line 138) | function getToolVersion(): { name: string; version: string } { function safeOsVersion (line 145) | function safeOsVersion(): string | undefined { function safeExecVersion (line 153) | function safeExecVersion(command: string): VersionResult { function parseIncludeLogsMode (line 167) | function parseIncludeLogsMode(raw: unknown): IncludeLogsMode { function parsePositiveInt (line 173) | function parsePositiveInt(raw: unknown, fallback: number): number { function resolveBrowsers (line 182) | function resolveBrowsers(browserArg: string | undefined): BrowserType[] { function readJsonSnapshot (line 202) | function readJsonSnapshot(filePath: string): { function collectManifests (line 222) | function collectManifests(browsers: BrowserType[]): ManifestSnapshot[] { function readFileTail (line 243) | function readFileTail( function readFileLastBytes (line 266) | function readFileLastBytes( function collectWrapperLogs (line 291) | function collectWrapperLogs( function queryWindowsRegistryDefaultValue (line 366) | function queryWindowsRegistryDefaultValue(registryKey: string): { function collectWindowsRegistry (line 392) | function collectWindowsRegistry(browsers: BrowserType[]): WindowsRegistr... function escapeRegExp (line 431) | function escapeRegExp(input: string): string { function buildLiteralReplacements (line 435) | function buildLiteralReplacements(): Array<[RegExp, string]> { function createRedactor (line 471) | function createRedactor(enabled: boolean): (input: string) => string { function redactDeep (line 518) | function redactDeep(value: unknown, redact: (s: string) => string): unkn... function renderMarkdown (line 536) | function renderMarkdown(report: DiagnosticReport): string { function writeOutput (line 698) | function writeOutput( function tryCopyToClipboard (line 716) | function tryCopyToClipboard(text: string): { ok: boolean; method?: strin... function runReport (line 755) | async function runReport(options: ReportOptions): Promise { FILE: app/native-server/src/scripts/utils.ts function getLogDir (line 21) | function getLogDir(): string { function colorText (line 42) | function colorText(text: string, color: string): string { function getUserManifestPath (line 57) | function getUserManifestPath(): string { function getSystemManifestPath (line 93) | function getSystemManifestPath(): string { function getMainPath (line 115) | async function getMainPath(): Promise { function writeNodePathFile (line 135) | function writeNodePathFile(distDir: string, nodeExecPath = process.execP... function ensureExecutionPermissions (line 152) | async function ensureExecutionPermissions(): Promise { function ensureWindowsFilePermissions (line 196) | async function ensureWindowsFilePermissions(packageDistDir: string): Pro... function createManifestContent (line 239) | async function createManifestContent(): Promise { function verifyWindowsRegistryEntry (line 254) | function verifyWindowsRegistryEntry(registryKey: string, expectedPath: s... function registerUserLevelHostWithNodePath (line 292) | async function registerUserLevelHostWithNodePath( function tryRegisterUserLevelHost (line 302) | async function tryRegisterUserLevelHost(targetBrowsers?: BrowserType[]):... function registerWithElevatedPermissions (line 404) | async function registerWithElevatedPermissions(): Promise { FILE: app/native-server/src/server/index.ts type ExtensionRequestPayload (line 37) | interface ExtensionRequestPayload { class Server (line 45) | class Server { method constructor (line 54) | constructor() { method setNativeHost (line 68) | public setNativeHost(nativeHost: NativeMessagingHost): void { method setupPlugins (line 72) | private async setupPlugins(): Promise { method setupRoutes (line 90) | private setupRoutes(): void { method setupHealthRoutes (line 111) | private setupHealthRoutes(): void { method setupExtensionRoutes (line 124) | private setupExtensionRoutes(): void { method setupMcpRoutes (line 167) | private setupMcpRoutes(): void { method start (line 319) | public async start(port = NATIVE_SERVER_PORT, nativeHost: NativeMessag... method stop (line 344) | public async stop(): Promise { method getInstance (line 360) | public getInstance(): FastifyInstance { FILE: app/native-server/src/server/routes/agent.ts constant VALID_ENGINE_NAMES (line 59) | const VALID_ENGINE_NAMES: readonly EngineName[] = ['claude', 'codex', 'c... function isValidEngineName (line 61) | function isValidEngineName(name: string): name is EngineName { constant VALID_OPEN_TARGETS (line 66) | const VALID_OPEN_TARGETS: readonly OpenProjectTarget[] = ['vscode', 'ter... function isValidOpenTarget (line 68) | function isValidOpenTarget(target: string): target is OpenProjectTarget { type AgentRoutesOptions (line 76) | interface AgentRoutesOptions { function registerAgentRoutes (line 88) | function registerAgentRoutes(fastify: FastifyInstance, options: AgentRou... FILE: app/native-server/src/trace-analyzer.ts function readJsonFile (line 22) | function readJsonFile(path: string): any { function parseTrace (line 27) | async function parseTrace(json: any): Promise<{ function getTraceSummary (line 43) | function getTraceSummary(parsedTrace: any): string { function getInsightText (line 49) | function getInsightText(parsedTrace: any, insights: any, insightName: st... function analyzeTraceFile (line 64) | async function analyzeTraceFile( FILE: app/native-server/src/types/devtools-frontend.d.ts class PerformanceTraceFormatter (line 13) | class PerformanceTraceFormatter { class PerformanceInsightFormatter (line 20) | class PerformanceInsightFormatter { FILE: packages/shared/src/agent-types.ts type AgentRole (line 12) | type AgentRole = 'user' | 'assistant' | 'tool' | 'system'; type AgentMessage (line 14) | interface AgentMessage { type StreamTransport (line 32) | type StreamTransport = 'sse' | 'websocket'; type AgentStatusEvent (line 34) | interface AgentStatusEvent { type AgentConnectedEvent (line 41) | interface AgentConnectedEvent { type AgentHeartbeatEvent (line 47) | interface AgentHeartbeatEvent { type AgentUsageStats (line 52) | interface AgentUsageStats { type RealtimeEvent (line 64) | type RealtimeEvent = type AgentAttachment (line 76) | interface AgentAttachment { type AgentCliPreference (line 83) | type AgentCliPreference = 'claude' | 'codex' | 'cursor' | 'qwen' | 'glm'; type AgentActRequest (line 85) | interface AgentActRequest { type AgentActResponse (line 123) | interface AgentActResponse { type AgentProject (line 133) | interface AgentProject { type AgentEngineInfo (line 163) | interface AgentEngineInfo { type AgentSystemPromptConfig (line 175) | type AgentSystemPromptConfig = type AgentToolsConfig (line 182) | type AgentToolsConfig = string[] | { type: 'preset'; preset: 'claude_cod... type AgentSessionOptionsConfig (line 187) | interface AgentSessionOptionsConfig { type AgentManagementInfo (line 211) | interface AgentManagementInfo { type AgentSession (line 231) | interface AgentSession { type CreateAgentSessionInput (line 252) | interface CreateAgentSessionInput { type UpdateAgentSessionInput (line 265) | interface UpdateAgentSessionInput { type AgentStoredMessage (line 278) | interface AgentStoredMessage { type CodexSandboxMode (line 299) | type CodexSandboxMode = 'read-only' | 'workspace-write' | 'danger-full-a... type CodexReasoningEffort (line 306) | type CodexReasoningEffort = 'low' | 'medium' | 'high' | 'xhigh'; type CodexEngineConfig (line 312) | interface CodexEngineConfig { constant CODEX_AUTO_INSTRUCTIONS (line 339) | const CODEX_AUTO_INSTRUCTIONS = `Act autonomously without asking for con... constant DEFAULT_CODEX_CONFIG (line 350) | const DEFAULT_CODEX_CONFIG: CodexEngineConfig = { type AttachmentMetadata (line 370) | interface AttachmentMetadata { type AttachmentProjectStats (line 398) | interface AttachmentProjectStats { type CleanupProjectResult (line 413) | interface CleanupProjectResult { type AttachmentStatsResponse (line 424) | interface AttachmentStatsResponse { type AttachmentCleanupRequest (line 441) | interface AttachmentCleanupRequest { type AttachmentCleanupResponse (line 449) | interface AttachmentCleanupResponse { type OpenProjectTarget (line 464) | type OpenProjectTarget = 'vscode' | 'terminal'; type OpenProjectRequest (line 469) | interface OpenProjectRequest { type OpenProjectResponse (line 477) | type OpenProjectResponse = { success: true } | { success: false; error: ... FILE: packages/shared/src/constants.ts constant DEFAULT_SERVER_PORT (line 1) | const DEFAULT_SERVER_PORT = 12306; constant HOST_NAME (line 2) | const HOST_NAME = 'com.chromemcp.nativehost'; FILE: packages/shared/src/labels.ts constant EDGE_LABELS (line 3) | const EDGE_LABELS = { type EdgeLabel (line 10) | type EdgeLabel = (typeof EDGE_LABELS)[keyof typeof EDGE_LABELS]; FILE: packages/shared/src/node-spec-registry.ts constant REG (line 4) | const REG = new Map(); function registerNodeSpec (line 6) | function registerNodeSpec(spec: NodeSpec) { function getNodeSpec (line 10) | function getNodeSpec(type: string): NodeSpec | undefined { function listNodeSpecs (line 14) | function listNodeSpecs(): NodeSpec[] { FILE: packages/shared/src/node-spec.ts type FieldType (line 3) | type FieldType = 'string' | 'number' | 'boolean' | 'select' | 'object' |... type FieldSpecBase (line 5) | interface FieldSpecBase { type FieldString (line 17) | interface FieldString extends FieldSpecBase { type FieldNumber (line 21) | interface FieldNumber extends FieldSpecBase { type FieldBoolean (line 28) | interface FieldBoolean extends FieldSpecBase { type FieldSelect (line 32) | interface FieldSelect extends FieldSpecBase { type FieldObject (line 37) | interface FieldObject extends FieldSpecBase { type FieldArray (line 42) | interface FieldArray extends FieldSpecBase { type FieldJson (line 47) | interface FieldJson extends FieldSpecBase { type FieldSpec (line 52) | type FieldSpec = type NodeCategory (line 61) | type NodeCategory = 'Flow' | 'Actions' | 'Logic' | 'Tools' | 'Tabs' | 'P... type NodeSpecDisplay (line 63) | interface NodeSpecDisplay { type NodeSpec (line 70) | interface NodeSpec { FILE: packages/shared/src/node-specs-builtin.ts function registerBuiltinSpecs (line 6) | function registerBuiltinSpecs() { FILE: packages/shared/src/rr-graph.ts type RRNode (line 7) | interface RRNode { type RREdge (line 12) | interface RREdge { constant RR_STEP_TYPES (line 20) | const RR_STEP_TYPES = { type RRStepType (line 49) | type RRStepType = (typeof RR_STEP_TYPES)[keyof typeof RR_STEP_TYPES]; function ensureTarget (line 51) | function ensureTarget(t: any) { function topoOrder (line 56) | function topoOrder(nodes: T[], edges: RREdge[]): T[] { function mapNodeToStep (line 78) | function mapNodeToStep(node: RRNode): any { function nodesToSteps (line 280) | function nodesToSteps(nodes: RRNode[], edges: RREdge[]): any[] { function mapStepToNodeConfig (line 286) | function mapStepToNodeConfig(step: unknown): Record { function stepsToNodes (line 303) | function stepsToNodes(steps: ReadonlyArray): RRNode[] { function stepsToDAG (line 321) | function stepsToDAG(steps: ReadonlyArray): { nodes: RRNode[]; e... FILE: packages/shared/src/step-types.ts constant STEP_TYPES (line 3) | const STEP_TYPES = { type StepTypeConst (line 34) | type StepTypeConst = (typeof STEP_TYPES)[keyof typeof STEP_TYPES]; FILE: packages/shared/src/tools.ts constant TOOL_NAMES (line 3) | const TOOL_NAMES = { constant TOOL_SCHEMAS (line 49) | const TOOL_SCHEMAS: Tool[] = [ FILE: packages/shared/src/types.ts type NativeMessageType (line 1) | enum NativeMessageType { type NativeMessage (line 23) | interface NativeMessage

{ type ElementPickerRequest (line 37) | interface ElementPickerRequest { type PickedElementRect (line 55) | interface PickedElementRect { type PickedElementPoint (line 65) | interface PickedElementPoint { type PickedElement (line 73) | interface PickedElement { type ElementPickerResultItem (line 114) | interface ElementPickerResultItem { type ElementPickerResult (line 136) | interface ElementPickerResult { FILE: packages/wasm-simd/src/lib.rs function main (line 6) | pub fn main() { type SIMDMath (line 11) | pub struct SIMDMath; method new (line 16) | pub fn new() -> SIMDMath { method dot_product_simd_only (line 22) | fn dot_product_simd_only(&self, vec_a: &[f32], vec_b: &[f32]) -> f32 { method cosine_similarity (line 45) | pub fn cosine_similarity(&self, vec_a: &[f32], vec_b: &[f32]) -> f32 { method batch_similarity (line 97) | pub fn batch_similarity(&self, vectors: &[f32], query: &[f32], vector_... method compute_norm_squared_simd (line 132) | fn compute_norm_squared_simd(&self, vec: &[f32]) -> f32 { method dot_product_and_norm_simd (line 153) | fn dot_product_and_norm_simd(&self, vec_a: &[f32], vec_b: &[f32]) -> (... method similarity_matrix (line 183) | pub fn similarity_matrix(&self, vectors_a: &[f32], vectors_b: &[f32], ...