tokentracker-cli 0.58.0 → 0.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dashboard/dist/assets/{ActivityHeatmap--h7iLeSz.js → ActivityHeatmap-DrF_K5ys.js} +1 -1
  2. package/dashboard/dist/assets/{Card-KutJI7Kb.js → Card-B13p4G_t.js} +1 -1
  3. package/dashboard/dist/assets/DashboardPage-BCWtoeRf.js +19 -0
  4. package/dashboard/dist/assets/{DevicePage-Bvf6grjO.js → DevicePage-Be88eLBY.js} +1 -1
  5. package/dashboard/dist/assets/{DialogTitle-Cd8SHRAb.js → DialogTitle-BZmopQRt.js} +1 -1
  6. package/dashboard/dist/assets/{FadeIn-D_0IpM7h.js → FadeIn-BEym_KpF.js} +1 -1
  7. package/dashboard/dist/assets/{HeaderGithubStar-wllgUDeU.js → HeaderGithubStar-Ckhzj9HH.js} +1 -1
  8. package/dashboard/dist/assets/{IpCheckPage-oUeKrhWf.js → IpCheckPage-CJb8fFzg.js} +1 -1
  9. package/dashboard/dist/assets/{LandingPage-BqzdZPJZ.js → LandingPage-CjTv2ISs.js} +1 -1
  10. package/dashboard/dist/assets/{LeaderboardAvatar-Bib0pX-r.js → LeaderboardAvatar-Cf0GnSTi.js} +1 -1
  11. package/dashboard/dist/assets/{LeaderboardPage-BjLZyZb-.js → LeaderboardPage-rIE2Ygw4.js} +3 -3
  12. package/dashboard/dist/assets/LeaderboardProfileModal-CT876wK9.js +72 -0
  13. package/dashboard/dist/assets/{LeaderboardProfilePage-Df_jL82E.js → LeaderboardProfilePage-EyJsH0Yf.js} +1 -1
  14. package/dashboard/dist/assets/{LimitsPage-BhPNmv6R.js → LimitsPage-DNg_cqiC.js} +1 -1
  15. package/dashboard/dist/assets/{LocalOnlyNotice-B01hqlKr.js → LocalOnlyNotice-Dz8c-3ZD.js} +1 -1
  16. package/dashboard/dist/assets/{LoginPage-BjqX1wZg.js → LoginPage-iekpEtgT.js} +1 -1
  17. package/dashboard/dist/assets/{PopoverPopup-CWyN32rM.js → PopoverPopup-BhT2-G0O.js} +1 -1
  18. package/dashboard/dist/assets/{ResetPasswordPage-Bw7tWm1t.js → ResetPasswordPage-B69CFuJ-.js} +1 -1
  19. package/dashboard/dist/assets/{Select-DbBT6mPJ.js → Select-SwlPWXxZ.js} +1 -1
  20. package/dashboard/dist/assets/{SelectItemText-XGWezP4M.js → SelectItemText-DpUKUC8A.js} +1 -1
  21. package/dashboard/dist/assets/{SettingsPage-CrA-jBWs.js → SettingsPage-_spYM3Kx.js} +1 -1
  22. package/dashboard/dist/assets/{SkillsPage-CfYTgQMY.js → SkillsPage-CfTvatpr.js} +1 -1
  23. package/dashboard/dist/assets/{WidgetsPage-DjE_NMiT.js → WidgetsPage-Cs0kJgks.js} +1 -1
  24. package/dashboard/dist/assets/{WrappedPage-MciuOQFt.js → WrappedPage-9EChVGEl.js} +1 -1
  25. package/dashboard/dist/assets/{agent-logos-JyXME_ur.js → agent-logos-LiqKeIhs.js} +1 -1
  26. package/dashboard/dist/assets/{arrow-up-right-U8aUNwfl.js → arrow-up-right-B7ItQsbP.js} +1 -1
  27. package/dashboard/dist/assets/{download-CK8DaHH6.js → download-ZBU9wTAZ.js} +1 -1
  28. package/dashboard/dist/assets/{info-DF9b_Lut.js → info-CExabEBS.js} +1 -1
  29. package/dashboard/dist/assets/{main-4M5oNV2-.js → main-CgiMNMS_.js} +3 -3
  30. package/dashboard/dist/assets/{use-limits-display-prefs--1a77fnk.js → use-limits-display-prefs-bSTssszE.js} +1 -1
  31. package/dashboard/dist/assets/{use-native-settings-PZ_s8TF_.js → use-native-settings-C3pXNNqf.js} +1 -1
  32. package/dashboard/dist/assets/{use-usage-limits-B11QqFl7.js → use-usage-limits-8f1hUzNE.js} +1 -1
  33. package/dashboard/dist/assets/{useCurrency-CzRjastg.js → useCurrency-CrMUx8Pg.js} +1 -1
  34. package/dashboard/dist/assets/{useScrollLock-BXcNDJbM.js → useScrollLock-BaJCW9Ak.js} +1 -1
  35. package/dashboard/dist/index.html +1 -1
  36. package/dashboard/dist/share.html +1 -1
  37. package/package.json +1 -1
  38. package/src/lib/pricing/curated-overrides.json +4 -2
  39. package/src/lib/pricing/seed-snapshot.json +1 -1
  40. package/src/lib/rollout.js +22 -13
  41. package/dashboard/dist/assets/DashboardPage-CZS3KR2C.js +0 -19
  42. package/dashboard/dist/assets/LeaderboardProfileModal-GiTmpwyn.js +0 -72
