tokentracker-cli 1.1.3 → 1.1.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/README.de.md +5 -4
- package/README.ja.md +5 -4
- package/README.ko.md +5 -4
- package/README.md +5 -4
- package/README.zh-CN.md +5 -4
- package/dashboard/dist/assets/{AchievementBadge-dt_UDU_h.js → AchievementBadge-BGA-HT_B.js} +1 -1
- package/dashboard/dist/assets/{AchievementsPage-B5DJ3S9l.js → AchievementsPage-CtRh5AjH.js} +2 -2
- package/dashboard/dist/assets/{AchievementsSection-CDxcyig2.js → AchievementsSection-BarRcKaN.js} +1 -1
- package/dashboard/dist/assets/{BadgeDetailModal-Cp98zNn2.js → BadgeDetailModal-Bg0BDAN2.js} +1 -1
- package/dashboard/dist/assets/{BotAnimated-CR7MiUpo.js → BotAnimated-By9J3-dn.js} +1 -1
- package/dashboard/dist/assets/{Card-C8IdDvlg.js → Card-CIoJYi2j.js} +1 -1
- package/dashboard/dist/assets/{ClawdAnimated-COeTlW8z.js → ClawdAnimated-Dkvc2xe8.js} +2 -2
- package/dashboard/dist/assets/{CommandPalette-Co9k2CCc.js → CommandPalette-BssDtHRl.js} +1 -1
- package/dashboard/dist/assets/{CommunityStatsModal-C6XQeRgw.js → CommunityStatsModal-CQrgLlDb.js} +1 -1
- package/dashboard/dist/assets/{ConfirmModal-Ai4182O-.js → ConfirmModal-C3hBPgYc.js} +1 -1
- package/dashboard/dist/assets/{Controls-BbKzN-Pe.js → Controls-BSW6a1HS.js} +1 -1
- package/dashboard/dist/assets/DashboardPage-Dhv7fejy.js +1 -0
- package/dashboard/dist/assets/{DevicePage-CZbrtJmb.js → DevicePage-D5eZn0wo.js} +1 -1
- package/dashboard/dist/assets/{DialogClose-DMl8tAoX.js → DialogClose-BltQpaJo.js} +1 -1
- package/dashboard/dist/assets/DialogDescription-Cof52Icj.js +1 -0
- package/dashboard/dist/assets/{DialogTitle-BJxpp2t-.js → DialogTitle-CVddcRPZ.js} +1 -1
- package/dashboard/dist/assets/{FadeIn-hU_MXl6R.js → FadeIn-goPv73MT.js} +1 -1
- package/dashboard/dist/assets/{HeaderGithubStar-CM5RSxxN.js → HeaderGithubStar-BDBrrkzt.js} +1 -1
- package/dashboard/dist/assets/{HoverTooltip-BZKfQyZQ.js → HoverTooltip-qyMezXOs.js} +1 -1
- package/dashboard/dist/assets/{IpCheckPage-BjDx-zja.js → IpCheckPage-Ces8JIPb.js} +1 -1
- package/dashboard/dist/assets/{LandingPage-CAt8BCDv.js → LandingPage-B2TmLGno.js} +2 -2
- package/dashboard/dist/assets/{LeaderboardAvatar-DiCrakjI.js → LeaderboardAvatar-CVVRoNua.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardPage-Dj3pHv6U.js → LeaderboardPage-xtt-bOY8.js} +2 -2
- package/dashboard/dist/assets/{LeaderboardProfileModal-DEWbcP9p.js → LeaderboardProfileModal-BM4d_I_r.js} +3 -3
- package/dashboard/dist/assets/{LeaderboardProfilePage-CTbWHQkY.js → LeaderboardProfilePage-BWqhFLQX.js} +1 -1
- package/dashboard/dist/assets/{LimitsPage-V-98OUhF.js → LimitsPage-BZL4Pcl8.js} +1 -1
- package/dashboard/dist/assets/{LocalOnlyNotice-a4PqtUZY.js → LocalOnlyNotice-D4gnOEJj.js} +1 -1
- package/dashboard/dist/assets/{LoginCard-oD1A2Ru8.js → LoginCard-CB17FQ5w.js} +1 -1
- package/dashboard/dist/assets/{LoginModal-D8aSmxok.js → LoginModal-BI-O1rH4.js} +1 -1
- package/dashboard/dist/assets/{LoginPage-DIjhBv2X.js → LoginPage-DnGzsvJ4.js} +1 -1
- package/dashboard/dist/assets/{PetPage-D7601BTX.js → PetPage-NRnIKMaJ.js} +1 -1
- package/dashboard/dist/assets/{PopoverPopup-aPnmKopO.js → PopoverPopup-DHoK6UJZ.js} +1 -1
- package/dashboard/dist/assets/{ProviderIcon-rwyfcNlT.js → ProviderIcon-BTkdx9o2.js} +1 -1
- package/dashboard/dist/assets/{ResetPasswordPage-AF3SBgW2.js → ResetPasswordPage-C6K0w318.js} +1 -1
- package/dashboard/dist/assets/{SegmentedControl-fnlScNMT.js → SegmentedControl-gEoWioBE.js} +1 -1
- package/dashboard/dist/assets/{Select-DDjC3RjB.js → Select-CI-qtEYu.js} +1 -1
- package/dashboard/dist/assets/{SelectItemText-VhBWE2O8.js → SelectItemText-q-yhzzjw.js} +1 -1
- package/dashboard/dist/assets/{ServiceStatusPage-BL3qqEsp.js → ServiceStatusPage-C4xD1CEe.js} +1 -1
- package/dashboard/dist/assets/{SessionsPage-DXYiuP2x.js → SessionsPage-CS0Yun2z.js} +1 -1
- package/dashboard/dist/assets/{SettingsPage-DTeA_ahr.js → SettingsPage-GVY_ktz4.js} +2 -2
- package/dashboard/dist/assets/{SkillsPage-CtTRwVQH.js → SkillsPage-COPRL95O.js} +1 -1
- package/dashboard/dist/assets/{TokenGalaxy-CifK91V7.js → TokenGalaxy-Czi0Ic48.js} +1 -1
- package/dashboard/dist/assets/{ToolbarRootContext-ClGAIYoa.js → ToolbarRootContext-BZkTiBJB.js} +1 -1
- package/dashboard/dist/assets/{TrendMonitor-D1evFHRM.js → TrendMonitor-CnIsuxV-.js} +1 -1
- package/dashboard/dist/assets/{WidgetsPage-Cq4RYJDE.js → WidgetsPage-OdX_Fsul.js} +1 -1
- package/dashboard/dist/assets/{WrappedPage-CoC5RJH7.js → WrappedPage-h9N63-F8.js} +1 -1
- package/dashboard/dist/assets/__vite-browser-external-BFNWaGsk.js +45 -0
- package/dashboard/dist/assets/{agent-logos-QLdA9OeA.js → agent-logos-BDiPxrST.js} +1 -1
- package/dashboard/dist/assets/{arrow-up-right-BYLgB3bH.js → arrow-up-right-DtFQUeJG.js} +1 -1
- package/dashboard/dist/assets/{check-DfnIvqZD.js → check-C35onaNL.js} +1 -1
- package/dashboard/dist/assets/{composite--JllTpIX.js → composite-qxBzts0W.js} +1 -1
- package/dashboard/dist/assets/{copy-ClKVBIgD.js → copy-D_D71TLc.js} +1 -1
- package/dashboard/dist/assets/{download-Di1-UFJX.js → download-DMQI2hQe.js} +1 -1
- package/dashboard/dist/assets/{external-link-D7zPVFLO.js → external-link-CemM4dWf.js} +1 -1
- package/dashboard/dist/assets/{flame-BMJTxjVg.js → flame-CIvk0SP5.js} +1 -1
- package/dashboard/dist/assets/{format-tokens-DCZM5Nfn.js → format-tokens-D3JSvcFl.js} +1 -1
- package/dashboard/dist/assets/{icons-I615W2IU.js → icons-Ccf5W0AL.js} +1 -1
- package/dashboard/dist/assets/{index-BejnmdPe.js → index-Brd2evyz.js} +1 -1
- package/dashboard/dist/assets/{index-BX3CXVdD.js → index-C8Wri_HI.js} +1 -1
- package/dashboard/dist/assets/{index-CwczM3BZ.js → index-CFXmD_KX.js} +1 -1
- package/dashboard/dist/assets/{info-CFJPny5Q.js → info-CafrKEG8.js} +1 -1
- package/dashboard/dist/assets/{link-2-D1ydWh_w.js → link-2-Ds-9Nzlp.js} +1 -1
- package/dashboard/dist/assets/{loader-circle-Cq-J-OFg.js → loader-circle-DA4I55-V.js} +1 -1
- package/dashboard/dist/assets/{maximize-2-kIoSq57I.js → maximize-2-CjMPt5kU.js} +1 -1
- package/dashboard/dist/assets/{modifiers.esm-CLojthuF.js → modifiers.esm-DIxTS09h.js} +1 -1
- package/dashboard/dist/assets/module-WSx8viXK.js +3 -0
- package/dashboard/dist/assets/{monitor-smartphone-DX2qWHYV.js → monitor-smartphone-IZpIOxn3.js} +1 -1
- package/dashboard/dist/assets/{plus-B-JEpo3V.js → plus-vbLFNs70.js} +1 -1
- package/dashboard/dist/assets/{provider-display-DJDdrTAS.js → provider-display-BAu_UIfV.js} +2 -2
- package/dashboard/dist/assets/{react-Ctoe8iLl.js → react-Djb4VGKb.js} +1 -1
- package/dashboard/dist/assets/{search-BTSQrlW-.js → search-Ct6LY9Ke.js} +1 -1
- package/dashboard/dist/assets/{skills-api-DKQyM8h7.js → skills-api-BnGI2gEp.js} +1 -1
- package/dashboard/dist/assets/{sortable.esm-pOEL13xU.js → sortable.esm-CjCGd6g5.js} +1 -1
- package/dashboard/dist/assets/{store-B2RplzvW.js → store-CBxkOqRe.js} +1 -1
- package/dashboard/dist/assets/{terminal-BH_6_EW_.js → terminal-Dlpdp5Az.js} +1 -1
- package/dashboard/dist/assets/{trash-CC444Mz6.js → trash-pxUSKv66.js} +1 -1
- package/dashboard/dist/assets/{use-community-stats-CBXLdD_j.js → use-community-stats-tHaixRIw.js} +1 -1
- package/dashboard/dist/assets/{use-latest-request-guard-DMuPfZQI.js → use-latest-request-guard-Cs44WPfL.js} +1 -1
- package/dashboard/dist/assets/{use-limits-display-prefs-CmsGTBA4.js → use-limits-display-prefs-Dw56PXWy.js} +1 -1
- package/dashboard/dist/assets/{use-ordered-list-BNJNpXjB.js → use-ordered-list-DpLx8oLV.js} +1 -1
- package/dashboard/dist/assets/use-reduced-motion-DrlJ9X6p.js +1 -0
- package/dashboard/dist/assets/{use-session-efficiency-pref-g_0ISxe1.js → use-session-efficiency-pref-BN3FtBvr.js} +1 -1
- package/dashboard/dist/assets/{use-transform-D36BHcXk.js → use-transform-C4nTGgzb.js} +1 -1
- package/dashboard/dist/assets/{use-usage-limits-Dxw3vzsD.js → use-usage-limits-Dmwdc1yo.js} +1 -1
- package/dashboard/dist/assets/{useCurrency-V2FE4TMo.js → useCurrency-DSc3A_Ih.js} +1 -1
- package/dashboard/dist/assets/{useTokenFormat-CEOwvzMt.js → useTokenFormat-BHjcMgm8.js} +1 -1
- package/dashboard/dist/assets/{zap-BS7ZU76I.js → zap-BE8i_wu2.js} +1 -1
- package/dashboard/dist/brand-logos/trae.svg +1 -0
- package/dashboard/dist/index.html +13 -11
- package/dashboard/dist/ip-check.html +1 -1
- package/dashboard/dist/leaderboard.html +1 -1
- package/dashboard/dist/llms.txt +3 -2
- package/dashboard/dist/share.html +1 -1
- package/package.json +6 -4
- package/src/commands/init.js +9 -7
- package/src/commands/status.js +9 -9
- package/src/commands/sync.js +25 -0
- package/src/lib/pricing/curated-overrides.json +7 -0
- package/src/lib/pricing/matcher.js +5 -0
- package/src/lib/pricing/seed-snapshot.json +1 -1
- package/src/lib/rollout.js +197 -18
- package/src/lib/trae-db.js +127 -0
- package/src/lib/trae-snapshot.js +230 -0
- package/src/lib/trae-sqlite.js +143 -0
- package/src/lib/trae-usage.js +121 -0
- package/dashboard/dist/assets/DashboardPage-DTcVGG4e.js +0 -1
- package/dashboard/dist/assets/DialogDescription-haPz7CX9.js +0 -1
- package/dashboard/dist/assets/__vite-browser-external-BDugA6I0.js +0 -45
- package/dashboard/dist/assets/module-DtWfRKM4.js +0 -3
- package/dashboard/dist/assets/use-reduced-motion-CNpG-Yoi.js +0 -1
package/src/commands/sync.js
CHANGED
|
@@ -138,6 +138,7 @@ const {
|
|
|
138
138
|
resolveCommandCodeSessionFiles,
|
|
139
139
|
parseCommandCodeIncremental,
|
|
140
140
|
parseTraeCnApiIncremental,
|
|
141
|
+
parseTraeIncremental,
|
|
141
142
|
bucketKey,
|
|
142
143
|
toUtcHalfHourStart,
|
|
143
144
|
totalsKey,
|
|
@@ -333,6 +334,7 @@ const AUTO_SYNC_SOURCES = new Set([
|
|
|
333
334
|
"reasonix",
|
|
334
335
|
"roocode",
|
|
335
336
|
"trae-cn",
|
|
337
|
+
"trae",
|
|
336
338
|
"unsloth",
|
|
337
339
|
"workbuddy",
|
|
338
340
|
"zcode",
|
|
@@ -2011,6 +2013,27 @@ async function cmdSync(argv, context = {}) {
|
|
|
2011
2013
|
}
|
|
2012
2014
|
}
|
|
2013
2015
|
|
|
2016
|
+
let traeResult = { recordsProcessed: 0, eventsAggregated: 0, bucketsQueued: 0 };
|
|
2017
|
+
if (sourceAllowed("trae")) {
|
|
2018
|
+
try {
|
|
2019
|
+
traeResult = await parseTraeIncremental({
|
|
2020
|
+
cursors, queuePath, onProgress: makeProviderProgress("TRAE"),
|
|
2021
|
+
});
|
|
2022
|
+
for (const { database, message } of traeResult.errors) {
|
|
2023
|
+
process.stderr.write(`TRAE sync: could not read ${database}: ${message}. Will retry on the next sync.\n`);
|
|
2024
|
+
}
|
|
2025
|
+
if (traeResult.recordsSkipped > 0 && !opts.auto) {
|
|
2026
|
+
process.stderr.write(`TRAE sync: skipped ${traeResult.recordsSkipped} records with unsupported usage metadata.\n`);
|
|
2027
|
+
}
|
|
2028
|
+
if (traeResult.estimatedRecords > 0 && !opts.auto) {
|
|
2029
|
+
process.stderr.write(`TRAE sync: ${traeResult.estimatedRecords} Gemini records have repaired thought or cache counters, marked as estimated.\n`);
|
|
2030
|
+
}
|
|
2031
|
+
if (traeResult.unpricedRecords > 0 && !opts.auto) {
|
|
2032
|
+
process.stderr.write(`TRAE sync: ${traeResult.unpricedRecords} multi-request turns include earlier input without a cache split; it is counted in token totals but left out of cost.\n`);
|
|
2033
|
+
}
|
|
2034
|
+
} catch (err) { warnProviderParseFailure("TRAE", err); }
|
|
2035
|
+
}
|
|
2036
|
+
|
|
2014
2037
|
// ── Trae Work CN (国内版) — account-level usage API ──
|
|
2015
2038
|
// A simple explicit rolling 30-day window captured once per sync (no
|
|
2016
2039
|
// cursor checkpoints / full-history import / page retries / background
|
|
@@ -3101,6 +3124,7 @@ async function cmdSync(argv, context = {}) {
|
|
|
3101
3124
|
claudeScienceResult.recordsProcessed +
|
|
3102
3125
|
cursorResult.recordsProcessed +
|
|
3103
3126
|
traeCnResult.recordsProcessed +
|
|
3127
|
+
traeResult.recordsProcessed +
|
|
3104
3128
|
kiroResult.recordsProcessed +
|
|
3105
3129
|
kiroCliResult.recordsProcessed +
|
|
3106
3130
|
hermesResult.recordsProcessed +
|
|
@@ -3144,6 +3168,7 @@ async function cmdSync(argv, context = {}) {
|
|
|
3144
3168
|
claudeScienceResult.bucketsQueued +
|
|
3145
3169
|
cursorResult.bucketsQueued +
|
|
3146
3170
|
traeCnResult.bucketsQueued +
|
|
3171
|
+
traeResult.bucketsQueued +
|
|
3147
3172
|
kiroResult.bucketsQueued +
|
|
3148
3173
|
kiroCliResult.bucketsQueued +
|
|
3149
3174
|
hermesResult.bucketsQueued +
|
|
@@ -118,6 +118,13 @@
|
|
|
118
118
|
"cache_write": 0.167,
|
|
119
119
|
"note": "See hy3-preview-agent."
|
|
120
120
|
},
|
|
121
|
+
"qwen3.8-flash": {
|
|
122
|
+
"input": 0.15,
|
|
123
|
+
"output": 0.47,
|
|
124
|
+
"cache_read": 0.016,
|
|
125
|
+
"cache_write": 0.2,
|
|
126
|
+
"note": "Alibaba Model Studio Singapore (International), USD per MTok, verified 2026-09-29: https://www.alibabacloud.com/help/en/model-studio/qwen3-8-flash . Reference API estimate; other regions/providers can have different rates. Issue #715."
|
|
127
|
+
},
|
|
121
128
|
"hy4-preview": {
|
|
122
129
|
"input": 0.833,
|
|
123
130
|
"output": 2.5,
|
|
@@ -277,6 +277,11 @@ function lookupPricing(model, { curated, litellm, source } = {}) {
|
|
|
277
277
|
}
|
|
278
278
|
|
|
279
279
|
// 1. CURATED exact
|
|
280
|
+
// Qwen Flash's provider-qualified and dated IDs share the reference SKU.
|
|
281
|
+
// Keep the boundary strict: Flash-Next and Max have independent prices.
|
|
282
|
+
if (/(?:^|\/)qwen3[.-]8-flash(?:-\d{4}-\d{2}-\d{2})?$/.test(lower.trim()) && curated.exact?.["qwen3.8-flash"]) {
|
|
283
|
+
return { hit: true, source: "curated:exact", value: curated.exact["qwen3.8-flash"] };
|
|
284
|
+
}
|
|
280
285
|
if (curated.exact && curated.exact[lookupModel]) {
|
|
281
286
|
return { hit: true, source: "curated:exact", value: curated.exact[lookupModel] };
|
|
282
287
|
}
|