- Add `search_web` tool backed by tavily-python for grounded research
- Extend SWOT pipeline to accept a primary entity plus optional comparison
entities; agent prompt drives comparative analysis when comparators are
present
- Add `primary_entity` / `comparison_entities` fields to SwotAnalysis model
- Wire new form fields (primary + comparison inputs) through router →
utils → run_agent
- Render entity badges ("vs" header) in result template; fix pre-existing
bug where iterating model.dict() leaked the `analysis` string into the
SWOT card grid
- Add comparison-input and entity-badge SCSS components; recompile CSS
- Pin requires-python >=3.12 in pyproject.toml; lock tavily-python 0.7.21
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>