Andrew Kaszubski
8522b4bd53
feat(agents): add Momentum Analyst with multi-TF analysis - Fixes #13
...
Implements specialized Momentum Analyst agent with:
- Multi-timeframe ROC (Rate of Change) analysis across periods
- ADX (Average Directional Index) trend strength measurement
- RSI momentum divergence detection for reversal signals
- create_momentum_analyst factory for LangChain integration
Tests: 47 unit tests covering ROC, ADX, RSI, divergence detection
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 17:12:01 +11:00
Andrew Kaszubski
ae7899a6fc
feat(dataflows): add data caching layer with rate limit awareness - Fixes #12
...
Implements [DATA-11] Data caching layer - FRED rate limits with:
- CacheEntry: Generic cache entries with TTL and metadata
- CacheStats: Hit/miss/stale statistics tracking
- RateLimitState: Per-source rate limit tracking with exponential backoff
- MemoryCache: In-memory LRU cache backend
- FileCache: File-based JSON cache backend
- DataCache: Main cache with source-specific TTLs and stale-while-rate-limited
- @cached decorator: Function result caching
Features:
- Multi-backend support (memory, file)
- TTL-based expiration with configurable per-source defaults
- Stale-while-revalidate when rate limited
- Thread-safe operations throughout
- 41 tests covering all components
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 16:51:48 +11:00
Andrew Kaszubski
2c802647e4
feat(dataflows): add vendor registry pattern for extensible data vendor routing - Fixes #11
...
Implements [DATA-10] Interface routing - add new data vendors with:
- VendorRegistry: Thread-safe singleton for centralized vendor registration
- VendorCapability enum: STOCK_DATA, FUNDAMENTALS, NEWS, MACROECONOMIC, etc.
- BaseVendor ABC: 3-stage lifecycle (transform_query, extract_data, transform_data)
- SimpleVendor: Wrapper for migrating existing vendor functions
- Decorators: @register_vendor, @vendor_method, @rate_limited, @with_retry, @cache_result
- RateLimiter: Thread-safe sliding window rate limiting
- 84 tests covering registry, base vendor, and decorators
Files:
- tradingagents/dataflows/vendor_registry.py (253 lines)
- tradingagents/dataflows/base_vendor.py (222 lines)
- tradingagents/dataflows/vendor_decorators.py (188 lines)
- tests/unit/dataflows/test_vendor_registry.py (30 tests)
- tests/unit/dataflows/test_base_vendor.py (27 tests)
- tests/unit/dataflows/test_vendor_decorators.py (27 tests)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 16:47:41 +11:00
Andrew Kaszubski
bbd85c91b6
feat(dataflows): add benchmark data module with SPY, sector ETFs, RS, correlation, beta - Fixes #10
2025-12-26 16:14:57 +11:00
Andrew Kaszubski
19171a4b31
feat(dataflows): add multi-timeframe OHLCV aggregation - Fixes #9
2025-12-26 15:48:40 +11:00
Andrew Kaszubski
4d693fb331
feat(dataflows): add FRED API integration for economic data - Fixes #8
2025-12-26 15:25:54 +11:00
Andrew Kaszubski
1ea006e41f
feat(db): add Trade model with CGT tracking and Australian FY support ( #6 ) - TradeSide/TradeStatus/TradeOrderType enums, 50% discount for >12mo holdings, multi-currency FX, 87 tests
2025-12-26 14:46:06 +11:00
Andrew Kaszubski
1c6c2fadf1
feat(db): add Settings model with risk profiles and alert preferences ( #5 ) - Implements RiskProfile enum, risk parameters, JSON alert_preferences, one-to-one User relationship, CheckConstraints, cascade delete, 43 tests
2025-12-26 14:16:42 +11:00
Andrew Kaszubski
0d09f15bd6
feat(db): add Portfolio model with LIVE/PAPER/BACKTEST types - Fixes #4
2025-12-26 13:46:39 +11:00
Andrew Kaszubski
e5575250df
feat(tests): add UAT and evaluation tests for agent outputs - Fixes #53
...
- Created tradingagents/utils/output_validator.py with ValidationResult dataclass
- Added validate_report_completeness(), validate_decision_quality() for content validation
- Added validate_debate_state(), validate_agent_state() for state coherence
- Created tests/unit/test_output_validators.py with 54 unit tests
- Created tests/e2e/test_uat_agent_outputs.py with 23 UAT scenarios
- Added agent state fixtures to tests/conftest.py (sample_agent_state, debates)
- Total: 77 tests covering report quality, signal extraction, and state integrity
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 11:38:37 +11:00
Andrew Kaszubski
5ea9e905c5
feat(tests): restructure tests into unit/integration/e2e directories - Fixes #50
...
- Moved 5 unit tests to tests/unit/ (exceptions, logging, report, docs, conftest)
- Moved 4 integration tests to tests/integration/ (openrouter, akshare, cli, deepseek)
- Created tests/e2e/ directory with README.md and conftest.py placeholder
- Added pytestmark = pytest.mark.unit/integration to all test files
- Updated pytest.ini with testpaths for new structure
- Updated docs/testing/README.md with new directory structure
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 11:04:20 +11:00
Andrew Kaszubski
36de8f0470
feat(tests): add pytest conftest.py hierarchy with shared fixtures - Fixes #49
...
- Created tests/conftest.py with 12 shared fixtures (environment mocks, LangChain/ChromaDB mocking, configuration)
- Created tests/unit/conftest.py with 6 unit-specific fixtures (data vendors, sample data)
- Created tests/integration/conftest.py with 2 integration fixtures (live ChromaDB, temp dirs)
- Added pytest.ini with 7 custom markers (unit, integration, e2e, llm, chromadb, slow, requires_api_key)
- Added tests/test_conftest_hierarchy.py with 83 tests validating fixture infrastructure
- Updated docs/testing/README.md and writing-tests.md with fixture usage documentation
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 10:40:30 +11:00