tokentracker-cli 0.56.0 → 0.57.1

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 (47) hide show
  1. package/README.ja.md +5 -3
  2. package/README.ko.md +5 -3
  3. package/README.md +5 -3
  4. package/README.zh-CN.md +5 -3
  5. package/dashboard/dist/assets/{ActivityHeatmap-B_tfEHcm.js → ActivityHeatmap-BvbV3_J7.js} +1 -1
  6. package/dashboard/dist/assets/{Card-D-kLfqyr.js → Card-DJZ6ntik.js} +1 -1
  7. package/dashboard/dist/assets/{DashboardPage-C97dctZq.js → DashboardPage-Bu3v5Fm2.js} +1 -1
  8. package/dashboard/dist/assets/{DevicePage-B36WBvsn.js → DevicePage-DW6XIKeU.js} +1 -1
  9. package/dashboard/dist/assets/{DialogTitle--VIyiTEE.js → DialogTitle-BsrlMQVP.js} +1 -1
  10. package/dashboard/dist/assets/{FadeIn-B8pvdF9J.js → FadeIn-XjqQkcHf.js} +1 -1
  11. package/dashboard/dist/assets/{HeaderGithubStar-B0gHTi9N.js → HeaderGithubStar-DcwDZDfU.js} +1 -1
  12. package/dashboard/dist/assets/{IpCheckPage-Bq6MMJHQ.js → IpCheckPage-DwWHgam0.js} +1 -1
  13. package/dashboard/dist/assets/{LandingPage-CZIEkNWt.js → LandingPage-BqtWjGwE.js} +1 -1
  14. package/dashboard/dist/assets/{LeaderboardAvatar-BMRcGGFZ.js → LeaderboardAvatar-BeBtwC-_.js} +1 -1
  15. package/dashboard/dist/assets/{LeaderboardPage-B5ffZ11y.js → LeaderboardPage-0TwqZOxu.js} +3 -3
  16. package/dashboard/dist/assets/{LeaderboardProfileModal-Bz2n03P4.js → LeaderboardProfileModal-3HwkYdbM.js} +1 -1
  17. package/dashboard/dist/assets/{LeaderboardProfilePage-BP5loLjy.js → LeaderboardProfilePage-865y5FBU.js} +1 -1
  18. package/dashboard/dist/assets/{LimitsPage-DzJSi6xG.js → LimitsPage-CfGYwdDz.js} +1 -1
  19. package/dashboard/dist/assets/{LocalOnlyNotice-CvfM7Yeu.js → LocalOnlyNotice-CTKip6yZ.js} +1 -1
  20. package/dashboard/dist/assets/{LoginPage-D2LALlWv.js → LoginPage-DhfoXUgm.js} +1 -1
  21. package/dashboard/dist/assets/{PopoverPopup-BAT6qwPl.js → PopoverPopup-3YotW-4M.js} +1 -1
  22. package/dashboard/dist/assets/{ResetPasswordPage-s76Qggro.js → ResetPasswordPage-CqEEo2VL.js} +1 -1
  23. package/dashboard/dist/assets/{Select-CMEwM-Mo.js → Select-BjnA__CB.js} +1 -1
  24. package/dashboard/dist/assets/{SelectItemText-s-8ZSDQn.js → SelectItemText-CoQ0e4TL.js} +1 -1
  25. package/dashboard/dist/assets/{SettingsPage-BKzrvCej.js → SettingsPage-ushnnb65.js} +1 -1
  26. package/dashboard/dist/assets/{SkillsPage-BX5iuYSx.js → SkillsPage-CW4mBNzt.js} +1 -1
  27. package/dashboard/dist/assets/{WidgetsPage-CBD2lBZ1.js → WidgetsPage-BiwEsW3y.js} +1 -1
  28. package/dashboard/dist/assets/{WrappedPage-DpNAeMIM.js → WrappedPage-vu2gEGcG.js} +1 -1
  29. package/dashboard/dist/assets/{agent-logos-Bggjr2yj.js → agent-logos-CvsRxSzl.js} +1 -1
  30. package/dashboard/dist/assets/{arrow-up-right-C6z7x7NL.js → arrow-up-right-DwYMKA3i.js} +1 -1
  31. package/dashboard/dist/assets/{download-DBjVOuOZ.js → download-BpLBXlyg.js} +1 -1
  32. package/dashboard/dist/assets/{info-DJ0Ty3Yt.js → info-D7gs3LAC.js} +1 -1
  33. package/dashboard/dist/assets/{main-Cqhrkqr2.js → main-D2iJg7iA.js} +2 -2
  34. package/dashboard/dist/assets/{use-limits-display-prefs-DddAHmHH.js → use-limits-display-prefs-BDCL1zsb.js} +1 -1
  35. package/dashboard/dist/assets/{use-native-settings-Cha6She4.js → use-native-settings-C-JvsUqt.js} +1 -1
  36. package/dashboard/dist/assets/{use-usage-limits-BJXjE59K.js → use-usage-limits-DfKKdPYm.js} +1 -1
  37. package/dashboard/dist/assets/{useCurrency-C63XmlQt.js → useCurrency-CAzf_Pmi.js} +1 -1
  38. package/dashboard/dist/assets/{useScrollLock-CHF80tR1.js → useScrollLock-DNuJyLo9.js} +1 -1
  39. package/dashboard/dist/brand-logos/mimo.svg +4 -0
  40. package/dashboard/dist/index.html +1 -1
  41. package/dashboard/dist/share.html +1 -1
  42. package/package.json +2 -2
  43. package/src/commands/init.js +13 -0
  44. package/src/commands/status.js +11 -0
  45. package/src/commands/sync.js +199 -0
  46. package/src/lib/pricing/seed-snapshot.json +1 -1
  47. package/src/lib/rollout.js +31 -0
