# LLM-driven routing instead of an in-extension rule classifier

The extension does not classify queries or pick providers itself. The calling LLM selects a provider via the `provider` parameter, guided by `promptGuidelines` generated from each provider's self-declared `searchHint`/`fetchHint`. When the LLM does not pass `provider`, a cost-priority fallback chain is tried. The previous `router.ts` (regex intent classifier + per-intent provider mapping) is removed entirely.

This was a deliberate choice, not a simplification oversight. Rule-based routing is fast (sub-millisecond) and deterministic for pattern-shaped queries (tickers, CVEs, DOIs), but the rules are hardcoded and cannot be configured by the user, and there is no way to guarantee they are correct — a wrong rule silently routes every matching query to the wrong provider. Handing the decision to the LLM trades a small latency/accuracy cost on obvious-pattern queries for the ability to route nuanced queries correctly and to adapt without code changes. The fallback chain covers the case where the LLM does not specify a provider.