@@ -2553,22 +2553,31 @@ function readMimoDbMessages(dbPath, sqliteOptions = {}) {
2553
2553
  // ZCode is Z.ai's (Zhipu) coding agent — another OpenCode-fork that stores
2554
2554
  // assistant messages in the identical `message` table schema
2555
2555
  // (~/.zcode/cli/db/db.sqlite). Its own agent runs GLM models through Z.ai /
2556
- // BigModel endpoints, tagged with a providerID like "builtin:zai-start-plan",
2557
- // "builtin:zai-coding-plan", or "builtin:bigmodel-coding-plan". ZCode can ALSO
2558
- // orchestrate bundled claude-code / codex / gemini-cli sub-agents; those turns
2559
- // carry providerID "anthropic"/"openai"/"google" and are already counted by the
2560
- // standalone Claude/Codex/Gemini parsers. Keep ONLY ZCode-native (Z.ai /
2561
- // BigModel / Zhipu) rows so we never double-count. Key off providerID, NEVER the
2562
- // model id a GLM model the user ran *inside* Claude Code is source=claude, so
2563
- // matching "glm" on the model would re-count it. Mirrors the Mimo discipline.
2556
+ // BigModel endpoints (providerID "builtin:zai-start-plan",
2557
+ // "builtin:bigmodel-coding-plan", …), but ZCode also lets users add CUSTOM
2558
+ // providers (a built-in feature beyond the Z.ai plan subscription) that point at
2559
+ // ANY model MiMo, Sakana Fugu, any OpenAI-compatible proxy. A user-defined
2560
+ // provider is assigned a random UUID as its providerID (observed on a real box:
2561
+ // model "mimo-v2.5-pro" under providerID "265956bf-…"), so an allowlist of known
2562
+ // vendor keywords can NEVER match it and silently drops every custom-provider
2563
+ // turn (issue #216). Those turns live ONLY in this DB, so we must keep them or
2564
+ // they go uncounted entirely. The exception is the bundled
2565
+ // claude-code / codex / gemini-cli sub-agents ZCode can orchestrate: those carry
2566
+ // providerID "anthropic"/"openai"/"google" and write to ~/.claude / ~/.codex /
2567
+ // ~/.gemini, so the standalone Claude/Codex/Gemini parsers already count them —
2568
+ // DROP those here to avoid double-counting. Hence a blocklist (exclude the three
2569
+ // direct vendors), not an allowlist that would silently miss every third-party
2570
+ // model. Key off providerID, NEVER the model id — a GLM/Claude model the user
2571
+ // ran *inside* Claude Code is source=claude, so matching the model name would
2572
+ // re-count it. Mirrors the Mimo discipline.
2564
2573
  function isZcodeNativeMessage(data) {
2565
2574
  if (!data) return false;
2566
2575
  const provider = String(data.providerID || "").toLowerCase();
2567
- return (
2568
- provider.includes("zai") ||
2569
- provider.includes("bigmodel") ||
2570
- provider.includes("zcode") ||
2571
- provider.includes("zhipu")
2576
+ if (!provider) return false;
2577
+ return !(
2578
+ provider.includes("anthropic") ||
2579
+ provider.includes("openai") ||
2580
+ provider.includes("google")
2572
2581
  );
2573
2582
  }
2574
2583