ccgauge 0.3.1 → 1.0.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 (92) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +41 -41
  3. package/.next/standalone/.next/app-path-routes-manifest.json +6 -6
  4. package/.next/standalone/.next/build-manifest.json +2 -2
  5. package/.next/standalone/.next/prerender-manifest.json +3 -3
  6. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/.next/server/app/api/blocks/route.js +1 -1
  8. package/.next/standalone/.next/server/app/api/blocks/route_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/api/export/usage/route.js +1 -1
  10. package/.next/standalone/.next/server/app/api/export/usage/route.js.nft.json +1 -1
  11. package/.next/standalone/.next/server/app/api/export/usage/route_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/api/pricing/route.js +1 -1
  13. package/.next/standalone/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  14. package/.next/standalone/.next/server/app/api/projects/route.js +1 -1
  15. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/api/scan/route.js +1 -1
  17. package/.next/standalone/.next/server/app/api/scan/route_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/api/sessions/route.js +1 -1
  19. package/.next/standalone/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/api/usage/route.js +1 -1
  21. package/.next/standalone/.next/server/app/api/usage/route_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/models/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/page.js +2 -2
  24. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/projects/[id]/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/projects/page.js +1 -1
  27. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
  29. package/.next/standalone/.next/server/app/sessions/page.js +1 -1
  30. package/.next/standalone/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/settings/page.js +2 -2
  32. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/usage/page.js +2 -2
  34. package/.next/standalone/.next/server/app/usage/page_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app-paths-manifest.json +6 -6
  36. package/.next/standalone/.next/server/chunks/426.js +9 -4
  37. package/.next/standalone/.next/server/chunks/520.js +1 -1
  38. package/.next/standalone/.next/server/chunks/716.js +1 -1
  39. package/.next/standalone/.next/server/chunks/775.js +1 -1
  40. package/.next/standalone/.next/server/functions-config-manifest.json +4 -4
  41. package/.next/standalone/.next/server/pages/500.html +1 -1
  42. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  43. package/.next/standalone/.next/static/chunks/148-557ee562aff993b1.js +1 -0
  44. package/.next/standalone/.next/static/chunks/app/{error-89ee9e078058915d.js → error-3e48784f89c5ae8d.js} +1 -1
  45. package/.next/standalone/.next/static/chunks/app/layout-6c973d790f015707.js +1 -0
  46. package/.next/standalone/.next/static/chunks/app/models/page-dff43b9050382020.js +1 -0
  47. package/.next/standalone/.next/static/chunks/app/page-6d87d7a8aa752100.js +1 -0
  48. package/.next/standalone/.next/static/chunks/app/projects/[id]/page-3f812f0e20137f2b.js +1 -0
  49. package/.next/standalone/.next/static/chunks/app/sessions/[id]/page-3f812f0e20137f2b.js +1 -0
  50. package/.next/standalone/.next/static/chunks/app/settings/{page-334168b522eac1b1.js → page-d1af886a5c22af9b.js} +1 -1
  51. package/.next/standalone/.next/static/chunks/app/usage/page-26297e0641d51da8.js +1 -0
  52. package/.next/standalone/.next/static/css/b07523b7c353538d.css +3 -0
  53. package/.next/standalone/node_modules/next/node_modules/postcss/package.json +0 -0
  54. package/.next/standalone/package.json +20 -4
  55. package/CHANGELOG.md +208 -0
  56. package/README.md +235 -2
  57. package/README.zh-CN.md +229 -2
  58. package/bin/cli.mjs +123 -3
  59. package/dist/mcp/server.mjs +23622 -0
  60. package/dist/report/index.mjs +2098 -0
  61. package/package.json +29 -15
  62. package/.next/standalone/.next/static/chunks/454-d0e7d0fa6f643c41.js +0 -1
  63. package/.next/standalone/.next/static/chunks/app/layout-a6e30ba3a7f39737.js +0 -1
  64. package/.next/standalone/.next/static/chunks/app/models/page-e0e1b5979547421a.js +0 -1
  65. package/.next/standalone/.next/static/chunks/app/page-9347dfa20dabb24b.js +0 -1
  66. package/.next/standalone/.next/static/chunks/app/projects/[id]/page-5804875e3dc384df.js +0 -1
  67. package/.next/standalone/.next/static/chunks/app/sessions/[id]/page-5804875e3dc384df.js +0 -1
  68. package/.next/standalone/.next/static/chunks/app/usage/page-7789fec27778df9a.js +0 -1
  69. package/.next/standalone/.next/static/css/2e5f36bcdf442844.css +0 -3
  70. package/.next/standalone/node_modules/semver/classes/comparator.js +0 -143
  71. package/.next/standalone/node_modules/semver/classes/range.js +0 -557
  72. package/.next/standalone/node_modules/semver/classes/semver.js +0 -333
  73. package/.next/standalone/node_modules/semver/functions/cmp.js +0 -54
  74. package/.next/standalone/node_modules/semver/functions/coerce.js +0 -62
  75. package/.next/standalone/node_modules/semver/functions/compare.js +0 -7
  76. package/.next/standalone/node_modules/semver/functions/eq.js +0 -5
  77. package/.next/standalone/node_modules/semver/functions/gt.js +0 -5
  78. package/.next/standalone/node_modules/semver/functions/gte.js +0 -5
  79. package/.next/standalone/node_modules/semver/functions/lt.js +0 -5
  80. package/.next/standalone/node_modules/semver/functions/lte.js +0 -5
  81. package/.next/standalone/node_modules/semver/functions/neq.js +0 -5
  82. package/.next/standalone/node_modules/semver/functions/parse.js +0 -18
  83. package/.next/standalone/node_modules/semver/functions/satisfies.js +0 -12
  84. package/.next/standalone/node_modules/semver/internal/constants.js +0 -37
  85. package/.next/standalone/node_modules/semver/internal/debug.js +0 -11
  86. package/.next/standalone/node_modules/semver/internal/identifiers.js +0 -29
  87. package/.next/standalone/node_modules/semver/internal/lrucache.js +0 -42
  88. package/.next/standalone/node_modules/semver/internal/parse-options.js +0 -17
  89. package/.next/standalone/node_modules/semver/internal/re.js +0 -223
  90. package/.next/standalone/node_modules/semver/package.json +0 -78
  91. /package/.next/standalone/.next/static/{kmNFwlVOydWtqBX3zI8OH → ZPycmg0NLiIflO5NXMT75}/_buildManifest.js +0 -0
  92. /package/.next/standalone/.next/static/{kmNFwlVOydWtqBX3zI8OH → ZPycmg0NLiIflO5NXMT75}/_ssgManifest.js +0 -0
