tokentracker-cli 1.5.2 → 1.5.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/{AchievementBadge-B5kmt0VD.js → AchievementBadge-CKNb_cwg.js} +1 -1
- package/dashboard/dist/assets/{AchievementsPage-C0FlkOo0.js → AchievementsPage-u9P8DXJI.js} +2 -2
- package/dashboard/dist/assets/{AchievementsSection-CRcp80Pp.js → AchievementsSection-BSCUJ4DR.js} +1 -1
- package/dashboard/dist/assets/{BadgeDetailModal-DAFjGbKW.js → BadgeDetailModal-Bg7cE3Zq.js} +1 -1
- package/dashboard/dist/assets/{BotAnimated-CO0bbimB.js → BotAnimated-C7D2WbQA.js} +1 -1
- package/dashboard/dist/assets/{Card-Xhr5exz8.js → Card-B4IqAhai.js} +1 -1
- package/dashboard/dist/assets/{CloudCheckoutPage-DsQ7FmsI.js → CloudCheckoutPage-P75pH9Ym.js} +1 -1
- package/dashboard/dist/assets/{CloudPage-DkSexu5V.js → CloudPage-DDEZfmZg.js} +2 -2
- package/dashboard/dist/assets/{CommandPalette-Bm0huQdj.js → CommandPalette-CER_AklA.js} +1 -1
- package/dashboard/dist/assets/{CommunityStatsModal-BsL8GN8Q.js → CommunityStatsModal-Cbb74eib.js} +1 -1
- package/dashboard/dist/assets/{ConfirmModal-_WPp292g.js → ConfirmModal-Q1ZQdZHt.js} +1 -1
- package/dashboard/dist/assets/{Controls-ktzn68KM.js → Controls-DaGOfcoz.js} +1 -1
- package/dashboard/dist/assets/DashboardPage-CXI7RmxO.js +1 -0
- package/dashboard/dist/assets/{DateRangePopover-DWr4zIzF.js → DateRangePopover-DSS1Ira_.js} +1 -1
- package/dashboard/dist/assets/{DevicePage-CBa8Mk47.js → DevicePage-6zPLYydh.js} +1 -1
- package/dashboard/dist/assets/{DialogClose-CZ5jzgtb.js → DialogClose-DdCQ36LK.js} +1 -1
- package/dashboard/dist/assets/DialogDescription-DztHQvj-.js +1 -0
- package/dashboard/dist/assets/{DialogTitle-Dr0N6q15.js → DialogTitle-BjP217Y1.js} +1 -1
- package/dashboard/dist/assets/{ElectricLogo-sYqgrO6-.js → ElectricLogo-Dhq8PM4h.js} +1 -1
- package/dashboard/dist/assets/{FadeIn-Qq-hcrZW.js → FadeIn-CGNbED4E.js} +1 -1
- package/dashboard/dist/assets/{HeaderGithubStar-B77zSv7i.js → HeaderGithubStar-DwqEFzb6.js} +1 -1
- package/dashboard/dist/assets/{HoverTooltip-lRDaUmoW.js → HoverTooltip-CQZTgyQy.js} +1 -1
- package/dashboard/dist/assets/{IpCheckPage-B6AvHZjA.js → IpCheckPage-Bz09HXLn.js} +1 -1
- package/dashboard/dist/assets/{LandingPage-DgzOjf3x.js → LandingPage-DC-lZsYR.js} +2 -2
- package/dashboard/dist/assets/{LeaderboardPage-BtjjtDMC.js → LeaderboardPage-D8MpLM_t.js} +2 -2
- package/dashboard/dist/assets/{LeaderboardProBadge-B2wNTUTU.js → LeaderboardProBadge-pdXgokhE.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardProfileModal-DJJckwHh.js → LeaderboardProfileModal-nHZLiE0m.js} +3 -3
- package/dashboard/dist/assets/{LeaderboardProfilePage-DJdxByl2.js → LeaderboardProfilePage-BKv3oIAW.js} +1 -1
- package/dashboard/dist/assets/LimitsPage-TmRTgSCb.js +6 -0
- package/dashboard/dist/assets/{LocalOnlyNotice-B2lVqf_H.js → LocalOnlyNotice-aF01udyR.js} +1 -1
- package/dashboard/dist/assets/{LoginCard-i0gg1yby.js → LoginCard-BaroD0Ct.js} +1 -1
- package/dashboard/dist/assets/{LoginModal-B-loLNZM.js → LoginModal-0jgyMGVM.js} +1 -1
- package/dashboard/dist/assets/{LoginPage-D_swI75j.js → LoginPage-BUx8U58i.js} +1 -1
- package/dashboard/dist/assets/{PetPage-DDpKvpjG.js → PetPage-CpOjtJqg.js} +2 -2
- package/dashboard/dist/assets/{PopoverPopup-Gja4MyEK.js → PopoverPopup-BYjfer-M.js} +1 -1
- package/dashboard/dist/assets/{ProviderIcon-DOPj7tAZ.js → ProviderIcon-NtYa2h0u.js} +1 -1
- package/dashboard/dist/assets/{ResetPasswordPage-BVADLk89.js → ResetPasswordPage-CYUg7TR1.js} +1 -1
- package/dashboard/dist/assets/{Select-D-38tN-E.js → Select-CYP95o5y.js} +1 -1
- package/dashboard/dist/assets/{SelectItemText-jN61ukxk.js → SelectItemText-BCDfusOM.js} +1 -1
- package/dashboard/dist/assets/{SelfHostPage-k7AkGpl1.js → SelfHostPage-BmVc2rIT.js} +1 -1
- package/dashboard/dist/assets/ServiceStatusPage-Dyp8NwIn.js +1 -0
- package/dashboard/dist/assets/SessionsPage-tGEj6Ztz.js +3 -0
- package/dashboard/dist/assets/{SettingsPage-DfnMCAuA.js → SettingsPage-CCMbq5wc.js} +3 -3
- package/dashboard/dist/assets/{SkillsPage-YyIHIaHN.js → SkillsPage-C4O4fbaQ.js} +1 -1
- package/dashboard/dist/assets/{TokenGalaxy-BLcvZuQ9.js → TokenGalaxy-D2d738xr.js} +1 -1
- package/dashboard/dist/assets/{TooltipPopup-3E8kyVzz.js → TooltipPopup-BJfFYesG.js} +1 -1
- package/dashboard/dist/assets/{TrendMonitor-ByKAdXSF.js → TrendMonitor-CElakFSU.js} +1 -1
- package/dashboard/dist/assets/{WidgetsPage-BgEVIIzL.js → WidgetsPage-Cvd1LbJm.js} +1 -1
- package/dashboard/dist/assets/{WrappedPage-HjbX8QaA.js → WrappedPage-wRC1tE_a.js} +1 -1
- package/dashboard/dist/assets/{__vite-browser-external-Br-KAXh6.css → __vite-browser-external-CMBWGkOq.css} +1 -1
- package/dashboard/dist/assets/__vite-browser-external-V4TPLCJG.js +45 -0
- package/dashboard/dist/assets/{agent-logos-BVF2siPQ.js → agent-logos-Ba57HF3w.js} +1 -1
- package/dashboard/dist/assets/{arrow-left-CYO24PGP.js → arrow-left-B1bKnxXL.js} +1 -1
- package/dashboard/dist/assets/{arrow-right-Xg9PZYhw.js → arrow-right-DrOlKzX5.js} +1 -1
- package/dashboard/dist/assets/{arrow-up-right-B7ah6Qv-.js → arrow-up-right-hlYpo3yw.js} +1 -1
- package/dashboard/dist/assets/{calendar-days-BV_iG938.js → calendar-days-CSY6SEsI.js} +1 -1
- package/dashboard/dist/assets/{check--EZH8RTp.js → check-xrP1gLw5.js} +1 -1
- package/dashboard/dist/assets/{chevron-down-BzGTlk0-.js → chevron-down-6-zT5n9d.js} +1 -1
- package/dashboard/dist/assets/{cloud-checkout-BgyxPHEh.js → cloud-checkout-BZymZD4K.js} +1 -1
- package/dashboard/dist/assets/{composite-C0KrmLEK.js → composite-C9izWafa.js} +1 -1
- package/dashboard/dist/assets/{copy-BtucSK2U.js → copy-Dkas5wZX.js} +1 -1
- package/dashboard/dist/assets/{download-CWHq03Y2.js → download-CagGRs0_.js} +1 -1
- package/dashboard/dist/assets/{external-link-DCTXF5VZ.js → external-link-DRl10hxd.js} +1 -1
- package/dashboard/dist/assets/{flame-BE5TsqVF.js → flame-CkvmsTFB.js} +1 -1
- package/dashboard/dist/assets/{format-tokens-ThNIMWnZ.js → format-tokens-BtwhO3mV.js} +1 -1
- package/dashboard/dist/assets/{gift-DgaN9s4-.js → gift-YzjXkMQx.js} +1 -1
- package/dashboard/dist/assets/{icons-B4r5EiDC.js → icons-CHhKYs0u.js} +1 -1
- package/dashboard/dist/assets/{index-DqCtgU0G.js → index-B0MQZTrM.js} +1 -1
- package/dashboard/dist/assets/{index-fNKH4U7j.js → index-C2DK8av-.js} +1 -1
- package/dashboard/dist/assets/{index-CKhcCLNC.js → index-CJknN9Jd.js} +1 -1
- package/dashboard/dist/assets/{index-DFF9xo6f.js → index-DojzoMqd.js} +1 -1
- package/dashboard/dist/assets/{info-B4YzRR4y.js → info-Torep-Ti.js} +1 -1
- package/dashboard/dist/assets/{link-2-DzbUbaBw.js → link-2-DE5Yu-z6.js} +1 -1
- package/dashboard/dist/assets/{loader-circle-B9c7D-7v.js → loader-circle-BL8LxD9n.js} +1 -1
- package/dashboard/dist/assets/{local-usage-transfer-btuk_b0Y.js → local-usage-transfer-8X1InWix.js} +1 -1
- package/dashboard/dist/assets/{modifiers.esm-BjrU-Xz7.js → modifiers.esm-D60-6UQa.js} +1 -1
- package/dashboard/dist/assets/{monitor-smartphone-Bwn4tb4q.js → monitor-smartphone-C-IFPjqk.js} +1 -1
- package/dashboard/dist/assets/{play-DIFOwGIQ.js → play-n6uWrdH9.js} +1 -1
- package/dashboard/dist/assets/{plus-BpBqnwVg.js → plus-B2f6TaNj.js} +1 -1
- package/dashboard/dist/assets/{provider-display-DSrs4u7T.js → provider-display-DWqCEcsP.js} +1 -1
- package/dashboard/dist/assets/{react-BgG7_MY0.js → react-B-zfi_j6.js} +1 -1
- package/dashboard/dist/assets/{safePolygon-BUGWIDOM.js → safePolygon-C2PsvI-v.js} +1 -1
- package/dashboard/dist/assets/{search-aHrmBmtZ.js → search-DZOaTLF9.js} +1 -1
- package/dashboard/dist/assets/{server-DOEvwlEU.js → server-DIp4Qfsv.js} +1 -1
- package/dashboard/dist/assets/{shield-check-BPTnLhsT.js → shield-check-Cs2M8-iT.js} +1 -1
- package/dashboard/dist/assets/{skills-api-C052Mwez.js → skills-api-CoYy6Tov.js} +1 -1
- package/dashboard/dist/assets/{sortable.esm-DaZKhjhu.js → sortable.esm-B5_hjIfs.js} +1 -1
- package/dashboard/dist/assets/{store-Cq30Pofw.js → store-BLXqtJzb.js} +1 -1
- package/dashboard/dist/assets/{terminal-CoSDSkE7.js → terminal-CEMKX3ba.js} +1 -1
- package/dashboard/dist/assets/{trash-BAmt-kPj.js → trash-DOWYaXjK.js} +1 -1
- package/dashboard/dist/assets/{use-community-stats-Bxq0kBhm.js → use-community-stats-BjRI1Bzz.js} +1 -1
- package/dashboard/dist/assets/{use-latest-request-guard-DmIQDlvk.js → use-latest-request-guard-T7L5qBU6.js} +1 -1
- package/dashboard/dist/assets/use-limits-display-prefs-vNIrCPZA.js +1 -0
- package/dashboard/dist/assets/{use-native-settings-s_CIC8Bb.js → use-native-settings-Cg5Zb4q_.js} +1 -1
- package/dashboard/dist/assets/{use-ordered-list-BHhykAbt.js → use-ordered-list-BF-wIvmG.js} +1 -1
- package/dashboard/dist/assets/use-reduced-motion-B9K5mIx4.js +1 -0
- package/dashboard/dist/assets/{use-transform-CVeMFlS6.js → use-transform-CbJ1IcNc.js} +1 -1
- package/dashboard/dist/assets/use-usage-limits-Dgg3jpC4.js +1 -0
- package/dashboard/dist/assets/{useCurrency-DilqL2Iv.js → useCurrency-3oBHWfSe.js} +1 -1
- package/dashboard/dist/assets/{usePositioner-BcnySw8a.js → usePositioner-D0YrIW0A.js} +1 -1
- package/dashboard/dist/assets/{useTokenFormat-CvKW46WP.js → useTokenFormat-DZAHWE_R.js} +1 -1
- package/dashboard/dist/assets/{zap-D7VRNTwk.js → zap-kLub6Jiv.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dashboard/dist/ip-check.html +2 -2
- package/dashboard/dist/leaderboard.html +2 -2
- package/dashboard/dist/share.html +2 -2
- package/package.json +1 -1
- package/src/commands/serve.js +25 -15
- package/src/lib/accept-encoding.js +59 -0
- package/src/lib/cursor-config.js +3 -1
- package/src/lib/deepseek-limits.js +280 -0
- package/src/lib/deepseek-status.js +157 -0
- package/src/lib/grok-limits.js +40 -1
- package/src/lib/local-api.js +248 -10
- package/src/lib/opencode-status.js +88 -0
- package/src/lib/pricing/index.js +182 -79
- package/src/lib/pricing/seed-snapshot.json +1 -1
- package/src/lib/provider-api-key-store.js +2 -0
- package/src/lib/provider-status.js +27 -2
- package/src/lib/qoder-limits.js +17 -2
- package/src/lib/session-analytics.js +194 -29
- package/src/lib/static-server.js +74 -2
- package/src/lib/usage-limits.js +714 -53
- package/src/lib/workbuddy-limits.js +291 -26
- package/src/lib/zcode-limits.js +143 -35
- package/dashboard/dist/assets/DashboardPage-CdNXi3Im.js +0 -1
- package/dashboard/dist/assets/DialogDescription-kCZ4gN09.js +0 -1
- package/dashboard/dist/assets/LimitsPage-gSBHSBi_.js +0 -6
- package/dashboard/dist/assets/ServiceStatusPage-D_Fa_pYz.js +0 -1
- package/dashboard/dist/assets/SessionsPage-BymccEEz.js +0 -3
- package/dashboard/dist/assets/__vite-browser-external-D_cMeuqI.js +0 -45
- package/dashboard/dist/assets/use-limits-display-prefs-CyAn1fme.js +0 -1
- package/dashboard/dist/assets/use-reduced-motion-BmFyFE3S.js +0 -1
- package/dashboard/dist/assets/use-usage-limits-DRZMI20u.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as a,r as c,t as V,H as F,F as H,G as W}from"./__vite-browser-external-D_cMeuqI.js";const Q=["claude","codex","cursor","gemini","kimi","kiro","grok","copilot","antigravity","zcode","opencodeGo","commandCode","qoder","qoderCn","codingPlan","agentPlan","devin","workbuddy","workbuddyAi"],X={claude:"CLAUDE",codex:"CODEX",cursor:"CURSOR",gemini:"GEMINI",kimi:"KIMI",kiro:"KIRO",grok:"GROK",copilot:"COPILOT",antigravity:"ANTIGRAVITY",zcode:"ZCODE",opencodeGo:"OPENCODE",commandCode:"COMMAND-CODE",qoder:"QODER",qoderCn:"QODER-CN",codingPlan:"VOLCANO-ARK",agentPlan:"VOLCANO-ARK",devin:"DEVIN",workbuddy:"WORKBUDDY",workbuddyAi:"WORKBUDDY"};function ye(e){return X[e]||null}function me(e){switch(e){case"claude":return a("limits.provider.claude");case"codex":return a("limits.provider.codex");case"cursor":return a("limits.provider.cursor");case"gemini":return a("limits.provider.gemini");case"kimi":return a("limits.provider.kimi");case"kiro":return a("limits.provider.kiro");case"grok":return a("limits.provider.grok");case"copilot":return a("limits.provider.copilot");case"antigravity":return a("limits.provider.antigravity");case"zcode":return a("limits.provider.zcode");case"opencodeGo":return a("limits.provider.opencode_go");case"commandCode":return a("limits.provider.command_code");case"qoder":return a("limits.provider.qoder");case"qoderCn":return a("limits.provider.qoder_cn");case"codingPlan":return a("limits.provider.ark_coding_plan");case"agentPlan":return a("limits.provider.ark_agent_plan");case"devin":return a("limits.provider.devin");case"workbuddy":return a("limits.provider.workbuddy");case"workbuddyAi":return a("limits.provider.workbuddy_ai");default:return String(e||"")}}const f=Q,h="tt.limits.providerOrder",A="tt.limits.providerVisibility",I="tt.limits.displayMode",D="tt.limits.showSubscriptions",v="tt.limits.updatedAt",C="limitsPreferences",Z="limitsDisplayMode",$="tt:limits-prefs-changed",w=Object.freeze({USED:"used",REMAINING:"remaining"}),O=new Set(Object.values(w)),k=new Set([h,A,I,D,v]);function E(){return[...f]}const ee=new Set(["devin"]);function g(){return Object.fromEntries(f.map(e=>[e,!ee.has(e)]))}function N(e){const r=[];if(Array.isArray(e))for(const n of e)f.includes(n)&&!r.includes(n)&&r.push(n);for(const n of f)r.includes(n)||r.push(n);return r}function L(e){const r=g();if(!e||typeof e!="object"||Array.isArray(e))return r;for(const n of f)typeof e[n]=="boolean"&&(r[n]=e[n]);return typeof e.workbuddyAi!="boolean"&&typeof e.workbuddy=="boolean"&&(r.workbuddyAi=e.workbuddy),r}function re(e){return O.has(e)?e:w.USED}function P(e){return typeof e=="boolean"?e:!0}function m(e){if(e!=null){if(typeof e=="number")return Number.isSafeInteger(e)?e:void 0;if(typeof e=="string"){const r=e.trim();if(r==="")return;const n=Number(r);return Number.isSafeInteger(n)?n:void 0}}}function S(e={}){const r=e&&typeof e=="object"?e:{};return{displayMode:re(r.displayMode),providerOrder:N(r.providerOrder),providerVisibility:L(r.providerVisibility),showSubscriptions:P(r.showSubscriptions),updatedAt:m(r.updatedAt)}}function ie(){if(typeof window>"u")return E();try{const e=window.localStorage.getItem(h);return N(e?JSON.parse(e):void 0)}catch{return E()}}function R(){if(typeof window>"u")return g();try{const e=window.localStorage.getItem(A);return L(e?JSON.parse(e):void 0)}catch{return g()}}function we(e){return e===null||k.has(e)}function Se(){return R().devin===!0}function te(){if(typeof window>"u")return w.USED;try{const e=window.localStorage.getItem(I);return O.has(e)?e:w.USED}catch{return w.USED}}function oe(){if(typeof window>"u")return!0;try{const e=window.localStorage.getItem(D);return e===null?!0:P(JSON.parse(e))}catch{return!0}}function ne(){if(!(typeof window>"u"))try{return m(window.localStorage.getItem(v))}catch{return}}function de(){if(typeof window>"u")return!1;try{for(const e of k)if(window.localStorage.getItem(e)!==null)return!0}catch{return!1}return!1}function b(){return S({displayMode:te(),providerOrder:ie(),providerVisibility:R(),showSubscriptions:oe(),updatedAt:ne()})}function se(e){if(typeof window>"u")return;const r=S(e);try{window.localStorage.setItem(h,JSON.stringify(r.providerOrder)),window.localStorage.setItem(A,JSON.stringify(r.providerVisibility)),window.localStorage.setItem(I,r.displayMode),window.localStorage.setItem(D,JSON.stringify(r.showSubscriptions)),r.updatedAt===void 0?window.localStorage.removeItem(v):window.localStorage.setItem(v,String(r.updatedAt))}catch(n){console.warn("[tokentracker] limits preferences localStorage write failed:",n)}}function ae(e){const r=S(e);return{displayMode:r.displayMode,providerOrder:[...r.providerOrder],providerVisibility:{...r.providerVisibility},showSubscriptions:r.showSubscriptions,updatedAt:r.updatedAt??null}}function ce(...e){let r;for(const s of e){const l=m(s);l!==void 0&&(r=r===void 0?l:Math.max(r,l))}const n=Date.now();return r!==void 0&&n<=r?r+1:n}function ue(e,r){return e.length===r.length&&e.every((n,s)=>n===r[s])}function le(e,r){return f.every(n=>e[n]===r[n])}function K(e,r){return e.displayMode===r.displayMode&&ue(e.providerOrder,r.providerOrder)&&le(e.providerVisibility,r.providerVisibility)&&e.showSubscriptions===r.showSubscriptions}function pe(e,r){return K(e,r)&&m(e.updatedAt)===m(r.updatedAt)}function M(e,r){const n=m(e.updatedAt),s=m(r.updatedAt);return n!==void 0&&(s===void 0||n>s)}function be(){const[e,r]=c.useState(b),n=c.useRef(e),s=c.useCallback((t,i={})=>{const o=S(t);return n.current=o,r(o),i.writeLocal&&se(o),typeof window<"u"&&window.dispatchEvent(new CustomEvent($)),o},[]),l=c.useCallback(t=>{V()&&F(C,ae(t))},[]),u=c.useCallback(t=>{const i=b(),o=M(i,n.current)?s(i):n.current,d=S(t(o));if(K(o,d))return;const p=ce(i.updatedAt,o.updatedAt),y=s({...d,updatedAt:p},{writeLocal:!0});l(y)},[s,l]),U=c.useCallback(t=>{O.has(t)&&u(i=>({...i,displayMode:t}))},[u]),T=c.useCallback(t=>{u(i=>({...i,showSubscriptions:!!t}))},[u]),_=c.useCallback(t=>{if(!O.has(t))return;const i=b();if(i.updatedAt!==void 0){s(i);return}s({...i,displayMode:t,updatedAt:void 0},{writeLocal:!0})},[s]);c.useEffect(()=>{if(!V())return;const t=H(i=>{const o=i?.[C];if(o&&typeof o=="object"){const d=S(o);if(!de()){s(d,{writeLocal:!0});return}const p=b();if(M(d,p))s(d,{writeLocal:!0});else{const y=s(p);pe(d,p)||l(y)}return}_(i?.[Z])});return W(),t},[_,s,l]),c.useEffect(()=>{if(typeof window>"u")return;const t=i=>{(i.key===null||k.has(i.key))&&s(b())};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)},[s]);const x=c.useCallback(t=>{f.includes(t)&&u(i=>({...i,providerVisibility:{...i.providerVisibility,[t]:!i.providerVisibility[t]}}))},[u]),Y=c.useCallback(t=>{u(i=>({...i,providerVisibility:Object.fromEntries(f.map(o=>[o,!!t]))}))},[u]),z=c.useCallback(t=>{u(i=>{const o=i.providerOrder.indexOf(t);if(o<=0)return i;const d=[...i.providerOrder];return[d[o-1],d[o]]=[d[o],d[o-1]],{...i,providerOrder:d}})},[u]),G=c.useCallback(t=>{u(i=>{const o=i.providerOrder.indexOf(t);if(o<0||o>=i.providerOrder.length-1)return i;const d=[...i.providerOrder];return[d[o],d[o+1]]=[d[o+1],d[o]],{...i,providerOrder:d}})},[u]),q=c.useCallback((t,i)=>{t!==i&&u(o=>{const d=o.providerOrder.indexOf(t),p=o.providerOrder.indexOf(i);if(d<0||p<0)return o;const y=[...o.providerOrder],[J]=y.splice(d,1);return y.splice(p,0,J),{...o,providerOrder:y}})},[u]),j=c.useCallback(()=>{u(()=>({displayMode:w.USED,providerOrder:E(),providerVisibility:g(),showSubscriptions:!0}))},[u]),B=c.useMemo(()=>e.providerOrder.filter(t=>e.providerVisibility[t]!==!1),[e.providerOrder,e.providerVisibility]);return{order:e.providerOrder,visibility:e.providerVisibility,displayMode:e.displayMode,showSubscriptions:e.showSubscriptions,setDisplayMode:U,setShowSubscriptions:T,visibleOrdered:B,toggle:x,setAllVisible:Y,moveUp:z,moveDown:G,moveToward:q,reset:j}}export{$ as L,we as a,Q as b,w as c,ye as d,Se as i,me as l,be as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as o}from"./__vite-browser-external-D_cMeuqI.js";import{h as r,i as t,p as s}from"./react-BgG7_MY0.js";function i(){!r.current&&t();const[e]=o.useState(s.current);return e}export{i as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as v,w as D,r as w,c as F,aT as q,aU as z,aV as K,aW as T}from"./__vite-browser-external-D_cMeuqI.js";import{l as j,i as _,L,a as G}from"./use-limits-display-prefs-CyAn1fme.js";import{u as B}from"./use-latest-request-guard-DmIQDlvk.js";const x="native:notificationPermission";let A=null;function C(){return typeof window<"u"&&!!window.chrome?.webview}function M(){return v()?A||"unknown":C()?"granted":typeof Notification>"u"?"unsupported":Notification.permission}function $(e){if(typeof window>"u")return()=>{};const i=n=>{const r=n?.detail?.status;typeof r=="string"&&(A=r),e(M())};return window.addEventListener(x,i),e(M()),v()&&D({type:"getNotificationStatus"}),()=>window.removeEventListener(x,i)}async function V(){if(v()){D({type:"requestNotificationPermission"});return}C()||typeof Notification<"u"&&Notification.permission==="default"&&await Notification.requestPermission().catch(()=>"denied")}const E="tt.limitAlerts.enabled";function U(){try{return window.localStorage.getItem(E)==="1"}catch{return!1}}function de(){const[e,i]=w.useState(U),[n,r]=w.useState("unknown");w.useEffect(()=>$(r),[]);const c=w.useCallback(async t=>{const o=!!t;o&&await V();try{window.localStorage.setItem(E,o?"1":"0")}catch{}i(o)},[]);return{enabled:e,setEnabled:c,permissionBlocked:n==="denied"}}function W(e,i){if(!(e>0))return null;const n=(e-i)/e;return Number.isFinite(n)?Math.min(Math.max(n,0),1):null}function H(e,i,n=.03){return e>i+n}function Y(e){const i=Math.max(0,Math.floor(e)),n=Math.floor(i/3600);return n>24?`${Math.floor(n/24)}d`:n>0?`${n}h`:`${Math.floor(i/60)}m`}function J(e,i){if(typeof e.windowSeconds=="number")return e.windowSeconds;if(e.windowSecondsField&&i){const n=i[e.windowSecondsField];return typeof n=="number"&&n>0?n:null}return null}function Q(e){return e==null?NaN:typeof e=="number"?e*1e3:Date.parse(e)}function X({usedPercent:e,windowSeconds:i,resetMs:n,mode:r,now:c=Date.now()}){const t=Math.min(Math.max(Number(e)||0,0),100)/100,o={pacePercent:null,paceOver:!1,expectedPercent:null,runsOutEta:null,projectedEnd:null};if(!(i>0)||!Number.isFinite(n)||n<=c)return o;const d=Math.max(0,(n-c)/1e3),s=W(i,d);if(s==null)return o;if(o.expectedPercent=Math.round(s*100),o.paceOver=H(t,s),t>0){const m=r==="remaining"?1-s:s;o.pacePercent=m*100}if(s>.02&&t>0){const m=i*s,u=t/m,f=t/s;f>=1&&u>0?o.runsOutEta=Y((1-t)/u):o.projectedEnd=Math.round(Math.min(f,1)*100)}return o}function S(e){return e?Number(e.limit_credits)===0?null:e:null}const I={claude:{windows(e){const i=Array.isArray(e.weekly_scoped)?e.weekly_scoped.map(n=>({key:`scoped-${n.label}`,label:n.label,window:n,pctField:"utilization",resetField:"resets_at",windowSeconds:604800})):[];return[{key:"5h",labelKey:"limits.label.claude_5h",window:e.five_hour,pctField:"utilization",resetField:"resets_at",windowSeconds:5*3600},{key:"7d",labelKey:"limits.label.claude_7d",window:e.seven_day,pctField:"utilization",resetField:"resets_at",windowSeconds:7*86400},{key:"opus",labelKey:"limits.label.claude_opus",window:e.seven_day_opus,pctField:"utilization",resetField:"resets_at",windowSeconds:7*86400},...i]}},codex:{extra:"codex_meta",windows(e){return[{key:"5h",labelKey:"limits.label.codex_5h",window:e.primary_window,windowSecondsField:"limit_window_seconds"},{key:"7d",labelKey:"limits.label.codex_7d",window:e.secondary_window,windowSecondsField:"limit_window_seconds"},{key:"credits",labelKey:"limits.label.codex_credits",window:e.credit_window},{key:"spark-5h",labelKey:"limits.label.codex_spark_5h",window:e.spark_primary_window,windowSecondsField:"limit_window_seconds"},{key:"spark-7d",labelKey:"limits.label.codex_spark_7d",window:e.spark_secondary_window,windowSecondsField:"limit_window_seconds"}]}},cursor:{windows(e){return[{key:"plan",labelKey:"limits.label.cursor_plan",window:e.primary_window,windowSecondsField:"limit_window_seconds"},{key:"auto",labelKey:"limits.label.cursor_auto",window:e.secondary_window,windowSecondsField:"limit_window_seconds"},{key:"api",labelKey:"limits.label.cursor_api",window:e.tertiary_window,windowSecondsField:"limit_window_seconds"},{key:"grok-bot",labelKey:"limits.label.cursor_grok_bot",window:e.quaternary_window,windowSecondsField:"limit_window_seconds"}]}},gemini:{windows(e){return[{key:"pro",labelKey:"limits.label.gemini_pro",window:e.primary_window},{key:"flash",labelKey:"limits.label.gemini_flash",window:e.secondary_window},{key:"lite",labelKey:"limits.label.gemini_lite",window:e.tertiary_window}]}},kimi:{extra:"kimi_parallel",windows(e){return[{key:"weekly",labelKey:"limits.label.kimi_weekly",window:e.primary_window,windowSeconds:7*86400},{key:"5h",labelKey:"limits.label.kimi_5h",window:e.secondary_window,windowSeconds:5*3600},{key:"total",labelKey:"limits.label.kimi_total",window:e.tertiary_window}]}},kiro:{extra:"kiro_credits",windows(e){return[{key:"month",labelKey:"limits.label.kiro_month",window:e.primary_window},{key:"bonus",labelKey:"limits.label.kiro_bonus",window:e.secondary_window}]}},grok:{windows(e){const i=typeof e.period_type=="string"?e.period_type:null,n=i==="weekly"?"limits.label.grok_week":i==="daily"?"limits.label.grok_day":"limits.label.grok_month",r=i==="weekly"?7*86400:i==="daily"?86400:void 0;return[{key:i==="weekly"?"week":i==="daily"?"day":"month",labelKey:n,window:e.primary_window,windowSeconds:r,productPool:!0,segments:ee(e)},{key:"ondemand",labelKey:"limits.label.grok_ondemand",window:e.secondary_window}]}},antigravity:{windows(e){return[{key:"claude-weekly",labelKey:"limits.label.antigravity_claude_weekly",window:e.primary_window},{key:"claude-5h",labelKey:"limits.label.antigravity_claude_5h",window:e.secondary_window},{key:"gemini-weekly",labelKey:"limits.label.antigravity_gemini_weekly",window:e.tertiary_window},{key:"gemini-5h",labelKey:"limits.label.antigravity_gemini_5h",window:e.quaternary_window}]}},copilot:{extra:"copilot_otel",windows(e){return[{key:"premium",labelKey:"limits.label.copilot_premium",window:e.primary_window},{key:"chat",labelKey:"limits.label.copilot_chat",window:e.secondary_window}]}},zcode:{extra:"zcode_reset_bank",windows(e){if(e.plan_kind==="coding-plan")return[{key:"5h",labelKey:"limits.label.zcode_5h",window:e.primary_window},{key:"weekly",labelKey:"limits.label.zcode_weekly",window:e.secondary_window},{key:"tools",labelKey:"limits.label.zcode_tools",window:e.tertiary_window}];const i=Array.isArray(e.buckets)?e.buckets.filter(n=>n?.label&&n.window):[];return i.length?i.map((n,r)=>({key:`bucket-${n.entitlement_id||r}`,label:n.label,window:n.window,...n.period==="one_time"?{timeKind:"expiry"}:{}})):[{key:"glm52",labelKey:"limits.label.zcode_glm52",window:e.primary_window},{key:"glm5t",labelKey:"limits.label.zcode_glm5t",window:e.secondary_window}]}},opencodeGo:{windows(e){return[{key:"5h",labelKey:"limits.label.opencode_go_5h",window:e.primary_window},{key:"weekly",labelKey:"limits.label.opencode_go_weekly",window:e.secondary_window},{key:"monthly",labelKey:"limits.label.opencode_go_monthly",window:e.tertiary_window}]}},qoder:{windows(e){return[{key:"credits",labelKey:"limits.label.qoder_credits",window:S(e.primary_window)},{key:"addon",labelKey:"limits.label.qoder_addon_credits",window:S(e.tertiary_window)},{key:"ultimate",labelKey:"limits.label.qoder_ultimate",window:e.secondary_window,timeKind:"expiry"}]}},qoderCn:{windows(e){return[{key:"credits",labelKey:"limits.label.qoder_cn_credits",window:S(e.primary_window)},{key:"addon",labelKey:"limits.label.qoder_cn_addon_credits",window:S(e.tertiary_window)},{key:"ultimate",labelKey:"limits.label.qoder_cn_ultimate",window:e.secondary_window,timeKind:"expiry"}]}},codingPlan:{windows(e){return[{key:"5h",labelKey:"limits.label.ark_coding_plan_5h",window:e.primary_window},{key:"weekly",labelKey:"limits.label.ark_coding_plan_weekly",window:e.secondary_window},{key:"monthly",labelKey:"limits.label.ark_coding_plan_monthly",window:e.tertiary_window}]}},commandCode:{windows(e){return[{key:"5h",labelKey:"limits.label.command_code_5h",window:e.primary_window},{key:"weekly",labelKey:"limits.label.command_code_weekly",window:e.secondary_window}]}},agentPlan:{windows(e){return[{key:"5h",labelKey:"limits.label.ark_agent_plan_5h",window:e.primary_window},{key:"weekly",labelKey:"limits.label.ark_agent_plan_weekly",window:e.secondary_window},{key:"monthly",labelKey:"limits.label.ark_agent_plan_monthly",window:e.tertiary_window}]}},devin:{windows(e){return[{key:"daily",labelKey:"limits.label.devin_daily",window:e.primary_window,windowSecondsField:"limit_window_seconds"},{key:"weekly",labelKey:"limits.label.devin_weekly",window:e.secondary_window,windowSecondsField:"limit_window_seconds"}]}},workbuddy:{windows(e){return[{key:"plan",labelKey:"limits.label.workbuddy_plan",window:e.primary_window,creditPrecision:2,showCreditDetail:!0},{key:"addon",labelKey:"limits.label.workbuddy_addon",window:e.secondary_window,creditPrecision:2,showCreditDetail:!0}]}},workbuddyAi:{windows(e){return I.workbuddy.windows(e)}}},Z={GrokBuild:"limits.label.grok_build",GrokBot:"limits.label.grok_bot",GrokChat:"limits.label.grok_chat",GrokImagine:"limits.label.grok_imagine",GrokVoice:"limits.label.grok_voice",Cursor:"limits.label.grok_cursor"};function ee(e){if(!Array.isArray(e?.products))return null;const i=[];for(const n of e.products){const r=typeof n?.product=="string"?n.product:"",c=Number(n?.window?.used_percent);if(!r||!(c>0))continue;const t=Z[r],o=typeof n.label=="string"?n.label.trim():"";!t&&!o||i.push({key:r,...t?{labelKey:t}:{label:o},pct:c})}return i.length>0?i:null}const O="tt.limitAlerts.cycles.v1";function ie(){try{return JSON.parse(window.localStorage.getItem(O)||"{}")}catch{return{}}}function ne(e){try{window.localStorage.setItem(O,JSON.stringify(e))}catch{}}function te(e,{now:i=Date.now()}={}){const n=[],r=I;for(const[c,t]of Object.entries(e||{})){const o=r[c];if(!(!t?.configured||t.error||!o))for(const d of o.windows(t)){if(!d.window)continue;const s=Number(d.pctField==="utilization"?d.window.utilization:d.window.used_percent),m=d.resetField==="resets_at"?d.window.resets_at:d.window.reset_at,u=Q(m),f=X({usedPercent:s,windowSeconds:J(d,d.window),resetMs:u,mode:"used",now:i});!f.runsOutEta||!f.paceOver||s<20||!(u>i)||n.push({id:`${c}:${d.key}:${u}`,providerId:c,windowKey:d.key,resetMs:u,usedPercent:s,runsOutEta:f.runsOutEta})}}return n}function oe(e){const i=ie(),n=te(e);for(const t of n){if(i[t.id])continue;const o=j(t.providerId),d=F("limits.alert.title",{provider:o}),s=F("limits.alert.body",{eta:t.runsOutEta,percent:Math.round(t.usedPercent)});let m=q({title:d,body:s,id:t.id});!m&&typeof Notification<"u"&&Notification.permission==="granted"&&(new Notification(d,{body:s,tag:t.id}),m=!0),m&&(i[t.id]=Date.now())}const r=Date.now()-864e5,c=Object.fromEntries(Object.entries(i).filter(([t,o])=>{const d=Number(t.split(":").at(-1));return Number.isFinite(d)?d>=r:Number(o)>=r}).slice(-100));return ne(c),n.length}function g(e,i){return!e||i||!e.devin||e.devin.configured===!1&&Object.keys(e.devin).length===1?e:{...e,devin:{configured:!1}}}function ae(e){const i=T(),n=i&&!!e?.initialState,[r,c]=w.useState(_),[t,o]=w.useState(()=>n?g(e?.initialState?.data??null,_()):null),[d,s]=w.useState(()=>n?e?.initialState?.error??null:null),[m,u]=w.useState(i&&!n),f=!!e?.initialRefresh,P=!!e?.publishToPreloadCache,b=B([r,i]);w.useEffect(()=>{if(typeof window>"u")return;const a=()=>c(_()),l=y=>{G(y.key)&&a()};return window.addEventListener(L,a),window.addEventListener("storage",l),()=>{window.removeEventListener(L,a),window.removeEventListener("storage",l)}},[]),w.useEffect(()=>{if(!(!i||!t||typeof window>"u"))try{window.localStorage.getItem(E)==="1"&&oe(t)}catch{}},[t,i]);const p=w.useCallback((a,l)=>{!i||!P||!a||typeof a!="object"||z(g(a,_()),{source:l})},[i,P]),R=w.useCallback(async()=>{if(!i)return null;const a=b();try{const l=await K({refresh:!0,devinEnabled:_()});if(!a())return null;const k=g(l&&typeof l=="object"?l:null,_());return o(k),s(null),u(!1),p(k,"manual-refresh"),k}catch(l){return a()&&(s(l?.message||String(l)),u(!1)),null}},[b,i,p]),h=w.useCallback(async()=>{if(!i)return;const a=b();try{const l=await K({devinEnabled:_()});if(!a())return;const y=l&&typeof l=="object"?l:null;o(g(y,_())),s(null),u(!1),p(y,"page-load")}catch(l){if(!a())return;s(l?.message||String(l)),u(!1)}},[b,i,p]);w.useEffect(()=>{if(!i||typeof window>"u"||typeof document>"u")return;const a=15e3;let l=Date.now();const y=()=>{if(document.visibilityState!=="visible")return;const k=Date.now();k-l<a||(l=k,h())};return window.addEventListener("focus",y),document.addEventListener("visibilitychange",y),()=>{window.removeEventListener("focus",y),document.removeEventListener("visibilitychange",y)}},[i,h]);const N=w.useRef(r);return w.useEffect(()=>{N.current!==r&&(N.current=r,i&&(r||o(a=>g(a,!1)),h()))},[r,i,h]),w.useEffect(()=>{if(!i){o(null),s(null),u(!1);return}if(n&&!f)return;const a=b();(async()=>{try{const l=await K({devinEnabled:_()});if(!a())return;const y=l&&typeof l=="object"?l:null;o(g(y,_())),s(null),p(y,"page-load")}catch(l){if(!a())return;s(l?.message||String(l))}finally{a()&&u(!1)}})()},[b,n,f,i,p]),{data:t,error:d,isLoading:m,refresh:R}}export{I as P,J as a,de as b,X as c,Q as r,oe as s,ae as u};
|