Closes#434
## Summary
Adds Pydantic-based validation at agent input/output boundaries to:
- Catch validation errors early with clear error messages
- Provide strict schema enforcement for agent outputs
- Support graceful fallback when validation fails
## Changes
1. **New module: **
- — validates analyst output with minimum length checks
- — validates research debate state
- — validates risk management debate state
- — validates final trade decisions (BUY/SELL/HOLD)
- — validates agent input (ticker, date format)
- — strict validation (raises on error)
- — graceful fallback (adds error field)
2. **Updated **
- Added conditional import of validation helpers
- flag for feature detection
3. **Added to dependencies**
4. **Example: **
- Shows how to wrap existing analyst with validation
## Design Decisions
- **Safe by default**: Uses which never raises
- **Optional**: Validation is import-guarded; code works without pydantic
- **Non-breaking**: Existing code continues to work; validation is additive
- **Clear errors**: Validation messages explain exactly what failed
## Testing
Built by Laboon 🐋 — AI Assistant powered by Xiaomi MiMo v2 Pro
- Point requirements.txt to pyproject.toml as single source of truth
- Resolve welcome.txt path relative to module for CLI portability
- Include cli/static files in package build
- Extract shared normalize_content for OpenAI Responses API and
Gemini 3 list-format responses into base_client.py
- Update README install and CLI usage instructions
- OpenAI: add GPT-5.4, GPT-5.4 Pro; remove o-series and legacy GPT-4o
- Anthropic: add Claude Opus 4.6, Sonnet 4.6; remove legacy 4.1/4.0/3.x
- Google: add Gemini 3.1 Pro, 3.1 Flash Lite; remove deprecated
gemini-3-pro-preview and Gemini 2.0 series
- xAI: clean up model list to match current API
- Simplify UnifiedChatOpenAI GPT-5 temperature handling
- Add missing tradingagents/__init__.py (fixes pip install building)