Files
routstr-core/tests
redshift 19a92568b7 feat(ehbp): surface tinfoil max_tokens via header for balance discounting
EHBP/encrypted tinfoil requests have an opaque, HPKE-sealed body, so the
proxy cannot read the client's completion cap to size the required balance.
The proxy previously required the full, context-window-sized
max_completion_cost regardless of what the client requested, causing 402
insufficient-balance errors for users who capped their tokens.

Add client-supplied `X-Routstr-Max-Tokens` (mirroring `X-Routstr-Model`)
and thread it into `calculate_discounted_max_cost` so the required balance
scales with the requested completion cap without decrypting the body:

- proxy reads the header on EHBP requests and passes it as the discount
  override (with `max_completion_tokens` body fallback for plain requests).
- a present header below the 64k enclave floor (or unparseable/<=0) is
  rejected with a 400 invalid_request, matching Tinfoil's minimum cap.
- the header is stripped before being forwarded to the enclave.
2026-08-17 08:24:48 +01:00
..
2025-08-06 20:31:55 -03:00