feat(aggregators): implement Kagi News RSS aggregator core
Implements Phase 1 of the Kagi News aggregator system, a reference
implementation for the Coves aggregator architecture.
Core components:
- RSS Fetcher: Fetches feeds with retry logic and error handling
- HTML Parser: Extracts structured data from Kagi's HTML descriptions
(summary, highlights, perspectives, quotes, sources)
- Rich Text Formatter: Formats content with proper Coves facets
- State Manager: JSON-based deduplication with rolling window
- Config Manager: YAML configuration with environment variable support
- Coves Client: HTTP client for authentication and post creation
- Main Orchestrator: Coordinates all components with error isolation
Key features:
- Verified feed structure: 3 H3 sections (Highlights, Perspectives, Sources)
- Historical context woven into summary/highlights
- UTF-8 byte position calculation for facets
- Feed-level and item-level error isolation
- Structured logging throughout
Implementation uses Python 3.11+ with:
- feedparser for RSS parsing
- beautifulsoup4 for HTML extraction
- requests for HTTP operations
- pyyaml for configuration