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