tokentracker-cli 0.43.0 → 0.44.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/README.md +1 -1
  2. package/dashboard/dist/assets/{ActivityHeatmap-0IDxIr7i.js → ActivityHeatmap-C2y1lgOo.js} +1 -1
  3. package/dashboard/dist/assets/{Card-hVCKEGdC.js → Card-BJVoMVdB.js} +1 -1
  4. package/dashboard/dist/assets/{DashboardPage-C3QvJSI2.js → DashboardPage-NcjsaIbt.js} +1 -1
  5. package/dashboard/dist/assets/{DevicePage-UVSutySl.js → DevicePage-EHZwN0AA.js} +1 -1
  6. package/dashboard/dist/assets/{DialogTitle-D0S8c1BO.js → DialogTitle-DVWJF7Sh.js} +1 -1
  7. package/dashboard/dist/assets/{FadeIn-anio8NgI.js → FadeIn-DtXdVuFa.js} +1 -1
  8. package/dashboard/dist/assets/{HeaderGithubStar-wRjA_Fvu.js → HeaderGithubStar-Cj_NuY82.js} +1 -1
  9. package/dashboard/dist/assets/{IpCheckPage-vl0aIVv0.js → IpCheckPage-DZ4te6Pi.js} +1 -1
  10. package/dashboard/dist/assets/{LandingPage-CJO4q92s.js → LandingPage-CR9hpOA8.js} +1 -1
  11. package/dashboard/dist/assets/{LeaderboardAvatar-CjPVgiDo.js → LeaderboardAvatar-DsQv0oYJ.js} +1 -1
  12. package/dashboard/dist/assets/{LeaderboardPage-DiQn0DqL.js → LeaderboardPage-C6pR-fls.js} +3 -3
  13. package/dashboard/dist/assets/{LeaderboardProfileModal-yovVjgnB.js → LeaderboardProfileModal-DrAB9Pof.js} +1 -1
  14. package/dashboard/dist/assets/{LeaderboardProfilePage-C0vqt4m5.js → LeaderboardProfilePage-CMBVCK_9.js} +1 -1
  15. package/dashboard/dist/assets/{LimitsPage-8o294HKr.js → LimitsPage-CMAgr4sd.js} +1 -1
  16. package/dashboard/dist/assets/{LocalOnlyNotice-BQsPhRvE.js → LocalOnlyNotice-DysLhDFE.js} +1 -1
  17. package/dashboard/dist/assets/{LoginPage-D8hQf3xT.js → LoginPage-jh8YcJtZ.js} +1 -1
  18. package/dashboard/dist/assets/{PopoverPopup-rhSAh0x6.js → PopoverPopup-DJt7HnL-.js} +1 -1
  19. package/dashboard/dist/assets/{Select-ByLRQqzg.js → Select-16iq_C1U.js} +1 -1
  20. package/dashboard/dist/assets/{SelectItemText-CHHy8UA1.js → SelectItemText-Bwctpnf1.js} +1 -1
  21. package/dashboard/dist/assets/{SettingsPage-DGyuX3ua.js → SettingsPage-BvA-0-6K.js} +1 -1
  22. package/dashboard/dist/assets/{SkillsPage-CMsfSZar.js → SkillsPage-BCgd79rI.js} +1 -1
  23. package/dashboard/dist/assets/{WidgetsPage-DavgYHA1.js → WidgetsPage-DecKPwRh.js} +1 -1
  24. package/dashboard/dist/assets/{WrappedPage-BARpWxxH.js → WrappedPage-CzyRJXb4.js} +1 -1
  25. package/dashboard/dist/assets/{agent-logos-BsEMlmFc.js → agent-logos-3S7JvH_A.js} +1 -1
  26. package/dashboard/dist/assets/{arrow-up-right-Nh5NXsRd.js → arrow-up-right-SUDWxkx-.js} +1 -1
  27. package/dashboard/dist/assets/{download-Bz-ad2Zi.js → download-B06KpWLb.js} +1 -1
  28. package/dashboard/dist/assets/{info-Edlzr0qR.js → info-BYuw8wyW.js} +1 -1
  29. package/dashboard/dist/assets/{main-CGYVeoRd.js → main-CZ7INQ5C.js} +2 -2
  30. package/dashboard/dist/assets/{use-limits-display-prefs-Cc82ZSkQ.js → use-limits-display-prefs-5el6WphI.js} +1 -1
  31. package/dashboard/dist/assets/{use-native-settings-rTdpowec.js → use-native-settings-BsOpSNnV.js} +1 -1
  32. package/dashboard/dist/assets/{use-usage-limits-DFjNciSe.js → use-usage-limits-BgRs0aJ1.js} +1 -1
  33. package/dashboard/dist/assets/{useCurrency-BY5HnhWy.js → useCurrency-CjB3wfFx.js} +1 -1
  34. package/dashboard/dist/assets/{useScrollLock-oNpe5Ufe.js → useScrollLock-Dyho5BJU.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/commands/status.js +13 -2
  39. package/src/commands/sync.js +1 -1
  40. package/src/lib/pricing/matcher.js +33 -5
  41. package/src/lib/pricing/seed-snapshot.json +1 -1
  42. package/src/lib/rollout.js +19 -5
@@ -5229,7 +5229,7 @@ async function parseRoocodeIncremental({
5229
5229
  }
5230
5230
 
5231
5231
  // ─────────────────────────────────────────────────────────────────────────────
5232
- // Zed Agent (hosted models only, provider == "zed.dev")
5232
+ // Zed Agent (all model providers hosted "zed.dev" and bring-your-own alike)
5233
5233
  //
5234
5234
  // Data: SQLite at
5235
5235
  // macOS: ~/Library/Application Support/Zed/threads/threads.db
@@ -5249,11 +5249,21 @@ async function parseRoocodeIncremental({
5249
5249
  // antigravity cumulative-delta pattern: keep last-seen totals per thread in
5250
5250
  // `cursors.zed.threadTotals`, emit (current - previous) on each sync.
5251
5251
  //
5252
- // External ACP agents are skipped (their CLIs already report to us through
5253
- // their own parserscounting them via the Zed UI would double-count).
5252
+ // Providers already reported by a dedicated parser are skipped to avoid
5253
+ // double-counting (see ZED_DOUBLE_COUNTED_PROVIDERSempty today). Model names
5254
+ // are normalized for pricing in the matcher (normalizeZedModel), not here, so
5255
+ // the real Zed model name is preserved for display.
5254
5256
  // ─────────────────────────────────────────────────────────────────────────────
5255
5257
 
5256
- const ZED_HOSTED_PROVIDER = "zed.dev";
5258
+ // Providers whose usage is ALSO captured by a dedicated TokenTracker parser, so
5259
+ // counting them via the Zed thread store would double-count. Zed's native model
5260
+ // providers (zed.dev, copilot_chat, openai*, anthropic, google, ollama,
5261
+ // lmstudio, …) do NOT overlap: e.g. Zed's copilot_chat talks to the Copilot API
5262
+ // directly and never writes ~/.copilot/otel, which is what the Copilot parser
5263
+ // reads. The set is therefore empty today; it's the extension point if Zed ever
5264
+ // persists external-ACP-agent usage (Claude Code / Codex run inside Zed) into
5265
+ // threads.db with a recognizable provider id.
5266
+ const ZED_DOUBLE_COUNTED_PROVIDERS = new Set();
5257
5267
  const MAX_ZED_THREAD_JSON_BYTES = 32 * 1024 * 1024;
5258
5268
 
5259
5269
  function resolveZedDbPath(env = process.env) {
@@ -5347,7 +5357,11 @@ function extractZedTotals(thread) {
5347
5357
  const model = thread.model;
5348
5358
  if (!model || typeof model !== "object") return null;
5349
5359
  const provider = typeof model.provider === "string" ? model.provider.trim() : "";
5350
- if (provider.toLowerCase() !== ZED_HOSTED_PROVIDER) return null;
5360
+ // Count usage for ALL providers — Zed-hosted (zed.dev) and bring-your-own
5361
+ // (copilot_chat, openai-subscribed, anthropic, lmstudio, …) alike. Only skip
5362
+ // providers whose usage a dedicated parser already reports (see
5363
+ // ZED_DOUBLE_COUNTED_PROVIDERS).
5364
+ if (provider && ZED_DOUBLE_COUNTED_PROVIDERS.has(provider.toLowerCase())) return null;
5351
5365
  const modelId = typeof model.model === "string" ? model.model.trim() : "";
5352
5366
  if (!modelId) return null;
5353
5367