Commit fcd9e0c
authored
feat(vibe): read provider cache-hit tokens from session stats (#1309)
Mistral Vibe v2.23.2 (mistralai/mistral-vibe#969) started recording provider cache-hit (cached) tokens in the session stats written to `meta.json`. This teaches the Vibe parser to read them.
`stats.session_cached_tokens` is the provider cache-read count, reported as a subset of `session_prompt_tokens` (the OpenAI/Mistral `prompt_tokens` / `prompt_tokens_details.cached_tokens` wire shape). The parser now splits it out into the usage event's cache-read field and subtracts it from input tokens, so the cached prefix is priced at the discounted cache-read rate rather than the full input rate and is not double-counted. This mirrors the convention already used by the workbuddy and grok parsers.
Vibe exposes a single cached counter with no cache-creation breakdown, so `CacheCreationInputTokens` stays zero.
Reviewers should look at `vibeUsageEvents` in `internal/parser/vibe.go`. The format provenance entry in `docs/internal/session-format-sources.md` is updated in the same change.
Co-authored-by: Grégoire <verdie-g@users.noreply.github.com>1 parent 7449a01 commit fcd9e0c
4 files changed
Lines changed: 69 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
342 | 342 | | |
343 | 343 | | |
344 | 344 | | |
345 | | - | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
346 | 351 | | |
347 | 352 | | |
348 | 353 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1008 | 1008 | | |
1009 | 1009 | | |
1010 | 1010 | | |
1011 | | - | |
1012 | | - | |
1013 | | - | |
| 1011 | + | |
| 1012 | + | |
| 1013 | + | |
1014 | 1014 | | |
1015 | 1015 | | |
1016 | 1016 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
| 63 | + | |
63 | 64 | | |
64 | 65 | | |
65 | 66 | | |
| 67 | + | |
66 | 68 | | |
67 | 69 | | |
68 | 70 | | |
| |||
441 | 443 | | |
442 | 444 | | |
443 | 445 | | |
444 | | - | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
445 | 453 | | |
446 | 454 | | |
447 | 455 | | |
| |||
450 | 458 | | |
451 | 459 | | |
452 | 460 | | |
453 | | - | |
| 461 | + | |
454 | 462 | | |
455 | | - | |
| 463 | + | |
456 | 464 | | |
457 | 465 | | |
458 | 466 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
520 | 520 | | |
521 | 521 | | |
522 | 522 | | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
523 | 572 | | |
524 | 573 | | |
525 | 574 | | |
| |||
0 commit comments