tokentracker-cli 1.4.14 → 1.5.1

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 (125) hide show
  1. package/README.md +3 -3
  2. package/README.zh-CN.md +1 -1
  3. package/dashboard/dist/.well-known/submitby-ai/6e2fa70e-9eb2-4c97-a9a9-fed567a3d4a9.txt +1 -0
  4. package/dashboard/dist/assets/AchievementBadge-mB7HZSGE.js +1 -0
  5. package/dashboard/dist/assets/{AchievementsPage-YvgCj3Tf.js → AchievementsPage-DLzeq_eo.js} +2 -2
  6. package/dashboard/dist/assets/{AchievementsSection-C2llp4CQ.js → AchievementsSection-DrXQyDns.js} +1 -1
  7. package/dashboard/dist/assets/{BadgeDetailModal-DH1lqy_t.js → BadgeDetailModal-WrgKRybi.js} +1 -1
  8. package/dashboard/dist/assets/{BotAnimated-BPJ80H6q.js → BotAnimated-DFRaixVK.js} +1 -1
  9. package/dashboard/dist/assets/{Card-D0lZNo7p.js → Card-bFq2tlO8.js} +1 -1
  10. package/dashboard/dist/assets/{CloudCheckoutPage-YCIw4n94.js → CloudCheckoutPage-gwhGxavy.js} +1 -1
  11. package/dashboard/dist/assets/{CloudPage-D5PNgyOe.js → CloudPage-BD4iBYeZ.js} +2 -2
  12. package/dashboard/dist/assets/{CommandPalette-CfNOZlEo.js → CommandPalette-C_KlPl0U.js} +1 -1
  13. package/dashboard/dist/assets/{CommunityStatsModal-eywEJpBo.js → CommunityStatsModal-Cl1Bgv8M.js} +1 -1
  14. package/dashboard/dist/assets/{ConfirmModal-MvUDUW0j.js → ConfirmModal-NWoYevYC.js} +1 -1
  15. package/dashboard/dist/assets/{Controls-B3s01gQc.js → Controls-D2-D2cfA.js} +1 -1
  16. package/dashboard/dist/assets/{DashboardPage-7zQm3Y95.js → DashboardPage-vITMnPXx.js} +1 -1
  17. package/dashboard/dist/assets/{DateRangePopover-C7T4EjRr.js → DateRangePopover-8EMVXuH6.js} +1 -1
  18. package/dashboard/dist/assets/DevicePage-DbP8d6bM.js +1 -0
  19. package/dashboard/dist/assets/{DialogClose-DlVXuWgp.js → DialogClose-CEstgLa1.js} +1 -1
  20. package/dashboard/dist/assets/DialogDescription-0wcygxtH.js +1 -0
  21. package/dashboard/dist/assets/{DialogTitle-Dc0-pI0j.js → DialogTitle-DP5TLLbz.js} +1 -1
  22. package/dashboard/dist/assets/{ElectricLogo-BRp4UZF4.js → ElectricLogo-Uvi3yMum.js} +1 -1
  23. package/dashboard/dist/assets/{FadeIn-DFL15trS.js → FadeIn-Dpzihg6f.js} +1 -1
  24. package/dashboard/dist/assets/{HeaderGithubStar-CPWpKT2q.js → HeaderGithubStar-DllqemKr.js} +1 -1
  25. package/dashboard/dist/assets/{HoverTooltip-DXIFAD1D.js → HoverTooltip-Dc-TAH6l.js} +1 -1
  26. package/dashboard/dist/assets/{IpCheckPage-DBElmZxm.js → IpCheckPage-jd1D5ZKX.js} +1 -1
  27. package/dashboard/dist/assets/{LandingPage-3mpjg69k.js → LandingPage-CB1ZVw-a.js} +2 -2
  28. package/dashboard/dist/assets/{LeaderboardPage-xIQTyBSj.js → LeaderboardPage-Bt2cRRmE.js} +2 -2
  29. package/dashboard/dist/assets/{LeaderboardProBadge-hMzno53J.js → LeaderboardProBadge-BVlyVOFf.js} +1 -1
  30. package/dashboard/dist/assets/LeaderboardProfileModal-CwQFRJg_.js +73 -0
  31. package/dashboard/dist/assets/{LeaderboardProfilePage-CIVWObmo.js → LeaderboardProfilePage-CeqcTbUG.js} +1 -1
  32. package/dashboard/dist/assets/LimitsPage-Bp4ZORmR.js +6 -0
  33. package/dashboard/dist/assets/{LocalOnlyNotice-Cnzi2tn4.js → LocalOnlyNotice-B2_HoCVD.js} +1 -1
  34. package/dashboard/dist/assets/{LoginCard-DOO_XdQm.js → LoginCard-nw9JOc2d.js} +1 -1
  35. package/dashboard/dist/assets/{LoginModal-B5Ec0gTs.js → LoginModal-BHNLTK1D.js} +1 -1
  36. package/dashboard/dist/assets/{LoginPage-BcyuULTm.js → LoginPage-LI2GZKhM.js} +1 -1
  37. package/dashboard/dist/assets/{PetPage-DeTdSNPI.js → PetPage-CK6sPeI0.js} +2 -2
  38. package/dashboard/dist/assets/{PopoverPopup-BqiCJJkn.js → PopoverPopup-BsXchEVa.js} +1 -1
  39. package/dashboard/dist/assets/{ProviderIcon-94H7cG7M.js → ProviderIcon-vgCEy0dh.js} +1 -1
  40. package/dashboard/dist/assets/{ResetPasswordPage-BfaaiVWq.js → ResetPasswordPage-B4CPj2vX.js} +1 -1
  41. package/dashboard/dist/assets/{Select-Dk1g2jS1.js → Select-BkAy6P2r.js} +1 -1
  42. package/dashboard/dist/assets/{SelectItemText-CgY3YTCX.js → SelectItemText-C0RNqDrD.js} +1 -1
  43. package/dashboard/dist/assets/{SelfHostPage-CINWSnGe.js → SelfHostPage-B-_w-Z-a.js} +1 -1
  44. package/dashboard/dist/assets/{ServiceStatusPage-B3bZ4RLp.js → ServiceStatusPage-5YevsGGD.js} +1 -1
  45. package/dashboard/dist/assets/{SessionsPage-Bt-zYCLB.js → SessionsPage-CmWXBqD2.js} +2 -2
  46. package/dashboard/dist/assets/{SettingsPage-DgvNelAH.js → SettingsPage-CA70zP-t.js} +3 -3
  47. package/dashboard/dist/assets/{SkillsPage-BeapUXZg.js → SkillsPage-CNamhfzU.js} +1 -1
  48. package/dashboard/dist/assets/{TokenGalaxy-BmARBReu.js → TokenGalaxy-CXrVBSk6.js} +1 -1
  49. package/dashboard/dist/assets/{TooltipPopup-DMkTj-q1.js → TooltipPopup-CR4MqElX.js} +1 -1
  50. package/dashboard/dist/assets/{TrendMonitor-DErfAB4Q.js → TrendMonitor-DQfcrEve.js} +1 -1
  51. package/dashboard/dist/assets/{WidgetsPage-D7MRIlIQ.js → WidgetsPage-BBXxtZbP.js} +1 -1
  52. package/dashboard/dist/assets/{WrappedPage-Dwl8J96o.js → WrappedPage-C8i2KlMF.js} +1 -1
  53. package/dashboard/dist/assets/{__vite-browser-external-Bp0fEMn1.js → __vite-browser-external-BEEzY7mq.js} +3 -3
  54. package/dashboard/dist/assets/{agent-logos-D5X6WoAY.js → agent-logos-CxQb8vir.js} +1 -1
  55. package/dashboard/dist/assets/{arrow-left-Bmf0v8yS.js → arrow-left-D6zkcLVt.js} +1 -1
  56. package/dashboard/dist/assets/{arrow-right-CrY1rjed.js → arrow-right-BGb-XVn_.js} +1 -1
  57. package/dashboard/dist/assets/{arrow-up-right-CK7lXR6O.js → arrow-up-right-XTStagDJ.js} +1 -1
  58. package/dashboard/dist/assets/{calendar-days-zge_5pfQ.js → calendar-days-Cz3NGZiS.js} +1 -1
  59. package/dashboard/dist/assets/{check-Bt-LY4Pn.js → check-1z_vmHPD.js} +1 -1
  60. package/dashboard/dist/assets/{chevron-down-BOy_MKfd.js → chevron-down-CkSBY3bE.js} +1 -1
  61. package/dashboard/dist/assets/{cloud-checkout-4NPL78Jg.js → cloud-checkout-pD5C4r_S.js} +1 -1
  62. package/dashboard/dist/assets/{composite-UMkd0X7k.js → composite-BtDzx3a2.js} +1 -1
  63. package/dashboard/dist/assets/{copy-DJTFZc8D.js → copy-Ctv_wxuD.js} +1 -1
  64. package/dashboard/dist/assets/{download-BJD3ff5y.js → download-DKbKMGSR.js} +1 -1
  65. package/dashboard/dist/assets/{external-link-D2m7vRGI.js → external-link-g9cU017t.js} +1 -1
  66. package/dashboard/dist/assets/{flame-D7CLiokj.js → flame-DZq3kXUt.js} +1 -1
  67. package/dashboard/dist/assets/{format-tokens-BYDaVVT_.js → format-tokens-CXQfx0PC.js} +1 -1
  68. package/dashboard/dist/assets/{gift-toIl7elE.js → gift-CKlKjGP6.js} +1 -1
  69. package/dashboard/dist/assets/{icons-DscB4AX2.js → icons-xPGMnBjl.js} +1 -1
  70. package/dashboard/dist/assets/{index-BGu15oeA.js → index-BwOjMtB2.js} +1 -1
  71. package/dashboard/dist/assets/{index-6krHCwUe.js → index-CDBOKcDh.js} +1 -1
  72. package/dashboard/dist/assets/{index-BLS9byMs.js → index-Dl0oFLNr.js} +33 -33
  73. package/dashboard/dist/assets/{index-CEsURfpC.js → index-fVbP5wOv.js} +1 -1
  74. package/dashboard/dist/assets/{info-D73-a9a_.js → info-D9xNIuGh.js} +1 -1
  75. package/dashboard/dist/assets/{link-2-DwpvF9Sr.js → link-2-Bk5wYt2n.js} +1 -1
  76. package/dashboard/dist/assets/{loader-circle-BTs6Fc8Y.js → loader-circle-CcN3pHWb.js} +1 -1
  77. package/dashboard/dist/assets/{local-usage-transfer-BXhe_z5f.js → local-usage-transfer-CYcy1ici.js} +1 -1
  78. package/dashboard/dist/assets/{modifiers.esm-CFoTDZHy.js → modifiers.esm-DbpEzkJe.js} +1 -1
  79. package/dashboard/dist/assets/module-ZyVsxBG_.js +3 -0
  80. package/dashboard/dist/assets/{monitor-smartphone-4ejjSL5C.js → monitor-smartphone-WkWv1qIS.js} +1 -1
  81. package/dashboard/dist/assets/{play-Ch1IEQyR.js → play-2yZGWMes.js} +1 -1
  82. package/dashboard/dist/assets/{plus-Bc8vdvFi.js → plus-mOF8tG1F.js} +1 -1
  83. package/dashboard/dist/assets/{provider-display-BhKfIayc.js → provider-display-7gaOvgMp.js} +1 -1
  84. package/dashboard/dist/assets/{react-BhuZeLEc.js → react-CdPiPDhk.js} +1 -1
  85. package/dashboard/dist/assets/{safePolygon-ag21oDI1.js → safePolygon-C7FJLAlh.js} +1 -1
  86. package/dashboard/dist/assets/{search-BhM-pD0f.js → search-C63nCrjo.js} +1 -1
  87. package/dashboard/dist/assets/{server-CWZM_fiB.js → server-BaG1rnuv.js} +1 -1
  88. package/dashboard/dist/assets/{shield-check-BdF9MoZ4.js → shield-check-D_4-Cm6L.js} +1 -1
  89. package/dashboard/dist/assets/{skills-api-PC7TzIba.js → skills-api-DfbzwpDv.js} +1 -1
  90. package/dashboard/dist/assets/{sortable.esm-u_yCrBFE.js → sortable.esm-D-v8FRX5.js} +1 -1
  91. package/dashboard/dist/assets/{store-19qppboP.js → store-Dv_FYrXK.js} +1 -1
  92. package/dashboard/dist/assets/{terminal-ikPM7Gyt.js → terminal-FQi6MaYt.js} +1 -1
  93. package/dashboard/dist/assets/{trash-DuS_INdf.js → trash-TbK96dEz.js} +1 -1
  94. package/dashboard/dist/assets/use-community-stats-DGoWVZuk.js +1 -0
  95. package/dashboard/dist/assets/{use-latest-request-guard-CClqxkji.js → use-latest-request-guard-Dg6uSaYt.js} +1 -1
  96. package/dashboard/dist/assets/{use-limits-display-prefs-C2IK7QqP.js → use-limits-display-prefs-Djbdp7fi.js} +1 -1
  97. package/dashboard/dist/assets/{use-native-settings-wciHeNL2.js → use-native-settings-DIk0AF3b.js} +1 -1
  98. package/dashboard/dist/assets/{use-ordered-list-CUnip521.js → use-ordered-list-CUqV3Zgl.js} +1 -1
  99. package/dashboard/dist/assets/use-reduced-motion-DMCok-vZ.js +1 -0
  100. package/dashboard/dist/assets/{use-transform-BFydEHQY.js → use-transform-D_-w22c8.js} +1 -1
  101. package/dashboard/dist/assets/{use-usage-limits-BqWWrW6O.js → use-usage-limits-h7aGsIQr.js} +1 -1
  102. package/dashboard/dist/assets/{useCurrency-sg6d4Wea.js → useCurrency-B_AuLCsL.js} +1 -1
  103. package/dashboard/dist/assets/{usePositioner-CLPx448B.js → usePositioner-DfxvIif8.js} +1 -1
  104. package/dashboard/dist/assets/{useTokenFormat-BOt7YH_Y.js → useTokenFormat-bbO13V4s.js} +1 -1
  105. package/dashboard/dist/assets/{zap-B6nc-Upg.js → zap-k07-EXTK.js} +1 -1
  106. package/dashboard/dist/index.html +20 -1
  107. package/dashboard/dist/indexnow-key.txt +1 -0
  108. package/dashboard/dist/ip-check.html +1 -1
  109. package/dashboard/dist/leaderboard.html +1 -1
  110. package/dashboard/dist/share.html +1 -1
  111. package/dashboard/dist/tt6a1c9e2f4b8d.txt +1 -0
  112. package/package.json +3 -3
  113. package/src/lib/dsh-session.js +580 -0
  114. package/src/lib/local-api.js +40 -3
  115. package/src/lib/pricing/seed-snapshot.json +1 -1
  116. package/src/lib/qoder-limits.js +178 -38
  117. package/src/lib/session-analytics.js +89 -11
  118. package/dashboard/dist/assets/AchievementBadge-BUYKivjx.js +0 -1
  119. package/dashboard/dist/assets/DevicePage-CZNBMHfk.js +0 -1
  120. package/dashboard/dist/assets/DialogDescription-C3mLrii8.js +0 -1
  121. package/dashboard/dist/assets/LeaderboardProfileModal-Cw0_YCXH.js +0 -73
  122. package/dashboard/dist/assets/LimitsPage-i_AEHRcd.js +0 -6
  123. package/dashboard/dist/assets/module-C2SOSUuR.js +0 -3
  124. package/dashboard/dist/assets/use-community-stats-DnRz7Akf.js +0 -1
  125. package/dashboard/dist/assets/use-reduced-motion-D586B7AA.js +0 -1
@@ -1,4 +1,4 @@
1
- import{r as n,j as $}from"./__vite-browser-external-Bp0fEMn1.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-BhuZeLEc.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-BEEzY7mq.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-CdPiPDhk.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-Bp0fEMn1.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-BEEzY7mq.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-Bp0fEMn1.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-BEEzY7mq.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-Bp0fEMn1.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-BEEzY7mq.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 +1 @@
1
- import{o as g,r as l,al as b,ar as y}from"./__vite-browser-external-Bp0fEMn1.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
+ import{o as g,r as l,al as b,ar as y}from"./__vite-browser-external-BEEzY7mq.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-Bp0fEMn1.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-BEEzY7mq.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};