ccgauge 1.0.4 → 1.0.5

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 (45) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +33 -33
  3. package/.next/standalone/.next/app-path-routes-manifest.json +9 -9
  4. package/.next/standalone/.next/build-manifest.json +2 -2
  5. package/.next/standalone/.next/server/app/_not-found/page.js +2 -2
  6. package/.next/standalone/.next/server/app/api/projects/route.js +1 -1
  7. package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  8. package/.next/standalone/.next/server/app/api/sessions/route.js +1 -1
  9. package/.next/standalone/.next/server/app/api/sessions/route.js.nft.json +1 -1
  10. package/.next/standalone/.next/server/app/api/usage/route.js +1 -1
  11. package/.next/standalone/.next/server/app/api/usage/route.js.nft.json +1 -1
  12. package/.next/standalone/.next/server/app/models/page.js +2 -2
  13. package/.next/standalone/.next/server/app/models/page.js.nft.json +1 -1
  14. package/.next/standalone/.next/server/app/page.js +2 -2
  15. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  16. package/.next/standalone/.next/server/app/projects/[id]/page.js +2 -2
  17. package/.next/standalone/.next/server/app/projects/[id]/page.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/projects/page.js +1 -1
  19. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/sessions/[id]/page.js +2 -2
  21. package/.next/standalone/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/sessions/page.js +1 -1
  23. package/.next/standalone/.next/server/app/sessions/page.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/settings/page.js +1 -1
  25. package/.next/standalone/.next/server/app/usage/page.js +3 -3
  26. package/.next/standalone/.next/server/app/usage/page.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app-paths-manifest.json +9 -9
  28. package/.next/standalone/.next/server/chunks/287.js +1 -0
  29. package/.next/standalone/.next/server/chunks/567.js +2 -2
  30. package/.next/standalone/.next/server/chunks/730.js +1 -0
  31. package/.next/standalone/.next/server/functions-config-manifest.json +2 -2
  32. package/.next/standalone/.next/server/pages/500.html +1 -1
  33. package/.next/standalone/node_modules/next/node_modules/postcss/package.json +0 -0
  34. package/.next/standalone/package.json +1 -1
  35. package/.next/standalone/public/codex-logo.png +0 -0
  36. package/CHANGELOG.md +223 -0
  37. package/README.md +6 -2
  38. package/README.zh-CN.md +6 -2
  39. package/bin/cli.mjs +394 -91
  40. package/dist/mcp/server.mjs +16 -16
  41. package/dist/report/index.mjs +183 -28
  42. package/package.json +22 -24
  43. package/.next/standalone/.next/server/chunks/971.js +0 -1
  44. /package/.next/standalone/.next/static/{ir1LZCnQKkiNUVXLprtzh → kdpS1dOlXPsnKYuNBuMt9}/_buildManifest.js +0 -0
  45. /package/.next/standalone/.next/static/{ir1LZCnQKkiNUVXLprtzh → kdpS1dOlXPsnKYuNBuMt9}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
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")},14843:(a,b,c)=>{"use strict";c.d(b,{N0:()=>g,go:()=>h});var d=c(50160),e=c(30285),f=c(62955);function g(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 h(a,b,c){let g=(0,e.o)(a,b,c),h=new Map;for(let a of b)h.set(a.uuid,a);let i=new Map,j=new Map,k=new Map;for(let b of a){let a=g.get(b.uuid)??b.uuid,e=(0,d.SI)(b),l=function(a){let b=i.get(a);if(void 0!==b)return b;let d=[],e=a,f="",g=new Set;for(;e&&!g.has(e);){g.add(e);let a=i.get(e);if(void 0!==a){f=a;break}d.push(e);let b=h.get(e);if(b&&b.textPreview&&b.textPreview.trim()){f=b.textPreview;break}e=c[e]??null}for(let a of d)i.set(a,f);return f}(b.uuid),m={uuid:b.uuid,timestamp:b.timestamp,source:b.source,model:b.model,cwd:b.cwd,projectLabel:(0,f.CL)(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:e.total,costInput:e.input,costOutput:e.output,costCacheRead:e.cacheRead,costCacheWrite:e.cacheCreation5m+e.cacheCreation1h,toolNames:b.toolNames,effort:b.effort,directPrompt:l||void 0},n=j.get(a);n?n.push(m):j.set(a,[m]),k.has(a)||k.set(a,b)}let l=[];for(let[a,b]of j){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,i=new Set,j=0,k=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&&i.add(a.effort),j+=a.inputTokens,k+=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=h.get(a),v=new Date(c.timestamp).getTime(),w=new Date(d.timestamp).getTime(),x=Number.isFinite(v)&&Number.isFinite(w)?Math.max(0,w-v):0;l.push({turnId:a,timestamp:c.timestamp,endTimestamp:d.timestamp,durationMs:x,cwd:c.cwd,projectLabel:(0,f.CL)(c.cwd),sessionId:c.sessionId,models:Array.from(e),callCount:b.length,inputTokens:j,outputTokens:k,cacheReadTokens:m,cacheCreationTokens:n,reasoningTokens:o,totalTokens:j+k+m+n,cost:p,costInput:q,costOutput:r,costCacheRead:s,costCacheWrite:t,toolNames:Array.from(g),efforts:Array.from(i),userText:u?.textPreview??"",children:b})}return l.sort((a,b)=>a.timestamp<b.timestamp?1:-1),l}},18710:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>B,dynamic:()=>z,revalidate:()=>A});var d=c(75338),e=c(49098),f=c(67803),g=c(37583),h=c(89605),i=c(21092),j=c(14843),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(69181),v=c(60704),w=c(62035),x=c(68264),y=c(76559);let z="force-dynamic",A=0;async function B({searchParams:a}){let b=await a,c=await (0,t.ev)(b.source),z=(0,l.UF)(b.range,"7d"),A=(0,f.bo)(b.gran)?b.gran:"1d"===z?"hour":"day",B=b.models?b.models.split(",").filter(Boolean):[],C=b.projects?b.projects.split(",").filter(Boolean):[],D=(b.q||"").trim(),E=b.sort&&(0,y.Yb)(b.sort)?b.sort:"timestamp",F="asc"===b.dir?"asc":"desc",G=(0,y.PR)(b.page),H=await (0,r.yO)(),I=await (0,r.sG)(),J=await (0,e.So)(),K=(0,t.rY)(J.records,c),L=(0,t.rY)(J.userRecords,c),M=(0,l.Cw)(z),N=(0,t.n$)(c),O={from:M.from,to:M.to,models:B.length?B:void 0,projects:C.length?C:void 0},P=(0,u.z)(N.map(a=>(0,f.$M)(K,{...O,source:a}))),Q=(0,u.i)(N.map(a=>(0,f.a6)(K,A,{...O,source:a}))).map(a=>({label:a.label,input:a.inputTokens,output:a.outputTokens,cacheRead:a.cacheReadTokens,cacheCreation:a.cacheCreationTokens,cost:a.cost,requests:a.requests})),R=K.filter(a=>!(M.from&&a.timestamp<M.from.toISOString())&&(!B.length||!!B.includes(a.model))&&(!C.length||!!C.includes(a.cwd))),S=function(a,b,c){let d=a.slice();return d.sort((a,d)=>{let e="timestamp"===b?a.timestamp:a[b],f="timestamp"===b?d.timestamp: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)(R,L,J.parentMap),D),E,F),T=S.length,U=Math.max(1,Math.ceil(T/y.QE)),V=Math.min(G,U-1),W=S.slice(V*y.QE,(V+1)*y.QE),X=Array.from(new Set(K.map(a=>a.model))).sort(),Y=Array.from(new Set(K.map(a=>a.cwd).filter(Boolean))).sort(),Z=P.totalTokens>0?P.cacheReadTokens/Math.max(1,P.cacheReadTokens+P.inputTokens+P.cacheCreationTokens):0,$="all"===c?"":(0,v.sO)(c).costFootnoteKey?H((0,v.sO)(c).costFootnoteKey):"";return(0,d.jsxs)(g.qK,{title:H("usage.title"),desc:H("usage.subtitle",{count:T.toLocaleString()}),right:(0,d.jsxs)("div",{className:"flex items-center gap-3 flex-wrap",children:[(0,d.jsx)(x.OverviewToggle,{}),(0,d.jsx)(n.ModelFilter,{all:X,selected:B}),(0,d.jsx)(o.ProjectFilter,{all:Y,selected:C}),(0,d.jsx)(k.RangePicker,{defaultValue:"7d"})]}),children:[(0,d.jsx)(w.AutoRefresh,{intervalMs:15e3}),0===K.length?(0,d.jsx)(g.pp,{title:H("common.empty.title"),desc:H("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:H("usage.kpi.totalTokens"),value:(0,q.jh)(P.totalTokens,I)}),(0,d.jsx)(p.n,{label:H("usage.kpi.totalCost"),value:(0,q.az)(P.cost),hint:$||void 0}),(0,d.jsx)(p.n,{label:H("usage.kpi.cacheSaved"),value:(0,q.az)(P.saved),accent:"success"}),(0,d.jsx)(p.n,{label:H("usage.kpi.cacheHit"),value:(0,q.R8)(Z,0),accent:"success"})]}),(0,d.jsx)(g.wn,{title:H("usage.trend"),desc:H("usage.trend.gran",{gran:(0,s.nA)(I,`gran.${A}`)}),right:(0,d.jsx)(m.GranularityPicker,{defaultValue:A}),className:"mt-4",children:(0,d.jsx)(h.TokenStackChart,{data:Q})})]}),(0,d.jsx)(g.wn,{title:H("usage.requests.title"),desc:H("usage.requests.desc"),children:(0,d.jsx)(i.UsageTable,{rows:W,totalCount:T,page:V,pageCount:U,sort:{key:E,dir:F},query:D})})]})]})}},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")},30285:(a,b,c)=>{"use strict";function d(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}c.d(b,{o:()=>d})},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,67302)),"/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")},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,88843)),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")},62955:(a,b,c)=>{"use strict";c.d(b,{CL:()=>k,tv:()=>l});var d=c(73024),e=c(76760),f=c(95012);let g=new Map,h=/^(.+?)[/\\]\.git[/\\]worktrees[/\\]([^/\\]+)[/\\]?$/,i=/^(.+?)[/\\](?:\.git|\.claude)[/\\]worktrees[/\\]([^/\\]+)(?:[/\\].*)?$/;function j(a){let b=(0,f.PJ)(a);if(!a)return{label:b,isWorktree:!1,mainName:b,worktreeName:"",canonicalCwd:a};let c=i.exec(a);if(c){let a=c[1],b=c[2],d=(0,e.basename)(a)||a;return{label:`${d} (${b})`,isWorktree:!0,mainName:d,worktreeName:b,canonicalCwd:a}}try{let c=`${a}/.git`;if(!(0,d.statSync)(c).isFile())return{label:b,isWorktree:!1,mainName:b,worktreeName:"",canonicalCwd:a};let f=(0,d.readFileSync)(c,"utf8").trim().split(/\r?\n/,1)[0]??"",g=/^gitdir:\s*(.+)$/.exec(f);if(!g)return{label:b,isWorktree:!1,mainName:b,worktreeName:"",canonicalCwd:a};let i=g[1].trim(),j=h.exec(i);if(!j)return{label:b,isWorktree:!1,mainName:b,worktreeName:"",canonicalCwd:a};let k=j[1],l=j[2],m=(0,e.basename)(k)||k;return{label:`${m} (${l})`,isWorktree:!0,mainName:m,worktreeName:l,canonicalCwd:k}}catch{return{label:b,isWorktree:!1,mainName:b,worktreeName:"",canonicalCwd:a}}}function k(a){let b=g.get(a);if(b)return b.label;let c=j(a);return g.set(a,c),c.label}function l(a){return function(a){let b=g.get(a);if(b)return b;let c=j(a);return g.set(a,c),c}(a).canonicalCwd}},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")},69181:(a,b,c)=>{"use strict";c.d(b,{i:()=>f,z:()=>e});let d={inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheCreationTokens:0,totalTokens:0,cost:0,saved:0,requests:0};function e(a){return 0===a.length?{...d}:1===a.length?a[0]:a.reduce((a,b)=>({inputTokens:a.inputTokens+b.inputTokens,outputTokens:a.outputTokens+b.outputTokens,cacheReadTokens:a.cacheReadTokens+b.cacheReadTokens,cacheCreationTokens:a.cacheCreationTokens+b.cacheCreationTokens,totalTokens:a.totalTokens+b.totalTokens,cost:a.cost+b.cost,saved:a.saved+b.saved,requests:a.requests+b.requests}),{...d})}function f(a){if(0===a.length)return[];if(1===a.length)return a[0];let b=new Map;for(let c of a)for(let a of c){let c=b.get(a.key);if(!c){b.set(a.key,{...a,models:function(a){let b={};for(let[c,d]of Object.entries(a))b[c]={tokens:d.tokens,cost:d.cost,requests:d.requests};return b}(a.models)});continue}for(let[b,d]of(c.inputTokens+=a.inputTokens,c.outputTokens+=a.outputTokens,c.cacheReadTokens+=a.cacheReadTokens,c.cacheCreationTokens+=a.cacheCreationTokens,c.totalTokens+=a.totalTokens,c.cost+=a.cost,c.saved+=a.saved,c.requests+=a.requests,Object.entries(a.models))){let a=c.models[b]??{tokens:0,cost:0,requests:0};a.tokens+=d.tokens,a.cost+=d.cost,a.requests+=d.requests,c.models[b]=a}}return Array.from(b.values()).sort((a,b)=>a.key.localeCompare(b.key))}},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","durationMs"];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")})}},88843:(a,b,c)=>{"use strict";c.d(b,{OverviewToggle:()=>i});var d=c(21124),e=c(38301),f=c(15514),g=c(15519);let h="data-usage-overview";function i(){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(h,"hidden"):document.documentElement.removeAttribute(h)},"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)(j,{open:!b}),(0,d.jsx)("span",{className:"hidden sm:inline",children:a("usage.overview.label")})]})}function j({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"})]})})}},89605:(a,b,c)=>{"use strict";c.d(b,{TokenStackChart:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call TokenStackChart() from the server but TokenStackChart 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/charts/token-stack-chart.tsx","TokenStackChart")},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-strong 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:"duration",labelKey:"usage.col.duration",align:"right",sortKey:"durationMs",defaultVisible:!1},{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}`)+(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",title:`started ${(0,g.r6)(b.timestamp)}
3
- ended ${(0,g.r6)(b.endTimestamp)}`,children:(0,g.r6)(b.timestamp)});case"duration":return(0,d.jsx)("span",{className:"num-mono text-text-secondary whitespace-nowrap text-xs",title:`${(0,g.r6)(b.timestamp)} → ${(0,g.r6)(b.endTimestamp)}`,children:(0,g.a3)(b.durationMs)});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 text-xs inline-block translate-x-5",children:(0,g.r6)(b.timestamp)});case"duration":return(0,d.jsx)("span",{className:"text-xs text-text-tertiary",children:"—"});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,98,567,971],()=>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")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14843:(a,b,c)=>{"use strict";c.d(b,{N0:()=>g,go:()=>h});var d=c(50160),e=c(30285),f=c(62955);function g(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 h(a,b,c){let g=(0,e.o)(a,b,c),h=new Map;for(let a of b)h.set(a.uuid,a);let i=new Map,j=new Map,k=new Map;for(let b of a){let a=g.get(b.uuid)??b.uuid,e=(0,d.SI)(b),l=function(a){let b=i.get(a);if(void 0!==b)return b;let d=[],e=a,f="",g=new Set;for(;e&&!g.has(e);){g.add(e);let a=i.get(e);if(void 0!==a){f=a;break}d.push(e);let b=h.get(e);if(b&&b.textPreview&&b.textPreview.trim()){f=b.textPreview;break}e=c[e]??null}for(let a of d)i.set(a,f);return f}(b.uuid),m={uuid:b.uuid,timestamp:b.timestamp,source:b.source,model:b.model,cwd:b.cwd,projectLabel:(0,f.CL)(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:e.total,costInput:e.input,costOutput:e.output,costCacheRead:e.cacheRead,costCacheWrite:e.cacheCreation5m+e.cacheCreation1h,toolNames:b.toolNames,effort:b.effort,directPrompt:l||void 0},n=j.get(a);n?n.push(m):j.set(a,[m]),k.has(a)||k.set(a,b)}let l=[];for(let[a,b]of j){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,i=new Set,j=0,k=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&&i.add(a.effort),j+=a.inputTokens,k+=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=h.get(a),v=new Date(c.timestamp).getTime(),w=new Date(d.timestamp).getTime(),x=Number.isFinite(v)&&Number.isFinite(w)?Math.max(0,w-v):0;l.push({turnId:a,timestamp:c.timestamp,endTimestamp:d.timestamp,durationMs:x,cwd:c.cwd,projectLabel:(0,f.CL)(c.cwd),sessionId:c.sessionId,models:Array.from(e),callCount:b.length,inputTokens:j,outputTokens:k,cacheReadTokens:m,cacheCreationTokens:n,reasoningTokens:o,totalTokens:j+k+m+n,cost:p,costInput:q,costOutput:r,costCacheRead:s,costCacheWrite:t,toolNames:Array.from(g),efforts:Array.from(i),userText:u?.textPreview??"",children:b})}return l.sort((a,b)=>a.timestamp<b.timestamp?1:-1),l}},18710:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>C,dynamic:()=>A,revalidate:()=>B});var d=c(75338),e=c(49098),f=c(67803),g=c(62955),h=c(37583),i=c(89605),j=c(21092),k=c(14843),l=c(58258),m=c(40236),n=c(49863),o=c(36666),p=c(21966),q=c(80489),r=c(95012),s=c(91719),t=c(55340),u=c(46796),v=c(69181),w=c(60704),x=c(62035),y=c(68264),z=c(76559);let A="force-dynamic",B=0;async function C({searchParams:a}){let b=await a,c=await (0,u.ev)(b.source),A=(0,m.UF)(b.range,"7d"),B=(0,f.bo)(b.gran)?b.gran:"1d"===A?"hour":"day",C=b.models?b.models.split(",").filter(Boolean):[],D=b.projects?b.projects.split(",").filter(Boolean):[],E=(b.q||"").trim(),F=b.sort&&(0,z.Yb)(b.sort)?b.sort:"timestamp",G="asc"===b.dir?"asc":"desc",H=(0,z.PR)(b.page),I=await (0,s.yO)(),J=await (0,s.sG)(),K=await (0,e.So)(),L=(0,u.rY)(K.records,c),M=(0,u.rY)(K.userRecords,c),N=(0,m.Cw)(A),O=(0,u.n$)(c),P=new Set(D),Q=D.length?L.filter(a=>P.has((0,g.tv)(a.cwd))):L,R={from:N.from,to:N.to,models:C.length?C:void 0},S=(0,v.z)(O.map(a=>(0,f.$M)(Q,{...R,source:a}))),T=(0,v.i)(O.map(a=>(0,f.a6)(Q,B,{...R,source:a}))).map(a=>({label:a.label,input:a.inputTokens,output:a.outputTokens,cacheRead:a.cacheReadTokens,cacheCreation:a.cacheCreationTokens,cost:a.cost,requests:a.requests})),U=Q.filter(a=>!(N.from&&a.timestamp<N.from.toISOString())&&(!C.length||!!C.includes(a.model))),V=function(a,b,c){let d=a.slice();return d.sort((a,d)=>{let e="timestamp"===b?a.timestamp:a[b],f="timestamp"===b?d.timestamp: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,k.go)(U,M,K.parentMap),E),F,G),W=V.length,X=Math.max(1,Math.ceil(W/z.QE)),Y=Math.min(H,X-1),Z=V.slice(Y*z.QE,(Y+1)*z.QE),$=Array.from(new Set(L.map(a=>a.model))).sort(),_=Array.from(new Set(L.map(a=>(0,g.tv)(a.cwd)).filter(Boolean))).sort(),aa=S.totalTokens>0?S.cacheReadTokens/Math.max(1,S.cacheReadTokens+S.inputTokens+S.cacheCreationTokens):0,ab="all"===c?"":(0,w.sO)(c).costFootnoteKey?I((0,w.sO)(c).costFootnoteKey):"";return(0,d.jsxs)(h.qK,{title:I("usage.title"),desc:I("usage.subtitle",{count:W.toLocaleString()}),right:(0,d.jsxs)("div",{className:"flex items-center gap-3 flex-wrap",children:[(0,d.jsx)(y.OverviewToggle,{}),(0,d.jsx)(o.ModelFilter,{all:$,selected:C}),(0,d.jsx)(p.ProjectFilter,{all:_,selected:D}),(0,d.jsx)(l.RangePicker,{defaultValue:"7d"})]}),children:[(0,d.jsx)(x.AutoRefresh,{intervalMs:15e3}),0===L.length?(0,d.jsx)(h.pp,{title:I("common.empty.title"),desc:I("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)(q.n,{label:I("usage.kpi.totalTokens"),value:(0,r.jh)(S.totalTokens,J)}),(0,d.jsx)(q.n,{label:I("usage.kpi.totalCost"),value:(0,r.az)(S.cost),hint:ab||void 0}),(0,d.jsx)(q.n,{label:I("usage.kpi.cacheSaved"),value:(0,r.az)(S.saved),accent:"success"}),(0,d.jsx)(q.n,{label:I("usage.kpi.cacheHit"),value:(0,r.R8)(aa,0),accent:"success"})]}),(0,d.jsx)(h.wn,{title:I("usage.trend"),desc:I("usage.trend.gran",{gran:(0,t.nA)(J,`gran.${B}`)}),right:(0,d.jsx)(n.GranularityPicker,{defaultValue:B}),className:"mt-4",children:(0,d.jsx)(i.TokenStackChart,{data:T})})]}),(0,d.jsx)(h.wn,{title:I("usage.requests.title"),desc:I("usage.requests.desc"),children:(0,d.jsx)(j.UsageTable,{rows:Z,totalCount:W,page:Y,pageCount:X,sort:{key:F,dir:G},query:E})})]})]})}},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")},24919:(a,b,c)=>{"use strict";c.d(b,{TokenStackChart:()=>o});var d=c(21124),e=c(6077),f=c(72400),g=c(57495),h=c(59296),i=c(16803),j=c(11767),k=c(18311),l=c(15514),m=c(15519);let n={input:"rgb(var(--chart-input))",output:"rgb(var(--chart-output))",cacheRead:"rgb(var(--chart-cache-read))",cacheCreation:"rgb(var(--chart-cache-create))"};function o({data:a,height:b="h-72"}){let c=(0,m.kj)(),{locale:o}=(0,m.s9)();return a.length?(0,d.jsxs)("div",{className:`${b} w-full`,children:[(0,d.jsx)(e.u,{width:"100%",height:"100%",children:(0,d.jsxs)(f.E,{data:a,margin:{top:12,right:8,bottom:4,left:8},barCategoryGap:"22%",children:[(0,d.jsx)(g.d,{stroke:"rgb(var(--chart-grid))",strokeOpacity:.6,strokeDasharray:"3 3",vertical:!1}),(0,d.jsx)(h.W,{dataKey:"label",tick:{fill:"rgb(var(--chart-axis))",fontSize:11},tickLine:!1,axisLine:!1,interval:"preserveStartEnd",minTickGap:32,tickMargin:8}),(0,d.jsx)(i.h,{tickFormatter:a=>(0,l.jh)(Number(a),o),tick:{fill:"rgb(var(--chart-axis))",fontSize:11},tickLine:!1,axisLine:!1,width:56,tickMargin:4}),(0,d.jsx)(j.m,{content:(0,d.jsx)(q,{}),cursor:{fill:"rgb(var(--text-primary) / 0.05)",radius:4}}),(0,d.jsx)(k.y,{dataKey:"input",stackId:"a",fill:n.input,isAnimationActive:!1}),(0,d.jsx)(k.y,{dataKey:"cacheCreation",stackId:"a",fill:n.cacheCreation,isAnimationActive:!1}),(0,d.jsx)(k.y,{dataKey:"cacheRead",stackId:"a",fill:n.cacheRead,isAnimationActive:!1}),(0,d.jsx)(k.y,{dataKey:"output",stackId:"a",fill:n.output,radius:[4,4,0,0],isAnimationActive:!1})]})}),(0,d.jsxs)("div",{className:"flex items-center flex-wrap justify-center gap-4 text-xs text-text-secondary mt-2",children:[(0,d.jsx)(p,{color:n.input,label:c("chart.legend.input")}),(0,d.jsx)(p,{color:n.cacheCreation,label:c("chart.legend.cacheWrite")}),(0,d.jsx)(p,{color:n.cacheRead,label:c("chart.legend.cacheRead")}),(0,d.jsx)(p,{color:n.output,label:c("chart.legend.output")})]})]}):(0,d.jsx)("div",{className:`${b} flex items-center justify-center text-text-tertiary text-sm`,children:c("chart.empty")})}function p({color:a,label:b}){return(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"w-2.5 h-2.5 rounded-sm",style:{background:a}}),(0,d.jsx)("span",{children:b})]})}function q(a){let b=(0,m.kj)(),{locale:c}=(0,m.s9)();if(!a.active||!a.payload||!a.payload.length)return null;let e=a.payload[0].payload,f=e.input+e.output+e.cacheRead+e.cacheCreation;return(0,d.jsxs)("div",{className:"card-elevated border border-border-hi rounded-card p-3 text-xs min-w-[200px]",children:[(0,d.jsx)("div",{className:"font-medium text-text-primary mb-2",children:a.label}),(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)(r,{color:n.input,label:b("chart.legend.input"),value:e.input,locale:c}),(0,d.jsx)(r,{color:n.cacheCreation,label:b("chart.legend.cacheWrite"),value:e.cacheCreation,locale:c}),(0,d.jsx)(r,{color:n.cacheRead,label:b("chart.legend.cacheRead"),value:e.cacheRead,locale:c}),(0,d.jsx)(r,{color:n.output,label:b("chart.legend.output"),value:e.output,locale:c})]}),(0,d.jsxs)("div",{className:"mt-2 pt-2 border-t border-border flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-text-secondary",children:b("chart.tooltip.total")}),(0,d.jsx)("span",{className:"num-mono text-text-primary",children:(0,l.jh)(f,c)})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between mt-1",children:[(0,d.jsx)("span",{className:"text-text-secondary",children:b("chart.tooltip.cost")}),(0,d.jsx)("span",{className:"num-mono text-brand",children:(0,l.az)(e.cost)})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between mt-1",children:[(0,d.jsx)("span",{className:"text-text-secondary",children:b("chart.tooltip.requests")}),(0,d.jsx)("span",{className:"num-mono text-text-primary",children:e.requests})]})]})}function r({color:a,label:b,value:c,locale:e}){return(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-text-secondary",children:[(0,d.jsx)("span",{className:"w-2 h-2 rounded-sm",style:{background:a}}),b]}),(0,d.jsx)("span",{className:"num-mono text-text-primary",children:(0,l.jh)(c,e)})]})}},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")},30285:(a,b,c)=>{"use strict";function d(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}c.d(b,{o:()=>d})},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,67302)),"/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")},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",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"})]})}},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,88843)),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")},69181:(a,b,c)=>{"use strict";c.d(b,{i:()=>f,z:()=>e});let d={inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheCreationTokens:0,totalTokens:0,cost:0,saved:0,requests:0};function e(a){return 0===a.length?{...d}:1===a.length?a[0]:a.reduce((a,b)=>({inputTokens:a.inputTokens+b.inputTokens,outputTokens:a.outputTokens+b.outputTokens,cacheReadTokens:a.cacheReadTokens+b.cacheReadTokens,cacheCreationTokens:a.cacheCreationTokens+b.cacheCreationTokens,totalTokens:a.totalTokens+b.totalTokens,cost:a.cost+b.cost,saved:a.saved+b.saved,requests:a.requests+b.requests}),{...d})}function f(a){if(0===a.length)return[];if(1===a.length)return a[0];let b=new Map;for(let c of a)for(let a of c){let c=b.get(a.key);if(!c){b.set(a.key,{...a,models:function(a){let b={};for(let[c,d]of Object.entries(a))b[c]={tokens:d.tokens,cost:d.cost,requests:d.requests};return b}(a.models)});continue}for(let[b,d]of(c.inputTokens+=a.inputTokens,c.outputTokens+=a.outputTokens,c.cacheReadTokens+=a.cacheReadTokens,c.cacheCreationTokens+=a.cacheCreationTokens,c.totalTokens+=a.totalTokens,c.cost+=a.cost,c.saved+=a.saved,c.requests+=a.requests,Object.entries(a.models))){let a=c.models[b]??{tokens:0,cost:0,requests:0};a.tokens+=d.tokens,a.cost+=d.cost,a.requests+=d.requests,c.models[b]=a}}return Array.from(b.values()).sort((a,b)=>a.key.localeCompare(b.key))}},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","durationMs"];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")})}},88843:(a,b,c)=>{"use strict";c.d(b,{OverviewToggle:()=>i});var d=c(21124),e=c(38301),f=c(15514),g=c(15519);let h="data-usage-overview";function i(){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(h,"hidden"):document.documentElement.removeAttribute(h)},"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)(j,{open:!b}),(0,d.jsx)("span",{className:"hidden sm:inline",children:a("usage.overview.label")})]})}function j({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"})]})})}},89605:(a,b,c)=>{"use strict";c.d(b,{TokenStackChart:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call TokenStackChart() from the server but TokenStackChart 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/charts/token-stack-chart.tsx","TokenStackChart")},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-strong 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:"duration",labelKey:"usage.col.duration",align:"right",sortKey:"durationMs",defaultVisible:!1},{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}`)+(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",title:`started ${(0,g.r6)(b.timestamp)}
3
+ ended ${(0,g.r6)(b.endTimestamp)}`,children:(0,g.r6)(b.timestamp)});case"duration":return(0,d.jsx)("span",{className:"num-mono text-text-secondary whitespace-nowrap text-xs",title:`${(0,g.r6)(b.timestamp)} → ${(0,g.r6)(b.endTimestamp)}`,children:(0,g.a3)(b.durationMs)});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 text-xs inline-block translate-x-5",children:(0,g.r6)(b.timestamp)});case"duration":return(0,d.jsx)("span",{className:"text-xs text-text-tertiary",children:"—"});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,98,730,567],()=>b(b.s=32900));module.exports=c})();
@@ -1 +1 @@
1
- {"version":1,"files":["../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../node_modules/next/dist/shared/lib/segment.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../package.json","../../../package.json","../../chunks/153.js","../../chunks/331.js","../../chunks/517.js","../../chunks/567.js","../../chunks/716.js","../../chunks/802.js","../../chunks/971.js","../../chunks/98.js","../../chunks/993.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
1
+ {"version":1,"files":["../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../node_modules/next/dist/shared/lib/segment.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../package.json","../../../package.json","../../chunks/153.js","../../chunks/331.js","../../chunks/517.js","../../chunks/567.js","../../chunks/716.js","../../chunks/730.js","../../chunks/802.js","../../chunks/98.js","../../chunks/993.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "/_not-found/page": "app/_not-found/page.js",
3
- "/api/pricing/route": "app/api/pricing/route.js",
4
3
  "/api/blocks/route": "app/api/blocks/route.js",
5
4
  "/api/projects/route": "app/api/projects/route.js",
6
- "/api/usage/route": "app/api/usage/route.js",
5
+ "/api/pricing/route": "app/api/pricing/route.js",
7
6
  "/api/sessions/route": "app/api/sessions/route.js",
8
- "/api/scan/route": "app/api/scan/route.js",
9
7
  "/api/export/usage/route": "app/api/export/usage/route.js",
10
- "/projects/[id]/page": "app/projects/[id]/page.js",
11
- "/page": "app/page.js",
12
- "/settings/page": "app/settings/page.js",
13
- "/sessions/page": "app/sessions/page.js",
8
+ "/api/usage/route": "app/api/usage/route.js",
9
+ "/api/scan/route": "app/api/scan/route.js",
14
10
  "/sessions/[id]/page": "app/sessions/[id]/page.js",
15
- "/usage/page": "app/usage/page.js",
11
+ "/sessions/page": "app/sessions/page.js",
12
+ "/page": "app/page.js",
16
13
  "/projects/page": "app/projects/page.js",
17
- "/models/page": "app/models/page.js"
14
+ "/projects/[id]/page": "app/projects/[id]/page.js",
15
+ "/models/page": "app/models/page.js",
16
+ "/settings/page": "app/settings/page.js",
17
+ "/usage/page": "app/usage/page.js"
18
18
  }
@@ -0,0 +1 @@
1
+ exports.id=287,exports.ids=[287],exports.modules={24919:(a,b,c)=>{"use strict";c.d(b,{TokenStackChart:()=>o});var d=c(21124),e=c(6077),f=c(72400),g=c(57495),h=c(59296),i=c(16803),j=c(11767),k=c(18311),l=c(15514),m=c(15519);let n={input:"rgb(var(--chart-input))",output:"rgb(var(--chart-output))",cacheRead:"rgb(var(--chart-cache-read))",cacheCreation:"rgb(var(--chart-cache-create))"};function o({data:a,height:b="h-72"}){let c=(0,m.kj)(),{locale:o}=(0,m.s9)();return a.length?(0,d.jsxs)("div",{className:`${b} w-full`,children:[(0,d.jsx)(e.u,{width:"100%",height:"100%",children:(0,d.jsxs)(f.E,{data:a,margin:{top:12,right:8,bottom:4,left:8},barCategoryGap:"22%",children:[(0,d.jsx)(g.d,{stroke:"rgb(var(--chart-grid))",strokeOpacity:.6,strokeDasharray:"3 3",vertical:!1}),(0,d.jsx)(h.W,{dataKey:"label",tick:{fill:"rgb(var(--chart-axis))",fontSize:11},tickLine:!1,axisLine:!1,interval:"preserveStartEnd",minTickGap:32,tickMargin:8}),(0,d.jsx)(i.h,{tickFormatter:a=>(0,l.jh)(Number(a),o),tick:{fill:"rgb(var(--chart-axis))",fontSize:11},tickLine:!1,axisLine:!1,width:56,tickMargin:4}),(0,d.jsx)(j.m,{content:(0,d.jsx)(q,{}),cursor:{fill:"rgb(var(--text-primary) / 0.05)",radius:4}}),(0,d.jsx)(k.y,{dataKey:"input",stackId:"a",fill:n.input,isAnimationActive:!1}),(0,d.jsx)(k.y,{dataKey:"cacheCreation",stackId:"a",fill:n.cacheCreation,isAnimationActive:!1}),(0,d.jsx)(k.y,{dataKey:"cacheRead",stackId:"a",fill:n.cacheRead,isAnimationActive:!1}),(0,d.jsx)(k.y,{dataKey:"output",stackId:"a",fill:n.output,radius:[4,4,0,0],isAnimationActive:!1})]})}),(0,d.jsxs)("div",{className:"flex items-center flex-wrap justify-center gap-4 text-xs text-text-secondary mt-2",children:[(0,d.jsx)(p,{color:n.input,label:c("chart.legend.input")}),(0,d.jsx)(p,{color:n.cacheCreation,label:c("chart.legend.cacheWrite")}),(0,d.jsx)(p,{color:n.cacheRead,label:c("chart.legend.cacheRead")}),(0,d.jsx)(p,{color:n.output,label:c("chart.legend.output")})]})]}):(0,d.jsx)("div",{className:`${b} flex items-center justify-center text-text-tertiary text-sm`,children:c("chart.empty")})}function p({color:a,label:b}){return(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"w-2.5 h-2.5 rounded-sm",style:{background:a}}),(0,d.jsx)("span",{children:b})]})}function q(a){let b=(0,m.kj)(),{locale:c}=(0,m.s9)();if(!a.active||!a.payload||!a.payload.length)return null;let e=a.payload[0].payload,f=e.input+e.output+e.cacheRead+e.cacheCreation;return(0,d.jsxs)("div",{className:"card-elevated border border-border-hi rounded-card p-3 text-xs min-w-[200px]",children:[(0,d.jsx)("div",{className:"font-medium text-text-primary mb-2",children:a.label}),(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)(r,{color:n.input,label:b("chart.legend.input"),value:e.input,locale:c}),(0,d.jsx)(r,{color:n.cacheCreation,label:b("chart.legend.cacheWrite"),value:e.cacheCreation,locale:c}),(0,d.jsx)(r,{color:n.cacheRead,label:b("chart.legend.cacheRead"),value:e.cacheRead,locale:c}),(0,d.jsx)(r,{color:n.output,label:b("chart.legend.output"),value:e.output,locale:c})]}),(0,d.jsxs)("div",{className:"mt-2 pt-2 border-t border-border flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-text-secondary",children:b("chart.tooltip.total")}),(0,d.jsx)("span",{className:"num-mono text-text-primary",children:(0,l.jh)(f,c)})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between mt-1",children:[(0,d.jsx)("span",{className:"text-text-secondary",children:b("chart.tooltip.cost")}),(0,d.jsx)("span",{className:"num-mono text-brand",children:(0,l.az)(e.cost)})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between mt-1",children:[(0,d.jsx)("span",{className:"text-text-secondary",children:b("chart.tooltip.requests")}),(0,d.jsx)("span",{className:"num-mono text-text-primary",children:e.requests})]})]})}function r({color:a,label:b,value:c,locale:e}){return(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-text-secondary",children:[(0,d.jsx)("span",{className:"w-2 h-2 rounded-sm",style:{background:a}}),b]}),(0,d.jsx)("span",{className:"num-mono text-text-primary",children:(0,l.jh)(c,e)})]})}},25799:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=c(82831),e=c(43740),f=c(29305),g=c(61981),h=c(26906),i=c(69168);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},29088:(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unauthorized",{enumerable:!0,get:function(){return d}}),c(98541).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},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",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"})]})}},45819:(a,b,c)=>{Promise.resolve().then(c.bind(c,89605)),Promise.resolve().then(c.t.bind(c,65169,23))},47614:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getRedirectError:function(){return g},getRedirectStatusCodeFromError:function(){return l},getRedirectTypeFromError:function(){return k},getURLFromRedirectError:function(){return j},permanentRedirect:function(){return i},redirect:function(){return h}});let d=c(91203),e=c(92781),f=c(19121).actionAsyncStorage;function g(a,b,c){void 0===c&&(c=d.RedirectStatusCode.TemporaryRedirect);let f=Object.defineProperty(Error(e.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return f.digest=e.REDIRECT_ERROR_CODE+";"+b+";"+a+";"+c+";",f}function h(a,b){var c;throw null!=b||(b=(null==f||null==(c=f.getStore())?void 0:c.isAction)?e.RedirectType.push:e.RedirectType.replace),g(a,b,d.RedirectStatusCode.TemporaryRedirect)}function i(a,b){throw void 0===b&&(b=e.RedirectType.replace),g(a,b,d.RedirectStatusCode.PermanentRedirect)}function j(a){return(0,e.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function k(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function l(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},64404:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"notFound",{enumerable:!0,get:function(){return e}});let d=""+c(98541).HTTP_ERROR_FALLBACK_ERROR_CODE+";404";function e(){let a=Object.defineProperty(Error(d),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw a.digest=d,a}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},64712:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=c(25799).unstable_rethrow;("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},65169:(a,b,c)=>{let{createProxy:d}=c(39893);a.exports=d("/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/app-dir/link.js")},67837:(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"forbidden",{enumerable:!0,get:function(){return d}}),c(98541).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},82161:(a,b,c)=>{"use strict";var d=c(93045);c.o(d,"notFound")&&c.d(b,{notFound:function(){return d.notFound}})},89605:(a,b,c)=>{"use strict";c.d(b,{TokenStackChart:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call TokenStackChart() from the server but TokenStackChart 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/charts/token-stack-chart.tsx","TokenStackChart")},93045:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{ReadonlyURLSearchParams:function(){return k},RedirectType:function(){return e.RedirectType},forbidden:function(){return g.forbidden},notFound:function(){return f.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return h.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return i.unstable_rethrow}});let d=c(47614),e=c(92781),f=c(64404),g=c(67837),h=c(29088),i=c(64712);class j extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class k extends URLSearchParams{append(){throw new j}delete(){throw new j}set(){throw new j}sort(){throw new j}}function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},98963:(a,b,c)=>{Promise.resolve().then(c.bind(c,24919)),Promise.resolve().then(c.t.bind(c,3991,23))}};