okami.mom/albedo

git clone https://git.nkp.pet/okami.mom/albedo

nekomimi.petfeat(usage): time provider calls and show tok/s on the turn signoff0a3eddd

main
876 B20 linesraw
1// A usage event's timing reaches the CLI under the daemon's keys. A key renamed
2// on one side would drop every turn's rate without an error.
3package daemon
4
5import (
6	"encoding/json"
7	"testing"
8)
9
10func TestUsageEventKeepsTheRateTheDaemonReports(t *testing.T) {
11	raw := json.RawMessage(`{"type":"usage","sequence":1,"data":{"model":"m","observed_at":null,"prompt_tokens":10,"cached_prompt_tokens":null,"cache_write_tokens":null,"completion_tokens":100,"total_tokens":110,"elapsed_ms":2000,"tokens_per_second":50,"context_window_tokens":null,"cache_ttl_seconds":null,"cache_fade":[]}}`)
12	event, err := decodeChatEvent(raw)
13	if err != nil {
14		t.Fatal(err)
15	}
16	usage := event.Usage
17	if usage == nil || usage.ElapsedMs == nil || *usage.ElapsedMs != 2000 || usage.TokensPerSecond == nil || *usage.TokensPerSecond != 50 {
18		t.Fatalf("usage event lost its timing: %+v", usage)
19	}
20}