tokentracker-cli 1.4.7 → 1.4.10

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 (154) hide show
  1. package/README.de.md +2 -2
  2. package/README.ja.md +2 -2
  3. package/README.ko.md +2 -2
  4. package/README.md +11 -3
  5. package/README.zh-CN.md +3 -3
  6. package/bin/tracker.js +6 -0
  7. package/dashboard/dist/assets/{AchievementBadge-DF8q1x6R.js → AchievementBadge-BTqlXUP1.js} +1 -1
  8. package/dashboard/dist/assets/{AchievementsPage-B8Dg5myo.js → AchievementsPage-DbKUhaY-.js} +2 -2
  9. package/dashboard/dist/assets/{AchievementsSection-oPPiyP3y.js → AchievementsSection-El1F-OC7.js} +1 -1
  10. package/dashboard/dist/assets/{BadgeDetailModal-PneMW4B4.js → BadgeDetailModal--8PySLzP.js} +1 -1
  11. package/dashboard/dist/assets/{BotAnimated-GOlSvEiz.js → BotAnimated-DBcOS4vh.js} +1 -1
  12. package/dashboard/dist/assets/{Card-BT5G0GE0.js → Card-CeGs8TaY.js} +1 -1
  13. package/dashboard/dist/assets/{CloudCheckoutPage-BNeL5Muo.js → CloudCheckoutPage-DCg3VVAi.js} +1 -1
  14. package/dashboard/dist/assets/CloudPage-CmeFDrmk.js +2 -0
  15. package/dashboard/dist/assets/{CommandPalette-CiMSYHNK.js → CommandPalette-CrSNoZW9.js} +1 -1
  16. package/dashboard/dist/assets/{CommunityStatsModal-fK3BE9CW.js → CommunityStatsModal-ynB4j0Qb.js} +1 -1
  17. package/dashboard/dist/assets/{ConfirmModal-CrUlEHyZ.js → ConfirmModal-DDTUf-My.js} +1 -1
  18. package/dashboard/dist/assets/{Controls-CbjSwq6k.js → Controls-DXsJjEU1.js} +1 -1
  19. package/dashboard/dist/assets/DashboardPage-fr4sgbLB.js +1 -0
  20. package/dashboard/dist/assets/{DateRangePopover-E-2Z6imh.js → DateRangePopover-gTiPISL_.js} +1 -1
  21. package/dashboard/dist/assets/DevicePage-DvHVjCCH.js +1 -0
  22. package/dashboard/dist/assets/{DialogClose-xJKE22Y6.js → DialogClose-CXwouQe4.js} +1 -1
  23. package/dashboard/dist/assets/DialogDescription-BzbzETUC.js +1 -0
  24. package/dashboard/dist/assets/{DialogTitle-f8vnnH7z.js → DialogTitle-Cd_k-Nyw.js} +1 -1
  25. package/dashboard/dist/assets/{ElectricLogo-Ci9WZfHK.js → ElectricLogo-C4vUNTCI.js} +1 -1
  26. package/dashboard/dist/assets/{FadeIn-BXqtyAmn.js → FadeIn-CGM5RBFy.js} +1 -1
  27. package/dashboard/dist/assets/{HeaderGithubStar-BV5SYJMi.js → HeaderGithubStar-el5-DhVb.js} +1 -1
  28. package/dashboard/dist/assets/{HoverTooltip-D3gpW3Jh.js → HoverTooltip-C7YaWwJx.js} +1 -1
  29. package/dashboard/dist/assets/{IpCheckPage-G7fIWXpL.js → IpCheckPage-EKhbH9hJ.js} +1 -1
  30. package/dashboard/dist/assets/LandingPage-DJYOv1AM.js +2 -0
  31. package/dashboard/dist/assets/{LeaderboardPage-D2_wXazL.js → LeaderboardPage-CwzJxA8p.js} +2 -2
  32. package/dashboard/dist/assets/{LeaderboardProBadge-3xJ-mH2v.js → LeaderboardProBadge-DYLp9pJY.js} +1 -1
  33. package/dashboard/dist/assets/{LeaderboardProfileModal-23pH6Ud7.js → LeaderboardProfileModal-DqD2h9dD.js} +3 -3
  34. package/dashboard/dist/assets/{LeaderboardProfilePage-DSezSR58.js → LeaderboardProfilePage-CarYvpYe.js} +1 -1
  35. package/dashboard/dist/assets/LimitsPage-4T0BpfYS.js +6 -0
  36. package/dashboard/dist/assets/{LocalOnlyNotice-Dsk-d0Hr.js → LocalOnlyNotice-CAR-mqy0.js} +1 -1
  37. package/dashboard/dist/assets/{LoginCard-C7dugIIn.js → LoginCard-Czq-UgAU.js} +1 -1
  38. package/dashboard/dist/assets/{LoginModal-B7RuLsTF.js → LoginModal-D4uxfzZb.js} +1 -1
  39. package/dashboard/dist/assets/{LoginPage-u32vJQN9.js → LoginPage-Bg3BG0Wv.js} +1 -1
  40. package/dashboard/dist/assets/{PetPage-Dbc975oU.js → PetPage-BgwBxRyx.js} +2 -2
  41. package/dashboard/dist/assets/{PopoverPopup-D-yECvH9.js → PopoverPopup-k3o_Jp2b.js} +1 -1
  42. package/dashboard/dist/assets/{ProviderIcon-CHtZiJUN.js → ProviderIcon-Bbw6MUSf.js} +1 -1
  43. package/dashboard/dist/assets/{ResetPasswordPage-ctuIsNk0.js → ResetPasswordPage-DIKPVu5K.js} +1 -1
  44. package/dashboard/dist/assets/{Select-DN4Kq_R1.js → Select-kA0dV5Qw.js} +1 -1
  45. package/dashboard/dist/assets/{SelectItemText-C-HmeD8L.js → SelectItemText-D4YCIn1x.js} +1 -1
  46. package/dashboard/dist/assets/{SelfHostPage-BZOL3JMt.js → SelfHostPage-C3Y9qF3P.js} +1 -1
  47. package/dashboard/dist/assets/{ServiceStatusPage-C0sDYa8c.js → ServiceStatusPage-o1G3SJhV.js} +1 -1
  48. package/dashboard/dist/assets/{SessionsPage-l0-FkcJB.js → SessionsPage-CA-efxhU.js} +3 -3
  49. package/dashboard/dist/assets/SettingsPage-Mr84vxQL.js +5 -0
  50. package/dashboard/dist/assets/{SkillsPage-Cz6G9d3o.js → SkillsPage-BtRhLSpz.js} +1 -1
  51. package/dashboard/dist/assets/TokenGalaxy-CcFjCCuC.js +4426 -0
  52. package/dashboard/dist/assets/TooltipPopup-6aTx3jDf.js +1 -0
  53. package/dashboard/dist/assets/TrendMonitor-DoywXr8h.js +19 -0
  54. package/dashboard/dist/assets/{WidgetsPage-BKo3DBxT.js → WidgetsPage-BuGSzvR0.js} +1 -1
  55. package/dashboard/dist/assets/{WrappedPage-Blm3aPO5.js → WrappedPage-Bm6X-SUZ.js} +1 -1
  56. package/dashboard/dist/assets/__vite-browser-external-C9a2vCBN.css +1 -0
  57. package/dashboard/dist/assets/__vite-browser-external-ClVJNQu3.js +45 -0
  58. package/dashboard/dist/assets/{agent-logos-DMtDEx7_.js → agent-logos-Sc8Sejgx.js} +1 -1
  59. package/dashboard/dist/assets/{arrow-left-Bo9y7VzF.js → arrow-left-Cm1LG2i_.js} +1 -1
  60. package/dashboard/dist/assets/{arrow-right-BLMU8Y5U.js → arrow-right-WP3kIwiy.js} +1 -1
  61. package/dashboard/dist/assets/{arrow-up-right-B4hXO4sc.js → arrow-up-right-CjyprVMj.js} +1 -1
  62. package/dashboard/dist/assets/{calendar-days-D9HaEtgo.js → calendar-days-Bm88-Gcb.js} +1 -1
  63. package/dashboard/dist/assets/{check-BJNGKpX8.js → check-CzIxFg0I.js} +1 -1
  64. package/dashboard/dist/assets/{chevron-down-CoGC_RLK.js → chevron-down-bfGK8629.js} +1 -1
  65. package/dashboard/dist/assets/{cloud-checkout-Du5FoHqV.js → cloud-checkout-C9DFQ7yM.js} +1 -1
  66. package/dashboard/dist/assets/{composite-BfIUPpl8.js → composite-CdExmgTx.js} +1 -1
  67. package/dashboard/dist/assets/copy-CPPdujn2.js +1 -0
  68. package/dashboard/dist/assets/{download-C1K_v0C0.js → download-Cl6_dKeK.js} +1 -1
  69. package/dashboard/dist/assets/{external-link-D-xHhfj5.js → external-link-B0r6Wo4e.js} +1 -1
  70. package/dashboard/dist/assets/{flame-DXD6uvhM.js → flame-wEezvzXx.js} +1 -1
  71. package/dashboard/dist/assets/{format-tokens-B9riGvNj.js → format-tokens-vWpBpKpM.js} +1 -1
  72. package/dashboard/dist/assets/{gift-LPR-nD0J.js → gift-BFjblRqU.js} +1 -1
  73. package/dashboard/dist/assets/host-mode-Bc_iTzHk.js +1 -0
  74. package/dashboard/dist/assets/{icons-DLdtLqEt.js → icons-DX3dCNJP.js} +1 -1
  75. package/dashboard/dist/assets/{index-CXdJ7zMN.js → index-D-TnqdBv.js} +1 -1
  76. package/dashboard/dist/assets/{index-CC3cXeBa.js → index-D1Zdrpom.js} +1 -1
  77. package/dashboard/dist/assets/index-DBF1bJlm.js +502 -0
  78. package/dashboard/dist/assets/{index-BL11MboX.js → index-p8Gt3NFg.js} +1 -1
  79. package/dashboard/dist/assets/{info-tnXKCyuK.js → info-Cqi971MA.js} +1 -1
  80. package/dashboard/dist/assets/{link-2-DOk9Tcg1.js → link-2-79sm__cT.js} +1 -1
  81. package/dashboard/dist/assets/{loader-circle-DIl96Mw-.js → loader-circle-CDoVfOUb.js} +1 -1
  82. package/dashboard/dist/assets/local-usage-transfer-EcXnuwCj.js +1 -0
  83. package/dashboard/dist/assets/{modifiers.esm-2H_1taJ6.js → modifiers.esm-v5_BKSmY.js} +1 -1
  84. package/dashboard/dist/assets/module-C2SOSUuR.js +3 -0
  85. package/dashboard/dist/assets/{monitor-smartphone-tnp-03hs.js → monitor-smartphone-CO67DffO.js} +1 -1
  86. package/dashboard/dist/assets/{play-BGMuGTdN.js → play-CbvuGtc3.js} +1 -1
  87. package/dashboard/dist/assets/{plus-XETAaErq.js → plus-jc2gXlRM.js} +1 -1
  88. package/dashboard/dist/assets/{provider-display-BYNT4zPc.js → provider-display-BK3EbRLM.js} +1 -1
  89. package/dashboard/dist/assets/{react-OW7HALVO.js → react-DMs4C4qS.js} +1 -1
  90. package/dashboard/dist/assets/{safePolygon-CAfS8-ct.js → safePolygon-cY9H0GBN.js} +1 -1
  91. package/dashboard/dist/assets/{search-B7ZJhoau.js → search-fqTJoYYA.js} +1 -1
  92. package/dashboard/dist/assets/{server-CWrP7mtL.js → server-jpBtvTvr.js} +1 -1
  93. package/dashboard/dist/assets/{shield-check-ip5IQEK3.js → shield-check-DQiBlJbN.js} +1 -1
  94. package/dashboard/dist/assets/{skills-api-CpyoNTeB.js → skills-api-CN2r_rmt.js} +1 -1
  95. package/dashboard/dist/assets/{sortable.esm-YvzWzPDu.js → sortable.esm-DrS52yOK.js} +1 -1
  96. package/dashboard/dist/assets/{store-DRK6-JBg.js → store-K2Mk6aMn.js} +1 -1
  97. package/dashboard/dist/assets/{terminal-DQRoJSvh.js → terminal-Q4SruAlh.js} +1 -1
  98. package/dashboard/dist/assets/{trash-8h_26atF.js → trash-C1Ob-g8E.js} +1 -1
  99. package/dashboard/dist/assets/{use-community-stats-DYlhIXsp.js → use-community-stats-C-Gxpp9D.js} +1 -1
  100. package/dashboard/dist/assets/{use-latest-request-guard-AxJF9SEJ.js → use-latest-request-guard-DK-A4bBp.js} +1 -1
  101. package/dashboard/dist/assets/use-limits-display-prefs-ZauQzxE_.js +1 -0
  102. package/dashboard/dist/assets/{use-native-settings-BQgB6_PB.js → use-native-settings-BZLEIUK8.js} +1 -1
  103. package/dashboard/dist/assets/{use-ordered-list-ogi7Okzf.js → use-ordered-list-De_Mcm_H.js} +1 -1
  104. package/dashboard/dist/assets/use-reduced-motion-DatTtp2N.js +1 -0
  105. package/dashboard/dist/assets/{use-transform-BQqoo1et.js → use-transform-XCDD5IrX.js} +1 -1
  106. package/dashboard/dist/assets/use-usage-limits-BncGDhoF.js +1 -0
  107. package/dashboard/dist/assets/{useCurrency-Bv9g8mpq.js → useCurrency-DXPclxBT.js} +1 -1
  108. package/dashboard/dist/assets/{usePositioner-CQiZGknc.js → usePositioner-C-E1npCy.js} +1 -1
  109. package/dashboard/dist/assets/{useTokenFormat-BUVirY0k.js → useTokenFormat-B70xhy9u.js} +1 -1
  110. package/dashboard/dist/assets/{zap-DR3VD0yY.js → zap-D7gRgGCj.js} +1 -1
  111. package/dashboard/dist/index.html +5 -5
  112. package/dashboard/dist/ip-check.html +2 -2
  113. package/dashboard/dist/leaderboard.html +2 -2
  114. package/dashboard/dist/privacy.html +8 -2
  115. package/dashboard/dist/share.html +2 -2
  116. package/package.json +4 -3
  117. package/src/cli.js +10 -0
  118. package/src/commands/sync.js +18 -3
  119. package/src/lib/codex-rollout-parser.js +29 -2
  120. package/src/lib/codex-service-tier.js +13 -0
  121. package/src/lib/commandcode-limits.js +27 -11
  122. package/src/lib/grok-limits.js +1 -0
  123. package/src/lib/local-api.js +122 -11
  124. package/src/lib/local-usage-transfer.js +271 -0
  125. package/src/lib/opencode-go-limits.js +17 -6
  126. package/src/lib/pricing/curated-overrides.json +24 -0
  127. package/src/lib/pricing/index.js +50 -39
  128. package/src/lib/pricing/seed-snapshot.json +1 -1
  129. package/src/lib/provider-api-key-store.js +110 -0
  130. package/src/lib/rollout.js +27 -3
  131. package/src/lib/sentry.js +231 -0
  132. package/src/lib/session-analytics.js +15 -2
  133. package/src/lib/static-server.js +15 -2
  134. package/src/lib/usage-limits.js +74 -24
  135. package/src/lib/workbuddy-ipc.js +191 -0
  136. package/src/lib/workbuddy-limits.js +564 -0
  137. package/dashboard/dist/assets/CloudPage-26bhEYqI.js +0 -2
  138. package/dashboard/dist/assets/DashboardPage-CP_PMMga.js +0 -1
  139. package/dashboard/dist/assets/DevicePage-B0fLd80M.js +0 -1
  140. package/dashboard/dist/assets/DialogDescription-CXDxWzGi.js +0 -1
  141. package/dashboard/dist/assets/LandingPage-BQNOdAkR.js +0 -2
  142. package/dashboard/dist/assets/LimitsPage-BLJsmVVy.js +0 -9
  143. package/dashboard/dist/assets/SettingsPage-CrczfZiZ.js +0 -5
  144. package/dashboard/dist/assets/TokenGalaxy-B5IGaLQK.js +0 -4426
  145. package/dashboard/dist/assets/TooltipPopup-B6FqLWO7.js +0 -1
  146. package/dashboard/dist/assets/TrendMonitor-B4kJUwmF.js +0 -19
  147. package/dashboard/dist/assets/__vite-browser-external--HDUIUZr.js +0 -45
  148. package/dashboard/dist/assets/__vite-browser-external-B0m8a6Te.css +0 -1
  149. package/dashboard/dist/assets/host-mode-C2K0MMOs.js +0 -1
  150. package/dashboard/dist/assets/module-DOCYJaxl.js +0 -3
  151. package/dashboard/dist/assets/use-limits-display-prefs-DOZzuTwo.js +0 -1
  152. package/dashboard/dist/assets/use-reduced-motion-D5PHT_kx.js +0 -1
  153. package/dashboard/dist/assets/use-session-efficiency-pref-DP3hu3Rp.js +0 -1
  154. package/dashboard/dist/assets/use-usage-limits-DAf6O4aZ.js +0 -1
