/** * MCP Tool Handlers * * Implements the logic for all MCP tools. */ import type { SessionManager } from "../session/session-manager.js"; import type { AuthManager } from "../auth/auth-manager.js"; import type { NotebookLibrary } from "../library/notebook-library.js"; import type { AddNotebookInput, LibraryStats, NotebookEntry, UpdateNotebookInput } from "../library/types.js"; import type { AddSourceResult } from "../notebooklm/sources.js"; import type { AudioGenerationResult, DownloadAudioResult } from "../notebooklm/audio.js"; import { type BrowserOptions } from "../config.js"; import type { AskQuestionResult, ToolResult, ProgressCallback } from "../types.js"; /** * MCP Tool Handlers */ export declare class ToolHandlers { private sessionManager; private authManager; private library; constructor(sessionManager: SessionManager, authManager: AuthManager, library: NotebookLibrary); /** * Handle ask_question tool */ handleAskQuestion(args: { question: string; session_id?: string; notebook_id?: string; notebook_url?: string; show_browser?: boolean; browser_options?: BrowserOptions; source_format?: "none" | "inline" | "footnotes" | "json"; }, sendProgress?: ProgressCallback): Promise>; /** * Handle list_sessions tool */ handleListSessions(): Promise; }>>; /** * Handle close_session tool */ handleCloseSession(args: { session_id: string; }): Promise>; /** * Handle reset_session tool */ handleResetSession(args: { session_id: string; }): Promise>; /** * Handle get_health tool */ handleGetHealth(): Promise>; /** * Handle setup_auth tool * * Opens a browser window for manual login with live progress updates. * The operation waits synchronously for login completion (up to 10 minutes). */ handleSetupAuth(args: { show_browser?: boolean; browser_options?: BrowserOptions; }, sendProgress?: ProgressCallback): Promise>; /** * Handle re_auth tool * * Performs a complete re-authentication: * 1. Closes all active browser sessions * 2. Deletes all saved authentication data (cookies, Chrome profile) * 3. Opens browser for fresh Google login * * Use for switching Google accounts or recovering from rate limits. */ handleReAuth(args: { show_browser?: boolean; browser_options?: BrowserOptions; }, sendProgress?: ProgressCallback): Promise>; /** * Handle add_notebook tool */ handleAddNotebook(args: AddNotebookInput): Promise>; /** * Handle list_notebooks tool */ handleListNotebooks(): Promise>; /** * Handle get_notebook tool */ handleGetNotebook(args: { id: string; }): Promise>; /** * Handle select_notebook tool */ handleSelectNotebook(args: { id: string; }): Promise>; /** * Handle update_notebook tool */ handleUpdateNotebook(args: UpdateNotebookInput): Promise>; /** * Handle remove_notebook tool */ handleRemoveNotebook(args: { id: string; }): Promise>; /** * Handle search_notebooks tool */ handleSearchNotebooks(args: { query: string; }): Promise>; /** * Handle get_library_stats tool */ handleGetLibraryStats(): Promise>; /** * Handle cleanup_data tool * * ULTRATHINK Deep Cleanup - scans entire system for ALL NotebookLM MCP files */ handleCleanupData(args: { confirm: boolean; preserve_library?: boolean; }): Promise; totalPaths: number; totalSizeBytes: number; }; result?: { deletedPaths: string[]; failedPaths: string[]; totalSizeBytes: number; categorySummary: Record; }; }>>; /** * Resolve a notebook URL the same way `handleAskQuestion` does. Used by the * new source/audio tools so we don't duplicate the lookup logic. */ private resolveNotebookUrl; /** * Handle add_source tool (issue #25). */ handleAddSource(args: { type: "url" | "text"; content: string; title?: string; session_id?: string; notebook_id?: string; notebook_url?: string; show_browser?: boolean; }): Promise>; /** * Handle generate_audio tool (issue #11). */ handleGenerateAudio(args: { custom_prompt?: string; timeout_ms?: number; wait_for_completion?: boolean; session_id?: string; notebook_id?: string; notebook_url?: string; show_browser?: boolean; }): Promise>; /** * Handle get_audio_status tool — non-blocking poll for Audio Overview state. */ handleGetAudioStatus(args: { session_id?: string; notebook_id?: string; notebook_url?: string; show_browser?: boolean; }): Promise>; /** * Handle download_audio tool (issue #11). */ handleDownloadAudio(args: { destination_dir: string; session_id?: string; notebook_id?: string; notebook_url?: string; show_browser?: boolean; }): Promise>; /** * Cleanup all resources (called on server shutdown) */ cleanup(): Promise; } //# sourceMappingURL=handlers.d.ts.map