@juliantanx/aiusage 1.2.0 → 1.3.0

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 (100) hide show
  1. package/README.md +159 -26
  2. package/dist/index.js +2568 -1478
  3. package/dist/web/_app/immutable/assets/0.C5PeBlns.css +1 -0
  4. package/dist/web/_app/immutable/assets/10.D4XIqeEN.css +1 -0
  5. package/dist/web/_app/immutable/assets/11.CR85TxeS.css +1 -0
  6. package/dist/web/_app/immutable/assets/12.DAmfvZ5J.css +1 -0
  7. package/dist/web/_app/immutable/assets/2.G6nSchsK.css +1 -0
  8. package/dist/web/_app/immutable/assets/3.DQh9JikT.css +1 -0
  9. package/dist/web/_app/immutable/assets/4.CnA4GaE5.css +1 -0
  10. package/dist/web/_app/immutable/assets/5.D4N7n6x9.css +1 -0
  11. package/dist/web/_app/immutable/assets/6.CrsKlz6Y.css +1 -0
  12. package/dist/web/_app/immutable/assets/7.CQvfgmQf.css +1 -0
  13. package/dist/web/_app/immutable/assets/8.DDodt1Wn.css +1 -0
  14. package/dist/web/_app/immutable/assets/9.ApFevNUr.css +1 -0
  15. package/dist/web/_app/immutable/assets/ToolSelector.BRqFUj1Q.css +1 -0
  16. package/dist/web/_app/immutable/assets/ToolSelector.Bqx3ytrl.css +1 -0
  17. package/dist/web/_app/immutable/assets/_layout.C2s9Ry1h.css +1 -0
  18. package/dist/web/_app/immutable/assets/_page.ApFevNUr.css +1 -0
  19. package/dist/web/_app/immutable/assets/_page.CQvfgmQf.css +1 -0
  20. package/dist/web/_app/immutable/assets/_page.CR85TxeS.css +1 -0
  21. package/dist/web/_app/immutable/assets/_page.CmayGpOu.css +1 -0
  22. package/dist/web/_app/immutable/assets/_page.CnA4GaE5.css +1 -0
  23. package/dist/web/_app/immutable/assets/_page.CrsKlz6Y.css +1 -0
  24. package/dist/web/_app/immutable/assets/_page.D4N7n6x9.css +1 -0
  25. package/dist/web/_app/immutable/assets/_page.DAmfvZ5J.css +1 -0
  26. package/dist/web/_app/immutable/assets/_page.DDodt1Wn.css +1 -0
  27. package/dist/web/_app/immutable/assets/_page.DQh9JikT.css +1 -0
  28. package/dist/web/_app/immutable/assets/_page.DewAUGiJ.css +1 -0
  29. package/dist/web/_app/immutable/chunks/ToolSelector.CnQ-eszE.js +2 -0
  30. package/dist/web/_app/immutable/chunks/{api.Cv9iCeAW.js → api.OwJBmtEN.js} +1 -1
  31. package/dist/web/_app/immutable/chunks/entry.DWbp2XzC.js +3 -0
  32. package/dist/web/_app/immutable/chunks/i18n.BOq44pYI.js +1 -0
  33. package/dist/web/_app/immutable/chunks/{index.BjVwNvJa.js → index.CPsgU-fv.js} +1 -1
  34. package/dist/web/_app/immutable/chunks/{index.CUfK07C5.js → index.wix8pgil.js} +1 -1
  35. package/dist/web/_app/immutable/chunks/scheduler.DFD7qxcZ.js +1 -0
  36. package/dist/web/_app/immutable/chunks/stores.B1g8D8DV.js +1 -0
  37. package/dist/web/_app/immutable/chunks/{stores.Js_X6JN8.js → stores.C3ZtRBEM.js} +1 -1
  38. package/dist/web/_app/immutable/entry/{app.D2r0s5MX.js → app.7Tmcb_qs.js} +2 -2
  39. package/dist/web/_app/immutable/entry/start.CuMG7ijt.js +1 -0
  40. package/dist/web/_app/immutable/nodes/0.GiWuXD22.js +1 -0
  41. package/dist/web/_app/immutable/nodes/{1.CRZFpn26.js → 1.CNbcoUIj.js} +1 -1
  42. package/dist/web/_app/immutable/nodes/10.DgPr3L-S.js +1 -0
  43. package/dist/web/_app/immutable/nodes/11.TrX-RGQX.js +1 -0
  44. package/dist/web/_app/immutable/nodes/12.ZW7n1TLF.js +1 -0
  45. package/dist/web/_app/immutable/nodes/2.D0gEY9nh.js +3 -0
  46. package/dist/web/_app/immutable/nodes/3.CcnPu3DZ.js +1 -0
  47. package/dist/web/_app/immutable/nodes/4.CCaCZRNi.js +13 -0
  48. package/dist/web/_app/immutable/nodes/5.Bxx7TNGK.js +1 -0
  49. package/dist/web/_app/immutable/nodes/6.8zY9a_YX.js +1 -0
  50. package/dist/web/_app/immutable/nodes/7.bOnMUP4_.js +9 -0
  51. package/dist/web/_app/immutable/nodes/8.01X9rJRT.js +1 -0
  52. package/dist/web/_app/immutable/nodes/9.DabFUxt3.js +1 -0
  53. package/dist/web/_app/version.json +1 -1
  54. package/dist/web/index.html +12 -11
  55. package/package.json +5 -3
  56. package/dist/chunk-2DX56FB6.js +0 -522
  57. package/dist/dist-4I33E46P.js +0 -42
  58. package/dist/web/_app/immutable/assets/0.Cynllvu4.css +0 -1
  59. package/dist/web/_app/immutable/assets/10.Doxq00gF.css +0 -1
  60. package/dist/web/_app/immutable/assets/11.D5bUq0yE.css +0 -1
  61. package/dist/web/_app/immutable/assets/12.BA90S8v7.css +0 -1
  62. package/dist/web/_app/immutable/assets/2.fho1OPpm.css +0 -1
  63. package/dist/web/_app/immutable/assets/3.DwwXF_G1.css +0 -1
  64. package/dist/web/_app/immutable/assets/4.CVp0A8QV.css +0 -1
  65. package/dist/web/_app/immutable/assets/5.DM2hVWjt.css +0 -1
  66. package/dist/web/_app/immutable/assets/6.NdKfVCiG.css +0 -1
  67. package/dist/web/_app/immutable/assets/7.CeV8yHSX.css +0 -1
  68. package/dist/web/_app/immutable/assets/8.BCdjuhVX.css +0 -1
  69. package/dist/web/_app/immutable/assets/9.ClvwkhDe.css +0 -1
  70. package/dist/web/_app/immutable/assets/ToolSelector.BKgB2QVk.css +0 -1
  71. package/dist/web/_app/immutable/assets/ToolSelector.HSbC8-q9.css +0 -1
  72. package/dist/web/_app/immutable/assets/_layout.BpydV4rl.css +0 -1
  73. package/dist/web/_app/immutable/assets/_page.BA90S8v7.css +0 -1
  74. package/dist/web/_app/immutable/assets/_page.BCdjuhVX.css +0 -1
  75. package/dist/web/_app/immutable/assets/_page.CVp0A8QV.css +0 -1
  76. package/dist/web/_app/immutable/assets/_page.CeV8yHSX.css +0 -1
  77. package/dist/web/_app/immutable/assets/_page.ClvwkhDe.css +0 -1
  78. package/dist/web/_app/immutable/assets/_page.D5bUq0yE.css +0 -1
  79. package/dist/web/_app/immutable/assets/_page.DM2hVWjt.css +0 -1
  80. package/dist/web/_app/immutable/assets/_page.DTuZozBR.css +0 -1
  81. package/dist/web/_app/immutable/assets/_page.Doxq00gF.css +0 -1
  82. package/dist/web/_app/immutable/assets/_page.DwwXF_G1.css +0 -1
  83. package/dist/web/_app/immutable/assets/_page.NdKfVCiG.css +0 -1
  84. package/dist/web/_app/immutable/chunks/ToolSelector.RXWBkdpM.js +0 -2
  85. package/dist/web/_app/immutable/chunks/entry.C9S4R-C0.js +0 -3
  86. package/dist/web/_app/immutable/chunks/i18n.CrmYDWvg.js +0 -1
  87. package/dist/web/_app/immutable/chunks/scheduler.DukoKnjQ.js +0 -1
  88. package/dist/web/_app/immutable/entry/start.DosCYfdN.js +0 -1
  89. package/dist/web/_app/immutable/nodes/0.CQBqRzIr.js +0 -1
  90. package/dist/web/_app/immutable/nodes/10.Jb_wogsG.js +0 -1
  91. package/dist/web/_app/immutable/nodes/11.CpuiQa6R.js +0 -1
  92. package/dist/web/_app/immutable/nodes/12.BiWlfD7q.js +0 -1
  93. package/dist/web/_app/immutable/nodes/2.CQudsTBz.js +0 -3
  94. package/dist/web/_app/immutable/nodes/3.Dg9c_XQX.js +0 -1
  95. package/dist/web/_app/immutable/nodes/4.DE3OvqSg.js +0 -11
  96. package/dist/web/_app/immutable/nodes/5.sGu0NOiv.js +0 -1
  97. package/dist/web/_app/immutable/nodes/6.BOL9Fhgv.js +0 -1
  98. package/dist/web/_app/immutable/nodes/7.B2wRNntO.js +0 -1
  99. package/dist/web/_app/immutable/nodes/8.BVACtdPg.js +0 -1
  100. package/dist/web/_app/immutable/nodes/9.DXxXyKe4.js +0 -1
