tokentracker-cli 0.26.2 → 0.26.4
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/{ActivityHeatmap-BX2q-PW5.js → ActivityHeatmap-D3cm-gHm.js} +1 -1
- package/dashboard/dist/assets/{Card-CKdycEDk.js → Card-B6axUG8L.js} +1 -1
- package/dashboard/dist/assets/{DashboardPage-T_BImOGr.js → DashboardPage-DoJoQwbf.js} +1 -1
- package/dashboard/dist/assets/{DevicePage-DqFrE2fo.js → DevicePage-eqp2bFdZ.js} +1 -1
- package/dashboard/dist/assets/{DialogTitle-BPUtAz2U.js → DialogTitle-hAOVtFkS.js} +1 -1
- package/dashboard/dist/assets/{FadeIn-ortmqOpl.js → FadeIn-3jTuP_xI.js} +1 -1
- package/dashboard/dist/assets/{HeaderGithubStar-Cl4nchsC.js → HeaderGithubStar-CvXZrAGP.js} +1 -1
- package/dashboard/dist/assets/{IpCheckPage-CxRBCdXW.js → IpCheckPage-Cxd-BFTg.js} +1 -1
- package/dashboard/dist/assets/{LandingPage-DoIw_oXY.js → LandingPage-D0tsm4l3.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardAvatar-GMFZci05.js → LeaderboardAvatar-n6_qkxp9.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardPage-BzkrPpnp.js → LeaderboardPage-CGtx6u3n.js} +3 -3
- package/dashboard/dist/assets/{LeaderboardProfileModal-CAcqZ15e.js → LeaderboardProfileModal-BWqzy6Yq.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardProfilePage-D7jyFQk5.js → LeaderboardProfilePage-eH9bX1wQ.js} +1 -1
- package/dashboard/dist/assets/{LimitsPage-fdq2MG4P.js → LimitsPage-2IvCDnuQ.js} +1 -1
- package/dashboard/dist/assets/{LocalOnlyNotice-XEv4_b68.js → LocalOnlyNotice-uJRb4VZ7.js} +1 -1
- package/dashboard/dist/assets/{LoginPage-CJ31pW6G.js → LoginPage-Cicac58j.js} +1 -1
- package/dashboard/dist/assets/{PopoverPopup-cEzMmw1k.js → PopoverPopup-C5N80T5y.js} +1 -1
- package/dashboard/dist/assets/{ProviderIcon-CkKiJH4q.js → ProviderIcon-_T6uI96n.js} +1 -1
- package/dashboard/dist/assets/{SettingsPage-D--hzVuV.js → SettingsPage-BwvB1IJ9.js} +1 -1
- package/dashboard/dist/assets/{SkillsPage-BTxPA7dW.js → SkillsPage-D4sEV5zV.js} +1 -1
- package/dashboard/dist/assets/{WidgetsPage-Bh4zs5u8.js → WidgetsPage-DvtstAPv.js} +1 -1
- package/dashboard/dist/assets/{WrappedPage-COhqXKs7.js → WrappedPage-BNQp7iJr.js} +1 -1
- package/dashboard/dist/assets/{arrow-up-right-B0tVW8XM.js → arrow-up-right-C1ViLV3k.js} +1 -1
- package/dashboard/dist/assets/check-DNb6JJp_.js +1 -0
- package/dashboard/dist/assets/{chevron-down-Cz58bkoU.js → chevron-down-D6ghZItu.js} +1 -1
- package/dashboard/dist/assets/{download-Gv8d-j81.js → download-DPh7dfoc.js} +1 -1
- package/dashboard/dist/assets/{info-bDEPb8dB.js → info-BkhlnyVt.js} +1 -1
- package/dashboard/dist/assets/{main-tm3dyfMf.js → main-iTwSqSnl.js} +2 -2
- package/dashboard/dist/assets/{use-limits-display-prefs-BvHWn0OQ.js → use-limits-display-prefs-DvqHsZKU.js} +1 -1
- package/dashboard/dist/assets/{use-native-settings-CI_YvzEo.js → use-native-settings-Dl2CIdof.js} +1 -1
- package/dashboard/dist/assets/{use-reduced-motion-pCeztzVC.js → use-reduced-motion-D9_5HfpE.js} +1 -1
- package/dashboard/dist/assets/{use-usage-limits-CKWnCeca.js → use-usage-limits-DJCSTSn7.js} +1 -1
- package/dashboard/dist/assets/{useCurrency-DLoIpDjL.js → useCurrency-DGZ0g8J1.js} +1 -1
- package/dashboard/dist/index.html +1 -1
- package/dashboard/dist/share.html +1 -1
- package/package.json +1 -1
- package/src/commands/sync.js +16 -4
- package/src/lib/claude-categorizer.js +59 -18
- package/src/lib/pricing/matcher.js +20 -0
- package/src/lib/pricing/seed-snapshot.json +1 -1
- package/src/lib/rollout.js +4 -7
- package/dashboard/dist/assets/check-Dhwj43_0.js +0 -1
package/src/lib/rollout.js
CHANGED
|
@@ -898,13 +898,8 @@ async function parseClaudeFile({
|
|
|
898
898
|
const usage = obj?.message?.usage || obj?.usage;
|
|
899
899
|
if (!usage || typeof usage !== "object") continue;
|
|
900
900
|
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
if (hash) {
|
|
904
|
-
if (seenMessageHashes.has(hash)) continue;
|
|
905
|
-
seenMessageHashes.add(hash);
|
|
906
|
-
}
|
|
907
|
-
}
|
|
901
|
+
const dedupHash = seenMessageHashes ? claudeMessageDedupKey(obj) : null;
|
|
902
|
+
if (dedupHash && seenMessageHashes.has(dedupHash)) continue;
|
|
908
903
|
|
|
909
904
|
const model = normalizeModelInput(obj?.message?.model || obj?.model) || DEFAULT_MODEL;
|
|
910
905
|
const tokenTimestamp = typeof obj?.timestamp === "string" ? obj.timestamp : null;
|
|
@@ -912,6 +907,8 @@ async function parseClaudeFile({
|
|
|
912
907
|
|
|
913
908
|
const delta = normalizeClaudeUsage(usage);
|
|
914
909
|
if (!delta || isAllZeroUsage(delta)) continue;
|
|
910
|
+
|
|
911
|
+
if (dedupHash) seenMessageHashes.add(dedupHash);
|
|
915
912
|
delta.conversation_count = 0;
|
|
916
913
|
|
|
917
914
|
const bucketStart = toUtcHalfHourStart(tokenTimestamp);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c}from"./main-tm3dyfMf.js";const e=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],t=c("check",e);export{t as C};
|