mirror of
https://github.com/multica-ai/multica.git
synced 2026-07-29 06:28:23 +02:00
* feat(usage): price the published xAI Grok catalog Grok usage resolved to no pricing row, so every Grok token contributed $0.00 to cost totals and the models sat permanently in the unmapped diagnostic. Add the six SKUs xAI publishes rates for. Short-context rates on purpose: xAI bills a request at 2x once its prompt reaches 200K tokens, but aggregated usage rows carry no per-request prompt sizes — the same trade-off the Anthropic `[1m]` context tag already takes. `grok-composer-*` ships in the Grok Build catalog but is absent from the price sheet, so it stays unmapped rather than inheriting a guessed rate. Source: https://docs.x.ai/developers/pricing Co-authored-by: multica-agent <github@multica.ai> * fix(usage): keep custom pricing editable after it is saved The custom-pricing dialog had exactly one entry point: the button inside the unmapped-models banner. That banner only rendered while something in the window was unpriced, and `resolvePricing` falls back to the custom store — so saving a rate for the last unmapped model made it resolve, the banner disappeared, and the saved rate could no longer be edited or removed. Clearing localStorage was the only way out, which also wiped every other override. Keep the bar mounted whenever there is something to manage: warning state while models are unpriced, a quiet row with an edit button once they all resolve but overrides exist. Hidden entirely otherwise. The existing store mock hard-coded `getCustomPricing` to undefined, so no test could ever observe a saved override; make it stateful and add the regression case. Co-authored-by: multica-agent <github@multica.ai> --------- Co-authored-by: Bohan-J <bohan@devv.ai> Co-authored-by: multica-agent <github@multica.ai>