The documented resolution order was 'built-in defaults -> models.json -> env ->
SDK args' with no mention of LiteLLM, which is misleading in a way that costs
users work: it reads as though editing models.json is the only way to correct a
wrong limit or price, when public models are resolved from LiteLLM and stay
current on their own.
Restated as an explicit first-match-wins list for both limits and pricing:
explicit config -> LiteLLM -> built-in tables -> pattern -> default, noting that
step 3 is a fallback for installs without LiteLLM (the dep is gated
python_version < '3.14') and models it doesn't know.
Also:
- Both trees used 'gpt-5: 256000' and 'gpt-5: [5.00, 15.00]' as the example
overrides. Both numbers are wrong (272K input, $1.25/$10.00) and gpt-5 is now
a known model, so the example taught readers to override a correct value with
a stale one. Swapped for a fine-tune and a private deployment -- the cases
configuration is actually for.
- Noted that limits are an INPUT budget (max_input_tokens), not the total
window: gpt-5 is 272K in + 128K out, not 400K of prompt room.
- Added gpt-4.1 / gpt-5 / o4 to the pattern-inference table and stated that
matching prefers the most specific prefix, so gpt-4.1 is not treated as gpt-4.
Docs-only; no code change.