M4-012: In ChatGateway.handleMessage(), call routingEngine.resolve() before
creating a new agent session when no explicit provider/model is supplied.
The routing decision's provider/model are passed to AgentService.createSession().
M4-007: Add sticky per-session /model override via ChatGateway.setModelOverride().
When active, the routing engine is bypassed entirely. CommandExecutorService
handleModel() is updated to set/clear the override. /model clear resets to
automatic routing. /model with no args shows the current override or usage hint.
M4-008: Include routingDecision in the session:info socket event.
Add RoutingDecisionInfo to SessionInfoPayload in @mosaic/types.
useSocket() tracks the routing decision in state and the BottomBar TUI component
displays a "Routed: <model> (<reason>)" line when a routing decision is present.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>