@@ -2520,6 +2520,36 @@ function readOpencodeDbMessages(dbPath, sqliteOptions = {}) {
2520
2520
  return out;
2521
2521
  }
2522
2522
 
2523
+ // mimocode mirrors the user's Claude Code + claude-mem history into its own
2524
+ // `message` table — via an explicit `claude_import` AND a live observer /
2525
+ // session sync — so the overwhelming majority of rows are anthropic-endpoint
2526
+ // turns (providerID="anthropic") the Claude parser ALREADY counts as
2527
+ // source=claude. On the dev's box that's ~3.9B mirrored tokens vs ~22M genuine
2528
+ // mimo tokens. Counting the mirror under "mimo" double-counts and mislabels
2529
+ // Claude usage (user saw claude-* rows under the MIMO provider).
2530
+ //
2531
+ // The discriminator is providerID, NOT the model id. mimo's own runtime tags
2532
+ // turns providerID="mimo" (its auto router) or "xiaomi". providerID="anthropic"
2533
+ // means the turn went through a Claude-compatible endpoint — plain Claude Code,
2534
+ // OR a mimo-named model the user picked IN Claude Code (e.g. model=mimo-v2.5-pro
2535
+ // run inside Claude Code, logged in ~/.claude, counted as source=claude). Keying
2536
+ // off the model id would wrongly re-count that mimo-v2.5-pro. claude_import is
2537
+ // irrelevant — it never covers the observer/session mirror; the provider rule
2538
+ // subsumes it.
2539
+ function isMimoNativeMessage(data) {
2540
+ if (!data) return false;
2541
+ const provider = String(data.providerID || "").toLowerCase();
2542
+ return provider === "mimo" || provider === "xiaomi";
2543
+ }
2544
+
2545
+ // Read only genuine mimo assistant messages (mimo's own models), dropping the
2546
+ // mirrored Claude/claude-mem rows. See isMimoNativeMessage for why.
2547
+ function readMimoDbMessages(dbPath, sqliteOptions = {}) {
2548
+ if (!dbPath || !fssync.existsSync(dbPath)) return [];
2549
+ const all = readOpencodeDbMessages(dbPath, sqliteOptions);
2550
+ return all.filter((m) => isMimoNativeMessage(m.data));
2551
+ }
2552
+
2523
2553
  async function parseOpencodeDbIncremental({
2524
2554
  dbMessages,
2525
2555
  cursors,
@@ -9033,6 +9063,7 @@ module.exports = {
9033
9063
  listGeminiSessionFiles,
9034
9064
  listOpencodeMessageFiles,
9035
9065
  readOpencodeDbMessages,
9066
+ readMimoDbMessages,
9036
9067
  resolveKiroDbPath,
9037
9068
  resolveKiroJsonlPath,
9038
9069
  resolveHermesPath,