Overview
Every application needs the same things from an LLM backend — swap providers without rewriting callers, survive a rate limit, keep one tenant from spending another's budget. Writing that per app means writing it badly several times. ModelDispatcher is the shared layer: one ModelProvider interface every backend implements, a fallback chain that intercepts exhaustion and escalates to the next candidate model transparently, and pre-flight token reservation reconciled after the call. It is the hub of this portfolio rather than a project beside it — KanDOne, HighFive, StepByLearn and JobFlowTracker all consume its published browser client, and AppMyTrip vendors it as a submodule.