tokentracker-cli 0.50.1 → 0.50.3

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 (43) hide show
  1. package/dashboard/dist/assets/{ActivityHeatmap-Csg0JY68.js → ActivityHeatmap-0q7X-MU0.js} +1 -1
  2. package/dashboard/dist/assets/{Card-BDI8Fbh9.js → Card-COkgCx0E.js} +1 -1
  3. package/dashboard/dist/assets/{DashboardPage-woYtbruG.js → DashboardPage-d7iWJ8BP.js} +1 -1
  4. package/dashboard/dist/assets/{DevicePage-EjJbP8Br.js → DevicePage-CcnR7jrM.js} +1 -1
  5. package/dashboard/dist/assets/{DialogTitle-D66QJAs3.js → DialogTitle-KHKLQQwO.js} +1 -1
  6. package/dashboard/dist/assets/{FadeIn-D3DCx8y6.js → FadeIn-DV7Q4VG6.js} +1 -1
  7. package/dashboard/dist/assets/{HeaderGithubStar-DpuKyZW3.js → HeaderGithubStar-SNJgZ30E.js} +1 -1
  8. package/dashboard/dist/assets/{IpCheckPage-Dz3YjhM0.js → IpCheckPage-D6M_bYmt.js} +1 -1
  9. package/dashboard/dist/assets/{LandingPage-B5UjGCVn.js → LandingPage-DUrzXT0k.js} +1 -1
  10. package/dashboard/dist/assets/{LeaderboardAvatar-C1HvZXs0.js → LeaderboardAvatar-Dt95f7Gi.js} +1 -1
  11. package/dashboard/dist/assets/{LeaderboardPage-CIp04vrj.js → LeaderboardPage-BGFhnXmS.js} +3 -3
  12. package/dashboard/dist/assets/{LeaderboardProfileModal-BH31dBaK.js → LeaderboardProfileModal-OOywYvPV.js} +1 -1
  13. package/dashboard/dist/assets/{LeaderboardProfilePage-DpXj5L5i.js → LeaderboardProfilePage-C_cRxtzp.js} +1 -1
  14. package/dashboard/dist/assets/{LimitsPage-DVg3GfTr.js → LimitsPage-B-gnXm50.js} +1 -1
  15. package/dashboard/dist/assets/{LocalOnlyNotice-BADyYIuM.js → LocalOnlyNotice-Bcl3gqFG.js} +1 -1
  16. package/dashboard/dist/assets/{LoginPage-BId7DDhf.js → LoginPage-CdgZOU88.js} +1 -1
  17. package/dashboard/dist/assets/{PopoverPopup-BQhCMi7D.js → PopoverPopup-HVN1F-x1.js} +1 -1
  18. package/dashboard/dist/assets/{ResetPasswordPage-Bgj2woMZ.js → ResetPasswordPage-77jAYJBd.js} +1 -1
  19. package/dashboard/dist/assets/{Select-BRQHUMnI.js → Select-BKFKUG-i.js} +1 -1
  20. package/dashboard/dist/assets/{SelectItemText-DKPqC7Id.js → SelectItemText-Dxxa2xhF.js} +1 -1
  21. package/dashboard/dist/assets/{SettingsPage-D7LxfBPd.js → SettingsPage-DsP93J03.js} +1 -1
  22. package/dashboard/dist/assets/{SkillsPage-cFXqx_rg.js → SkillsPage-DjH3G8ID.js} +1 -1
  23. package/dashboard/dist/assets/{WidgetsPage-D6wEB36p.js → WidgetsPage-cv08fTrH.js} +1 -1
  24. package/dashboard/dist/assets/{WrappedPage-C6tq3AaH.js → WrappedPage-CiDz9X1b.js} +1 -1
  25. package/dashboard/dist/assets/{agent-logos-CjZOhWL1.js → agent-logos-Cc9OmNAL.js} +1 -1
  26. package/dashboard/dist/assets/{arrow-up-right-BVQI0Szz.js → arrow-up-right-BVuZproE.js} +1 -1
  27. package/dashboard/dist/assets/{download-45UoPdKK.js → download-WoUoOacO.js} +1 -1
  28. package/dashboard/dist/assets/{info-ClM58qOx.js → info-DA2yuYir.js} +1 -1
  29. package/dashboard/dist/assets/{main-CR3s46Km.js → main-aM1XUmtT.js} +2 -2
  30. package/dashboard/dist/assets/{use-limits-display-prefs-Boy1oEqT.js → use-limits-display-prefs-C6F8uAzS.js} +1 -1
  31. package/dashboard/dist/assets/{use-native-settings-CGKAtYGs.js → use-native-settings-CGOpLzIg.js} +1 -1
  32. package/dashboard/dist/assets/{use-usage-limits-kGnhUHc-.js → use-usage-limits-BWfbnY78.js} +1 -1
  33. package/dashboard/dist/assets/{useCurrency-xorCxnW3.js → useCurrency-D_NuT89g.js} +1 -1
  34. package/dashboard/dist/assets/{useScrollLock-B0eyFEUR.js → useScrollLock-BAbGBHiu.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/local-api.js +76 -4
  39. package/src/lib/pricing/curated-overrides.json +1 -0
  40. package/src/lib/pricing/matcher.js +27 -0
  41. package/src/lib/pricing/seed-snapshot.json +1 -1
  42. package/src/lib/subscriptions.js +3 -3
  43. package/src/lib/usage-limits.js +7 -1
@@ -217,7 +217,7 @@ function readClaudeCodeCredentialsFile({ home, fsReader } = {}) {
217
217
  }
218
218
  }
