SYMBOL INDEX (93 symbols across 29 files) FILE: extensions/chrome/scripts/check-version-sync.ts type PackageJson (line 6) | interface PackageJson { type ManifestJson (line 11) | interface ManifestJson { FILE: extensions/chrome/src/__tests__/sample.test.ts type ChromeMock (line 3) | interface ChromeMock { FILE: extensions/chrome/src/background/index.ts type RouteChangeMessage (line 2) | type RouteChangeMessage = { function notifyRouteChange (line 11) | function notifyRouteChange(tabId: number, url: string) { FILE: extensions/chrome/src/components/instruction-selector/index.tsx type ModelInstruction (line 25) | interface ModelInstruction { function InstructionSelect (line 44) | function InstructionSelect() { FILE: extensions/chrome/src/components/instruction-selector/instruction-description.tsx type InstructionDescriptionProps (line 5) | interface InstructionDescriptionProps { FILE: extensions/chrome/src/components/instruction-selector/instruction-item.tsx constant ITEM_STYLES (line 4) | const ITEM_STYLES = FILE: extensions/chrome/src/components/ui/badge.tsx type BadgeProps (line 27) | interface BadgeProps function Badge (line 31) | function Badge({ className, variant, ...props }: BadgeProps) { FILE: extensions/chrome/src/components/ui/button.tsx type ButtonProps (line 38) | interface ButtonProps FILE: extensions/chrome/src/components/ui/skeleton.tsx function Skeleton (line 3) | function Skeleton({ FILE: extensions/chrome/src/constants/constants.ts constant GITHUB_API_URL (line 1) | const GITHUB_API_URL = constant MESSAGE_SOURCE (line 4) | const MESSAGE_SOURCE = "thinking-claude" as const constant MESSAGE_TYPE (line 5) | const MESSAGE_TYPE = { FILE: extensions/chrome/src/content/v3/features/base-feature.ts method constructor (line 8) | constructor(readonly id: string) {} method addEventListenerWithCleanup (line 19) | protected addEventListenerWithCleanup( FILE: extensions/chrome/src/content/v3/features/instruction-selector/handle-content-change.ts type ContentMessage (line 6) | interface ContentMessage { function postContentMessage (line 20) | function postContentMessage(content: string | null) { function handleContentChange (line 44) | function handleContentChange(hasAttribute: boolean) { FILE: extensions/chrome/src/content/v3/features/instruction-selector/handle-select-component.ts function handleSelectComponent (line 8) | function handleSelectComponent() { function cleanupSelect (line 42) | function cleanupSelect() { FILE: extensions/chrome/src/content/v3/features/instruction-selector/index.ts class TCInstructionSelector (line 13) | class TCInstructionSelector extends BaseFeature { method constructor (line 17) | constructor(private mutationObserver: MutationObserverService) { method initialize (line 26) | initialize(): void | (() => void) { FILE: extensions/chrome/src/content/v3/features/instruction-selector/process-input-container.ts function processInputContainer (line 6) | function processInputContainer() { function cleanupInputContainer (line 21) | function cleanupInputContainer() { FILE: extensions/chrome/src/content/v3/features/thinking-block/index.ts class TCThinkingBlock (line 11) | class TCThinkingBlock extends BaseFeature { method constructor (line 15) | constructor(private mutationObserver: MutationObserverService) { method initialize (line 24) | initialize(): void | (() => void) { FILE: extensions/chrome/src/content/v3/features/thinking-block/process-thinking-block.ts function processThinkingBlocks (line 5) | function processThinkingBlocks() { function processControl (line 13) | function processControl(control: Element) { FILE: extensions/chrome/src/content/v3/features/thinking-block/setup-controls.ts function setupControls (line 1) | function setupControls( function handleCopyClick (line 34) | async function handleCopyClick(copyButton: Element, codeBlock: Element) { function updateCopyButtonUI (line 46) | function updateCopyButtonUI(copyButton: Element) { FILE: extensions/chrome/src/content/v3/managers/extension-manager.ts class ExtensionManager (line 10) | class ExtensionManager { method constructor (line 16) | constructor() { method registerFeatures (line 30) | private registerFeatures(): void { method initialize (line 41) | initialize(): void { method cleanup (line 65) | cleanup(): void { FILE: extensions/chrome/src/content/v3/managers/feature-manager.ts class FeatureManager (line 3) | class FeatureManager { method register (line 12) | register(feature: Feature): void { method initialize (line 22) | initialize(): void { method cleanup (line 38) | cleanup(): void { method getFeature (line 53) | getFeature(id: string): Feature | undefined { FILE: extensions/chrome/src/hooks/use-content-sync.ts type ContentMessage (line 9) | interface ContentMessage { type ContentSyncOptions (line 15) | interface ContentSyncOptions { FILE: extensions/chrome/src/hooks/use-model-instructions.ts type GitHubFile (line 10) | interface GitHubFile { FILE: extensions/chrome/src/lib/utils.ts function cn (line 4) | function cn(...inputs: ClassValue[]) { FILE: extensions/chrome/src/selectors/input-selectors.ts constant CLAUDE_INPUT_CONTAINER (line 1) | const CLAUDE_INPUT_CONTAINER = "fieldset > div.cursor-text" constant CLAUDE_INPUT_BUTTONS_CONTAINER (line 4) | const CLAUDE_INPUT_BUTTONS_CONTAINER = `${CLAUDE_INPUT_CONTAINER} div.f... constant CLAUDE_INPUT_TEXTAREA (line 7) | const CLAUDE_INPUT_TEXTAREA = constant CLAUDE_INPUT_CONTENT (line 11) | const CLAUDE_INPUT_CONTENT = `${CLAUDE_INPUT_TEXTAREA} > p` FILE: extensions/chrome/src/selectors/thinking-block.ts constant THINKING_BLOCK_CONTROLS_SELECTORS (line 1) | const THINKING_BLOCK_CONTROLS_SELECTORS = [ FILE: extensions/chrome/src/services/mutation-observer.ts type ObserverCallback (line 1) | type ObserverCallback = () => void type MutationObserverOptions (line 3) | interface MutationObserverOptions { class MutationObserverService (line 11) | class MutationObserverService { method constructor (line 18) | constructor( method initialize (line 28) | initialize() { method cleanup (line 59) | cleanup() { method subscribe (line 73) | subscribe(callback: ObserverCallback) { method unsubscribe (line 78) | private unsubscribe(callback: ObserverCallback) { FILE: extensions/chrome/src/types/index.ts type Feature (line 6) | interface Feature { type MessageType (line 11) | type MessageType = (typeof MESSAGE_TYPE)[keyof typeof MESSAGE_TYPE] FILE: extensions/chrome_v0/content.js class CodeBlockCollapser (line 1) | class CodeBlockCollapser { method constructor (line 61) | constructor() { method injectStyles (line 69) | injectStyles() { method createElement (line 78) | createElement(tag, className = "", innerHTML = "") { method createCopyButton (line 85) | createCopyButton() { method createToggleButton (line 134) | createToggleButton(isStreaming = false) { method updateHeaderState (line 149) | updateHeaderState(headerContainer, isStreaming) { method setupCodeContainer (line 164) | setupCodeContainer(container, toggleBtn) { method processBlock (line 211) | processBlock(pre) { method initWithRetry (line 281) | initWithRetry(retryCount = 0) { method setupObserver (line 298) | setupObserver() { method setupPeriodicCheck (line 326) | setupPeriodicCheck() { method processExistingBlocks (line 332) | processExistingBlocks() { method cleanup (line 348) | cleanup() { FILE: extensions/firefox/content.js class CodeBlockCollapser (line 1) | class CodeBlockCollapser { method constructor (line 61) | constructor() { method injectStyles (line 69) | injectStyles() { method createElement (line 78) | createElement(tag, className = "", innerHTML = "") { method createCopyButton (line 85) | createCopyButton() { method createToggleButton (line 134) | createToggleButton(isStreaming = false) { method updateHeaderState (line 149) | updateHeaderState(headerContainer, isStreaming) { method setupCodeContainer (line 164) | setupCodeContainer(container, toggleBtn) { method processBlock (line 211) | processBlock(pre) { method initWithRetry (line 281) | initWithRetry(retryCount = 0) { method setupObserver (line 298) | setupObserver() { method setupPeriodicCheck (line 326) | setupPeriodicCheck() { method processExistingBlocks (line 332) | processExistingBlocks() { method cleanup (line 348) | cleanup() {