feat(dashboard): add cache token tracking and running totals panel
Adds cache_read and cache_write token directions throughout the
observability stack so Anthropic prompt-cache billing is visible.
- model/metrics.go: TokensCacheRead, TokensCacheWrite, TokenRateCacheRead,
TokenRateCacheWrite fields on MetricSnapshot
- collector: reads direction=cache_read/cache_write from
zai_proxy_tokens_total Prometheus metric
- frontend types.ts: matching TS fields
- TokenPanel: rewritten to show all 4 directions (input, output,
cache_read, cache_write) on the rate chart; running-total summary
strip above the chart shows window totals (e.g. "5h window: 1.2M
input / 340k output / 89k cache_read / 12k cache_write")
Also updates docs/plan/plan.md to accurately document the full
dashboard architecture (backend API, storage schema, SSE hub,
frontend panels, Grafana layer, env vars).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>