219
219
 
220
- function detectClaudeCodeCredentialsPresence({ platform, securityRunner, home, fsReader } = {}) {
220
+ function detectClaudeCodeCredentialsPresence({ platform = process.platform, securityRunner, home, fsReader } = {}) {
221
221
  if (platform === "darwin") {
222
222
  for (const service of CLAUDE_CODE_KEYCHAIN_SERVICES) {
223
223
  const present = probeMacosKeychainGenericPassword({
@@ -273,7 +273,7 @@ function extractClaudeKeychainSubscription(payload) {
273
273
  return { subscriptionType, rateLimitTier };
274
274
  }
275
275
 
276
- function detectClaudeCodeSubscriptionDetails({ platform, securityRunner, home, fsReader } = {}) {
276
+ function detectClaudeCodeSubscriptionDetails({ platform = process.platform, securityRunner, home, fsReader } = {}) {
277
277
  const rawPayloads = [];
278
278
  if (platform === "darwin") {
279
279
  for (const service of CLAUDE_CODE_KEYCHAIN_SERVICES) {
@@ -364,7 +364,7 @@ async function detectOpenclawSessionIntegration({ home, env }) {
364
364
  };
365
365
  }
366
366
 
367
- function readClaudeCodeAccessToken({ platform, securityRunner, home, fsReader } = {}) {
367
+ function readClaudeCodeAccessToken({ platform = process.platform, securityRunner, home, fsReader } = {}) {
368
368
  if (platform === "darwin") {
369
369
  for (const service of CLAUDE_CODE_KEYCHAIN_SERVICES) {
370
370
  try {
@@ -1922,6 +1922,8 @@ async function fetchAntigravityLimits({ home, commandRunner, requestFn, timeoutM
1922
1922
  return finalize(modelConfigs, { fallbackToConfigs: true });
1923
1923
  }
1924
1924
  } catch (error) {
1925
+ const cached = readAntigravityLimitsCache({ home, nowMs });
1926
+ if (cached) return cached;
1925
1927
  const message = error?.message === "timeout"
1926
1928
  ? "Antigravity quota request timed out."
1927
1929
  : error?.message || "Unknown error";
@@ -2144,7 +2146,11 @@ async function fetchUsageLimitsUncached({
2144
2146
  claude: withPlanLabel(claude, claudePlanType, "Claude"),
2145
2147
  codex: withPlanLabel(codex, codex.plan_type, "Codex"),
2146
2148
  cursor: withPlanLabel(cursor, cursor.membership_type, "Cursor"),
2147
- kimi: withPlanLabel(kimi, kimi.subscription_type || kimi.membership_level, "Kimi"),
2149
+ // Kimi's subType (TYPE_PURCHASE/TYPE_EVENT) is the credit *source*, not a plan
2150
+ // tier, and membership.level is an opaque enum (LEVEL_INTERMEDIATE) with no
2151
+ // authoritative human-readable plan mapping. Both rendered as garbage like
2152
+ // "Kimi Type_event" (issue #130), so show the bare brand instead.
2153
+ kimi: withPlanLabel(kimi, null, "Kimi"),
2148
2154
  gemini: withPlanLabel(gemini, gemini.account_plan, "Gemini"),
2149
2155
  kiro: withPlanLabel(kiro, kiro.plan_name, "Kiro"),
2150
2156
  antigravity: withPlanLabel(antigravity, antigravity.account_plan, "Antigravity"),