Lookup, search, or browse sources (books, speeches, articles, etc.). Use name= for exact match, search= for fuzzy, by= to filter by author.
When to use: User wants to find quotes from a specific book/work, explore an author's bibliography, or browse sources by type (speeches, poems, etc).
Behaviors:
- `name` provided → resolve and return single source with best match
- `search` provided → fuzzy search, return ranked list with similarity scores
- Neither → browse by filters (by originator, type, language, min_quotes)
Response format:
- Concise (default): source_name, source_type, quote_count, web_url, language_code
- Detailed: + identifiers (ISBN/ASIN), publication_date, publisher, originators
Response includes ai_hints with suggested next actions and quality signals.
Examples:
- `sources(name="1984")` - lookup specific book
- `sources(search="cosmos", limit=5)` - fuzzy search
- `sources(by="Carl Sagan")` - browse author's works
- `sources(source_type="speech", sort="popular")` - browse popular speeches