feat: add router foundation with task classification and arm selection
internal/router/ — core routing layer:
- Task classification: 10 types (boilerplate, generation, refactor,
review, unit_test, planning, orchestration, security_review, debug,
explain) with keyword heuristics and complexity scoring
- Arm registry: provider+model pairs with capabilities and cost
- Limit pools: shared resource budgets with scarcity multipliers,
optimistic reservation, use-it-or-lose-it discounting
- Heuristic selector: score = (quality × value) / effective_cost
Prefers tools, thinking for planning, penalizes small models on
complex tasks
- Router: Select() picks best feasible arm, ForceArm() for CLI override
Engine now routes through router.Select() when configured.
Wired into CLI — arm registered per --provider/--model flags.
20 router tests. 173 tests total across 13 packages.