Currently brain.py contains a partial LOCAL_INTENTS dict with weather keyword checking. No separate router.py exists yet. Required:
- Build core/router.py as the single source of truth for intent classification
- Move all intent matching out of brain.py into router.py
- Wire Ollama local model (mistral) as the primary reasoning engine for web queries
- Claude API called only for complex reasoning and personality development
- DuckDuckGo scraping via Playwright as the web retrieval layer
Tier system: datetime → free, web lookup → scrape + Ollama, complex → Claude.
Acceptance criteria: Claude API not called for weather, time, date, calendar, or simple web lookups.
Currently brain.py contains a partial LOCAL_INTENTS dict with weather keyword checking. No separate router.py exists yet. Required:
Tier system: datetime → free, web lookup → scrape + Ollama, complex → Claude.
Acceptance criteria: Claude API not called for weather, time, date, calendar, or simple web lookups.