@@ -0,0 +1,13 @@
1
+ import{s as $s,n as Ys,c as tl,o as el}from"../chunks/scheduler.DFD7qxcZ.js";import{S as sl,i as ll,d as t,v as cl,s as ct,a as e,b as j,o as l,p as nl,g as r,c,e as V,f as nt,B as k,j as u,h as n,t as at,z as Ks,x as al}from"../chunks/index.wix8pgil.js";import{e as Js,l as il}from"../chunks/i18n.BOq44pYI.js";const ol=typeof window<"u"?window:typeof globalThis<"u"?globalThis:global,{document:hs}=ol;function Xs(w,a,S){const H=w.slice();return H[5]=a[S],H}function Zs(w){let a,S=(w[1]?w[5].zh:w[5].en)+"",H,i,O;function L(){return w[4](w[5])}return{c(){a=n("a"),H=at(S),this.h()},l(o){a=c(o,"A",{class:!0});var I=V(a);H=nt(I,S),I.forEach(t),this.h()},h(){l(a,"class","toc-item svelte-10kcz42"),Ks(a,"active",w[0]===w[5].id)},m(o,I){e(o,a,I),j(a,H),i||(O=al(a,"click",L),i=!0)},p(o,I){w=o,I&2&&S!==(S=(w[1]?w[5].zh:w[5].en)+"")&&ct(H,S),I&5&&Ks(a,"active",w[0]===w[5].id)},d(o){o&&t(a),i=!1,O()}}}function vl(w){let a,S="AIUsage is a CLI tool with a built-in web dashboard. After installation it parses log files generated by AI tools and tracks usage data in a local database.",H,i,O="Installation",L,o,I=`<code class="svelte-10kcz42">npm install -g @juliantanx/aiusage
2
+ # or with pnpm
3
+ pnpm add -g @juliantanx/aiusage</code>`,m,v,P="Parse data",p,d,q="Parse log files from your AI tools into the local database:",y,f,B='<code class="svelte-10kcz42">aiusage parse</code>',E,b,N="Start the dashboard",h,C,G=`<code class="svelte-10kcz42">aiusage serve
4
+ # Listens on http://localhost:3847 by default</code>`,R,M,Q='Open <code class="svelte-10kcz42">http://localhost:3847</code> in your browser to view the dashboard.';return{c(){a=n("p"),a.textContent=S,H=u(),i=n("h3"),i.textContent=O,L=u(),o=n("pre"),o.innerHTML=I,m=u(),v=n("h3"),v.textContent=P,p=u(),d=n("p"),d.textContent=q,y=u(),f=n("pre"),f.innerHTML=B,E=u(),b=n("h3"),b.textContent=N,h=u(),C=n("pre"),C.innerHTML=G,R=u(),M=n("p"),M.innerHTML=Q,this.h()},l(z){a=c(z,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-1fk9ad0"&&(a.textContent=S),H=r(z),i=c(z,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-1ae8k70"&&(i.textContent=O),L=r(z),o=c(z,"PRE",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-1bcvduu"&&(o.innerHTML=I),m=r(z),v=c(z,"H3",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-1r6uf2l"&&(v.textContent=P),p=r(z),d=c(z,"P",{class:!0,"data-svelte-h":!0}),k(d)!=="svelte-12nblot"&&(d.textContent=q),y=r(z),f=c(z,"PRE",{class:!0,"data-svelte-h":!0}),k(f)!=="svelte-jk66gz"&&(f.innerHTML=B),E=r(z),b=c(z,"H3",{class:!0,"data-svelte-h":!0}),k(b)!=="svelte-1emypv3"&&(b.textContent=N),h=r(z),C=c(z,"PRE",{class:!0,"data-svelte-h":!0}),k(C)!=="svelte-1bl3mv6"&&(C.innerHTML=G),R=r(z),M=c(z,"P",{class:!0,"data-svelte-h":!0}),k(M)!=="svelte-11m1gg7"&&(M.innerHTML=Q),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","svelte-10kcz42"),l(d,"class","svelte-10kcz42"),l(f,"class","svelte-10kcz42"),l(b,"class","svelte-10kcz42"),l(C,"class","svelte-10kcz42"),l(M,"class","svelte-10kcz42")},m(z,x){e(z,a,x),e(z,H,x),e(z,i,x),e(z,L,x),e(z,o,x),e(z,m,x),e(z,v,x),e(z,p,x),e(z,d,x),e(z,y,x),e(z,f,x),e(z,E,x),e(z,b,x),e(z,h,x),e(z,C,x),e(z,R,x),e(z,M,x)},d(z){z&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v),t(p),t(d),t(y),t(f),t(E),t(b),t(h),t(C),t(R),t(M))}}}function rl(w){let a,S="AIUsage 是一个命令行工具,内置 Web 仪表盘。安装完成后,它会解析 AI 工具生成的日志文件,并在本地数据库中追踪用量数据。",H,i,O="安装",L,o,I=`<code class="svelte-10kcz42">npm install -g @juliantanx/aiusage
5
+ # 或使用 pnpm
6
+ pnpm add -g @juliantanx/aiusage</code>`,m,v,P="解析数据",p,d,q="解析 AI 工具的日志文件,写入本地数据库:",y,f,B='<code class="svelte-10kcz42">aiusage parse</code>',E,b,N="启动仪表盘",h,C,G=`<code class="svelte-10kcz42">aiusage serve
7
+ # 默认监听 http://localhost:3847</code>`,R,M,Q='浏览器打开 <code class="svelte-10kcz42">http://localhost:3847</code> 即可查看仪表盘。';return{c(){a=n("p"),a.textContent=S,H=u(),i=n("h3"),i.textContent=O,L=u(),o=n("pre"),o.innerHTML=I,m=u(),v=n("h3"),v.textContent=P,p=u(),d=n("p"),d.textContent=q,y=u(),f=n("pre"),f.innerHTML=B,E=u(),b=n("h3"),b.textContent=N,h=u(),C=n("pre"),C.innerHTML=G,R=u(),M=n("p"),M.innerHTML=Q,this.h()},l(z){a=c(z,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-1spn8ro"&&(a.textContent=S),H=r(z),i=c(z,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-1t98tvu"&&(i.textContent=O),L=r(z),o=c(z,"PRE",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-1ysbgl4"&&(o.innerHTML=I),m=r(z),v=c(z,"H3",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-1lu4yad"&&(v.textContent=P),p=r(z),d=c(z,"P",{class:!0,"data-svelte-h":!0}),k(d)!=="svelte-42nw0x"&&(d.textContent=q),y=r(z),f=c(z,"PRE",{class:!0,"data-svelte-h":!0}),k(f)!=="svelte-jk66gz"&&(f.innerHTML=B),E=r(z),b=c(z,"H3",{class:!0,"data-svelte-h":!0}),k(b)!=="svelte-1g5u9yb"&&(b.textContent=N),h=r(z),C=c(z,"PRE",{class:!0,"data-svelte-h":!0}),k(C)!=="svelte-gwfcz0"&&(C.innerHTML=G),R=r(z),M=c(z,"P",{class:!0,"data-svelte-h":!0}),k(M)!=="svelte-qs83m2"&&(M.innerHTML=Q),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","svelte-10kcz42"),l(d,"class","svelte-10kcz42"),l(f,"class","svelte-10kcz42"),l(b,"class","svelte-10kcz42"),l(C,"class","svelte-10kcz42"),l(M,"class","svelte-10kcz42")},m(z,x){e(z,a,x),e(z,H,x),e(z,i,x),e(z,L,x),e(z,o,x),e(z,m,x),e(z,v,x),e(z,p,x),e(z,d,x),e(z,y,x),e(z,f,x),e(z,E,x),e(z,b,x),e(z,h,x),e(z,C,x),e(z,R,x),e(z,M,x)},d(z){z&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v),t(p),t(d),t(y),t(f),t(E),t(b),t(h),t(C),t(R),t(M))}}}function ul(w){let a,S="The home page is a live token counter showing cumulative usage for the selected time range, auto-refreshing at a configurable interval.",H,i,O="UI Elements",L,o,I='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">Live counter</strong> — Total token count with an animated count-up effect.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Sub-stats</strong> — Input, output, and cache tokens shown separately.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Cost / Sessions / Active Days</strong> — Three secondary stat cards.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Token composition bar</strong> — Proportional breakdown of input, output, cache read/write.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Refresh progress bar</strong> — Countdown until next auto-refresh.</li>',m,v,P="⚙ Display Config",p,d,q="Click the ⚙ button to open the display config panel where you can set:",y,f,B='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">Time range</strong> — Today / This Week / This Month / Last 30d / All Time.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Number format</strong> — Exact (1,234,567) or abbreviated (1.2M).</li>',E,b,N="The refresh interval is configured under Settings → Dashboard Poll Interval (milliseconds).";return{c(){a=n("p"),a.textContent=S,H=u(),i=n("h3"),i.textContent=O,L=u(),o=n("ul"),o.innerHTML=I,m=u(),v=n("h3"),v.textContent=P,p=u(),d=n("p"),d.textContent=q,y=u(),f=n("ul"),f.innerHTML=B,E=u(),b=n("p"),b.textContent=N,this.h()},l(h){a=c(h,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-80jl20"&&(a.textContent=S),H=r(h),i=c(h,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-188788r"&&(i.textContent=O),L=r(h),o=c(h,"UL",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-jnmha1"&&(o.innerHTML=I),m=r(h),v=c(h,"H3",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-f0rhzd"&&(v.textContent=P),p=r(h),d=c(h,"P",{class:!0,"data-svelte-h":!0}),k(d)!=="svelte-jb9u9y"&&(d.textContent=q),y=r(h),f=c(h,"UL",{class:!0,"data-svelte-h":!0}),k(f)!=="svelte-1dm3fp"&&(f.innerHTML=B),E=r(h),b=c(h,"P",{class:!0,"data-svelte-h":!0}),k(b)!=="svelte-id3ffx"&&(b.textContent=N),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","svelte-10kcz42"),l(d,"class","svelte-10kcz42"),l(f,"class","svelte-10kcz42"),l(b,"class","svelte-10kcz42")},m(h,C){e(h,a,C),e(h,H,C),e(h,i,C),e(h,L,C),e(h,o,C),e(h,m,C),e(h,v,C),e(h,p,C),e(h,d,C),e(h,y,C),e(h,f,C),e(h,E,C),e(h,b,C)},d(h){h&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v),t(p),t(d),t(y),t(f),t(E),t(b))}}}function kl(w){let a,S="首页是一个实时 Token 计数器,显示所选时间范围内的累计用量,并每隔一段时间自动刷新。",H,i,O="界面元素",L,o,I='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">实时计数器</strong>:显示总 Token 数,支持动画计数效果。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">子统计</strong>:分别展示输入、输出和缓存 Token。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">费用 / 会话 / 活跃天数</strong>:三个辅助统计卡片。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Token 构成条</strong>:按比例显示输入、输出、缓存读写的分布。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">刷新进度条</strong>:显示下次自动刷新的倒计时。</li>',m,v,P="⚙ 显示配置",p,d,q="点击右上角的 ⚙ 按钮可打开显示配置面板,支持:",y,f,B='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">时间范围</strong>:今天 / 本周 / 本月 / 近 30 天 / 全部。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">数字格式</strong>:精确(1,234,567)或简短(1.2M)。</li>',E,b,N="刷新间隔在「设置」页面的「仪表盘轮询间隔」字段中配置(毫秒)。";return{c(){a=n("p"),a.textContent=S,H=u(),i=n("h3"),i.textContent=O,L=u(),o=n("ul"),o.innerHTML=I,m=u(),v=n("h3"),v.textContent=P,p=u(),d=n("p"),d.textContent=q,y=u(),f=n("ul"),f.innerHTML=B,E=u(),b=n("p"),b.textContent=N,this.h()},l(h){a=c(h,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-1j1c89h"&&(a.textContent=S),H=r(h),i=c(h,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-1tqpbip"&&(i.textContent=O),L=r(h),o=c(h,"UL",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-1wyk37p"&&(o.innerHTML=I),m=r(h),v=c(h,"H3",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-oyh0ja"&&(v.textContent=P),p=r(h),d=c(h,"P",{class:!0,"data-svelte-h":!0}),k(d)!=="svelte-1qpacxb"&&(d.textContent=q),y=r(h),f=c(h,"UL",{class:!0,"data-svelte-h":!0}),k(f)!=="svelte-pa7mcm"&&(f.innerHTML=B),E=r(h),b=c(h,"P",{class:!0,"data-svelte-h":!0}),k(b)!=="svelte-r3rgwe"&&(b.textContent=N),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","svelte-10kcz42"),l(d,"class","svelte-10kcz42"),l(f,"class","svelte-10kcz42"),l(b,"class","svelte-10kcz42")},m(h,C){e(h,a,C),e(h,H,C),e(h,i,C),e(h,L,C),e(h,o,C),e(h,m,C),e(h,v,C),e(h,p,C),e(h,d,C),e(h,y,C),e(h,f,C),e(h,E,C),e(h,b,C)},d(h){h&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v),t(p),t(d),t(y),t(f),t(E),t(b))}}}function dl(w){let a,S="The Overview page shows aggregated usage stats with filters — your go-to starting point for understanding overall usage.",H,i,O="Stat Cards",L,o,I='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">Total Tokens</strong> — Sum of all token types.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Total Cost</strong> — Estimated cost based on the pricing table.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Active Days</strong> — Number of days with recorded usage.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Sessions</strong> — Total number of distinct sessions.</li>',m,v,P="Token Breakdown",p,d,q="Below the cards: input, output, cache read, and cache write token counts shown individually.",y,f,B="By AI Assistant",E,b,N="Usage grouped by AI tool (claude-code, codex, etc.) showing tokens and cost per tool.",h,C,G="Top Tool Calls",R,M,Q="The most-called tool names (e.g. Bash, Read, Edit) ranked by invocation count.";return{c(){a=n("p"),a.textContent=S,H=u(),i=n("h3"),i.textContent=O,L=u(),o=n("ul"),o.innerHTML=I,m=u(),v=n("h3"),v.textContent=P,p=u(),d=n("p"),d.textContent=q,y=u(),f=n("h3"),f.textContent=B,E=u(),b=n("p"),b.textContent=N,h=u(),C=n("h3"),C.textContent=G,R=u(),M=n("p"),M.textContent=Q,this.h()},l(z){a=c(z,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-2ullw1"&&(a.textContent=S),H=r(z),i=c(z,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-ls4t6d"&&(i.textContent=O),L=r(z),o=c(z,"UL",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-868oin"&&(o.innerHTML=I),m=r(z),v=c(z,"H3",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-9kaccw"&&(v.textContent=P),p=r(z),d=c(z,"P",{class:!0,"data-svelte-h":!0}),k(d)!=="svelte-1aqspry"&&(d.textContent=q),y=r(z),f=c(z,"H3",{class:!0,"data-svelte-h":!0}),k(f)!=="svelte-nmt65x"&&(f.textContent=B),E=r(z),b=c(z,"P",{class:!0,"data-svelte-h":!0}),k(b)!=="svelte-1p4u9ls"&&(b.textContent=N),h=r(z),C=c(z,"H3",{class:!0,"data-svelte-h":!0}),k(C)!=="svelte-bkd0im"&&(C.textContent=G),R=r(z),M=c(z,"P",{class:!0,"data-svelte-h":!0}),k(M)!=="svelte-efhkpw"&&(M.textContent=Q),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","svelte-10kcz42"),l(d,"class","svelte-10kcz42"),l(f,"class","svelte-10kcz42"),l(b,"class","svelte-10kcz42"),l(C,"class","svelte-10kcz42"),l(M,"class","svelte-10kcz42")},m(z,x){e(z,a,x),e(z,H,x),e(z,i,x),e(z,L,x),e(z,o,x),e(z,m,x),e(z,v,x),e(z,p,x),e(z,d,x),e(z,y,x),e(z,f,x),e(z,E,x),e(z,b,x),e(z,h,x),e(z,C,x),e(z,R,x),e(z,M,x)},d(z){z&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v),t(p),t(d),t(y),t(f),t(E),t(b),t(h),t(C),t(R),t(M))}}}function zl(w){let a,S="概览页展示带筛选条件的聚合统计摘要,是了解整体用量的起点。",H,i,O="统计卡片",L,o,I='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">总 Token</strong>:所有类型 Token 的合计。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">总费用</strong>:基于定价表计算的估算费用。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">活跃天数</strong>:有记录的天数。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">会话数</strong>:独立会话的总数。</li>',m,v,P="Token 明细",p,d,q="在卡片下方展示输入、输出、缓存读取、缓存写入的分项数据。",y,f,B="按 AI 助手统计",E,b,N="按使用的 AI 工具(claude-code、codex 等)分组,显示各工具的 Token 数和费用。",h,C,G="常用工具调用",R,M,Q="列出调用次数最多的工具(如 Bash、Read、Edit 等)。";return{c(){a=n("p"),a.textContent=S,H=u(),i=n("h3"),i.textContent=O,L=u(),o=n("ul"),o.innerHTML=I,m=u(),v=n("h3"),v.textContent=P,p=u(),d=n("p"),d.textContent=q,y=u(),f=n("h3"),f.textContent=B,E=u(),b=n("p"),b.textContent=N,h=u(),C=n("h3"),C.textContent=G,R=u(),M=n("p"),M.textContent=Q,this.h()},l(z){a=c(z,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-1p9unzw"&&(a.textContent=S),H=r(z),i=c(z,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-1o42eig"&&(i.textContent=O),L=r(z),o=c(z,"UL",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-1rwftl0"&&(o.innerHTML=I),m=r(z),v=c(z,"H3",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-1l4r4l3"&&(v.textContent=P),p=r(z),d=c(z,"P",{class:!0,"data-svelte-h":!0}),k(d)!=="svelte-kh6no3"&&(d.textContent=q),y=r(z),f=c(z,"H3",{class:!0,"data-svelte-h":!0}),k(f)!=="svelte-j48bi9"&&(f.textContent=B),E=r(z),b=c(z,"P",{class:!0,"data-svelte-h":!0}),k(b)!=="svelte-1vval7s"&&(b.textContent=N),h=r(z),C=c(z,"H3",{class:!0,"data-svelte-h":!0}),k(C)!=="svelte-16dry0b"&&(C.textContent=G),R=r(z),M=c(z,"P",{class:!0,"data-svelte-h":!0}),k(M)!=="svelte-7k9shx"&&(M.textContent=Q),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","svelte-10kcz42"),l(d,"class","svelte-10kcz42"),l(f,"class","svelte-10kcz42"),l(b,"class","svelte-10kcz42"),l(C,"class","svelte-10kcz42"),l(M,"class","svelte-10kcz42")},m(z,x){e(z,a,x),e(z,H,x),e(z,i,x),e(z,L,x),e(z,o,x),e(z,m,x),e(z,v,x),e(z,p,x),e(z,d,x),e(z,y,x),e(z,f,x),e(z,E,x),e(z,b,x),e(z,h,x),e(z,C,x),e(z,R,x),e(z,M,x)},d(z){z&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v),t(p),t(d),t(y),t(f),t(E),t(b),t(h),t(C),t(R),t(M))}}}function hl(w){let a,S="The Tokens page visualizes daily token consumption with a bar chart and a detail table.",H,i,O="Daily Bar Chart",L,o,I="Each bar group shows the token types for one day (input, output, cache read, cache write, thinking). Hover over bars to see exact counts.",m,v,P="Detail Table",p,d,q="A table below lists per-day counts for each token type plus a daily total. Scroll horizontally for longer date ranges.",y,f,B="Token Types",E,b,N='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">Input</strong> — Prompt tokens sent to the model.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Output</strong> — Tokens generated by the model.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Cache Read</strong> — Tokens read from the cache (billed at a lower rate).</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Cache Write</strong> — Tokens written to the cache.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Thinking</strong> — Tokens used by Extended Thinking mode.</li>';return{c(){a=n("p"),a.textContent=S,H=u(),i=n("h3"),i.textContent=O,L=u(),o=n("p"),o.textContent=I,m=u(),v=n("h3"),v.textContent=P,p=u(),d=n("p"),d.textContent=q,y=u(),f=n("h3"),f.textContent=B,E=u(),b=n("ul"),b.innerHTML=N,this.h()},l(h){a=c(h,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-13jly27"&&(a.textContent=S),H=r(h),i=c(h,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-11e88w2"&&(i.textContent=O),L=r(h),o=c(h,"P",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-11seo7d"&&(o.textContent=I),m=r(h),v=c(h,"H3",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-1kfzhz5"&&(v.textContent=P),p=r(h),d=c(h,"P",{class:!0,"data-svelte-h":!0}),k(d)!=="svelte-1olfync"&&(d.textContent=q),y=r(h),f=c(h,"H3",{class:!0,"data-svelte-h":!0}),k(f)!=="svelte-8blt02"&&(f.textContent=B),E=r(h),b=c(h,"UL",{class:!0,"data-svelte-h":!0}),k(b)!=="svelte-14p5sq1"&&(b.innerHTML=N),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","svelte-10kcz42"),l(d,"class","svelte-10kcz42"),l(f,"class","svelte-10kcz42"),l(b,"class","svelte-10kcz42")},m(h,C){e(h,a,C),e(h,H,C),e(h,i,C),e(h,L,C),e(h,o,C),e(h,m,C),e(h,v,C),e(h,p,C),e(h,d,C),e(h,y,C),e(h,f,C),e(h,E,C),e(h,b,C)},d(h){h&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v),t(p),t(d),t(y),t(f),t(E),t(b))}}}function Cl(w){let a,S="Token 页面以每日图表和明细表格的形式展示 Token 消耗趋势。",H,i,O="每日柱状图",L,o,I="每组柱子展示同一天内的各类 Token(输入、输出、缓存读取、缓存写入、思考 Token),悬停可查看具体数值。",m,v,P="明细表格",p,d,q="表格列出每天各类型的 Token 数量及合计,支持横向滚动查看较长时间范围的数据。",y,f,B="Token 类型说明",E,b,N='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">输入</strong>:发送给模型的提示 Token。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">输出</strong>:模型生成的回复 Token。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">缓存读取</strong>:从缓存中命中并读取的 Token(计费更低)。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">缓存写入</strong>:写入缓存的 Token。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">思考</strong>:扩展思考(Extended Thinking)功能使用的 Token。</li>';return{c(){a=n("p"),a.textContent=S,H=u(),i=n("h3"),i.textContent=O,L=u(),o=n("p"),o.textContent=I,m=u(),v=n("h3"),v.textContent=P,p=u(),d=n("p"),d.textContent=q,y=u(),f=n("h3"),f.textContent=B,E=u(),b=n("ul"),b.innerHTML=N,this.h()},l(h){a=c(h,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-l5kixb"&&(a.textContent=S),H=r(h),i=c(h,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-1c8ogpj"&&(i.textContent=O),L=r(h),o=c(h,"P",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-1aklu2e"&&(o.textContent=I),m=r(h),v=c(h,"H3",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-1mceneg"&&(v.textContent=P),p=r(h),d=c(h,"P",{class:!0,"data-svelte-h":!0}),k(d)!=="svelte-1cnj6xs"&&(d.textContent=q),y=r(h),f=c(h,"H3",{class:!0,"data-svelte-h":!0}),k(f)!=="svelte-p3irkn"&&(f.textContent=B),E=r(h),b=c(h,"UL",{class:!0,"data-svelte-h":!0}),k(b)!=="svelte-17529xc"&&(b.innerHTML=N),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","svelte-10kcz42"),l(d,"class","svelte-10kcz42"),l(f,"class","svelte-10kcz42"),l(b,"class","svelte-10kcz42")},m(h,C){e(h,a,C),e(h,H,C),e(h,i,C),e(h,L,C),e(h,o,C),e(h,m,C),e(h,v,C),e(h,p,C),e(h,d,C),e(h,y,C),e(h,f,C),e(h,E,C),e(h,b,C)},d(h){h&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v),t(p),t(d),t(y),t(f),t(E),t(b))}}}function fl(w){let a,S="The Cost page shows daily spending trends and a breakdown by AI assistant and model.",H,i,O="Total Cost Card",L,o,I="Displays the total estimated cost for the selected date range.",m,v,P="Daily Cost Chart",p,d,q="A bar chart showing per-day costs. Hover to view exact amounts.",y,f,B="By AI Assistant",E,b,N="Ranked list of costs per tool (Claude Code, Codex, etc.).",h,C,G="By Model",R,M,Q="Ranked list of costs per model (e.g. claude-sonnet-4-5, gpt-4o).",z,x,F='<span class="callout-icon svelte-10kcz42">△</span> <span>Costs are estimates calculated using per-million-token prices from the Pricing page. If costs look wrong, review and update prices there.</span>';return{c(){a=n("p"),a.textContent=S,H=u(),i=n("h3"),i.textContent=O,L=u(),o=n("p"),o.textContent=I,m=u(),v=n("h3"),v.textContent=P,p=u(),d=n("p"),d.textContent=q,y=u(),f=n("h3"),f.textContent=B,E=u(),b=n("p"),b.textContent=N,h=u(),C=n("h3"),C.textContent=G,R=u(),M=n("p"),M.textContent=Q,z=u(),x=n("div"),x.innerHTML=F,this.h()},l(s){a=c(s,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-cd7jou"&&(a.textContent=S),H=r(s),i=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-1dwbpnn"&&(i.textContent=O),L=r(s),o=c(s,"P",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-1ew0fyd"&&(o.textContent=I),m=r(s),v=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-10afjj2"&&(v.textContent=P),p=r(s),d=c(s,"P",{class:!0,"data-svelte-h":!0}),k(d)!=="svelte-1int6j1"&&(d.textContent=q),y=r(s),f=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(f)!=="svelte-nmt65x"&&(f.textContent=B),E=r(s),b=c(s,"P",{class:!0,"data-svelte-h":!0}),k(b)!=="svelte-1i43see"&&(b.textContent=N),h=r(s),C=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(C)!=="svelte-z05gqg"&&(C.textContent=G),R=r(s),M=c(s,"P",{class:!0,"data-svelte-h":!0}),k(M)!=="svelte-7rbb5l"&&(M.textContent=Q),z=r(s),x=c(s,"DIV",{class:!0,"data-svelte-h":!0}),k(x)!=="svelte-1xbtu7t"&&(x.innerHTML=F),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","svelte-10kcz42"),l(d,"class","svelte-10kcz42"),l(f,"class","svelte-10kcz42"),l(b,"class","svelte-10kcz42"),l(C,"class","svelte-10kcz42"),l(M,"class","svelte-10kcz42"),l(x,"class","callout warn svelte-10kcz42")},m(s,T){e(s,a,T),e(s,H,T),e(s,i,T),e(s,L,T),e(s,o,T),e(s,m,T),e(s,v,T),e(s,p,T),e(s,d,T),e(s,y,T),e(s,f,T),e(s,E,T),e(s,b,T),e(s,h,T),e(s,C,T),e(s,R,T),e(s,M,T),e(s,z,T),e(s,x,T)},d(s){s&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v),t(p),t(d),t(y),t(f),t(E),t(b),t(h),t(C),t(R),t(M),t(z),t(x))}}}function pl(w){let a,S="费用页面展示每日费用走势及按 AI 助手、模型的费用分布。",H,i,O="总费用卡片",L,o,I="显示筛选时间范围内的总估算费用。",m,v,P="每日费用图",p,d,q="柱状图展示每天的费用,悬停可查看当日金额。",y,f,B="按 AI 助手分布",E,b,N="不同工具(Claude Code、Codex 等)的费用排名。",h,C,G="按模型分布",R,M,Q="不同模型(claude-sonnet-4-5、gpt-4o 等)的费用排名。",z,x,F='<span class="callout-icon svelte-10kcz42">△</span> <span>费用为估算值,基于「定价」页面中配置的每百万 Token 单价计算。如发现费用偏差,请在「定价」页面检查并修正价格。</span>';return{c(){a=n("p"),a.textContent=S,H=u(),i=n("h3"),i.textContent=O,L=u(),o=n("p"),o.textContent=I,m=u(),v=n("h3"),v.textContent=P,p=u(),d=n("p"),d.textContent=q,y=u(),f=n("h3"),f.textContent=B,E=u(),b=n("p"),b.textContent=N,h=u(),C=n("h3"),C.textContent=G,R=u(),M=n("p"),M.textContent=Q,z=u(),x=n("div"),x.innerHTML=F,this.h()},l(s){a=c(s,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-vrtjn9"&&(a.textContent=S),H=r(s),i=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-1bd9oae"&&(i.textContent=O),L=r(s),o=c(s,"P",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-vhbydb"&&(o.textContent=I),m=r(s),v=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-18bd011"&&(v.textContent=P),p=r(s),d=c(s,"P",{class:!0,"data-svelte-h":!0}),k(d)!=="svelte-1pnx9bc"&&(d.textContent=q),y=r(s),f=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(f)!=="svelte-nlv6cg"&&(f.textContent=B),E=r(s),b=c(s,"P",{class:!0,"data-svelte-h":!0}),k(b)!=="svelte-yqce44"&&(b.textContent=N),h=r(s),C=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(C)!=="svelte-1r38sle"&&(C.textContent=G),R=r(s),M=c(s,"P",{class:!0,"data-svelte-h":!0}),k(M)!=="svelte-7ajuxa"&&(M.textContent=Q),z=r(s),x=c(s,"DIV",{class:!0,"data-svelte-h":!0}),k(x)!=="svelte-gy8k2t"&&(x.innerHTML=F),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","svelte-10kcz42"),l(d,"class","svelte-10kcz42"),l(f,"class","svelte-10kcz42"),l(b,"class","svelte-10kcz42"),l(C,"class","svelte-10kcz42"),l(M,"class","svelte-10kcz42"),l(x,"class","callout warn svelte-10kcz42")},m(s,T){e(s,a,T),e(s,H,T),e(s,i,T),e(s,L,T),e(s,o,T),e(s,m,T),e(s,v,T),e(s,p,T),e(s,d,T),e(s,y,T),e(s,f,T),e(s,E,T),e(s,b,T),e(s,h,T),e(s,C,T),e(s,R,T),e(s,M,T),e(s,z,T),e(s,x,T)},d(s){s&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v),t(p),t(d),t(y),t(f),t(E),t(b),t(h),t(C),t(R),t(M),t(z),t(x))}}}function xl(w){let a,S="The Models page ranks AI model usage to show which models are used most.",H,i,O="Table Columns",L,o,I='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">Model</strong> — Model ID (e.g. claude-sonnet-4-6).</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Provider</strong> — Service provider (Anthropic, OpenAI, etc.).</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Calls</strong> — Number of times this model was invoked.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Tokens</strong> — Total tokens consumed by this model.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Share</strong> — Percentage of total tokens (with a progress bar).</li>';return{c(){a=n("p"),a.textContent=S,H=u(),i=n("h3"),i.textContent=O,L=u(),o=n("ul"),o.innerHTML=I,this.h()},l(m){a=c(m,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-6tid7y"&&(a.textContent=S),H=r(m),i=c(m,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-ca2lib"&&(i.textContent=O),L=r(m),o=c(m,"UL",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-q80z0p"&&(o.innerHTML=I),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42")},m(m,v){e(m,a,v),e(m,H,v),e(m,i,v),e(m,L,v),e(m,o,v)},d(m){m&&(t(a),t(H),t(i),t(L),t(o))}}}function _l(w){let a,S="模型页面展示各 AI 模型的使用量排名,帮助了解哪些模型被频繁调用。",H,i,O="表格列",L,o,I='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">模型</strong>:模型 ID(如 claude-sonnet-4-6)。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">提供商</strong>:模型的服务提供商(Anthropic、OpenAI 等)。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">调用次数</strong>:该模型被调用的次数。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Token</strong>:该模型消耗的 Token 总量。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">占比</strong>:该模型在所有 Token 中的占比(含进度条)。</li>';return{c(){a=n("p"),a.textContent=S,H=u(),i=n("h3"),i.textContent=O,L=u(),o=n("ul"),o.innerHTML=I,this.h()},l(m){a=c(m,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-pgyfku"&&(a.textContent=S),H=r(m),i=c(m,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-u2b6y5"&&(i.textContent=O),L=r(m),o=c(m,"UL",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-wfxvvh"&&(o.innerHTML=I),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42")},m(m,v){e(m,a,v),e(m,H,v),e(m,i,v),e(m,L,v),e(m,o,v)},d(m){m&&(t(a),t(H),t(i),t(L),t(o))}}}function bl(w){let a,S="The Tool Calls page ranks how frequently each tool was invoked by AI assistants in sessions.",H,i,O='Tool calls are specific actions performed by the AI — e.g. <code class="svelte-10kcz42">Bash</code> (run commands), <code class="svelte-10kcz42">Read</code> (read files), <code class="svelte-10kcz42">Edit</code> (modify files). Use this page to understand which operations the AI performs most.',L,o,I="Ranking Columns",m,v,P='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">Rank</strong> — Sorted by invocation count descending.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Tool name</strong> — The tool&#39;s unique identifier.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Relative bar</strong> — Width proportional to the top-ranked tool.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Count</strong> — Absolute invocation count.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Share</strong> — Percentage of all tool calls.</li>';return{c(){a=n("p"),a.textContent=S,H=u(),i=n("p"),i.innerHTML=O,L=u(),o=n("h3"),o.textContent=I,m=u(),v=n("ul"),v.innerHTML=P,this.h()},l(p){a=c(p,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-1qvxhvb"&&(a.textContent=S),H=r(p),i=c(p,"P",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-1669ss9"&&(i.innerHTML=O),L=r(p),o=c(p,"H3",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-10kv9qh"&&(o.textContent=I),m=r(p),v=c(p,"UL",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-jquwxr"&&(v.innerHTML=P),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","svelte-10kcz42")},m(p,d){e(p,a,d),e(p,H,d),e(p,i,d),e(p,L,d),e(p,o,d),e(p,m,d),e(p,v,d)},d(p){p&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v))}}}function Tl(w){let a,S="工具调用页面展示 AI 助手在会话中调用各工具的频次排名。",H,i,O='工具调用是 AI 助手执行的具体操作,例如 <code class="svelte-10kcz42">Bash</code>(运行命令)、<code class="svelte-10kcz42">Read</code>(读取文件)、<code class="svelte-10kcz42">Edit</code>(修改文件)等。通过此页面可以了解 AI 助手最常执行哪类操作。',L,o,I="排名列",m,v,P='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">排名</strong>:按调用次数从高到低排列。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">工具名</strong>:工具的唯一标识名称。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">相对占比条</strong>:相对于最多调用工具的比例条。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">调用次数</strong>:绝对调用数量。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">占比</strong>:占所有工具调用的百分比。</li>';return{c(){a=n("p"),a.textContent=S,H=u(),i=n("p"),i.innerHTML=O,L=u(),o=n("h3"),o.textContent=I,m=u(),v=n("ul"),v.innerHTML=P,this.h()},l(p){a=c(p,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-pakwpl"&&(a.textContent=S),H=r(p),i=c(p,"P",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-l1jqm5"&&(i.innerHTML=O),L=r(p),o=c(p,"H3",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-1bnkp7o"&&(o.textContent=I),m=r(p),v=c(p,"UL",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-1r19l2x"&&(v.innerHTML=P),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","svelte-10kcz42")},m(p,d){e(p,a,d),e(p,H,d),e(p,i,d),e(p,L,d),e(p,o,d),e(p,m,d),e(p,v,d)},d(p){p&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v))}}}function ml(w){let a,S="The Projects page ranks token usage and cost by project directory to show which codebases consume the most resources.",H,i,O="Project names come from the working directory path recorded in AI tool logs. Claude Code automatically records the project path for each session.",L,o,I="Ranking Columns",m,v,P='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">Rank</strong> — Sorted by token count descending.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Project</strong> — Working directory name or path.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Relative bar</strong> — Proportional width showing relative token usage.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Tokens</strong> — Total tokens consumed for this project.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Cost</strong> — Estimated cost for this project.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Share</strong> — Percentage of total tokens.</li>';return{c(){a=n("p"),a.textContent=S,H=u(),i=n("p"),i.textContent=O,L=u(),o=n("h3"),o.textContent=I,m=u(),v=n("ul"),v.innerHTML=P,this.h()},l(p){a=c(p,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-14hbo41"&&(a.textContent=S),H=r(p),i=c(p,"P",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-1ep7mds"&&(i.textContent=O),L=r(p),o=c(p,"H3",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-10kv9qh"&&(o.textContent=I),m=r(p),v=c(p,"UL",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-12k32e3"&&(v.innerHTML=P),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","svelte-10kcz42")},m(p,d){e(p,a,d),e(p,H,d),e(p,i,d),e(p,L,d),e(p,o,d),e(p,m,d),e(p,v,d)},d(p){p&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v))}}}function Hl(w){let a,S="项目页面按项目目录展示 Token 用量和费用排名,帮助了解哪些代码库消耗了最多资源。",H,i,O="项目名称来自 AI 工具日志中记录的工作目录路径。Claude Code 会自动记录每次会话对应的项目路径。",L,o,I="排名列",m,v,P='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">排名</strong>:按 Token 用量从高到低排列。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">项目名</strong>:工作目录的名称或路径。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">相对占比条</strong>:Token 用量的相对比例。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Token</strong>:该项目消耗的 Token 总量。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">费用</strong>:该项目的估算费用。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">占比</strong>:占总 Token 的百分比。</li>';return{c(){a=n("p"),a.textContent=S,H=u(),i=n("p"),i.textContent=O,L=u(),o=n("h3"),o.textContent=I,m=u(),v=n("ul"),v.innerHTML=P,this.h()},l(p){a=c(p,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-drcwhl"&&(a.textContent=S),H=r(p),i=c(p,"P",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-vfe1uc"&&(i.textContent=O),L=r(p),o=c(p,"H3",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-1bnkp7o"&&(o.textContent=I),m=r(p),v=c(p,"UL",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-l5h0ud"&&(v.innerHTML=P),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","svelte-10kcz42")},m(p,d){e(p,a,d),e(p,H,d),e(p,i,d),e(p,L,d),e(p,o,d),e(p,m,d),e(p,v,d)},d(p){p&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v))}}}function Ll(w){let a,S="The Sessions page shows a detailed log of every recorded session, paginated at 50 per page.",H,i,O="Table Columns",L,o,I='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">Time</strong> — Timestamp of the session.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Tool</strong> — AI assistant used (e.g. claude-code).</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Model</strong> — Model used in this session.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Input</strong> — Input token count.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Output</strong> — Output token count.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Cost</strong> — Estimated cost for this session.</li>',m,v,P="Pagination",p,d,q="Use the Previous / Next buttons at the bottom to navigate pages. Each page shows 50 records.";return{c(){a=n("p"),a.textContent=S,H=u(),i=n("h3"),i.textContent=O,L=u(),o=n("ul"),o.innerHTML=I,m=u(),v=n("h3"),v.textContent=P,p=u(),d=n("p"),d.textContent=q,this.h()},l(y){a=c(y,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-1cacnwj"&&(a.textContent=S),H=r(y),i=c(y,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-ca2lib"&&(i.textContent=O),L=r(y),o=c(y,"UL",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-1oxxhcq"&&(o.innerHTML=I),m=r(y),v=c(y,"H3",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-aqa5kw"&&(v.textContent=P),p=r(y),d=c(y,"P",{class:!0,"data-svelte-h":!0}),k(d)!=="svelte-1la3vys"&&(d.textContent=q),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","svelte-10kcz42"),l(d,"class","svelte-10kcz42")},m(y,f){e(y,a,f),e(y,H,f),e(y,i,f),e(y,L,f),e(y,o,f),e(y,m,f),e(y,v,f),e(y,p,f),e(y,d,f)},d(y){y&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v),t(p),t(d))}}}function yl(w){let a,S="会话页面展示每一条会话记录的详细日志,每页显示 50 条,支持翻页。",H,i,O="表格列",L,o,I='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">时间</strong>:会话发生的时间戳。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">工具</strong>:使用的 AI 助手(如 claude-code)。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">模型</strong>:本次会话使用的模型。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">输入</strong>:输入 Token 数量。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">输出</strong>:输出 Token 数量。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">费用</strong>:本次会话的估算费用。</li>',m,v,P="翻页",p,d,q="使用页面底部的「上一页 / 下一页」按钮切换页码,每页固定显示 50 条记录。";return{c(){a=n("p"),a.textContent=S,H=u(),i=n("h3"),i.textContent=O,L=u(),o=n("ul"),o.innerHTML=I,m=u(),v=n("h3"),v.textContent=P,p=u(),d=n("p"),d.textContent=q,this.h()},l(y){a=c(y,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-1f6o0r"&&(a.textContent=S),H=r(y),i=c(y,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-u2b6y5"&&(i.textContent=O),L=r(y),o=c(y,"UL",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-14axh4m"&&(o.innerHTML=I),m=r(y),v=c(y,"H3",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-1mdd91k"&&(v.textContent=P),p=r(y),d=c(y,"P",{class:!0,"data-svelte-h":!0}),k(d)!=="svelte-wepiz5"&&(d.textContent=q),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","svelte-10kcz42"),l(d,"class","svelte-10kcz42")},m(y,f){e(y,a,f),e(y,H,f),e(y,i,f),e(y,L,f),e(y,o,f),e(y,m,f),e(y,v,f),e(y,p,f),e(y,d,f)},d(y){y&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v),t(p),t(d))}}}function Ml(w){let a,S="The Pricing page manages per-million-token rates for each model used across the dashboard's cost estimates.",H,i,O="Pricing Cards",L,o,I="Each model appears as a card showing:",m,v,P='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">Model name</strong> — Model identifier.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Input / Output</strong> — Primary rates per million tokens (USD).</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Cache Read / Write / Thinking</strong> — Secondary rates.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Status badge</strong> — Default (built-in) / Custom (manual override) / Prefix match / No pricing.</li>',p,d,q="Editing Prices",y,f,B="Click Edit on a card to enter edit mode. Save to apply. Custom prices override the built-in defaults.",E,b,N="Reset",h,C,G="For overridden models, click Reset to restore the built-in default price.",R,M,Q="Recalculate Costs",z,x,F='After changing prices, click "Recalculate Costs" to recompute costs for all historical sessions.',s,T,ot='<span class="callout-icon svelte-10kcz42">△</span> <span>Recalculation is irreversible and updates the cost field for all sessions in the database.</span>';return{c(){a=n("p"),a.textContent=S,H=u(),i=n("h3"),i.textContent=O,L=u(),o=n("p"),o.textContent=I,m=u(),v=n("ul"),v.innerHTML=P,p=u(),d=n("h3"),d.textContent=q,y=u(),f=n("p"),f.textContent=B,E=u(),b=n("h3"),b.textContent=N,h=u(),C=n("p"),C.textContent=G,R=u(),M=n("h3"),M.textContent=Q,z=u(),x=n("p"),x.textContent=F,s=u(),T=n("div"),T.innerHTML=ot,this.h()},l(g){a=c(g,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-f33go5"&&(a.textContent=S),H=r(g),i=c(g,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-1hjwpcd"&&(i.textContent=O),L=r(g),o=c(g,"P",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-e55kro"&&(o.textContent=I),m=r(g),v=c(g,"UL",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-1ijw9vd"&&(v.innerHTML=P),p=r(g),d=c(g,"H3",{class:!0,"data-svelte-h":!0}),k(d)!=="svelte-11x2hgy"&&(d.textContent=q),y=r(g),f=c(g,"P",{class:!0,"data-svelte-h":!0}),k(f)!=="svelte-1kdk04"&&(f.textContent=B),E=r(g),b=c(g,"H3",{class:!0,"data-svelte-h":!0}),k(b)!=="svelte-1w6dr1n"&&(b.textContent=N),h=r(g),C=c(g,"P",{class:!0,"data-svelte-h":!0}),k(C)!=="svelte-10nzf42"&&(C.textContent=G),R=r(g),M=c(g,"H3",{class:!0,"data-svelte-h":!0}),k(M)!=="svelte-eqftfd"&&(M.textContent=Q),z=r(g),x=c(g,"P",{class:!0,"data-svelte-h":!0}),k(x)!=="svelte-1e7rbla"&&(x.textContent=F),s=r(g),T=c(g,"DIV",{class:!0,"data-svelte-h":!0}),k(T)!=="svelte-p9oe6s"&&(T.innerHTML=ot),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","svelte-10kcz42"),l(d,"class","svelte-10kcz42"),l(f,"class","svelte-10kcz42"),l(b,"class","svelte-10kcz42"),l(C,"class","svelte-10kcz42"),l(M,"class","svelte-10kcz42"),l(x,"class","svelte-10kcz42"),l(T,"class","callout warn svelte-10kcz42")},m(g,U){e(g,a,U),e(g,H,U),e(g,i,U),e(g,L,U),e(g,o,U),e(g,m,U),e(g,v,U),e(g,p,U),e(g,d,U),e(g,y,U),e(g,f,U),e(g,E,U),e(g,b,U),e(g,h,U),e(g,C,U),e(g,R,U),e(g,M,U),e(g,z,U),e(g,x,U),e(g,s,U),e(g,T,U)},d(g){g&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v),t(p),t(d),t(y),t(f),t(E),t(b),t(h),t(C),t(R),t(M),t(z),t(x),t(s),t(T))}}}function gl(w){let a,S="定价页面用于管理各模型的每百万 Token 单价,用于计算整个仪表盘的费用估算。",H,i,O="定价卡片",L,o,I="每个模型显示一张卡片,包含:",m,v,P='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">模型名</strong>:模型 ID。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">输入 / 输出</strong>:每百万 Token 的主要费率(美元)。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">缓存读取 / 缓存写入 / 思考</strong>:次要费率。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">状态标签</strong>:默认(内置)/ 自定义(手动覆盖)/ 前缀匹配 / 无定价。</li>',p,d,q="编辑定价",y,f,B="点击「编辑」按钮进入编辑模式,修改后点击「保存」。自定义价格会覆盖内置默认值。",E,b,N="重置",h,C,G="对于已自定义的模型,点击「重置」可恢复到内置默认价格。",R,M,Q="重新计算费用",z,x,F="修改价格后,点击「重新计算费用」按钮,系统会对所有历史会话重新计算费用。",s,T,ot='<span class="callout-icon svelte-10kcz42">△</span> <span>重新计算费用是不可逆操作,会更新数据库中所有历史会话的费用字段。</span>';return{c(){a=n("p"),a.textContent=S,H=u(),i=n("h3"),i.textContent=O,L=u(),o=n("p"),o.textContent=I,m=u(),v=n("ul"),v.innerHTML=P,p=u(),d=n("h3"),d.textContent=q,y=u(),f=n("p"),f.textContent=B,E=u(),b=n("h3"),b.textContent=N,h=u(),C=n("p"),C.textContent=G,R=u(),M=n("h3"),M.textContent=Q,z=u(),x=n("p"),x.textContent=F,s=u(),T=n("div"),T.innerHTML=ot,this.h()},l(g){a=c(g,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-1g8o8to"&&(a.textContent=S),H=r(g),i=c(g,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-z6mjv"&&(i.textContent=O),L=r(g),o=c(g,"P",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-1xezp49"&&(o.textContent=I),m=r(g),v=c(g,"UL",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-1kkf43y"&&(v.innerHTML=P),p=r(g),d=c(g,"H3",{class:!0,"data-svelte-h":!0}),k(d)!=="svelte-101pc96"&&(d.textContent=q),y=r(g),f=c(g,"P",{class:!0,"data-svelte-h":!0}),k(f)!=="svelte-16l3nrg"&&(f.textContent=B),E=r(g),b=c(g,"H3",{class:!0,"data-svelte-h":!0}),k(b)!=="svelte-1yy2803"&&(b.textContent=N),h=r(g),C=c(g,"P",{class:!0,"data-svelte-h":!0}),k(C)!=="svelte-7v26hu"&&(C.textContent=G),R=r(g),M=c(g,"H3",{class:!0,"data-svelte-h":!0}),k(M)!=="svelte-am7us8"&&(M.textContent=Q),z=r(g),x=c(g,"P",{class:!0,"data-svelte-h":!0}),k(x)!=="svelte-kgu8qn"&&(x.textContent=F),s=r(g),T=c(g,"DIV",{class:!0,"data-svelte-h":!0}),k(T)!=="svelte-hchyq6"&&(T.innerHTML=ot),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","svelte-10kcz42"),l(d,"class","svelte-10kcz42"),l(f,"class","svelte-10kcz42"),l(b,"class","svelte-10kcz42"),l(C,"class","svelte-10kcz42"),l(M,"class","svelte-10kcz42"),l(x,"class","svelte-10kcz42"),l(T,"class","callout warn svelte-10kcz42")},m(g,U){e(g,a,U),e(g,H,U),e(g,i,U),e(g,L,U),e(g,o,U),e(g,m,U),e(g,v,U),e(g,p,U),e(g,d,U),e(g,y,U),e(g,f,U),e(g,E,U),e(g,b,U),e(g,h,U),e(g,C,U),e(g,R,U),e(g,M,U),e(g,z,U),e(g,x,U),e(g,s,U),e(g,T,U)},d(g){g&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v),t(p),t(d),t(y),t(f),t(E),t(b),t(h),t(C),t(R),t(M),t(z),t(x),t(s),t(T))}}}function Pl(w){let a,S="The Settings page is divided into sections, each saved independently.",H,i,O="General",L,o,I='<thead><tr><th class="svelte-10kcz42">Field</th><th class="svelte-10kcz42">Description</th></tr></thead> <tbody><tr><td class="svelte-10kcz42">Device Alias</td><td class="svelte-10kcz42">Optional name for this device. Defaults to hostname. Used to distinguish data sources in multi-device setups.</td></tr> <tr><td class="svelte-10kcz42">Week Starts On</td><td class="svelte-10kcz42">Starting day for the &quot;This Week&quot; date range (Sunday or Monday ISO).</td></tr> <tr><td class="svelte-10kcz42">Dashboard Poll Interval</td><td class="svelte-10kcz42">Auto-refresh interval for the home page in milliseconds (default: 30000).</td></tr> <tr><td class="svelte-10kcz42">Auto-Parse Interval</td><td class="svelte-10kcz42">Background parse interval in milliseconds. Set to 0 or leave empty to disable.</td></tr></tbody>',m,v,P="Sources",p,d,q="Specify custom log directory paths for each AI tool. Leave blank for defaults:",y,f,B='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">Claude Code</strong> — <code class="svelte-10kcz42">~/.claude/projects</code></li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Codex</strong> — <code class="svelte-10kcz42">~/.codex/sessions</code></li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">OpenClaw</strong> — <code class="svelte-10kcz42">~/.openclaw/agents</code></li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">OpenCode</strong> — platform-specific SQLite database path</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Hermes</strong> — <code class="svelte-10kcz42">~/.hermes/state.db</code></li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Qoder (sessions)</strong> — <code class="svelte-10kcz42">~/.qoder/logs/sessions</code></li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Qoder (SQLite)</strong> — platform-specific <code class="svelte-10kcz42">local.db</code> path</li>',E,b,N="Sync",h,C,G="See the Sync section below.",R,M,Q="Data",z,x,F='<strong class="svelte-10kcz42">Local Data Retention (days)</strong> — Data older than this many days will be cleaned up. Set to 0 or leave empty to keep forever.';return{c(){a=n("p"),a.textContent=S,H=u(),i=n("h3"),i.textContent=O,L=u(),o=n("table"),o.innerHTML=I,m=u(),v=n("h3"),v.textContent=P,p=u(),d=n("p"),d.textContent=q,y=u(),f=n("ul"),f.innerHTML=B,E=u(),b=n("h3"),b.textContent=N,h=u(),C=n("p"),C.textContent=G,R=u(),M=n("h3"),M.textContent=Q,z=u(),x=n("p"),x.innerHTML=F,this.h()},l(s){a=c(s,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-1r3qpvn"&&(a.textContent=S),H=r(s),i=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-14c8lla"&&(i.textContent=O),L=r(s),o=c(s,"TABLE",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-yjpdjk"&&(o.innerHTML=I),m=r(s),v=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-mjie0k"&&(v.textContent=P),p=r(s),d=c(s,"P",{class:!0,"data-svelte-h":!0}),k(d)!=="svelte-v0talh"&&(d.textContent=q),y=r(s),f=c(s,"UL",{class:!0,"data-svelte-h":!0}),k(f)!=="svelte-rk4idb"&&(f.innerHTML=B),E=r(s),b=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(b)!=="svelte-zj6xq3"&&(b.textContent=N),h=r(s),C=c(s,"P",{class:!0,"data-svelte-h":!0}),k(C)!=="svelte-182f1e1"&&(C.textContent=G),R=r(s),M=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(M)!=="svelte-1f4cz38"&&(M.textContent=Q),z=r(s),x=c(s,"P",{class:!0,"data-svelte-h":!0}),k(x)!=="svelte-kkivgc"&&(x.innerHTML=F),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","docs-table svelte-10kcz42"),l(v,"class","svelte-10kcz42"),l(d,"class","svelte-10kcz42"),l(f,"class","svelte-10kcz42"),l(b,"class","svelte-10kcz42"),l(C,"class","svelte-10kcz42"),l(M,"class","svelte-10kcz42"),l(x,"class","svelte-10kcz42")},m(s,T){e(s,a,T),e(s,H,T),e(s,i,T),e(s,L,T),e(s,o,T),e(s,m,T),e(s,v,T),e(s,p,T),e(s,d,T),e(s,y,T),e(s,f,T),e(s,E,T),e(s,b,T),e(s,h,T),e(s,C,T),e(s,R,T),e(s,M,T),e(s,z,T),e(s,x,T)},d(s){s&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v),t(p),t(d),t(y),t(f),t(E),t(b),t(h),t(C),t(R),t(M),t(z),t(x))}}}function wl(w){let a,S="设置页面按模块分区,每个区域独立保存。",H,i,O="通用",L,o,I='<thead><tr><th class="svelte-10kcz42">字段</th><th class="svelte-10kcz42">说明</th></tr></thead> <tbody><tr><td class="svelte-10kcz42">设备别名</td><td class="svelte-10kcz42">可选的当前设备名称,留空则使用主机名。用于多设备场景下区分数据来源。</td></tr> <tr><td class="svelte-10kcz42">每周起始日</td><td class="svelte-10kcz42">「本周」时间范围的起始天(周日或周一 ISO)。</td></tr> <tr><td class="svelte-10kcz42">仪表盘轮询间隔</td><td class="svelte-10kcz42">首页自动刷新的间隔(毫秒,默认 30000)。</td></tr> <tr><td class="svelte-10kcz42">自动解析间隔</td><td class="svelte-10kcz42">后台自动触发解析的间隔(毫秒)。设为 0 或留空则禁用。</td></tr></tbody>',m,v,P="数据源",p,d,q="为每种 AI 工具指定自定义日志目录路径。留空则使用各工具的默认路径:",y,f,B='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">Claude Code</strong>:<code class="svelte-10kcz42">~/.claude/projects</code></li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Codex</strong>:<code class="svelte-10kcz42">~/.codex/sessions</code></li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">OpenClaw</strong>:<code class="svelte-10kcz42">~/.openclaw/agents</code></li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">OpenCode</strong>:平台相关的 SQLite 数据库路径</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Hermes</strong>:<code class="svelte-10kcz42">~/.hermes/state.db</code></li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Qoder(会话日志)</strong>:<code class="svelte-10kcz42">~/.qoder/logs/sessions</code></li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">Qoder(SQLite)</strong>:平台相关的 <code class="svelte-10kcz42">local.db</code> 路径</li>',E,b,N="同步",h,C,G="见下方「多设备同步」章节。",R,M,Q="数据管理",z,x,F='<strong class="svelte-10kcz42">本地数据保留天数</strong>:超过此天数的旧数据将被清理。设为 0 或留空则永久保留。';return{c(){a=n("p"),a.textContent=S,H=u(),i=n("h3"),i.textContent=O,L=u(),o=n("table"),o.innerHTML=I,m=u(),v=n("h3"),v.textContent=P,p=u(),d=n("p"),d.textContent=q,y=u(),f=n("ul"),f.innerHTML=B,E=u(),b=n("h3"),b.textContent=N,h=u(),C=n("p"),C.textContent=G,R=u(),M=n("h3"),M.textContent=Q,z=u(),x=n("p"),x.innerHTML=F,this.h()},l(s){a=c(s,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-gx98hq"&&(a.textContent=S),H=r(s),i=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-kvkbpy"&&(i.textContent=O),L=r(s),o=c(s,"TABLE",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-16ooc37"&&(o.innerHTML=I),m=r(s),v=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-1b7c9c4"&&(v.textContent=P),p=r(s),d=c(s,"P",{class:!0,"data-svelte-h":!0}),k(d)!=="svelte-1yydf9w"&&(d.textContent=q),y=r(s),f=c(s,"UL",{class:!0,"data-svelte-h":!0}),k(f)!=="svelte-f1synh"&&(f.innerHTML=B),E=r(s),b=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(b)!=="svelte-1bkg5ez"&&(b.textContent=N),h=r(s),C=c(s,"P",{class:!0,"data-svelte-h":!0}),k(C)!=="svelte-aj6v98"&&(C.textContent=G),R=r(s),M=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(M)!=="svelte-udil99"&&(M.textContent=Q),z=r(s),x=c(s,"P",{class:!0,"data-svelte-h":!0}),k(x)!=="svelte-1kg8wc3"&&(x.innerHTML=F),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","docs-table svelte-10kcz42"),l(v,"class","svelte-10kcz42"),l(d,"class","svelte-10kcz42"),l(f,"class","svelte-10kcz42"),l(b,"class","svelte-10kcz42"),l(C,"class","svelte-10kcz42"),l(M,"class","svelte-10kcz42"),l(x,"class","svelte-10kcz42")},m(s,T){e(s,a,T),e(s,H,T),e(s,i,T),e(s,L,T),e(s,o,T),e(s,m,T),e(s,v,T),e(s,p,T),e(s,d,T),e(s,y,T),e(s,f,T),e(s,E,T),e(s,b,T),e(s,h,T),e(s,C,T),e(s,R,T),e(s,M,T),e(s,z,T),e(s,x,T)},d(s){s&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v),t(p),t(d),t(y),t(f),t(E),t(b),t(h),t(C),t(R),t(M),t(z),t(x))}}}function Il(w){let a,S="Sync pushes this device's data to remote storage and pulls other devices' data from it, sharing usage stats across machines.",H,i,O="Supported Backends",L,o,I='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">GitHub</strong> — Push to a GitHub repository.</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">S3 / Compatible</strong> — Push to Amazon S3 or any S3-compatible storage (Cloudflare R2, MinIO, etc.).</li>',m,v,P="Configure GitHub Sync",p,d,q='<li class="svelte-10kcz42">In Settings → Sync, set Backend to <strong class="svelte-10kcz42">GitHub</strong>.</li> <li class="svelte-10kcz42">Fill in the Repository field (format: <code class="svelte-10kcz42">owner/repo</code>).</li> <li class="svelte-10kcz42">Enter your GitHub Token — a Personal Access Token with repo write permission.</li> <li class="svelte-10kcz42">Click Save.</li>',y,f,B="Configure S3 Sync",E,b,N='<li class="svelte-10kcz42">Set Backend to <strong class="svelte-10kcz42">S3 / Compatible</strong>.</li> <li class="svelte-10kcz42">Fill in bucket, endpoint, region, and optional prefix.</li> <li class="svelte-10kcz42">Enter the <strong class="svelte-10kcz42">Access Key ID</strong>.</li> <li class="svelte-10kcz42">Enter the <strong class="svelte-10kcz42">Secret Access Key</strong>.</li> <li class="svelte-10kcz42">Click Save.</li>',h,C,G="Triggering a Sync",R,M,Q='Click the <strong class="svelte-10kcz42">⇅ Sync</strong> button in the sidebar footer, or use the CLI:',z,x,F='<code class="svelte-10kcz42">aiusage sync</code>';return{c(){a=n("p"),a.textContent=S,H=u(),i=n("h3"),i.textContent=O,L=u(),o=n("ul"),o.innerHTML=I,m=u(),v=n("h3"),v.textContent=P,p=u(),d=n("ol"),d.innerHTML=q,y=u(),f=n("h3"),f.textContent=B,E=u(),b=n("ol"),b.innerHTML=N,h=u(),C=n("h3"),C.textContent=G,R=u(),M=n("p"),M.innerHTML=Q,z=u(),x=n("pre"),x.innerHTML=F,this.h()},l(s){a=c(s,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-cde53k"&&(a.textContent=S),H=r(s),i=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-1a59akv"&&(i.textContent=O),L=r(s),o=c(s,"UL",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-1yaa4o1"&&(o.innerHTML=I),m=r(s),v=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-1s7pm3g"&&(v.textContent=P),p=r(s),d=c(s,"OL",{class:!0,"data-svelte-h":!0}),k(d)!=="svelte-1d3mls6"&&(d.innerHTML=q),y=r(s),f=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(f)!=="svelte-vtk1e1"&&(f.textContent=B),E=r(s),b=c(s,"OL",{class:!0,"data-svelte-h":!0}),k(b)!=="svelte-d0kz6y"&&(b.innerHTML=N),h=r(s),C=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(C)!=="svelte-1l586ps"&&(C.textContent=G),R=r(s),M=c(s,"P",{class:!0,"data-svelte-h":!0}),k(M)!=="svelte-1new38y"&&(M.innerHTML=Q),z=r(s),x=c(s,"PRE",{class:!0,"data-svelte-h":!0}),k(x)!=="svelte-5wq6tv"&&(x.innerHTML=F),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","svelte-10kcz42"),l(d,"class","svelte-10kcz42"),l(f,"class","svelte-10kcz42"),l(b,"class","svelte-10kcz42"),l(C,"class","svelte-10kcz42"),l(M,"class","svelte-10kcz42"),l(x,"class","svelte-10kcz42")},m(s,T){e(s,a,T),e(s,H,T),e(s,i,T),e(s,L,T),e(s,o,T),e(s,m,T),e(s,v,T),e(s,p,T),e(s,d,T),e(s,y,T),e(s,f,T),e(s,E,T),e(s,b,T),e(s,h,T),e(s,C,T),e(s,R,T),e(s,M,T),e(s,z,T),e(s,x,T)},d(s){s&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v),t(p),t(d),t(y),t(f),t(E),t(b),t(h),t(C),t(R),t(M),t(z),t(x))}}}function El(w){let a,S="同步功能将本设备的数据推送到远程存储,并从远程拉取其他设备的数据,实现多台设备之间的用量统计共享。",H,i,O="支持的后端",L,o,I='<li class="svelte-10kcz42"><strong class="svelte-10kcz42">GitHub</strong>:推送到 GitHub 仓库。</li> <li class="svelte-10kcz42"><strong class="svelte-10kcz42">S3 / 兼容存储</strong>:推送到 Amazon S3 或任何 S3 兼容存储(如 Cloudflare R2、MinIO)。</li>',m,v,P="配置 GitHub 同步",p,d,q='<li class="svelte-10kcz42">在设置页面的「同步」区域选择后端为 <strong class="svelte-10kcz42">GitHub</strong>。</li> <li class="svelte-10kcz42">填写「仓库」字段(格式:<code class="svelte-10kcz42">owner/repo</code>)。</li> <li class="svelte-10kcz42">填写 GitHub Token(具有仓库写入权限的 Personal Access Token)。</li> <li class="svelte-10kcz42">点击「保存」。</li>',y,f,B="配置 S3 同步",E,b,N='<li class="svelte-10kcz42">选择后端为 <strong class="svelte-10kcz42">S3 / Compatible</strong>。</li> <li class="svelte-10kcz42">填写存储桶名称、Endpoint、Region、前缀(可选)。</li> <li class="svelte-10kcz42">填写 <strong class="svelte-10kcz42">Access Key ID</strong> 字段。</li> <li class="svelte-10kcz42">填写 <strong class="svelte-10kcz42">Secret Access Key</strong> 字段。</li> <li class="svelte-10kcz42">点击「保存」。</li>',h,C,G="触发同步",R,M,Q='点击侧边栏底部的 <strong class="svelte-10kcz42">⇅ 同步</strong> 按钮手动触发一次同步,或使用 CLI:',z,x,F='<code class="svelte-10kcz42">aiusage sync</code>';return{c(){a=n("p"),a.textContent=S,H=u(),i=n("h3"),i.textContent=O,L=u(),o=n("ul"),o.innerHTML=I,m=u(),v=n("h3"),v.textContent=P,p=u(),d=n("ol"),d.innerHTML=q,y=u(),f=n("h3"),f.textContent=B,E=u(),b=n("ol"),b.innerHTML=N,h=u(),C=n("h3"),C.textContent=G,R=u(),M=n("p"),M.innerHTML=Q,z=u(),x=n("pre"),x.innerHTML=F,this.h()},l(s){a=c(s,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-4q1lj6"&&(a.textContent=S),H=r(s),i=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-286j7"&&(i.textContent=O),L=r(s),o=c(s,"UL",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-vb9ffc"&&(o.innerHTML=I),m=r(s),v=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-1nsfhft"&&(v.textContent=P),p=r(s),d=c(s,"OL",{class:!0,"data-svelte-h":!0}),k(d)!=="svelte-procg2"&&(d.innerHTML=q),y=r(s),f=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(f)!=="svelte-1hhi2by"&&(f.textContent=B),E=r(s),b=c(s,"OL",{class:!0,"data-svelte-h":!0}),k(b)!=="svelte-1puksh6"&&(b.innerHTML=N),h=r(s),C=c(s,"H3",{class:!0,"data-svelte-h":!0}),k(C)!=="svelte-1u6usze"&&(C.textContent=G),R=r(s),M=c(s,"P",{class:!0,"data-svelte-h":!0}),k(M)!=="svelte-1irrqu5"&&(M.innerHTML=Q),z=r(s),x=c(s,"PRE",{class:!0,"data-svelte-h":!0}),k(x)!=="svelte-5wq6tv"&&(x.innerHTML=F),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","svelte-10kcz42"),l(d,"class","svelte-10kcz42"),l(f,"class","svelte-10kcz42"),l(b,"class","svelte-10kcz42"),l(C,"class","svelte-10kcz42"),l(M,"class","svelte-10kcz42"),l(x,"class","svelte-10kcz42")},m(s,T){e(s,a,T),e(s,H,T),e(s,i,T),e(s,L,T),e(s,o,T),e(s,m,T),e(s,v,T),e(s,p,T),e(s,d,T),e(s,y,T),e(s,f,T),e(s,E,T),e(s,b,T),e(s,h,T),e(s,C,T),e(s,R,T),e(s,M,T),e(s,z,T),e(s,x,T)},d(s){s&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v),t(p),t(d),t(y),t(f),t(E),t(b),t(h),t(C),t(R),t(M),t(z),t(x))}}}function Sl(w){let a,S='All CLI commands are invoked as <code class="svelte-10kcz42">aiusage &lt;command&gt;</code>. Running without a subcommand is equivalent to <code class="svelte-10kcz42">aiusage summary</code>.',H,i,O='<code class="svelte-10kcz42">parse</code> — Parse Logs',L,o,I="Import newly appended local session data from discovered source paths.",m,v,P='<thead><tr><th class="svelte-10kcz42">Option</th><th class="svelte-10kcz42">Description</th></tr></thead> <tbody><tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">--tool &lt;tool&gt;</code></td><td class="svelte-10kcz42">Only parse a specific tool: <code class="svelte-10kcz42">claude-code</code>, <code class="svelte-10kcz42">codex</code>, <code class="svelte-10kcz42">openclaw</code>, <code class="svelte-10kcz42">opencode</code>, <code class="svelte-10kcz42">hermes</code>, <code class="svelte-10kcz42">qoder</code></td></tr> <tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">--progress</code></td><td class="svelte-10kcz42">Show real-time progress bar on stderr (TTY only, silent in pipes/CI)</td></tr></tbody>',p,d,q=`<code class="svelte-10kcz42">aiusage parse # Parse all tools
8
+ aiusage parse --tool claude-code # Only parse Claude Code
9
+ aiusage parse --progress # Show progress bar</code>`,y,f,B='<code class="svelte-10kcz42">serve</code> — Start Dashboard',E,b,N='<thead><tr><th class="svelte-10kcz42">Option</th><th class="svelte-10kcz42">Description</th><th class="svelte-10kcz42">Default</th></tr></thead> <tbody><tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">-p, --port &lt;port&gt;</code></td><td class="svelte-10kcz42">Port number</td><td class="svelte-10kcz42"><code class="svelte-10kcz42">3847</code></td></tr></tbody>',h,C,G=`<code class="svelte-10kcz42">aiusage serve # Start on port 3847
10
+ aiusage serve -p 8080 # Start on port 8080</code>`,R,M,Q='<code class="svelte-10kcz42">summary</code> — Terminal Summary',z,x,F='<thead><tr><th class="svelte-10kcz42">Option</th><th class="svelte-10kcz42">Description</th></tr></thead> <tbody><tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">--device &lt;id&gt;</code></td><td class="svelte-10kcz42">Filter by device instance ID</td></tr> <tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">--tool &lt;tool&gt;</code></td><td class="svelte-10kcz42">Filter by tool type</td></tr></tbody>',s,T,ot='<code class="svelte-10kcz42">export</code> — Export Data',g,U,ut='<thead><tr><th class="svelte-10kcz42">Option</th><th class="svelte-10kcz42">Description</th><th class="svelte-10kcz42">Required</th></tr></thead> <tbody><tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">--format &lt;f&gt;</code></td><td class="svelte-10kcz42">Output format: <code class="svelte-10kcz42">csv</code>, <code class="svelte-10kcz42">json</code>, <code class="svelte-10kcz42">ndjson</code></td><td class="svelte-10kcz42">Yes</td></tr> <tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">-o, --output &lt;f&gt;</code></td><td class="svelte-10kcz42">Output file path (default: stdout)</td><td class="svelte-10kcz42">No</td></tr></tbody>',kt,J,bt='<code class="svelte-10kcz42">clean</code> — Clean Old Data',ft,st,it='<thead><tr><th class="svelte-10kcz42">Option</th><th class="svelte-10kcz42">Description</th><th class="svelte-10kcz42">Default</th></tr></thead> <tbody><tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">--before &lt;dur&gt;</code></td><td class="svelte-10kcz42">Delete data older than this (e.g. <code class="svelte-10kcz42">30d</code>, <code class="svelte-10kcz42">180d</code>)</td><td class="svelte-10kcz42"><code class="svelte-10kcz42">180d</code></td></tr></tbody>',dt,X,Tt='<code class="svelte-10kcz42">reset</code> — Reset All Data',pt,$,Ct="Delete all parsed records, tool calls, synced data, and the parse watermark. Source log files are not affected. Use this to re-import everything from scratch.",vt,lt,Et='<thead><tr><th class="svelte-10kcz42">Option</th><th class="svelte-10kcz42">Description</th></tr></thead> <tbody><tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">--yes</code></td><td class="svelte-10kcz42">Skip confirmation prompt (required to execute)</td></tr></tbody>',zt,Z,mt='<code class="svelte-10kcz42">aiusage reset --yes # Wipe all, then run aiusage parse to re-import</code>',xt,Y,_t="Other Commands",ht,tt,St='<thead><tr><th class="svelte-10kcz42">Command</th><th class="svelte-10kcz42">Description</th><th class="svelte-10kcz42">Options</th></tr></thead> <tbody><tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">status</code></td><td class="svelte-10kcz42">Show version, device name, DB path, schema version, table/view counts, record count, DB size, and sync status</td><td class="svelte-10kcz42">—</td></tr> <tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">sync</code></td><td class="svelte-10kcz42">Push and pull data with remote backend</td><td class="svelte-10kcz42">—</td></tr> <tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">recalc</code></td><td class="svelte-10kcz42">Recalculate costs with latest pricing</td><td class="svelte-10kcz42">—</td></tr> <tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">init</code></td><td class="svelte-10kcz42">Configure a sync backend</td><td class="svelte-10kcz42"><code class="svelte-10kcz42">--backend</code>, <code class="svelte-10kcz42">--repo</code>, <code class="svelte-10kcz42">--token</code>, <code class="svelte-10kcz42">--bucket</code>, <code class="svelte-10kcz42">--endpoint</code>, etc.</td></tr></tbody>';return{c(){a=n("p"),a.innerHTML=S,H=u(),i=n("h3"),i.innerHTML=O,L=u(),o=n("p"),o.textContent=I,m=u(),v=n("table"),v.innerHTML=P,p=u(),d=n("pre"),d.innerHTML=q,y=u(),f=n("h3"),f.innerHTML=B,E=u(),b=n("table"),b.innerHTML=N,h=u(),C=n("pre"),C.innerHTML=G,R=u(),M=n("h3"),M.innerHTML=Q,z=u(),x=n("table"),x.innerHTML=F,s=u(),T=n("h3"),T.innerHTML=ot,g=u(),U=n("table"),U.innerHTML=ut,kt=u(),J=n("h3"),J.innerHTML=bt,ft=u(),st=n("table"),st.innerHTML=it,dt=u(),X=n("h3"),X.innerHTML=Tt,pt=u(),$=n("p"),$.textContent=Ct,vt=u(),lt=n("table"),lt.innerHTML=Et,zt=u(),Z=n("pre"),Z.innerHTML=mt,xt=u(),Y=n("h3"),Y.textContent=_t,ht=u(),tt=n("table"),tt.innerHTML=St,this.h()},l(_){a=c(_,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-mzgy37"&&(a.innerHTML=S),H=r(_),i=c(_,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-ooijr2"&&(i.innerHTML=O),L=r(_),o=c(_,"P",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-ycj8qb"&&(o.textContent=I),m=r(_),v=c(_,"TABLE",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-1k12sgn"&&(v.innerHTML=P),p=r(_),d=c(_,"PRE",{class:!0,"data-svelte-h":!0}),k(d)!=="svelte-528mlr"&&(d.innerHTML=q),y=r(_),f=c(_,"H3",{class:!0,"data-svelte-h":!0}),k(f)!=="svelte-cn1tqq"&&(f.innerHTML=B),E=r(_),b=c(_,"TABLE",{class:!0,"data-svelte-h":!0}),k(b)!=="svelte-10nphft"&&(b.innerHTML=N),h=r(_),C=c(_,"PRE",{class:!0,"data-svelte-h":!0}),k(C)!=="svelte-1wwjcyy"&&(C.innerHTML=G),R=r(_),M=c(_,"H3",{class:!0,"data-svelte-h":!0}),k(M)!=="svelte-1feue25"&&(M.innerHTML=Q),z=r(_),x=c(_,"TABLE",{class:!0,"data-svelte-h":!0}),k(x)!=="svelte-51aahw"&&(x.innerHTML=F),s=r(_),T=c(_,"H3",{class:!0,"data-svelte-h":!0}),k(T)!=="svelte-umaq61"&&(T.innerHTML=ot),g=r(_),U=c(_,"TABLE",{class:!0,"data-svelte-h":!0}),k(U)!=="svelte-122og7f"&&(U.innerHTML=ut),kt=r(_),J=c(_,"H3",{class:!0,"data-svelte-h":!0}),k(J)!=="svelte-1blqwiy"&&(J.innerHTML=bt),ft=r(_),st=c(_,"TABLE",{class:!0,"data-svelte-h":!0}),k(st)!=="svelte-sy74he"&&(st.innerHTML=it),dt=r(_),X=c(_,"H3",{class:!0,"data-svelte-h":!0}),k(X)!=="svelte-102v38g"&&(X.innerHTML=Tt),pt=r(_),$=c(_,"P",{class:!0,"data-svelte-h":!0}),k($)!=="svelte-1noqo6m"&&($.textContent=Ct),vt=r(_),lt=c(_,"TABLE",{class:!0,"data-svelte-h":!0}),k(lt)!=="svelte-1460fgc"&&(lt.innerHTML=Et),zt=r(_),Z=c(_,"PRE",{class:!0,"data-svelte-h":!0}),k(Z)!=="svelte-3o86nj"&&(Z.innerHTML=mt),xt=r(_),Y=c(_,"H3",{class:!0,"data-svelte-h":!0}),k(Y)!=="svelte-l1wq7o"&&(Y.textContent=_t),ht=r(_),tt=c(_,"TABLE",{class:!0,"data-svelte-h":!0}),k(tt)!=="svelte-1lebt23"&&(tt.innerHTML=St),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","docs-table svelte-10kcz42"),l(d,"class","svelte-10kcz42"),l(f,"class","svelte-10kcz42"),l(b,"class","docs-table svelte-10kcz42"),l(C,"class","svelte-10kcz42"),l(M,"class","svelte-10kcz42"),l(x,"class","docs-table svelte-10kcz42"),l(T,"class","svelte-10kcz42"),l(U,"class","docs-table svelte-10kcz42"),l(J,"class","svelte-10kcz42"),l(st,"class","docs-table svelte-10kcz42"),l(X,"class","svelte-10kcz42"),l($,"class","svelte-10kcz42"),l(lt,"class","docs-table svelte-10kcz42"),l(Z,"class","svelte-10kcz42"),l(Y,"class","svelte-10kcz42"),l(tt,"class","docs-table svelte-10kcz42")},m(_,D){e(_,a,D),e(_,H,D),e(_,i,D),e(_,L,D),e(_,o,D),e(_,m,D),e(_,v,D),e(_,p,D),e(_,d,D),e(_,y,D),e(_,f,D),e(_,E,D),e(_,b,D),e(_,h,D),e(_,C,D),e(_,R,D),e(_,M,D),e(_,z,D),e(_,x,D),e(_,s,D),e(_,T,D),e(_,g,D),e(_,U,D),e(_,kt,D),e(_,J,D),e(_,ft,D),e(_,st,D),e(_,dt,D),e(_,X,D),e(_,pt,D),e(_,$,D),e(_,vt,D),e(_,lt,D),e(_,zt,D),e(_,Z,D),e(_,xt,D),e(_,Y,D),e(_,ht,D),e(_,tt,D)},d(_){_&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v),t(p),t(d),t(y),t(f),t(E),t(b),t(h),t(C),t(R),t(M),t(z),t(x),t(s),t(T),t(g),t(U),t(kt),t(J),t(ft),t(st),t(dt),t(X),t(pt),t($),t(vt),t(lt),t(zt),t(Z),t(xt),t(Y),t(ht),t(tt))}}}function Al(w){let a,S='所有 CLI 命令均通过 <code class="svelte-10kcz42">aiusage &lt;command&gt;</code> 调用。不带子命令时等同于 <code class="svelte-10kcz42">aiusage summary</code>。',H,i,O='<code class="svelte-10kcz42">parse</code> — 解析日志',L,o,I="从自动发现的数据来源路径导入本地新追加的会话数据。",m,v,P='<thead><tr><th class="svelte-10kcz42">选项</th><th class="svelte-10kcz42">说明</th></tr></thead> <tbody><tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">--tool &lt;tool&gt;</code></td><td class="svelte-10kcz42">只解析指定工具:<code class="svelte-10kcz42">claude-code</code>、<code class="svelte-10kcz42">codex</code>、<code class="svelte-10kcz42">openclaw</code>、<code class="svelte-10kcz42">opencode</code>、<code class="svelte-10kcz42">hermes</code>、<code class="svelte-10kcz42">qoder</code></td></tr> <tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">--progress</code></td><td class="svelte-10kcz42">在 stderr 显示实时进度条(仅 TTY 环境,管道/CI 下自动静默)</td></tr></tbody>',p,d,q=`<code class="svelte-10kcz42">aiusage parse # 解析所有工具
11
+ aiusage parse --tool claude-code # 只解析 Claude Code
12
+ aiusage parse --progress # 显示进度条</code>`,y,f,B='<code class="svelte-10kcz42">serve</code> — 启动仪表盘',E,b,N='<thead><tr><th class="svelte-10kcz42">选项</th><th class="svelte-10kcz42">说明</th><th class="svelte-10kcz42">默认值</th></tr></thead> <tbody><tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">-p, --port &lt;port&gt;</code></td><td class="svelte-10kcz42">端口号</td><td class="svelte-10kcz42"><code class="svelte-10kcz42">3847</code></td></tr></tbody>',h,C,G=`<code class="svelte-10kcz42">aiusage serve # 使用 3847 端口
13
+ aiusage serve -p 8080 # 使用 8080 端口</code>`,R,M,Q='<code class="svelte-10kcz42">summary</code> — 终端摘要',z,x,F='<thead><tr><th class="svelte-10kcz42">选项</th><th class="svelte-10kcz42">说明</th></tr></thead> <tbody><tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">--device &lt;id&gt;</code></td><td class="svelte-10kcz42">按设备实例 ID 筛选</td></tr> <tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">--tool &lt;tool&gt;</code></td><td class="svelte-10kcz42">按工具类型筛选</td></tr></tbody>',s,T,ot='<code class="svelte-10kcz42">export</code> — 导出数据',g,U,ut='<thead><tr><th class="svelte-10kcz42">选项</th><th class="svelte-10kcz42">说明</th><th class="svelte-10kcz42">必填</th></tr></thead> <tbody><tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">--format &lt;f&gt;</code></td><td class="svelte-10kcz42">输出格式:<code class="svelte-10kcz42">csv</code>、<code class="svelte-10kcz42">json</code>、<code class="svelte-10kcz42">ndjson</code></td><td class="svelte-10kcz42">是</td></tr> <tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">-o, --output &lt;f&gt;</code></td><td class="svelte-10kcz42">输出文件路径(默认 stdout)</td><td class="svelte-10kcz42">否</td></tr></tbody>',kt,J,bt='<code class="svelte-10kcz42">clean</code> — 清理旧数据',ft,st,it='<thead><tr><th class="svelte-10kcz42">选项</th><th class="svelte-10kcz42">说明</th><th class="svelte-10kcz42">默认值</th></tr></thead> <tbody><tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">--before &lt;dur&gt;</code></td><td class="svelte-10kcz42">删除此时间之前的数据(如 <code class="svelte-10kcz42">30d</code>、<code class="svelte-10kcz42">180d</code>)</td><td class="svelte-10kcz42"><code class="svelte-10kcz42">180d</code></td></tr></tbody>',dt,X,Tt='<code class="svelte-10kcz42">reset</code> — 重置所有数据',pt,$,Ct="删除所有已解析的记录、工具调用、同步数据和水位线。原始日志文件不受影响。用于从头重新导入。",vt,lt,Et='<thead><tr><th class="svelte-10kcz42">选项</th><th class="svelte-10kcz42">说明</th></tr></thead> <tbody><tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">--yes</code></td><td class="svelte-10kcz42">跳过确认提示(必须指定才会执行)</td></tr></tbody>',zt,Z,mt='<code class="svelte-10kcz42">aiusage reset --yes # 清空后执行 aiusage parse 重新导入</code>',xt,Y,_t="其他命令",ht,tt,St='<thead><tr><th class="svelte-10kcz42">命令</th><th class="svelte-10kcz42">说明</th><th class="svelte-10kcz42">选项</th></tr></thead> <tbody><tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">status</code></td><td class="svelte-10kcz42">显示版本号、设备名称、数据库路径、schema 版本、表和视图数量、记录数、数据库大小及同步状态</td><td class="svelte-10kcz42">—</td></tr> <tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">sync</code></td><td class="svelte-10kcz42">与远程后端双向同步数据</td><td class="svelte-10kcz42">—</td></tr> <tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">recalc</code></td><td class="svelte-10kcz42">按最新定价重新计算费用</td><td class="svelte-10kcz42">—</td></tr> <tr><td class="svelte-10kcz42"><code class="svelte-10kcz42">init</code></td><td class="svelte-10kcz42">配置同步后端</td><td class="svelte-10kcz42"><code class="svelte-10kcz42">--backend</code>、<code class="svelte-10kcz42">--repo</code>、<code class="svelte-10kcz42">--token</code>、<code class="svelte-10kcz42">--bucket</code>、<code class="svelte-10kcz42">--endpoint</code> 等</td></tr></tbody>';return{c(){a=n("p"),a.innerHTML=S,H=u(),i=n("h3"),i.innerHTML=O,L=u(),o=n("p"),o.textContent=I,m=u(),v=n("table"),v.innerHTML=P,p=u(),d=n("pre"),d.innerHTML=q,y=u(),f=n("h3"),f.innerHTML=B,E=u(),b=n("table"),b.innerHTML=N,h=u(),C=n("pre"),C.innerHTML=G,R=u(),M=n("h3"),M.innerHTML=Q,z=u(),x=n("table"),x.innerHTML=F,s=u(),T=n("h3"),T.innerHTML=ot,g=u(),U=n("table"),U.innerHTML=ut,kt=u(),J=n("h3"),J.innerHTML=bt,ft=u(),st=n("table"),st.innerHTML=it,dt=u(),X=n("h3"),X.innerHTML=Tt,pt=u(),$=n("p"),$.textContent=Ct,vt=u(),lt=n("table"),lt.innerHTML=Et,zt=u(),Z=n("pre"),Z.innerHTML=mt,xt=u(),Y=n("h3"),Y.textContent=_t,ht=u(),tt=n("table"),tt.innerHTML=St,this.h()},l(_){a=c(_,"P",{class:!0,"data-svelte-h":!0}),k(a)!=="svelte-1iaevly"&&(a.innerHTML=S),H=r(_),i=c(_,"H3",{class:!0,"data-svelte-h":!0}),k(i)!=="svelte-1c73czd"&&(i.innerHTML=O),L=r(_),o=c(_,"P",{class:!0,"data-svelte-h":!0}),k(o)!=="svelte-ij83fi"&&(o.textContent=I),m=r(_),v=c(_,"TABLE",{class:!0,"data-svelte-h":!0}),k(v)!=="svelte-r9uq53"&&(v.innerHTML=P),p=r(_),d=c(_,"PRE",{class:!0,"data-svelte-h":!0}),k(d)!=="svelte-1002375"&&(d.innerHTML=q),y=r(_),f=c(_,"H3",{class:!0,"data-svelte-h":!0}),k(f)!=="svelte-1dkh8h"&&(f.innerHTML=B),E=r(_),b=c(_,"TABLE",{class:!0,"data-svelte-h":!0}),k(b)!=="svelte-1t8yjx6"&&(b.innerHTML=N),h=r(_),C=c(_,"PRE",{class:!0,"data-svelte-h":!0}),k(C)!=="svelte-i61iig"&&(C.innerHTML=G),R=r(_),M=c(_,"H3",{class:!0,"data-svelte-h":!0}),k(M)!=="svelte-11wbrfv"&&(M.innerHTML=Q),z=r(_),x=c(_,"TABLE",{class:!0,"data-svelte-h":!0}),k(x)!=="svelte-s2f2i6"&&(x.innerHTML=F),s=r(_),T=c(_,"H3",{class:!0,"data-svelte-h":!0}),k(T)!=="svelte-jyt6b9"&&(T.innerHTML=ot),g=r(_),U=c(_,"TABLE",{class:!0,"data-svelte-h":!0}),k(U)!=="svelte-ywki6g"&&(U.innerHTML=ut),kt=r(_),J=c(_,"H3",{class:!0,"data-svelte-h":!0}),k(J)!=="svelte-bi7c46"&&(J.innerHTML=bt),ft=r(_),st=c(_,"TABLE",{class:!0,"data-svelte-h":!0}),k(st)!=="svelte-n47iid"&&(st.innerHTML=it),dt=r(_),X=c(_,"H3",{class:!0,"data-svelte-h":!0}),k(X)!=="svelte-72e6fe"&&(X.innerHTML=Tt),pt=r(_),$=c(_,"P",{class:!0,"data-svelte-h":!0}),k($)!=="svelte-70tdqu"&&($.textContent=Ct),vt=r(_),lt=c(_,"TABLE",{class:!0,"data-svelte-h":!0}),k(lt)!=="svelte-1sky1ct"&&(lt.innerHTML=Et),zt=r(_),Z=c(_,"PRE",{class:!0,"data-svelte-h":!0}),k(Z)!=="svelte-1nfk7dt"&&(Z.innerHTML=mt),xt=r(_),Y=c(_,"H3",{class:!0,"data-svelte-h":!0}),k(Y)!=="svelte-1lpuacl"&&(Y.textContent=_t),ht=r(_),tt=c(_,"TABLE",{class:!0,"data-svelte-h":!0}),k(tt)!=="svelte-1vlt8v9"&&(tt.innerHTML=St),this.h()},h(){l(a,"class","svelte-10kcz42"),l(i,"class","svelte-10kcz42"),l(o,"class","svelte-10kcz42"),l(v,"class","docs-table svelte-10kcz42"),l(d,"class","svelte-10kcz42"),l(f,"class","svelte-10kcz42"),l(b,"class","docs-table svelte-10kcz42"),l(C,"class","svelte-10kcz42"),l(M,"class","svelte-10kcz42"),l(x,"class","docs-table svelte-10kcz42"),l(T,"class","svelte-10kcz42"),l(U,"class","docs-table svelte-10kcz42"),l(J,"class","svelte-10kcz42"),l(st,"class","docs-table svelte-10kcz42"),l(X,"class","svelte-10kcz42"),l($,"class","svelte-10kcz42"),l(lt,"class","docs-table svelte-10kcz42"),l(Z,"class","svelte-10kcz42"),l(Y,"class","svelte-10kcz42"),l(tt,"class","docs-table svelte-10kcz42")},m(_,D){e(_,a,D),e(_,H,D),e(_,i,D),e(_,L,D),e(_,o,D),e(_,m,D),e(_,v,D),e(_,p,D),e(_,d,D),e(_,y,D),e(_,f,D),e(_,E,D),e(_,b,D),e(_,h,D),e(_,C,D),e(_,R,D),e(_,M,D),e(_,z,D),e(_,x,D),e(_,s,D),e(_,T,D),e(_,g,D),e(_,U,D),e(_,kt,D),e(_,J,D),e(_,ft,D),e(_,st,D),e(_,dt,D),e(_,X,D),e(_,pt,D),e(_,$,D),e(_,vt,D),e(_,lt,D),e(_,zt,D),e(_,Z,D),e(_,xt,D),e(_,Y,D),e(_,ht,D),e(_,tt,D)},d(_){_&&(t(a),t(H),t(i),t(L),t(o),t(m),t(v),t(p),t(d),t(y),t(f),t(E),t(b),t(h),t(C),t(R),t(M),t(z),t(x),t(s),t(T),t(g),t(U),t(kt),t(J),t(ft),t(st),t(dt),t(X),t(pt),t($),t(vt),t(lt),t(zt),t(Z),t(xt),t(Y),t(ht),t(tt))}}}function jl(w){let a,S,H,i,O,L=w[1]?"目录":"Contents",o,I,m,v,P,p,d,q=w[1]?"AIUsage 文档":"AIUsage Documentation",y,f,B,E=w[1]?"AIUsage 是一款 AI 工具用量统计平台,支持 Claude Code、Codex、OpenClaw、OpenCode、Hermes、Qoder 等多种 AI 工具的 Token 和费用追踪。":"AIUsage is a local-first usage analytics platform for AI coding tools — tracking tokens, costs, sessions and more across Claude Code, Codex, OpenClaw, OpenCode, Hermes, and Qoder.",b,N,h,C,G=w[1]?"快速开始":"Getting Started",R,M,Q,z,x,F="ℹ",s,T,ot=w[1]?"仪表盘首页在浏览器首次加载时会自动触发一次解析。您也可以在 Settings 页面配置自动定期解析(仅在 aiusage serve 运行期间有效)。":"The dashboard home page triggers a parse automatically on first load. You can also configure automatic periodic parsing in Settings (only active while aiusage serve is running).",g,U,ut,kt,J=w[1]?"仪表盘(首页)":"Dashboard (Home)",bt,ft,st,it,dt,X=w[1]?"概览":"Overview",Tt,pt,$,Ct,vt,lt="✦",Et,zt,Z=w[1]?"使用页面顶部的筛选栏可以按日期范围、设备、AI 助手进行过滤,所有数据页面均支持这些筛选条件。":"Use the filter bar at the top to narrow by date range, device, and AI assistant — all data pages share these filters.",mt,xt,Y,_t,ht=w[1]?"Token 用量":"Tokens",tt,St,_,D,Yt,ae=w[1]?"费用":"Cost",he,Xe,Ze,Ht,Kt,ie=w[1]?"模型":"Models",Ce,$e,ts,Lt,Jt,oe=w[1]?"工具调用":"Tool Calls",fe,es,ss,yt,Xt,ve=w[1]?"项目":"Projects",pe,ls,cs,Mt,Zt,re=w[1]?"会话":"Sessions",xe,ns,as,gt,$t,ue=w[1]?"定价":"Pricing",_e,is,os,Pt,te,ke=w[1]?"设置":"Settings",be,vs,rs,wt,ee,de=w[1]?"多设备同步":"Sync",Te,us,ks,It,se,ze=w[1]?"CLI 命令参考":"CLI Reference",me,ds;hs.title=a=(w[1]?"文档":"Documentation")+" — AIUsage";let le=Js(w[2]),rt=[];for(let A=0;A<le.length;A+=1)rt[A]=Zs(Xs(w,le,A));function Cs(A,W){return A[1]?rl:vl}let He=Cs(w),At=He(w);function fs(A,W){return A[1]?kl:ul}let Le=fs(w),jt=Le(w);function ps(A,W){return A[1]?zl:dl}let ye=ps(w),Ot=ye(w);function xs(A,W){return A[1]?Cl:hl}let Me=xs(w),Dt=Me(w);function _s(A,W){return A[1]?pl:fl}let ge=_s(w),Rt=ge(w);function bs(A,W){return A[1]?_l:xl}let Pe=bs(w),qt=Pe(w);function Ts(A,W){return A[1]?Tl:bl}let we=Ts(w),Ut=we(w);function ms(A,W){return A[1]?Hl:ml}let Ie=ms(w),Bt=Ie(w);function Hs(A,W){return A[1]?yl:Ll}let Ee=Hs(w),Nt=Ee(w);function Ls(A,W){return A[1]?gl:Ml}let Se=Ls(w),Gt=Se(w);function ys(A,W){return A[1]?wl:Pl}let Ae=ys(w),Qt=Ae(w);function Ms(A,W){return A[1]?El:Il}let je=Ms(w),Vt=je(w);function gs(A,W){return A[1]?Al:Sl}let Oe=gs(w),Wt=Oe(w);return{c(){S=u(),H=n("div"),i=n("aside"),O=n("div"),o=at(L),I=u(),m=n("nav");for(let A=0;A<rt.length;A+=1)rt[A].c();v=u(),P=n("article"),p=n("div"),d=n("h1"),y=at(q),f=u(),B=n("p"),b=at(E),N=u(),h=n("section"),C=n("h2"),R=at(G),M=u(),At.c(),Q=u(),z=n("div"),x=n("span"),x.textContent=F,s=u(),T=n("span"),g=at(ot),U=u(),ut=n("section"),kt=n("h2"),bt=at(J),ft=u(),jt.c(),st=u(),it=n("section"),dt=n("h2"),Tt=at(X),pt=u(),Ot.c(),$=u(),Ct=n("div"),vt=n("span"),vt.textContent=lt,Et=u(),zt=n("span"),mt=at(Z),xt=u(),Y=n("section"),_t=n("h2"),tt=at(ht),St=u(),Dt.c(),_=u(),D=n("section"),Yt=n("h2"),he=at(ae),Xe=u(),Rt.c(),Ze=u(),Ht=n("section"),Kt=n("h2"),Ce=at(ie),$e=u(),qt.c(),ts=u(),Lt=n("section"),Jt=n("h2"),fe=at(oe),es=u(),Ut.c(),ss=u(),yt=n("section"),Xt=n("h2"),pe=at(ve),ls=u(),Bt.c(),cs=u(),Mt=n("section"),Zt=n("h2"),xe=at(re),ns=u(),Nt.c(),as=u(),gt=n("section"),$t=n("h2"),_e=at(ue),is=u(),Gt.c(),os=u(),Pt=n("section"),te=n("h2"),be=at(ke),vs=u(),Qt.c(),rs=u(),wt=n("section"),ee=n("h2"),Te=at(de),us=u(),Vt.c(),ks=u(),It=n("section"),se=n("h2"),me=at(ze),ds=u(),Wt.c(),this.h()},l(A){nl("svelte-19lisch",hs.head).forEach(t),S=r(A),H=c(A,"DIV",{class:!0});var et=V(H);i=c(et,"ASIDE",{class:!0});var Ft=V(i);O=c(Ft,"DIV",{class:!0});var Ps=V(O);o=nt(Ps,L),Ps.forEach(t),I=r(Ft),m=c(Ft,"NAV",{class:!0});var ws=V(m);for(let zs=0;zs<rt.length;zs+=1)rt[zs].l(ws);ws.forEach(t),Ft.forEach(t),v=r(et),P=c(et,"ARTICLE",{class:!0});var K=V(P);p=c(K,"DIV",{class:!0});var De=V(p);d=c(De,"H1",{});var Is=V(d);y=nt(Is,q),Is.forEach(t),f=r(De),B=c(De,"P",{});var Es=V(B);b=nt(Es,E),Es.forEach(t),De.forEach(t),N=r(K),h=c(K,"SECTION",{id:!0,class:!0});var ce=V(h);C=c(ce,"H2",{class:!0});var Ss=V(C);R=nt(Ss,G),Ss.forEach(t),M=r(ce),At.l(ce),Q=r(ce),z=c(ce,"DIV",{class:!0});var Re=V(z);x=c(Re,"SPAN",{class:!0,"data-svelte-h":!0}),k(x)!=="svelte-1jds3ak"&&(x.textContent=F),s=r(Re),T=c(Re,"SPAN",{});var As=V(T);g=nt(As,ot),As.forEach(t),Re.forEach(t),ce.forEach(t),U=r(K),ut=c(K,"SECTION",{id:!0,class:!0});var qe=V(ut);kt=c(qe,"H2",{class:!0});var js=V(kt);bt=nt(js,J),js.forEach(t),ft=r(qe),jt.l(qe),qe.forEach(t),st=r(K),it=c(K,"SECTION",{id:!0,class:!0});var ne=V(it);dt=c(ne,"H2",{class:!0});var Os=V(dt);Tt=nt(Os,X),Os.forEach(t),pt=r(ne),Ot.l(ne),$=r(ne),Ct=c(ne,"DIV",{class:!0});var Ue=V(Ct);vt=c(Ue,"SPAN",{class:!0,"data-svelte-h":!0}),k(vt)!=="svelte-u12b6x"&&(vt.textContent=lt),Et=r(Ue),zt=c(Ue,"SPAN",{});var Ds=V(zt);mt=nt(Ds,Z),Ds.forEach(t),Ue.forEach(t),ne.forEach(t),xt=r(K),Y=c(K,"SECTION",{id:!0,class:!0});var Be=V(Y);_t=c(Be,"H2",{class:!0});var Rs=V(_t);tt=nt(Rs,ht),Rs.forEach(t),St=r(Be),Dt.l(Be),Be.forEach(t),_=r(K),D=c(K,"SECTION",{id:!0,class:!0});var Ne=V(D);Yt=c(Ne,"H2",{class:!0});var qs=V(Yt);he=nt(qs,ae),qs.forEach(t),Xe=r(Ne),Rt.l(Ne),Ne.forEach(t),Ze=r(K),Ht=c(K,"SECTION",{id:!0,class:!0});var Ge=V(Ht);Kt=c(Ge,"H2",{class:!0});var Us=V(Kt);Ce=nt(Us,ie),Us.forEach(t),$e=r(Ge),qt.l(Ge),Ge.forEach(t),ts=r(K),Lt=c(K,"SECTION",{id:!0,class:!0});var Qe=V(Lt);Jt=c(Qe,"H2",{class:!0});var Bs=V(Jt);fe=nt(Bs,oe),Bs.forEach(t),es=r(Qe),Ut.l(Qe),Qe.forEach(t),ss=r(K),yt=c(K,"SECTION",{id:!0,class:!0});var Ve=V(yt);Xt=c(Ve,"H2",{class:!0});var Ns=V(Xt);pe=nt(Ns,ve),Ns.forEach(t),ls=r(Ve),Bt.l(Ve),Ve.forEach(t),cs=r(K),Mt=c(K,"SECTION",{id:!0,class:!0});var We=V(Mt);Zt=c(We,"H2",{class:!0});var Gs=V(Zt);xe=nt(Gs,re),Gs.forEach(t),ns=r(We),Nt.l(We),We.forEach(t),as=r(K),gt=c(K,"SECTION",{id:!0,class:!0});var Fe=V(gt);$t=c(Fe,"H2",{class:!0});var Qs=V($t);_e=nt(Qs,ue),Qs.forEach(t),is=r(Fe),Gt.l(Fe),Fe.forEach(t),os=r(K),Pt=c(K,"SECTION",{id:!0,class:!0});var Ye=V(Pt);te=c(Ye,"H2",{class:!0});var Vs=V(te);be=nt(Vs,ke),Vs.forEach(t),vs=r(Ye),Qt.l(Ye),Ye.forEach(t),rs=r(K),wt=c(K,"SECTION",{id:!0,class:!0});var Ke=V(wt);ee=c(Ke,"H2",{class:!0});var Ws=V(ee);Te=nt(Ws,de),Ws.forEach(t),us=r(Ke),Vt.l(Ke),Ke.forEach(t),ks=r(K),It=c(K,"SECTION",{id:!0,class:!0});var Je=V(It);se=c(Je,"H2",{class:!0});var Fs=V(se);me=nt(Fs,ze),Fs.forEach(t),ds=r(Je),Wt.l(Je),Je.forEach(t),K.forEach(t),et.forEach(t),this.h()},h(){l(O,"class","toc-header svelte-10kcz42"),l(m,"class","toc-nav svelte-10kcz42"),l(i,"class","toc svelte-10kcz42"),l(p,"class","page-header"),l(C,"class","svelte-10kcz42"),l(x,"class","callout-icon svelte-10kcz42"),l(z,"class","callout info svelte-10kcz42"),l(h,"id","getting-started"),l(h,"class","svelte-10kcz42"),l(kt,"class","svelte-10kcz42"),l(ut,"id","dashboard"),l(ut,"class","svelte-10kcz42"),l(dt,"class","svelte-10kcz42"),l(vt,"class","callout-icon svelte-10kcz42"),l(Ct,"class","callout tip svelte-10kcz42"),l(it,"id","overview"),l(it,"class","svelte-10kcz42"),l(_t,"class","svelte-10kcz42"),l(Y,"id","tokens"),l(Y,"class","svelte-10kcz42"),l(Yt,"class","svelte-10kcz42"),l(D,"id","cost"),l(D,"class","svelte-10kcz42"),l(Kt,"class","svelte-10kcz42"),l(Ht,"id","models"),l(Ht,"class","svelte-10kcz42"),l(Jt,"class","svelte-10kcz42"),l(Lt,"id","tool-calls"),l(Lt,"class","svelte-10kcz42"),l(Xt,"class","svelte-10kcz42"),l(yt,"id","projects"),l(yt,"class","svelte-10kcz42"),l(Zt,"class","svelte-10kcz42"),l(Mt,"id","sessions"),l(Mt,"class","svelte-10kcz42"),l($t,"class","svelte-10kcz42"),l(gt,"id","pricing"),l(gt,"class","svelte-10kcz42"),l(te,"class","svelte-10kcz42"),l(Pt,"id","settings"),l(Pt,"class","svelte-10kcz42"),l(ee,"class","svelte-10kcz42"),l(wt,"id","sync"),l(wt,"class","svelte-10kcz42"),l(se,"class","svelte-10kcz42"),l(It,"id","cli"),l(It,"class","svelte-10kcz42"),l(P,"class","docs-content svelte-10kcz42"),l(H,"class","docs-layout svelte-10kcz42")},m(A,W){e(A,S,W),e(A,H,W),j(H,i),j(i,O),j(O,o),j(i,I),j(i,m);for(let et=0;et<rt.length;et+=1)rt[et]&&rt[et].m(m,null);j(H,v),j(H,P),j(P,p),j(p,d),j(d,y),j(p,f),j(p,B),j(B,b),j(P,N),j(P,h),j(h,C),j(C,R),j(h,M),At.m(h,null),j(h,Q),j(h,z),j(z,x),j(z,s),j(z,T),j(T,g),j(P,U),j(P,ut),j(ut,kt),j(kt,bt),j(ut,ft),jt.m(ut,null),j(P,st),j(P,it),j(it,dt),j(dt,Tt),j(it,pt),Ot.m(it,null),j(it,$),j(it,Ct),j(Ct,vt),j(Ct,Et),j(Ct,zt),j(zt,mt),j(P,xt),j(P,Y),j(Y,_t),j(_t,tt),j(Y,St),Dt.m(Y,null),j(P,_),j(P,D),j(D,Yt),j(Yt,he),j(D,Xe),Rt.m(D,null),j(P,Ze),j(P,Ht),j(Ht,Kt),j(Kt,Ce),j(Ht,$e),qt.m(Ht,null),j(P,ts),j(P,Lt),j(Lt,Jt),j(Jt,fe),j(Lt,es),Ut.m(Lt,null),j(P,ss),j(P,yt),j(yt,Xt),j(Xt,pe),j(yt,ls),Bt.m(yt,null),j(P,cs),j(P,Mt),j(Mt,Zt),j(Zt,xe),j(Mt,ns),Nt.m(Mt,null),j(P,as),j(P,gt),j(gt,$t),j($t,_e),j(gt,is),Gt.m(gt,null),j(P,os),j(P,Pt),j(Pt,te),j(te,be),j(Pt,vs),Qt.m(Pt,null),j(P,rs),j(P,wt),j(wt,ee),j(ee,Te),j(wt,us),Vt.m(wt,null),j(P,ks),j(P,It),j(It,se),j(se,me),j(It,ds),Wt.m(It,null)},p(A,[W]){if(W&2&&a!==(a=(A[1]?"文档":"Documentation")+" — AIUsage")&&(hs.title=a),W&2&&L!==(L=A[1]?"目录":"Contents")&&ct(o,L),W&7){le=Js(A[2]);let et;for(et=0;et<le.length;et+=1){const Ft=Xs(A,le,et);rt[et]?rt[et].p(Ft,W):(rt[et]=Zs(Ft),rt[et].c(),rt[et].m(m,null))}for(;et<rt.length;et+=1)rt[et].d(1);rt.length=le.length}W&2&&q!==(q=A[1]?"AIUsage 文档":"AIUsage Documentation")&&ct(y,q),W&2&&E!==(E=A[1]?"AIUsage 是一款 AI 工具用量统计平台,支持 Claude Code、Codex、OpenClaw、OpenCode、Hermes、Qoder 等多种 AI 工具的 Token 和费用追踪。":"AIUsage is a local-first usage analytics platform for AI coding tools — tracking tokens, costs, sessions and more across Claude Code, Codex, OpenClaw, OpenCode, Hermes, and Qoder.")&&ct(b,E),W&2&&G!==(G=A[1]?"快速开始":"Getting Started")&&ct(R,G),He!==(He=Cs(A))&&(At.d(1),At=He(A),At&&(At.c(),At.m(h,Q))),W&2&&ot!==(ot=A[1]?"仪表盘首页在浏览器首次加载时会自动触发一次解析。您也可以在 Settings 页面配置自动定期解析(仅在 aiusage serve 运行期间有效)。":"The dashboard home page triggers a parse automatically on first load. You can also configure automatic periodic parsing in Settings (only active while aiusage serve is running).")&&ct(g,ot),W&2&&J!==(J=A[1]?"仪表盘(首页)":"Dashboard (Home)")&&ct(bt,J),Le!==(Le=fs(A))&&(jt.d(1),jt=Le(A),jt&&(jt.c(),jt.m(ut,null))),W&2&&X!==(X=A[1]?"概览":"Overview")&&ct(Tt,X),ye!==(ye=ps(A))&&(Ot.d(1),Ot=ye(A),Ot&&(Ot.c(),Ot.m(it,$))),W&2&&Z!==(Z=A[1]?"使用页面顶部的筛选栏可以按日期范围、设备、AI 助手进行过滤,所有数据页面均支持这些筛选条件。":"Use the filter bar at the top to narrow by date range, device, and AI assistant — all data pages share these filters.")&&ct(mt,Z),W&2&&ht!==(ht=A[1]?"Token 用量":"Tokens")&&ct(tt,ht),Me!==(Me=xs(A))&&(Dt.d(1),Dt=Me(A),Dt&&(Dt.c(),Dt.m(Y,null))),W&2&&ae!==(ae=A[1]?"费用":"Cost")&&ct(he,ae),ge!==(ge=_s(A))&&(Rt.d(1),Rt=ge(A),Rt&&(Rt.c(),Rt.m(D,null))),W&2&&ie!==(ie=A[1]?"模型":"Models")&&ct(Ce,ie),Pe!==(Pe=bs(A))&&(qt.d(1),qt=Pe(A),qt&&(qt.c(),qt.m(Ht,null))),W&2&&oe!==(oe=A[1]?"工具调用":"Tool Calls")&&ct(fe,oe),we!==(we=Ts(A))&&(Ut.d(1),Ut=we(A),Ut&&(Ut.c(),Ut.m(Lt,null))),W&2&&ve!==(ve=A[1]?"项目":"Projects")&&ct(pe,ve),Ie!==(Ie=ms(A))&&(Bt.d(1),Bt=Ie(A),Bt&&(Bt.c(),Bt.m(yt,null))),W&2&&re!==(re=A[1]?"会话":"Sessions")&&ct(xe,re),Ee!==(Ee=Hs(A))&&(Nt.d(1),Nt=Ee(A),Nt&&(Nt.c(),Nt.m(Mt,null))),W&2&&ue!==(ue=A[1]?"定价":"Pricing")&&ct(_e,ue),Se!==(Se=Ls(A))&&(Gt.d(1),Gt=Se(A),Gt&&(Gt.c(),Gt.m(gt,null))),W&2&&ke!==(ke=A[1]?"设置":"Settings")&&ct(be,ke),Ae!==(Ae=ys(A))&&(Qt.d(1),Qt=Ae(A),Qt&&(Qt.c(),Qt.m(Pt,null))),W&2&&de!==(de=A[1]?"多设备同步":"Sync")&&ct(Te,de),je!==(je=Ms(A))&&(Vt.d(1),Vt=je(A),Vt&&(Vt.c(),Vt.m(wt,null))),W&2&&ze!==(ze=A[1]?"CLI 命令参考":"CLI Reference")&&ct(me,ze),Oe!==(Oe=gs(A))&&(Wt.d(1),Wt=Oe(A),Wt&&(Wt.c(),Wt.m(It,null)))},i:Ys,o:Ys,d(A){A&&(t(S),t(H)),cl(rt,A),At.d(),jt.d(),Ot.d(),Dt.d(),Rt.d(),qt.d(),Ut.d(),Bt.d(),Nt.d(),Gt.d(),Qt.d(),Vt.d(),Wt.d()}}}function Ol(w){const a=document.getElementById(w);a&&a.scrollIntoView({behavior:"smooth",block:"start"})}function Dl(w,a,S){let H,i;tl(w,il,I=>S(3,i=I));const O=[{id:"getting-started",en:"Getting Started",zh:"快速开始"},{id:"dashboard",en:"Dashboard",zh:"仪表盘"},{id:"overview",en:"Overview",zh:"概览"},{id:"tokens",en:"Tokens",zh:"Token 用量"},{id:"cost",en:"Cost",zh:"费用"},{id:"models",en:"Models",zh:"模型"},{id:"tool-calls",en:"Tool Calls",zh:"工具调用"},{id:"projects",en:"Projects",zh:"项目"},{id:"sessions",en:"Sessions",zh:"会话"},{id:"pricing",en:"Pricing",zh:"定价"},{id:"settings",en:"Settings",zh:"设置"},{id:"sync",en:"Sync",zh:"多设备同步"},{id:"cli",en:"CLI Reference",zh:"CLI 命令"}];let L="getting-started";el(()=>{const I=new IntersectionObserver(m=>{for(const v of m)v.isIntersecting&&S(0,L=v.target.id)},{rootMargin:"-20% 0px -70% 0px",threshold:0});for(const m of O){const v=document.getElementById(m.id);v&&I.observe(v)}return()=>I.disconnect()});const o=I=>Ol(I.id);return w.$$.update=()=>{w.$$.dirty&8&&S(1,H=i==="zh")},[L,H,O,i,o]}class Bl extends sl{constructor(a){super(),ll(this,a,Dl,jl,$s,{})}}export{Bl as component};
@@ -0,0 +1 @@
1
+ import{s as fe,c as W}from"../chunks/scheduler.DFD7qxcZ.js";import{S as me,i as _e,d as r,k as Z,l as x,m as ee,s as B,a as O,b as t,n as te,o as j,p as ue,g as $,c as m,e as _,f as P,q as le,r as re,j as A,h as u,t as C,u as ae,v as ve,w as se}from"../chunks/index.wix8pgil.js";import{e as ne,t as pe}from"../chunks/i18n.BOq44pYI.js";import{b as de,c as ce,s as ge,a as Ee,d as De}from"../chunks/stores.B1g8D8DV.js";import{a as be}from"../chunks/api.OwJBmtEN.js";import{D as Te,a as ke,T as Ie}from"../chunks/ToolSelector.CnQ-eszE.js";function ie(c,e,l){const s=c.slice();return s[8]=e[l],s}function He(c){let e,l,s,a,i,p=c[3]("models.model")+"",D,k,v,h=c[3]("models.provider")+"",f,I,R,F=c[3]("models.calls")+"",V,M,y,N=c[3]("models.tokens")+"",H,w,q,U=c[3]("models.share")+"",b,o,g,S=ne(c[0].models),T=[];for(let d=0;d<S.length;d+=1)T[d]=he(ie(c,S,d));return{c(){e=u("div"),l=u("table"),s=u("thead"),a=u("tr"),i=u("th"),D=C(p),k=A(),v=u("th"),f=C(h),I=A(),R=u("th"),V=C(F),M=A(),y=u("th"),H=C(N),w=A(),q=u("th"),b=C(U),o=A(),g=u("tbody");for(let d=0;d<T.length;d+=1)T[d].c();this.h()},l(d){e=m(d,"DIV",{class:!0});var n=_(e);l=m(n,"TABLE",{});var E=_(l);s=m(E,"THEAD",{});var Y=_(s);a=m(Y,"TR",{});var L=_(a);i=m(L,"TH",{});var J=_(i);D=P(J,p),J.forEach(r),k=$(L),v=m(L,"TH",{});var K=_(v);f=P(K,h),K.forEach(r),I=$(L),R=m(L,"TH",{});var z=_(R);V=P(z,F),z.forEach(r),M=$(L),y=m(L,"TH",{});var Q=_(y);H=P(Q,N),Q.forEach(r),w=$(L),q=m(L,"TH",{});var G=_(q);b=P(G,U),G.forEach(r),L.forEach(r),Y.forEach(r),o=$(E),g=m(E,"TBODY",{});var oe=_(g);for(let X=0;X<T.length;X+=1)T[X].l(oe);oe.forEach(r),E.forEach(r),n.forEach(r),this.h()},h(){j(e,"class","card")},m(d,n){O(d,e,n),t(e,l),t(l,s),t(s,a),t(a,i),t(i,D),t(a,k),t(a,v),t(v,f),t(a,I),t(a,R),t(R,V),t(a,M),t(a,y),t(y,H),t(a,w),t(a,q),t(q,b),t(l,o),t(l,g);for(let E=0;E<T.length;E+=1)T[E]&&T[E].m(g,null)},p(d,n){if(n&8&&p!==(p=d[3]("models.model")+"")&&B(D,p),n&8&&h!==(h=d[3]("models.provider")+"")&&B(f,h),n&8&&F!==(F=d[3]("models.calls")+"")&&B(V,F),n&8&&N!==(N=d[3]("models.tokens")+"")&&B(H,N),n&8&&U!==(U=d[3]("models.share")+"")&&B(b,U),n&1){S=ne(d[0].models);let E;for(E=0;E<S.length;E+=1){const Y=ie(d,S,E);T[E]?T[E].p(Y,n):(T[E]=he(Y),T[E].c(),T[E].m(g,null))}for(;E<T.length;E+=1)T[E].d(1);T.length=S.length}},d(d){d&&r(e),ve(T,d)}}}function Ve(c){let e,l,s=c[3]("models.noData")+"",a,i,p,D=c[3]("models.noDataHint")+"",k;return{c(){e=u("div"),l=u("h2"),a=C(s),i=A(),p=u("p"),k=C(D),this.h()},l(v){e=m(v,"DIV",{class:!0});var h=_(e);l=m(h,"H2",{});var f=_(l);a=P(f,s),f.forEach(r),i=$(h),p=m(h,"P",{});var I=_(p);k=P(I,D),I.forEach(r),h.forEach(r),this.h()},h(){j(e,"class","state-msg")},m(v,h){O(v,e,h),t(e,l),t(l,a),t(e,i),t(e,p),t(p,k)},p(v,h){h&8&&s!==(s=v[3]("models.noData")+"")&&B(a,s),h&8&&D!==(D=v[3]("models.noDataHint")+"")&&B(k,D)},d(v){v&&r(e)}}}function we(c){let e,l;return{c(){e=u("div"),l=C(c[1]),this.h()},l(s){e=m(s,"DIV",{class:!0});var a=_(e);l=P(a,c[1]),a.forEach(r),this.h()},h(){j(e,"class","state-msg error")},m(s,a){O(s,e,a),t(e,l)},p(s,a){a&2&&B(l,s[1])},d(s){s&&r(e)}}}function Se(c){let e,l=c[3]("common.loading")+"",s;return{c(){e=u("div"),s=C(l),this.h()},l(a){e=m(a,"DIV",{class:!0});var i=_(e);s=P(i,l),i.forEach(r),this.h()},h(){j(e,"class","state-msg")},m(a,i){O(a,e,i),t(e,s)},p(a,i){i&8&&l!==(l=a[3]("common.loading")+"")&&B(s,l)},d(a){a&&r(e)}}}function he(c){let e,l,s=c[8].model+"",a,i,p,D=c[8].provider+"",k,v,h,f=de(c[8].callCount)+"",I,R,F,V=ce(c[8].totalTokens)+"",M,y,N,H,w,q,U,b,o=c[8].percentage.toFixed(1)+"",g,S,T;return{c(){e=u("tr"),l=u("td"),a=C(s),i=A(),p=u("td"),k=C(D),v=A(),h=u("td"),I=C(f),R=A(),F=u("td"),M=C(V),y=A(),N=u("td"),H=u("div"),w=u("div"),q=u("div"),U=A(),b=u("span"),g=C(o),S=C("%"),T=A(),this.h()},l(d){e=m(d,"TR",{class:!0});var n=_(e);l=m(n,"TD",{class:!0});var E=_(l);a=P(E,s),E.forEach(r),i=$(n),p=m(n,"TD",{style:!0});var Y=_(p);k=P(Y,D),Y.forEach(r),v=$(n),h=m(n,"TD",{class:!0});var L=_(h);I=P(L,f),L.forEach(r),R=$(n),F=m(n,"TD",{class:!0});var J=_(F);M=P(J,V),J.forEach(r),y=$(n),N=m(n,"TD",{});var K=_(N);H=m(K,"DIV",{class:!0});var z=_(H);w=m(z,"DIV",{class:!0});var Q=_(w);q=m(Q,"DIV",{class:!0,style:!0}),_(q).forEach(r),Q.forEach(r),U=$(z),b=m(z,"SPAN",{class:!0});var G=_(b);g=P(G,o),S=P(G,"%"),G.forEach(r),z.forEach(r),K.forEach(r),T=$(n),n.forEach(r),this.h()},h(){j(l,"class","mono model-name svelte-17epep5"),se(p,"color","var(--text-muted)"),j(h,"class","mono"),j(F,"class","mono"),j(q,"class","bar-fill svelte-17epep5"),se(q,"width",c[8].percentage+"%"),j(w,"class","bar-track svelte-17epep5"),j(b,"class","mono pct svelte-17epep5"),j(H,"class","bar-cell svelte-17epep5"),j(e,"class","animate-row svelte-17epep5")},m(d,n){O(d,e,n),t(e,l),t(l,a),t(e,i),t(e,p),t(p,k),t(e,v),t(e,h),t(h,I),t(e,R),t(e,F),t(F,M),t(e,y),t(e,N),t(N,H),t(H,w),t(w,q),t(H,U),t(H,b),t(b,g),t(b,S),t(e,T)},p(d,n){n&1&&s!==(s=d[8].model+"")&&B(a,s),n&1&&D!==(D=d[8].provider+"")&&B(k,D),n&1&&f!==(f=de(d[8].callCount)+"")&&B(I,f),n&1&&V!==(V=ce(d[8].totalTokens)+"")&&B(M,V),n&1&&se(q,"width",d[8].percentage+"%"),n&1&&o!==(o=d[8].percentage.toFixed(1)+"")&&B(g,o)},d(d){d&&r(e)}}}function $e(c){let e,l,s,a,i=c[3]("models.title")+"",p,D,k,v=c[3]("models.desc")+"",h,f,I,R,F,V,M,y,N,H,w;document.title=e=c[3]("models.title")+" — AIUsage",R=new Te({}),V=new ke({}),y=new Ie({});function q(o,g){var S;return o[2]?Se:o[1]?we:(S=o[0])!=null&&S.models.length?He:Ve}let U=q(c),b=U(c);return{c(){l=A(),s=u("div"),a=u("h1"),p=C(i),D=A(),k=u("p"),h=C(v),f=A(),I=u("div"),ae(R.$$.fragment),F=A(),ae(V.$$.fragment),M=A(),ae(y.$$.fragment),N=A(),b.c(),H=re(),this.h()},l(o){ue("svelte-1sv33gh",document.head).forEach(r),l=$(o),s=m(o,"DIV",{class:!0});var S=_(s);a=m(S,"H1",{});var T=_(a);p=P(T,i),T.forEach(r),D=$(S),k=m(S,"P",{});var d=_(k);h=P(d,v),d.forEach(r),S.forEach(r),f=$(o),I=m(o,"DIV",{class:!0});var n=_(I);le(R.$$.fragment,n),F=$(n),le(V.$$.fragment,n),M=$(n),le(y.$$.fragment,n),n.forEach(r),N=$(o),b.l(o),H=re(),this.h()},h(){j(s,"class","page-header"),j(I,"class","filter-bar")},m(o,g){O(o,l,g),O(o,s,g),t(s,a),t(a,p),t(s,D),t(s,k),t(k,h),O(o,f,g),O(o,I,g),te(R,I,null),t(I,F),te(V,I,null),t(I,M),te(y,I,null),O(o,N,g),b.m(o,g),O(o,H,g),w=!0},p(o,[g]){(!w||g&8)&&e!==(e=o[3]("models.title")+" — AIUsage")&&(document.title=e),(!w||g&8)&&i!==(i=o[3]("models.title")+"")&&B(p,i),(!w||g&8)&&v!==(v=o[3]("models.desc")+"")&&B(h,v),U===(U=q(o))&&b?b.p(o,g):(b.d(1),b=U(o),b&&(b.c(),b.m(H.parentNode,H)))},i(o){w||(ee(R.$$.fragment,o),ee(V.$$.fragment,o),ee(y.$$.fragment,o),w=!0)},o(o){x(R.$$.fragment,o),x(V.$$.fragment,o),x(y.$$.fragment,o),w=!1},d(o){o&&(r(l),r(s),r(f),r(I),r(N),r(H)),Z(R),Z(V),Z(y),b.d(o)}}}function Ae(c,e,l){let s,a,i,p;W(c,ge,f=>l(4,s=f)),W(c,Ee,f=>l(5,a=f)),W(c,De,f=>l(6,i=f)),W(c,pe,f=>l(3,p=f));let D=null,k=null,v=!0;async function h(){l(2,v=!0),l(1,k=null);try{l(0,D=await be({...i,device:a,tool:s}))}catch(f){l(1,k=f instanceof Error?f.message:"Failed to load data"),l(0,D=null)}finally{l(2,v=!1)}}return c.$$.update=()=>{c.$$.dirty&112&&h()},[D,k,v,p,s,a,i]}class qe extends me{constructor(e){super(),_e(this,e,Ae,$e,fe,{})}}export{qe as component};
@@ -0,0 +1 @@
1
+ import{s as Gt,c as et,o as Jt}from"../chunks/scheduler.DFD7qxcZ.js";import{S as Kt,i as Qt,d as o,k as dt,l as pt,m as mt,s as P,a as W,b as t,n as kt,o as _,p as Xt,g as S,c as v,e as c,f as D,q as Et,r as Ut,j as I,h as i,t as y,u as bt,v as Yt,w as Zt}from"../chunks/index.wix8pgil.js";import{e as tt,t as xt}from"../chunks/i18n.BOq44pYI.js";import{c as F,f as lt,b as st,s as el,a as tl,d as ll}from"../chunks/stores.B1g8D8DV.js";import{r as sl,b as al}from"../chunks/api.OwJBmtEN.js";import{D as ol,a as rl,T as nl}from"../chunks/ToolSelector.CnQ-eszE.js";function zt(r,e,s){const l=r.slice();return l[9]=e[s],l[11]=s,l}function Ft(r,e,s){const l=r.slice();return l[12]=e[s][0],l[13]=e[s][1],l}function vl(r){let e,s,l,a=r[3]("overview.totalTokens")+"",n,u,p,b=F(r[0].totalTokens)+"",k,w,T,f,R=r[3]("overview.totalCost")+"",H,E,A,$=lt(r[0].totalCost)+"",V,g,C,N,O=r[3]("overview.activeDays")+"",q,h,j,U=r[0].activeDays+"",L,te,B,le,he=r[3]("overview.totalSessions")+"",Se,at,se,de=st(r[0].totalSessions||0)+"",Ie,Pe,z,Q,ae,pe=r[3]("overview.inputTokens")+"",Ae,ot,oe,me=F(r[0].inputTokens)+"",Ve,rt,X,re,ke=r[3]("overview.outputTokens")+"",Ne,nt,ne,Ee=F(r[0].outputTokens)+"",Ce,vt,Z,ve,be=r[3]("overview.cacheRead")+"",Re,ct,ce,we=F(r[0].cacheReadTokens)+"",He,it,x,ie,Te=r[3]("overview.cacheWrite")+"",$e,ut,ue,De=F(r[0].cacheWriteTokens)+"",je,Oe,G,J,fe,ye=r[3]("overview.byTool")+"",We,ft,qe,_t,K,_e,ge=r[3]("overview.topToolCalls")+"",Be,ht;function wt(d,m){return m&1&&(qe=null),qe==null&&(qe=Object.keys(d[0].byTool).length===0),qe?_l:fl}let Ue=wt(r,-1),M=Ue(r);function Tt(d,m){return d[0].topToolCalls.length===0?dl:hl}let ze=Tt(r),Y=ze(r);return{c(){e=i("div"),s=i("div"),l=i("span"),n=y(a),u=I(),p=i("span"),k=y(b),w=I(),T=i("div"),f=i("span"),H=y(R),E=I(),A=i("span"),V=y($),g=I(),C=i("div"),N=i("span"),q=y(O),h=I(),j=i("span"),L=y(U),te=I(),B=i("div"),le=i("span"),Se=y(he),at=I(),se=i("span"),Ie=y(de),Pe=I(),z=i("div"),Q=i("div"),ae=i("span"),Ae=y(pe),ot=I(),oe=i("span"),Ve=y(me),rt=I(),X=i("div"),re=i("span"),Ne=y(ke),nt=I(),ne=i("span"),Ce=y(Ee),vt=I(),Z=i("div"),ve=i("span"),Re=y(be),ct=I(),ce=i("span"),He=y(we),it=I(),x=i("div"),ie=i("span"),$e=y(Te),ut=I(),ue=i("span"),je=y(De),Oe=I(),G=i("div"),J=i("div"),fe=i("div"),We=y(ye),ft=I(),M.c(),_t=I(),K=i("div"),_e=i("div"),Be=y(ge),ht=I(),Y.c(),this.h()},l(d){e=v(d,"DIV",{class:!0});var m=c(e);s=v(m,"DIV",{class:!0});var Fe=c(s);l=v(Fe,"SPAN",{class:!0});var Dt=c(l);n=D(Dt,a),Dt.forEach(o),u=S(Fe),p=v(Fe,"SPAN",{class:!0});var yt=c(p);k=D(yt,b),yt.forEach(o),Fe.forEach(o),w=S(m),T=v(m,"DIV",{class:!0});var Le=c(T);f=v(Le,"SPAN",{class:!0});var gt=c(f);H=D(gt,R),gt.forEach(o),E=S(Le),A=v(Le,"SPAN",{class:!0});var St=c(A);V=D(St,$),St.forEach(o),Le.forEach(o),g=S(m),C=v(m,"DIV",{class:!0});var Me=c(C);N=v(Me,"SPAN",{class:!0});var It=c(N);q=D(It,O),It.forEach(o),h=S(Me),j=v(Me,"SPAN",{class:!0});var Pt=c(j);L=D(Pt,U),Pt.forEach(o),Me.forEach(o),te=S(m),B=v(m,"DIV",{class:!0});var Ye=c(B);le=v(Ye,"SPAN",{class:!0});var At=c(le);Se=D(At,he),At.forEach(o),at=S(Ye),se=v(Ye,"SPAN",{class:!0});var Vt=c(se);Ie=D(Vt,de),Vt.forEach(o),Ye.forEach(o),m.forEach(o),Pe=S(d),z=v(d,"DIV",{class:!0});var ee=c(z);Q=v(ee,"DIV",{class:!0});var Ge=c(Q);ae=v(Ge,"SPAN",{class:!0});var Nt=c(ae);Ae=D(Nt,pe),Nt.forEach(o),ot=S(Ge),oe=v(Ge,"SPAN",{class:!0});var Ct=c(oe);Ve=D(Ct,me),Ct.forEach(o),Ge.forEach(o),rt=S(ee),X=v(ee,"DIV",{class:!0});var Je=c(X);re=v(Je,"SPAN",{class:!0});var Rt=c(re);Ne=D(Rt,ke),Rt.forEach(o),nt=S(Je),ne=v(Je,"SPAN",{class:!0});var Ht=c(ne);Ce=D(Ht,Ee),Ht.forEach(o),Je.forEach(o),vt=S(ee),Z=v(ee,"DIV",{class:!0});var Ke=c(Z);ve=v(Ke,"SPAN",{class:!0});var $t=c(ve);Re=D($t,be),$t.forEach(o),ct=S(Ke),ce=v(Ke,"SPAN",{class:!0});var jt=c(ce);He=D(jt,we),jt.forEach(o),Ke.forEach(o),it=S(ee),x=v(ee,"DIV",{class:!0});var Qe=c(x);ie=v(Qe,"SPAN",{class:!0});var Ot=c(ie);$e=D(Ot,Te),Ot.forEach(o),ut=S(Qe),ue=v(Qe,"SPAN",{class:!0});var Wt=c(ue);je=D(Wt,De),Wt.forEach(o),Qe.forEach(o),ee.forEach(o),Oe=S(d),G=v(d,"DIV",{class:!0});var Xe=c(G);J=v(Xe,"DIV",{class:!0});var Ze=c(J);fe=v(Ze,"DIV",{class:!0});var qt=c(fe);We=D(qt,ye),qt.forEach(o),ft=S(Ze),M.l(Ze),Ze.forEach(o),_t=S(Xe),K=v(Xe,"DIV",{class:!0});var xe=c(K);_e=v(xe,"DIV",{class:!0});var Bt=c(_e);Be=D(Bt,ge),Bt.forEach(o),ht=S(xe),Y.l(xe),xe.forEach(o),Xe.forEach(o),this.h()},h(){_(l,"class","hero-label svelte-4yvkeu"),_(p,"class","hero-value svelte-4yvkeu"),_(s,"class","hero-card svelte-4yvkeu"),_(f,"class","hero-label svelte-4yvkeu"),_(A,"class","hero-value svelte-4yvkeu"),_(T,"class","hero-card svelte-4yvkeu"),_(N,"class","hero-label svelte-4yvkeu"),_(j,"class","hero-value svelte-4yvkeu"),_(C,"class","hero-card svelte-4yvkeu"),_(le,"class","hero-label svelte-4yvkeu"),_(se,"class","hero-value svelte-4yvkeu"),_(B,"class","hero-card svelte-4yvkeu"),_(e,"class","hero-stats svelte-4yvkeu"),_(ae,"class","token-label svelte-4yvkeu"),_(oe,"class","token-value svelte-4yvkeu"),_(Q,"class","token-item svelte-4yvkeu"),_(re,"class","token-label svelte-4yvkeu"),_(ne,"class","token-value svelte-4yvkeu"),_(X,"class","token-item svelte-4yvkeu"),_(ve,"class","token-label svelte-4yvkeu"),_(ce,"class","token-value svelte-4yvkeu"),_(Z,"class","token-item svelte-4yvkeu"),_(ie,"class","token-label svelte-4yvkeu"),_(ue,"class","token-value svelte-4yvkeu"),_(x,"class","token-item svelte-4yvkeu"),_(z,"class","token-breakdown svelte-4yvkeu"),_(fe,"class","section-title"),_(J,"class","card"),_(_e,"class","section-title"),_(K,"class","card"),_(G,"class","grid-2 svelte-4yvkeu")},m(d,m){W(d,e,m),t(e,s),t(s,l),t(l,n),t(s,u),t(s,p),t(p,k),t(e,w),t(e,T),t(T,f),t(f,H),t(T,E),t(T,A),t(A,V),t(e,g),t(e,C),t(C,N),t(N,q),t(C,h),t(C,j),t(j,L),t(e,te),t(e,B),t(B,le),t(le,Se),t(B,at),t(B,se),t(se,Ie),W(d,Pe,m),W(d,z,m),t(z,Q),t(Q,ae),t(ae,Ae),t(Q,ot),t(Q,oe),t(oe,Ve),t(z,rt),t(z,X),t(X,re),t(re,Ne),t(X,nt),t(X,ne),t(ne,Ce),t(z,vt),t(z,Z),t(Z,ve),t(ve,Re),t(Z,ct),t(Z,ce),t(ce,He),t(z,it),t(z,x),t(x,ie),t(ie,$e),t(x,ut),t(x,ue),t(ue,je),W(d,Oe,m),W(d,G,m),t(G,J),t(J,fe),t(fe,We),t(J,ft),M.m(J,null),t(G,_t),t(G,K),t(K,_e),t(_e,Be),t(K,ht),Y.m(K,null)},p(d,m){m&8&&a!==(a=d[3]("overview.totalTokens")+"")&&P(n,a),m&1&&b!==(b=F(d[0].totalTokens)+"")&&P(k,b),m&8&&R!==(R=d[3]("overview.totalCost")+"")&&P(H,R),m&1&&$!==($=lt(d[0].totalCost)+"")&&P(V,$),m&8&&O!==(O=d[3]("overview.activeDays")+"")&&P(q,O),m&1&&U!==(U=d[0].activeDays+"")&&P(L,U),m&8&&he!==(he=d[3]("overview.totalSessions")+"")&&P(Se,he),m&1&&de!==(de=st(d[0].totalSessions||0)+"")&&P(Ie,de),m&8&&pe!==(pe=d[3]("overview.inputTokens")+"")&&P(Ae,pe),m&1&&me!==(me=F(d[0].inputTokens)+"")&&P(Ve,me),m&8&&ke!==(ke=d[3]("overview.outputTokens")+"")&&P(Ne,ke),m&1&&Ee!==(Ee=F(d[0].outputTokens)+"")&&P(Ce,Ee),m&8&&be!==(be=d[3]("overview.cacheRead")+"")&&P(Re,be),m&1&&we!==(we=F(d[0].cacheReadTokens)+"")&&P(He,we),m&8&&Te!==(Te=d[3]("overview.cacheWrite")+"")&&P($e,Te),m&1&&De!==(De=F(d[0].cacheWriteTokens)+"")&&P(je,De),m&8&&ye!==(ye=d[3]("overview.byTool")+"")&&P(We,ye),Ue===(Ue=wt(d,m))&&M?M.p(d,m):(M.d(1),M=Ue(d),M&&(M.c(),M.m(J,null))),m&8&&ge!==(ge=d[3]("overview.topToolCalls")+"")&&P(Be,ge),ze===(ze=Tt(d))&&Y?Y.p(d,m):(Y.d(1),Y=ze(d),Y&&(Y.c(),Y.m(K,null)))},d(d){d&&(o(e),o(Pe),o(z),o(Oe),o(G)),M.d(),Y.d()}}}function cl(r){let e,s,l=r[3]("common.noData")+"",a,n,u,p=r[3]("common.noDataHint")+"",b;return{c(){e=i("div"),s=i("h2"),a=y(l),n=I(),u=i("p"),b=y(p),this.h()},l(k){e=v(k,"DIV",{class:!0});var w=c(e);s=v(w,"H2",{});var T=c(s);a=D(T,l),T.forEach(o),n=S(w),u=v(w,"P",{});var f=c(u);b=D(f,p),f.forEach(o),w.forEach(o),this.h()},h(){_(e,"class","state-msg")},m(k,w){W(k,e,w),t(e,s),t(s,a),t(e,n),t(e,u),t(u,b)},p(k,w){w&8&&l!==(l=k[3]("common.noData")+"")&&P(a,l),w&8&&p!==(p=k[3]("common.noDataHint")+"")&&P(b,p)},d(k){k&&o(e)}}}function il(r){let e,s;return{c(){e=i("div"),s=y(r[1]),this.h()},l(l){e=v(l,"DIV",{class:!0});var a=c(e);s=D(a,r[1]),a.forEach(o),this.h()},h(){_(e,"class","state-msg error")},m(l,a){W(l,e,a),t(e,s)},p(l,a){a&2&&P(s,l[1])},d(l){l&&o(e)}}}function ul(r){let e,s=r[3]("common.loading")+"",l;return{c(){e=i("div"),l=y(s),this.h()},l(a){e=v(a,"DIV",{class:!0});var n=c(e);l=D(n,s),n.forEach(o),this.h()},h(){_(e,"class","state-msg")},m(a,n){W(a,e,n),t(e,l)},p(a,n){n&8&&s!==(s=a[3]("common.loading")+"")&&P(l,s)},d(a){a&&o(e)}}}function fl(r){let e,s,l,a,n=r[3]("overview.tool")+"",u,p,b,k=r[3]("overview.tokens")+"",w,T,f,R=r[3]("overview.cost")+"",H,E,A,$=tt(Object.entries(r[0].byTool)),V=[];for(let g=0;g<$.length;g+=1)V[g]=Lt(Ft(r,$,g));return{c(){e=i("table"),s=i("thead"),l=i("tr"),a=i("th"),u=y(n),p=I(),b=i("th"),w=y(k),T=I(),f=i("th"),H=y(R),E=I(),A=i("tbody");for(let g=0;g<V.length;g+=1)V[g].c()},l(g){e=v(g,"TABLE",{});var C=c(e);s=v(C,"THEAD",{});var N=c(s);l=v(N,"TR",{});var O=c(l);a=v(O,"TH",{});var q=c(a);u=D(q,n),q.forEach(o),p=S(O),b=v(O,"TH",{});var h=c(b);w=D(h,k),h.forEach(o),T=S(O),f=v(O,"TH",{});var j=c(f);H=D(j,R),j.forEach(o),O.forEach(o),N.forEach(o),E=S(C),A=v(C,"TBODY",{});var U=c(A);for(let L=0;L<V.length;L+=1)V[L].l(U);U.forEach(o),C.forEach(o)},m(g,C){W(g,e,C),t(e,s),t(s,l),t(l,a),t(a,u),t(l,p),t(l,b),t(b,w),t(l,T),t(l,f),t(f,H),t(e,E),t(e,A);for(let N=0;N<V.length;N+=1)V[N]&&V[N].m(A,null)},p(g,C){if(C&8&&n!==(n=g[3]("overview.tool")+"")&&P(u,n),C&8&&k!==(k=g[3]("overview.tokens")+"")&&P(w,k),C&8&&R!==(R=g[3]("overview.cost")+"")&&P(H,R),C&1){$=tt(Object.entries(g[0].byTool));let N;for(N=0;N<$.length;N+=1){const O=Ft(g,$,N);V[N]?V[N].p(O,C):(V[N]=Lt(O),V[N].c(),V[N].m(A,null))}for(;N<V.length;N+=1)V[N].d(1);V.length=$.length}},d(g){g&&o(e),Yt(V,g)}}}function _l(r){let e,s=r[3]("overview.noToolData")+"",l;return{c(){e=i("p"),l=y(s),this.h()},l(a){e=v(a,"P",{class:!0});var n=c(e);l=D(n,s),n.forEach(o),this.h()},h(){_(e,"class","muted svelte-4yvkeu")},m(a,n){W(a,e,n),t(e,l)},p(a,n){n&8&&s!==(s=a[3]("overview.noToolData")+"")&&P(l,s)},d(a){a&&o(e)}}}function Lt(r){let e,s,l=r[12]+"",a,n,u,p=F(r[13].tokens)+"",b,k,w,T=lt(r[13].cost)+"",f,R;return{c(){e=i("tr"),s=i("td"),a=y(l),n=I(),u=i("td"),b=y(p),k=I(),w=i("td"),f=y(T),R=I(),this.h()},l(H){e=v(H,"TR",{});var E=c(e);s=v(E,"TD",{class:!0});var A=c(s);a=D(A,l),A.forEach(o),n=S(E),u=v(E,"TD",{class:!0});var $=c(u);b=D($,p),$.forEach(o),k=S(E),w=v(E,"TD",{class:!0});var V=c(w);f=D(V,T),V.forEach(o),R=S(E),E.forEach(o),this.h()},h(){_(s,"class","mono"),_(u,"class","mono"),_(w,"class","mono accent")},m(H,E){W(H,e,E),t(e,s),t(s,a),t(e,n),t(e,u),t(u,b),t(e,k),t(e,w),t(w,f),t(e,R)},p(H,E){E&1&&l!==(l=H[12]+"")&&P(a,l),E&1&&p!==(p=F(H[13].tokens)+"")&&P(b,p),E&1&&T!==(T=lt(H[13].cost)+"")&&P(f,T)},d(H){H&&o(e)}}}function hl(r){let e,s=tt(r[0].topToolCalls),l=[];for(let a=0;a<s.length;a+=1)l[a]=Mt(zt(r,s,a));return{c(){e=i("div");for(let a=0;a<l.length;a+=1)l[a].c();this.h()},l(a){e=v(a,"DIV",{class:!0});var n=c(e);for(let u=0;u<l.length;u+=1)l[u].l(n);n.forEach(o),this.h()},h(){_(e,"class","tc-list svelte-4yvkeu")},m(a,n){W(a,e,n);for(let u=0;u<l.length;u+=1)l[u]&&l[u].m(e,null)},p(a,n){if(n&1){s=tt(a[0].topToolCalls);let u;for(u=0;u<s.length;u+=1){const p=zt(a,s,u);l[u]?l[u].p(p,n):(l[u]=Mt(p),l[u].c(),l[u].m(e,null))}for(;u<l.length;u+=1)l[u].d(1);l.length=s.length}},d(a){a&&o(e),Yt(l,a)}}}function dl(r){let e,s=r[3]("overview.noToolCalls")+"",l;return{c(){e=i("p"),l=y(s),this.h()},l(a){e=v(a,"P",{class:!0});var n=c(e);l=D(n,s),n.forEach(o),this.h()},h(){_(e,"class","muted svelte-4yvkeu")},m(a,n){W(a,e,n),t(e,l)},p(a,n){n&8&&s!==(s=a[3]("overview.noToolCalls")+"")&&P(l,s)},d(a){a&&o(e)}}}function Mt(r){let e,s,l,a=r[11]+1+"",n,u,p,b=r[9].name+"",k,w,T,f=st(r[9].count)+"",R,H;return{c(){e=i("div"),s=i("span"),l=y("#"),n=y(a),u=I(),p=i("span"),k=y(b),w=I(),T=i("span"),R=y(f),H=I(),this.h()},l(E){e=v(E,"DIV",{class:!0,style:!0});var A=c(e);s=v(A,"SPAN",{class:!0});var $=c(s);l=D($,"#"),n=D($,a),$.forEach(o),u=S(A),p=v(A,"SPAN",{class:!0});var V=c(p);k=D(V,b),V.forEach(o),w=S(A),T=v(A,"SPAN",{class:!0});var g=c(T);R=D(g,f),g.forEach(o),H=S(A),A.forEach(o),this.h()},h(){_(s,"class","tc-rank svelte-4yvkeu"),_(p,"class","tc-name mono svelte-4yvkeu"),_(T,"class","tc-count mono svelte-4yvkeu"),_(e,"class","tc-row svelte-4yvkeu"),Zt(e,"animation-delay",r[11]*40+"ms")},m(E,A){W(E,e,A),t(e,s),t(s,l),t(s,n),t(e,u),t(e,p),t(p,k),t(e,w),t(e,T),t(T,R),t(e,H)},p(E,A){A&1&&b!==(b=E[9].name+"")&&P(k,b),A&1&&f!==(f=st(E[9].count)+"")&&P(R,f)},d(E){E&&o(e)}}}function pl(r){let e,s,l,a,n=r[3]("overview.title")+"",u,p,b,k=r[3]("overview.desc")+"",w,T,f,R,H,E,A,$,V,g,C;document.title=e=r[3]("overview.title")+" — AIUsage",R=new ol({}),E=new rl({}),$=new nl({});function N(h,j){return h[2]?ul:h[1]?il:!h[0]||h[0].totalTokens===0?cl:vl}let O=N(r),q=O(r);return{c(){s=I(),l=i("div"),a=i("h1"),u=y(n),p=I(),b=i("p"),w=y(k),T=I(),f=i("div"),bt(R.$$.fragment),H=I(),bt(E.$$.fragment),A=I(),bt($.$$.fragment),V=I(),q.c(),g=Ut(),this.h()},l(h){Xt("svelte-lwbxws",document.head).forEach(o),s=S(h),l=v(h,"DIV",{class:!0});var U=c(l);a=v(U,"H1",{});var L=c(a);u=D(L,n),L.forEach(o),p=S(U),b=v(U,"P",{});var te=c(b);w=D(te,k),te.forEach(o),U.forEach(o),T=S(h),f=v(h,"DIV",{class:!0});var B=c(f);Et(R.$$.fragment,B),H=S(B),Et(E.$$.fragment,B),A=S(B),Et($.$$.fragment,B),B.forEach(o),V=S(h),q.l(h),g=Ut(),this.h()},h(){_(l,"class","page-header"),_(f,"class","filter-bar")},m(h,j){W(h,s,j),W(h,l,j),t(l,a),t(a,u),t(l,p),t(l,b),t(b,w),W(h,T,j),W(h,f,j),kt(R,f,null),t(f,H),kt(E,f,null),t(f,A),kt($,f,null),W(h,V,j),q.m(h,j),W(h,g,j),C=!0},p(h,[j]){(!C||j&8)&&e!==(e=h[3]("overview.title")+" — AIUsage")&&(document.title=e),(!C||j&8)&&n!==(n=h[3]("overview.title")+"")&&P(u,n),(!C||j&8)&&k!==(k=h[3]("overview.desc")+"")&&P(w,k),O===(O=N(h))&&q?q.p(h,j):(q.d(1),q=O(h),q&&(q.c(),q.m(g.parentNode,g)))},i(h){C||(mt(R.$$.fragment,h),mt(E.$$.fragment,h),mt($.$$.fragment,h),C=!0)},o(h){pt(R.$$.fragment,h),pt(E.$$.fragment,h),pt($.$$.fragment,h),C=!1},d(h){h&&(o(s),o(l),o(T),o(f),o(V),o(g)),dt(R),dt(E),dt($),q.d(h)}}}function ml(r,e,s){let l,a,n,u;et(r,el,f=>s(4,l=f)),et(r,tl,f=>s(5,a=f)),et(r,ll,f=>s(6,n=f)),et(r,xt,f=>s(3,u=f));let p=null,b=null,k=!0,w=!1;async function T(){if(w){s(2,k=!0),s(1,b=null);try{s(0,p=await al({...n,device:a,tool:l}))}catch(f){s(1,b=f instanceof Error?f.message:"Failed to load data"),s(0,p=null)}finally{s(2,k=!1)}}}return Jt(async()=>{await sl().catch(()=>{}),w=!0,await T()}),r.$$.update=()=>{r.$$.dirty&112&&T()},[p,b,k,u,l,a,n]}class yl extends Kt{constructor(e){super(),Qt(this,e,ml,pl,Gt,{})}}export{yl as component};
@@ -0,0 +1,9 @@
1
+ import{s as as,n as Qe,c as is,o as ns,r as rs}from"../chunks/scheduler.DFD7qxcZ.js";import{S as cs,i as us,d as r,s as k,a as D,b as i,x as ge,o as u,p as ps,g as V,c as p,e as h,f as _,r as Xe,j as C,h as o,t as d,y as De,v as os,z as Te,w as fs,A as Ie,B as ls}from"../chunks/index.wix8pgil.js";import{e as Ze,t as _s}from"../chunks/i18n.BOq44pYI.js";import{c as ds,u as hs,d as vs,e as ms}from"../chunks/api.OwJBmtEN.js";function $e(e,s,t){const l=e.slice();l[21]=s[t],l[24]=t;const a=l[3]===l[21].model;return l[22]=a,l}function xe(e){let s,t;return{c(){s=o("span"),t=d(e[6]),this.h()},l(l){s=p(l,"SPAN",{class:!0});var a=h(s);t=_(a,e[6]),a.forEach(r),this.h()},h(){u(s,"class","recalc-status svelte-1px4sss")},m(l,a){D(l,s,a),i(s,t)},p(l,a){a&64&&k(t,l[6])},d(l){l&&r(s)}}}function bs(e){let s,t=Ze(e[0]),l=[];for(let a=0;a<t.length;a+=1)l[a]=ts($e(e,t,a));return{c(){s=o("div");for(let a=0;a<l.length;a+=1)l[a].c();this.h()},l(a){s=p(a,"DIV",{class:!0});var n=h(s);for(let c=0;c<l.length;c+=1)l[c].l(n);n.forEach(r),this.h()},h(){u(s,"class","grid svelte-1px4sss")},m(a,n){D(a,s,n);for(let c=0;c<l.length;c+=1)l[c]&&l[c].m(s,null)},p(a,n){if(n&4025){t=Ze(a[0]);let c;for(c=0;c<t.length;c+=1){const v=$e(a,t,c);l[c]?l[c].p(v,n):(l[c]=ts(v),l[c].c(),l[c].m(s,null))}for(;c<l.length;c+=1)l[c].d(1);l.length=t.length}},d(a){a&&r(s),os(l,a)}}}function gs(e){let s,t;return{c(){s=o("div"),t=d(e[2]),this.h()},l(l){s=p(l,"DIV",{class:!0});var a=h(s);t=_(a,e[2]),a.forEach(r),this.h()},h(){u(s,"class","state-msg error svelte-1px4sss")},m(l,a){D(l,s,a),i(s,t)},p(l,a){a&4&&k(t,l[2])},d(l){l&&r(s)}}}function Es(e){let s,t=e[7]("common.loading")+"",l;return{c(){s=o("div"),l=d(t),this.h()},l(a){s=p(a,"DIV",{class:!0});var n=h(s);l=_(n,t),n.forEach(r),this.h()},h(){u(s,"class","state-msg svelte-1px4sss")},m(a,n){D(a,s,n),i(s,l)},p(a,n){n&128&&t!==(t=a[7]("common.loading")+"")&&k(l,t)},d(a){a&&r(s)}}}function ks(e){var Ue,Ae;let s,t,l=e[21].model+"",a,n,c,v,g=e[7]("pricing.edit")+"",y,w,q,B,P,R,O=e[7]("pricing.input")+"",I,ee,M,T=e[21].price?`${L(e[21].currency)}${Se(e[21].price.input)}`:"-",b,A,Y,F="/",m,W,x,K=e[7]("pricing.output")+"",se,Ve,j,me=e[21].price?`${L(e[21].currency)}${Se(e[21].price.output)}`:"-",G,oe,Q,te,le,fe=e[7]("pricing.cacheRead")+"",Ee,X,_e,z=((Ue=e[21].price)==null?void 0:Ue.cacheRead)!=null?`${L(e[21].currency)}${Se(e[21].price.cacheRead)}`:"-",de,ke,ae,ie,he=e[7]("pricing.cacheWrite")+"",Ne,Z,ce,J=((Ae=e[21].price)==null?void 0:Ae.cacheWrite)!=null?`${L(e[21].currency)}${Se(e[21].price.cacheWrite)}`:"-",ne,ve,H,Pe,ue,ye;function Be(){return e[18](e[21])}let U=e[21].isOverride&&es(e);function We(N,E){return N[21].isOverride?Is:N[21].isDefault?As:N[21].matchedBy?ys:Ps}let Re=We(e),S=Re(e),f=e[21].currency==="CNY"&&ss();return{c(){s=o("div"),t=o("span"),a=d(l),n=C(),c=o("div"),v=o("button"),y=d(g),w=C(),U&&U.c(),q=C(),B=o("div"),P=o("div"),R=o("span"),I=d(O),ee=C(),M=o("span"),b=d(T),A=C(),Y=o("span"),Y.textContent=F,m=C(),W=o("div"),x=o("span"),se=d(K),Ve=C(),j=o("span"),G=d(me),oe=C(),Q=o("div"),te=o("div"),le=o("span"),Ee=d(fe),X=C(),_e=o("span"),de=d(z),ke=C(),ae=o("div"),ie=o("span"),Ne=d(he),Z=C(),ce=o("span"),ne=d(J),ve=C(),H=o("div"),S.c(),Pe=C(),f&&f.c(),this.h()},l(N){s=p(N,"DIV",{class:!0});var E=h(s);t=p(E,"SPAN",{class:!0});var re=h(t);a=_(re,l),re.forEach(r),n=V(E),c=p(E,"DIV",{class:!0});var $=h(c);v=p($,"BUTTON",{class:!0});var be=h(v);y=_(be,g),be.forEach(r),w=V($),U&&U.l($),$.forEach(r),E.forEach(r),q=V(N),B=p(N,"DIV",{class:!0});var pe=h(B);P=p(pe,"DIV",{class:!0});var Ce=h(P);R=p(Ce,"SPAN",{class:!0});var we=h(R);I=_(we,O),we.forEach(r),ee=V(Ce),M=p(Ce,"SPAN",{class:!0});var je=h(M);b=_(je,T),je.forEach(r),Ce.forEach(r),A=V(pe),Y=p(pe,"SPAN",{class:!0,"data-svelte-h":!0}),ls(Y)!=="svelte-ums4yv"&&(Y.textContent=F),m=V(pe),W=p(pe,"DIV",{class:!0});var Me=h(W);x=p(Me,"SPAN",{class:!0});var qe=h(x);se=_(qe,K),qe.forEach(r),Ve=V(Me),j=p(Me,"SPAN",{class:!0});var ze=h(j);G=_(ze,me),ze.forEach(r),Me.forEach(r),pe.forEach(r),oe=V(N),Q=p(N,"DIV",{class:!0});var Le=h(Q);te=p(Le,"DIV",{class:!0});var Oe=h(te);le=p(Oe,"SPAN",{class:!0});var He=h(le);Ee=_(He,fe),He.forEach(r),X=V(Oe),_e=p(Oe,"SPAN",{class:!0});var Ge=h(_e);de=_(Ge,z),Ge.forEach(r),Oe.forEach(r),ke=V(Le),ae=p(Le,"DIV",{class:!0});var Ye=h(ae);ie=p(Ye,"SPAN",{class:!0});var Je=h(ie);Ne=_(Je,he),Je.forEach(r),Z=V(Ye),ce=p(Ye,"SPAN",{class:!0});var Ke=h(ce);ne=_(Ke,J),Ke.forEach(r),Ye.forEach(r),Le.forEach(r),ve=V(N),H=p(N,"DIV",{class:!0});var Fe=h(H);S.l(Fe),Pe=V(Fe),f&&f.l(Fe),Fe.forEach(r),this.h()},h(){u(t,"class","model-name mono svelte-1px4sss"),u(v,"class","btn-sm svelte-1px4sss"),u(c,"class","card-btns svelte-1px4sss"),u(s,"class","card-head svelte-1px4sss"),u(R,"class","price-label svelte-1px4sss"),u(M,"class","price-val svelte-1px4sss"),u(P,"class","price-block primary svelte-1px4sss"),u(Y,"class","slash svelte-1px4sss"),u(x,"class","price-label svelte-1px4sss"),u(j,"class","price-val svelte-1px4sss"),u(W,"class","price-block primary svelte-1px4sss"),u(B,"class","price-row svelte-1px4sss"),u(le,"class","price-label svelte-1px4sss"),u(_e,"class","price-val sm svelte-1px4sss"),u(te,"class","price-block svelte-1px4sss"),u(ie,"class","price-label svelte-1px4sss"),u(ce,"class","price-val sm svelte-1px4sss"),u(ae,"class","price-block svelte-1px4sss"),u(Q,"class","price-row secondary svelte-1px4sss"),u(H,"class","card-footer svelte-1px4sss")},m(N,E){D(N,s,E),i(s,t),i(t,a),i(s,n),i(s,c),i(c,v),i(v,y),i(c,w),U&&U.m(c,null),D(N,q,E),D(N,B,E),i(B,P),i(P,R),i(R,I),i(P,ee),i(P,M),i(M,b),i(B,A),i(B,Y),i(B,m),i(B,W),i(W,x),i(x,se),i(W,Ve),i(W,j),i(j,G),D(N,oe,E),D(N,Q,E),i(Q,te),i(te,le),i(le,Ee),i(te,X),i(te,_e),i(_e,de),i(Q,ke),i(Q,ae),i(ae,ie),i(ie,Ne),i(ae,Z),i(ae,ce),i(ce,ne),D(N,ve,E),D(N,H,E),S.m(H,null),i(H,Pe),f&&f.m(H,null),ue||(ye=ge(v,"click",Be),ue=!0)},p(N,E){var re,$;e=N,E&1&&l!==(l=e[21].model+"")&&k(a,l),E&128&&g!==(g=e[7]("pricing.edit")+"")&&k(y,g),e[21].isOverride?U?U.p(e,E):(U=es(e),U.c(),U.m(c,null)):U&&(U.d(1),U=null),E&128&&O!==(O=e[7]("pricing.input")+"")&&k(I,O),E&1&&T!==(T=e[21].price?`${L(e[21].currency)}${Se(e[21].price.input)}`:"-")&&k(b,T),E&128&&K!==(K=e[7]("pricing.output")+"")&&k(se,K),E&1&&me!==(me=e[21].price?`${L(e[21].currency)}${Se(e[21].price.output)}`:"-")&&k(G,me),E&128&&fe!==(fe=e[7]("pricing.cacheRead")+"")&&k(Ee,fe),E&1&&z!==(z=((re=e[21].price)==null?void 0:re.cacheRead)!=null?`${L(e[21].currency)}${Se(e[21].price.cacheRead)}`:"-")&&k(de,z),E&128&&he!==(he=e[7]("pricing.cacheWrite")+"")&&k(Ne,he),E&1&&J!==(J=(($=e[21].price)==null?void 0:$.cacheWrite)!=null?`${L(e[21].currency)}${Se(e[21].price.cacheWrite)}`:"-")&&k(ne,J),Re===(Re=We(e))&&S?S.p(e,E):(S.d(1),S=Re(e),S&&(S.c(),S.m(H,Pe))),e[21].currency==="CNY"?f||(f=ss(),f.c(),f.m(H,null)):f&&(f.d(1),f=null)},d(N){N&&(r(s),r(q),r(B),r(oe),r(Q),r(ve),r(H)),U&&U.d(),S.d(),f&&f.d(),ue=!1,ye()}}}function Ns(e){let s,t,l=e[21].model+"",a,n,c,v,g,y=L(e[4])+"",w,q,B,P,R,O=e[7]("pricing.input")+"",I,ee,M=L(e[4])+"",T,b,A,Y,F,m=e[7]("pricing.output")+"",W,x,K=L(e[4])+"",se,Ve,j,me,G,oe=e[7]("pricing.cacheRead")+"",Q,te,le=L(e[4])+"",fe,Ee,X,_e,z,de=e[7]("pricing.cacheWrite")+"",ke,ae,ie=L(e[4])+"",he,Ne,Z,ce,J,ne,ve=e[7]("pricing.save")+"",H,Pe,ue,ye=e[7]("pricing.cancel")+"",Be,U,We;function Re(){return e[17](e[21])}return{c(){s=o("div"),t=o("span"),a=d(l),n=C(),c=o("span"),v=d(e[4]),g=d(" ("),w=d(y),q=d(")"),B=C(),P=o("div"),R=o("label"),I=d(O),ee=d(" ("),T=d(M),b=d(`/1M)
2
+ `),A=o("input"),Y=C(),F=o("label"),W=d(m),x=d(" ("),se=d(K),Ve=d(`/1M)
3
+ `),j=o("input"),me=C(),G=o("label"),Q=d(oe),te=d(" ("),fe=d(le),Ee=d(`/1M)
4
+ `),X=o("input"),_e=C(),z=o("label"),ke=d(de),ae=d(" ("),he=d(ie),Ne=d(`/1M)
5
+ `),Z=o("input"),ce=C(),J=o("div"),ne=o("button"),H=d(ve),Pe=C(),ue=o("button"),Be=d(ye),this.h()},l(S){s=p(S,"DIV",{class:!0});var f=h(s);t=p(f,"SPAN",{class:!0});var Ue=h(t);a=_(Ue,l),Ue.forEach(r),n=V(f),c=p(f,"SPAN",{class:!0});var Ae=h(c);v=_(Ae,e[4]),g=_(Ae," ("),w=_(Ae,y),q=_(Ae,")"),Ae.forEach(r),f.forEach(r),B=V(S),P=p(S,"DIV",{class:!0});var N=h(P);R=p(N,"LABEL",{class:!0});var E=h(R);I=_(E,O),ee=_(E," ("),T=_(E,M),b=_(E,`/1M)
6
+ `),A=p(E,"INPUT",{type:!0,step:!0,class:!0}),E.forEach(r),Y=V(N),F=p(N,"LABEL",{class:!0});var re=h(F);W=_(re,m),x=_(re," ("),se=_(re,K),Ve=_(re,`/1M)
7
+ `),j=p(re,"INPUT",{type:!0,step:!0,class:!0}),re.forEach(r),me=V(N),G=p(N,"LABEL",{class:!0});var $=h(G);Q=_($,oe),te=_($," ("),fe=_($,le),Ee=_($,`/1M)
8
+ `),X=p($,"INPUT",{type:!0,step:!0,class:!0}),$.forEach(r),_e=V(N),z=p(N,"LABEL",{class:!0});var be=h(z);ke=_(be,de),ae=_(be," ("),he=_(be,ie),Ne=_(be,`/1M)
9
+ `),Z=p(be,"INPUT",{type:!0,step:!0,class:!0}),be.forEach(r),N.forEach(r),ce=V(S),J=p(S,"DIV",{class:!0});var pe=h(J);ne=p(pe,"BUTTON",{class:!0});var Ce=h(ne);H=_(Ce,ve),Ce.forEach(r),Pe=V(pe),ue=p(pe,"BUTTON",{class:!0});var we=h(ue);Be=_(we,ye),we.forEach(r),pe.forEach(r),this.h()},h(){u(t,"class","model-name mono svelte-1px4sss"),u(c,"class","badge svelte-1px4sss"),Te(c,"cny",e[4]==="CNY"),Te(c,"default",e[4]!=="CNY"),u(s,"class","card-head svelte-1px4sss"),u(A,"type","number"),u(A,"step","0.01"),u(A,"class","edit-input svelte-1px4sss"),u(R,"class","svelte-1px4sss"),u(j,"type","number"),u(j,"step","0.01"),u(j,"class","edit-input svelte-1px4sss"),u(F,"class","svelte-1px4sss"),u(X,"type","number"),u(X,"step","0.01"),u(X,"class","edit-input svelte-1px4sss"),u(G,"class","svelte-1px4sss"),u(Z,"type","number"),u(Z,"step","0.01"),u(Z,"class","edit-input svelte-1px4sss"),u(z,"class","svelte-1px4sss"),u(P,"class","edit-fields svelte-1px4sss"),u(ne,"class","btn-sm save svelte-1px4sss"),u(ue,"class","btn-sm svelte-1px4sss"),u(J,"class","edit-btns svelte-1px4sss")},m(S,f){D(S,s,f),i(s,t),i(t,a),i(s,n),i(s,c),i(c,v),i(c,g),i(c,w),i(c,q),D(S,B,f),D(S,P,f),i(P,R),i(R,I),i(R,ee),i(R,T),i(R,b),i(R,A),Ie(A,e[5].input),i(P,Y),i(P,F),i(F,W),i(F,x),i(F,se),i(F,Ve),i(F,j),Ie(j,e[5].output),i(P,me),i(P,G),i(G,Q),i(G,te),i(G,fe),i(G,Ee),i(G,X),Ie(X,e[5].cacheRead),i(P,_e),i(P,z),i(z,ke),i(z,ae),i(z,he),i(z,Ne),i(z,Z),Ie(Z,e[5].cacheWrite),D(S,ce,f),D(S,J,f),i(J,ne),i(ne,H),i(J,Pe),i(J,ue),i(ue,Be),U||(We=[ge(A,"input",e[13]),ge(j,"input",e[14]),ge(X,"input",e[15]),ge(Z,"input",e[16]),ge(ne,"click",Re),ge(ue,"click",e[9])],U=!0)},p(S,f){e=S,f&1&&l!==(l=e[21].model+"")&&k(a,l),f&16&&k(v,e[4]),f&16&&y!==(y=L(e[4])+"")&&k(w,y),f&16&&Te(c,"cny",e[4]==="CNY"),f&16&&Te(c,"default",e[4]!=="CNY"),f&128&&O!==(O=e[7]("pricing.input")+"")&&k(I,O),f&16&&M!==(M=L(e[4])+"")&&k(T,M),f&32&&De(A.value)!==e[5].input&&Ie(A,e[5].input),f&128&&m!==(m=e[7]("pricing.output")+"")&&k(W,m),f&16&&K!==(K=L(e[4])+"")&&k(se,K),f&32&&De(j.value)!==e[5].output&&Ie(j,e[5].output),f&128&&oe!==(oe=e[7]("pricing.cacheRead")+"")&&k(Q,oe),f&16&&le!==(le=L(e[4])+"")&&k(fe,le),f&32&&De(X.value)!==e[5].cacheRead&&Ie(X,e[5].cacheRead),f&128&&de!==(de=e[7]("pricing.cacheWrite")+"")&&k(ke,de),f&16&&ie!==(ie=L(e[4])+"")&&k(he,ie),f&32&&De(Z.value)!==e[5].cacheWrite&&Ie(Z,e[5].cacheWrite),f&128&&ve!==(ve=e[7]("pricing.save")+"")&&k(H,ve),f&128&&ye!==(ye=e[7]("pricing.cancel")+"")&&k(Be,ye)},d(S){S&&(r(s),r(B),r(P),r(ce),r(J)),U=!1,rs(We)}}}function es(e){let s,t=e[7]("pricing.reset")+"",l,a,n;function c(){return e[19](e[21])}return{c(){s=o("button"),l=d(t),this.h()},l(v){s=p(v,"BUTTON",{class:!0});var g=h(s);l=_(g,t),g.forEach(r),this.h()},h(){u(s,"class","btn-sm reset svelte-1px4sss")},m(v,g){D(v,s,g),i(s,l),a||(n=ge(s,"click",c),a=!0)},p(v,g){e=v,g&128&&t!==(t=e[7]("pricing.reset")+"")&&k(l,t)},d(v){v&&r(s),a=!1,n()}}}function Ps(e){let s,t=e[7]("pricing.noPrice")+"",l;return{c(){s=o("span"),l=d(t),this.h()},l(a){s=p(a,"SPAN",{class:!0});var n=h(s);l=_(n,t),n.forEach(r),this.h()},h(){u(s,"class","badge no-price svelte-1px4sss")},m(a,n){D(a,s,n),i(s,l)},p(a,n){n&128&&t!==(t=a[7]("pricing.noPrice")+"")&&k(l,t)},d(a){a&&r(s)}}}function ys(e){let s,t=e[21].matchedBy+"",l;return{c(){s=o("span"),l=d(t),this.h()},l(a){s=p(a,"SPAN",{class:!0});var n=h(s);l=_(n,t),n.forEach(r),this.h()},h(){u(s,"class","badge matched svelte-1px4sss")},m(a,n){D(a,s,n),i(s,l)},p(a,n){n&1&&t!==(t=a[21].matchedBy+"")&&k(l,t)},d(a){a&&r(s)}}}function As(e){let s,t=e[7]("pricing.default")+"",l;return{c(){s=o("span"),l=d(t),this.h()},l(a){s=p(a,"SPAN",{class:!0});var n=h(s);l=_(n,t),n.forEach(r),this.h()},h(){u(s,"class","badge default svelte-1px4sss")},m(a,n){D(a,s,n),i(s,l)},p(a,n){n&128&&t!==(t=a[7]("pricing.default")+"")&&k(l,t)},d(a){a&&r(s)}}}function Is(e){let s,t=e[7]("pricing.override")+"",l;return{c(){s=o("span"),l=d(t),this.h()},l(a){s=p(a,"SPAN",{class:!0});var n=h(s);l=_(n,t),n.forEach(r),this.h()},h(){u(s,"class","badge override svelte-1px4sss")},m(a,n){D(a,s,n),i(s,l)},p(a,n){n&128&&t!==(t=a[7]("pricing.override")+"")&&k(l,t)},d(a){a&&r(s)}}}function ss(e){let s,t="CNY";return{c(){s=o("span"),s.textContent=t,this.h()},l(l){s=p(l,"SPAN",{class:!0,"data-svelte-h":!0}),ls(s)!=="svelte-16dyd5a"&&(s.textContent=t),this.h()},h(){u(s,"class","badge cny svelte-1px4sss")},m(l,a){D(l,s,a)},d(l){l&&r(s)}}}function ts(e){let s,t;function l(c,v){return c[22]?Ns:ks}let a=l(e),n=a(e);return{c(){s=o("div"),n.c(),t=C(),this.h()},l(c){s=p(c,"DIV",{class:!0,style:!0});var v=h(s);n.l(v),t=V(v),v.forEach(r),this.h()},h(){u(s,"class","card svelte-1px4sss"),fs(s,"animation-delay",e[24]*25+"ms"),Te(s,"no-price",!e[21].price&&!e[21].matchedBy)},m(c,v){D(c,s,v),n.m(s,null),i(s,t)},p(c,v){a===(a=l(c))&&n?n.p(c,v):(n.d(1),n=a(c),n&&(n.c(),n.m(s,t))),v&1&&Te(s,"no-price",!c[21].price&&!c[21].matchedBy)},d(c){c&&r(s),n.d()}}}function Ss(e){let s,t,l,a,n=e[7]("pricing.title")+"",c,v,g,y=e[7]("pricing.recalc")+"",w,q,B,P,R,O;document.title=s=e[7]("pricing.title")+" — AIUsage";let I=e[6]&&xe(e);function ee(b,A){return b[1]?Es:b[2]?gs:bs}let M=ee(e),T=M(e);return{c(){t=C(),l=o("div"),a=o("h1"),c=d(n),v=C(),g=o("button"),w=d(y),q=C(),I&&I.c(),B=C(),T.c(),P=Xe(),this.h()},l(b){ps("svelte-tm7ewl",document.head).forEach(r),t=V(b),l=p(b,"DIV",{class:!0});var Y=h(l);a=p(Y,"H1",{class:!0});var F=h(a);c=_(F,n),F.forEach(r),v=V(Y),g=p(Y,"BUTTON",{class:!0});var m=h(g);w=_(m,y),q=V(m),I&&I.l(m),m.forEach(r),Y.forEach(r),B=V(b),T.l(b),P=Xe(),this.h()},h(){u(a,"class","page-title svelte-1px4sss"),u(g,"class","btn svelte-1px4sss"),u(l,"class","header-row svelte-1px4sss")},m(b,A){D(b,t,A),D(b,l,A),i(l,a),i(a,c),i(l,v),i(l,g),i(g,w),i(g,q),I&&I.m(g,null),D(b,B,A),T.m(b,A),D(b,P,A),R||(O=ge(g,"click",e[12]),R=!0)},p(b,[A]){A&128&&s!==(s=b[7]("pricing.title")+" — AIUsage")&&(document.title=s),A&128&&n!==(n=b[7]("pricing.title")+"")&&k(c,n),A&128&&y!==(y=b[7]("pricing.recalc")+"")&&k(w,y),b[6]?I?I.p(b,A):(I=xe(b),I.c(),I.m(g,null)):I&&(I.d(1),I=null),M===(M=ee(b))&&T?T.p(b,A):(T.d(1),T=M(b),T&&(T.c(),T.m(P.parentNode,P)))},i:Qe,o:Qe,d(b){b&&(r(t),r(l),r(B),r(P)),I&&I.d(),T.d(b),R=!1,O()}}}function L(e){return e==="CNY"?"¥":"$"}function Se(e){return e==null?"-":e===0?"0":e<.01?e.toFixed(4):e<1?e.toFixed(3):e.toFixed(2)}function Ds(e,s,t){let l;is(e,_s,m=>t(7,l=m));let a=[],n=!0,c=null,v=null,g=null,y={},w="";ns(q);async function q(){t(1,n=!0),t(2,c=null);try{const m=await ds();t(0,a=m.models)}catch(m){t(2,c=m instanceof Error?m.message:"Failed to load")}finally{t(1,n=!1)}}function B(m){var W,x,K,se;t(3,v=m.model),t(4,g=m.currency||"USD"),t(5,y={input:((W=m.price)==null?void 0:W.input)??0,output:((x=m.price)==null?void 0:x.output)??0,cacheRead:((K=m.price)==null?void 0:K.cacheRead)??0,cacheWrite:((se=m.price)==null?void 0:se.cacheWrite)??0})}function P(){t(3,v=null),t(4,g=null),t(5,y={})}async function R(m){try{await hs(m,{...y,currency:g}),t(3,v=null),t(4,g=null),await q()}catch(W){alert(W.message)}}async function O(m){try{await vs(m),await q()}catch(W){alert(W.message)}}async function I(){t(6,w="...");try{const m=await ms();t(6,w=`${l("pricing.recalcDone")}: ${m.updated}`),setTimeout(()=>{t(6,w="")},3e3)}catch(m){t(6,w=m.message)}}function ee(){y.input=De(this.value),t(5,y)}function M(){y.output=De(this.value),t(5,y)}function T(){y.cacheRead=De(this.value),t(5,y)}function b(){y.cacheWrite=De(this.value),t(5,y)}return[a,n,c,v,g,y,w,l,B,P,R,O,I,ee,M,T,b,m=>R(m.model),m=>B(m),m=>O(m.model)]}class Ts extends cs{constructor(s){super(),us(this,s,Ds,Ss,as,{})}}export{Ts as component};
@@ -0,0 +1 @@
1
+ import{s as ce,c as G}from"../chunks/scheduler.DFD7qxcZ.js";import{S as ie,i as fe,d as i,k as L,l as M,m as O,s as F,a as H,b as n,n as Q,o as b,p as me,g as N,c as E,e as D,f as V,q as W,r as te,j as $,h as k,t as A,u as X,v as _e,w as se}from"../chunks/index.wix8pgil.js";import{e as ae,t as he}from"../chunks/i18n.BOq44pYI.js";import{c as le,f as oe,s as ue,a as de,d as pe}from"../chunks/stores.B1g8D8DV.js";import{g as ve}from"../chunks/api.OwJBmtEN.js";import{D as ge,a as Ee,T as De}from"../chunks/ToolSelector.CnQ-eszE.js";function re(r,e,a){const t=r.slice();return t[8]=e[a],t[10]=a,t}function ke(r){let e,a=ae(r[0].projects),t=[];for(let s=0;s<a.length;s+=1)t[s]=ne(re(r,a,s));return{c(){e=k("div");for(let s=0;s<t.length;s+=1)t[s].c();this.h()},l(s){e=E(s,"DIV",{class:!0});var c=D(e);for(let o=0;o<t.length;o+=1)t[o].l(c);c.forEach(i),this.h()},h(){b(e,"class","ranking svelte-160mg0m")},m(s,c){H(s,e,c);for(let o=0;o<t.length;o+=1)t[o]&&t[o].m(e,null)},p(s,c){if(c&1){a=ae(s[0].projects);let o;for(o=0;o<a.length;o+=1){const m=re(s,a,o);t[o]?t[o].p(m,c):(t[o]=ne(m),t[o].c(),t[o].m(e,null))}for(;o<t.length;o+=1)t[o].d(1);t.length=a.length}},d(s){s&&i(e),_e(t,s)}}}function be(r){let e,a,t=r[3]("projects.noData")+"",s,c,o,m=r[3]("projects.noDataHint")+"",p;return{c(){e=k("div"),a=k("h2"),s=A(t),c=$(),o=k("p"),p=A(m),this.h()},l(_){e=E(_,"DIV",{class:!0});var u=D(e);a=E(u,"H2",{});var h=D(a);s=V(h,t),h.forEach(i),c=N(u),o=E(u,"P",{});var d=D(o);p=V(d,m),d.forEach(i),u.forEach(i),this.h()},h(){b(e,"class","state-msg")},m(_,u){H(_,e,u),n(e,a),n(a,s),n(e,c),n(e,o),n(o,p)},p(_,u){u&8&&t!==(t=_[3]("projects.noData")+"")&&F(s,t),u&8&&m!==(m=_[3]("projects.noDataHint")+"")&&F(p,m)},d(_){_&&i(e)}}}function je(r){let e,a;return{c(){e=k("div"),a=A(r[1]),this.h()},l(t){e=E(t,"DIV",{class:!0});var s=D(e);a=V(s,r[1]),s.forEach(i),this.h()},h(){b(e,"class","state-msg error")},m(t,s){H(t,e,s),n(e,a)},p(t,s){s&2&&F(a,t[1])},d(t){t&&i(e)}}}function Ie(r){let e,a=r[3]("common.loading")+"",t;return{c(){e=k("div"),t=A(a),this.h()},l(s){e=E(s,"DIV",{class:!0});var c=D(e);t=V(c,a),c.forEach(i),this.h()},h(){b(e,"class","state-msg")},m(s,c){H(s,e,c),n(e,t)},p(s,c){c&8&&a!==(a=s[3]("common.loading")+"")&&F(t,a)},d(s){s&&i(e)}}}function ne(r){let e,a,t,s=r[10]+1+"",c,o,m,p=r[8].name+"",_,u,h,d,j,U,w,R=le(r[8].tokens)+"",y,q,S,P=oe(r[8].cost)+"",z,C,v,l=r[8].percentage.toFixed(1)+"",g,T,B;return{c(){e=k("div"),a=k("span"),t=A("#"),c=A(s),o=$(),m=k("span"),_=A(p),h=$(),d=k("div"),j=k("div"),U=$(),w=k("span"),y=A(R),q=$(),S=k("span"),z=A(P),C=$(),v=k("span"),g=A(l),T=A("%"),B=$(),this.h()},l(I){e=E(I,"DIV",{class:!0});var f=D(e);a=E(f,"SPAN",{class:!0});var J=D(a);t=V(J,"#"),c=V(J,s),J.forEach(i),o=N(f),m=E(f,"SPAN",{class:!0,title:!0});var Y=D(m);_=V(Y,p),Y.forEach(i),h=N(f),d=E(f,"DIV",{class:!0});var Z=D(d);j=E(Z,"DIV",{class:!0,style:!0}),D(j).forEach(i),Z.forEach(i),U=N(f),w=E(f,"SPAN",{class:!0});var x=D(w);y=V(x,R),x.forEach(i),q=N(f),S=E(f,"SPAN",{class:!0});var ee=D(S);z=V(ee,P),ee.forEach(i),C=N(f),v=E(f,"SPAN",{class:!0});var K=D(v);g=V(K,l),T=V(K,"%"),K.forEach(i),B=N(f),f.forEach(i),this.h()},h(){b(a,"class","rank mono svelte-160mg0m"),b(m,"class","name mono svelte-160mg0m"),b(m,"title",u=r[8].name),b(j,"class","bar svelte-160mg0m"),se(j,"width",r[8].percentage+"%"),b(d,"class","bar-container svelte-160mg0m"),b(w,"class","tokens mono svelte-160mg0m"),b(S,"class","cost mono accent svelte-160mg0m"),b(v,"class","pct mono svelte-160mg0m"),b(e,"class","row animate-row svelte-160mg0m")},m(I,f){H(I,e,f),n(e,a),n(a,t),n(a,c),n(e,o),n(e,m),n(m,_),n(e,h),n(e,d),n(d,j),n(e,U),n(e,w),n(w,y),n(e,q),n(e,S),n(S,z),n(e,C),n(e,v),n(v,g),n(v,T),n(e,B)},p(I,f){f&1&&p!==(p=I[8].name+"")&&F(_,p),f&1&&u!==(u=I[8].name)&&b(m,"title",u),f&1&&se(j,"width",I[8].percentage+"%"),f&1&&R!==(R=le(I[8].tokens)+"")&&F(y,R),f&1&&P!==(P=oe(I[8].cost)+"")&&F(z,P),f&1&&l!==(l=I[8].percentage.toFixed(1)+"")&&F(g,l)},d(I){I&&i(e)}}}function we(r){let e,a,t,s,c=r[3]("projects.title")+"",o,m,p,_=r[3]("projects.desc")+"",u,h,d,j,U,w,R,y,q,S,P;document.title=e=r[3]("projects.title")+" — AIUsage",j=new ge({}),w=new Ee({}),y=new De({});function z(l,g){var T;return l[2]?Ie:l[1]?je:(T=l[0])!=null&&T.projects.length?ke:be}let C=z(r),v=C(r);return{c(){a=$(),t=k("div"),s=k("h1"),o=A(c),m=$(),p=k("p"),u=A(_),h=$(),d=k("div"),X(j.$$.fragment),U=$(),X(w.$$.fragment),R=$(),X(y.$$.fragment),q=$(),v.c(),S=te(),this.h()},l(l){me("svelte-11fw4x1",document.head).forEach(i),a=N(l),t=E(l,"DIV",{class:!0});var T=D(t);s=E(T,"H1",{});var B=D(s);o=V(B,c),B.forEach(i),m=N(T),p=E(T,"P",{});var I=D(p);u=V(I,_),I.forEach(i),T.forEach(i),h=N(l),d=E(l,"DIV",{class:!0});var f=D(d);W(j.$$.fragment,f),U=N(f),W(w.$$.fragment,f),R=N(f),W(y.$$.fragment,f),f.forEach(i),q=N(l),v.l(l),S=te(),this.h()},h(){b(t,"class","page-header"),b(d,"class","filter-bar")},m(l,g){H(l,a,g),H(l,t,g),n(t,s),n(s,o),n(t,m),n(t,p),n(p,u),H(l,h,g),H(l,d,g),Q(j,d,null),n(d,U),Q(w,d,null),n(d,R),Q(y,d,null),H(l,q,g),v.m(l,g),H(l,S,g),P=!0},p(l,[g]){(!P||g&8)&&e!==(e=l[3]("projects.title")+" — AIUsage")&&(document.title=e),(!P||g&8)&&c!==(c=l[3]("projects.title")+"")&&F(o,c),(!P||g&8)&&_!==(_=l[3]("projects.desc")+"")&&F(u,_),C===(C=z(l))&&v?v.p(l,g):(v.d(1),v=C(l),v&&(v.c(),v.m(S.parentNode,S)))},i(l){P||(O(j.$$.fragment,l),O(w.$$.fragment,l),O(y.$$.fragment,l),P=!0)},o(l){M(j.$$.fragment,l),M(w.$$.fragment,l),M(y.$$.fragment,l),P=!1},d(l){l&&(i(a),i(t),i(h),i(d),i(q),i(S)),L(j),L(w),L(y),v.d(l)}}}function Se(r,e,a){let t,s,c,o;G(r,ue,h=>a(4,t=h)),G(r,de,h=>a(5,s=h)),G(r,pe,h=>a(6,c=h)),G(r,he,h=>a(3,o=h));let m=null,p=null,_=!0;async function u(){a(2,_=!0),a(1,p=null);try{a(0,m=await ve({...c,device:s,tool:t}))}catch(h){a(1,p=h instanceof Error?h.message:"Failed to load data"),a(0,m=null)}finally{a(2,_=!1)}}return r.$$.update=()=>{r.$$.dirty&112&&u()},[m,p,_,o,t,s,c]}class Te extends ie{constructor(e){super(),fe(this,e,Se,we,ce,{})}}export{Te as component};
@@ -0,0 +1 @@
1
+ import{s as Ze,c as pe,r as $e}from"../chunks/scheduler.DFD7qxcZ.js";import{S as ye,i as xe,d as r,k as Ae,l as Re,m as we,s as S,a as G,b as e,n as Be,o as F,p as et,g as k,c as u,e as c,f as g,q as Ne,r as Ye,j as H,h,t as E,u as Ue,v as tt,x as Ge}from"../chunks/index.wix8pgil.js";import{e as Je,t as st}from"../chunks/i18n.BOq44pYI.js";import{e as Ke,c as be,f as Qe,s as lt,a as ot,d as at}from"../chunks/stores.B1g8D8DV.js";import{h as nt}from"../chunks/api.OwJBmtEN.js";import{D as rt,a as it,T as ft}from"../chunks/ToolSelector.CnQ-eszE.js";function We(s,t,l){const a=s.slice();return a[11]=t[l],a}function ut(s){let t,l,a,o,_,T=s[4]("sessions.time")+"",p,V,m,i=s[4]("sessions.tool")+"",w,D,B,v=s[4]("sessions.model")+"",N,J,U,q=s[4]("sessions.input")+"",O,j,K,C=s[4]("sessions.output")+"",A,n,I,b=s[4]("sessions.cost")+"",d,Z,z,y,L,Y,x,le=s[4]("common.previous")+"",fe,ue,ge,Q,oe=s[4]("common.page")+"",ce,Ee,he,Te,ae=s[4]("common.of")+"",_e,De,ne=Math.ceil(s[1].total/se)+"",de,ke,X,re=s[4]("common.next")+"",me,He,ve,Ie,qe,ee=Je(s[1].sessions),M=[];for(let f=0;f<ee.length;f+=1)M[f]=Xe(We(s,ee,f));return{c(){t=h("div"),l=h("table"),a=h("thead"),o=h("tr"),_=h("th"),p=E(T),V=H(),m=h("th"),w=E(i),D=H(),B=h("th"),N=E(v),J=H(),U=h("th"),O=E(q),j=H(),K=h("th"),A=E(C),n=H(),I=h("th"),d=E(b),Z=H(),z=h("tbody");for(let f=0;f<M.length;f+=1)M[f].c();y=H(),L=h("div"),Y=h("button"),x=E("← "),fe=E(le),ge=H(),Q=h("span"),ce=E(oe),Ee=H(),he=E(s[0]),Te=H(),_e=E(ae),De=H(),de=E(ne),ke=H(),X=h("button"),me=E(re),He=E(" →"),this.h()},l(f){t=u(f,"DIV",{class:!0});var P=c(t);l=u(P,"TABLE",{});var R=c(l);a=u(R,"THEAD",{});var ie=c(a);o=u(ie,"TR",{});var W=c(o);_=u(W,"TH",{});var Oe=c(_);p=g(Oe,T),Oe.forEach(r),V=k(W),m=u(W,"TH",{});var Ce=c(m);w=g(Ce,i),Ce.forEach(r),D=k(W),B=u(W,"TH",{});var Me=c(B);N=g(Me,v),Me.forEach(r),J=k(W),U=u(W,"TH",{});var je=c(U);O=g(je,q),je.forEach(r),j=k(W),K=u(W,"TH",{});var ze=c(K);A=g(ze,C),ze.forEach(r),n=k(W),I=u(W,"TH",{});var Fe=c(I);d=g(Fe,b),Fe.forEach(r),W.forEach(r),ie.forEach(r),Z=k(R),z=u(R,"TBODY",{});var Le=c(z);for(let Pe=0;Pe<M.length;Pe+=1)M[Pe].l(Le);Le.forEach(r),R.forEach(r),P.forEach(r),y=k(f),L=u(f,"DIV",{class:!0});var te=c(L);Y=u(te,"BUTTON",{class:!0});var Se=c(Y);x=g(Se,"← "),fe=g(Se,le),Se.forEach(r),ge=k(te),Q=u(te,"SPAN",{class:!0});var $=c(Q);ce=g($,oe),Ee=k($),he=g($,s[0]),Te=k($),_e=g($,ae),De=k($),de=g($,ne),$.forEach(r),ke=k(te),X=u(te,"BUTTON",{class:!0});var Ve=c(X);me=g(Ve,re),He=g(Ve," →"),Ve.forEach(r),te.forEach(r),this.h()},h(){F(t,"class","card"),Y.disabled=ue=s[0]<=1,F(Y,"class","svelte-1ehbtp3"),F(Q,"class","page-info mono svelte-1ehbtp3"),X.disabled=ve=s[0]*se>=s[1].total,F(X,"class","svelte-1ehbtp3"),F(L,"class","pagination svelte-1ehbtp3")},m(f,P){G(f,t,P),e(t,l),e(l,a),e(a,o),e(o,_),e(_,p),e(o,V),e(o,m),e(m,w),e(o,D),e(o,B),e(B,N),e(o,J),e(o,U),e(U,O),e(o,j),e(o,K),e(K,A),e(o,n),e(o,I),e(I,d),e(l,Z),e(l,z);for(let R=0;R<M.length;R+=1)M[R]&&M[R].m(z,null);G(f,y,P),G(f,L,P),e(L,Y),e(Y,x),e(Y,fe),e(L,ge),e(L,Q),e(Q,ce),e(Q,Ee),e(Q,he),e(Q,Te),e(Q,_e),e(Q,De),e(Q,de),e(L,ke),e(L,X),e(X,me),e(X,He),Ie||(qe=[Ge(Y,"click",s[6]),Ge(X,"click",s[5])],Ie=!0)},p(f,P){if(P&16&&T!==(T=f[4]("sessions.time")+"")&&S(p,T),P&16&&i!==(i=f[4]("sessions.tool")+"")&&S(w,i),P&16&&v!==(v=f[4]("sessions.model")+"")&&S(N,v),P&16&&q!==(q=f[4]("sessions.input")+"")&&S(O,q),P&16&&C!==(C=f[4]("sessions.output")+"")&&S(A,C),P&16&&b!==(b=f[4]("sessions.cost")+"")&&S(d,b),P&2){ee=Je(f[1].sessions);let R;for(R=0;R<ee.length;R+=1){const ie=We(f,ee,R);M[R]?M[R].p(ie,P):(M[R]=Xe(ie),M[R].c(),M[R].m(z,null))}for(;R<M.length;R+=1)M[R].d(1);M.length=ee.length}P&16&&le!==(le=f[4]("common.previous")+"")&&S(fe,le),P&1&&ue!==(ue=f[0]<=1)&&(Y.disabled=ue),P&16&&oe!==(oe=f[4]("common.page")+"")&&S(ce,oe),P&1&&S(he,f[0]),P&16&&ae!==(ae=f[4]("common.of")+"")&&S(_e,ae),P&2&&ne!==(ne=Math.ceil(f[1].total/se)+"")&&S(de,ne),P&16&&re!==(re=f[4]("common.next")+"")&&S(me,re),P&3&&ve!==(ve=f[0]*se>=f[1].total)&&(X.disabled=ve)},d(f){f&&(r(t),r(y),r(L)),tt(M,f),Ie=!1,$e(qe)}}}function ct(s){let t,l,a=s[4]("sessions.noData")+"",o,_,T,p=s[4]("sessions.noDataHint")+"",V;return{c(){t=h("div"),l=h("h2"),o=E(a),_=H(),T=h("p"),V=E(p),this.h()},l(m){t=u(m,"DIV",{class:!0});var i=c(t);l=u(i,"H2",{});var w=c(l);o=g(w,a),w.forEach(r),_=k(i),T=u(i,"P",{});var D=c(T);V=g(D,p),D.forEach(r),i.forEach(r),this.h()},h(){F(t,"class","state-msg")},m(m,i){G(m,t,i),e(t,l),e(l,o),e(t,_),e(t,T),e(T,V)},p(m,i){i&16&&a!==(a=m[4]("sessions.noData")+"")&&S(o,a),i&16&&p!==(p=m[4]("sessions.noDataHint")+"")&&S(V,p)},d(m){m&&r(t)}}}function ht(s){let t,l;return{c(){t=h("div"),l=E(s[2]),this.h()},l(a){t=u(a,"DIV",{class:!0});var o=c(t);l=g(o,s[2]),o.forEach(r),this.h()},h(){F(t,"class","state-msg error")},m(a,o){G(a,t,o),e(t,l)},p(a,o){o&4&&S(l,a[2])},d(a){a&&r(t)}}}function _t(s){let t,l=s[4]("common.loading")+"",a;return{c(){t=h("div"),a=E(l),this.h()},l(o){t=u(o,"DIV",{class:!0});var _=c(t);a=g(_,l),_.forEach(r),this.h()},h(){F(t,"class","state-msg")},m(o,_){G(o,t,_),e(t,a)},p(o,_){_&16&&l!==(l=o[4]("common.loading")+"")&&S(a,l)},d(o){o&&r(t)}}}function Xe(s){let t,l,a=Ke(s[11].ts)+"",o,_,T,p=s[11].tool+"",V,m,i,w=s[11].model+"",D,B,v,N=be(s[11].inputTokens)+"",J,U,q,O=be(s[11].outputTokens)+"",j,K,C,A=Qe(s[11].cost)+"",n,I;return{c(){t=h("tr"),l=h("td"),o=E(a),_=H(),T=h("td"),V=E(p),m=H(),i=h("td"),D=E(w),B=H(),v=h("td"),J=E(N),U=H(),q=h("td"),j=E(O),K=H(),C=h("td"),n=E(A),I=H(),this.h()},l(b){t=u(b,"TR",{});var d=c(t);l=u(d,"TD",{class:!0});var Z=c(l);o=g(Z,a),Z.forEach(r),_=k(d),T=u(d,"TD",{});var z=c(T);V=g(z,p),z.forEach(r),m=k(d),i=u(d,"TD",{class:!0});var y=c(i);D=g(y,w),y.forEach(r),B=k(d),v=u(d,"TD",{class:!0});var L=c(v);J=g(L,N),L.forEach(r),U=k(d),q=u(d,"TD",{class:!0});var Y=c(q);j=g(Y,O),Y.forEach(r),K=k(d),C=u(d,"TD",{class:!0});var x=c(C);n=g(x,A),x.forEach(r),I=k(d),d.forEach(r),this.h()},h(){F(l,"class","mono"),F(i,"class","mono model svelte-1ehbtp3"),F(v,"class","mono green"),F(q,"class","mono blue"),F(C,"class","mono accent")},m(b,d){G(b,t,d),e(t,l),e(l,o),e(t,_),e(t,T),e(T,V),e(t,m),e(t,i),e(i,D),e(t,B),e(t,v),e(v,J),e(t,U),e(t,q),e(q,j),e(t,K),e(t,C),e(C,n),e(t,I)},p(b,d){d&2&&a!==(a=Ke(b[11].ts)+"")&&S(o,a),d&2&&p!==(p=b[11].tool+"")&&S(V,p),d&2&&w!==(w=b[11].model+"")&&S(D,w),d&2&&N!==(N=be(b[11].inputTokens)+"")&&S(J,N),d&2&&O!==(O=be(b[11].outputTokens)+"")&&S(j,O),d&2&&A!==(A=Qe(b[11].cost)+"")&&S(n,A)},d(b){b&&r(t)}}}function dt(s){let t,l,a,o,_=s[4]("sessions.title")+"",T,p,V,m=s[4]("sessions.desc")+"",i,w,D,B,v,N,J,U,q,O,j;document.title=t=s[4]("sessions.title")+" — AIUsage",B=new rt({}),N=new it({}),U=new ft({});function K(n,I){var b;return n[3]?_t:n[2]?ht:(b=n[1])!=null&&b.sessions.length?ut:ct}let C=K(s),A=C(s);return{c(){l=H(),a=h("div"),o=h("h1"),T=E(_),p=H(),V=h("p"),i=E(m),w=H(),D=h("div"),Ue(B.$$.fragment),v=H(),Ue(N.$$.fragment),J=H(),Ue(U.$$.fragment),q=H(),A.c(),O=Ye(),this.h()},l(n){et("svelte-1qvtsma",document.head).forEach(r),l=k(n),a=u(n,"DIV",{class:!0});var b=c(a);o=u(b,"H1",{});var d=c(o);T=g(d,_),d.forEach(r),p=k(b),V=u(b,"P",{});var Z=c(V);i=g(Z,m),Z.forEach(r),b.forEach(r),w=k(n),D=u(n,"DIV",{class:!0});var z=c(D);Ne(B.$$.fragment,z),v=k(z),Ne(N.$$.fragment,z),J=k(z),Ne(U.$$.fragment,z),z.forEach(r),q=k(n),A.l(n),O=Ye(),this.h()},h(){F(a,"class","page-header"),F(D,"class","filter-bar")},m(n,I){G(n,l,I),G(n,a,I),e(a,o),e(o,T),e(a,p),e(a,V),e(V,i),G(n,w,I),G(n,D,I),Be(B,D,null),e(D,v),Be(N,D,null),e(D,J),Be(U,D,null),G(n,q,I),A.m(n,I),G(n,O,I),j=!0},p(n,[I]){(!j||I&16)&&t!==(t=n[4]("sessions.title")+" — AIUsage")&&(document.title=t),(!j||I&16)&&_!==(_=n[4]("sessions.title")+"")&&S(T,_),(!j||I&16)&&m!==(m=n[4]("sessions.desc")+"")&&S(i,m),C===(C=K(n))&&A?A.p(n,I):(A.d(1),A=C(n),A&&(A.c(),A.m(O.parentNode,O)))},i(n){j||(we(B.$$.fragment,n),we(N.$$.fragment,n),we(U.$$.fragment,n),j=!0)},o(n){Re(B.$$.fragment,n),Re(N.$$.fragment,n),Re(U.$$.fragment,n),j=!1},d(n){n&&(r(l),r(a),r(w),r(D),r(q),r(O)),Ae(B),Ae(N),Ae(U),A.d(n)}}}const se=50;function mt(s,t,l){let a,o,_,T;pe(s,lt,v=>l(7,a=v)),pe(s,ot,v=>l(8,o=v)),pe(s,at,v=>l(9,_=v)),pe(s,st,v=>l(4,T=v));let p=null,V=null,m=!0,i=1;async function w(){l(3,m=!0),l(2,V=null);try{l(1,p=await nt({..._,device:o,tool:a,page:i,pageSize:se}))}catch(v){l(2,V=v instanceof Error?v.message:"Failed to load data"),l(1,p=null)}finally{l(3,m=!1)}}function D(){p&&i*se<p.total&&l(0,i++,i)}function B(){i>1&&l(0,i--,i)}return s.$$.update=()=>{s.$$.dirty&128&&l(0,i=1),s.$$.dirty&897&&w()},[i,p,V,m,T,D,B,a,o,_]}class Dt extends ye{constructor(t){super(),xe(this,t,mt,dt,Ze,{})}}export{Dt as component};
@@ -1 +1 @@
1
- {"version":"1779416537140"}
1
+ {"version":"1779641472466"}
@@ -6,37 +6,38 @@
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1" />
7
7
  <link rel="preconnect" href="https://fonts.googleapis.com" />
8
8
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
9
- <link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet" />
9
+ <link href="https://fonts.googleapis.com/css2?family=Instrument+Sans:ital,wght@0,400..700;1,400..700&display=swap" rel="stylesheet" />
10
+ <link href="https://cdn.jsdelivr.net/npm/geist@1.3.1/dist/fonts/geist-mono/style.css" rel="stylesheet" />
10
11
  <script>
11
12
  (function() {
12
13
  var pref = localStorage.getItem('aiusage-theme') || 'system';
13
14
  var theme = pref === 'system'
14
- ? (window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark')
15
+ ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light')
15
16
  : pref;
16
17
  document.documentElement.setAttribute('data-theme', theme);
17
18
  })();
18
19
  </script>
19
20
 
20
- <link rel="modulepreload" href="/_app/immutable/entry/start.DosCYfdN.js">
21
- <link rel="modulepreload" href="/_app/immutable/chunks/entry.C9S4R-C0.js">
22
- <link rel="modulepreload" href="/_app/immutable/chunks/scheduler.DukoKnjQ.js">
23
- <link rel="modulepreload" href="/_app/immutable/chunks/index.BjVwNvJa.js">
24
- <link rel="modulepreload" href="/_app/immutable/entry/app.D2r0s5MX.js">
25
- <link rel="modulepreload" href="/_app/immutable/chunks/index.CUfK07C5.js">
21
+ <link rel="modulepreload" href="/_app/immutable/entry/start.CuMG7ijt.js">
22
+ <link rel="modulepreload" href="/_app/immutable/chunks/entry.DWbp2XzC.js">
23
+ <link rel="modulepreload" href="/_app/immutable/chunks/scheduler.DFD7qxcZ.js">
24
+ <link rel="modulepreload" href="/_app/immutable/chunks/index.CPsgU-fv.js">
25
+ <link rel="modulepreload" href="/_app/immutable/entry/app.7Tmcb_qs.js">
26
+ <link rel="modulepreload" href="/_app/immutable/chunks/index.wix8pgil.js">
26
27
  </head>
27
28
  <body data-sveltekit-preload-data="hover">
28
29
  <div style="display: contents">
29
30
  <script>
30
31
  {
31
- __sveltekit_1ys8q0q = {
32
+ __sveltekit_gszguz = {
32
33
  base: ""
33
34
  };
34
35
 
35
36
  const element = document.currentScript.parentElement;
36
37
 
37
38
  Promise.all([
38
- import("/_app/immutable/entry/start.DosCYfdN.js"),
39
- import("/_app/immutable/entry/app.D2r0s5MX.js")
39
+ import("/_app/immutable/entry/start.CuMG7ijt.js"),
40
+ import("/_app/immutable/entry/app.7Tmcb_qs.js")
40
41
  ]).then(([kit, app]) => {
41
42
  kit.start(app, element);
42
43
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@juliantanx/aiusage",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "type": "module",
5
5
  "description": "Track and analyze AI coding assistant usage across Claude Code, Codex, and more",
6
6
  "keywords": [
@@ -8,6 +8,7 @@
8
8
  "claude",
9
9
  "codex",
10
10
  "opencode",
11
+ "qoder",
11
12
  "usage",
12
13
  "token",
13
14
  "cost",
@@ -47,12 +48,13 @@
47
48
  "tsx": "^4.0.0",
48
49
  "typescript": "^5.7.0",
49
50
  "vitest": "^3.0.0",
50
- "@aiusage/core": "1.2.0",
51
- "@aiusage/web": "0.0.1"
51
+ "@aiusage/core": "1.3.0",
52
+ "@aiusage/web": "1.3.0"
52
53
  },
53
54
  "scripts": {
54
55
  "build": "tsup && node scripts/copy-web.js",
55
56
  "dev": "tsx src/index.ts serve",
57
+ "cli": "tsx src/index.ts",
56
58
  "test": "vitest run",
57
59
  "test:watch": "vitest"
58
60
  }