def search(query: str, source: str = None, n_chunks: int = 10) -> dict: """ Search documents with source tracking. Returns chunks with metadata so you can cite sources and see document patterns. When you see multiple chunks from the same document, that usually means the document has comprehensive coverage of your topic. Args: query: What you're looking for in natural language source: Limit search to a specific document (optional) n_chunks: How many chunks to return (default: 10) Returns: Results with source files, page numbers, and chunk content """ pass def load_pages(source: str, pages: list[int]) -> dict: """ Get full pages from a document when you need complete context instead of fragmented chunks. Use this when search results show multiple chunks from the same document - usually means you should read the full pages rather than piecing together fragments. Args: source: Document path (like "contracts/MSA-2024.pdf") pages: Which pages to load (like [3, 7, 12]) Returns: Complete page content with source information """ pass