@@ -1,4 +1,4 @@
1
- import{r as n,j as $}from"./__vite-browser-external--HDUIUZr.js";import{M as D,a as S,u as A,b as F,P as K,c as U,L as W}from"./react-OW7HALVO.js";function I(e,r){if(typeof e=="function")return e(r);e!=null&&(e.current=r)}function B(...e){return r=>{let t=!1;const o=e.map(l=>{const i=I(l,r);return!t&&typeof i=="function"&&(t=!0),i});if(t)return()=>{for(let l=0;l<o.length;l++){const i=o[l];typeof i=="function"?i():I(e[l],null)}}}}function G(...e){return n.useCallback(B(...e),e)}class V extends n.Component{getSnapshotBeforeUpdate(r){const t=this.props.childRef.current;if(S(t)&&r.isPresent&&!this.props.isPresent&&this.props.pop!==!1){const o=t.offsetParent,l=S(o)&&o.offsetWidth||0,i=S(o)&&o.offsetHeight||0,d=getComputedStyle(t),s=this.props.sizeRef.current;s.height=parseFloat(d.height),s.width=parseFloat(d.width),s.top=t.offsetTop,s.left=t.offsetLeft,s.right=l-s.width-s.left,s.bottom=i-s.height-s.top,s.direction=d.direction}return null}componentDidUpdate(){}render(){return this.props.children}}function X({children:e,isPresent:r,anchorX:t,anchorY:o,root:l,pop:i}){const d=n.useId(),s=n.useRef(null),y=n.useRef({width:0,height:0,top:0,left:0,right:0,bottom:0,direction:"ltr"}),{nonce:E}=n.useContext(D),a=i!==!1?e.props?.ref??e?.ref:void 0,M=G(s,a);return n.useInsertionEffect(()=>{const{width:u,height:p,top:x,left:C,right:f,bottom:R,direction:L}=y.current;if(r||i===!1||!s.current||!u||!p)return;const b=L==="rtl",g=t==="left"?b?`right: ${f}`:`left: ${C}`:b?`left: ${C}`:`right: ${f}`,j=o==="bottom"?`bottom: ${R}`:`top: ${x}`;s.current.dataset.motionPopId=d;const h=document.createElement("style");E&&(h.nonce=E);const P=l??document.head;return P.appendChild(h),h.sheet&&h.sheet.insertRule(`
1
+ import{r as n,j as $}from"./__vite-browser-external-ClVJNQu3.js";import{M as D,a as S,u as A,b as F,P as K,c as U,L as W}from"./react-DMs4C4qS.js";function I(e,r){if(typeof e=="function")return e(r);e!=null&&(e.current=r)}function B(...e){return r=>{let t=!1;const o=e.map(l=>{const i=I(l,r);return!t&&typeof i=="function"&&(t=!0),i});if(t)return()=>{for(let l=0;l<o.length;l++){const i=o[l];typeof i=="function"?i():I(e[l],null)}}}}function G(...e){return n.useCallback(B(...e),e)}class V extends n.Component{getSnapshotBeforeUpdate(r){const t=this.props.childRef.current;if(S(t)&&r.isPresent&&!this.props.isPresent&&this.props.pop!==!1){const o=t.offsetParent,l=S(o)&&o.offsetWidth||0,i=S(o)&&o.offsetHeight||0,d=getComputedStyle(t),s=this.props.sizeRef.current;s.height=parseFloat(d.height),s.width=parseFloat(d.width),s.top=t.offsetTop,s.left=t.offsetLeft,s.right=l-s.width-s.left,s.bottom=i-s.height-s.top,s.direction=d.direction}return null}componentDidUpdate(){}render(){return this.props.children}}function X({children:e,isPresent:r,anchorX:t,anchorY:o,root:l,pop:i}){const d=n.useId(),s=n.useRef(null),y=n.useRef({width:0,height:0,top:0,left:0,right:0,bottom:0,direction:"ltr"}),{nonce:E}=n.useContext(D),a=i!==!1?e.props?.ref??e?.ref:void 0,M=G(s,a);return n.useInsertionEffect(()=>{const{width:u,height:p,top:x,left:C,right:f,bottom:R,direction:L}=y.current;if(r||i===!1||!s.current||!u||!p)return;const b=L==="rtl",g=t==="left"?b?`right: ${f}`:`left: ${C}`:b?`left: ${C}`:`right: ${f}`,j=o==="bottom"?`bottom: ${R}`:`top: ${x}`;s.current.dataset.motionPopId=d;const h=document.createElement("style");E&&(h.nonce=E);const P=l??document.head;return P.appendChild(h),h.sheet&&h.sheet.insertRule(`
2
2
  [data-motion-pop-id="${d}"] {
3
3
  position: absolute !important;
4
4
  width: ${u}px !important;
@@ -1 +1 @@
1
- import{o}from"./__vite-browser-external--HDUIUZr.js";const e={name:"info",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]};e.node;const a=o(e);export{a as I};
1
+ import{o}from"./__vite-browser-external-ClVJNQu3.js";const e={name:"info",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]};e.node;const a=o(e);export{a as I};
@@ -1 +1 @@
1
- import{o as n}from"./__vite-browser-external--HDUIUZr.js";const e={name:"link-2",size:24,node:[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]};e.node;const a=n(e);export{a as L};
1
+ import{o as n}from"./__vite-browser-external-ClVJNQu3.js";const e={name:"link-2",size:24,node:[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]};e.node;const a=n(e);export{a as L};
@@ -1 +1 @@
1
- import{o as a}from"./__vite-browser-external--HDUIUZr.js";const e={name:"loader-circle",size:24,node:[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],aliases:["loader-2"]};e.node;const c=a(e);export{c as L};
1
+ import{o as a}from"./__vite-browser-external-ClVJNQu3.js";const e={name:"loader-circle",size:24,node:[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],aliases:["loader-2"]};e.node;const c=a(e);export{c as L};
@@ -0,0 +1 @@
1
+ import{o as g,r as l,al as b,ar as y}from"./__vite-browser-external-ClVJNQu3.js";const w={name:"pencil",size:24,node:[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]};w.node;const p=g(w),d="tt.qualityPerDollar.enabled";function i(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(d)==="1"}catch{return!1}}function k(){const[t,n]=l.useState(i);l.useEffect(()=>{if(typeof window>"u")return;const a=e=>{(e.key===null||e.key===d)&&n(i())};return window.addEventListener("storage",a),()=>window.removeEventListener("storage",a)},[]);const o=l.useCallback(a=>{const e=!!a;n(e);try{window.localStorage.setItem(d,e?"1":"0")}catch{}},[]),s=l.useCallback(()=>o(!i()),[o]);return{enabled:t,setEnabled:o,toggle:s}}const f="tt.sessionEfficiency.enabled";function u(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(f)==="1"}catch{return!1}}function S(){const[t,n]=l.useState(u);l.useEffect(()=>{if(typeof window>"u")return;const a=e=>{(e.key===null||e.key===f)&&n(u())};return window.addEventListener("storage",a),()=>window.removeEventListener("storage",a)},[]);const o=l.useCallback(a=>{const e=!!a;n(e);try{window.localStorage.setItem(f,e?"1":"0")}catch{}},[]),s=l.useCallback(()=>o(!u()),[o]);return{enabled:t,setEnabled:o,toggle:s}}const m="tokentracker:local-usage-changed",L=5*1024*1024;function h(t,n,o=""){const a=(o?t.filter(r=>r.id===o):[...t,...n]).some(r=>Number(r.billable_total_tokens)>0),e=r=>({...r,total_tokens:a?r.billable_total_tokens??r.total_tokens:r.total_tokens});return{devices:t.map(e),accountSources:n.map(e)}}async function E({action:t,...n}={},o=!0){const s=new URLSearchParams;if(!t)for(const[r,c]of Object.entries(n))c!=null&&c!==""&&s.set(r,String(c));const a=await fetch(`/api/local-usage${s.size?`?${s}`:""}`,{method:t?"POST":"GET",cache:"no-store",headers:{...await b(),"Content-Type":"application/json"},...t?{body:JSON.stringify({action:t,...n})}:{}});if(a.status===401&&o)return y(),E({action:t,...n},!1);const e=await a.json();if(!a.ok)throw Object.assign(new Error(e.code||"transfer_failed"),{code:e.code});return e}function A(t,n={}){return E({action:t,...n})}function P({from:t,to:n,timeZone:o,tzOffsetMinutes:s}={}){return E({from:t,to:n,tz:o,tz_offset_minutes:s})}export{L,p as P,S as a,m as b,h as c,A as l,P as r,k as u};
@@ -1 +1 @@
1
- import"./__vite-browser-external--HDUIUZr.js";const s=r=>{let{transform:t}=r;return{...t,y:0}},e=r=>{let{transform:t}=r;return{...t,x:0}};export{e as a,s as r};
1
+ import"./__vite-browser-external-ClVJNQu3.js";const s=r=>{let{transform:t}=r;return{...t,y:0}},e=r=>{let{transform:t}=r;return{...t,x:0}};export{e as a,s as r};