@@ -1,2 +1,2 @@
1
- (()=>{var a={};a.id=662,a.ids=[662],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29509:(a,b,c)=>{"use strict";c.d(b,{ThemeSwitcher:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call ThemeSwitcher() from the server but ThemeSwitcher is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/theme-switcher.tsx","ThemeSwitcher")},33873:a=>{"use strict";a.exports=require("path")},37583:(a,b,c)=>{"use strict";c.d(b,{pp:()=>h,qK:()=>g,wn:()=>f});var d=c(75338),e=c(95012);function f({title:a,desc:b,right:c,children:f,className:g}){return(0,d.jsxs)("section",{className:(0,e.cn)("card",g),children:[(a||c)&&(0,d.jsxs)("header",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3 sm:gap-4 px-4 sm:px-6 pt-4 sm:pt-5 pb-3 border-b border-border",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[a&&(0,d.jsx)("h2",{className:"text-base font-semibold text-text-primary tracking-tight",children:a}),b&&(0,d.jsx)("p",{className:"text-xs text-text-secondary mt-1",children:b})]}),c&&(0,d.jsx)("div",{className:"flex items-center gap-2 flex-wrap",children:c})]}),(0,d.jsx)("div",{className:"p-4 sm:p-6",children:f})]})}function g({title:a,desc:b,right:c,children:e}){return(0,d.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 py-6 sm:py-8 space-y-6",children:[(0,d.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-end sm:justify-between gap-3 sm:gap-4",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h1",{className:"text-2xl font-semibold tracking-tight truncate",children:a}),b&&(0,d.jsx)("p",{className:"text-sm text-text-secondary mt-1",children:b})]}),c&&(0,d.jsx)("div",{className:"flex items-center gap-2 flex-wrap",children:c})]}),e]})}function h({title:a,desc:b}){return(0,d.jsxs)("div",{className:"card card-pad text-center py-16",children:[(0,d.jsx)("div",{className:"text-base font-medium text-text-secondary",children:a}),b&&(0,d.jsx)("div",{className:"text-sm text-text-tertiary mt-2",children:b})]})}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41255:(a,b,c)=>{Promise.resolve().then(c.bind(c,98392)),Promise.resolve().then(c.bind(c,87639)),Promise.resolve().then(c.bind(c,84701)),Promise.resolve().then(c.bind(c,29509))},41573:(a,b,c)=>{"use strict";c.d(b,{H:()=>g});var d=c(21124),e=c(38301),f=c(15514);function g({children:a,className:b}){let c=(0,e.useRef)(null),[g,h]=(0,e.useState)(!1),[i,j]=(0,e.useState)(!1);return(0,d.jsxs)("div",{className:(0,f.cn)("relative",b),children:[(0,d.jsx)("div",{ref:c,className:"overflow-x-auto",children:a}),(0,d.jsx)("div",{"aria-hidden":!0,className:(0,f.cn)("pointer-events-none absolute left-0 top-0 bottom-0 w-8 bg-gradient-to-r from-bg-surface to-transparent transition-opacity duration-150",g?"opacity-100":"opacity-0")}),(0,d.jsx)("div",{"aria-hidden":!0,className:(0,f.cn)("pointer-events-none absolute right-0 top-0 bottom-0 w-8 bg-gradient-to-l from-bg-surface to-transparent transition-opacity duration-150",i?"opacity-100":"opacity-0")})]})}},45362:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(82802),o=c(77533),p=c(45229),q=c(32822),r=c(261),s=c(26453),t=c(52474),u=c(26713),v=c(51356),w=c(62685),x=c(36225),y=c(63446),z=c(2762),A=c(45742),B=c(86439),C=c(81170),D=c.n(C),E=c(62506),F=c(91203),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H={children:["",{children:["settings",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,80027)),"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/settings/page.tsx"]}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,25088)),"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/layout.tsx"],error:[()=>Promise.resolve().then(c.bind(c,41697)),"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/error.tsx"],loading:[()=>Promise.resolve().then(c.bind(c,90391)),"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/loading.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,I=["/Users/zuopeng.cheng/personal/workspace/ccgauge/app/settings/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/settings/page",pathname:"/settings",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/settings/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
2
- see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},48161:a=>{"use strict";a.exports=require("node:os")},48507:(a,b,c)=>{"use strict";c.d(b,{ScanRefresh:()=>h});var d=c(21124),e=c(38301),f=c(42378),g=c(7475);function h(){let a=(0,g.kj)(),[b,c]=(0,e.useState)(!1),h=(0,f.useRouter)();async function i(){c(!0);try{await fetch("/api/scan",{method:"POST",cache:"no-store"}),h.refresh()}finally{c(!1)}}return(0,d.jsx)("button",{onClick:i,disabled:b,className:"btn",children:a(b?"settings.rescanning":"settings.rescan")})}},60505:(a,b,c)=>{"use strict";c.d(b,{PricingTable:()=>i});var d=c(21124),e=c(38301),f=c(15514),g=c(7475),h=c(41573);function i({rows:a}){let b=(0,g.kj)(),[c,i]=(0,e.useState)(""),[k,l]=(0,e.useState)("model"),[m,n]=(0,e.useState)("asc");function o(a){a===k?n("asc"===m?"desc":"asc"):(l(a),n("model"===a?"asc":"desc"))}let p=(0,e.useMemo)(()=>{let b=c.trim().toLowerCase();return b?a.filter(a=>a.model.toLowerCase().includes(b)||(0,f.P6)(a.model).toLowerCase().includes(b)):a},[a,c]),q=(0,e.useMemo)(()=>{let a=[...p];return a.sort((a,b)=>{if("model"===k){let c=a.model.localeCompare(b.model);return"asc"===m?c:-c}let c=a[k],d=b[k];return c===d?0:"asc"===m?c<d?-1:1:c<d?1:-1}),a},[p,k,m]);return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3 mb-3 flex-wrap",children:[(0,d.jsx)("input",{value:c,onChange:a=>i(a.target.value),placeholder:b("common.searchPlaceholder"),"aria-label":b("common.searchPlaceholder"),className:"px-3 py-1.5 text-sm rounded-button border border-border bg-bg-surface focus:outline-none focus:border-border-hi w-72 placeholder:text-text-tertiary text-text-primary"}),(0,d.jsx)("span",{className:"text-xs text-text-tertiary tabular-nums",children:b("common.rows",{count:q.length.toLocaleString()})})]}),(0,d.jsx)(h.H,{children:(0,d.jsxs)("table",{className:"w-full text-sm",children:[(0,d.jsx)("thead",{children:(0,d.jsxs)("tr",{className:"border-b border-border",children:[(0,d.jsx)(j,{sorted:"model"===k,dir:m,onClick:()=>o("model"),children:b("settings.pricing.col.model")}),(0,d.jsx)(j,{align:"right",sorted:"input"===k,dir:m,onClick:()=>o("input"),children:b("settings.pricing.col.input")}),(0,d.jsx)(j,{align:"right",sorted:"output"===k,dir:m,onClick:()=>o("output"),children:b("settings.pricing.col.output")}),(0,d.jsx)(j,{align:"right",sorted:"cacheCreation5m"===k,dir:m,onClick:()=>o("cacheCreation5m"),children:b("settings.pricing.col.write5m")}),(0,d.jsx)(j,{align:"right",sorted:"cacheCreation1h"===k,dir:m,onClick:()=>o("cacheCreation1h"),children:b("settings.pricing.col.write1h")}),(0,d.jsx)(j,{align:"right",sorted:"cacheRead"===k,dir:m,onClick:()=>o("cacheRead"),children:b("settings.pricing.col.read")})]})}),(0,d.jsxs)("tbody",{children:[q.map(a=>(0,d.jsxs)("tr",{className:"border-b border-border last:border-b-0 hover:bg-bg-surface-hi/30",children:[(0,d.jsx)("td",{className:"px-3 py-2 text-text-primary",title:a.model,children:(0,f.P6)(a.model)}),(0,d.jsx)("td",{className:"px-3 py-2 num-mono text-right",children:(0,f.az)(a.input)}),(0,d.jsx)("td",{className:"px-3 py-2 num-mono text-right",children:(0,f.az)(a.output)}),(0,d.jsx)("td",{className:"px-3 py-2 num-mono text-right text-text-secondary",children:(0,f.az)(a.cacheCreation5m)}),(0,d.jsx)("td",{className:"px-3 py-2 num-mono text-right text-text-secondary",children:(0,f.az)(a.cacheCreation1h)}),(0,d.jsx)("td",{className:"px-3 py-2 num-mono text-right text-success",children:(0,f.az)(a.cacheRead)})]},a.model)),0===q.length&&(0,d.jsx)("tr",{children:(0,d.jsx)("td",{colSpan:6,className:"px-3 py-8 text-center text-text-tertiary text-sm",children:b("common.noMatchingRows")})})]})]})})]})}function j({children:a,align:b="left",sorted:c,dir:e,onClick:g}){return(0,d.jsx)("th",{onClick:g,className:(0,f.cn)("px-3 py-2 text-xs font-medium text-text-tertiary uppercase tracking-wide whitespace-nowrap","right"===b?"text-right":"text-left",g&&"cursor-pointer hover:text-text-primary select-none"),children:(0,d.jsxs)("span",{className:"inline-flex items-center gap-1",children:[a,c&&(0,d.jsx)("span",{className:"text-[10px]",children:"asc"===e?"▲":"▼"})]})})}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},76760:a=>{"use strict";a.exports=require("node:path")},80027:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>q,dynamic:()=>o,revalidate:()=>p});var d=c(75338),e=c(27520),f=c(31519),g=c(71310),h=c(60704),i=c(37583),j=c(84701),k=c(87639),l=c(98392),m=c(29509),n=c(91719);let o="force-dynamic",p=0;async function q(){let a=await (0,n.yO)(),b=await (0,n.sG)(),c=await (0,e.So)(),o=(0,e.TF)(),p=await (0,h.Fw)(),q=(0,h.R0)(),s=(0,e.mo)(),t={claude:Object.entries(f.V).map(([a,b])=>({model:a,input:b.input,output:b.output,cacheCreation5m:b.cacheCreation5m,cacheCreation1h:b.cacheCreation1h,cacheRead:b.cacheRead})),codex:Object.entries(g._G).map(([a,b])=>({model:a,input:b.input,output:b.output,cacheCreation5m:b.cacheCreation5m,cacheCreation1h:b.cacheCreation1h,cacheRead:b.cacheRead}))};return(0,d.jsxs)(i.qK,{title:a("settings.title"),desc:a("settings.subtitle"),children:[(0,d.jsx)(i.wn,{title:a("settings.preferences.title"),children:(0,d.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-4 p-3 rounded-button border border-border",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"font-medium text-text-primary text-sm",children:a("settings.preferences.language")}),(0,d.jsx)("div",{className:"text-xs text-text-tertiary mt-0.5",children:"English / 中文"})]}),(0,d.jsx)(l.LanguageSwitcher,{})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between gap-4 p-3 rounded-button border border-border",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"font-medium text-text-primary text-sm",children:a("settings.preferences.theme")}),(0,d.jsxs)("div",{className:"text-xs text-text-tertiary mt-0.5",children:[a("settings.theme.light")," / ",a("settings.theme.dark")," / ",a("settings.theme.system")]})]}),(0,d.jsx)(m.ThemeSwitcher,{})]})]})}),(0,d.jsxs)(i.wn,{title:a("settings.dataSources.title"),desc:a("settings.dataSources.desc"),children:[(0,d.jsx)("div",{className:"space-y-5",children:o.map(({source:e,dirs:f})=>{let g=q.find(a=>a.id===e),h=p.includes(e),i=c.bySource.find(a=>a.source===e);return(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"inline-flex items-center justify-center text-[10px] w-5 h-5 rounded-full font-bold",style:{background:g.color.bg,color:g.color.fg},children:g.shortLabel}),(0,d.jsx)("span",{className:"text-sm font-semibold text-text-primary",children:g.displayName[b]}),h?(0,d.jsx)("span",{className:"pill bg-success/10 text-success border border-success/20 text-xs",children:a("settings.dataSources.active")}):(0,d.jsx)("span",{className:"pill bg-bg-surface-hi text-text-tertiary text-xs",children:a("settings.dataSources.notPresent")})]}),i&&h&&(0,d.jsxs)("span",{className:"text-xs text-text-tertiary num-mono",children:[i.filesScanned," files \xb7 ",i.assistantRecords.toLocaleString()," records"]})]}),(0,d.jsx)("div",{className:"space-y-1.5",children:f.map(b=>{let e=c.stats.scannedDirs.includes(b);return(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3 px-3 py-2 rounded-button border border-border bg-bg-surface-hi/30",children:[(0,d.jsx)("span",{className:"num-mono text-sm text-text-primary truncate",children:b}),(0,d.jsx)("span",{className:`pill text-xs whitespace-nowrap ${e?"bg-success/10 text-success border border-success/20":"bg-bg-surface-hi text-text-tertiary"}`,children:e?a("settings.dataSources.active"):a("settings.dataSources.notPresent")})]},b)})})]},e)})}),(0,d.jsx)("div",{className:"mt-4 text-xs text-text-secondary",children:a("settings.dataSources.envHint",{env1:"CCGAUGE_CONFIG_DIR / CLAUDE_CONFIG_DIR",env2:"CCGAUGE_CODEX_DIR / CODEX_HOME",appendix:"/projects \xb7 /sessions"})}),(0,d.jsx)("div",{className:"mt-4",children:(0,d.jsx)(j.ScanRefresh,{})})]}),(0,d.jsxs)(i.wn,{title:a("settings.scanStats.title"),desc:a("settings.indexer.desc"),children:[(0,d.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3 text-sm",children:[(0,d.jsx)(r,{label:a("settings.scanStats.files"),value:String(c.stats.filesScanned)}),(0,d.jsx)(r,{label:a("settings.scanStats.records"),value:c.stats.recordsParsed.toLocaleString()}),(0,d.jsx)(r,{label:a("settings.scanStats.assistant"),value:c.stats.assistantRecords.toLocaleString()}),(0,d.jsx)(r,{label:a("settings.indexer.lastIndexedAt"),value:s.lastIndexedAt?new Date(s.lastIndexedAt).toLocaleTimeString():"—"}),(0,d.jsx)(r,{label:a("settings.indexer.indexDuration"),value:null!=s.indexDurationMs?`${s.indexDurationMs} ms`:"—"}),(0,d.jsx)(r,{label:a("settings.indexer.watchers"),value:String(s.watchers)}),(0,d.jsx)(r,{label:a("settings.indexer.loadedFromDisk"),value:s.loadedFromDisk?a("common.yes"):a("common.no")}),(0,d.jsx)(r,{label:a("settings.indexer.status"),value:s.isIndexing?a("settings.indexer.indexing"):a("settings.indexer.idle")})]}),s.errors.length>0&&(0,d.jsxs)("div",{className:"mt-4 text-xs text-warning space-y-1",children:[(0,d.jsx)("div",{className:"font-medium",children:a("settings.indexer.recentErrors")}),(0,d.jsx)("ul",{className:"list-disc list-inside space-y-0.5 num-mono text-text-tertiary",children:s.errors.slice(-3).map((a,b)=>(0,d.jsx)("li",{className:"truncate",title:a,children:a},b))})]})]}),q.map(c=>{let e=t[c.id];return e&&0!==e.length?(0,d.jsx)(i.wn,{title:`${c.displayName[b]} \xb7 ${a("settings.pricing.title")}`,desc:c.costFootnoteKey?a(c.costFootnoteKey):a("settings.pricing.desc"),children:(0,d.jsx)(k.PricingTable,{rows:e})},c.id):null}),(0,d.jsx)(i.wn,{title:a("settings.about.title"),desc:a("settings.about.subtitle",{version:"0.3.1"}),children:(0,d.jsxs)("ul",{className:"text-sm text-text-secondary space-y-1.5",children:[(0,d.jsxs)("li",{children:["• ",a("settings.about.line1")]}),(0,d.jsxs)("li",{children:["• ",a("settings.about.line2")]}),(0,d.jsxs)("li",{children:["• ",a("settings.about.line3")]}),(0,d.jsxs)("li",{children:["• ",a("settings.about.line4")]})]})})]})}function r({label:a,value:b}){return(0,d.jsxs)("div",{className:"card card-pad py-4",children:[(0,d.jsx)("div",{className:"label",children:a}),(0,d.jsx)("div",{className:"num-mid mt-1",children:b})]})}},80481:a=>{"use strict";a.exports=require("node:readline")},80575:(a,b,c)=>{Promise.resolve().then(c.bind(c,95546)),Promise.resolve().then(c.bind(c,60505)),Promise.resolve().then(c.bind(c,48507)),Promise.resolve().then(c.bind(c,28607))},84701:(a,b,c)=>{"use strict";c.d(b,{ScanRefresh:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call ScanRefresh() from the server but ScanRefresh is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/scan-refresh.tsx","ScanRefresh")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87639:(a,b,c)=>{"use strict";c.d(b,{PricingTable:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call PricingTable() from the server but PricingTable is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/pricing-table.tsx","PricingTable")},98392:(a,b,c)=>{"use strict";c.d(b,{LanguageSwitcher:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call LanguageSwitcher() from the server but LanguageSwitcher is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/language-switcher.tsx","LanguageSwitcher")}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[331,802,153,993,716,520,426],()=>b(b.s=45362));module.exports=c})();
1
+ (()=>{var a={};a.id=662,a.ids=[662],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29509:(a,b,c)=>{"use strict";c.d(b,{ThemeSwitcher:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call ThemeSwitcher() from the server but ThemeSwitcher is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/theme-switcher.tsx","ThemeSwitcher")},33873:a=>{"use strict";a.exports=require("path")},37583:(a,b,c)=>{"use strict";c.d(b,{pp:()=>h,qK:()=>g,wn:()=>f});var d=c(75338),e=c(95012);function f({title:a,desc:b,right:c,children:f,className:g,inlineDesc:h,fillBody:i}){return(0,d.jsxs)("section",{className:(0,e.cn)("card overflow-hidden mt-3",i&&"flex flex-col",g),children:[(a||c)&&(0,d.jsxs)("header",{className:(0,e.cn)("section-header","flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3 sm:gap-4","px-5 sm:px-6 pt-4 sm:pt-5 pb-3 border-b border-border"),children:[(0,d.jsxs)("div",{className:(0,e.cn)("min-w-0",h&&"sm:flex sm:items-baseline sm:gap-2.5"),children:[a&&(0,d.jsx)("h2",{className:"text-[15px] font-semibold text-text-primary tracking-tight leading-tight",children:a}),b&&(0,d.jsx)("p",{className:(0,e.cn)("text-xs text-text-secondary leading-relaxed",h?"mt-1 sm:mt-0":"mt-1.5"),children:b})]}),c&&(0,d.jsx)("div",{className:"flex items-center gap-2 flex-wrap",children:c})]}),(0,d.jsx)("div",{className:(0,e.cn)("p-5 sm:p-6",i&&"flex-1 flex flex-col"),children:f})]})}function g({title:a,desc:b,right:c,children:e}){return(0,d.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 py-6 sm:py-8 space-y-5 sm:space-y-6",children:[(0,d.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-end sm:justify-between gap-3 sm:gap-4",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h1",{className:"text-2xl sm:text-[1.75rem] font-semibold tracking-tight leading-tight truncate",children:a}),b&&(0,d.jsx)("p",{className:"text-sm text-text-secondary mt-1.5 leading-relaxed",children:b})]}),c&&(0,d.jsx)("div",{className:"flex items-center gap-2 flex-wrap",children:c})]}),e]})}function h({title:a,desc:b,icon:c,action:e}){return(0,d.jsxs)("div",{className:"card text-center py-14 sm:py-16 px-6 flex flex-col items-center gap-3",children:[(0,d.jsx)("div",{className:"w-12 h-12 rounded-full bg-bg-surface-hi border border-border flex items-center justify-center text-text-tertiary",children:c??(0,d.jsx)(i,{})}),(0,d.jsx)("div",{className:"text-base font-medium text-text-primary",children:a}),b&&(0,d.jsx)("div",{className:"text-sm text-text-tertiary max-w-md leading-relaxed",children:b}),e&&(0,d.jsx)("div",{className:"mt-2",children:e})]})}function i(){return(0,d.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,d.jsx)("path",{d:"M9 9h.01M15 9h.01M9 15c1 1 2 1.5 3 1.5s2-.5 3-1.5"})]})}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41255:(a,b,c)=>{Promise.resolve().then(c.bind(c,98392)),Promise.resolve().then(c.bind(c,87639)),Promise.resolve().then(c.bind(c,84701)),Promise.resolve().then(c.bind(c,29509))},41573:(a,b,c)=>{"use strict";c.d(b,{H:()=>g});var d=c(21124),e=c(38301),f=c(15514);function g({children:a,className:b}){let c=(0,e.useRef)(null),[g,h]=(0,e.useState)(!1),[i,j]=(0,e.useState)(!1);return(0,d.jsxs)("div",{className:(0,f.cn)("relative",b),children:[(0,d.jsx)("div",{ref:c,className:"overflow-x-auto",children:a}),(0,d.jsx)("div",{"aria-hidden":!0,className:(0,f.cn)("pointer-events-none absolute left-0 top-0 bottom-0 w-8 bg-gradient-to-r from-bg-surface to-transparent transition-opacity duration-150",g?"opacity-100":"opacity-0")}),(0,d.jsx)("div",{"aria-hidden":!0,className:(0,f.cn)("pointer-events-none absolute right-0 top-0 bottom-0 w-8 bg-gradient-to-l from-bg-surface to-transparent transition-opacity duration-150",i?"opacity-100":"opacity-0")})]})}},45362:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(82802),o=c(77533),p=c(45229),q=c(32822),r=c(261),s=c(26453),t=c(52474),u=c(26713),v=c(51356),w=c(62685),x=c(36225),y=c(63446),z=c(2762),A=c(45742),B=c(86439),C=c(81170),D=c.n(C),E=c(62506),F=c(91203),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H={children:["",{children:["settings",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,80027)),"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/settings/page.tsx"]}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,25088)),"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/layout.tsx"],error:[()=>Promise.resolve().then(c.bind(c,41697)),"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/error.tsx"],loading:[()=>Promise.resolve().then(c.bind(c,90391)),"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/loading.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,I=["/Users/zuopeng.cheng/personal/workspace/ccgauge/app/settings/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/settings/page",pathname:"/settings",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/settings/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
2
+ see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},48161:a=>{"use strict";a.exports=require("node:os")},48507:(a,b,c)=>{"use strict";c.d(b,{ScanRefresh:()=>h});var d=c(21124),e=c(38301),f=c(42378),g=c(15519);function h(){let a=(0,g.kj)(),[b,c]=(0,e.useState)(!1),h=(0,f.useRouter)();async function i(){c(!0);try{await fetch("/api/scan",{method:"POST",cache:"no-store"}),h.refresh()}finally{c(!1)}}return(0,d.jsx)("button",{onClick:i,disabled:b,className:"btn",children:a(b?"settings.rescanning":"settings.rescan")})}},60505:(a,b,c)=>{"use strict";c.d(b,{PricingTable:()=>i});var d=c(21124),e=c(38301),f=c(15514),g=c(15519),h=c(41573);function i({rows:a}){let b=(0,g.kj)(),[c,i]=(0,e.useState)(""),[k,l]=(0,e.useState)("model"),[m,n]=(0,e.useState)("asc");function o(a){a===k?n("asc"===m?"desc":"asc"):(l(a),n("model"===a?"asc":"desc"))}let p=(0,e.useMemo)(()=>{let b=c.trim().toLowerCase();return b?a.filter(a=>a.model.toLowerCase().includes(b)||(0,f.P6)(a.model).toLowerCase().includes(b)):a},[a,c]),q=(0,e.useMemo)(()=>{let a=[...p];return a.sort((a,b)=>{if("model"===k){let c=a.model.localeCompare(b.model);return"asc"===m?c:-c}let c=a[k],d=b[k];return c===d?0:"asc"===m?c<d?-1:1:c<d?1:-1}),a},[p,k,m]);return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3 mb-3 flex-wrap",children:[(0,d.jsx)("input",{value:c,onChange:a=>i(a.target.value),placeholder:b("common.searchPlaceholder"),"aria-label":b("common.searchPlaceholder"),className:"px-3 py-1.5 text-sm rounded-button border border-border bg-bg-surface focus:outline-none focus:border-border-hi w-72 placeholder:text-text-tertiary text-text-primary"}),(0,d.jsx)("span",{className:"text-xs text-text-tertiary tabular-nums",children:b("common.rows",{count:q.length.toLocaleString()})})]}),(0,d.jsx)(h.H,{children:(0,d.jsxs)("table",{className:"w-full text-sm",children:[(0,d.jsx)("thead",{children:(0,d.jsxs)("tr",{className:"border-b border-border",children:[(0,d.jsx)(j,{sorted:"model"===k,dir:m,onClick:()=>o("model"),children:b("settings.pricing.col.model")}),(0,d.jsx)(j,{align:"right",sorted:"input"===k,dir:m,onClick:()=>o("input"),children:b("settings.pricing.col.input")}),(0,d.jsx)(j,{align:"right",sorted:"output"===k,dir:m,onClick:()=>o("output"),children:b("settings.pricing.col.output")}),(0,d.jsx)(j,{align:"right",sorted:"cacheCreation5m"===k,dir:m,onClick:()=>o("cacheCreation5m"),children:b("settings.pricing.col.write5m")}),(0,d.jsx)(j,{align:"right",sorted:"cacheCreation1h"===k,dir:m,onClick:()=>o("cacheCreation1h"),children:b("settings.pricing.col.write1h")}),(0,d.jsx)(j,{align:"right",sorted:"cacheRead"===k,dir:m,onClick:()=>o("cacheRead"),children:b("settings.pricing.col.read")})]})}),(0,d.jsxs)("tbody",{children:[q.map(a=>(0,d.jsxs)("tr",{className:"border-b border-border last:border-b-0 hover:bg-bg-surface-hi/30",children:[(0,d.jsx)("td",{className:"px-3 py-2 text-text-primary",title:a.model,children:(0,f.P6)(a.model)}),(0,d.jsx)("td",{className:"px-3 py-2 num-mono text-right",children:(0,f.az)(a.input)}),(0,d.jsx)("td",{className:"px-3 py-2 num-mono text-right",children:(0,f.az)(a.output)}),(0,d.jsx)("td",{className:"px-3 py-2 num-mono text-right text-text-secondary",children:(0,f.az)(a.cacheCreation5m)}),(0,d.jsx)("td",{className:"px-3 py-2 num-mono text-right text-text-secondary",children:(0,f.az)(a.cacheCreation1h)}),(0,d.jsx)("td",{className:"px-3 py-2 num-mono text-right text-success",children:(0,f.az)(a.cacheRead)})]},a.model)),0===q.length&&(0,d.jsx)("tr",{children:(0,d.jsx)("td",{colSpan:6,className:"px-3 py-8 text-center text-text-tertiary text-sm",children:b("common.noMatchingRows")})})]})]})})]})}function j({children:a,align:b="left",sorted:c,dir:e,onClick:g}){return(0,d.jsx)("th",{onClick:g,className:(0,f.cn)("px-3 py-2 text-xs font-medium text-text-tertiary uppercase tracking-wide whitespace-nowrap","right"===b?"text-right":"text-left",g&&"cursor-pointer hover:text-text-primary select-none"),children:(0,d.jsxs)("span",{className:"inline-flex items-center gap-1",children:[a,c&&(0,d.jsx)("span",{className:"text-[10px]",children:"asc"===e?"▲":"▼"})]})})}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},76760:a=>{"use strict";a.exports=require("node:path")},80027:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>q,dynamic:()=>o,revalidate:()=>p});var d=c(75338),e=c(27520),f=c(31519),g=c(71310),h=c(60704),i=c(37583),j=c(84701),k=c(87639),l=c(98392),m=c(29509),n=c(91719);let o="force-dynamic",p=0;async function q(){let a=await (0,n.yO)(),b=await (0,n.sG)(),c=await (0,e.So)(),o=(0,e.TF)(),p=await (0,h.Fw)(),q=(0,h.R0)(),s=(0,e.mo)(),t={claude:Object.entries(f.V).map(([a,b])=>({model:a,input:b.input,output:b.output,cacheCreation5m:b.cacheCreation5m,cacheCreation1h:b.cacheCreation1h,cacheRead:b.cacheRead})),codex:Object.entries(g._G).map(([a,b])=>({model:a,input:b.input,output:b.output,cacheCreation5m:b.cacheCreation5m,cacheCreation1h:b.cacheCreation1h,cacheRead:b.cacheRead}))};return(0,d.jsxs)(i.qK,{title:a("settings.title"),desc:a("settings.subtitle"),children:[(0,d.jsx)(i.wn,{title:a("settings.preferences.title"),children:(0,d.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-4 p-3 rounded-button border border-border",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"font-medium text-text-primary text-sm",children:a("settings.preferences.language")}),(0,d.jsx)("div",{className:"text-xs text-text-tertiary mt-0.5",children:"English / 中文"})]}),(0,d.jsx)(l.LanguageSwitcher,{})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between gap-4 p-3 rounded-button border border-border",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"font-medium text-text-primary text-sm",children:a("settings.preferences.theme")}),(0,d.jsxs)("div",{className:"text-xs text-text-tertiary mt-0.5",children:[a("settings.theme.light")," / ",a("settings.theme.dark")," / ",a("settings.theme.system")]})]}),(0,d.jsx)(m.ThemeSwitcher,{})]})]})}),(0,d.jsxs)(i.wn,{title:a("settings.dataSources.title"),desc:a("settings.dataSources.desc"),children:[(0,d.jsx)("div",{className:"space-y-5",children:o.map(({source:e,dirs:f})=>{let g=q.find(a=>a.id===e),h=p.includes(e),i=c.bySource.find(a=>a.source===e);return(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"inline-flex items-center justify-center text-[10px] w-5 h-5 rounded-full font-bold",style:{background:g.color.bg,color:g.color.fg},children:g.shortLabel}),(0,d.jsx)("span",{className:"text-sm font-semibold text-text-primary",children:g.displayName[b]}),h?(0,d.jsx)("span",{className:"pill bg-success/10 text-success border border-success/20 text-xs",children:a("settings.dataSources.active")}):(0,d.jsx)("span",{className:"pill bg-bg-surface-hi text-text-tertiary text-xs",children:a("settings.dataSources.notPresent")})]}),i&&h&&(0,d.jsxs)("span",{className:"text-xs text-text-tertiary num-mono",children:[i.filesScanned," files \xb7 ",i.assistantRecords.toLocaleString()," records"]})]}),(0,d.jsx)("div",{className:"space-y-1.5",children:f.map(b=>{let e=c.stats.scannedDirs.includes(b);return(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3 px-3 py-2 rounded-button border border-border bg-bg-surface-hi/30",children:[(0,d.jsx)("span",{className:"num-mono text-sm text-text-primary truncate",children:b}),(0,d.jsx)("span",{className:`pill text-xs whitespace-nowrap ${e?"bg-success/10 text-success border border-success/20":"bg-bg-surface-hi text-text-tertiary"}`,children:e?a("settings.dataSources.active"):a("settings.dataSources.notPresent")})]},b)})})]},e)})}),(0,d.jsx)("div",{className:"mt-4 text-xs text-text-secondary",children:a("settings.dataSources.envHint",{env1:"CCGAUGE_CONFIG_DIR / CLAUDE_CONFIG_DIR",env2:"CCGAUGE_CODEX_DIR / CODEX_HOME",appendix:"/projects \xb7 /sessions"})}),(0,d.jsx)("div",{className:"mt-4",children:(0,d.jsx)(j.ScanRefresh,{})})]}),(0,d.jsxs)(i.wn,{title:a("settings.scanStats.title"),desc:a("settings.indexer.desc"),children:[(0,d.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3 text-sm",children:[(0,d.jsx)(r,{label:a("settings.scanStats.files"),value:String(c.stats.filesScanned)}),(0,d.jsx)(r,{label:a("settings.scanStats.records"),value:c.stats.recordsParsed.toLocaleString()}),(0,d.jsx)(r,{label:a("settings.scanStats.assistant"),value:c.stats.assistantRecords.toLocaleString()}),(0,d.jsx)(r,{label:a("settings.indexer.lastIndexedAt"),value:s.lastIndexedAt?new Date(s.lastIndexedAt).toLocaleTimeString():"—"}),(0,d.jsx)(r,{label:a("settings.indexer.indexDuration"),value:null!=s.indexDurationMs?`${s.indexDurationMs} ms`:"—"}),(0,d.jsx)(r,{label:a("settings.indexer.watchers"),value:String(s.watchers)}),(0,d.jsx)(r,{label:a("settings.indexer.loadedFromDisk"),value:s.loadedFromDisk?a("common.yes"):a("common.no")}),(0,d.jsx)(r,{label:a("settings.indexer.status"),value:s.isIndexing?a("settings.indexer.indexing"):a("settings.indexer.idle")})]}),s.errors.length>0&&(0,d.jsxs)("div",{className:"mt-4 text-xs text-warning space-y-1",children:[(0,d.jsx)("div",{className:"font-medium",children:a("settings.indexer.recentErrors")}),(0,d.jsx)("ul",{className:"list-disc list-inside space-y-0.5 num-mono text-text-tertiary",children:s.errors.slice(-3).map((a,b)=>(0,d.jsx)("li",{className:"truncate",title:a,children:a},b))})]})]}),q.map(c=>{let e=t[c.id];return e&&0!==e.length?(0,d.jsx)(i.wn,{title:`${c.displayName[b]} \xb7 ${a("settings.pricing.title")}`,desc:c.costFootnoteKey?a(c.costFootnoteKey):a("settings.pricing.desc"),children:(0,d.jsx)(k.PricingTable,{rows:e})},c.id):null}),(0,d.jsx)(i.wn,{title:a("settings.about.title"),desc:a("settings.about.subtitle",{version:"1.0.0"}),children:(0,d.jsxs)("ul",{className:"text-sm text-text-secondary space-y-1.5",children:[(0,d.jsxs)("li",{children:["• ",a("settings.about.line1")]}),(0,d.jsxs)("li",{children:["• ",a("settings.about.line2")]}),(0,d.jsxs)("li",{children:["• ",a("settings.about.line3")]}),(0,d.jsxs)("li",{children:["• ",a("settings.about.line4")]})]})})]})}function r({label:a,value:b}){return(0,d.jsxs)("div",{className:"card card-pad py-4",children:[(0,d.jsx)("div",{className:"label",children:a}),(0,d.jsx)("div",{className:"num-mid mt-1",children:b})]})}},80481:a=>{"use strict";a.exports=require("node:readline")},80575:(a,b,c)=>{Promise.resolve().then(c.bind(c,95546)),Promise.resolve().then(c.bind(c,60505)),Promise.resolve().then(c.bind(c,48507)),Promise.resolve().then(c.bind(c,28607))},84701:(a,b,c)=>{"use strict";c.d(b,{ScanRefresh:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call ScanRefresh() from the server but ScanRefresh is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/scan-refresh.tsx","ScanRefresh")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87639:(a,b,c)=>{"use strict";c.d(b,{PricingTable:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call PricingTable() from the server but PricingTable is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/pricing-table.tsx","PricingTable")},98392:(a,b,c)=>{"use strict";c.d(b,{LanguageSwitcher:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call LanguageSwitcher() from the server but LanguageSwitcher is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/language-switcher.tsx","LanguageSwitcher")}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[331,802,153,993,716,520,426],()=>b(b.s=45362));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/settings/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"7152":{"*":{"id":"75268","name":"*","chunks":[],"async":false}},"8336":{"*":{"id":"39472","name":"*","chunks":[],"async":false}},"8608":{"*":{"id":"82140","name":"*","chunks":[],"async":false}},"8783":{"*":{"id":"60505","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"12112":{"*":{"id":"17290","name":"*","chunks":[],"async":false}},"14920":{"*":{"id":"32560","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"16633":{"*":{"id":"88253","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"21264":{"*":{"id":"95546","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25577":{"*":{"id":"99955","name":"*","chunks":[],"async":false}},"25763":{"*":{"id":"72267","name":"*","chunks":[],"async":false}},"38059":{"*":{"id":"24919","name":"*","chunks":[],"async":false}},"44703":{"*":{"id":"28607","name":"*","chunks":[],"async":false}},"49567":{"*":{"id":"77731","name":"*","chunks":[],"async":false}},"52619":{"*":{"id":"3991","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"57581":{"*":{"id":"88267","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"91107":{"*":{"id":"48507","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/globals.css":{"id":41290,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","619","static/chunks/619-f072ac750404f9da.js","454","static/chunks/454-d0e7d0fa6f643c41.js","177","static/chunks/app/layout-a6e30ba3a7f39737.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/nav.tsx":{"id":57581,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","619","static/chunks/619-f072ac750404f9da.js","454","static/chunks/454-d0e7d0fa6f643c41.js","177","static/chunks/app/layout-a6e30ba3a7f39737.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/providers.tsx":{"id":12112,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","619","static/chunks/619-f072ac750404f9da.js","454","static/chunks/454-d0e7d0fa6f643c41.js","177","static/chunks/app/layout-a6e30ba3a7f39737.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/error.tsx":{"id":49567,"name":"*","chunks":["454","static/chunks/454-d0e7d0fa6f643c41.js","39","static/chunks/app/error-89ee9e078058915d.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/block-progress.tsx":{"id":25763,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-3035d0b294080d0b.js","454","static/chunks/454-d0e7d0fa6f643c41.js","974","static/chunks/app/page-9347dfa20dabb24b.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/charts/model-bar-chart.tsx":{"id":8608,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-3035d0b294080d0b.js","454","static/chunks/454-d0e7d0fa6f643c41.js","974","static/chunks/app/page-9347dfa20dabb24b.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/charts/token-stack-chart.tsx":{"id":38059,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-3035d0b294080d0b.js","454","static/chunks/454-d0e7d0fa6f643c41.js","974","static/chunks/app/page-9347dfa20dabb24b.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/app-dir/link.js":{"id":52619,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/app-dir/link.js":{"id":52619,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/granularity-picker.tsx":{"id":16633,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/model-filter.tsx":{"id":8336,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/project-filter.tsx":{"id":14920,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/range-picker.tsx":{"id":7152,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/usage-table.tsx":{"id":25577,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/language-switcher.tsx":{"id":21264,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","454","static/chunks/454-d0e7d0fa6f643c41.js","662","static/chunks/app/settings/page-334168b522eac1b1.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/pricing-table.tsx":{"id":8783,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","454","static/chunks/454-d0e7d0fa6f643c41.js","662","static/chunks/app/settings/page-334168b522eac1b1.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/scan-refresh.tsx":{"id":91107,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","454","static/chunks/454-d0e7d0fa6f643c41.js","662","static/chunks/app/settings/page-334168b522eac1b1.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/theme-switcher.tsx":{"id":44703,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","454","static/chunks/454-d0e7d0fa6f643c41.js","662","static/chunks/app/settings/page-334168b522eac1b1.js"],"async":false}},"entryCSSFiles":{"/Users/zuopeng.cheng/personal/workspace/ccgauge/":[],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/layout":[{"inlined":false,"path":"static/css/2e5f36bcdf442844.css"}],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/error":[],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/loading":[],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/page":[],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/settings/page":[]},"rscModuleMapping":{"7152":{"*":{"id":"58258","name":"*","chunks":[],"async":false}},"8336":{"*":{"id":"36666","name":"*","chunks":[],"async":false}},"8608":{"*":{"id":"60798","name":"*","chunks":[],"async":false}},"8783":{"*":{"id":"87639","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"12112":{"*":{"id":"66664","name":"*","chunks":[],"async":false}},"14920":{"*":{"id":"21966","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"16633":{"*":{"id":"49863","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"21264":{"*":{"id":"98392","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25577":{"*":{"id":"21092","name":"*","chunks":[],"async":false}},"25763":{"*":{"id":"88622","name":"*","chunks":[],"async":false}},"38059":{"*":{"id":"89605","name":"*","chunks":[],"async":false}},"41290":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"44703":{"*":{"id":"29509","name":"*","chunks":[],"async":false}},"49567":{"*":{"id":"41697","name":"*","chunks":[],"async":false}},"52619":{"*":{"id":"65169","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"57581":{"*":{"id":"64285","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"91107":{"*":{"id":"84701","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/settings/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"5248":{"*":{"id":"39422","name":"*","chunks":[],"async":false}},"7152":{"*":{"id":"75268","name":"*","chunks":[],"async":false}},"8336":{"*":{"id":"39472","name":"*","chunks":[],"async":false}},"8608":{"*":{"id":"82140","name":"*","chunks":[],"async":false}},"8783":{"*":{"id":"60505","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"12112":{"*":{"id":"17290","name":"*","chunks":[],"async":false}},"14920":{"*":{"id":"32560","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"16633":{"*":{"id":"88253","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"21264":{"*":{"id":"95546","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25577":{"*":{"id":"99955","name":"*","chunks":[],"async":false}},"25763":{"*":{"id":"72267","name":"*","chunks":[],"async":false}},"38059":{"*":{"id":"24919","name":"*","chunks":[],"async":false}},"44703":{"*":{"id":"28607","name":"*","chunks":[],"async":false}},"49567":{"*":{"id":"77731","name":"*","chunks":[],"async":false}},"52619":{"*":{"id":"3991","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"57581":{"*":{"id":"88267","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"69612":{"*":{"id":"42629","name":"*","chunks":[],"async":false}},"77549":{"*":{"id":"24961","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"91107":{"*":{"id":"48507","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/globals.css":{"id":41290,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","619","static/chunks/619-f072ac750404f9da.js","148","static/chunks/148-557ee562aff993b1.js","177","static/chunks/app/layout-6c973d790f015707.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/nav.tsx":{"id":57581,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","619","static/chunks/619-f072ac750404f9da.js","148","static/chunks/148-557ee562aff993b1.js","177","static/chunks/app/layout-6c973d790f015707.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/providers.tsx":{"id":12112,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","619","static/chunks/619-f072ac750404f9da.js","148","static/chunks/148-557ee562aff993b1.js","177","static/chunks/app/layout-6c973d790f015707.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/error.tsx":{"id":49567,"name":"*","chunks":["148","static/chunks/148-557ee562aff993b1.js","39","static/chunks/app/error-3e48784f89c5ae8d.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/charts/token-stack-chart.tsx":{"id":38059,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-3035d0b294080d0b.js","148","static/chunks/148-557ee562aff993b1.js","974","static/chunks/app/page-6d87d7a8aa752100.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/app-dir/link.js":{"id":52619,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/app-dir/link.js":{"id":52619,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/auto-refresh.tsx":{"id":77549,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/granularity-picker.tsx":{"id":16633,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/model-filter.tsx":{"id":8336,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/overview-toggle.tsx":{"id":5248,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/project-filter.tsx":{"id":14920,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/range-picker.tsx":{"id":7152,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/usage-table.tsx":{"id":25577,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/activity-stats.tsx":{"id":69612,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-3035d0b294080d0b.js","148","static/chunks/148-557ee562aff993b1.js","974","static/chunks/app/page-6d87d7a8aa752100.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/block-progress.tsx":{"id":25763,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-3035d0b294080d0b.js","148","static/chunks/148-557ee562aff993b1.js","974","static/chunks/app/page-6d87d7a8aa752100.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/charts/model-bar-chart.tsx":{"id":8608,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-3035d0b294080d0b.js","148","static/chunks/148-557ee562aff993b1.js","974","static/chunks/app/page-6d87d7a8aa752100.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/language-switcher.tsx":{"id":21264,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","148","static/chunks/148-557ee562aff993b1.js","662","static/chunks/app/settings/page-d1af886a5c22af9b.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/pricing-table.tsx":{"id":8783,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","148","static/chunks/148-557ee562aff993b1.js","662","static/chunks/app/settings/page-d1af886a5c22af9b.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/scan-refresh.tsx":{"id":91107,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","148","static/chunks/148-557ee562aff993b1.js","662","static/chunks/app/settings/page-d1af886a5c22af9b.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/theme-switcher.tsx":{"id":44703,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","148","static/chunks/148-557ee562aff993b1.js","662","static/chunks/app/settings/page-d1af886a5c22af9b.js"],"async":false}},"entryCSSFiles":{"/Users/zuopeng.cheng/personal/workspace/ccgauge/":[],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/layout":[{"inlined":false,"path":"static/css/b07523b7c353538d.css"}],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/error":[],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/loading":[],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/page":[],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/settings/page":[]},"rscModuleMapping":{"5248":{"*":{"id":"68264","name":"*","chunks":[],"async":false}},"7152":{"*":{"id":"58258","name":"*","chunks":[],"async":false}},"8336":{"*":{"id":"36666","name":"*","chunks":[],"async":false}},"8608":{"*":{"id":"60798","name":"*","chunks":[],"async":false}},"8783":{"*":{"id":"87639","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"12112":{"*":{"id":"66664","name":"*","chunks":[],"async":false}},"14920":{"*":{"id":"21966","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"16633":{"*":{"id":"49863","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"21264":{"*":{"id":"98392","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25577":{"*":{"id":"21092","name":"*","chunks":[],"async":false}},"25763":{"*":{"id":"88622","name":"*","chunks":[],"async":false}},"38059":{"*":{"id":"89605","name":"*","chunks":[],"async":false}},"41290":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"44703":{"*":{"id":"29509","name":"*","chunks":[],"async":false}},"49567":{"*":{"id":"41697","name":"*","chunks":[],"async":false}},"52619":{"*":{"id":"65169","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"57581":{"*":{"id":"64285","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"69612":{"*":{"id":"4001","name":"*","chunks":[],"async":false}},"77549":{"*":{"id":"62035","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"91107":{"*":{"id":"84701","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
@@ -1,2 +1,2 @@
1
- (()=>{var a={};a.id=430,a.ids=[430],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},18710:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>y,dynamic:()=>w,revalidate:()=>x});var d=c(75338),e=c(27520),f=c(67803),g=c(37583),h=c(89605),i=c(21092),j=c(23158),k=c(58258),l=c(40236),m=c(49863),n=c(36666),o=c(21966),p=c(80489),q=c(95012),r=c(91719),s=c(55340),t=c(46796),u=c(60704),v=c(76559);let w="force-dynamic",x=0;async function y({searchParams:a}){let b=await a,c=await (0,t.ev)(b.source),w=b.range||"7d",x=b.gran||("1d"===w?"hour":"day"),y=b.models?b.models.split(",").filter(Boolean):[],z=b.projects?b.projects.split(",").filter(Boolean):[],A=(b.q||"").trim(),B=b.sort&&(0,v.Yb)(b.sort)?b.sort:"timestamp",C="asc"===b.dir?"asc":"desc",D=(0,v.PR)(b.page),E=await (0,r.yO)(),F=await (0,r.sG)(),G=await (0,e.So)(),H=(0,t.rY)(G.records,c),I=(0,t.rY)(G.userRecords,c),J=(0,l.C)(w),K={source:c,from:J.from,to:J.to,models:y.length?y:void 0,projects:z.length?z:void 0},L=(0,f.$M)(H,K),M=(0,f.a6)(H,x,K).map(a=>({label:a.label,input:a.inputTokens,output:a.outputTokens,cacheRead:a.cacheReadTokens,cacheCreation:a.cacheCreationTokens,cost:a.cost,requests:a.requests})),N=H.filter(a=>!(J.from&&a.timestamp<J.from.toISOString())&&(!y.length||!!y.includes(a.model))&&(!z.length||!!z.includes(a.cwd))),O=function(a,b,c){let d=a.slice();return d.sort((a,d)=>{let e="timestamp"===b?a.endTimestamp:a[b],f="timestamp"===b?d.endTimestamp:d[b];return e===f?0:("asc"===c?1:-1)*(e<f?-1:1)}),d}(function(a,b){if(!b)return a;let c=b.toLowerCase();return a.filter(a=>a.userText.toLowerCase().includes(c)||a.cwd.toLowerCase().includes(c)||a.sessionId.toLowerCase().includes(c)||a.models.some(a=>a.toLowerCase().includes(c))||a.toolNames.some(a=>a.toLowerCase().includes(c)))}((0,j.go)(N,I,G.parentMap),A),B,C),P=O.length,Q=Math.max(1,Math.ceil(P/v.QE)),R=Math.min(D,Q-1),S=O.slice(R*v.QE,(R+1)*v.QE),T=Array.from(new Set(H.map(a=>a.model))).sort(),U=Array.from(new Set(H.map(a=>a.cwd).filter(Boolean))).sort(),V=L.totalTokens>0?L.cacheReadTokens/Math.max(1,L.cacheReadTokens+L.inputTokens+L.cacheCreationTokens):0,W=(0,u.sO)(c),X=W.costFootnoteKey?E(W.costFootnoteKey):"";return(0,d.jsx)(g.qK,{title:E("usage.title"),desc:E("usage.subtitle",{count:P.toLocaleString()}),right:(0,d.jsx)(k.RangePicker,{defaultValue:"7d"}),children:0===H.length?(0,d.jsx)(g.pp,{title:E("common.empty.title"),desc:E("common.empty.desc")}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[(0,d.jsx)(p.n,{label:E("usage.kpi.totalTokens"),value:(0,q.jh)(L.totalTokens,F)}),(0,d.jsx)(p.n,{label:E("usage.kpi.totalCost"),value:(0,q.az)(L.cost),hint:X||void 0}),(0,d.jsx)(p.n,{label:E("usage.kpi.cacheSaved"),value:(0,q.az)(L.saved),accent:"success"}),(0,d.jsx)(p.n,{label:E("usage.kpi.cacheHit"),value:(0,q.R8)(V,0),accent:"success"})]}),(0,d.jsx)(g.wn,{title:E("usage.trend"),desc:E("usage.trend.gran",{gran:(0,s.nA)(F,`gran.${x}`)}),right:(0,d.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,d.jsx)(n.ModelFilter,{all:T,selected:y}),(0,d.jsx)(o.ProjectFilter,{all:U,selected:z}),(0,d.jsx)(m.GranularityPicker,{defaultValue:x})]}),children:(0,d.jsx)(h.TokenStackChart,{data:M})}),(0,d.jsx)(g.wn,{title:E("usage.requests.title"),desc:E("usage.requests.desc"),children:(0,d.jsx)(i.UsageTable,{rows:S,totalCount:P,page:R,pageCount:Q,sort:{key:B,dir:C},query:A})})]})})}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21092:(a,b,c)=>{"use strict";c.d(b,{UsageTable:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call UsageTable() from the server but UsageTable is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/usage-table.tsx","UsageTable")},21966:(a,b,c)=>{"use strict";c.d(b,{ProjectFilter:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call ProjectFilter() from the server but ProjectFilter is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/project-filter.tsx","ProjectFilter")},22920:(a,b,c)=>{Promise.resolve().then(c.bind(c,24919)),Promise.resolve().then(c.bind(c,88253)),Promise.resolve().then(c.bind(c,39472)),Promise.resolve().then(c.bind(c,32560)),Promise.resolve().then(c.bind(c,75268)),Promise.resolve().then(c.bind(c,99955))},23158:(a,b,c)=>{"use strict";c.d(b,{N0:()=>e,go:()=>f});var d=c(50160);function e(a){return a&&a.block?{hasBlock:!0,startTime:a.block.startTime,endTime:a.block.endTime,totalTokens:a.block.totalTokens,cost:a.block.cost,requests:a.block.requests,models:a.block.models,burnRatePerMin:a.burnRatePerMin,costPerMin:a.costPerMin,projectedTotal:a.projectedTotal,projectedCost:a.projectedCost}:{hasBlock:!1,totalTokens:0,cost:0,requests:0,models:[],burnRatePerMin:0,costPerMin:0,projectedTotal:0,projectedCost:0}}function f(a,b,c){let e=function(a,b,c){let d=new Map;for(let a of b)a.textPreview&&a.textPreview.trim()&&d.set(a.uuid,a.textPreview);let e=new Map,f=new Map;for(let b of a)e.set(b.uuid,function(a){let b=[],e=a,g=null,h=0,i=new Set;for(;e&&h++<5e3&&!i.has(e);){i.add(e);let a=f.get(e);if(a){g=a;break}if(b.push(e),d.has(e)){g=e;break}e=c[e]??null}for(let c of(g||(g=a),b))f.set(c,g);return g}(b.uuid));return e}(a,b,c),f=new Map;for(let a of b)f.set(a.uuid,a);let g=new Map,h=new Map;for(let b of a){let a=e.get(b.uuid)??b.uuid,c=(0,d.SI)(b),f={uuid:b.uuid,timestamp:b.timestamp,model:b.model,cwd:b.cwd,sessionId:b.sessionId,inputTokens:b.usage.input_tokens,outputTokens:b.usage.output_tokens,cacheReadTokens:b.usage.cache_read_input_tokens,cacheCreationTokens:b.usage.cache_creation_input_tokens,reasoningTokens:b.usage.reasoning_tokens??0,totalTokens:b.usage.input_tokens+b.usage.output_tokens+b.usage.cache_read_input_tokens+b.usage.cache_creation_input_tokens,cost:c.total,costInput:c.input,costOutput:c.output,costCacheRead:c.cacheRead,costCacheWrite:c.cacheCreation5m+c.cacheCreation1h,toolNames:b.toolNames},i=g.get(a);i?i.push(f):g.set(a,[f]),h.has(a)||h.set(a,b)}let i=[];for(let[a,b]of g){b.sort((a,b)=>a.timestamp<b.timestamp?-1:1);let c=b[0],d=b[b.length-1],e=new Set,g=new Set,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;for(let a of b){for(let b of(e.add(a.model),a.toolNames))g.add(b);h+=a.inputTokens,j+=a.outputTokens,k+=a.cacheReadTokens,l+=a.cacheCreationTokens,m+=a.reasoningTokens,n+=a.cost,o+=a.costInput,p+=a.costOutput,q+=a.costCacheRead,r+=a.costCacheWrite}let s=f.get(a);i.push({turnId:a,timestamp:c.timestamp,endTimestamp:d.timestamp,cwd:c.cwd,sessionId:c.sessionId,models:Array.from(e),callCount:b.length,inputTokens:h,outputTokens:j,cacheReadTokens:k,cacheCreationTokens:l,reasoningTokens:m,totalTokens:h+j+k+l,cost:n,costInput:o,costOutput:p,costCacheRead:q,costCacheWrite:r,toolNames:Array.from(g),userText:s?.textPreview??"",children:b})}return i.sort((a,b)=>a.endTimestamp<b.endTimestamp?1:-1),i}},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32560:(a,b,c)=>{"use strict";c.d(b,{ProjectFilter:()=>h});var d=c(21124),e=c(83426),f=c(15514),g=c(7475);function h({all:a,selected:b}){let c=(0,g.kj)();return(0,d.jsx)(e.K,{paramKey:"projects",all:a,selected:b,render:f.PJ,labelAllKey:"filter.projectAll",labelSingleKey:"filter.projectSingle",labelMultiKey:"filter.projectMulti",ariaLabel:c("filter.projectLabel")})}},32900:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(82802),o=c(77533),p=c(45229),q=c(32822),r=c(261),s=c(26453),t=c(52474),u=c(26713),v=c(51356),w=c(62685),x=c(36225),y=c(63446),z=c(2762),A=c(45742),B=c(86439),C=c(81170),D=c.n(C),E=c(62506),F=c(91203),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H={children:["",{children:["usage",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,18710)),"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/usage/page.tsx"]}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,25088)),"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/layout.tsx"],error:[()=>Promise.resolve().then(c.bind(c,41697)),"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/error.tsx"],loading:[()=>Promise.resolve().then(c.bind(c,90391)),"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/loading.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,I=["/Users/zuopeng.cheng/personal/workspace/ccgauge/app/usage/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/usage/page",pathname:"/usage",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/usage/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
2
- see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},33873:a=>{"use strict";a.exports=require("path")},36072:(a,b,c)=>{Promise.resolve().then(c.bind(c,89605)),Promise.resolve().then(c.bind(c,49863)),Promise.resolve().then(c.bind(c,36666)),Promise.resolve().then(c.bind(c,21966)),Promise.resolve().then(c.bind(c,58258)),Promise.resolve().then(c.bind(c,21092))},36666:(a,b,c)=>{"use strict";c.d(b,{ModelFilter:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call ModelFilter() from the server but ModelFilter is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/model-filter.tsx","ModelFilter")},39472:(a,b,c)=>{"use strict";c.d(b,{ModelFilter:()=>h});var d=c(21124),e=c(83426),f=c(15514),g=c(7475);function h({all:a,selected:b}){let c=(0,g.kj)();return(0,d.jsx)(e.K,{paramKey:"models",all:a,selected:b,render:f.P6,labelAllKey:"filter.modelAll",labelSingleKey:"filter.modelSingle",labelMultiKey:"filter.modelMulti",ariaLabel:c("filter.modelLabel")})}},40236:(a,b,c)=>{"use strict";function d(a){let b=new Date;if(!a||"all"===a)return{};if("1d"===a)return{from:new Date(b.getFullYear(),b.getMonth(),b.getDate())};let c=a.match(/^(\d+)([dwm])$/);if(!c)return{};let d=parseInt(c[1],10),e=c[2],f=new Date(b);return"d"===e?f.setDate(f.getDate()-d):"w"===e?f.setDate(f.getDate()-7*d):"m"===e&&f.setMonth(f.getMonth()-d),{from:f}}c.d(b,{C:()=>d})},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41573:(a,b,c)=>{"use strict";c.d(b,{H:()=>g});var d=c(21124),e=c(38301),f=c(15514);function g({children:a,className:b}){let c=(0,e.useRef)(null),[g,h]=(0,e.useState)(!1),[i,j]=(0,e.useState)(!1);return(0,d.jsxs)("div",{className:(0,f.cn)("relative",b),children:[(0,d.jsx)("div",{ref:c,className:"overflow-x-auto",children:a}),(0,d.jsx)("div",{"aria-hidden":!0,className:(0,f.cn)("pointer-events-none absolute left-0 top-0 bottom-0 w-8 bg-gradient-to-r from-bg-surface to-transparent transition-opacity duration-150",g?"opacity-100":"opacity-0")}),(0,d.jsx)("div",{"aria-hidden":!0,className:(0,f.cn)("pointer-events-none absolute right-0 top-0 bottom-0 w-8 bg-gradient-to-l from-bg-surface to-transparent transition-opacity duration-150",i?"opacity-100":"opacity-0")})]})}},48161:a=>{"use strict";a.exports=require("node:os")},49863:(a,b,c)=>{"use strict";c.d(b,{GranularityPicker:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call GranularityPicker() from the server but GranularityPicker is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/granularity-picker.tsx","GranularityPicker")},58258:(a,b,c)=>{"use strict";c.d(b,{RangePicker:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call RangePicker() from the server but RangePicker is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/range-picker.tsx","RangePicker")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},75268:(a,b,c)=>{"use strict";c.d(b,{RangePicker:()=>h});var d=c(21124),e=c(91377),f=c(7475);let g=[{value:"1d",tk:"range.today"},{value:"7d",tk:"range.7d"},{value:"30d",tk:"range.30d"},{value:"90d",tk:"range.90d"},{value:"all",tk:"range.all"}];function h({defaultValue:a="7d"}){let b=(0,f.kj)();return(0,d.jsx)(e.V,{paramKey:"range",defaultValue:a,options:g,ariaLabel:b("range.label")})}},76559:(a,b,c)=>{"use strict";c.d(b,{PR:()=>g,QE:()=>d,Yb:()=>f});let d=25,e=["timestamp","cost","inputTokens","outputTokens","cacheReadTokens","cacheCreationTokens","totalTokens","callCount"];function f(a){return"string"==typeof a&&e.includes(a)}function g(a){if(!a)return 0;let b=Number(a);return!Number.isFinite(b)||b<1?0:Math.floor(b)-1}},76760:a=>{"use strict";a.exports=require("node:path")},80481:a=>{"use strict";a.exports=require("node:readline")},83426:(a,b,c)=>{"use strict";c.d(b,{K:()=>i});var d=c(21124),e=c(42378),f=c(38301),g=c(15514),h=c(7475);function i({paramKey:a,all:b,selected:c,render:i=a=>a,labelAllKey:j,labelSingleKey:k,labelMultiKey:l,ariaLabel:m,searchThreshold:n=6}){let o,p=(0,e.useRouter)(),q=(0,e.usePathname)(),r=(0,e.useSearchParams)(),s=(0,h.kj)(),[t,u]=(0,f.useState)(!1),[v,w]=(0,f.useState)(""),[x,y]=(0,f.useState)(0),z=(0,f.useRef)(null),A=(0,f.useRef)(null),B=(0,f.useRef)(null),C=(0,f.useRef)(null),D=(0,f.useId)(),E=(0,f.useId)(),F=(0,f.useMemo)(()=>{let a=v.trim().toLowerCase();return a?b.filter(b=>i(b).toLowerCase().includes(a)||b.toLowerCase().includes(a)):b},[b,v,i]);function G(b){let c=new URLSearchParams(r.toString());0===b.size?c.delete(a):c.set(a,Array.from(b).join(","));let d=c.toString();p.push(d?`${q}?${d}`:q)}function H(a){let b=new Set(c);b.has(a)?b.delete(a):b.add(a),G(b)}function I(a){if("ArrowDown"===a.key)a.preventDefault(),y(a=>Math.min(F.length-1,a+1));else if("ArrowUp"===a.key)a.preventDefault(),y(a=>Math.max(0,a-1));else if("Enter"===a.key){a.preventDefault();let b=F[x];b&&H(b)}else"Home"===a.key?(a.preventDefault(),y(0)):"End"===a.key&&(a.preventDefault(),y(F.length-1))}o=0===c.length?s(j):1===c.length?s(k,{value:i(c[0])}):s(l,{count:c.length});let J=b.length>=n;return(0,d.jsxs)("div",{ref:z,className:"relative",children:[(0,d.jsxs)("button",{ref:A,id:D,onClick:()=>u(a=>!a),className:"btn focus:outline-none focus-visible:ring-2 focus-visible:ring-brand/40","aria-haspopup":"listbox","aria-expanded":t,"aria-controls":E,"aria-label":m,children:[o,(0,d.jsx)("span",{className:"text-text-tertiary ml-1","aria-hidden":!0,children:"▾"})]}),t&&(0,d.jsxs)("div",{id:E,role:"listbox","aria-multiselectable":"true","aria-labelledby":D,className:"absolute right-0 mt-1 w-72 card border-border-hi shadow-lg z-20 overflow-hidden",children:[c.length>0&&(0,d.jsxs)("div",{className:"px-2 pt-2 pb-1.5 border-b border-border flex flex-wrap gap-1 items-center",children:[c.slice(0,6).map(a=>(0,d.jsxs)("button",{onClick:()=>H(a),className:"inline-flex items-center gap-1 max-w-[160px] pl-2 pr-1.5 py-0.5 text-[11px] rounded-full bg-brand/10 text-brand border border-brand/20 hover:bg-brand/15","aria-label":`Remove ${i(a)}`,title:i(a),children:[(0,d.jsx)("span",{className:"truncate",children:i(a)}),(0,d.jsx)("span",{"aria-hidden":!0,className:"text-brand/70",children:"\xd7"})]},a)),c.length>6&&(0,d.jsxs)("span",{className:"text-[11px] text-text-tertiary px-1",children:["+",c.length-6]}),(0,d.jsx)("button",{onClick:function(){G(new Set)},className:"ml-auto text-[11px] text-text-tertiary hover:text-text-primary px-1.5 py-0.5",children:s("filter.clearAll")})]}),J&&(0,d.jsx)("div",{className:"p-2 border-b border-border",children:(0,d.jsx)("input",{ref:B,value:v,onChange:a=>{w(a.target.value),y(0)},onKeyDown:a=>{("ArrowDown"===a.key||"ArrowUp"===a.key||"Enter"===a.key||"Home"===a.key||"End"===a.key)&&I(a)},placeholder:s("common.searchPlaceholder"),className:"w-full px-2 py-1 text-sm rounded border border-border bg-bg-surface focus:outline-none focus:border-border-hi placeholder:text-text-tertiary text-text-primary"})}),(0,d.jsxs)("div",{ref:C,onKeyDown:I,className:"max-h-64 overflow-y-auto p-1 outline-none",tabIndex:-1,children:[0===F.length&&(0,d.jsx)("div",{className:"text-xs text-text-tertiary px-2 py-3 text-center",children:s("filter.noOptions")}),F.map((a,b)=>{let e=c.includes(a),f=b===x;return(0,d.jsxs)("button",{role:"option","aria-selected":e,onMouseEnter:()=>y(b),onClick:()=>H(a),className:(0,g.cn)("w-full text-left text-sm px-2 py-1.5 rounded flex items-center gap-2 transition-colors",f?"bg-bg-surface-hi":"hover:bg-bg-surface-hi",e&&"text-text-primary"),children:[(0,d.jsx)("span",{className:(0,g.cn)("w-3.5 h-3.5 rounded-sm border flex items-center justify-center text-[10px] flex-shrink-0",e?"bg-brand border-brand text-white":"border-border-hi"),"aria-hidden":!0,children:e?"✓":""}),(0,d.jsx)("span",{className:"truncate",children:i(a)})]},a)})]})]})]})}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},88253:(a,b,c)=>{"use strict";c.d(b,{GranularityPicker:()=>h});var d=c(21124),e=c(91377),f=c(7475);let g=[{value:"hour",tk:"gran.hour"},{value:"day",tk:"gran.day"},{value:"week",tk:"gran.week"},{value:"month",tk:"gran.month"}];function h({defaultValue:a="day"}){let b=(0,f.kj)();return(0,d.jsx)(e.V,{paramKey:"gran",defaultValue:a,options:g,ariaLabel:b("gran.label")})}},91377:(a,b,c)=>{"use strict";c.d(b,{V:()=>i});var d=c(21124),e=c(42378),f=c(38301),g=c(15514),h=c(7475);function i({paramKey:a,defaultValue:b,options:c,ariaLabel:i}){let j=(0,e.useRouter)(),k=(0,e.usePathname)(),l=(0,e.useSearchParams)(),m=(0,h.kj)(),n=l.get(a)||b,o=(0,f.useRef)(null);function p(b){let c=new URLSearchParams(l.toString());c.set(a,b),j.push(`${k}?${c.toString()}`)}return(0,d.jsx)("div",{ref:o,role:"radiogroup","aria-label":i,onKeyDown:function(a){if("ArrowLeft"!==a.key&&"ArrowRight"!==a.key)return;a.preventDefault();let b=(c.findIndex(a=>a.value===n)+("ArrowRight"===a.key?1:-1)+c.length)%c.length;p(c[b].value);let d=o.current?.querySelectorAll('button[role="radio"]');d?.[b]?.focus()},className:"inline-flex rounded-button border border-border bg-bg-surface p-0.5",children:c.map(a=>{let b=n===a.value;return(0,d.jsx)("button",{role:"radio","aria-checked":b,tabIndex:b?0:-1,onClick:()=>p(a.value),className:(0,g.cn)("px-2.5 py-1 text-xs font-medium rounded transition-colors","focus:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",b?"bg-bg-surface-hi text-text-primary":"text-text-secondary hover:text-text-primary"),children:m(a.tk)},a.value)})})}},99955:(a,b,c)=>{"use strict";c.d(b,{UsageTable:()=>n});var d=c(21124),e=c(38301),f=c(42378),g=c(15514),h=c(7475),i=c(23312);function j({children:a,content:b,className:c,panelClassName:f,align:h="left",delay:j=100,maxWidth:k=360}){let l=(0,e.useRef)(null),m=(0,e.useRef)(null),n=(0,e.useRef)(null),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(!1);function u(){n.current&&(window.clearTimeout(n.current),n.current=null),s||(m.current=window.setTimeout(()=>{let a=function(){let a,b=l.current;if(!b)return null;let c=b.getBoundingClientRect(),d=Math.min(k,window.innerWidth-16),e=window.innerHeight-c.bottom<200?"top":"bottom";return"right"===h?(a=Math.min(c.right,window.innerWidth-8))-d<8&&(a=d+8):(a=Math.max(c.left,8))+d>window.innerWidth-8&&(a=window.innerWidth-d-8),{x:a,y:"bottom"===e?c.bottom+8:c.top-8,placement:e,align:h}}();a&&(p(a),t(!0))},j))}function v(){m.current&&(window.clearTimeout(m.current),m.current=null),n.current=window.setTimeout(()=>t(!1),80)}return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{ref:l,onMouseEnter:u,onMouseLeave:v,onFocus:u,onBlur:v,className:(0,g.cn)("inline-block",c),children:a}),q&&o&&(0,i.createPortal)((0,d.jsx)("div",{onMouseEnter:()=>{n.current&&(window.clearTimeout(n.current),n.current=null)},onMouseLeave:v,style:{position:"fixed",left:"right"===o.align?void 0:o.x,right:"right"===o.align?window.innerWidth-o.x:void 0,top:"bottom"===o.placement?o.y:void 0,bottom:"top"===o.placement?window.innerHeight-o.y:void 0,maxWidth:k,transform:s?"translateY(0) scale(1)":"bottom"===o.placement?"translateY(-4px) scale(0.98)":"translateY(4px) scale(0.98)",opacity:+!!s,transitionProperty:"opacity, transform",transitionDuration:"120ms",transitionTimingFunction:"cubic-bezier(0.16, 1, 0.3, 1)",transformOrigin:"bottom"===o.placement?"top":"bottom",pointerEvents:s?"auto":"none"},className:(0,g.cn)("z-50 card border-border-hi shadow-xl rounded-button",f),children:b}),document.body)]})}var k=c(41573);let l=[{id:"time",labelKey:"usage.col.time",sortKey:"timestamp",defaultVisible:!0},{id:"prompt",labelKey:"usage.col.userMessage",defaultVisible:!0},{id:"model",labelKey:"usage.col.model",defaultVisible:!0},{id:"project",labelKey:"usage.col.project",defaultVisible:!0},{id:"session",labelKey:"usage.col.session",defaultVisible:!1},{id:"calls",labelKey:"usage.col.calls",align:"right",sortKey:"callCount",defaultVisible:!1},{id:"input",labelKey:"usage.col.input",align:"right",sortKey:"inputTokens",defaultVisible:!1},{id:"output",labelKey:"usage.col.output",align:"right",sortKey:"outputTokens",defaultVisible:!1},{id:"cacheRead",labelKey:"usage.col.cacheRead",align:"right",sortKey:"cacheReadTokens",defaultVisible:!1},{id:"cacheWrite",labelKey:"usage.col.cacheWrite",align:"right",sortKey:"cacheCreationTokens",defaultVisible:!1},{id:"total",labelKey:"usage.col.total",align:"right",sortKey:"totalTokens",defaultVisible:!0},{id:"cost",labelKey:"usage.col.cost",align:"right",sortKey:"cost",defaultVisible:!1},{id:"tools",labelKey:"usage.col.tools",defaultVisible:!1}];function m(){return l.reduce((a,b)=>(a[b.id]=b.defaultVisible,a),{})}function n({rows:a,totalCount:b,page:c,pageCount:g,sort:i,query:j}){let n=(0,h.kj)(),{locale:p}=(0,h.s9)(),r=(0,f.useRouter)(),s=(0,f.usePathname)(),t=(0,f.useSearchParams)(),[u,v]=(0,e.useState)(new Set),[w,x]=(0,e.useState)(m),[y,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)(j),C=(0,e.useRef)(null),D=(0,e.useRef)(null);function E(a){let b=new URLSearchParams(t.toString());for(let[c,d]of Object.entries(a))void 0===d||""===d?b.delete(c):b.set(c,d);let c=b.toString();r.push(c?`${s}?${c}`:s)}function F(a){E({page:a>0?String(a+1):void 0})}let G=l.filter(a=>w[a.id]),H=G.length+1,I=G.length;return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3 mb-3 flex-wrap",children:[(0,d.jsx)("input",{value:A,onChange:a=>{var b;B(b=a.target.value),D.current&&window.clearTimeout(D.current),D.current=window.setTimeout(()=>{E({q:b.trim()||void 0,page:void 0})},300)},placeholder:n("common.searchPlaceholder"),className:"px-3 py-1.5 text-sm rounded-button border border-border bg-bg-surface focus:outline-none focus:border-border-hi w-72 placeholder:text-text-tertiary text-text-primary"}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("span",{className:"text-xs text-text-tertiary tabular-nums",children:n("common.rows",{count:b.toLocaleString()})}),(0,d.jsxs)("div",{ref:C,className:"relative",children:[(0,d.jsxs)("button",{onClick:()=>z(a=>!a),className:"btn",children:[n("usage.columns.button"),(0,d.jsx)("span",{className:"ml-1 text-text-tertiary tabular-nums",children:I})]}),y&&(0,d.jsxs)("div",{className:"absolute right-0 mt-1 w-56 card border-border-hi shadow-lg p-2 z-30",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-1.5 pb-1.5 mb-1 border-b border-border",children:[(0,d.jsx)("span",{className:"text-xs text-text-tertiary uppercase tracking-wide",children:n("usage.columns.title")}),(0,d.jsx)("button",{onClick:()=>x(m()),className:"text-xs text-text-tertiary hover:text-text-primary",children:n("usage.columns.reset")})]}),(0,d.jsx)("div",{className:"max-h-72 overflow-auto",children:l.map(a=>(0,d.jsxs)("label",{className:"flex items-center gap-2 px-1.5 py-1.5 text-sm rounded hover:bg-bg-surface-hi cursor-pointer",children:[(0,d.jsx)("input",{type:"checkbox",checked:!!w[a.id],onChange:b=>x(c=>({...c,[a.id]:b.target.checked})),className:"accent-brand"}),(0,d.jsx)("span",{className:"text-text-secondary",children:n(a.labelKey)})]},a.id))})]})]}),(0,d.jsx)("button",{onClick:function(){let a=new URLSearchParams(t.toString());window.location.href=`/api/export/usage?${a.toString()}`},className:"btn",children:n("common.exportCsv")})]})]}),(0,d.jsx)("div",{className:"card overflow-hidden",children:(0,d.jsx)(k.H,{children:(0,d.jsxs)("table",{className:"w-full text-sm",children:[(0,d.jsx)("thead",{children:(0,d.jsxs)("tr",{className:"border-b border-border bg-bg-surface-hi/30",children:[(0,d.jsx)(q,{children:(0,d.jsx)("span",{className:"sr-only",children:"expand"})}),G.map(a=>(0,d.jsx)(q,{align:a.align,sorted:!!a.sortKey&&i.key===a.sortKey,dir:i.dir,onClick:a.sortKey?()=>{var b;let c;return b=a.sortKey,c="desc",void(i.key===b&&(c="asc"===i.dir?"desc":"asc"),E({sort:"timestamp"===b?void 0:b,dir:"desc"===c?void 0:c,page:void 0}))}:void 0,children:n(a.labelKey)},a.id))]})}),(0,d.jsxs)("tbody",{children:[a.map(a=>{let b=u.has(a.turnId),c=a.userText.trim()||n("usage.turn.noPrompt");return(0,d.jsx)(o,{turn:a,isOpen:b,onToggle:()=>{var b;return b=a.turnId,void v(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},userText:c,expandLabel:n("usage.turn.expand"),collapseLabel:n("usage.turn.collapse"),activeColumns:G,locale:p,t:n},a.turnId)}),0===a.length&&(0,d.jsx)("tr",{children:(0,d.jsx)("td",{colSpan:H,className:"px-3 py-8 text-center text-text-tertiary text-sm",children:n("common.noMatchingRows")})})]})]})})}),g>1&&(0,d.jsxs)("div",{className:"flex items-center justify-between mt-3 text-xs text-text-secondary",children:[(0,d.jsx)("span",{children:n("common.pageOf",{page:c+1,total:g})}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("button",{onClick:()=>F(0),disabled:0===c,className:"btn-ghost disabled:opacity-40",children:n("common.first")}),(0,d.jsx)("button",{onClick:()=>F(c-1),disabled:0===c,className:"btn-ghost disabled:opacity-40",children:n("common.prev")}),(0,d.jsx)("button",{onClick:()=>F(c+1),disabled:c>=g-1,className:"btn-ghost disabled:opacity-40",children:n("common.next")}),(0,d.jsx)("button",{onClick:()=>F(g-1),disabled:c>=g-1,className:"btn-ghost disabled:opacity-40",children:n("common.last")})]})]})]})}function o({turn:a,isOpen:b,onToggle:c,userText:e,expandLabel:f,collapseLabel:h,activeColumns:i,locale:k,t:l}){let m=1===a.models.length?(0,g.P6)(a.models[0]):`${(0,g.P6)(a.models[0])} +${a.models.length-1}`,n=a.toolNames.length?a.toolNames.slice(0,3).join(", ")+(a.toolNames.length>3?"…":""):"—";return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("tr",{className:"border-b border-border last:border-b-0 hover:bg-bg-surface-hi/40 cursor-pointer",onClick:c,children:[(0,d.jsx)("td",{className:"px-2 py-2 text-text-tertiary w-6 text-center select-none",children:(0,d.jsx)("span",{title:b?h:f,className:"inline-block w-4",children:b?"▾":"▸"})}),i.map(b=>(0,d.jsx)("td",{className:(0,g.cn)("px-3 py-2","right"===b.align?"text-right":"text-left"),children:function(a,b,c,e,f,h,i){switch(a){case"time":return(0,d.jsx)("span",{className:"num-mono text-text-secondary whitespace-nowrap text-xs",children:(0,g.r6)(b.endTimestamp)});case"prompt":return(0,d.jsx)(j,{maxWidth:460,panelClassName:"p-3 text-sm text-text-secondary leading-relaxed",content:(0,d.jsx)("div",{className:"whitespace-pre-wrap break-words",children:f}),children:(0,d.jsx)("span",{className:"block text-text-secondary truncate max-w-[280px]",children:f})});case"model":return(0,d.jsx)("span",{className:"text-text-primary whitespace-nowrap",children:c});case"project":return(0,d.jsx)("span",{className:"block text-text-secondary truncate max-w-[160px]",title:b.cwd,children:(0,g.PJ)(b.cwd)});case"session":return(0,d.jsx)("span",{className:"num-mono text-text-tertiary text-xs",title:b.sessionId,children:(0,g.BC)(b.sessionId)});case"calls":return(0,d.jsx)("span",{className:"num-mono text-text-secondary",children:b.callCount});case"input":return(0,d.jsx)("span",{className:"num-mono text-text-secondary",children:(0,g.jh)(b.inputTokens,h)});case"output":return(0,d.jsx)("span",{className:"num-mono text-text-secondary",children:(0,g.jh)(b.outputTokens,h)});case"cacheRead":return(0,d.jsx)("span",{className:"num-mono text-success",children:(0,g.jh)(b.cacheReadTokens,h)});case"cacheWrite":return(0,d.jsx)("span",{className:"num-mono text-text-secondary",children:(0,g.jh)(b.cacheCreationTokens,h)});case"total":return(0,d.jsx)(j,{align:"right",maxWidth:300,panelClassName:"p-0 overflow-hidden",content:(0,d.jsx)(p,{row:b,locale:h,t:i}),children:(0,d.jsx)("span",{className:"num-mono text-text-primary font-medium border-b border-dashed border-border hover:border-text-tertiary cursor-help",children:(0,g.jh)(b.totalTokens,h)})});case"cost":return(0,d.jsx)("span",{className:"num-mono text-text-primary font-medium",children:(0,g.l7)(b.cost)});case"tools":return(0,d.jsx)("span",{className:"block text-xs text-text-tertiary truncate max-w-[160px]",title:b.toolNames.join(", "),children:e})}}(b.id,a,m,n,e,k,l)},b.id))]}),b&&a.children.map(a=>(0,d.jsxs)("tr",{className:"border-b border-border last:border-b-0 bg-bg-surface-hi/20 text-text-tertiary",children:[(0,d.jsx)("td",{className:"px-2 py-1.5 w-6"}),i.map(b=>(0,d.jsx)("td",{className:(0,g.cn)("px-3 py-1.5","right"===b.align?"text-right":"text-left"),children:function(a,b,c,e){switch(a){case"time":return(0,d.jsx)("span",{className:"num-mono whitespace-nowrap pl-5 text-xs",children:(0,g.r6)(b.timestamp)});case"prompt":return(0,d.jsx)("span",{className:"text-xs",children:"—"});case"model":return(0,d.jsx)("span",{className:"whitespace-nowrap",children:(0,g.P6)(b.model)});case"project":return(0,d.jsx)("span",{className:"block truncate max-w-[160px]",title:b.cwd,children:(0,g.PJ)(b.cwd)});case"session":return(0,d.jsx)("span",{className:"num-mono text-xs",title:b.sessionId,children:(0,g.BC)(b.sessionId)});case"calls":return(0,d.jsx)("span",{className:"num-mono",children:"1"});case"input":return(0,d.jsx)("span",{className:"num-mono",children:(0,g.jh)(b.inputTokens,c)});case"output":return(0,d.jsx)("span",{className:"num-mono",children:(0,g.jh)(b.outputTokens,c)});case"cacheRead":return(0,d.jsx)("span",{className:"num-mono text-success",children:(0,g.jh)(b.cacheReadTokens,c)});case"cacheWrite":return(0,d.jsx)("span",{className:"num-mono",children:(0,g.jh)(b.cacheCreationTokens,c)});case"total":return(0,d.jsx)(j,{align:"right",maxWidth:300,panelClassName:"p-0 overflow-hidden",content:(0,d.jsx)(p,{row:b,locale:c,t:e}),children:(0,d.jsx)("span",{className:"num-mono border-b border-dashed border-border/60 hover:border-text-tertiary cursor-help",children:(0,g.jh)(b.totalTokens,c)})});case"cost":return(0,d.jsx)("span",{className:"num-mono",children:(0,g.l7)(b.cost)});case"tools":return(0,d.jsx)("span",{className:"block text-xs truncate max-w-[160px]",title:b.toolNames.join(", "),children:b.toolNames.length?b.toolNames.join(", "):"—"})}}(b.id,a,k,l)},b.id))]},a.uuid))]})}function p({row:a,locale:b,t:c}){let f=[{key:"input",label:c("usage.col.input"),tokens:a.inputTokens,cost:a.costInput,tone:"text-text-primary",dot:"bg-chart-input"},{key:"output",label:c("usage.col.output"),tokens:a.outputTokens,cost:a.costOutput,tone:"text-text-primary",dot:"bg-chart-output"},{key:"cacheRead",label:c("usage.col.cacheRead"),tokens:a.cacheReadTokens,cost:a.costCacheRead,tone:"text-success",dot:"bg-chart-cache-read"},{key:"cacheWrite",label:c("usage.col.cacheWrite"),tokens:a.cacheCreationTokens,cost:a.costCacheWrite,tone:"text-text-primary",dot:"bg-chart-cache-create"}];return(0,d.jsxs)("div",{className:"text-xs",children:[(0,d.jsx)("div",{className:"px-3 py-2 border-b border-border bg-bg-surface-hi/40 text-text-tertiary uppercase tracking-wide font-medium",children:c("usage.breakdown.title")}),(0,d.jsxs)("div",{className:"px-3 py-2",children:[(0,d.jsxs)("div",{className:"grid grid-cols-[auto_1fr_auto] gap-x-3 gap-y-1.5 items-center",children:[(0,d.jsx)("span",{}),(0,d.jsx)("span",{className:"text-text-tertiary text-[10px] uppercase tracking-wide text-right",children:c("usage.breakdown.headerTokens")}),(0,d.jsx)("span",{className:"text-text-tertiary text-[10px] uppercase tracking-wide text-right",children:c("usage.breakdown.headerCost")}),f.map(f=>(0,d.jsxs)(e.Fragment,{children:[(0,d.jsxs)("span",{className:"inline-flex items-center gap-2 text-text-secondary",children:[(0,d.jsx)("span",{className:(0,g.cn)("w-2 h-2 rounded-sm",f.dot)}),f.label]}),(0,d.jsx)("span",{className:(0,g.cn)("num-mono text-right",f.tone),children:(0,g.jh)(f.tokens,b)}),(0,d.jsx)("span",{className:"num-mono text-right text-text-secondary",children:(0,g.l7)(f.cost)}),"output"===f.key&&a.reasoningTokens>0&&(0,d.jsxs)(e.Fragment,{children:[(0,d.jsxs)("span",{className:"inline-flex items-center gap-2 text-text-tertiary pl-4 text-[11px]",children:[(0,d.jsx)("span",{className:"text-text-tertiary",children:"↳"}),c("usage.breakdown.reasoning")]}),(0,d.jsx)("span",{className:"num-mono text-right text-text-tertiary text-[11px]",children:(0,g.jh)(a.reasoningTokens,b)}),(0,d.jsx)("span",{className:"text-right text-text-tertiary text-[11px]",children:c("usage.breakdown.reasoningNote")})]},"reasoning-detail")]},f.key))]}),(0,d.jsxs)("div",{className:"mt-2 pt-2 border-t border-border grid grid-cols-[auto_1fr_auto] gap-x-3 items-center",children:[(0,d.jsx)("span",{className:"text-text-secondary font-medium",children:c("usage.breakdown.total")}),(0,d.jsx)("span",{className:"num-mono text-right text-text-primary font-medium",children:(0,g.jh)(a.totalTokens,b)}),(0,d.jsx)("span",{className:"num-mono text-right text-text-primary font-medium",children:(0,g.l7)(a.cost)})]})]})]})}function q({children:a,align:b="left",sorted:c,dir:e,onClick:f}){return(0,d.jsx)("th",{className:(0,g.cn)("px-3 py-2 text-xs font-medium text-text-tertiary uppercase tracking-wide whitespace-nowrap","right"===b?"text-right":"text-left",f&&"cursor-pointer hover:text-text-primary select-none"),onClick:f,children:(0,d.jsxs)("span",{className:"inline-flex items-center gap-1",children:[a,c&&(0,d.jsx)("span",{className:"text-[10px]",children:"asc"===e?"▲":"▼"})]})})}}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[331,802,153,993,517,716,520,426,775],()=>b(b.s=32900));module.exports=c})();
1
+ (()=>{var a={};a.id=430,a.ids=[430],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5693:(a,b,c)=>{"use strict";c.d(b,{N0:()=>k,go:()=>l});var d=c(50160),e=c(73024),f=c(76760),g=c(95012);let h=new Map,i=/^(.+?)[/\\]\.git[/\\]worktrees[/\\]([^/\\]+)[/\\]?$/;function j(a){let b=h.get(a);if(b)return b.label;let c=function(a){let b=(0,g.PJ)(a);if(!a)return{label:b,isWorktree:!1,mainName:b,worktreeName:""};try{let c=`${a}/.git`;if(!(0,e.statSync)(c).isFile())return{label:b,isWorktree:!1,mainName:b,worktreeName:""};let d=(0,e.readFileSync)(c,"utf8").trim().split(/\r?\n/,1)[0]??"",g=/^gitdir:\s*(.+)$/.exec(d);if(!g)return{label:b,isWorktree:!1,mainName:b,worktreeName:""};let h=g[1].trim(),j=i.exec(h);if(!j)return{label:b,isWorktree:!1,mainName:b,worktreeName:""};let k=j[1],l=j[2],m=(0,f.basename)(k)||k;return{label:`${m} (${l})`,isWorktree:!0,mainName:m,worktreeName:l}}catch{return{label:b,isWorktree:!1,mainName:b,worktreeName:""}}}(a);return h.set(a,c),c.label}function k(a){return a&&a.block?{hasBlock:!0,startTime:a.block.startTime,endTime:a.block.endTime,totalTokens:a.block.totalTokens,cost:a.block.cost,requests:a.block.requests,models:a.block.models,burnRatePerMin:a.burnRatePerMin,costPerMin:a.costPerMin,projectedTotal:a.projectedTotal,projectedCost:a.projectedCost}:{hasBlock:!1,totalTokens:0,cost:0,requests:0,models:[],burnRatePerMin:0,costPerMin:0,projectedTotal:0,projectedCost:0}}function l(a,b,c){let e=function(a,b,c){let d=new Map;for(let a of b)!a.isSynthetic&&a.textPreview&&a.textPreview.trim()&&d.set(a.uuid,a.textPreview);let e=new Map,f=new Map;for(let b of a)e.set(b.uuid,function(a){let b=[],e=a,g=null,h=0,i=new Set;for(;e&&h++<5e3&&!i.has(e);){i.add(e);let a=f.get(e);if(a){g=a;break}if(b.push(e),d.has(e)){g=e;break}e=c[e]??null}for(let c of(g||(g=a),b))f.set(c,g);return g}(b.uuid));return e}(a,b,c),f=new Map;for(let a of b)f.set(a.uuid,a);let g=new Map,h=new Map,i=new Map;for(let b of a){let a=e.get(b.uuid)??b.uuid,k=(0,d.SI)(b),l=function(a){let b=g.get(a);if(void 0!==b)return b;let d=[],e=a,h="",i=new Set;for(;e&&!i.has(e);){i.add(e);let a=g.get(e);if(void 0!==a){h=a;break}d.push(e);let b=f.get(e);if(b&&b.textPreview&&b.textPreview.trim()){h=b.textPreview;break}e=c[e]??null}for(let a of d)g.set(a,h);return h}(b.uuid),m={uuid:b.uuid,timestamp:b.timestamp,source:b.source,model:b.model,cwd:b.cwd,projectLabel:j(b.cwd),sessionId:b.sessionId,inputTokens:b.usage.input_tokens,outputTokens:b.usage.output_tokens,cacheReadTokens:b.usage.cache_read_input_tokens,cacheCreationTokens:b.usage.cache_creation_input_tokens,reasoningTokens:b.usage.reasoning_tokens??0,totalTokens:b.usage.input_tokens+b.usage.output_tokens+b.usage.cache_read_input_tokens+b.usage.cache_creation_input_tokens,cost:k.total,costInput:k.input,costOutput:k.output,costCacheRead:k.cacheRead,costCacheWrite:k.cacheCreation5m+k.cacheCreation1h,toolNames:b.toolNames,effort:b.effort,directPrompt:l||void 0},n=h.get(a);n?n.push(m):h.set(a,[m]),i.has(a)||i.set(a,b)}let k=[];for(let[a,b]of h){b.sort((a,b)=>a.timestamp<b.timestamp?-1:1);let c=b[0],d=b[b.length-1],e=new Set,g=new Set,h=new Set,i=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;for(let a of b){for(let b of(e.add(a.model),a.toolNames))g.add(b);a.effort&&h.add(a.effort),i+=a.inputTokens,l+=a.outputTokens,m+=a.cacheReadTokens,n+=a.cacheCreationTokens,o+=a.reasoningTokens,p+=a.cost,q+=a.costInput,r+=a.costOutput,s+=a.costCacheRead,t+=a.costCacheWrite}let u=f.get(a);k.push({turnId:a,timestamp:c.timestamp,endTimestamp:d.timestamp,cwd:c.cwd,projectLabel:j(c.cwd),sessionId:c.sessionId,models:Array.from(e),callCount:b.length,inputTokens:i,outputTokens:l,cacheReadTokens:m,cacheCreationTokens:n,reasoningTokens:o,totalTokens:i+l+m+n,cost:p,costInput:q,costOutput:r,costCacheRead:s,costCacheWrite:t,toolNames:Array.from(g),efforts:Array.from(h),userText:u?.textPreview??"",children:b})}return k.sort((a,b)=>a.endTimestamp<b.endTimestamp?1:-1),k}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},18710:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>A,dynamic:()=>y,revalidate:()=>z});var d=c(75338),e=c(27520),f=c(67803),g=c(37583),h=c(89605),i=c(21092),j=c(5693),k=c(58258),l=c(40236),m=c(49863),n=c(36666),o=c(21966),p=c(80489),q=c(95012),r=c(91719),s=c(55340),t=c(46796),u=c(60704),v=c(62035),w=c(68264),x=c(76559);let y="force-dynamic",z=0;async function A({searchParams:a}){let b=await a,c=await (0,t.ev)(b.source),y=(0,l.UF)(b.range,"7d"),z=(0,f.bo)(b.gran)?b.gran:"1d"===y?"hour":"day",A=b.models?b.models.split(",").filter(Boolean):[],B=b.projects?b.projects.split(",").filter(Boolean):[],C=(b.q||"").trim(),D=b.sort&&(0,x.Yb)(b.sort)?b.sort:"timestamp",E="asc"===b.dir?"asc":"desc",F=(0,x.PR)(b.page),G=await (0,r.yO)(),H=await (0,r.sG)(),I=await (0,e.So)(),J=(0,t.rY)(I.records,c),K=(0,t.rY)(I.userRecords,c),L=(0,l.Cw)(y),M={source:c,from:L.from,to:L.to,models:A.length?A:void 0,projects:B.length?B:void 0},N=(0,f.$M)(J,M),O=(0,f.a6)(J,z,M).map(a=>({label:a.label,input:a.inputTokens,output:a.outputTokens,cacheRead:a.cacheReadTokens,cacheCreation:a.cacheCreationTokens,cost:a.cost,requests:a.requests})),P=J.filter(a=>!(L.from&&a.timestamp<L.from.toISOString())&&(!A.length||!!A.includes(a.model))&&(!B.length||!!B.includes(a.cwd))),Q=function(a,b,c){let d=a.slice();return d.sort((a,d)=>{let e="timestamp"===b?a.endTimestamp:a[b],f="timestamp"===b?d.endTimestamp:d[b];return e===f?0:("asc"===c?1:-1)*(e<f?-1:1)}),d}(function(a,b){if(!b)return a;let c=b.toLowerCase();return a.filter(a=>a.userText.toLowerCase().includes(c)||a.cwd.toLowerCase().includes(c)||a.sessionId.toLowerCase().includes(c)||a.models.some(a=>a.toLowerCase().includes(c))||a.toolNames.some(a=>a.toLowerCase().includes(c)))}((0,j.go)(P,K,I.parentMap),C),D,E),R=Q.length,S=Math.max(1,Math.ceil(R/x.QE)),T=Math.min(F,S-1),U=Q.slice(T*x.QE,(T+1)*x.QE),V=Array.from(new Set(J.map(a=>a.model))).sort(),W=Array.from(new Set(J.map(a=>a.cwd).filter(Boolean))).sort(),X=N.totalTokens>0?N.cacheReadTokens/Math.max(1,N.cacheReadTokens+N.inputTokens+N.cacheCreationTokens):0,Y=(0,u.sO)(c),Z=Y.costFootnoteKey?G(Y.costFootnoteKey):"";return(0,d.jsxs)(g.qK,{title:G("usage.title"),desc:G("usage.subtitle",{count:R.toLocaleString()}),right:(0,d.jsxs)("div",{className:"flex items-center gap-3 flex-wrap",children:[(0,d.jsx)(w.OverviewToggle,{}),(0,d.jsx)(n.ModelFilter,{all:V,selected:A}),(0,d.jsx)(o.ProjectFilter,{all:W,selected:B}),(0,d.jsx)(k.RangePicker,{defaultValue:"7d"})]}),children:[(0,d.jsx)(v.AutoRefresh,{intervalMs:15e3}),0===J.length?(0,d.jsx)(g.pp,{title:G("common.empty.title"),desc:G("common.empty.desc")}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"usage-overview-block contents",children:[(0,d.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 mt-4",children:[(0,d.jsx)(p.n,{label:G("usage.kpi.totalTokens"),value:(0,q.jh)(N.totalTokens,H)}),(0,d.jsx)(p.n,{label:G("usage.kpi.totalCost"),value:(0,q.az)(N.cost),hint:Z||void 0}),(0,d.jsx)(p.n,{label:G("usage.kpi.cacheSaved"),value:(0,q.az)(N.saved),accent:"success"}),(0,d.jsx)(p.n,{label:G("usage.kpi.cacheHit"),value:(0,q.R8)(X,0),accent:"success"})]}),(0,d.jsx)(g.wn,{title:G("usage.trend"),desc:G("usage.trend.gran",{gran:(0,s.nA)(H,`gran.${z}`)}),right:(0,d.jsx)(m.GranularityPicker,{defaultValue:z}),children:(0,d.jsx)(h.TokenStackChart,{data:O})})]}),(0,d.jsx)(g.wn,{title:G("usage.requests.title"),desc:G("usage.requests.desc"),children:(0,d.jsx)(i.UsageTable,{rows:U,totalCount:R,page:T,pageCount:S,sort:{key:D,dir:E},query:C})})]})]})}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},20976:(a,b,c)=>{Promise.resolve().then(c.bind(c,62035)),Promise.resolve().then(c.bind(c,89605)),Promise.resolve().then(c.bind(c,49863)),Promise.resolve().then(c.bind(c,36666)),Promise.resolve().then(c.bind(c,68264)),Promise.resolve().then(c.bind(c,21966)),Promise.resolve().then(c.bind(c,58258)),Promise.resolve().then(c.bind(c,21092))},21092:(a,b,c)=>{"use strict";c.d(b,{UsageTable:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call UsageTable() from the server but UsageTable is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/usage-table.tsx","UsageTable")},21966:(a,b,c)=>{"use strict";c.d(b,{ProjectFilter:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call ProjectFilter() from the server but ProjectFilter is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/project-filter.tsx","ProjectFilter")},24961:(a,b,c)=>{"use strict";c.d(b,{AutoRefresh:()=>f});var d=c(38301),e=c(42378);function f({intervalMs:a=15e3}){return(0,e.useRouter)(),(0,d.useRef)(!1),null}},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32560:(a,b,c)=>{"use strict";c.d(b,{ProjectFilter:()=>h});var d=c(21124),e=c(83426),f=c(15514),g=c(15519);function h({all:a,selected:b}){let c=(0,g.kj)();return(0,d.jsx)(e.K,{paramKey:"projects",all:a,selected:b,render:f.PJ,labelAllKey:"filter.projectAll",labelSingleKey:"filter.projectSingle",labelMultiKey:"filter.projectMulti",ariaLabel:c("filter.projectLabel")})}},32900:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(82802),o=c(77533),p=c(45229),q=c(32822),r=c(261),s=c(26453),t=c(52474),u=c(26713),v=c(51356),w=c(62685),x=c(36225),y=c(63446),z=c(2762),A=c(45742),B=c(86439),C=c(81170),D=c.n(C),E=c(62506),F=c(91203),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H={children:["",{children:["usage",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,18710)),"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/usage/page.tsx"]}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,25088)),"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/layout.tsx"],error:[()=>Promise.resolve().then(c.bind(c,41697)),"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/error.tsx"],loading:[()=>Promise.resolve().then(c.bind(c,90391)),"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/loading.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,I=["/Users/zuopeng.cheng/personal/workspace/ccgauge/app/usage/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/usage/page",pathname:"/usage",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/usage/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
2
+ see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},33873:a=>{"use strict";a.exports=require("path")},36666:(a,b,c)=>{"use strict";c.d(b,{ModelFilter:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call ModelFilter() from the server but ModelFilter is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/model-filter.tsx","ModelFilter")},39422:(a,b,c)=>{"use strict";c.d(b,{OverviewToggle:()=>h});var d=c(21124),e=c(38301),f=c(15514),g=c(15519);function h(){let a=(0,g.kj)(),[b,c]=(0,e.useState)(!1);return(0,d.jsxs)("button",{type:"button",onClick:function(){let a=!b;c(a);try{localStorage.setItem("ccgauge.usage.overview.hidden",a?"1":"0")}catch{}a?document.documentElement.setAttribute("data-usage-overview","hidden"):document.documentElement.removeAttribute("data-usage-overview")},"aria-pressed":!b,title:a(b?"usage.overview.show":"usage.overview.hide"),className:(0,f.cn)("inline-flex items-center gap-1.5 px-2.5 py-1.5 rounded-button text-xs font-medium","border transition-colors duration-150",b?"border-border bg-bg-surface text-text-secondary hover:text-text-primary hover:bg-bg-surface-hi":"border-brand/40 bg-brand/12 text-brand hover:bg-brand/20 hover:border-brand/60"),children:[(0,d.jsx)(i,{open:!b}),(0,d.jsx)("span",{className:"hidden sm:inline",children:a("usage.overview.label")})]})}function i({open:a}){return(0,d.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:a?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"3"})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M9.88 9.88a3 3 0 0 0 4.24 4.24"}),(0,d.jsx)("path",{d:"M10.73 5.08A11 11 0 0 1 12 5c6.5 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68"}),(0,d.jsx)("path",{d:"M6.61 6.61A13.526 13.526 0 0 0 2 12s3.5 7 10 7a9.74 9.74 0 0 0 5.39-1.61"}),(0,d.jsx)("line",{x1:"2",y1:"2",x2:"22",y2:"22"})]})})}},39472:(a,b,c)=>{"use strict";c.d(b,{ModelFilter:()=>h});var d=c(21124),e=c(83426),f=c(15514),g=c(15519);function h({all:a,selected:b}){let c=(0,g.kj)();return(0,d.jsx)(e.K,{paramKey:"models",all:a,selected:b,render:f.P6,labelAllKey:"filter.modelAll",labelSingleKey:"filter.modelSingle",labelMultiKey:"filter.modelMulti",ariaLabel:c("filter.modelLabel")})}},40236:(a,b,c)=>{"use strict";c.d(b,{Cw:()=>g,UF:()=>f,dg:()=>e});let d=["1d","7d","30d","90d","all"];function e(a){return"string"==typeof a&&d.includes(a)}function f(a,b="7d"){return e(a)?a:b}function g(a){let b=new Date;if("all"===a)return{};if("1d"===a)return{from:new Date(b.getFullYear(),b.getMonth(),b.getDate())};let c=a.match(/^(\d+)([dwm])$/);if(!c)return{};let d=parseInt(c[1],10),e=c[2],f=new Date(b);return"d"===e?f.setDate(f.getDate()-d):"w"===e?f.setDate(f.getDate()-7*d):"m"===e&&f.setMonth(f.getMonth()-d),{from:f}}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41573:(a,b,c)=>{"use strict";c.d(b,{H:()=>g});var d=c(21124),e=c(38301),f=c(15514);function g({children:a,className:b}){let c=(0,e.useRef)(null),[g,h]=(0,e.useState)(!1),[i,j]=(0,e.useState)(!1);return(0,d.jsxs)("div",{className:(0,f.cn)("relative",b),children:[(0,d.jsx)("div",{ref:c,className:"overflow-x-auto",children:a}),(0,d.jsx)("div",{"aria-hidden":!0,className:(0,f.cn)("pointer-events-none absolute left-0 top-0 bottom-0 w-8 bg-gradient-to-r from-bg-surface to-transparent transition-opacity duration-150",g?"opacity-100":"opacity-0")}),(0,d.jsx)("div",{"aria-hidden":!0,className:(0,f.cn)("pointer-events-none absolute right-0 top-0 bottom-0 w-8 bg-gradient-to-l from-bg-surface to-transparent transition-opacity duration-150",i?"opacity-100":"opacity-0")})]})}},48161:a=>{"use strict";a.exports=require("node:os")},49863:(a,b,c)=>{"use strict";c.d(b,{GranularityPicker:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call GranularityPicker() from the server but GranularityPicker is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/granularity-picker.tsx","GranularityPicker")},55824:(a,b,c)=>{Promise.resolve().then(c.bind(c,24961)),Promise.resolve().then(c.bind(c,24919)),Promise.resolve().then(c.bind(c,88253)),Promise.resolve().then(c.bind(c,39472)),Promise.resolve().then(c.bind(c,39422)),Promise.resolve().then(c.bind(c,32560)),Promise.resolve().then(c.bind(c,75268)),Promise.resolve().then(c.bind(c,99955))},58258:(a,b,c)=>{"use strict";c.d(b,{RangePicker:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call RangePicker() from the server but RangePicker is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/range-picker.tsx","RangePicker")},62035:(a,b,c)=>{"use strict";c.d(b,{AutoRefresh:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call AutoRefresh() from the server but AutoRefresh is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/auto-refresh.tsx","AutoRefresh")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},68264:(a,b,c)=>{"use strict";c.d(b,{OverviewToggle:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call OverviewToggle() from the server but OverviewToggle is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/overview-toggle.tsx","OverviewToggle")},73024:a=>{"use strict";a.exports=require("node:fs")},75268:(a,b,c)=>{"use strict";c.d(b,{RangePicker:()=>h});var d=c(21124),e=c(91377),f=c(15519);let g=[{value:"1d",tk:"range.today"},{value:"7d",tk:"range.7d"},{value:"30d",tk:"range.30d"},{value:"90d",tk:"range.90d"},{value:"all",tk:"range.all"}];function h({defaultValue:a="7d"}){let b=(0,f.kj)();return(0,d.jsx)(e.V,{paramKey:"range",defaultValue:a,options:g,ariaLabel:b("range.label")})}},76559:(a,b,c)=>{"use strict";c.d(b,{PR:()=>g,QE:()=>d,Yb:()=>f});let d=25,e=["timestamp","cost","inputTokens","outputTokens","cacheReadTokens","cacheCreationTokens","totalTokens","callCount"];function f(a){return"string"==typeof a&&e.includes(a)}function g(a){if(!a)return 0;let b=Number(a);return!Number.isFinite(b)||b<1?0:Math.floor(b)-1}},76760:a=>{"use strict";a.exports=require("node:path")},80481:a=>{"use strict";a.exports=require("node:readline")},83426:(a,b,c)=>{"use strict";c.d(b,{K:()=>i});var d=c(21124),e=c(42378),f=c(38301),g=c(15514),h=c(15519);function i({paramKey:a,all:b,selected:c,render:i=a=>a,labelAllKey:j,labelSingleKey:k,labelMultiKey:l,ariaLabel:m,searchThreshold:n=6}){let o,p=(0,e.useRouter)(),q=(0,e.usePathname)(),r=(0,e.useSearchParams)(),s=(0,h.kj)(),[t,u]=(0,f.useState)(!1),[v,w]=(0,f.useState)(""),[x,y]=(0,f.useState)(0),z=(0,f.useRef)(null),A=(0,f.useRef)(null),B=(0,f.useRef)(null),C=(0,f.useRef)(null),D=(0,f.useId)(),E=(0,f.useId)(),F=(0,f.useMemo)(()=>{let a=v.trim().toLowerCase();return a?b.filter(b=>i(b).toLowerCase().includes(a)||b.toLowerCase().includes(a)):b},[b,v,i]);function G(b){let c=new URLSearchParams(r.toString());0===b.size?c.delete(a):c.set(a,Array.from(b).join(","));let d=c.toString();p.push(d?`${q}?${d}`:q)}function H(a){let b=new Set(c);b.has(a)?b.delete(a):b.add(a),G(b)}function I(a){if("ArrowDown"===a.key)a.preventDefault(),y(a=>Math.min(F.length-1,a+1));else if("ArrowUp"===a.key)a.preventDefault(),y(a=>Math.max(0,a-1));else if("Enter"===a.key){a.preventDefault();let b=F[x];b&&H(b)}else"Home"===a.key?(a.preventDefault(),y(0)):"End"===a.key&&(a.preventDefault(),y(F.length-1))}o=0===c.length?s(j):1===c.length?s(k,{value:i(c[0])}):s(l,{count:c.length});let J=b.length>=n;return(0,d.jsxs)("div",{ref:z,className:"relative",children:[(0,d.jsxs)("button",{ref:A,id:D,onClick:()=>u(a=>!a),className:"btn focus:outline-none focus-visible:ring-2 focus-visible:ring-brand/40","aria-haspopup":"listbox","aria-expanded":t,"aria-controls":E,"aria-label":m,children:[o,(0,d.jsx)("span",{className:"text-text-tertiary ml-1","aria-hidden":!0,children:"▾"})]}),t&&(0,d.jsxs)("div",{id:E,role:"listbox","aria-multiselectable":"true","aria-labelledby":D,className:"absolute right-0 mt-1 w-72 card border-border-hi shadow-lg z-20 overflow-hidden",children:[c.length>0&&(0,d.jsxs)("div",{className:"px-2 pt-2 pb-1.5 border-b border-border flex flex-wrap gap-1 items-center",children:[c.slice(0,6).map(a=>(0,d.jsxs)("button",{onClick:()=>H(a),className:"inline-flex items-center gap-1 max-w-[160px] pl-2 pr-1.5 py-0.5 text-[11px] rounded-full bg-brand/10 text-brand border border-brand/20 hover:bg-brand/15","aria-label":`Remove ${i(a)}`,title:i(a),children:[(0,d.jsx)("span",{className:"truncate",children:i(a)}),(0,d.jsx)("span",{"aria-hidden":!0,className:"text-brand/70",children:"\xd7"})]},a)),c.length>6&&(0,d.jsxs)("span",{className:"text-[11px] text-text-tertiary px-1",children:["+",c.length-6]}),(0,d.jsx)("button",{onClick:function(){G(new Set)},className:"ml-auto text-[11px] text-text-tertiary hover:text-text-primary px-1.5 py-0.5",children:s("filter.clearAll")})]}),J&&(0,d.jsx)("div",{className:"p-2 border-b border-border",children:(0,d.jsx)("input",{ref:B,value:v,onChange:a=>{w(a.target.value),y(0)},onKeyDown:a=>{("ArrowDown"===a.key||"ArrowUp"===a.key||"Enter"===a.key||"Home"===a.key||"End"===a.key)&&I(a)},placeholder:s("common.searchPlaceholder"),className:"w-full px-2 py-1 text-sm rounded border border-border bg-bg-surface focus:outline-none focus:border-border-hi placeholder:text-text-tertiary text-text-primary"})}),(0,d.jsxs)("div",{ref:C,onKeyDown:I,className:"max-h-64 overflow-y-auto p-1 outline-none",tabIndex:-1,children:[0===F.length&&(0,d.jsx)("div",{className:"text-xs text-text-tertiary px-2 py-3 text-center",children:s("filter.noOptions")}),F.map((a,b)=>{let e=c.includes(a),f=b===x;return(0,d.jsxs)("button",{role:"option","aria-selected":e,onMouseEnter:()=>y(b),onClick:()=>H(a),className:(0,g.cn)("w-full text-left text-sm px-2 py-1.5 rounded flex items-center gap-2 transition-colors",f?"bg-bg-surface-hi":"hover:bg-bg-surface-hi",e&&"text-text-primary"),children:[(0,d.jsx)("span",{className:(0,g.cn)("w-3.5 h-3.5 rounded-sm border flex items-center justify-center text-[10px] flex-shrink-0",e?"bg-brand border-brand text-white":"border-border-hi"),"aria-hidden":!0,children:e?"✓":""}),(0,d.jsx)("span",{className:"truncate",children:i(a)})]},a)})]})]})]})}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},88253:(a,b,c)=>{"use strict";c.d(b,{GranularityPicker:()=>h});var d=c(21124),e=c(91377),f=c(15519);let g=[{value:"hour",tk:"gran.hour"},{value:"day",tk:"gran.day"},{value:"week",tk:"gran.week"},{value:"month",tk:"gran.month"}];function h({defaultValue:a="day"}){let b=(0,f.kj)();return(0,d.jsx)(e.V,{paramKey:"gran",defaultValue:a,options:g,ariaLabel:b("gran.label")})}},91377:(a,b,c)=>{"use strict";c.d(b,{V:()=>i});var d=c(21124),e=c(42378),f=c(38301),g=c(15514),h=c(15519);function i({paramKey:a,defaultValue:b,options:c,ariaLabel:i}){let j=(0,e.useRouter)(),k=(0,e.usePathname)(),l=(0,e.useSearchParams)(),m=(0,h.kj)(),n=l.get(a)||b,o=c.some(a=>a.value===n)?n:b,p=(0,f.useRef)(null);function q(b){let c=new URLSearchParams(l.toString());c.set(a,b),j.push(`${k}?${c.toString()}`)}return(0,d.jsx)("div",{ref:p,role:"radiogroup","aria-label":i,onKeyDown:function(a){if("ArrowLeft"!==a.key&&"ArrowRight"!==a.key)return;a.preventDefault();let b=(c.findIndex(a=>a.value===o)+("ArrowRight"===a.key?1:-1)+c.length)%c.length;q(c[b].value);let d=p.current?.querySelectorAll('button[role="radio"]');d?.[b]?.focus()},className:"inline-flex rounded-button border border-border bg-bg-surface p-0.5 gap-0.5",children:c.map(a=>{let b=o===a.value;return(0,d.jsx)("button",{role:"radio","aria-checked":b,tabIndex:b?0:-1,onClick:()=>q(a.value),className:(0,g.cn)("px-2.5 py-1 text-xs rounded transition-all","focus:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",b?"bg-brand text-white font-semibold shadow-sm ring-1 ring-brand/40":"text-text-tertiary font-medium hover:text-text-primary hover:bg-bg-surface-hi"),children:m(a.tk)},a.value)})})}},99955:(a,b,c)=>{"use strict";c.d(b,{UsageTable:()=>n});var d=c(21124),e=c(38301),f=c(42378),g=c(15514),h=c(15519),i=c(23312);function j({children:a,content:b,className:c,panelClassName:f,align:h="left",delay:j=100,maxWidth:k=360}){let l=(0,e.useRef)(null),m=(0,e.useRef)(null),n=(0,e.useRef)(null),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(!1);function u(){n.current&&(window.clearTimeout(n.current),n.current=null),s||(m.current=window.setTimeout(()=>{let a=function(){let a,b=l.current;if(!b)return null;let c=b.getBoundingClientRect(),d=Math.min(k,window.innerWidth-16),e=window.innerHeight-c.bottom<200?"top":"bottom";return"right"===h?(a=Math.min(c.right,window.innerWidth-8))-d<8&&(a=d+8):(a=Math.max(c.left,8))+d>window.innerWidth-8&&(a=window.innerWidth-d-8),{x:a,y:"bottom"===e?c.bottom+8:c.top-8,placement:e,align:h}}();a&&(p(a),t(!0))},j))}function v(){m.current&&(window.clearTimeout(m.current),m.current=null),n.current=window.setTimeout(()=>t(!1),80)}return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{ref:l,onMouseEnter:u,onMouseLeave:v,onFocus:u,onBlur:v,className:(0,g.cn)("inline-block",c),children:a}),q&&o&&(0,i.createPortal)((0,d.jsx)("div",{onMouseEnter:()=>{n.current&&(window.clearTimeout(n.current),n.current=null)},onMouseLeave:v,style:{position:"fixed",left:"right"===o.align?void 0:o.x,right:"right"===o.align?window.innerWidth-o.x:void 0,top:"bottom"===o.placement?o.y:void 0,bottom:"top"===o.placement?window.innerHeight-o.y:void 0,maxWidth:k,transform:s?"translateY(0) scale(1)":"bottom"===o.placement?"translateY(-4px) scale(0.98)":"translateY(4px) scale(0.98)",opacity:+!!s,transitionProperty:"opacity, transform",transitionDuration:"120ms",transitionTimingFunction:"cubic-bezier(0.16, 1, 0.3, 1)",transformOrigin:"bottom"===o.placement?"top":"bottom",pointerEvents:s?"auto":"none"},className:(0,g.cn)("z-50 card border-border-hi shadow-xl rounded-button",f),children:b}),document.body)]})}var k=c(41573);let l=[{id:"time",labelKey:"usage.col.time",sortKey:"timestamp",defaultVisible:!0},{id:"prompt",labelKey:"usage.col.userMessage",defaultVisible:!0},{id:"model",labelKey:"usage.col.model",defaultVisible:!0},{id:"project",labelKey:"usage.col.project",defaultVisible:!0},{id:"session",labelKey:"usage.col.session",defaultVisible:!1},{id:"calls",labelKey:"usage.col.calls",align:"right",sortKey:"callCount",defaultVisible:!1},{id:"input",labelKey:"usage.col.input",align:"right",sortKey:"inputTokens",defaultVisible:!1},{id:"output",labelKey:"usage.col.output",align:"right",sortKey:"outputTokens",defaultVisible:!1},{id:"cacheRead",labelKey:"usage.col.cacheRead",align:"right",sortKey:"cacheReadTokens",defaultVisible:!1},{id:"cacheWrite",labelKey:"usage.col.cacheWrite",align:"right",sortKey:"cacheCreationTokens",defaultVisible:!1},{id:"total",labelKey:"usage.col.total",align:"right",sortKey:"totalTokens",defaultVisible:!0},{id:"cost",labelKey:"usage.col.cost",align:"right",sortKey:"cost",defaultVisible:!1},{id:"tools",labelKey:"usage.col.tools",defaultVisible:!0}];function m(){return l.reduce((a,b)=>(a[b.id]=b.defaultVisible,a),{})}function n({rows:a,totalCount:b,page:c,pageCount:g,sort:i,query:j}){let n=(0,h.kj)(),{locale:p}=(0,h.s9)(),r=(0,f.useRouter)(),s=(0,f.usePathname)(),t=(0,f.useSearchParams)(),[u,v]=(0,e.useState)(new Set),[w,x]=(0,e.useState)(m),[y,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)(j),C=(0,e.useRef)(null),D=(0,e.useRef)(null);function E(a){let b=new URLSearchParams(t.toString());for(let[c,d]of Object.entries(a))void 0===d||""===d?b.delete(c):b.set(c,d);let c=b.toString();r.push(c?`${s}?${c}`:s)}function F(a){E({page:a>0?String(a+1):void 0})}let G=l.filter(a=>w[a.id]),H=G.length+1,I=G.length;return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3 mb-3 flex-wrap",children:[(0,d.jsx)("input",{value:A,onChange:a=>{var b;B(b=a.target.value),D.current&&window.clearTimeout(D.current),D.current=window.setTimeout(()=>{E({q:b.trim()||void 0,page:void 0})},300)},placeholder:n("common.searchPlaceholder"),className:"px-3 py-1.5 text-sm rounded-button border border-border bg-bg-surface focus:outline-none focus:border-border-hi w-72 placeholder:text-text-tertiary text-text-primary"}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("span",{className:"text-xs text-text-tertiary tabular-nums",children:n("common.rows",{count:b.toLocaleString()})}),(0,d.jsxs)("div",{ref:C,className:"relative",children:[(0,d.jsxs)("button",{onClick:()=>z(a=>!a),className:"btn",children:[n("usage.columns.button"),(0,d.jsx)("span",{className:"ml-1 text-text-tertiary tabular-nums",children:I})]}),y&&(0,d.jsxs)("div",{className:"absolute right-0 mt-1 w-56 card border-border-hi shadow-lg p-2 z-30",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-1.5 pb-1.5 mb-1 border-b border-border",children:[(0,d.jsx)("span",{className:"text-xs text-text-tertiary uppercase tracking-wide",children:n("usage.columns.title")}),(0,d.jsx)("button",{onClick:()=>x(m()),className:"text-xs text-text-tertiary hover:text-text-primary",children:n("usage.columns.reset")})]}),(0,d.jsx)("div",{className:"max-h-72 overflow-auto",children:l.map(a=>(0,d.jsxs)("label",{className:"flex items-center gap-2 px-1.5 py-1.5 text-sm rounded hover:bg-bg-surface-hi cursor-pointer",children:[(0,d.jsx)("input",{type:"checkbox",checked:!!w[a.id],onChange:b=>x(c=>({...c,[a.id]:b.target.checked})),className:"accent-brand"}),(0,d.jsx)("span",{className:"text-text-secondary",children:n(a.labelKey)})]},a.id))})]})]}),(0,d.jsx)("button",{onClick:function(){let a=new URLSearchParams(t.toString());window.location.href=`/api/export/usage?${a.toString()}`},className:"btn",children:n("common.exportCsv")})]})]}),(0,d.jsx)("div",{className:"card overflow-hidden",children:(0,d.jsx)(k.H,{children:(0,d.jsxs)("table",{className:"w-full text-sm",children:[(0,d.jsx)("thead",{children:(0,d.jsxs)("tr",{className:"border-b border-border bg-bg-surface-hi/30",children:[(0,d.jsx)(q,{children:(0,d.jsx)("span",{className:"sr-only",children:"expand"})}),G.map(a=>(0,d.jsx)(q,{align:a.align,sorted:!!a.sortKey&&i.key===a.sortKey,dir:i.dir,onClick:a.sortKey?()=>{var b;let c;return b=a.sortKey,c="desc",void(i.key===b&&(c="asc"===i.dir?"desc":"asc"),E({sort:"timestamp"===b?void 0:b,dir:"desc"===c?void 0:c,page:void 0}))}:void 0,children:n(a.labelKey)},a.id))]})}),(0,d.jsxs)("tbody",{children:[a.map(a=>{let b=u.has(a.turnId),c=a.userText.trim()||n("usage.turn.noPrompt");return(0,d.jsx)(o,{turn:a,isOpen:b,onToggle:()=>{var b;return b=a.turnId,void v(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},userText:c,expandLabel:n("usage.turn.expand"),collapseLabel:n("usage.turn.collapse"),activeColumns:G,locale:p,t:n},a.turnId)}),0===a.length&&(0,d.jsx)("tr",{children:(0,d.jsx)("td",{colSpan:H,className:"px-3 py-8 text-center text-text-tertiary text-sm",children:n("common.noMatchingRows")})})]})]})})}),g>1&&(0,d.jsxs)("div",{className:"flex items-center justify-between mt-3 text-xs text-text-secondary",children:[(0,d.jsx)("span",{children:n("common.pageOf",{page:c+1,total:g})}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("button",{onClick:()=>F(0),disabled:0===c,className:"btn-ghost disabled:opacity-40",children:n("common.first")}),(0,d.jsx)("button",{onClick:()=>F(c-1),disabled:0===c,className:"btn-ghost disabled:opacity-40",children:n("common.prev")}),(0,d.jsx)("button",{onClick:()=>F(c+1),disabled:c>=g-1,className:"btn-ghost disabled:opacity-40",children:n("common.next")}),(0,d.jsx)("button",{onClick:()=>F(g-1),disabled:c>=g-1,className:"btn-ghost disabled:opacity-40",children:n("common.last")})]})]})]})}function o({turn:a,isOpen:b,onToggle:c,userText:e,expandLabel:f,collapseLabel:h,activeColumns:i,locale:k,t:l}){let m=(1===a.models.length?(0,g.P6)(a.models[0]):`${(0,g.P6)(a.models[0])} +${a.models.length-1}`)+(a.efforts.length?1===a.efforts.length?` \xb7 ${a.efforts[0]}`:` \xb7 ${a.efforts[0]}+${a.efforts.length-1}`:""),n=a.toolNames.length?a.toolNames.slice(0,3).join(", ")+(a.toolNames.length>3?"…":""):"—";return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("tr",{className:"border-b border-border last:border-b-0 hover:bg-bg-surface-hi/40 cursor-pointer",onClick:c,children:[(0,d.jsx)("td",{className:"px-2 py-2 text-text-tertiary w-6 text-center select-none",children:(0,d.jsx)("span",{title:b?h:f,className:"inline-block w-4",children:b?"▾":"▸"})}),i.map(b=>(0,d.jsx)("td",{className:(0,g.cn)("px-3 py-2","right"===b.align?"text-right":"text-left"),children:function(a,b,c,e,f,h,i){switch(a){case"time":return(0,d.jsx)("span",{className:"num-mono text-text-secondary whitespace-nowrap text-xs",children:(0,g.r6)(b.endTimestamp)});case"prompt":return(0,d.jsx)(j,{maxWidth:460,panelClassName:"p-3 text-sm text-text-secondary leading-relaxed",content:(0,d.jsx)("div",{className:"whitespace-pre-wrap break-words",children:f}),children:(0,d.jsx)("span",{className:"block text-text-secondary truncate max-w-[280px]",children:f})});case"model":return(0,d.jsx)("span",{className:"text-text-primary whitespace-nowrap",children:c});case"project":return(0,d.jsx)("span",{className:"block text-text-secondary truncate max-w-[180px]",title:b.cwd,children:b.projectLabel||(0,g.PJ)(b.cwd)});case"session":return(0,d.jsx)("span",{className:"num-mono text-text-tertiary text-xs",title:b.sessionId,children:(0,g.BC)(b.sessionId)});case"calls":return(0,d.jsx)("span",{className:"num-mono text-text-secondary",children:b.callCount});case"input":return(0,d.jsx)("span",{className:"num-mono text-text-secondary",children:(0,g.jh)(b.inputTokens,h)});case"output":return(0,d.jsx)("span",{className:"num-mono text-text-secondary",children:(0,g.jh)(b.outputTokens,h)});case"cacheRead":return(0,d.jsx)("span",{className:"num-mono text-success",children:(0,g.jh)(b.cacheReadTokens,h)});case"cacheWrite":return(0,d.jsx)("span",{className:"num-mono text-text-secondary",children:(0,g.jh)(b.cacheCreationTokens,h)});case"total":return(0,d.jsx)(j,{align:"right",maxWidth:300,panelClassName:"p-0 overflow-hidden",content:(0,d.jsx)(p,{row:b,locale:h,t:i}),children:(0,d.jsx)("span",{className:"num-mono text-text-primary font-medium border-b border-dashed border-border hover:border-text-tertiary cursor-help",children:(0,g.jh)(b.totalTokens,h)})});case"cost":return(0,d.jsx)("span",{className:"num-mono text-text-primary font-medium",children:(0,g.l7)(b.cost)});case"tools":return(0,d.jsx)("span",{className:"block text-xs text-text-tertiary truncate max-w-[160px]",title:b.toolNames.join(", "),children:e})}}(b.id,a,m,n,e,k,l)},b.id))]}),b&&a.children.map(b=>(0,d.jsxs)("tr",{className:"border-b border-border last:border-b-0 bg-bg-surface-hi/20 text-text-tertiary",children:[(0,d.jsx)("td",{className:"px-2 py-1.5 w-6"}),i.map(c=>(0,d.jsx)("td",{className:(0,g.cn)("px-3 py-1.5","right"===c.align?"text-right":"text-left"),children:function(a,b,c,e,f){switch(a){case"time":return(0,d.jsx)("span",{className:"num-mono whitespace-nowrap pl-5 text-xs",children:(0,g.r6)(b.timestamp)});case"prompt":{let a=(b.directPrompt??"").trim();if(a&&a!==c.trim())return(0,d.jsx)("span",{className:"block text-xs text-text-secondary truncate max-w-[320px]",title:a,children:a});if(!b.toolNames.length)return(0,d.jsx)("span",{className:"text-xs text-text-tertiary",children:"—"});let e=b.toolNames.join(", "),f=b.toolNames.slice(0,3).join(", ")+(b.toolNames.length>3?"…":"");return(0,d.jsx)("span",{className:"block text-xs text-text-secondary truncate max-w-[280px]",title:e,children:f})}case"model":return(0,d.jsxs)("span",{className:"whitespace-nowrap",children:[(0,g.P6)(b.model),b.effort?` \xb7 ${b.effort}`:""]});case"project":return(0,d.jsx)("span",{className:"block truncate max-w-[180px]",title:b.cwd,children:b.projectLabel||(0,g.PJ)(b.cwd)});case"session":return(0,d.jsx)("span",{className:"num-mono text-xs",title:b.sessionId,children:(0,g.BC)(b.sessionId)});case"calls":return(0,d.jsx)("span",{className:"num-mono",children:"1"});case"input":return(0,d.jsx)("span",{className:"num-mono",children:(0,g.jh)(b.inputTokens,e)});case"output":return(0,d.jsx)("span",{className:"num-mono",children:(0,g.jh)(b.outputTokens,e)});case"cacheRead":return(0,d.jsx)("span",{className:"num-mono text-success",children:(0,g.jh)(b.cacheReadTokens,e)});case"cacheWrite":return(0,d.jsx)("span",{className:"num-mono",children:(0,g.jh)(b.cacheCreationTokens,e)});case"total":return(0,d.jsx)(j,{align:"right",maxWidth:300,panelClassName:"p-0 overflow-hidden",content:(0,d.jsx)(p,{row:b,locale:e,t:f}),children:(0,d.jsx)("span",{className:"num-mono border-b border-dashed border-border/60 hover:border-text-tertiary cursor-help",children:(0,g.jh)(b.totalTokens,e)})});case"cost":return(0,d.jsx)("span",{className:"num-mono",children:(0,g.l7)(b.cost)});case"tools":return(0,d.jsx)("span",{className:"block text-xs truncate max-w-[160px]",title:b.toolNames.join(", "),children:b.toolNames.length?b.toolNames.join(", "):"—"})}}(c.id,b,a.userText,k,l)},c.id))]},b.uuid))]})}function p({row:a,locale:b,t:c}){let f=[{key:"input",label:c("usage.col.input"),tokens:a.inputTokens,cost:a.costInput,tone:"text-text-primary",dot:"bg-chart-input"},{key:"output",label:c("usage.col.output"),tokens:a.outputTokens,cost:a.costOutput,tone:"text-text-primary",dot:"bg-chart-output"},{key:"cacheRead",label:c("usage.col.cacheRead"),tokens:a.cacheReadTokens,cost:a.costCacheRead,tone:"text-success",dot:"bg-chart-cache-read"},{key:"cacheWrite",label:c("usage.col.cacheWrite"),tokens:a.cacheCreationTokens,cost:a.costCacheWrite,tone:"text-text-primary",dot:"bg-chart-cache-create"}];return(0,d.jsxs)("div",{className:"text-xs",children:[(0,d.jsx)("div",{className:"px-3 py-2 border-b border-border bg-bg-surface-hi/40 text-text-tertiary uppercase tracking-wide font-medium",children:c("usage.breakdown.title")}),(0,d.jsxs)("div",{className:"px-3 py-2",children:[(0,d.jsxs)("div",{className:"grid grid-cols-[auto_1fr_auto] gap-x-3 gap-y-1.5 items-center",children:[(0,d.jsx)("span",{}),(0,d.jsx)("span",{className:"text-text-tertiary text-[10px] uppercase tracking-wide text-right",children:c("usage.breakdown.headerTokens")}),(0,d.jsx)("span",{className:"text-text-tertiary text-[10px] uppercase tracking-wide text-right",children:c("usage.breakdown.headerCost")}),f.map(f=>(0,d.jsxs)(e.Fragment,{children:[(0,d.jsxs)("span",{className:"inline-flex items-center gap-2 text-text-secondary",children:[(0,d.jsx)("span",{className:(0,g.cn)("w-2 h-2 rounded-sm",f.dot)}),f.label]}),(0,d.jsx)("span",{className:(0,g.cn)("num-mono text-right",f.tone),children:(0,g.jh)(f.tokens,b)}),(0,d.jsx)("span",{className:"num-mono text-right text-text-secondary",children:(0,g.l7)(f.cost)}),"output"===f.key&&a.reasoningTokens>0&&(0,d.jsxs)(e.Fragment,{children:[(0,d.jsxs)("span",{className:"inline-flex items-center gap-2 text-text-tertiary pl-4 text-[11px]",children:[(0,d.jsx)("span",{className:"text-text-tertiary",children:"↳"}),c("usage.breakdown.reasoning")]}),(0,d.jsx)("span",{className:"num-mono text-right text-text-tertiary text-[11px]",children:(0,g.jh)(a.reasoningTokens,b)}),(0,d.jsx)("span",{className:"text-right text-text-tertiary text-[11px]",children:c("usage.breakdown.reasoningNote")})]},"reasoning-detail")]},f.key))]}),(0,d.jsxs)("div",{className:"mt-2 pt-2 border-t border-border grid grid-cols-[auto_1fr_auto] gap-x-3 items-center",children:[(0,d.jsx)("span",{className:"text-text-secondary font-medium",children:c("usage.breakdown.total")}),(0,d.jsx)("span",{className:"num-mono text-right text-text-primary font-medium",children:(0,g.jh)(a.totalTokens,b)}),(0,d.jsx)("span",{className:"num-mono text-right text-text-primary font-medium",children:(0,g.l7)(a.cost)})]})]})]})}function q({children:a,align:b="left",sorted:c,dir:e,onClick:f}){return(0,d.jsx)("th",{className:(0,g.cn)("px-3 py-2 text-xs font-medium text-text-tertiary uppercase tracking-wide whitespace-nowrap","right"===b?"text-right":"text-left",f&&"cursor-pointer hover:text-text-primary select-none"),onClick:f,children:(0,d.jsxs)("span",{className:"inline-flex items-center gap-1",children:[a,c&&(0,d.jsx)("span",{className:"text-[10px]",children:"asc"===e?"▲":"▼"})]})})}}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[331,802,153,993,517,716,520,426,775],()=>b(b.s=32900));module.exports=c})();