tokentracker-cli 1.5.4 → 1.5.5
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.
- package/dashboard/dist/assets/{AchievementBadge-CKNb_cwg.js → AchievementBadge-BYxdWhS1.js} +1 -1
- package/dashboard/dist/assets/{AchievementsPage-u9P8DXJI.js → AchievementsPage-Bv9o7Aj8.js} +2 -2
- package/dashboard/dist/assets/{AchievementsSection-BSCUJ4DR.js → AchievementsSection-DE5bZGxg.js} +1 -1
- package/dashboard/dist/assets/{BadgeDetailModal-Bg7cE3Zq.js → BadgeDetailModal-CgZaSVTp.js} +1 -1
- package/dashboard/dist/assets/{BotAnimated-C7D2WbQA.js → BotAnimated-CwhPfUBI.js} +1 -1
- package/dashboard/dist/assets/{Card-B4IqAhai.js → Card-Y7qaxMuE.js} +1 -1
- package/dashboard/dist/assets/{CloudCheckoutPage-P75pH9Ym.js → CloudCheckoutPage-DVl7jk6b.js} +1 -1
- package/dashboard/dist/assets/{CloudPage-DDEZfmZg.js → CloudPage-BnIvpHGH.js} +2 -2
- package/dashboard/dist/assets/{CommandPalette-CER_AklA.js → CommandPalette-CzMv2Zxn.js} +1 -1
- package/dashboard/dist/assets/{CommunityStatsModal-Cbb74eib.js → CommunityStatsModal-D8sOZqUc.js} +1 -1
- package/dashboard/dist/assets/{ConfirmModal-Q1ZQdZHt.js → ConfirmModal-Bun5xKMm.js} +1 -1
- package/dashboard/dist/assets/{Controls-DaGOfcoz.js → Controls-ltfnvkFW.js} +1 -1
- package/dashboard/dist/assets/{DashboardPage-CXI7RmxO.js → DashboardPage-C3Xu6_3t.js} +1 -1
- package/dashboard/dist/assets/{DateRangePopover-DSS1Ira_.js → DateRangePopover-e3gJYqFJ.js} +1 -1
- package/dashboard/dist/assets/{DevicePage-6zPLYydh.js → DevicePage-JgT16dEp.js} +1 -1
- package/dashboard/dist/assets/{DialogClose-DdCQ36LK.js → DialogClose-DeWert7h.js} +1 -1
- package/dashboard/dist/assets/DialogDescription-Ca6W3nCT.js +1 -0
- package/dashboard/dist/assets/{DialogTitle-BjP217Y1.js → DialogTitle-BfK_yOeR.js} +1 -1
- package/dashboard/dist/assets/{ElectricLogo-Dhq8PM4h.js → ElectricLogo-Bbev0Y8Q.js} +1 -1
- package/dashboard/dist/assets/{FadeIn-CGNbED4E.js → FadeIn-fypYWLDK.js} +1 -1
- package/dashboard/dist/assets/{HeaderGithubStar-DwqEFzb6.js → HeaderGithubStar-Cnil2Lbo.js} +1 -1
- package/dashboard/dist/assets/{HoverTooltip-CQZTgyQy.js → HoverTooltip-Bw_8tru-.js} +1 -1
- package/dashboard/dist/assets/{IpCheckPage-Bz09HXLn.js → IpCheckPage-CHnhUgA2.js} +1 -1
- package/dashboard/dist/assets/{LandingPage-DC-lZsYR.js → LandingPage-Bq4iQS6S.js} +2 -2
- package/dashboard/dist/assets/{LeaderboardPage-D8MpLM_t.js → LeaderboardPage-D42lUdw-.js} +2 -2
- package/dashboard/dist/assets/{LeaderboardProBadge-pdXgokhE.js → LeaderboardProBadge-eTKceT90.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardProfileModal-nHZLiE0m.js → LeaderboardProfileModal-D-3tRrOR.js} +3 -3
- package/dashboard/dist/assets/{LeaderboardProfilePage-BKv3oIAW.js → LeaderboardProfilePage-DkRCJoiA.js} +1 -1
- package/dashboard/dist/assets/{LimitsPage-TmRTgSCb.js → LimitsPage-dUXjP3_1.js} +1 -1
- package/dashboard/dist/assets/{LocalOnlyNotice-aF01udyR.js → LocalOnlyNotice-CtpjB6Z2.js} +1 -1
- package/dashboard/dist/assets/{LoginCard-BaroD0Ct.js → LoginCard-zrRd8o54.js} +1 -1
- package/dashboard/dist/assets/{LoginModal-0jgyMGVM.js → LoginModal-DNl5Rt1e.js} +1 -1
- package/dashboard/dist/assets/{LoginPage-BUx8U58i.js → LoginPage-BuB707vV.js} +1 -1
- package/dashboard/dist/assets/{PetPage-CpOjtJqg.js → PetPage-BpDriXkp.js} +2 -2
- package/dashboard/dist/assets/{PopoverPopup-BYjfer-M.js → PopoverPopup-rQNSs8R6.js} +1 -1
- package/dashboard/dist/assets/{ProviderIcon-NtYa2h0u.js → ProviderIcon-CumyO371.js} +1 -1
- package/dashboard/dist/assets/{ResetPasswordPage-CYUg7TR1.js → ResetPasswordPage-ecUHfJAk.js} +1 -1
- package/dashboard/dist/assets/{Select-CYP95o5y.js → Select-YVEqEhk4.js} +1 -1
- package/dashboard/dist/assets/{SelectItemText-BCDfusOM.js → SelectItemText-D1NBc4uc.js} +1 -1
- package/dashboard/dist/assets/{SelfHostPage-BmVc2rIT.js → SelfHostPage-8nAin68c.js} +1 -1
- package/dashboard/dist/assets/{ServiceStatusPage-Dyp8NwIn.js → ServiceStatusPage-D1zxuzOg.js} +1 -1
- package/dashboard/dist/assets/{SessionsPage-tGEj6Ztz.js → SessionsPage-B6ksEER_.js} +1 -1
- package/dashboard/dist/assets/{SettingsPage-CCMbq5wc.js → SettingsPage-COqP8ZbJ.js} +3 -3
- package/dashboard/dist/assets/{SkillsPage-C4O4fbaQ.js → SkillsPage-DCX7xTj0.js} +1 -1
- package/dashboard/dist/assets/TokenGalaxy-D4n7AR-R.js +4431 -0
- package/dashboard/dist/assets/{TooltipPopup-BJfFYesG.js → TooltipPopup-DvSoB_eS.js} +1 -1
- package/dashboard/dist/assets/{TrendMonitor-CElakFSU.js → TrendMonitor-5GVzh0Ye.js} +1 -1
- package/dashboard/dist/assets/{WidgetsPage-Cvd1LbJm.js → WidgetsPage-BIc4MBiu.js} +1 -1
- package/dashboard/dist/assets/{WrappedPage-wRC1tE_a.js → WrappedPage-BpQk4g0o.js} +1 -1
- package/dashboard/dist/assets/{__vite-browser-external-V4TPLCJG.js → __vite-browser-external-B_rKFTTN.js} +3 -3
- package/dashboard/dist/assets/{agent-logos-Ba57HF3w.js → agent-logos-DVg-sTm4.js} +1 -1
- package/dashboard/dist/assets/{arrow-left-B1bKnxXL.js → arrow-left-Ch6Q7eU5.js} +1 -1
- package/dashboard/dist/assets/{arrow-right-DrOlKzX5.js → arrow-right-B2B9GvSI.js} +1 -1
- package/dashboard/dist/assets/{arrow-up-right-hlYpo3yw.js → arrow-up-right-DwNO_uSb.js} +1 -1
- package/dashboard/dist/assets/{calendar-days-CSY6SEsI.js → calendar-days---NjJlBi.js} +1 -1
- package/dashboard/dist/assets/{check-xrP1gLw5.js → check-D3mhgRrW.js} +1 -1
- package/dashboard/dist/assets/{chevron-down-6-zT5n9d.js → chevron-down-x-b39Zto.js} +1 -1
- package/dashboard/dist/assets/{cloud-checkout-BZymZD4K.js → cloud-checkout-CycWyTsg.js} +1 -1
- package/dashboard/dist/assets/{composite-C9izWafa.js → composite-CnA1qtYn.js} +1 -1
- package/dashboard/dist/assets/{copy-Dkas5wZX.js → copy-JRnRMgdX.js} +1 -1
- package/dashboard/dist/assets/{download-CagGRs0_.js → download-CRLqGD62.js} +1 -1
- package/dashboard/dist/assets/{external-link-DRl10hxd.js → external-link-BrmaWV_t.js} +1 -1
- package/dashboard/dist/assets/{flame-CkvmsTFB.js → flame-meQ5-vRD.js} +1 -1
- package/dashboard/dist/assets/{format-tokens-BtwhO3mV.js → format-tokens-D8mIJGz1.js} +1 -1
- package/dashboard/dist/assets/{gift-YzjXkMQx.js → gift-Cd0FPXgO.js} +1 -1
- package/dashboard/dist/assets/{icons-CHhKYs0u.js → icons-D-PTKw7b.js} +1 -1
- package/dashboard/dist/assets/{index-B0MQZTrM.js → index-CMV9UKNf.js} +1 -1
- package/dashboard/dist/assets/{index-DojzoMqd.js → index-C_6gEM83.js} +1 -1
- package/dashboard/dist/assets/{index-CJknN9Jd.js → index-DCIZaLNC.js} +1 -1
- package/dashboard/dist/assets/index-HLYcwmPD.js +502 -0
- package/dashboard/dist/assets/{info-Torep-Ti.js → info-e0tP9P3D.js} +1 -1
- package/dashboard/dist/assets/{link-2-DE5Yu-z6.js → link-2-DZ2TQhER.js} +1 -1
- package/dashboard/dist/assets/{loader-circle-BL8LxD9n.js → loader-circle-DjflRntu.js} +1 -1
- package/dashboard/dist/assets/{local-usage-transfer-8X1InWix.js → local-usage-transfer-XTZLA3XH.js} +1 -1
- package/dashboard/dist/assets/{modifiers.esm-D60-6UQa.js → modifiers.esm-BpEQ8-Gt.js} +1 -1
- package/dashboard/dist/assets/module-BbVsRaE2.js +3 -0
- package/dashboard/dist/assets/{monitor-smartphone-C-IFPjqk.js → monitor-smartphone-VVBcI30G.js} +1 -1
- package/dashboard/dist/assets/{play-n6uWrdH9.js → play-DN4Sb3W_.js} +1 -1
- package/dashboard/dist/assets/{plus-B2f6TaNj.js → plus-Cz_k7arH.js} +1 -1
- package/dashboard/dist/assets/{provider-display-DWqCEcsP.js → provider-display-S1mSaydF.js} +1 -1
- package/dashboard/dist/assets/{react-B-zfi_j6.js → react-MQBcjrn_.js} +1 -1
- package/dashboard/dist/assets/{safePolygon-C2PsvI-v.js → safePolygon-InKxYcXd.js} +1 -1
- package/dashboard/dist/assets/{search-DZOaTLF9.js → search-C-N0RDi0.js} +1 -1
- package/dashboard/dist/assets/{server-DIp4Qfsv.js → server-CZkn8vIZ.js} +1 -1
- package/dashboard/dist/assets/{shield-check-Cs2M8-iT.js → shield-check-DPrGFouZ.js} +1 -1
- package/dashboard/dist/assets/{skills-api-CoYy6Tov.js → skills-api-wMwM-GpF.js} +1 -1
- package/dashboard/dist/assets/{sortable.esm-B5_hjIfs.js → sortable.esm-CUPP1ihT.js} +1 -1
- package/dashboard/dist/assets/{store-BLXqtJzb.js → store-BpVdRYnQ.js} +1 -1
- package/dashboard/dist/assets/{terminal-CEMKX3ba.js → terminal-C-7TFeKg.js} +1 -1
- package/dashboard/dist/assets/{trash-DOWYaXjK.js → trash-Be8cd4HD.js} +1 -1
- package/dashboard/dist/assets/{use-community-stats-BjRI1Bzz.js → use-community-stats-cG0WrB4Y.js} +1 -1
- package/dashboard/dist/assets/{use-latest-request-guard-T7L5qBU6.js → use-latest-request-guard-C91enyPD.js} +1 -1
- package/dashboard/dist/assets/{use-limits-display-prefs-vNIrCPZA.js → use-limits-display-prefs-DdwoLqPD.js} +1 -1
- package/dashboard/dist/assets/{use-native-settings-Cg5Zb4q_.js → use-native-settings-BR-NiMKh.js} +1 -1
- package/dashboard/dist/assets/{use-ordered-list-BF-wIvmG.js → use-ordered-list-oqV724BP.js} +1 -1
- package/dashboard/dist/assets/use-reduced-motion-DW5YHBBI.js +1 -0
- package/dashboard/dist/assets/{use-transform-CbJ1IcNc.js → use-transform-BsNSgVD6.js} +1 -1
- package/dashboard/dist/assets/{use-usage-limits-Dgg3jpC4.js → use-usage-limits-Dk8LcMU-.js} +1 -1
- package/dashboard/dist/assets/{useCurrency-3oBHWfSe.js → useCurrency-FxerRfd2.js} +1 -1
- package/dashboard/dist/assets/{usePositioner-D0YrIW0A.js → usePositioner-D2J-rSfX.js} +1 -1
- package/dashboard/dist/assets/{useTokenFormat-DZAHWE_R.js → useTokenFormat-CaI2nl2C.js} +1 -1
- package/dashboard/dist/assets/{zap-kLub6Jiv.js → zap-D3C37XAj.js} +1 -1
- package/dashboard/dist/index.html +1 -1
- package/dashboard/dist/ip-check.html +1 -1
- package/dashboard/dist/leaderboard.html +1 -1
- package/dashboard/dist/share.html +1 -1
- package/package.json +4 -4
- package/src/lib/cursor-config.js +15 -1
- package/src/lib/pricing/curated-overrides.json +14 -0
- package/src/lib/pricing/seed-snapshot.json +1 -1
- package/src/lib/rollout.js +13 -4
- package/src/lib/usage-limits.js +266 -10
- package/dashboard/dist/assets/DialogDescription-DztHQvj-.js +0 -1
- package/dashboard/dist/assets/TokenGalaxy-D2d738xr.js +0 -4426
- package/dashboard/dist/assets/index-C2DK8av-.js +0 -502
- package/dashboard/dist/assets/module-ZyVsxBG_.js +0 -3
- package/dashboard/dist/assets/use-reduced-motion-B9K5mIx4.js +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tokentracker-cli",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.5",
|
|
4
4
|
"description": "Local-first AI coding token usage and cost tracker for 47 tools, with a dashboard, desktop pet, widgets, achievements, and native macOS/Windows apps.",
|
|
5
5
|
"main": "src/cli.js",
|
|
6
6
|
"bin": {
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"version": "node scripts/sync-versions.cjs && git add TokenTrackerBar/project.yml TokenTrackerWin/TokenTrackerWin.csproj TokenTrackerLinux/package.json TokenTrackerLinux/package-lock.json TokenTrackerLinux/src-tauri/Cargo.toml TokenTrackerLinux/src-tauri/Cargo.lock TokenTrackerLinux/src-tauri/tauri.conf.json TokenTrackerLinux/packaging/arch/tokentracker-linux/PKGBUILD"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@journeyapps/wa-sqlite": "2.0.
|
|
54
|
+
"@journeyapps/wa-sqlite": "2.0.10",
|
|
55
55
|
"@mongodb-js/zstd": "^2.0.1",
|
|
56
56
|
"@sentry/node": "^11.8.0",
|
|
57
57
|
"smol-toml": "^1.9.0",
|
|
@@ -60,12 +60,12 @@
|
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@electric-sql/pglite": "^0.5.8",
|
|
63
|
-
"@sourcegraph/scip-typescript": "^0.
|
|
63
|
+
"@sourcegraph/scip-typescript": "^0.6.0",
|
|
64
64
|
"@waffo/pancake-ts": "0.25.0",
|
|
65
65
|
"alipay-sdk": "4.14.0",
|
|
66
66
|
"esbuild": "0.28.2",
|
|
67
67
|
"pngjs": "^7.0.0",
|
|
68
|
-
"sql.js": "1.15.
|
|
68
|
+
"sql.js": "1.15.2",
|
|
69
69
|
"urllib": "4.9.1"
|
|
70
70
|
},
|
|
71
71
|
"repository": {
|
package/src/lib/cursor-config.js
CHANGED
|
@@ -500,7 +500,21 @@ function parseCursorCsv(csvText) {
|
|
|
500
500
|
cost: toFloat(fields[costIdx]),
|
|
501
501
|
};
|
|
502
502
|
|
|
503
|
-
|
|
503
|
+
// Token presence is judged on the component columns (not the Total
|
|
504
|
+
// column) so a cache-read-only row survives even when Cursor's Total
|
|
505
|
+
// disagrees — the isAllZeroUsage gate downstream counts these same
|
|
506
|
+
// component fields. Request-only rows (e.g. bot/automation calls that
|
|
507
|
+
// consumed no tokens, issue #998) are real usage events: they are kept
|
|
508
|
+
// when the row carries a model identity, so parseCursorApiIncremental
|
|
509
|
+
// can import them as 0-token/1-request records pairing with the #997
|
|
510
|
+
// cloud-side request retention. Rows with no tokens and no model are
|
|
511
|
+
// degenerate placeholders and stay dropped.
|
|
512
|
+
const hasTokens =
|
|
513
|
+
record.inputTokens > 0 ||
|
|
514
|
+
record.cacheWriteTokens > 0 ||
|
|
515
|
+
record.cacheReadTokens > 0 ||
|
|
516
|
+
record.outputTokens > 0;
|
|
517
|
+
if (!hasTokens && !String(record.model || "").trim()) continue;
|
|
504
518
|
|
|
505
519
|
records.push(record);
|
|
506
520
|
}
|
|
@@ -731,6 +731,20 @@
|
|
|
731
731
|
"cache_write": 0.1,
|
|
732
732
|
"note": "StepFun Step 3.5 Flash incl. dated snapshots like step-3.5-flash-2603 (issue #283). Official platform.stepfun.ai pricing: $0.10 / $0.02 (cache hit) / $0.30 per MTok in/read/out. No published cache-write surcharge, so cache_write = input."
|
|
733
733
|
},
|
|
734
|
+
"grok-4.7": {
|
|
735
|
+
"input": 2.0,
|
|
736
|
+
"output": 6.0,
|
|
737
|
+
"cache_read": 0.5,
|
|
738
|
+
"cache_write": 0,
|
|
739
|
+
"note": "xAI grok-4.7 short-context rates (docs.x.ai/developers/pricing, verified 2026-11-03): $2 / $0.50 / $6 per MTok input/cached/output below 200k prompt tokens. Same numbers as cursor-grok-4.7, kept as its own key so the bare API id resolves outside the Cursor normalizer. No cache-write rate is published, so cache_write stays 0 like the other Grok entries. Requests whose prompt reaches 200k tokens are billed entirely at the long-context rates ($4 / $1 / $12); the single flat rate here cannot express that tier."
|
|
740
|
+
},
|
|
741
|
+
"grok-4.7-build-fast": {
|
|
742
|
+
"input": 4.0,
|
|
743
|
+
"output": 12.0,
|
|
744
|
+
"cache_read": 1.0,
|
|
745
|
+
"cache_write": 0,
|
|
746
|
+
"note": "Grok 4.7 Fast as served in Grok Build (model id grok-4.7-build-fast in ZCode). xAI documents it as 2x the standard grok-4.7 token rates, 1.5x for long-context requests: $4 / $1 / $12 per MTok input/cached/output below 200k prompt tokens, $6 / $1.50 / $18 once the prompt reaches 200k (docs.x.ai/developers/pricing, verified 2026-11-03). It is not on the public xAI API and Grok Build's free tier excludes it. Same short-context numbers as cursor-grok-4.7-fast; the Cursor normalizer only rewrites the cursor source, so this id needs its own key. No cache-write rate is published, so cache_write stays 0. The flat rate is the short-context rate; the single-rate table cannot express the long-context tier."
|
|
747
|
+
},
|
|
734
748
|
"grok-4.5-build": {
|
|
735
749
|
"input": 2.0,
|
|
736
750
|
"output": 6.0,
|